kivio 1.1.9 → 1.2.1

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.
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { Component, Input } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class KvLoadingComponent {
6
+ constructor() {
7
+ this.message = '';
8
+ this.isLoading = false;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvLoadingComponent, isStandalone: true, selector: "lib-kv-loading", inputs: { message: "message", isLoading: "isLoading" }, ngImport: i0, template: "<div class=\"loading-component\">\r\n <div class=\"loading-container\" *ngIf=\"isLoading\">\r\n <div class=\"loading-spinner\"></div>\r\n <p>{{message}}</p>\r\n </div>\r\n</div>", styles: [".loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem}.loading-spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvLoadingComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'lib-kv-loading', standalone: true, imports: [CommonModule], template: "<div class=\"loading-component\">\r\n <div class=\"loading-container\" *ngIf=\"isLoading\">\r\n <div class=\"loading-spinner\"></div>\r\n <p>{{message}}</p>\r\n </div>\r\n</div>", styles: [".loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem}.loading-spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
16
+ }], propDecorators: { message: [{
17
+ type: Input
18
+ }], isLoading: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXZpby9zcmMvbGliL2NvbXBvbmVudHMva3YtbG9hZGluZy9rdi1sb2FkaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1sb2FkaW5nL2t2LWxvYWRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLGtCQUFrQjtJQVBqQztRQVNhLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFZLEtBQUssQ0FBQztLQUVyQzsrR0FMWSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrSUNWakMsdU1BS00sa1lEQ1EsWUFBWTs7NEZBSVgsa0JBQWtCO2tCQVBoQyxTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFNZCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWt2LWxvYWRpbmcnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2t2LWxvYWRpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2t2LWxvYWRpbmcuY29tcG9uZW50LnNjc3MnXHJcbiAgfSlcclxuICBleHBvcnQgY2xhc3MgS3ZMb2FkaW5nQ29tcG9uZW50e1xyXG4gIFxyXG4gICAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICB9IiwiPGRpdiBjbGFzcz1cImxvYWRpbmctY29tcG9uZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cclxuICAgICAgICA8cD57e21lc3NhZ2V9fTwvcD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, EventEmitter, Input, Output, ContentChild, } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
+ import { KvLoadingComponent } from '../kv-loading/kv-loading.component';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/common";
6
7
  import * as i2 from "@angular/forms";
@@ -12,6 +13,7 @@ export class KvMainTableComponent {
12
13
  this.lazyLoading = false;
13
14
  this.loading = false;
14
15
  this.totalRecords = 0;
16
+ this.message = '';
15
17
  this.onNameClicked = new EventEmitter();
16
18
  this.onPageChange = new EventEmitter();
17
19
  this.searchText = '';
@@ -100,11 +102,11 @@ export class KvMainTableComponent {
100
102
  this.onNameClicked.emit(data);
101
103
  }
102
104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvMainTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvMainTableComponent, isStandalone: true, selector: "lib-kv-main-table", inputs: { columns: "columns", data: "data", extraData: "extraData", showPaginator: "showPaginator", lazyLoading: "lazyLoading", loading: "loading", totalRecords: "totalRecords" }, outputs: { onNameClicked: "onNameClicked", onPageChange: "onPageChange" }, queries: [{ propertyName: "cellActionsTemplate", first: true, predicate: ["cellActions"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"loading-indicator\" *ngIf=\"loading\">\r\n <span>Cargando datos...</span>\r\n</div>\r\n\r\n<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { 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.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"] }] }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvMainTableComponent, isStandalone: true, selector: "lib-kv-main-table", inputs: { columns: "columns", data: "data", extraData: "extraData", showPaginator: "showPaginator", lazyLoading: "lazyLoading", loading: "loading", totalRecords: "totalRecords", message: "message" }, outputs: { onNameClicked: "onNameClicked", onPageChange: "onPageChange" }, queries: [{ propertyName: "cellActionsTemplate", first: true, predicate: ["cellActions"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<lib-kv-loading [message]=\"message\" [isLoading]=\"loading\" > </lib-kv-loading>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n </div>\r\n\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { 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.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: KvLoadingComponent, selector: "lib-kv-loading", inputs: ["message", "isLoading"] }] }); }
104
106
  }
105
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvMainTableComponent, decorators: [{
106
108
  type: Component,
107
- args: [{ selector: 'lib-kv-main-table', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"loading-indicator\" *ngIf=\"loading\">\r\n <span>Cargando datos...</span>\r\n</div>\r\n\r\n<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"] }]
109
+ args: [{ selector: 'lib-kv-main-table', standalone: true, imports: [CommonModule, FormsModule, KvLoadingComponent], template: "<lib-kv-loading [message]=\"message\" [isLoading]=\"loading\" > </lib-kv-loading>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n </div>\r\n\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"] }]
108
110
  }], propDecorators: { columns: [{
109
111
  type: Input
110
112
  }], data: [{
@@ -119,6 +121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
119
121
  type: Input
120
122
  }], totalRecords: [{
121
123
  type: Input
124
+ }], message: [{
125
+ type: Input
122
126
  }], cellActionsTemplate: [{
123
127
  type: ContentChild,
124
128
  args: ['cellActions']
@@ -127,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
127
131
  }], onPageChange: [{
128
132
  type: Output
129
133
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbWFpbi10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXZpby9zcmMvbGliL2NvbXBvbmVudHMva3YtbWFpbi10YWJsZS9rdi1tYWluLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1tYWluLXRhYmxlL2t2LW1haW4tdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBSU4sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVM3QyxNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBUVcsWUFBTyxHQUFxQyxFQUFFLENBQUM7UUFDL0MsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUVqQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBR3hCLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0QsaUJBQVksR0FJakIsSUFBSSxZQUFZLEVBSWpCLENBQUM7UUFFTCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsa0JBQWEsR0FBVSxFQUFFLENBQUM7S0F5RzNCO0lBdkdDLFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FB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RXVCLG1CQUFtQjtzQkFBL0MsWUFBWTt1QkFBQyxhQUFhO2dCQUNqQixhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIE9uSW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBDb250ZW50Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWIta3YtbWFpbi10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW1haW4tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1tYWluLXRhYmxlLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2TWFpblRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IHsga2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdID0gW107XHJcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBleHRyYURhdGEhOiBhbnlbXTtcclxuICBASW5wdXQoKSBzaG93UGFnaW5hdG9yOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYXp5TG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2NlbGxBY3Rpb25zJykgY2VsbEFjdGlvbnNUZW1wbGF0ZTogYW55O1xyXG4gIEBPdXRwdXQoKSBvbk5hbWVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBvblBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gICAgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG4gIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gICAgc2VhcmNoVGV4dDogc3RyaW5nO1xyXG4gIH0+KCk7XHJcblxyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xyXG4gIGZpbHRlcmVkSXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJlZERhdGEoKTtcclxuICAgIGlmICh0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMubG9hZExhenlEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddIHx8IGNoYW5nZXNbJ3NlYXJjaFRleHQnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJlZERhdGEoKSB7XHJcbiAgICBpZiAoIXRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5nZXRGaWx0ZXJlZERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVxyXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5zb21lKChjb2wpID0+XHJcbiAgICAgICAgICBpdGVtW2NvbC5rZXldXHJcbiAgICAgICAgICAgID8udG9TdHJpbmcoKVxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zbGljZShcclxuICAgICAgICAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5wYWdlU2l6ZVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcmVkRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxhenlMb2FkaW5nID8gdGhpcy5kYXRhIDogdGhpcy5nZXRGaWx0ZXJlZERhdGEoKTtcclxuICB9XHJcblxyXG4gIHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbFJlY29yZHMgLyB0aGlzLnBhZ2VTaXplKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gTWF0aC5jZWlsKFxyXG4gICAgICB0aGlzLmRhdGEuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5zb21lKChjb2wpID0+XHJcbiAgICAgICAgICBpdGVtW2NvbC5rZXldXHJcbiAgICAgICAgICAgID8udG9TdHJpbmcoKVxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgKVxyXG4gICAgICApLmxlbmd0aCAvIHRoaXMucGFnZVNpemVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdlKGRpcmVjdGlvbjogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5sYXp5TG9hZGluZykge1xyXG4gICAgICBjb25zdCBuZXdQYWdlID0gdGhpcy5jdXJyZW50UGFnZSArIGRpcmVjdGlvbjtcclxuICAgICAgaWYgKG5ld1BhZ2UgPj0gMSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBuZXdQYWdlO1xyXG4gICAgICAgIHRoaXMubG9hZExhenlEYXRhKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgIT09IDEpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICAgICAgdGhpcy5sb2FkTGF6eURhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG5ld1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlICsgZGlyZWN0aW9uO1xyXG4gICAgICBpZiAobmV3UGFnZSA+IDAgJiYgbmV3UGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMoKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBuZXdQYWdlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWREYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICBpZiAodGhpcy5sYXp5TG9hZGluZykge1xyXG4gICAgICB0aGlzLmxvYWRMYXp5RGF0YSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRMYXp5RGF0YSgpIHtcclxuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxyXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgc2VhcmNoVGV4dDogdGhpcy5zZWFyY2hUZXh0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UG9zTmFtZShwb3NJZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZXh0cmFEYXRhPy5maW5kKChwb3MpID0+IHBvcy5wb2ludF9vZl9zYWxlX2lkID09PSBwb3NJZCk/Lm5hbWUgfHwgJydcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1pdERhdGEoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLm9uTmFtZUNsaWNrZWQuZW1pdChkYXRhKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlY3Rpb25cIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiQnVzY2FyLi4uXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uU2VhcmNoKClcIlxyXG4gICAgLz5cclxuICAgIDxidXR0b24gKm5nSWY9XCJsYXp5TG9hZGluZ1wiIChjbGljayk9XCJvblNlYXJjaCgpXCI+QnVzY2FyPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImxvYWRpbmctaW5kaWNhdG9yXCIgKm5nSWY9XCJsb2FkaW5nXCI+XHJcbiAgPHNwYW4+Q2FyZ2FuZG8gZGF0b3MuLi48L3NwYW4+XHJcbjwvZGl2PlxyXG5cclxuPHRhYmxlPlxyXG4gIDx0aGVhZD5cclxuICAgIDx0cj5cclxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPnt7IGNvbHVtbi5sYWJlbCB9fTwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5PlxyXG4gICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YVwiPlxyXG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlXCIgW25nQ2xhc3NdPVwiaXRlbVtjb2x1bW4ua2V5XVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5sYWJlbCA9PT0gJ1NlcnZpY2VzJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pbmZvXCIgKGNsaWNrKT1cImVtaXREYXRhKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0udXJsIHx8ICdodHRwczovL2kuaW1ndXIuY29tL0luUmFWckwuanBnJ1wiIGFsdD1cIkltYWdlblwiIGNsYXNzPVwic2VydmljZS1pbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJhLWxpbmtcIj57eyBpdGVtLm5hbWUgfX08L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnbmFtZScgJiYgY29sdW1uLmxhYmVsICE9PSAnU2VydmljZXMnXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYS1saW5rXCIgKGNsaWNrKT1cImVtaXREYXRhKGl0ZW0pXCI+e3tcclxuICAgICAgICAgICAgICBpdGVtW2NvbHVtbi5rZXldXHJcbiAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ2ltYWdlcydcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGltYWdlIG9mIGl0ZW1bY29sdW1uLmtleV0/LnNsaWNlKDAsIDMpXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VcIiBhbHQ9XCJJbWFnZW5cIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtW2NvbHVtbi5rZXldPy5sZW5ndGggPiAzXCIgY2xhc3M9XCJleHRyYS1pbWFnZXNcIj5cclxuICAgICAgICAgICAgICAgICt7eyBpdGVtW2NvbHVtbi5rZXldLmxlbmd0aCAtIDMgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnZXhwaXJlX2F0J1wiPlxyXG4gICAgICAgICAgICB7eyBpdGVtW2NvbHVtbi5rZXldIHwgZGF0ZSA6IFwiZGQvTU0veXl5eVwiIH19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucydcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNlbGxBY3Rpb25zVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGNvbHVtbi5rZXkgIT09ICdleHBpcmVfYXQnICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLmtleSAhPT0gJ3BvaW50X29mX3NhbGVfaWQnICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLmtleSAhPT0gJ25hbWUnICYmXHJcbiAgICAgICAgICAgICAgY29sdW1uLmtleSAhPT0gJ3Bvc19pZCcgJiZcclxuICAgICAgICAgICAgICBjb2x1bW4ua2V5ICE9PSAnaW1hZ2VzJyAmJlxyXG4gICAgICAgICAgICAgIGNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJ1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpdGVtW2NvbHVtbi5rZXldIH19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAncG9pbnRfb2Zfc2FsZV9pZCcgfHwgY29sdW1uLmtleSA9PT0gJ3Bvc19pZCdcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBnZXRQb3NOYW1lKGl0ZW1bY29sdW1uLmtleV0pIH19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UGFnaW5hdG9yXCI+XHJcbiAgPHRhYmxlIGNsYXNzPVwidGFibGUtcGFnaW5hdGlvblwiPlxyXG4gICAgPHRib2R5PlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb25cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VQYWdlKC0xKVwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgIFByZXZpb3VzXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UoMSlcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlcygpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBOZXh0XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPlBhZ2Uge3sgY3VycmVudFBhZ2UgfX0gb2Yge3sgdG90YWxQYWdlcygpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3Rib2R5PlxyXG4gIDwvdGFibGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbWFpbi10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXZpby9zcmMvbGliL2NvbXBvbmVudHMva3YtbWFpbi10YWJsZS9rdi1tYWluLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1tYWluLXRhYmxlL2t2LW1haW4tdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBSU4sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVN4RSxNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBUVcsWUFBTyxHQUFxQyxFQUFFLENBQUM7UUFDL0MsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUVqQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFHcEIsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMzRCxpQkFBWSxHQUlqQixJQUFJLFlBQVksRUFJakIsQ0FBQztRQUVMLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixrQkFBYSxHQUFVLEVBQUUsQ0FB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QUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFdUIsbUJBQW1CO3NCQUEvQyxZQUFZO3VCQUFDLGFBQWE7Z0JBQ2pCLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIENvbnRlbnRDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEt2TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2t2LWxvYWRpbmcva3YtbG9hZGluZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWIta3YtbWFpbi10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgS3ZMb2FkaW5nQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtbWFpbi10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LW1haW4tdGFibGUuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZNYWluVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY29sdW1uczogeyBrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9W10gPSBbXTtcclxuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGV4dHJhRGF0YSE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0b3I6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGxhenlMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnY2VsbEFjdGlvbnMnKSBjZWxsQWN0aW9uc1RlbXBsYXRlOiBhbnk7XHJcbiAgQE91dHB1dCgpIG9uTmFtZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIG9uUGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPHtcclxuICAgIHBhZ2U6IG51bWJlcjtcclxuICAgIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgICBzZWFyY2hUZXh0OiBzdHJpbmc7XHJcbiAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHBhZ2U6IG51bWJlcjtcclxuICAgIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgICBzZWFyY2hUZXh0OiBzdHJpbmc7XHJcbiAgfT4oKTtcclxuXHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDU7XHJcbiAgZmlsdGVyZWRJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkRGF0YSgpO1xyXG4gICAgaWYgKHRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgdGhpcy5sb2FkTGF6eURhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10gfHwgY2hhbmdlc1snc2VhcmNoVGV4dCddKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyZWREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZpbHRlcmVkRGF0YSgpIHtcclxuICAgIGlmICghdGhpcy5sYXp5TG9hZGluZykge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZERhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhXHJcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoKGNvbCkgPT5cclxuICAgICAgICAgIGl0ZW1bY29sLmtleV1cclxuICAgICAgICAgICAgPy50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnNsaWNlKFxyXG4gICAgICAgICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgKiB0aGlzLnBhZ2VTaXplXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlsdGVyZWREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGF6eUxvYWRpbmcgPyB0aGlzLmRhdGEgOiB0aGlzLmdldEZpbHRlcmVkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgdG90YWxQYWdlcygpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjb3JkcyAvIHRoaXMucGFnZVNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBNYXRoLmNlaWwoXHJcbiAgICAgIHRoaXMuZGF0YS5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoKGNvbCkgPT5cclxuICAgICAgICAgIGl0ZW1bY29sLmtleV1cclxuICAgICAgICAgICAgPy50b1N0cmluZygpXHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcclxuICAgICAgICApXHJcbiAgICAgICkubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBhZ2UoZGlyZWN0aW9uOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgIGNvbnN0IG5ld1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlICsgZGlyZWN0aW9uO1xyXG4gICAgICBpZiAobmV3UGFnZSA+PSAxKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IG5ld1BhZ2U7XHJcbiAgICAgICAgdGhpcy5sb2FkTGF6eURhdGEoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gMSkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLmxvYWRMYXp5RGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbmV3UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgKyBkaXJlY3Rpb247XHJcbiAgICAgIGlmIChuZXdQYWdlID4gMCAmJiBuZXdQYWdlIDw9IHRoaXMudG90YWxQYWdlcygpKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IG5ld1BhZ2U7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJlZERhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIGlmICh0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMubG9hZExhenlEYXRhKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZExhenlEYXRhKCkge1xyXG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFRleHQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQb3NOYW1lKHBvc0lkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5leHRyYURhdGE/LmZpbmQoKHBvcykgPT4gcG9zLnBvaW50X29mX3NhbGVfaWQgPT09IHBvc0lkKT8ubmFtZSB8fCAnJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0RGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMub25OYW1lQ2xpY2tlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxufVxyXG4iLCI8bGliLWt2LWxvYWRpbmcgW21lc3NhZ2VdPVwibWVzc2FnZVwiIFtpc0xvYWRpbmddPVwibG9hZGluZ1wiID4gPC9saWIta3YtbG9hZGluZz5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtc2VjdGlvblwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJCdXNjYXIuLi5cIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uU2VhcmNoKClcIlxyXG4gICAgICAvPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwibGF6eUxvYWRpbmdcIiAoY2xpY2spPVwib25TZWFyY2goKVwiPkJ1c2NhcjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDx0YWJsZT5cclxuICAgIDx0aGVhZD5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj57eyBjb2x1bW4ubGFiZWwgfX08L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90aGVhZD5cclxuICAgIDx0Ym9keT5cclxuICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkRGF0YVwiPlxyXG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZVwiIFtuZ0NsYXNzXT1cIml0ZW1bY29sdW1uLmtleV1cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5sYWJlbCA9PT0gJ1NlcnZpY2VzJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWluZm9cIiAoY2xpY2spPVwiZW1pdERhdGEoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLnVybCB8fCAnaHR0cHM6Ly9pLmltZ3VyLmNvbS9JblJhVnJMLmpwZydcIiBhbHQ9XCJJbWFnZW5cIiBjbGFzcz1cInNlcnZpY2UtaW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJhLWxpbmtcIj57eyBpdGVtLm5hbWUgfX08L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnbmFtZScgJiYgY29sdW1uLmxhYmVsICE9PSAnU2VydmljZXMnXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJhLWxpbmtcIiAoY2xpY2spPVwiZW1pdERhdGEoaXRlbSlcIj57e1xyXG4gICAgICAgICAgICAgICAgaXRlbVtjb2x1bW4ua2V5XVxyXG4gICAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdpbWFnZXMnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaXRlbVtjb2x1bW4ua2V5XT8uc2xpY2UoMCwgMylcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlXCIgYWx0PVwiSW1hZ2VuXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW1bY29sdW1uLmtleV0/Lmxlbmd0aCA+IDNcIiBjbGFzcz1cImV4dHJhLWltYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAre3sgaXRlbVtjb2x1bW4ua2V5XS5sZW5ndGggLSAzIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnZXhwaXJlX2F0J1wiPlxyXG4gICAgICAgICAgICAgIHt7IGl0ZW1bY29sdW1uLmtleV0gfCBkYXRlIDogXCJkZC9NTS95eXl5XCIgfX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucydcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VsbEFjdGlvbnNUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBjb2x1bW4ua2V5ICE9PSAnZXhwaXJlX2F0JyAmJlxyXG4gICAgICAgICAgICAgICAgY29sdW1uLmtleSAhPT0gJ3BvaW50X29mX3NhbGVfaWQnICYmXHJcbiAgICAgICAgICAgICAgICBjb2x1bW4ua2V5ICE9PSAnbmFtZScgJiZcclxuICAgICAgICAgICAgICAgIGNvbHVtbi5rZXkgIT09ICdwb3NfaWQnICYmXHJcbiAgICAgICAgICAgICAgICBjb2x1bW4ua2V5ICE9PSAnaW1hZ2VzJyAmJlxyXG4gICAgICAgICAgICAgICAgY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGl0ZW1bY29sdW1uLmtleV0gfX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdwb2ludF9vZl9zYWxlX2lkJyB8fCBjb2x1bW4ua2V5ID09PSAncG9zX2lkJ1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBnZXRQb3NOYW1lKGl0ZW1bY29sdW1uLmtleV0pIH19XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGJvZHk+XHJcbiAgPC90YWJsZT5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdpbmF0b3JcIj5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLXBhZ2luYXRpb25cIj5cclxuICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UoLTEpXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICBQcmV2aW91c1xyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VQYWdlKDEpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlcygpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBOZXh0XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+UGFnZSB7eyBjdXJyZW50UGFnZSB9fSBvZiB7eyB0b3RhbFBhZ2VzKCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -17,11 +17,11 @@ export class KvPopupComponent {
17
17
  this.onClose.emit();
18
18
  }
19
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvPopupComponent, isStandalone: true, selector: "lib-kv-popup", inputs: { title: "title", description: "description", isCustomTemplate: "isCustomTemplate", actionType: "actionType" }, outputs: { onAccept: "onAccept", onClose: "onClose" }, ngImport: i0, template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvPopupComponent, isStandalone: true, selector: "lib-kv-popup", inputs: { title: "title", description: "description", isCustomTemplate: "isCustomTemplate", actionType: "actionType" }, outputs: { onAccept: "onAccept", onClose: "onClose" }, ngImport: i0, template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow-y:auto}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
21
21
  }
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvPopupComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'lib-kv-popup', standalone: true, imports: [CommonModule], template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"] }]
24
+ args: [{ selector: 'lib-kv-popup', standalone: true, imports: [CommonModule], template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow-y:auto}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"] }]
25
25
  }], propDecorators: { title: [{
26
26
  type: Input
27
27
  }], description: [{
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
35
35
  }], onClose: [{
36
36
  type: Output
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l2aW8vc3JjL2xpYi9jb21wb25lbnRzL2t2LXBvcHVwL2t2LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1wb3B1cC9rdi1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVMxRCxNQUFNLE9BQU8sZ0JBQWdCO0lBUDdCO1FBU1csVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFELG1CQUFjLEdBQUcsVUFBVSxDQUFDO0tBU3BDO0lBUFEsY0FBYztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0FqQlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsdVBDWDdCLG1xRUEwQ00sdStGRG5DTSxZQUFZOzs0RkFJWCxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFNZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYWN0aW9uLXR5cGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1rdi1wb3B1cCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1wb3B1cC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2UG9wdXBDb21wb25lbnR7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0N1c3RvbVRlbXBsYXRlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhY3Rpb25UeXBlITogQWN0aW9uVHlwZTtcclxuICBAT3V0cHV0KCkgb25BY2NlcHQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgYWN0aW9uVHlwZUVudW0gPSBBY3Rpb25UeXBlO1xyXG5cclxuICBwdWJsaWMgb25BY2NlcHRTdWJtaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWNjZXB0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsb3NlU3VibWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicG9wdXAtYmFja2Ryb3BcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCIhaXNDdXN0b21UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvblR5cGUgPT09IGFjdGlvblR5cGVFbnVtLldhcm5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWF0ZXJpYWwtaWNvbnNcIj5lcnJvcjwvaT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvblR5cGUgPT09IGFjdGlvblR5cGVFbnVtLkFkdmVydGlzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtYXRlcmlhbC1pY29uc1wiPndhcm5pbmc8L2k+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1c3RvbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb250ZW50PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gYWN0aW9uVHlwZUVudW0uSW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLS1jYW5jZWxcIiAoY2xpY2spPVwib25DbG9zZVN1Ym1pdCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi0tcHJpbWFyeVwiIChjbGljayk9XCJvbkFjY2VwdFN1Ym1pdCgpXCI+QWNlcHRhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gYWN0aW9uVHlwZUVudW0uV2FyblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLS1jYW5jZWxcIiAoY2xpY2spPVwib25DbG9zZVN1Ym1pdCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi0td2FyblwiIChjbGljayk9XCJvbkFjY2VwdFN1Ym1pdCgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb25UeXBlID09PSBhY3Rpb25UeXBlRW51bS5BZHZlcnRpc2VcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi0tY2FuY2VsXCIgKGNsaWNrKT1cIm9uQ2xvc2VTdWJtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24tLXdhcm5cIiAoY2xpY2spPVwib25BY2NlcHRTdWJtaXQoKVwiPkNvbnRpbnVhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l2aW8vc3JjL2xpYi9jb21wb25lbnRzL2t2LXBvcHVwL2t2LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1wb3B1cC9rdi1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVMxRCxNQUFNLE9BQU8sZ0JBQWdCO0lBUDdCO1FBU1csVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFELG1CQUFjLEdBQUcsVUFBVSxDQUFDO0tBU3BDO0lBUFEsY0FBYztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0FqQlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsdVBDWDdCLG1xRUEwQ00sdS9GRG5DTSxZQUFZOzs0RkFJWCxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFNZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYWN0aW9uLXR5cGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1rdi1wb3B1cCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1wb3B1cC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2UG9wdXBDb21wb25lbnR7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0N1c3RvbVRlbXBsYXRlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhY3Rpb25UeXBlITogQWN0aW9uVHlwZTtcclxuICBAT3V0cHV0KCkgb25BY2NlcHQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgYWN0aW9uVHlwZUVudW0gPSBBY3Rpb25UeXBlO1xyXG5cclxuICBwdWJsaWMgb25BY2NlcHRTdWJtaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWNjZXB0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsb3NlU3VibWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicG9wdXAtYmFja2Ryb3BcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCIhaXNDdXN0b21UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvblR5cGUgPT09IGFjdGlvblR5cGVFbnVtLldhcm5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWF0ZXJpYWwtaWNvbnNcIj5lcnJvcjwvaT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvblR5cGUgPT09IGFjdGlvblR5cGVFbnVtLkFkdmVydGlzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbiBtYXRlcmlhbC1pY29uc1wiPndhcm5pbmc8L2k+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0N1c3RvbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb250ZW50PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gYWN0aW9uVHlwZUVudW0uSW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLS1jYW5jZWxcIiAoY2xpY2spPVwib25DbG9zZVN1Ym1pdCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi0tcHJpbWFyeVwiIChjbGljayk9XCJvbkFjY2VwdFN1Ym1pdCgpXCI+QWNlcHRhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gYWN0aW9uVHlwZUVudW0uV2FyblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLS1jYW5jZWxcIiAoY2xpY2spPVwib25DbG9zZVN1Ym1pdCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi0td2FyblwiIChjbGljayk9XCJvbkFjY2VwdFN1Ym1pdCgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb25UeXBlID09PSBhY3Rpb25UeXBlRW51bS5BZHZlcnRpc2VcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi0tY2FuY2VsXCIgKGNsaWNrKT1cIm9uQ2xvc2VTdWJtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24tLXdhcm5cIiAoY2xpY2spPVwib25BY2NlcHRTdWJtaXQoKVwiPkNvbnRpbnVhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -11,6 +11,7 @@ export * from './lib/components/kv-accordion/kv-accordion.component';
11
11
  export * from './lib/components/kv-alert/kv-alert.component';
12
12
  export * from './lib/components/kv-side-menu/kv-side-menu.component';
13
13
  export * from './lib/components/kv-main-table/kv-main-table.component';
14
+ export * from './lib/components/kv-loading/kv-loading.component';
14
15
  //Services
15
16
  export * from './lib/factories/form-factory.service';
16
17
  export * from './lib/services/navigation.service';
@@ -28,4 +29,4 @@ export * from './lib/validators/password-missmatch.validator';
28
29
  export * from './lib/enums/action-type.enum';
29
30
  // Injection Tokens
30
31
  export * from './lib/injection-tokens/auth-config';
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsWUFBWTtBQUNaLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtFQUFrRSxDQUFBO0FBQ2hGLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzREFBc0QsQ0FBQTtBQUNwRSxjQUFjLHdEQUF3RCxDQUFBO0FBRXRFLFVBQVU7QUFDVixjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxTQUFTO0FBQ1QsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxTQUFTO0FBQ1QsY0FBYywyQkFBMkIsQ0FBQTtBQUV6QyxZQUFZO0FBQ1osY0FBYywrQ0FBK0MsQ0FBQTtBQUU3RCxPQUFPO0FBQ1AsY0FBYyw4QkFBOEIsQ0FBQTtBQUU1QyxtQkFBbUI7QUFDbkIsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBraXZpb1xyXG4gKi9cclxuXHJcbi8vQ29tcG9uZW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBvcHVwL2t2LXBvcHVwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZXNvdXJjZS1ub3QtZm91bmQvcmVzb3VyY2Utbm90LWZvdW5kLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1zdGVwcGVyL2t2LXN0ZXBwZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1zdGVwL2t2LXN0ZXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1hY2NvcmRpb24va3YtYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtYWxlcnQva3YtYWxlcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1zaWRlLW1lbnUva3Ytc2lkZS1tZW51LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1tYWluLXRhYmxlL2t2LW1haW4tdGFibGUuY29tcG9uZW50J1xyXG5cclxuLy9TZXJ2aWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYWN0b3JpZXMvZm9ybS1mYWN0b3J5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2F1dGgtaW50ZXJjZXB0b3Iuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG4vL0NvbmZpZ3NcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9mb3JtLWZpZWxkLmNvbmZpZyc7XHJcblxyXG4vL0hlbHBlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycy9hdXRoLmhlbHBlcidcclxuXHJcbi8vVmFsaWRhdG9yc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzL3Bhc3N3b3JkLW1pc3NtYXRjaC52YWxpZGF0b3InXHJcblxyXG4vL0VudW1zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zL2FjdGlvbi10eXBlLmVudW0nXHJcblxyXG4vLyBJbmplY3Rpb24gVG9rZW5zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luamVjdGlvbi10b2tlbnMvYXV0aC1jb25maWcnOyJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsWUFBWTtBQUNaLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtFQUFrRSxDQUFBO0FBQ2hGLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzREFBc0QsQ0FBQTtBQUNwRSxjQUFjLHdEQUF3RCxDQUFBO0FBQ3RFLGNBQWMsa0RBQWtELENBQUM7QUFFakUsVUFBVTtBQUNWLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLFNBQVM7QUFDVCxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFNBQVM7QUFDVCxjQUFjLDJCQUEyQixDQUFBO0FBRXpDLFlBQVk7QUFDWixjQUFjLCtDQUErQyxDQUFBO0FBRTdELE9BQU87QUFDUCxjQUFjLDhCQUE4QixDQUFBO0FBRTVDLG1CQUFtQjtBQUNuQixjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGtpdmlvXHJcbiAqL1xyXG5cclxuLy9Db21wb25lbnRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcG9wdXAva3YtcG9wdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc291cmNlLW5vdC1mb3VuZC9yZXNvdXJjZS1ub3QtZm91bmQuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBwZXIva3Ytc3RlcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXAva3Ytc3RlcC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWFjY29yZGlvbi9rdi1hY2NvcmRpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1hbGVydC9rdi1hbGVydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXNpZGUtbWVudS9rdi1zaWRlLW1lbnUuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LW1haW4tdGFibGUva3YtbWFpbi10YWJsZS5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbG9hZGluZy9rdi1sb2FkaW5nLmNvbXBvbmVudCc7XHJcblxyXG4vL1NlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhY3Rvcmllcy9mb3JtLWZhY3Rvcnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbi8vQ29uZmlnc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2Zvcm0tZmllbGQuY29uZmlnJztcclxuXHJcbi8vSGVscGVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWxwZXJzL2F1dGguaGVscGVyJ1xyXG5cclxuLy9WYWxpZGF0b3JzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvcGFzc3dvcmQtbWlzc21hdGNoLnZhbGlkYXRvcidcclxuXHJcbi8vRW51bXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMvYWN0aW9uLXR5cGUuZW51bSdcclxuXHJcbi8vIEluamVjdGlvbiBUb2tlbnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5qZWN0aW9uLXRva2Vucy9hdXRoLWNvbmZpZyc7Il19
@@ -33,11 +33,11 @@ class KvPopupComponent {
33
33
  this.onClose.emit();
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvPopupComponent, isStandalone: true, selector: "lib-kv-popup", inputs: { title: "title", description: "description", isCustomTemplate: "isCustomTemplate", actionType: "actionType" }, outputs: { onAccept: "onAccept", onClose: "onClose" }, ngImport: i0, template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvPopupComponent, isStandalone: true, selector: "lib-kv-popup", inputs: { title: "title", description: "description", isCustomTemplate: "isCustomTemplate", actionType: "actionType" }, outputs: { onAccept: "onAccept", onClose: "onClose" }, ngImport: i0, template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow-y:auto}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvPopupComponent, decorators: [{
39
39
  type: Component,
40
- args: [{ selector: 'lib-kv-popup', standalone: true, imports: [CommonModule], template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"] }]
40
+ args: [{ selector: 'lib-kv-popup', standalone: true, imports: [CommonModule], template: "<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.icon{display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.table-button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.table-button--primary:hover{background-color:#00438a}.table-button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--primary{width:100%;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--primary:hover{background-color:#00438a}.button--primary:disabled{background-color:#ededed;cursor:not-allowed}.button--minimalist{height:min-content;padding:5px;background-color:#ebebeb;color:#475467;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--minimalist:disabled{background-color:#ededed;cursor:not-allowed}.button--primary-min{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;background:#0052cc;color:#fcfcfd}.button--primary-min:hover{background:#00438a}.button--primary-min:disabled{background-color:#ededed;cursor:not-allowed}.button--cancel{height:min-content;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;color:#475467;background-color:#fff;border:1px solid #ededed}.button--cancel:disabled{background-color:#ededed;cursor:not-allowed}.button--create{height:min-content;align-self:center;padding:10px;background-color:#0052cc;color:#fcfcfd;border:none;border-radius:5px;font-size:16px;cursor:pointer}.button--create:hover{background-color:#00438a}.button--create:disabled{background-color:#ededed;cursor:not-allowed}.button--sidenav{background-color:#fff;color:#475467;padding:8px;font-weight:700;border:none;display:flex;border-radius:4px;cursor:pointer;gap:10px;margin-top:10px;width:100%;align-items:center}.button--sidenav:hover{background-color:#f2f4f7;color:#101828}.button--sidenav:disabled{background-color:#ededed;cursor:not-allowed}.button--warn{background-color:#b90000;color:#f2f4f7;padding:8px 20px;border:none;border-radius:4px;cursor:pointer;height:min-content}.button--warn:hover{background-color:red}.button--warn:disabled{background-color:#ededed;cursor:not-allowed}.button-container{display:flex;justify-content:flex-end;gap:8px}.button-container:disabled{background-color:#ededed;cursor:not-allowed}.popup-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.popup-container{min-width:500px;max-width:500px;max-height:90vh;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow-y:auto}.popup-container .content-container{display:flex;gap:15px;margin-bottom:30px}.popup-container .content-container .icon{color:red;font-size:30px}.popup-container .content-container .title{font-size:1.5rem;color:#101828}.popup-container .content-container .description{font-size:14px;color:#475467}\n"] }]
41
41
  }], propDecorators: { title: [{
42
42
  type: Input
43
43
  }], description: [{
@@ -277,6 +277,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
277
277
  type: Output
278
278
  }] } });
279
279
 
280
+ class KvLoadingComponent {
281
+ constructor() {
282
+ this.message = '';
283
+ this.isLoading = false;
284
+ }
285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvLoadingComponent, isStandalone: true, selector: "lib-kv-loading", inputs: { message: "message", isLoading: "isLoading" }, ngImport: i0, template: "<div class=\"loading-component\">\r\n <div class=\"loading-container\" *ngIf=\"isLoading\">\r\n <div class=\"loading-spinner\"></div>\r\n <p>{{message}}</p>\r\n </div>\r\n</div>", styles: [".loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem}.loading-spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
287
+ }
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvLoadingComponent, decorators: [{
289
+ type: Component,
290
+ args: [{ selector: 'lib-kv-loading', standalone: true, imports: [CommonModule], template: "<div class=\"loading-component\">\r\n <div class=\"loading-container\" *ngIf=\"isLoading\">\r\n <div class=\"loading-spinner\"></div>\r\n <p>{{message}}</p>\r\n </div>\r\n</div>", styles: [".loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem}.loading-spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
291
+ }], propDecorators: { message: [{
292
+ type: Input
293
+ }], isLoading: [{
294
+ type: Input
295
+ }] } });
296
+
280
297
  class KvMainTableComponent {
281
298
  constructor() {
282
299
  this.columns = [];
@@ -285,6 +302,7 @@ class KvMainTableComponent {
285
302
  this.lazyLoading = false;
286
303
  this.loading = false;
287
304
  this.totalRecords = 0;
305
+ this.message = '';
288
306
  this.onNameClicked = new EventEmitter();
289
307
  this.onPageChange = new EventEmitter();
290
308
  this.searchText = '';
@@ -373,11 +391,11 @@ class KvMainTableComponent {
373
391
  this.onNameClicked.emit(data);
374
392
  }
375
393
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvMainTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvMainTableComponent, isStandalone: true, selector: "lib-kv-main-table", inputs: { columns: "columns", data: "data", extraData: "extraData", showPaginator: "showPaginator", lazyLoading: "lazyLoading", loading: "loading", totalRecords: "totalRecords" }, outputs: { onNameClicked: "onNameClicked", onPageChange: "onPageChange" }, queries: [{ propertyName: "cellActionsTemplate", first: true, predicate: ["cellActions"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"loading-indicator\" *ngIf=\"loading\">\r\n <span>Cargando datos...</span>\r\n</div>\r\n\r\n<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { 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.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"] }] }); }
394
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvMainTableComponent, isStandalone: true, selector: "lib-kv-main-table", inputs: { columns: "columns", data: "data", extraData: "extraData", showPaginator: "showPaginator", lazyLoading: "lazyLoading", loading: "loading", totalRecords: "totalRecords", message: "message" }, outputs: { onNameClicked: "onNameClicked", onPageChange: "onPageChange" }, queries: [{ propertyName: "cellActionsTemplate", first: true, predicate: ["cellActions"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<lib-kv-loading [message]=\"message\" [isLoading]=\"loading\" > </lib-kv-loading>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n </div>\r\n\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { 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.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: KvLoadingComponent, selector: "lib-kv-loading", inputs: ["message", "isLoading"] }] }); }
377
395
  }
378
396
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvMainTableComponent, decorators: [{
379
397
  type: Component,
380
- args: [{ selector: 'lib-kv-main-table', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"loading-indicator\" *ngIf=\"loading\">\r\n <span>Cargando datos...</span>\r\n</div>\r\n\r\n<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"] }]
398
+ args: [{ selector: 'lib-kv-main-table', standalone: true, imports: [CommonModule, FormsModule, KvLoadingComponent], template: "<lib-kv-loading [message]=\"message\" [isLoading]=\"loading\" > </lib-kv-loading>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n </div>\r\n\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n</ng-container>\r\n", styles: ["input,textarea{padding:10px;width:-webkit-fill-available;border:1px solid #ccc;border-radius:5px;font-size:16px;font-family:Roboto,sans-serif!important;color:#101828;background-color:#fff}input::placeholder,textarea::placeholder{color:#475467}input:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 8px #007bff80;background-color:#fff}input.error,textarea.error{border-color:#fcd9d9;box-shadow:0 0 8px #fcd9d980}.input-group{margin-bottom:15px}.input-group label{font-size:14px;margin-bottom:5px;color:#555}.input-group .error-message{color:red}.input-cost{display:flex;gap:10px}table{width:100%;border-collapse:collapse;text-align:left;border:1px solid #ccc;border-radius:4px}thead{background-color:#fff;color:#101828}tbody{color:#475467}th,td{padding:10px;font-size:14px;border-bottom:1px solid #ccc}tbody tr:hover{background-color:#fff}.state.Active{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Active a{color:#036338!important}.state.Waiting{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Waiting a{color:#b53701!important}.state.Created{background-color:#f8e0d1;color:#b53701!important;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Created a{color:#b53701!important}.state.Offered{background-color:#12b76a26;color:#036338!important;font-weight:700;width:min-content;padding:8px;border-radius:4px;white-space:nowrap}.state.Offered a{color:#036338!important}.state.Closed{background-color:#fcd9d9;color:#581d1d;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Closed a{color:#581d1d!important}.state.Approved{background-color:#d1e7dd;color:#0f5132;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Approved a{color:#0f5132!important}.state.Rejected{background-color:#f8d7da;color:#842029;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Rejected a{color:#842029!important}.state.Pending{background-color:#f8e0d1;color:#b53701;font-weight:700;width:min-content;padding:8px;border-radius:4px}.state.Pending a{color:#b53701!important}.pagination{display:flex;justify-content:space-between;margin-top:10px}.pagination button{padding:5px 10px;border:1px solid #ccc;background-color:#fff;cursor:pointer}.pagination button:disabled{color:#555;cursor:not-allowed}.search-container{margin-bottom:10px;display:flex;justify-content:flex-end;width:100%}.search-container .search-section input{width:min-content!important}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px;color:#101828}.pagination button{padding:6px 12px;border:none;color:#101828;cursor:pointer;border-radius:4px;margin-right:6px}.pagination button:disabled{background-color:#ededed;cursor:not-allowed}.table-pagination{border-top:0!important}.a-link{text-decoration:none}.a-link:hover{cursor:pointer;text-decoration:underline}.a-link2{text-decoration:underline}.a-link2:hover{cursor:pointer;text-decoration:underline}.column-direction{display:flex;flex-direction:row;gap:1rem;padding:2rem;width:100%}.main-text{font-size:30px;color:#101828}.secondary-text{font-size:16px;color:#475467}.sidebar-title{font-size:24px;color:#101828;font-weight:700;margin-bottom:20px}.description-section{margin-top:30px}.description-section .description-title{color:#101828}.description-section .description-body{color:#475467}.list-container{width:100%;border:1px solid #ccc;border-radius:12px;margin-top:22px}.list-container .list-section{margin:1rem;color:#101828}.list-container .list-section .list{margin-top:12px;color:#475467}.required{color:#b90000;font-weight:700}.service-info{align-items:center;display:flex}.service-info img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin:5px}table{width:100%;table-layout:fixed}th{text-align:flex-start;padding:10px}.image-container{display:flex;align-items:center}.image-container img{width:40px;height:40px;border:2px solid #ccc;border-radius:50%;margin-left:-10px}.extra-images{width:40px;height:40px;border-radius:50%;border:2px solid #ccc;margin-left:-10px;background-color:#0052cc;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#0000000d;margin:10px 0;border-radius:4px}.search-section{display:flex;gap:10px;align-items:center}.search-section button{padding:6px 12px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.search-section button:hover{background-color:#e0e0e0}\n"] }]
381
399
  }], propDecorators: { columns: [{
382
400
  type: Input
383
401
  }], data: [{
@@ -392,6 +410,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
392
410
  type: Input
393
411
  }], totalRecords: [{
394
412
  type: Input
413
+ }], message: [{
414
+ type: Input
395
415
  }], cellActionsTemplate: [{
396
416
  type: ContentChild,
397
417
  args: ['cellActions']
@@ -740,5 +760,5 @@ const passwordMatchValidator = (control) => {
740
760
  * Generated bundle index. Do not edit.
741
761
  */
742
762
 
743
- export { API_KEY, ActionType, AuthHelper, AuthInterceptor, AuthService, DatePickerComponent, FormFactoryService, KvAccordionComponent, KvAlertComponent, KvMainTableComponent, KvPopupComponent, KvSideMenuComponent, KvStepComponent, KvStepperComponent, NavigationService, NotificationService, ResourceNotFoundComponent, SessionService, passwordMatchValidator };
763
+ export { API_KEY, ActionType, AuthHelper, AuthInterceptor, AuthService, DatePickerComponent, FormFactoryService, KvAccordionComponent, KvAlertComponent, KvLoadingComponent, KvMainTableComponent, KvPopupComponent, KvSideMenuComponent, KvStepComponent, KvStepperComponent, NavigationService, NotificationService, ResourceNotFoundComponent, SessionService, passwordMatchValidator };
744
764
  //# sourceMappingURL=kivio.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kivio.mjs","sources":["../../../projects/kivio/src/lib/enums/action-type.enum.ts","../../../projects/kivio/src/lib/components/kv-popup/kv-popup.component.ts","../../../projects/kivio/src/lib/components/kv-popup/kv-popup.component.html","../../../projects/kivio/src/lib/components/date-picker/date-picker.component.ts","../../../projects/kivio/src/lib/components/date-picker/date-picker.component.html","../../../projects/kivio/src/lib/components/resource-not-found/resource-not-found.component.ts","../../../projects/kivio/src/lib/components/resource-not-found/resource-not-found.component.html","../../../projects/kivio/src/lib/components/kv-step/kv-step.component.ts","../../../projects/kivio/src/lib/components/kv-step/kv-step.component.html","../../../projects/kivio/src/lib/components/kv-stepper/kv-stepper.component.ts","../../../projects/kivio/src/lib/components/kv-stepper/kv-stepper.component.html","../../../projects/kivio/src/lib/components/kv-accordion/kv-accordion.component.ts","../../../projects/kivio/src/lib/components/kv-accordion/kv-accordion.component.html","../../../projects/kivio/src/lib/components/kv-alert/kv-alert.component.ts","../../../projects/kivio/src/lib/components/kv-alert/kv-alert.component.html","../../../projects/kivio/src/lib/components/kv-side-menu/kv-side-menu.component.ts","../../../projects/kivio/src/lib/components/kv-side-menu/kv-side-menu.component.html","../../../projects/kivio/src/lib/components/kv-main-table/kv-main-table.component.ts","../../../projects/kivio/src/lib/components/kv-main-table/kv-main-table.component.html","../../../projects/kivio/src/lib/factories/form-factory.service.ts","../../../projects/kivio/src/lib/services/navigation.service.ts","../../../projects/kivio/src/lib/services/notification.service.ts","../../../projects/kivio/src/lib/services/session.service.ts","../../../projects/kivio/src/lib/injection-tokens/auth-config.ts","../../../projects/kivio/src/lib/services/auth-interceptor.service.ts","../../../projects/kivio/src/lib/services/auth.service.ts","../../../projects/kivio/src/lib/helpers/auth.helper.ts","../../../projects/kivio/src/lib/validators/password-missmatch.validator.ts","../../../projects/kivio/src/public-api.ts","../../../projects/kivio/src/kivio.ts"],"sourcesContent":["export enum ActionType {\r\n Info = \"info\",\r\n Warn = \"warn\",\r\n Error = \"error\",\r\n Advertise = \"advertise\"\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ActionType } from '../../enums/action-type.enum';\r\n\r\n@Component({\r\n selector: 'lib-kv-popup',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-popup.component.html',\r\n styleUrl: './kv-popup.component.scss'\r\n})\r\nexport class KvPopupComponent{\r\n\r\n @Input() title: string = '';\r\n @Input() description!: string;\r\n @Input() isCustomTemplate!: boolean;\r\n @Input() actionType!: ActionType;\r\n @Output() onAccept: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public actionTypeEnum = ActionType;\r\n\r\n public onAcceptSubmit(): void {\r\n this.onAccept.emit();\r\n }\r\n\r\n public onCloseSubmit(): void {\r\n this.onClose.emit();\r\n }\r\n}","<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Output, Input } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-kv-date-picker',\r\n standalone: true,\r\n imports: [FormsModule, CommonModule],\r\n templateUrl: './date-picker.component.html',\r\n styleUrl: './date-picker.component.scss'\r\n})\r\nexport class DatePickerComponent {\r\n @Input() initialDate?: Date;\r\n @Input() showDetails = false;\r\n @Output() dateSelected = new EventEmitter<Date>();\r\n\r\n selectedDate: Date = new Date();\r\n minDate: string = '';\r\n\r\n ngOnInit() {\r\n this.minDate = this.formatDateForInput(new Date());\r\n\r\n if (this.initialDate) {\r\n this.selectedDate = this.initialDate >= new Date(this.minDate) ? this.initialDate : new Date();\r\n }\r\n }\r\n\r\n formatDateForInput(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n onDateChange(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n const newDate = new Date(input.value + \"T00:00:00\");\r\n\r\n if (newDate >= new Date(this.minDate)) {\r\n this.selectedDate = newDate;\r\n this.dateSelected.emit(this.selectedDate);\r\n } else {\r\n input.value = this.minDate;\r\n }\r\n }\r\n}\r\n","<div class=\"date-picker\">\r\n <input \r\n type=\"date\" \r\n [value]=\"formatDateForInput(selectedDate)\" \r\n [min]=\"minDate\" \r\n (input)=\"onDateChange($event)\" \r\n class=\"form-control\">\r\n \r\n <div *ngIf=\"showDetails\" class=\"date-details\">\r\n <p>{{ selectedDate | date:'fullDate' }}</p>\r\n </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-resource-not-found',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './resource-not-found.component.html',\r\n styleUrl: './resource-not-found.component.scss'\r\n})\r\nexport class ResourceNotFoundComponent {\r\n\r\n}\r\n","<div class=\"not-found\">\r\n <h2>Recurso no encontrado</h2>\r\n <p>El recurso consultado no está disponible</p>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-step',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-step.component.html',\r\n styleUrl: './kv-step.component.scss'\r\n})\r\nexport class KvStepComponent {\r\n @Input() title!: string;\r\n @Input() description!: string;\r\n @ContentChild(TemplateRef) content!: TemplateRef<any>;\r\n}\r\n","<p>kv-step works!</p>\r\n","import { CommonModule } from '@angular/common';\r\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, signal, TemplateRef } from '@angular/core';\r\nimport { KvStepComponent } from '../kv-step/kv-step.component';\r\n\r\n@Component({\r\n selector: 'lib-kv-stepper',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-stepper.component.html',\r\n styleUrl: './kv-stepper.component.scss'\r\n})\r\n\r\nexport class KvStepperComponent implements AfterContentInit {\r\n currentStep = signal(0);\r\n \r\n @ContentChildren(KvStepComponent) steps!: QueryList<KvStepComponent>;\r\n\r\n @Input() public isSimpleStepper: boolean = false;\r\n @Input() public isVertical: boolean = false;\r\n @Input() public isAssociated: boolean = false;\r\n @Output() submit = new EventEmitter<void>();\r\n @Output() closeEvent = new EventEmitter<void>();\r\n @Output() isLastStep = new EventEmitter<boolean>();\r\n\r\n ngAfterContentInit() {\r\n if (this.steps.length === 0) {\r\n console.error('No se encontraron pasos en el stepper');\r\n }\r\n }\r\n\r\n next() {\r\n this.isLastStep.emit(true);\r\n if (this.currentStep() < this.steps.length - 1) {\r\n this.currentStep.update(val => val + 1);\r\n }\r\n }\r\n\r\n previous() {\r\n if (this.currentStep() > 0) {\r\n this.currentStep.update(val => val - 1);\r\n this.isLastStep.emit(true);\r\n }\r\n }\r\n\r\n close() {\r\n this.closeEvent.emit();\r\n }\r\n}","<ng-container *ngIf=\"!isSimpleStepper\">\r\n <div class=\"stepper-container\">\r\n <div class=\"step-header\">\r\n <div *ngFor=\"let step of steps; let i = index\" class=\"step-item\" [class.active]=\"currentStep() === i\"\r\n [class.completed]=\"i < currentStep()\">\r\n <div class=\"step-number\">{{ i + 1 }}</div>\r\n <div class=\"step-title\">{{ step.title }}</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"step-content\">\r\n <ng-container *ngIf=\"steps.get(currentStep())?.content\">\r\n <ng-container *ngTemplateOutlet=\"steps.get(currentStep())!.content\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n \r\n <div class=\"step-actions\">\r\n <button class=\"button--cancel\" (click)=\"close()\">Cancel</button>\r\n <button class=\"button--primary-min\" *ngIf=\"currentStep() > 0\" (click)=\"previous()\">Anterior</button>\r\n <button class=\"button--primary-min\" *ngIf=\"currentStep() < steps.length - 1\" (click)=\"next()\" [disabled]=\"!isAssociated\">Next</button>\r\n <button class=\"button--primary-min\" *ngIf=\"currentStep() === steps.length - 1\" (click)=\"submit.emit()\">Create</button>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isSimpleStepper && !isVertical\">\r\n <div class=\"stepper-container-simple\">\r\n <div class=\"step-header\">\r\n <div *ngFor=\"let step of steps; let i = index\" class=\"step-item\" [class.active]=\"currentStep() === i\"\r\n [class.completed]=\"i < currentStep()\">\r\n <div class=\"step-number\">{{ i + 1 }}</div>\r\n <div class=\"step-title\">{{ step.title }}</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"step-content-simple\">\r\n <ng-container *ngIf=\"steps.get(currentStep())?.content\">\r\n <ng-container *ngTemplateOutlet=\"steps.get(currentStep())!.content\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isSimpleStepper && isVertical\">\r\n <div class=\"stepper-container-vertical\">\r\n <div class=\"vertical-steps\">\r\n <div *ngFor=\"let step of steps; let i = index\" class=\"vertical-step-item\">\r\n <div class=\"step-indicator-container\">\r\n <div class=\"vertical-step-indicator\" \r\n [class.active]=\"currentStep() === i\"\r\n [class.completed]=\"i < currentStep()\">\r\n <div class=\"step-number\">{{ i + 1 }}</div>\r\n </div>\r\n <div class=\"vertical-line\" *ngIf=\"i !== steps.length - 1\"></div>\r\n </div>\r\n <div class=\"title-container\">\r\n <div class=\"step-title\">{{ step.title }}</div>\r\n <div class=\"step-description\">{{ step.description }}</div>\r\n </div>\r\n <div class=\"vertical-step-content\" \r\n [class.active]=\"currentStep() === i\"\r\n (click)=\"currentStep.set(i)\">\r\n <div class=\"step-content-vertical\" *ngIf=\"currentStep() === i\">\r\n <ng-container *ngTemplateOutlet=\"step.content\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-accordion',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-accordion.component.html',\r\n styleUrl: './kv-accordion.component.scss'\r\n})\r\nexport class KvAccordionComponent {\r\n @Input() isOpen = false;\r\n @Input() title = '';\r\n @Input() shouldShowImage = true;\r\n @Output() opened = new EventEmitter<void>();\r\n\r\n toggle() {\r\n this.isOpen = !this.isOpen;\r\n if(this.isOpen) {\r\n this.opened.emit();\r\n }\r\n }\r\n}\r\n","<div class=\"accordion\">\r\n <div class=\"accordion-header\" (click)=\"toggle()\">\r\n <div class=\"accordion-title\">\r\n <ng-container *ngIf=\"shouldShowImage\">\r\n <img width=\"40px\" [src]=\"'https://i.imgur.com/InRaVrL.jpg'\" alt=\"User Avatar\" class=\"avatar\">\r\n </ng-container>\r\n <span>{{ title }}</span>\r\n </div>\r\n <span class=\"accordion-icon\" [class.open]=\"isOpen\">▼</span>\r\n </div>\r\n <div class=\"accordion-content\" [class.open]=\"isOpen\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-alert',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-alert.component.html',\r\n styleUrl: './kv-alert.component.scss'\r\n})\r\nexport class KvAlertComponent implements OnInit{\r\n\r\n @Input() message: string = '';\r\n @Input() description: string = '';\r\n @Input() type = 'warning';\r\n @Input() timeoutDuration: number = 5000;\r\n @Output() close = new EventEmitter<void>();\r\n\r\n ngOnInit() {\r\n if (this.timeoutDuration > 0) {\r\n setTimeout(() => this.onClose(), this.timeoutDuration);\r\n }\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n}\r\n","<div class=\"alert-container\">\r\n <div class=\"icon\" [ngClass]=\"type\">\r\n <ng-container *ngIf=\"type === 'success'\">\r\n <i class=\"icon material-icons\">check</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"type !== 'success'\">\r\n <i class=\"icon material-icons\">close</i>\r\n </ng-container>\r\n </div>\r\n <div class=\"message\">\r\n <strong>{{ message }}</strong>\r\n <p>{{ description }}</p>\r\n </div>\r\n <button class=\"close-btn\" (click)=\"onClose()\">&#10006;</button>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-side-menu',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-side-menu.component.html',\r\n styleUrl: './kv-side-menu.component.scss'\r\n})\r\nexport class KvSideMenuComponent {\r\n @Input() breadcrumb: string = '';\r\n @Output() onEdit: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onDelete: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onSaveChanges: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public isEditMode: boolean = false;\r\n\r\n public handleEditButtonClicked(): void {\r\n this.isEditMode = !this.isEditMode;\r\n this.onEdit.emit(this.isEditMode);\r\n }\r\n\r\n public handleCloseButtonClicked(): void {\r\n this.onClose.emit();\r\n }\r\n\r\n public handleDeleteButtonClicked(): void {\r\n this.onDelete.emit();\r\n }\r\n\r\n public handleSaveChangesButtonClicked(): void {\r\n this.onSaveChanges.emit();\r\n }\r\n}\r\n","<div class=\"right-menu\">\r\n <div class=\"header\">\r\n <ng-container *ngIf=\"!isEditMode\">\r\n <span>{{ breadcrumb }}</span>\r\n <div>\r\n <button class=\"delete-button section-button\" (click)=\"handleDeleteButtonClicked()\"><i class=\"icon material-icons\">delete</i></button>\r\n <button class=\"edit-button section-button\" (click)=\"handleEditButtonClicked()\"><i class=\"icon material-icons\">edit</i></button>\r\n <button class=\"close-button section-button\" (click)=\"handleCloseButtonClicked()\"><i class=\"icon material-icons\">close</i></button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"isEditMode\">\r\n <button class=\"edit-button section-button\" (click)=\"handleEditButtonClicked()\"><i class=\"icon material-icons\">arrow_back</i></button>\r\n <div>\r\n <button class=\"button--primary-min\" (click)=\"handleSaveChangesButtonClicked()\">Save changes</button>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-kv-main-table',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './kv-main-table.component.html',\r\n styleUrl: './kv-main-table.component.scss',\r\n})\r\nexport class KvMainTableComponent implements OnInit, OnChanges {\r\n @Input() columns: { key: string; label: string }[] = [];\r\n @Input() data: any[] = [];\r\n @Input() extraData!: any[];\r\n @Input() showPaginator: boolean = true;\r\n @Input() lazyLoading: boolean = false;\r\n @Input() loading: boolean = false;\r\n @Input() totalRecords: number = 0;\r\n\r\n @ContentChild('cellActions') cellActionsTemplate: any;\r\n @Output() onNameClicked: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onPageChange: EventEmitter<{\r\n page: number;\r\n pageSize: number;\r\n searchText: string;\r\n }> = new EventEmitter<{\r\n page: number;\r\n pageSize: number;\r\n searchText: string;\r\n }>();\r\n\r\n searchText: string = '';\r\n currentPage: number = 1;\r\n pageSize: number = 5;\r\n filteredItems: any[] = [];\r\n\r\n ngOnInit() {\r\n this.updateFilteredData();\r\n if (this.lazyLoading) {\r\n this.loadLazyData();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['data'] || changes['searchText']) {\r\n this.updateFilteredData();\r\n }\r\n }\r\n\r\n private updateFilteredData() {\r\n if (!this.lazyLoading) {\r\n this.filteredItems = this.getFilteredData();\r\n }\r\n }\r\n\r\n private getFilteredData() {\r\n return this.data\r\n .filter((item) =>\r\n this.columns.some((col) =>\r\n item[col.key]\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.searchText.toLowerCase())\r\n )\r\n )\r\n .slice(\r\n (this.currentPage - 1) * this.pageSize,\r\n this.currentPage * this.pageSize\r\n );\r\n }\r\n\r\n get filteredData() {\r\n return this.lazyLoading ? this.data : this.getFilteredData();\r\n }\r\n\r\n totalPages(): number {\r\n if (this.lazyLoading) {\r\n return Math.ceil(this.totalRecords / this.pageSize);\r\n }\r\n\r\n return Math.ceil(\r\n this.data.filter((item) =>\r\n this.columns.some((col) =>\r\n item[col.key]\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.searchText.toLowerCase())\r\n )\r\n ).length / this.pageSize\r\n );\r\n }\r\n\r\n changePage(direction: number) {\r\n if (this.lazyLoading) {\r\n const newPage = this.currentPage + direction;\r\n if (newPage >= 1) {\r\n this.currentPage = newPage;\r\n this.loadLazyData();\r\n } else {\r\n if (this.currentPage !== 1) {\r\n this.currentPage = 1;\r\n this.loadLazyData();\r\n }\r\n }\r\n } else {\r\n const newPage = this.currentPage + direction;\r\n if (newPage > 0 && newPage <= this.totalPages()) {\r\n this.currentPage = newPage;\r\n this.updateFilteredData();\r\n }\r\n }\r\n }\r\n\r\n onSearch() {\r\n this.currentPage = 1;\r\n if (this.lazyLoading) {\r\n this.loadLazyData();\r\n } else {\r\n this.updateFilteredData();\r\n }\r\n }\r\n\r\n loadLazyData() {\r\n this.onPageChange.emit({\r\n page: this.currentPage,\r\n pageSize: this.pageSize,\r\n searchText: this.searchText,\r\n });\r\n }\r\n\r\n public getPosName(posId: string): string {\r\n return (\r\n this.extraData?.find((pos) => pos.point_of_sale_id === posId)?.name || ''\r\n );\r\n }\r\n\r\n public emitData(data: any) {\r\n this.onNameClicked.emit(data);\r\n }\r\n}\r\n","<div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"loading-indicator\" *ngIf=\"loading\">\r\n <span>Cargando datos...</span>\r\n</div>\r\n\r\n<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { FormFieldConfig } from '../interfaces/form-field.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormFactoryService {\r\n constructor(private fb: FormBuilder) { }\r\n\r\n createForm(config: FormFieldConfig[], customValidator?: ValidatorFn): FormGroup {\r\n const formGroup = this.fb.group({}, { validators: customValidator });\r\n config.forEach((field) => {\r\n const control = this.fb.control(\r\n field.defaultValue || '',\r\n field.validators || []\r\n );\r\n formGroup.addControl(field.name, control);\r\n });\r\n return formGroup;\r\n }\r\n\r\n createFormArray(config: FormFieldConfig[], customValidator?: ValidatorFn): FormArray {\r\n const formArray = this.fb.array([], { validators: customValidator });\r\n config.forEach((field) => {\r\n const control = this.fb.control(\r\n field.defaultValue || '',\r\n field.validators || []\r\n );\r\n formArray.push(control);\r\n });\r\n return formArray;\r\n }\r\n\r\n createFormArrayOfGroups(config: FormFieldConfig[], initialCount: number, customValidator?: ValidatorFn): FormArray {\r\n const formArray = this.fb.array<FormGroup>([], { validators: customValidator });\r\n\r\n for (let i = 0; i < initialCount; i++) {\r\n const group = this.createForm(config);\r\n formArray.push(group);\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n createLoginForm(): FormGroup {\r\n return this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n password: ['', [Validators.required, Validators.minLength(8)]],\r\n });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n constructor(private router: Router) { }\r\n\r\n navigateToLogin(): Promise<boolean> {\r\n return this.router.navigate(['/login']);\r\n }\r\n\r\n navigateToOffers(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/offers']);\r\n }\r\n\r\n navigateToOffersDetails(id: string): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/offers-details'], {\r\n queryParams: { offerId: id }\r\n });\r\n }\r\n\r\n navigateToResetPassword(): Promise<boolean> {\r\n return this.router.navigate(['/login/reset-password']);\r\n }\r\n\r\n navigateToPointOfSaleDetails(id: string): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/point-of-sale-details'], {\r\n queryParams: { pointOfSaleId: id }\r\n });\r\n }\r\n\r\n navigateToPointOfSale(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/point-of-sale']);\r\n }\r\n\r\n navigateToItems(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/items']);\r\n }\r\n\r\n navigateToItemsDetails(id: string, posId: string): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/items-details'], {\r\n queryParams: { itemId: id, pointOfSaleId: posId}\r\n });\r\n }\r\n\r\n navigateToRules(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/rules']);\r\n }\r\n\r\n navigateToRulesManager(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/rules-manager']);\r\n }\r\n\r\n navigateToOfferFlow(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/offer-flow']);\r\n }\r\n\r\n navigateToPayment(price: number): Promise<boolean> {\r\n return this.router.navigate(['/auctions/payment']);\r\n }\r\n\r\n navigateToBillingRecords(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/billing-record']);\r\n }\r\n\r\n navigateToIntegrations(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/integrations']);\r\n }\r\n\r\n navigateToOrders(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/orders']);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActionType } from '../enums/action-type.enum';\r\n\r\ninterface PopupState {\r\n show: boolean;\r\n title: string;\r\n actionType?: ActionType;\r\n description: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n private popupState = new BehaviorSubject<PopupState>({\r\n show: false,\r\n title: '',\r\n description: '',\r\n actionType: ActionType.Info\r\n });\r\n\r\n popupState$ = this.popupState.asObservable();\r\n\r\n showNotification(title: string, description: string, actionType?: ActionType): void {\r\n this.popupState.next({\r\n show: true,\r\n title,\r\n description,\r\n actionType: actionType || ActionType.Info\r\n });\r\n }\r\n\r\n hideNotification(): void {\r\n this.popupState.next({\r\n show: false,\r\n title: '',\r\n description: '',\r\n actionType: ActionType.Info\r\n });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, ReplaySubject, map } from 'rxjs';\r\n\r\ninterface SessionData {\r\n pointsOfSale?: any[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SessionService {\r\n private sessionSubject = new ReplaySubject<SessionData | null>(1);\r\n\r\n constructor() {\r\n this.sessionSubject.next(null);\r\n }\r\n\r\n setSessionData(data: SessionData): void {\r\n this.sessionSubject.next(data);\r\n }\r\n\r\n getCurrentSessionData(): SessionData | null {\r\n let value: SessionData | null = null;\r\n this.sessionSubject.subscribe(v => value = v).unsubscribe();\r\n return value;\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nexport const API_KEY = new InjectionToken<string>('API_KEY');","import { inject, Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { API_KEY } from '../injection-tokens/auth-config';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n const cookieService = inject(CookieService);\r\n const apiKey = inject(API_KEY);\r\n const token = cookieService.get('jwt');\r\n const modifiedReq = request.clone({\r\n headers: request.headers\r\n .set('Access_token', token)\r\n .set('Api_Key', apiKey) \r\n });\r\n return next.handle(modifiedReq);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { BehaviorSubject, firstValueFrom } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nexport interface Session {\r\n access_token: string;\r\n refresh_token: string;\r\n expires_in?: number;\r\n user?: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n private sessionSubject = new BehaviorSubject<Session | null>(null);\r\n protected refreshTimeout: any;\r\n private apiUrl = 'http://localhost:9090/v1';\r\n private apiKey = '';\r\n\r\n constructor(\r\n private readonly cookieService: CookieService,\r\n private readonly http: HttpClient\r\n ) {\r\n this.getSession().catch(() => null);\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Api_Key': this.apiKey\r\n });\r\n }\r\n\r\n public configureApi(apiUrl: string, apiKey?: string): void {\r\n if (apiUrl) this.apiUrl = apiUrl;\r\n if (apiKey) this.apiKey = apiKey;\r\n }\r\n\r\n public getCurrentSession(): Session | null {\r\n return this.sessionSubject.getValue();\r\n }\r\n\r\n public signIn(email: string, password: string): Promise<any> {\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-auth`, { email, password }, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n if (response) {\r\n this.sessionSubject.next(response);\r\n localStorage.setItem('refresh_token', response.refresh_token || '');\r\n if (this.isValidLoginResponse(response)) {\r\n this.handleSuccessfulRefresh(response);\r\n this.startRefreshTimer(response);\r\n }\r\n }\r\n return response;\r\n });\r\n }\r\n\r\n public signOut(): Promise<any> {\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-signout`, {}, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n this.sessionSubject.next(null);\r\n this.cookieService.deleteAll();\r\n localStorage.removeItem('refresh_token');\r\n return response;\r\n }).catch(error => {\r\n console.error('Error signing out:', error);\r\n this.sessionSubject.next(null);\r\n this.cookieService.deleteAll();\r\n localStorage.removeItem('refresh_token');\r\n throw error;\r\n });\r\n }\r\n\r\n public sendResetPasswordEmail(email: string): Promise<any> {\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-reset-password`, { email }, { headers: this.getHeaders() })\r\n );\r\n }\r\n\r\n public setNewPassword(newPassword: string): Promise<any> {\r\n const accessToken = this.cookieService.get('access_token');\r\n const headers = this.getHeaders().set('Authorization', `Bearer ${accessToken}`);\r\n\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-set-password`, { password: newPassword }, { headers })\r\n );\r\n }\r\n\r\n public getSession(): Promise<any> {\r\n const refreshToken = localStorage.getItem('refresh_token');\r\n if (!refreshToken) {\r\n return Promise.resolve({ data: { session: null } });\r\n }\r\n \r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-session`, { refresh_token: refreshToken }, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n if (response?.data?.session) {\r\n this.sessionSubject.next(response.data.session);\r\n if (this.isValidLoginResponse(response.data)) {\r\n this.handleSuccessfulRefresh(response.data);\r\n this.startRefreshTimer(response.data.session);\r\n }\r\n }\r\n return response;\r\n });\r\n }\r\n\r\n public refreshSession(): Promise<any> {\r\n const refreshToken = localStorage.getItem('refresh_token');\r\n if (!refreshToken) {\r\n return Promise.resolve({ data: { session: null } });\r\n }\r\n \r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-refresh`, { refresh_token: refreshToken }, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n if (response?.data) {\r\n this.sessionSubject.next(response.data);\r\n localStorage.setItem('refresh_token', response.data.refresh_token || '');\r\n if (this.isValidLoginResponse(response.data)) {\r\n this.handleSuccessfulRefresh(response.data);\r\n this.startRefreshTimer(response.data);\r\n }\r\n }\r\n return response;\r\n });\r\n }\r\n\r\n public startRefreshTimer(session: Session) {\r\n const expiresIn = session.expires_in || 3200;\r\n this.refreshTimeout = setTimeout(() => {\r\n this.refreshSession().catch(console.error);\r\n }, (expiresIn - 60) * 1000);\r\n }\r\n\r\n public getSessionObservable() {\r\n return this.sessionSubject.asObservable();\r\n }\r\n\r\n private isValidLoginResponse(data: any): boolean {\r\n return !!(\r\n data?.access_token &&\r\n data?.user?.app_metadata?.role\r\n );\r\n }\r\n\r\n private handleSuccessfulRefresh(data: any): void {\r\n const token = data!.access_token;\r\n this.cookieService.delete('jwt');\r\n this.cookieService.set('jwt', token);\r\n }\r\n}\r\n","export class AuthHelper {\r\n\r\n public static getUserId(): string | null {\r\n return localStorage.getItem(\"userId\") || null;\r\n }\r\n\r\n public static getUserRole(): string | null {\r\n return localStorage.getItem(\"userRole\") || null;\r\n }\r\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const passwordMatchValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const password = control.get('password');\r\n const confirmPassword = control.get('confirmPassword');\r\n\r\n if (!password || !confirmPassword) {\r\n return null;\r\n }\r\n\r\n if (password.pristine || confirmPassword.pristine) {\r\n return null;\r\n }\r\n\r\n return password.value === confirmPassword.value ? null : { passwordMismatch: true };\r\n};","/*\r\n * Public API Surface of kivio\r\n */\r\n\r\n//Components\r\nexport * from './lib/components/kv-popup/kv-popup.component';\r\nexport * from './lib/components/date-picker/date-picker.component';\r\nexport * from './lib/components/resource-not-found/resource-not-found.component'\r\nexport * from './lib/components/kv-stepper/kv-stepper.component';\r\nexport * from './lib/components/kv-step/kv-step.component';\r\nexport * from './lib/components/kv-accordion/kv-accordion.component';\r\nexport * from './lib/components/kv-alert/kv-alert.component';\r\nexport * from './lib/components/kv-side-menu/kv-side-menu.component'\r\nexport * from './lib/components/kv-main-table/kv-main-table.component'\r\n\r\n//Services\r\nexport * from './lib/factories/form-factory.service';\r\nexport * from './lib/services/navigation.service';\r\nexport * from './lib/services/notification.service';\r\nexport * from './lib/services/session.service';\r\nexport * from './lib/services/auth-interceptor.service';\r\nexport * from './lib/services/auth.service';\r\n\r\n//Configs\r\nexport * from './lib/interfaces/form-field.config';\r\n\r\n//Helpers\r\nexport * from './lib/helpers/auth.helper'\r\n\r\n//Validators\r\nexport * from './lib/validators/password-missmatch.validator'\r\n\r\n//Enums\r\nexport * from './lib/enums/action-type.enum'\r\n\r\n// Injection Tokens\r\nexport * from './lib/injection-tokens/auth-config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"kivio.mjs","sources":["../../../projects/kivio/src/lib/enums/action-type.enum.ts","../../../projects/kivio/src/lib/components/kv-popup/kv-popup.component.ts","../../../projects/kivio/src/lib/components/kv-popup/kv-popup.component.html","../../../projects/kivio/src/lib/components/date-picker/date-picker.component.ts","../../../projects/kivio/src/lib/components/date-picker/date-picker.component.html","../../../projects/kivio/src/lib/components/resource-not-found/resource-not-found.component.ts","../../../projects/kivio/src/lib/components/resource-not-found/resource-not-found.component.html","../../../projects/kivio/src/lib/components/kv-step/kv-step.component.ts","../../../projects/kivio/src/lib/components/kv-step/kv-step.component.html","../../../projects/kivio/src/lib/components/kv-stepper/kv-stepper.component.ts","../../../projects/kivio/src/lib/components/kv-stepper/kv-stepper.component.html","../../../projects/kivio/src/lib/components/kv-accordion/kv-accordion.component.ts","../../../projects/kivio/src/lib/components/kv-accordion/kv-accordion.component.html","../../../projects/kivio/src/lib/components/kv-alert/kv-alert.component.ts","../../../projects/kivio/src/lib/components/kv-alert/kv-alert.component.html","../../../projects/kivio/src/lib/components/kv-side-menu/kv-side-menu.component.ts","../../../projects/kivio/src/lib/components/kv-side-menu/kv-side-menu.component.html","../../../projects/kivio/src/lib/components/kv-loading/kv-loading.component.ts","../../../projects/kivio/src/lib/components/kv-loading/kv-loading.component.html","../../../projects/kivio/src/lib/components/kv-main-table/kv-main-table.component.ts","../../../projects/kivio/src/lib/components/kv-main-table/kv-main-table.component.html","../../../projects/kivio/src/lib/factories/form-factory.service.ts","../../../projects/kivio/src/lib/services/navigation.service.ts","../../../projects/kivio/src/lib/services/notification.service.ts","../../../projects/kivio/src/lib/services/session.service.ts","../../../projects/kivio/src/lib/injection-tokens/auth-config.ts","../../../projects/kivio/src/lib/services/auth-interceptor.service.ts","../../../projects/kivio/src/lib/services/auth.service.ts","../../../projects/kivio/src/lib/helpers/auth.helper.ts","../../../projects/kivio/src/lib/validators/password-missmatch.validator.ts","../../../projects/kivio/src/public-api.ts","../../../projects/kivio/src/kivio.ts"],"sourcesContent":["export enum ActionType {\r\n Info = \"info\",\r\n Warn = \"warn\",\r\n Error = \"error\",\r\n Advertise = \"advertise\"\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ActionType } from '../../enums/action-type.enum';\r\n\r\n@Component({\r\n selector: 'lib-kv-popup',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-popup.component.html',\r\n styleUrl: './kv-popup.component.scss'\r\n})\r\nexport class KvPopupComponent{\r\n\r\n @Input() title: string = '';\r\n @Input() description!: string;\r\n @Input() isCustomTemplate!: boolean;\r\n @Input() actionType!: ActionType;\r\n @Output() onAccept: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public actionTypeEnum = ActionType;\r\n\r\n public onAcceptSubmit(): void {\r\n this.onAccept.emit();\r\n }\r\n\r\n public onCloseSubmit(): void {\r\n this.onClose.emit();\r\n }\r\n}","<div class=\"popup-backdrop\">\r\n <div class=\"popup-container\">\r\n <div class=\"content-container\">\r\n <div *ngIf=\"!isCustomTemplate\">\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <i class=\"icon material-icons\">error</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <i class=\"icon material-icons\">warning</i>\r\n </ng-container>\r\n </div>\r\n <div>\r\n <div class=\"title\">{{ title }}</div>\r\n <div *ngIf=\"description\">\r\n <p class=\"description\">{{ description }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n <ng-template #defaultContent>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n <div class=\"button-container\">\r\n <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Output, Input } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-kv-date-picker',\r\n standalone: true,\r\n imports: [FormsModule, CommonModule],\r\n templateUrl: './date-picker.component.html',\r\n styleUrl: './date-picker.component.scss'\r\n})\r\nexport class DatePickerComponent {\r\n @Input() initialDate?: Date;\r\n @Input() showDetails = false;\r\n @Output() dateSelected = new EventEmitter<Date>();\r\n\r\n selectedDate: Date = new Date();\r\n minDate: string = '';\r\n\r\n ngOnInit() {\r\n this.minDate = this.formatDateForInput(new Date());\r\n\r\n if (this.initialDate) {\r\n this.selectedDate = this.initialDate >= new Date(this.minDate) ? this.initialDate : new Date();\r\n }\r\n }\r\n\r\n formatDateForInput(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n onDateChange(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n const newDate = new Date(input.value + \"T00:00:00\");\r\n\r\n if (newDate >= new Date(this.minDate)) {\r\n this.selectedDate = newDate;\r\n this.dateSelected.emit(this.selectedDate);\r\n } else {\r\n input.value = this.minDate;\r\n }\r\n }\r\n}\r\n","<div class=\"date-picker\">\r\n <input \r\n type=\"date\" \r\n [value]=\"formatDateForInput(selectedDate)\" \r\n [min]=\"minDate\" \r\n (input)=\"onDateChange($event)\" \r\n class=\"form-control\">\r\n \r\n <div *ngIf=\"showDetails\" class=\"date-details\">\r\n <p>{{ selectedDate | date:'fullDate' }}</p>\r\n </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-resource-not-found',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './resource-not-found.component.html',\r\n styleUrl: './resource-not-found.component.scss'\r\n})\r\nexport class ResourceNotFoundComponent {\r\n\r\n}\r\n","<div class=\"not-found\">\r\n <h2>Recurso no encontrado</h2>\r\n <p>El recurso consultado no está disponible</p>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-step',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-step.component.html',\r\n styleUrl: './kv-step.component.scss'\r\n})\r\nexport class KvStepComponent {\r\n @Input() title!: string;\r\n @Input() description!: string;\r\n @ContentChild(TemplateRef) content!: TemplateRef<any>;\r\n}\r\n","<p>kv-step works!</p>\r\n","import { CommonModule } from '@angular/common';\r\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, signal, TemplateRef } from '@angular/core';\r\nimport { KvStepComponent } from '../kv-step/kv-step.component';\r\n\r\n@Component({\r\n selector: 'lib-kv-stepper',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-stepper.component.html',\r\n styleUrl: './kv-stepper.component.scss'\r\n})\r\n\r\nexport class KvStepperComponent implements AfterContentInit {\r\n currentStep = signal(0);\r\n \r\n @ContentChildren(KvStepComponent) steps!: QueryList<KvStepComponent>;\r\n\r\n @Input() public isSimpleStepper: boolean = false;\r\n @Input() public isVertical: boolean = false;\r\n @Input() public isAssociated: boolean = false;\r\n @Output() submit = new EventEmitter<void>();\r\n @Output() closeEvent = new EventEmitter<void>();\r\n @Output() isLastStep = new EventEmitter<boolean>();\r\n\r\n ngAfterContentInit() {\r\n if (this.steps.length === 0) {\r\n console.error('No se encontraron pasos en el stepper');\r\n }\r\n }\r\n\r\n next() {\r\n this.isLastStep.emit(true);\r\n if (this.currentStep() < this.steps.length - 1) {\r\n this.currentStep.update(val => val + 1);\r\n }\r\n }\r\n\r\n previous() {\r\n if (this.currentStep() > 0) {\r\n this.currentStep.update(val => val - 1);\r\n this.isLastStep.emit(true);\r\n }\r\n }\r\n\r\n close() {\r\n this.closeEvent.emit();\r\n }\r\n}","<ng-container *ngIf=\"!isSimpleStepper\">\r\n <div class=\"stepper-container\">\r\n <div class=\"step-header\">\r\n <div *ngFor=\"let step of steps; let i = index\" class=\"step-item\" [class.active]=\"currentStep() === i\"\r\n [class.completed]=\"i < currentStep()\">\r\n <div class=\"step-number\">{{ i + 1 }}</div>\r\n <div class=\"step-title\">{{ step.title }}</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"step-content\">\r\n <ng-container *ngIf=\"steps.get(currentStep())?.content\">\r\n <ng-container *ngTemplateOutlet=\"steps.get(currentStep())!.content\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n \r\n <div class=\"step-actions\">\r\n <button class=\"button--cancel\" (click)=\"close()\">Cancel</button>\r\n <button class=\"button--primary-min\" *ngIf=\"currentStep() > 0\" (click)=\"previous()\">Anterior</button>\r\n <button class=\"button--primary-min\" *ngIf=\"currentStep() < steps.length - 1\" (click)=\"next()\" [disabled]=\"!isAssociated\">Next</button>\r\n <button class=\"button--primary-min\" *ngIf=\"currentStep() === steps.length - 1\" (click)=\"submit.emit()\">Create</button>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isSimpleStepper && !isVertical\">\r\n <div class=\"stepper-container-simple\">\r\n <div class=\"step-header\">\r\n <div *ngFor=\"let step of steps; let i = index\" class=\"step-item\" [class.active]=\"currentStep() === i\"\r\n [class.completed]=\"i < currentStep()\">\r\n <div class=\"step-number\">{{ i + 1 }}</div>\r\n <div class=\"step-title\">{{ step.title }}</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"step-content-simple\">\r\n <ng-container *ngIf=\"steps.get(currentStep())?.content\">\r\n <ng-container *ngTemplateOutlet=\"steps.get(currentStep())!.content\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isSimpleStepper && isVertical\">\r\n <div class=\"stepper-container-vertical\">\r\n <div class=\"vertical-steps\">\r\n <div *ngFor=\"let step of steps; let i = index\" class=\"vertical-step-item\">\r\n <div class=\"step-indicator-container\">\r\n <div class=\"vertical-step-indicator\" \r\n [class.active]=\"currentStep() === i\"\r\n [class.completed]=\"i < currentStep()\">\r\n <div class=\"step-number\">{{ i + 1 }}</div>\r\n </div>\r\n <div class=\"vertical-line\" *ngIf=\"i !== steps.length - 1\"></div>\r\n </div>\r\n <div class=\"title-container\">\r\n <div class=\"step-title\">{{ step.title }}</div>\r\n <div class=\"step-description\">{{ step.description }}</div>\r\n </div>\r\n <div class=\"vertical-step-content\" \r\n [class.active]=\"currentStep() === i\"\r\n (click)=\"currentStep.set(i)\">\r\n <div class=\"step-content-vertical\" *ngIf=\"currentStep() === i\">\r\n <ng-container *ngTemplateOutlet=\"step.content\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-accordion',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-accordion.component.html',\r\n styleUrl: './kv-accordion.component.scss'\r\n})\r\nexport class KvAccordionComponent {\r\n @Input() isOpen = false;\r\n @Input() title = '';\r\n @Input() shouldShowImage = true;\r\n @Output() opened = new EventEmitter<void>();\r\n\r\n toggle() {\r\n this.isOpen = !this.isOpen;\r\n if(this.isOpen) {\r\n this.opened.emit();\r\n }\r\n }\r\n}\r\n","<div class=\"accordion\">\r\n <div class=\"accordion-header\" (click)=\"toggle()\">\r\n <div class=\"accordion-title\">\r\n <ng-container *ngIf=\"shouldShowImage\">\r\n <img width=\"40px\" [src]=\"'https://i.imgur.com/InRaVrL.jpg'\" alt=\"User Avatar\" class=\"avatar\">\r\n </ng-container>\r\n <span>{{ title }}</span>\r\n </div>\r\n <span class=\"accordion-icon\" [class.open]=\"isOpen\">▼</span>\r\n </div>\r\n <div class=\"accordion-content\" [class.open]=\"isOpen\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-alert',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-alert.component.html',\r\n styleUrl: './kv-alert.component.scss'\r\n})\r\nexport class KvAlertComponent implements OnInit{\r\n\r\n @Input() message: string = '';\r\n @Input() description: string = '';\r\n @Input() type = 'warning';\r\n @Input() timeoutDuration: number = 5000;\r\n @Output() close = new EventEmitter<void>();\r\n\r\n ngOnInit() {\r\n if (this.timeoutDuration > 0) {\r\n setTimeout(() => this.onClose(), this.timeoutDuration);\r\n }\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n}\r\n","<div class=\"alert-container\">\r\n <div class=\"icon\" [ngClass]=\"type\">\r\n <ng-container *ngIf=\"type === 'success'\">\r\n <i class=\"icon material-icons\">check</i>\r\n </ng-container>\r\n <ng-container *ngIf=\"type !== 'success'\">\r\n <i class=\"icon material-icons\">close</i>\r\n </ng-container>\r\n </div>\r\n <div class=\"message\">\r\n <strong>{{ message }}</strong>\r\n <p>{{ description }}</p>\r\n </div>\r\n <button class=\"close-btn\" (click)=\"onClose()\">&#10006;</button>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kv-side-menu',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-side-menu.component.html',\r\n styleUrl: './kv-side-menu.component.scss'\r\n})\r\nexport class KvSideMenuComponent {\r\n @Input() breadcrumb: string = '';\r\n @Output() onEdit: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onDelete: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() onSaveChanges: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public isEditMode: boolean = false;\r\n\r\n public handleEditButtonClicked(): void {\r\n this.isEditMode = !this.isEditMode;\r\n this.onEdit.emit(this.isEditMode);\r\n }\r\n\r\n public handleCloseButtonClicked(): void {\r\n this.onClose.emit();\r\n }\r\n\r\n public handleDeleteButtonClicked(): void {\r\n this.onDelete.emit();\r\n }\r\n\r\n public handleSaveChangesButtonClicked(): void {\r\n this.onSaveChanges.emit();\r\n }\r\n}\r\n","<div class=\"right-menu\">\r\n <div class=\"header\">\r\n <ng-container *ngIf=\"!isEditMode\">\r\n <span>{{ breadcrumb }}</span>\r\n <div>\r\n <button class=\"delete-button section-button\" (click)=\"handleDeleteButtonClicked()\"><i class=\"icon material-icons\">delete</i></button>\r\n <button class=\"edit-button section-button\" (click)=\"handleEditButtonClicked()\"><i class=\"icon material-icons\">edit</i></button>\r\n <button class=\"close-button section-button\" (click)=\"handleCloseButtonClicked()\"><i class=\"icon material-icons\">close</i></button>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"isEditMode\">\r\n <button class=\"edit-button section-button\" (click)=\"handleEditButtonClicked()\"><i class=\"icon material-icons\">arrow_back</i></button>\r\n <div>\r\n <button class=\"button--primary-min\" (click)=\"handleSaveChangesButtonClicked()\">Save changes</button>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { CommonModule } from \"@angular/common\";\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'lib-kv-loading',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './kv-loading.component.html',\r\n styleUrl: './kv-loading.component.scss'\r\n })\r\n export class KvLoadingComponent{\r\n \r\n @Input() message: string = '';\r\n @Input() isLoading: boolean = false;\r\n \r\n }","<div class=\"loading-component\">\r\n <div class=\"loading-container\" *ngIf=\"isLoading\">\r\n <div class=\"loading-spinner\"></div>\r\n <p>{{message}}</p>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { KvLoadingComponent } from '../kv-loading/kv-loading.component';\r\n\r\n@Component({\r\n selector: 'lib-kv-main-table',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, KvLoadingComponent],\r\n templateUrl: './kv-main-table.component.html',\r\n styleUrl: './kv-main-table.component.scss',\r\n})\r\nexport class KvMainTableComponent implements OnInit, OnChanges {\r\n @Input() columns: { key: string; label: string }[] = [];\r\n @Input() data: any[] = [];\r\n @Input() extraData!: any[];\r\n @Input() showPaginator: boolean = true;\r\n @Input() lazyLoading: boolean = false;\r\n @Input() loading: boolean = false;\r\n @Input() totalRecords: number = 0;\r\n @Input() message: string = '';\r\n\r\n @ContentChild('cellActions') cellActionsTemplate: any;\r\n @Output() onNameClicked: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onPageChange: EventEmitter<{\r\n page: number;\r\n pageSize: number;\r\n searchText: string;\r\n }> = new EventEmitter<{\r\n page: number;\r\n pageSize: number;\r\n searchText: string;\r\n }>();\r\n\r\n searchText: string = '';\r\n currentPage: number = 1;\r\n pageSize: number = 5;\r\n filteredItems: any[] = [];\r\n\r\n ngOnInit() {\r\n this.updateFilteredData();\r\n if (this.lazyLoading) {\r\n this.loadLazyData();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['data'] || changes['searchText']) {\r\n this.updateFilteredData();\r\n }\r\n }\r\n\r\n private updateFilteredData() {\r\n if (!this.lazyLoading) {\r\n this.filteredItems = this.getFilteredData();\r\n }\r\n }\r\n\r\n private getFilteredData() {\r\n return this.data\r\n .filter((item) =>\r\n this.columns.some((col) =>\r\n item[col.key]\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.searchText.toLowerCase())\r\n )\r\n )\r\n .slice(\r\n (this.currentPage - 1) * this.pageSize,\r\n this.currentPage * this.pageSize\r\n );\r\n }\r\n\r\n get filteredData() {\r\n return this.lazyLoading ? this.data : this.getFilteredData();\r\n }\r\n\r\n totalPages(): number {\r\n if (this.lazyLoading) {\r\n return Math.ceil(this.totalRecords / this.pageSize);\r\n }\r\n\r\n return Math.ceil(\r\n this.data.filter((item) =>\r\n this.columns.some((col) =>\r\n item[col.key]\r\n ?.toString()\r\n .toLowerCase()\r\n .includes(this.searchText.toLowerCase())\r\n )\r\n ).length / this.pageSize\r\n );\r\n }\r\n\r\n changePage(direction: number) {\r\n if (this.lazyLoading) {\r\n const newPage = this.currentPage + direction;\r\n if (newPage >= 1) {\r\n this.currentPage = newPage;\r\n this.loadLazyData();\r\n } else {\r\n if (this.currentPage !== 1) {\r\n this.currentPage = 1;\r\n this.loadLazyData();\r\n }\r\n }\r\n } else {\r\n const newPage = this.currentPage + direction;\r\n if (newPage > 0 && newPage <= this.totalPages()) {\r\n this.currentPage = newPage;\r\n this.updateFilteredData();\r\n }\r\n }\r\n }\r\n\r\n onSearch() {\r\n this.currentPage = 1;\r\n if (this.lazyLoading) {\r\n this.loadLazyData();\r\n } else {\r\n this.updateFilteredData();\r\n }\r\n }\r\n\r\n loadLazyData() {\r\n this.onPageChange.emit({\r\n page: this.currentPage,\r\n pageSize: this.pageSize,\r\n searchText: this.searchText,\r\n });\r\n }\r\n\r\n public getPosName(posId: string): string {\r\n return (\r\n this.extraData?.find((pos) => pos.point_of_sale_id === posId)?.name || ''\r\n );\r\n }\r\n\r\n public emitData(data: any) {\r\n this.onNameClicked.emit(data);\r\n }\r\n}\r\n","<lib-kv-loading [message]=\"message\" [isLoading]=\"loading\" > </lib-kv-loading>\r\n<ng-container *ngIf=\"!loading\">\r\n <div class=\"search-container\">\r\n <div class=\"search-section\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"Buscar...\"\r\n [(ngModel)]=\"searchText\"\r\n (keyup.enter)=\"onSearch()\"\r\n />\r\n <button *ngIf=\"lazyLoading\" (click)=\"onSearch()\">Buscar</button>\r\n </div>\r\n </div>\r\n\r\n <table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of columns\">{{ column.label }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of filteredData\">\r\n <td *ngFor=\"let column of columns\">\r\n <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n <ng-container *ngIf=\"column.label === 'Services'\">\r\n <div class=\"service-info\" (click)=\"emitData(item)\">\r\n <img [src]=\"item.url || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n <a class=\"a-link\">{{ item.name }}</a>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n item[column.key]\r\n }}</a>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'images'\">\r\n <div class=\"image-container\">\r\n <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n <img [src]=\"image\" alt=\"Imagen\" />\r\n </div>\r\n <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n +{{ item[column.key].length - 3 }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-container *ngIf=\"column.key === 'actions'\">\r\n <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n column.key !== 'expire_at' &&\r\n column.key !== 'point_of_sale_id' &&\r\n column.key !== 'name' &&\r\n column.key !== 'pos_id' &&\r\n column.key !== 'images' &&\r\n column.key !== 'actions'\r\n \"\r\n >\r\n {{ item[column.key] }}\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n >\r\n {{ getPosName(item[column.key]) }}\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <ng-container *ngIf=\"showPaginator\">\r\n <table class=\"table-pagination\">\r\n <tbody>\r\n <tr>\r\n <div class=\"pagination\">\r\n <div class=\"button-section\">\r\n <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n Previous\r\n </button>\r\n <button\r\n (click)=\"changePage(1)\"\r\n [disabled]=\"currentPage === totalPages()\"\r\n [disabled]=\"loading\"\r\n >\r\n Next\r\n </button>\r\n </div>\r\n <div class=\"current-section\">\r\n <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n </div>\r\n </div>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n</ng-container>\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { FormFieldConfig } from '../interfaces/form-field.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormFactoryService {\r\n constructor(private fb: FormBuilder) { }\r\n\r\n createForm(config: FormFieldConfig[], customValidator?: ValidatorFn): FormGroup {\r\n const formGroup = this.fb.group({}, { validators: customValidator });\r\n config.forEach((field) => {\r\n const control = this.fb.control(\r\n field.defaultValue || '',\r\n field.validators || []\r\n );\r\n formGroup.addControl(field.name, control);\r\n });\r\n return formGroup;\r\n }\r\n\r\n createFormArray(config: FormFieldConfig[], customValidator?: ValidatorFn): FormArray {\r\n const formArray = this.fb.array([], { validators: customValidator });\r\n config.forEach((field) => {\r\n const control = this.fb.control(\r\n field.defaultValue || '',\r\n field.validators || []\r\n );\r\n formArray.push(control);\r\n });\r\n return formArray;\r\n }\r\n\r\n createFormArrayOfGroups(config: FormFieldConfig[], initialCount: number, customValidator?: ValidatorFn): FormArray {\r\n const formArray = this.fb.array<FormGroup>([], { validators: customValidator });\r\n\r\n for (let i = 0; i < initialCount; i++) {\r\n const group = this.createForm(config);\r\n formArray.push(group);\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n createLoginForm(): FormGroup {\r\n return this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n password: ['', [Validators.required, Validators.minLength(8)]],\r\n });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n constructor(private router: Router) { }\r\n\r\n navigateToLogin(): Promise<boolean> {\r\n return this.router.navigate(['/login']);\r\n }\r\n\r\n navigateToOffers(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/offers']);\r\n }\r\n\r\n navigateToOffersDetails(id: string): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/offers-details'], {\r\n queryParams: { offerId: id }\r\n });\r\n }\r\n\r\n navigateToResetPassword(): Promise<boolean> {\r\n return this.router.navigate(['/login/reset-password']);\r\n }\r\n\r\n navigateToPointOfSaleDetails(id: string): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/point-of-sale-details'], {\r\n queryParams: { pointOfSaleId: id }\r\n });\r\n }\r\n\r\n navigateToPointOfSale(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/point-of-sale']);\r\n }\r\n\r\n navigateToItems(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/items']);\r\n }\r\n\r\n navigateToItemsDetails(id: string, posId: string): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/items-details'], {\r\n queryParams: { itemId: id, pointOfSaleId: posId}\r\n });\r\n }\r\n\r\n navigateToRules(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/rules']);\r\n }\r\n\r\n navigateToRulesManager(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/rules-manager']);\r\n }\r\n\r\n navigateToOfferFlow(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/offer-flow']);\r\n }\r\n\r\n navigateToPayment(price: number): Promise<boolean> {\r\n return this.router.navigate(['/auctions/payment']);\r\n }\r\n\r\n navigateToBillingRecords(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/billing-record']);\r\n }\r\n\r\n navigateToIntegrations(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/integrations']);\r\n }\r\n\r\n navigateToOrders(): Promise<boolean> {\r\n return this.router.navigate(['/dashboard/orders']);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActionType } from '../enums/action-type.enum';\r\n\r\ninterface PopupState {\r\n show: boolean;\r\n title: string;\r\n actionType?: ActionType;\r\n description: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n private popupState = new BehaviorSubject<PopupState>({\r\n show: false,\r\n title: '',\r\n description: '',\r\n actionType: ActionType.Info\r\n });\r\n\r\n popupState$ = this.popupState.asObservable();\r\n\r\n showNotification(title: string, description: string, actionType?: ActionType): void {\r\n this.popupState.next({\r\n show: true,\r\n title,\r\n description,\r\n actionType: actionType || ActionType.Info\r\n });\r\n }\r\n\r\n hideNotification(): void {\r\n this.popupState.next({\r\n show: false,\r\n title: '',\r\n description: '',\r\n actionType: ActionType.Info\r\n });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, ReplaySubject, map } from 'rxjs';\r\n\r\ninterface SessionData {\r\n pointsOfSale?: any[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SessionService {\r\n private sessionSubject = new ReplaySubject<SessionData | null>(1);\r\n\r\n constructor() {\r\n this.sessionSubject.next(null);\r\n }\r\n\r\n setSessionData(data: SessionData): void {\r\n this.sessionSubject.next(data);\r\n }\r\n\r\n getCurrentSessionData(): SessionData | null {\r\n let value: SessionData | null = null;\r\n this.sessionSubject.subscribe(v => value = v).unsubscribe();\r\n return value;\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nexport const API_KEY = new InjectionToken<string>('API_KEY');","import { inject, Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { API_KEY } from '../injection-tokens/auth-config';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n const cookieService = inject(CookieService);\r\n const apiKey = inject(API_KEY);\r\n const token = cookieService.get('jwt');\r\n const modifiedReq = request.clone({\r\n headers: request.headers\r\n .set('Access_token', token)\r\n .set('Api_Key', apiKey) \r\n });\r\n return next.handle(modifiedReq);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { BehaviorSubject, firstValueFrom } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nexport interface Session {\r\n access_token: string;\r\n refresh_token: string;\r\n expires_in?: number;\r\n user?: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n private sessionSubject = new BehaviorSubject<Session | null>(null);\r\n protected refreshTimeout: any;\r\n private apiUrl = 'http://localhost:9090/v1';\r\n private apiKey = '';\r\n\r\n constructor(\r\n private readonly cookieService: CookieService,\r\n private readonly http: HttpClient\r\n ) {\r\n this.getSession().catch(() => null);\r\n }\r\n\r\n private getHeaders(): HttpHeaders {\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Api_Key': this.apiKey\r\n });\r\n }\r\n\r\n public configureApi(apiUrl: string, apiKey?: string): void {\r\n if (apiUrl) this.apiUrl = apiUrl;\r\n if (apiKey) this.apiKey = apiKey;\r\n }\r\n\r\n public getCurrentSession(): Session | null {\r\n return this.sessionSubject.getValue();\r\n }\r\n\r\n public signIn(email: string, password: string): Promise<any> {\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-auth`, { email, password }, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n if (response) {\r\n this.sessionSubject.next(response);\r\n localStorage.setItem('refresh_token', response.refresh_token || '');\r\n if (this.isValidLoginResponse(response)) {\r\n this.handleSuccessfulRefresh(response);\r\n this.startRefreshTimer(response);\r\n }\r\n }\r\n return response;\r\n });\r\n }\r\n\r\n public signOut(): Promise<any> {\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-signout`, {}, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n this.sessionSubject.next(null);\r\n this.cookieService.deleteAll();\r\n localStorage.removeItem('refresh_token');\r\n return response;\r\n }).catch(error => {\r\n console.error('Error signing out:', error);\r\n this.sessionSubject.next(null);\r\n this.cookieService.deleteAll();\r\n localStorage.removeItem('refresh_token');\r\n throw error;\r\n });\r\n }\r\n\r\n public sendResetPasswordEmail(email: string): Promise<any> {\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-reset-password`, { email }, { headers: this.getHeaders() })\r\n );\r\n }\r\n\r\n public setNewPassword(newPassword: string): Promise<any> {\r\n const accessToken = this.cookieService.get('access_token');\r\n const headers = this.getHeaders().set('Authorization', `Bearer ${accessToken}`);\r\n\r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-set-password`, { password: newPassword }, { headers })\r\n );\r\n }\r\n\r\n public getSession(): Promise<any> {\r\n const refreshToken = localStorage.getItem('refresh_token');\r\n if (!refreshToken) {\r\n return Promise.resolve({ data: { session: null } });\r\n }\r\n \r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-session`, { refresh_token: refreshToken }, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n if (response?.data?.session) {\r\n this.sessionSubject.next(response.data.session);\r\n if (this.isValidLoginResponse(response.data)) {\r\n this.handleSuccessfulRefresh(response.data);\r\n this.startRefreshTimer(response.data.session);\r\n }\r\n }\r\n return response;\r\n });\r\n }\r\n\r\n public refreshSession(): Promise<any> {\r\n const refreshToken = localStorage.getItem('refresh_token');\r\n if (!refreshToken) {\r\n return Promise.resolve({ data: { session: null } });\r\n }\r\n \r\n return firstValueFrom(\r\n this.http.post(`${this.apiUrl}/supabase-refresh`, { refresh_token: refreshToken }, { headers: this.getHeaders() })\r\n ).then((response: any) => {\r\n if (response?.data) {\r\n this.sessionSubject.next(response.data);\r\n localStorage.setItem('refresh_token', response.data.refresh_token || '');\r\n if (this.isValidLoginResponse(response.data)) {\r\n this.handleSuccessfulRefresh(response.data);\r\n this.startRefreshTimer(response.data);\r\n }\r\n }\r\n return response;\r\n });\r\n }\r\n\r\n public startRefreshTimer(session: Session) {\r\n const expiresIn = session.expires_in || 3200;\r\n this.refreshTimeout = setTimeout(() => {\r\n this.refreshSession().catch(console.error);\r\n }, (expiresIn - 60) * 1000);\r\n }\r\n\r\n public getSessionObservable() {\r\n return this.sessionSubject.asObservable();\r\n }\r\n\r\n private isValidLoginResponse(data: any): boolean {\r\n return !!(\r\n data?.access_token &&\r\n data?.user?.app_metadata?.role\r\n );\r\n }\r\n\r\n private handleSuccessfulRefresh(data: any): void {\r\n const token = data!.access_token;\r\n this.cookieService.delete('jwt');\r\n this.cookieService.set('jwt', token);\r\n }\r\n}\r\n","export class AuthHelper {\r\n\r\n public static getUserId(): string | null {\r\n return localStorage.getItem(\"userId\") || null;\r\n }\r\n\r\n public static getUserRole(): string | null {\r\n return localStorage.getItem(\"userRole\") || null;\r\n }\r\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const passwordMatchValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const password = control.get('password');\r\n const confirmPassword = control.get('confirmPassword');\r\n\r\n if (!password || !confirmPassword) {\r\n return null;\r\n }\r\n\r\n if (password.pristine || confirmPassword.pristine) {\r\n return null;\r\n }\r\n\r\n return password.value === confirmPassword.value ? null : { passwordMismatch: true };\r\n};","/*\r\n * Public API Surface of kivio\r\n */\r\n\r\n//Components\r\nexport * from './lib/components/kv-popup/kv-popup.component';\r\nexport * from './lib/components/date-picker/date-picker.component';\r\nexport * from './lib/components/resource-not-found/resource-not-found.component'\r\nexport * from './lib/components/kv-stepper/kv-stepper.component';\r\nexport * from './lib/components/kv-step/kv-step.component';\r\nexport * from './lib/components/kv-accordion/kv-accordion.component';\r\nexport * from './lib/components/kv-alert/kv-alert.component';\r\nexport * from './lib/components/kv-side-menu/kv-side-menu.component'\r\nexport * from './lib/components/kv-main-table/kv-main-table.component'\r\nexport * from './lib/components/kv-loading/kv-loading.component';\r\n\r\n//Services\r\nexport * from './lib/factories/form-factory.service';\r\nexport * from './lib/services/navigation.service';\r\nexport * from './lib/services/notification.service';\r\nexport * from './lib/services/session.service';\r\nexport * from './lib/services/auth-interceptor.service';\r\nexport * from './lib/services/auth.service';\r\n\r\n//Configs\r\nexport * from './lib/interfaces/form-field.config';\r\n\r\n//Helpers\r\nexport * from './lib/helpers/auth.helper'\r\n\r\n//Validators\r\nexport * from './lib/validators/password-missmatch.validator'\r\n\r\n//Enums\r\nexport * from './lib/enums/action-type.enum'\r\n\r\n// Injection Tokens\r\nexport * from './lib/injection-tokens/auth-config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class KvLoadingComponent {
3
+ message: string;
4
+ isLoading: boolean;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<KvLoadingComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<KvLoadingComponent, "lib-kv-loading", never, { "message": { "alias": "message"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, {}, never, never, true, never>;
7
+ }
@@ -11,6 +11,7 @@ export declare class KvMainTableComponent implements OnInit, OnChanges {
11
11
  lazyLoading: boolean;
12
12
  loading: boolean;
13
13
  totalRecords: number;
14
+ message: string;
14
15
  cellActionsTemplate: any;
15
16
  onNameClicked: EventEmitter<any>;
16
17
  onPageChange: EventEmitter<{
@@ -34,5 +35,5 @@ export declare class KvMainTableComponent implements OnInit, OnChanges {
34
35
  getPosName(posId: string): string;
35
36
  emitData(data: any): void;
36
37
  static ɵfac: i0.ɵɵFactoryDeclaration<KvMainTableComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<KvMainTableComponent, "lib-kv-main-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "showPaginator": { "alias": "showPaginator"; "required": false; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; }, { "onNameClicked": "onNameClicked"; "onPageChange": "onPageChange"; }, ["cellActionsTemplate"], never, true, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<KvMainTableComponent, "lib-kv-main-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "showPaginator": { "alias": "showPaginator"; "required": false; }; "lazyLoading": { "alias": "lazyLoading"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "message": { "alias": "message"; "required": false; }; }, { "onNameClicked": "onNameClicked"; "onPageChange": "onPageChange"; }, ["cellActionsTemplate"], never, true, never>;
38
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kivio",
3
- "version": "1.1.9",
3
+ "version": "1.2.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0"
package/public-api.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from './lib/components/kv-accordion/kv-accordion.component';
7
7
  export * from './lib/components/kv-alert/kv-alert.component';
8
8
  export * from './lib/components/kv-side-menu/kv-side-menu.component';
9
9
  export * from './lib/components/kv-main-table/kv-main-table.component';
10
+ export * from './lib/components/kv-loading/kv-loading.component';
10
11
  export * from './lib/factories/form-factory.service';
11
12
  export * from './lib/services/navigation.service';
12
13
  export * from './lib/services/notification.service';