@some-angular-utils/table 0.1.21 → 0.1.23

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.
@@ -350,6 +350,7 @@ class SAUTableModule {
350
350
  deleteEvent = new EventEmitter();
351
351
  printEvent = new EventEmitter();
352
352
  showEvent = new EventEmitter();
353
+ itemsLoadedEvent = new EventEmitter();
353
354
  // ContentChild para detectar cosas personalizadas
354
355
  editButtonTemplate;
355
356
  deleteButtonTemplate;
@@ -410,6 +411,7 @@ class SAUTableModule {
410
411
  else if (this.fixedContent && this.fixedContent.length > 0) {
411
412
  this.items = [...this.fixedContent];
412
413
  this.cdr.detectChanges();
414
+ this.itemsLoadedEvent.emit(this.items);
413
415
  }
414
416
  }
415
417
  // Método para obtener la página interna (0-based si sizeInitialPage es 0, 1-based si es 1)
@@ -443,6 +445,7 @@ class SAUTableModule {
443
445
  }
444
446
  this.loading = false;
445
447
  this.cdr.detectChanges(); // Forzar detección después de actualizar datos
448
+ this.itemsLoadedEvent.emit(this.items);
446
449
  },
447
450
  error: (error) => {
448
451
  console.error('ERROR obtener productos. ' + error);
@@ -525,7 +528,7 @@ class SAUTableModule {
525
528
  this.getItems();
526
529
  }
527
530
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SAUTableModule, deps: [{ token: i1$1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
528
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SAUTableModule, isStandalone: true, selector: "sau-table", inputs: { url: "url", filterConfig: "filterConfig", contentList: "contentList", contentTotal: "contentTotal", pageParamName: "pageParamName", limitParamName: "limitParamName", sizeInitialPage: "sizeInitialPage", sizeBetweenPages: "sizeBetweenPages", fixedContent: "fixedContent", orientation: "orientation", headers: "headers", showOptions: "showOptions", canEdit: "canEdit", canDelete: "canDelete", canPrint: "canPrint", canShow: "canShow", customTemplates: "customTemplates", items: "items", limit: "limit" }, outputs: { editEvent: "editEvent", deleteEvent: "deleteEvent", printEvent: "printEvent", showEvent: "showEvent" }, queries: [{ propertyName: "editButtonTemplate", first: true, predicate: ["editButton"], descendants: true }, { propertyName: "deleteButtonTemplate", first: true, predicate: ["deleteButton"], descendants: true }, { propertyName: "printButtonTemplate", first: true, predicate: ["printButton"], descendants: true }, { propertyName: "showButtonTemplate", first: true, predicate: ["showButton"], descendants: true }, { propertyName: "customCellTemplates", predicate: ["customCell"] }], viewQueries: [{ propertyName: "filterComponent", first: true, predicate: ["filterComponent"], descendants: true }], ngImport: i0, template: "<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\" (click)=\"clickDeleteButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item)\" title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecer\u00E1n aqu\u00ED cuando est\u00E9n disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>", styles: [".sau-table{--sau-color-primary: rgb(147, 51, 234);--sau-color-secondary: var(--sau-color-primary);--sau-color-background: rgb(255, 255, 255);--sau-color-edit: rgb(34, 197, 94);--sau-color-delete: rgb(239, 68, 68);--sau-color-print: rgb(212, 167, 44);--sau-color-show: rgb(44, 122, 212);--sau-color-text: rgb(31, 41, 55);background:var(--sau-color-background)}.sau-table .sau-filter{--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table .sau-filter__grid{padding:.5rem 1rem}.sau-table table{border-collapse:collapse}.sau-table .sau-table-width-full{width:100%}.sau-table .sau-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;display:flex;align-items:center;justify-content:center}.sau-table .sau-icon svg{width:100%;height:100%;fill:currentColor}.sau-table .sau-icon.sau-icon-chevron-down svg{width:1.8em;height:1.8em}.sau-table .sau-icon.sau-icon-inbox svg{width:1.5em;height:1.5em}@media(min-width:768px){.sau-table .sau-table-mobile.sau-table-dynamic-mode{display:none}}.sau-table .sau-table-mobile .sau-table-mobile-header{background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);padding:.5rem 1rem}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-title{font-size:1rem;font-weight:600;line-height:1.25}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-divider{width:2rem;height:.125rem;background:var(--sau-color-background);margin-top:.25rem}.sau-table .sau-table-mobile .sau-table-mobile-table{width:100%;font-size:.875rem;text-align:left;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row{border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row:last-child{border-bottom:none}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row.sau-table-mobile-row-even{background:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-header-cell{padding:.5rem;font-weight:500;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);max-width:min-content}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-data-cell{padding:.5rem;width:100%;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-toggle-input{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked~.sau-table-toggle-content{height:auto!important;opacity:1!important;overflow:visible!important}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-show{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-hide{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--sau-color-background);color:var(--sau-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sau-table .sau-table-mobile .sau-table-toggle-label:hover{background:var(--sau-color-secondary);color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text{font-size:.875rem;font-weight:500}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-show{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-hide{display:none}.sau-table .sau-table-mobile .sau-table-toggle-content{margin-top:.75rem;height:0;overflow:hidden;opacity:0;transition:all .3s ease-in-out}.sau-table .sau-table-mobile .sau-table-mobile-actions-row{border-bottom:.5rem solid transparent;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));padding:1rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container{display:flex;justify-content:center;gap:1rem;padding:.5rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:var(--sau-color-background);transition:all .2s;cursor:pointer}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-desktop{width:100%;font-size:.875rem;text-align:center;color:var(--sau-color-primary)}.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:none}@media(min-width:768px){.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:table}}.sau-table .sau-table-desktop .sau-table-desktop-header{font-size:.75rem;font-weight:600;text-transform:uppercase;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-header .sau-table-desktop-header-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row{min-width:max-content;transition:background-color .2s;border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-desktop .sau-table-desktop-row:last-child{border-bottom:none}.sau-table .sau-table-desktop .sau-table-desktop-row:hover,.sau-table .sau-table-desktop .sau-table-desktop-row.sau-table-desktop-row-even{background:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-cell,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container{display:flex;align-items:center;gap:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--sau-color-background);transition:all .2s;font-size:1.2rem;cursor:pointer}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;text-align:center}.sau-table .sau-table-empty .sau-table-empty-icon{position:relative;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--sau-color-primary);font-size:2rem}.sau-table .sau-table-empty .sau-table-empty-icon:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table .sau-table-empty .sau-table-empty-title{color:var(--sau-color-text);font-weight:500}.sau-table .sau-table-empty .sau-table-empty-subtitle{color:var(--sau-color-text);font-size:.875rem}.sau-table .sau-paginator{border-top:1px solid var(--sau-color-primary);--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table-data-section{display:flex;align-items:center;gap:.5rem}.sau-table-data-section .sau-table-admin-crown{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}.sau-table-data-section .sau-table-subkey{display:block;color:var(--sau-color-primary);font-size:.75rem;min-width:max-content}.sau-table-data-type-section{display:inline-block;min-width:max-content;color:var(--sau-color-text)}.sau-table-data-type-section .sau-table-boolean-true{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-true:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-boolean-false{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-false:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-datetime{color:var(--sau-color-text);font-size:.875rem}.sau-table-data-type-section .sau-table-color-indicator{display:inline-block;width:2rem;height:1rem}.sau-table-data-type-section .sau-table-link{color:var(--sau-color-primary);text-decoration:none}.sau-table-data-type-section .sau-table-link:hover{text-decoration:underline}.sau-table-data-type-section .sau-table-image{width:2.5rem;height:2.5rem;object-fit:cover}.sau-table-data-type-section .sau-table-login-container{display:inline-flex;align-items:center;gap:.25rem}.sau-table-data-type-section .sau-table-login-container .sau-table-login-email-verified{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-primary)}.sau-table-data-type-section .sau-table-login-container .sau-table-login-google,.sau-table-data-type-section .sau-table-login-inactive{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sau-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-line{position:relative;overflow:hidden;border-radius:4px;-webkit-backdrop-filter:brightness(.9);backdrop-filter:brightness(.9);border:1px solid rgba(0,0,0,.05)}.skeleton-line:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.8s infinite}.skeleton-line.head{height:12px;width:60px}.skeleton-line.data{height:10px;width:90%}@media screen and (max-width:768px){.sau-skeleton .sau-table-desktop{display:none}}@media screen and (min-width:769px){.sau-skeleton .sau-table-mobile{display:none}}\n"], dependencies: [{ kind: "component", type: SAUTableModule, selector: "sau-table", inputs: ["url", "filterConfig", "contentList", "contentTotal", "pageParamName", "limitParamName", "sizeInitialPage", "sizeBetweenPages", "fixedContent", "orientation", "headers", "showOptions", "canEdit", "canDelete", "canPrint", "canShow", "customTemplates", "items", "limit"], outputs: ["editEvent", "deleteEvent", "printEvent", "showEvent"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SAUFilterModule, selector: "sau-filter", inputs: ["filterConfig", "searchButtonText"], outputs: ["onFilterProcessed"] }, { kind: "component", type: SAUPaginatorModule, selector: "sau-paginator", inputs: ["totalPages", "currentPage"], outputs: ["pageChange"] }, { kind: "component", type: ChevronDownIconComponent, selector: "sau-chevron-down-icon" }, { kind: "component", type: PenIconComponent, selector: "sau-pen-icon" }, { kind: "component", type: TrashIconComponent, selector: "sau-trash-icon" }, { kind: "component", type: InboxIconComponent, selector: "sau-inbox-icon" }, { kind: "component", type: PrintIconComponent, selector: "sau-print-icon" }, { kind: "component", type: EyeIconComponent, selector: "sau-eye-icon" }, { kind: "component", type: DataTemplateComponent, selector: "sau-data-template", inputs: ["item", "header", "customTemplates"] }], encapsulation: i0.ViewEncapsulation.None });
531
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SAUTableModule, isStandalone: true, selector: "sau-table", inputs: { url: "url", filterConfig: "filterConfig", contentList: "contentList", contentTotal: "contentTotal", pageParamName: "pageParamName", limitParamName: "limitParamName", sizeInitialPage: "sizeInitialPage", sizeBetweenPages: "sizeBetweenPages", fixedContent: "fixedContent", orientation: "orientation", headers: "headers", showOptions: "showOptions", canEdit: "canEdit", canDelete: "canDelete", canPrint: "canPrint", canShow: "canShow", customTemplates: "customTemplates", items: "items", limit: "limit" }, outputs: { editEvent: "editEvent", deleteEvent: "deleteEvent", printEvent: "printEvent", showEvent: "showEvent", itemsLoadedEvent: "itemsLoadedEvent" }, queries: [{ propertyName: "editButtonTemplate", first: true, predicate: ["editButton"], descendants: true }, { propertyName: "deleteButtonTemplate", first: true, predicate: ["deleteButton"], descendants: true }, { propertyName: "printButtonTemplate", first: true, predicate: ["printButton"], descendants: true }, { propertyName: "showButtonTemplate", first: true, predicate: ["showButton"], descendants: true }, { propertyName: "customCellTemplates", predicate: ["customCell"] }], viewQueries: [{ propertyName: "filterComponent", first: true, predicate: ["filterComponent"], descendants: true }], ngImport: i0, template: "<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\" (click)=\"clickDeleteButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item)\" title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecer\u00E1n aqu\u00ED cuando est\u00E9n disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>", styles: [".sau-table{--sau-color-primary: rgb(147, 51, 234);--sau-color-secondary: var(--sau-color-primary);--sau-color-background: rgb(255, 255, 255);--sau-color-edit: rgb(34, 197, 94);--sau-color-delete: rgb(239, 68, 68);--sau-color-print: rgb(212, 167, 44);--sau-color-show: rgb(44, 122, 212);--sau-color-text: rgb(31, 41, 55);background:var(--sau-color-background)}.sau-table .sau-filter{--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table .sau-filter__grid{padding:.5rem 1rem}.sau-table table{border-collapse:collapse}.sau-table .sau-table-width-full{width:100%}.sau-table .sau-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;display:flex;align-items:center;justify-content:center}.sau-table .sau-icon svg{width:100%;height:100%;fill:currentColor}.sau-table .sau-icon.sau-icon-chevron-down svg{width:1.8em;height:1.8em}.sau-table .sau-icon.sau-icon-inbox svg{width:1.5em;height:1.5em}@media(min-width:768px){.sau-table .sau-table-mobile.sau-table-dynamic-mode{display:none}}.sau-table .sau-table-mobile .sau-table-mobile-header{background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);padding:.5rem 1rem}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-title{font-size:1rem;font-weight:600;line-height:1.25}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-divider{width:2rem;height:.125rem;background:var(--sau-color-background);margin-top:.25rem}.sau-table .sau-table-mobile .sau-table-mobile-table{width:100%;font-size:.875rem;text-align:left;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row{border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row:last-child{border-bottom:none}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row.sau-table-mobile-row-even{background:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-header-cell{padding:.5rem;font-weight:500;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);max-width:min-content}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-data-cell{padding:.5rem;width:100%;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-toggle-input{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked~.sau-table-toggle-content{height:auto!important;opacity:1!important;overflow:visible!important}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-show{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-hide{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--sau-color-background);color:var(--sau-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sau-table .sau-table-mobile .sau-table-toggle-label:hover{background:var(--sau-color-secondary);color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text{font-size:.875rem;font-weight:500}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-show{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-hide{display:none}.sau-table .sau-table-mobile .sau-table-toggle-content{margin-top:.75rem;height:0;overflow:hidden;opacity:0;transition:all .3s ease-in-out}.sau-table .sau-table-mobile .sau-table-mobile-actions-row{border-bottom:.5rem solid transparent;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));padding:1rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container{display:flex;justify-content:center;gap:1rem;padding:.5rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:var(--sau-color-background);transition:all .2s;cursor:pointer}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-desktop{width:100%;font-size:.875rem;text-align:center;color:var(--sau-color-primary)}.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:none}@media(min-width:768px){.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:table}}.sau-table .sau-table-desktop .sau-table-desktop-header{font-size:.75rem;font-weight:600;text-transform:uppercase;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-header .sau-table-desktop-header-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row{min-width:max-content;transition:background-color .2s;border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-desktop .sau-table-desktop-row:last-child{border-bottom:none}.sau-table .sau-table-desktop .sau-table-desktop-row:hover,.sau-table .sau-table-desktop .sau-table-desktop-row.sau-table-desktop-row-even{background:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-cell,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container{display:flex;align-items:center;gap:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--sau-color-background);transition:all .2s;font-size:1.2rem;cursor:pointer}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;text-align:center}.sau-table .sau-table-empty .sau-table-empty-icon{position:relative;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--sau-color-primary);font-size:2rem}.sau-table .sau-table-empty .sau-table-empty-icon:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table .sau-table-empty .sau-table-empty-title{color:var(--sau-color-text);font-weight:500}.sau-table .sau-table-empty .sau-table-empty-subtitle{color:var(--sau-color-text);font-size:.875rem}.sau-table .sau-paginator{border-top:1px solid var(--sau-color-primary);--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table-data-section{display:flex;align-items:center;gap:.5rem}.sau-table-data-section .sau-table-admin-crown{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}.sau-table-data-section .sau-table-subkey{display:block;color:var(--sau-color-primary);font-size:.75rem;min-width:max-content}.sau-table-data-type-section{display:inline-block;min-width:max-content;color:var(--sau-color-text)}.sau-table-data-type-section .sau-table-boolean-true{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-true:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-boolean-false{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-false:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-datetime{color:var(--sau-color-text);font-size:.875rem}.sau-table-data-type-section .sau-table-color-indicator{display:inline-block;width:2rem;height:1rem}.sau-table-data-type-section .sau-table-link{color:var(--sau-color-primary);text-decoration:none}.sau-table-data-type-section .sau-table-link:hover{text-decoration:underline}.sau-table-data-type-section .sau-table-image{width:2.5rem;height:2.5rem;object-fit:cover}.sau-table-data-type-section .sau-table-login-container{display:inline-flex;align-items:center;gap:.25rem}.sau-table-data-type-section .sau-table-login-container .sau-table-login-email-verified{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-primary)}.sau-table-data-type-section .sau-table-login-container .sau-table-login-google,.sau-table-data-type-section .sau-table-login-inactive{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sau-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-line{position:relative;overflow:hidden;border-radius:4px;-webkit-backdrop-filter:brightness(.9);backdrop-filter:brightness(.9);border:1px solid rgba(0,0,0,.05)}.skeleton-line:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.8s infinite}.skeleton-line.head{height:12px;width:60px}.skeleton-line.data{height:10px;width:90%}@media screen and (max-width:768px){.sau-skeleton .sau-table-desktop{display:none}}@media screen and (min-width:769px){.sau-skeleton .sau-table-mobile{display:none}}\n"], dependencies: [{ kind: "component", type: SAUTableModule, selector: "sau-table", inputs: ["url", "filterConfig", "contentList", "contentTotal", "pageParamName", "limitParamName", "sizeInitialPage", "sizeBetweenPages", "fixedContent", "orientation", "headers", "showOptions", "canEdit", "canDelete", "canPrint", "canShow", "customTemplates", "items", "limit"], outputs: ["editEvent", "deleteEvent", "printEvent", "showEvent", "itemsLoadedEvent"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SAUFilterModule, selector: "sau-filter", inputs: ["filterConfig", "searchButtonText"], outputs: ["onFilterProcessed"] }, { kind: "component", type: SAUPaginatorModule, selector: "sau-paginator", inputs: ["totalPages", "currentPage"], outputs: ["pageChange"] }, { kind: "component", type: ChevronDownIconComponent, selector: "sau-chevron-down-icon" }, { kind: "component", type: PenIconComponent, selector: "sau-pen-icon" }, { kind: "component", type: TrashIconComponent, selector: "sau-trash-icon" }, { kind: "component", type: InboxIconComponent, selector: "sau-inbox-icon" }, { kind: "component", type: PrintIconComponent, selector: "sau-print-icon" }, { kind: "component", type: EyeIconComponent, selector: "sau-eye-icon" }, { kind: "component", type: DataTemplateComponent, selector: "sau-data-template", inputs: ["item", "header", "customTemplates"] }], encapsulation: i0.ViewEncapsulation.None });
529
532
  }
530
533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SAUTableModule, decorators: [{
531
534
  type: Component,
@@ -574,6 +577,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
574
577
  type: Output
575
578
  }], showEvent: [{
576
579
  type: Output
580
+ }], itemsLoadedEvent: [{
581
+ type: Output
577
582
  }], editButtonTemplate: [{
578
583
  type: ContentChild,
579
584
  args: ['editButton', { static: false }]
@@ -1 +1 @@
1
- {"version":3,"file":"some-angular-utils-table.mjs","sources":["../../../../projects/some-angular-utils/table/src/lib/icons/chevron-down-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/pen-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/trash-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/inbox-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/print-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/eye-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/check-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/xmark-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/envelope-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/google-icon.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-type-template/data-type-template.component.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-type-template/data-type-template.component.html","../../../../projects/some-angular-utils/table/src/lib/icons/crown-icon.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-template/data-template.component.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-template/data-template.component.html","../../../../projects/some-angular-utils/table/src/lib/table.ts","../../../../projects/some-angular-utils/table/src/lib/table.html","../../../../projects/some-angular-utils/table/src/public-api.ts","../../../../projects/some-angular-utils/table/src/some-angular-utils-table.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-chevron-down-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M12 15.5l-6-6h12l-6 6z\" />\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class ChevronDownIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-pen-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class PenIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-trash-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class TrashIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-inbox-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H5V5h14v10z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class InboxIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-print-icon',\n standalone: true,\n template: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.-->\n <path d=\"M128 128C128 92.7 156.7 64 192 64L405.5 64C422.5 64 438.8 70.7 450.8 82.7L493.3 125.2C505.3 137.2 512 153.5 512 170.5L512 208L128 208L128 128zM64 320C64 284.7 92.7 256 128 256L512 256C547.3 256 576 284.7 576 320L576 416C576 433.7 561.7 448 544 448L512 448L512 512C512 547.3 483.3 576 448 576L192 576C156.7 576 128 547.3 128 512L128 448L96 448C78.3 448 64 433.7 64 416L64 320zM192 480L192 512L448 512L448 416L192 416L192 480zM520 336C520 322.7 509.3 312 496 312C482.7 312 472 322.7 472 336C472 349.3 482.7 360 496 360C509.3 360 520 349.3 520 336z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class PrintIconComponent { }","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-eye-icon',\n standalone: true,\n template: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"w-4 h-auto\">\n <path fill=\"currentColor\"\n d=\"M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6.01 7 11 7s9.27-3.11 11-7c-1.73-3.89-6.01-7-11-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8.5c-1.93 0-3.5 1.57-3.5 3.5S10.07 15.5 12 15.5 15.5 13.93 15.5 12 13.93 8.5 12 8.5z\" />\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class EyeIconComponent { }","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-check-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class CheckIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-xmark-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.88-4.89c.39-.38.39-1.02.01-1.4z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class XmarkIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-envelope-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class EnvelopeIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-google-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%;\">\n <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\" fill=\"#4285F4\"/>\n <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\"/>\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\"/>\n <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class GoogleIconComponent {}","import { Component, Input } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { CheckIconComponent } from '../../icons/check-icon';\nimport { XmarkIconComponent } from '../../icons/xmark-icon';\nimport { EnvelopeIconComponent } from '../../icons/envelope-icon';\nimport { GoogleIconComponent } from '../../icons/google-icon';\n\n@Component({\n selector: 'sau-data-type-template',\n templateUrl: './data-type-template.component.html',\n styleUrls: ['./data-type-template.component.scss'],\n imports: [\n CommonModule,\n DatePipe,\n RouterModule,\n CheckIconComponent,\n XmarkIconComponent,\n EnvelopeIconComponent,\n GoogleIconComponent\n ]\n})\nexport class DataTypeTemplateComponent {\n @Input() item!: any;\n @Input() header!: any;\n @Input() value!: string | string[];\n\n getValue(item: any, key: string | string[]) {\n let arrayKey = [];\n\n if (!Array.isArray(key)) {\n arrayKey.push(key);\n } else {\n arrayKey = key.slice();\n }\n\n let result = ''\n\n while (arrayKey.length > 0) {\n\n let keys = arrayKey[0].split('.');\n let value = item;\n\n if (keys[0].includes('[]')) {\n let arrayKey = keys[0].replace('[]', '');\n\n value = value[arrayKey].map((element: any) => this.getValue(element, keys.slice(1).join('.'))).join(', ');\n\n } else {\n let finalValue = item[String(key)]\n\n let isArray = Array.isArray(finalValue)\n let isBoolean = typeof finalValue === 'boolean'\n let isNumber = typeof finalValue === 'number'\n\n if (isArray || isBoolean || isNumber) {\n return finalValue\n }\n\n for (let i = 0; value && i < keys.length; i++) {\n value = value[keys[i]];\n }\n\n result = value;\n\n }\n\n arrayKey.shift();\n }\n\n return result;\n }\n\n getLink(pattern: string = '{key}', item: any, value: string | string[]): { url: string, isExternal: boolean } {\n const keyValue = this.getValue(item, value);\n const url = pattern.replace('{key}', keyValue);\n const isExternal = url.startsWith('http://') || url.startsWith('https://')\n\n return {\n url,\n isExternal\n }\n }\n}\n","<section class=\"sau-table-data-type-section\">\n @switch (header.type) {\n\n @case ('boolean') {\n @if(getValue(item, value)){\n <div class=\"sau-table-boolean-true\">\n <span class=\"sau-icon sau-icon-check\">\n <sau-check-icon></sau-check-icon>\n </span>\n </div>\n } @else {\n <div class=\"sau-table-boolean-false\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @case ('date') {\n <span class=\"sau-table-date\">\n {{getValue(item, value) | date: 'dd/MM/yyyy'}}\n </span>\n }\n\n @case ('dateTime') {\n <span class=\"sau-table-datetime\">\n {{getValue(item, value) | date: 'dd/MM/yyyy HH:mm'}}\n </span>\n }\n\n @case ('color'){\n <span class=\"sau-table-color-indicator\" [style.background-color]=\"getValue(item, value)\"></span>\n }\n\n @case ('link'){\n @let link = getLink(header.url, item, value);\n\n @if(link.isExternal){\n <a [href]=\"link.url\" class=\"sau-table-link\">\n {{header.linkName}}\n </a>\n }@else{\n <a [routerLink]=\"link.url\" class=\"sau-table-link\" target=\"_blank\">\n {{header.linkName}}\n </a>\n }\n\n }\n\n @case ('image'){\n @let link = getLink(header.url, item, value);\n\n <img [src]=\"link.url\" [alt]=\"getValue(item, value)\" loading=\"lazy\" class=\"sau-table-image\">\n }\n\n @case ('login'){\n @if(item.active){\n <span class=\"sau-table-login-container\">\n\n @if(item.email_verified_at){\n <div [title]=\"item.email\" class=\"sau-table-login-email-verified\">\n <span class=\"sau-icon sau-icon-envelope\">\n <sau-envelope-icon></sau-envelope-icon>\n </span>\n </div>\n }\n\n @if(item.google_id){\n <div [title]=\"item.google_id\" class=\"sau-table-login-google\">\n <span class=\"sau-icon sau-icon-google\">\n <sau-google-icon></sau-google-icon>\n </span>\n </div>\n }\n\n </span>\n } @else {\n <div class=\"sau-table-login-inactive\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @default {\n {{getValue(item, value)}}\n }\n }\n</section>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-crown-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M5 16L3 5l4.5 7L12 4l4.5 8L21 5l-2 11H5zm2.7-2h8.6l.9-5.4-2.1 3.7L12 9l-3.1 3.3-2.1-3.7L7.7 14z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class CrownIconComponent {}","import { Component, Input, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataTypeTemplateComponent } from '../data-type-template/data-type-template.component';\nimport { CrownIconComponent } from '../../icons/crown-icon';\n\n@Component({\n selector: 'sau-data-template',\n templateUrl: './data-template.component.html',\n styleUrls: ['./data-template.component.scss'],\n imports: [\n CommonModule,\n DataTypeTemplateComponent,\n CrownIconComponent\n ]\n})\nexport class DataTemplateComponent {\n @Input() item!: any;\n @Input() header!: any;\n @Input() customTemplates: { [key: string]: TemplateRef<any> } = {};\n\n getCustomTemplate(key: string): TemplateRef<any> | undefined {\n return this.customTemplates ? this.customTemplates[key] : undefined;\n }\n\n getValue(item: any, key: string | string[]) {\n let arrayKey = [];\n\n if (!Array.isArray(key)) {\n arrayKey.push(key);\n } else {\n arrayKey = key.slice();\n }\n\n let result = ''\n\n while (arrayKey.length > 0) {\n\n let keys = arrayKey[0].split('.');\n let value = item;\n\n if (keys[0].includes('[]')) {\n let arrayKey = keys[0].replace('[]', '');\n\n value = value[arrayKey].map((element: any) => this.getValue(element, keys.slice(1).join('.'))).join(', ');\n\n } else {\n let finalValue = item[String(key)]\n\n let isArray = Array.isArray(finalValue)\n let isBoolean = typeof finalValue === 'boolean'\n let isNumber = typeof finalValue === 'number'\n\n if (isArray || isBoolean || isNumber) {\n return finalValue\n }\n\n for (let i = 0; value && i < keys.length; i++) {\n value = value[keys[i]];\n }\n\n result = value;\n\n }\n\n arrayKey.shift();\n }\n\n return result;\n }\n}\n","<section class=\"sau-table-data-section\">\n\n @if(header.name == 'NOMBRE' && item.role == 'ROLE_ADMIN') {\n <div class=\"sau-table-admin-crown\">\n <span class=\"sau-icon sau-icon-crown\">\n <sau-crown-icon></sau-crown-icon>\n </span>\n </div>\n }\n\n @let customTmpl = getCustomTemplate(header.key);\n\n @if (customTmpl) {\n\n <section class=\"sau-table-data-type-section\">\n <ng-container [ngTemplateOutlet]=\"customTmpl\" [ngTemplateOutletContext]=\"{item: item, header: header}\">\n </ng-container>\n </section>\n\n } @else {\n <span>\n\n @if (header.innerHtml) {\n <span [innerHTML]=\"getValue(item, header.key)\"></span>\n } @else {\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.key\"></sau-data-type-template>\n }\n\n @if(header.subKey){\n <span class=\"sau-table-subkey\">\n (\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.subKey\"></sau-data-type-template>\n )\n </span>\n }\n\n </span>\n }\n\n</section>","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation, ContentChild, ContentChildren, QueryList, ViewChild } from '@angular/core';\nimport { TemplateRef } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SAUFilterModule } from '@some-angular-utils/filter'\nimport { SAUPaginatorModule } from '@some-angular-utils/paginator'\n\nimport { ChevronDownIconComponent } from './icons/chevron-down-icon';\nimport { PenIconComponent } from './icons/pen-icon';\nimport { TrashIconComponent } from './icons/trash-icon';\nimport { InboxIconComponent } from './icons/inbox-icon';\nimport { PrintIconComponent } from './icons/print-icon';\nimport { EyeIconComponent } from './icons/eye-icon';\nimport { DataTemplateComponent } from './components/data-template/data-template.component';\n\n@Component({\n selector: 'sau-table',\n templateUrl: './table.html',\n styleUrls: ['./table.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n RouterModule,\n CommonModule,\n SAUFilterModule,\n SAUPaginatorModule,\n ChevronDownIconComponent,\n PenIconComponent,\n TrashIconComponent,\n InboxIconComponent,\n PrintIconComponent,\n EyeIconComponent,\n DataTemplateComponent,\n ]\n})\nexport class SAUTableModule {\n @Input() url?: string;\n @Input() filterConfig = ''\n @Input() contentList?: string;\n @Input() contentTotal?: string;\n @Input() pageParamName = 'page';\n @Input() limitParamName = 'limit'\n @Input() sizeInitialPage = 0\n @Input() sizeBetweenPages = 1\n @Input() fixedContent = []\n @Input() orientation: \"dynamic\" | \"horizontal\" | \"vertical\" = \"dynamic\"\n @Input() headers?: { name: string, key: string | string[], subKey?: string, type?: string, innerHtml?: boolean, headers?: any }[];\n\n @Input() showOptions = true;\n @Output() editEvent = new EventEmitter();\n @Output() deleteEvent = new EventEmitter();\n @Output() printEvent = new EventEmitter();\n @Output() showEvent = new EventEmitter();\n\n // ContentChild para detectar cosas personalizadas\n @ContentChild('editButton', { static: false }) editButtonTemplate?: TemplateRef<any>;\n @ContentChild('deleteButton', { static: false }) deleteButtonTemplate?: TemplateRef<any>;\n @ContentChild('printButton', { static: false }) printButtonTemplate?: TemplateRef<any>;\n @ContentChild('showButton', { static: false }) showButtonTemplate?: TemplateRef<any>;\n\n @Input() canEdit?: (item: any) => boolean;\n @Input() canDelete?: (item: any) => boolean;\n @Input() canPrint?: (item: any) => boolean;\n @Input() canShow?: (item: any) => boolean;\n\n @ViewChild('filterComponent') filterComponent?: SAUFilterModule;\n\n @ContentChildren('customCell') customCellTemplates!: QueryList<any>;\n @Input() customTemplates: { [key: string]: TemplateRef<any> } = {};\n\n getCustomTemplate(key: string): TemplateRef<any> | undefined {\n return this.customTemplates ? this.customTemplates[key] : undefined;\n }\n\n // Getters para verificar si hay suscriptores\n get hasEditSubscription(): boolean {\n return this.editEvent.observed;\n }\n\n get hasDeleteSubscription(): boolean {\n return this.deleteEvent.observed;\n }\n\n get hasPrintSubscription(): boolean {\n return this.printEvent.observed;\n }\n\n get hasShowSubscription(): boolean {\n return this.showEvent.observed;\n }\n\n showEdit(item: any): boolean {\n return this.canEdit ? this.canEdit(item) : this.hasEditSubscription;\n }\n\n showDelete(item: any): boolean {\n return this.canDelete ? this.canDelete(item) : this.hasDeleteSubscription;\n }\n\n showPrint(item: any): boolean {\n return this.canPrint ? this.canPrint(item) : this.hasPrintSubscription;\n }\n\n showShow(item: any): boolean {\n return this.canShow ? this.canShow(item) : this.hasShowSubscription;\n }\n\n loading = false\n\n @Input() items: any = [];\n\n total: number = 0\n\n page = 1\n\n @Input() limit = 10\n\n filters = ''\n\n constructor(\n private http: HttpClient,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngAfterViewInit() {\n if (this.filterConfig && this.filterComponent) {\n this.filterComponent.processFilter()\n }\n\n if (this.url) {\n this.getItems();\n\n } else if (this.fixedContent && this.fixedContent.length > 0) {\n this.items = [...this.fixedContent];\n this.cdr.detectChanges();\n\n }\n }\n\n // Método para obtener la página interna (0-based si sizeInitialPage es 0, 1-based si es 1)\n private getInternalPage(): number {\n if (this.sizeInitialPage === 0) {\n return (this.page - 1) * this.sizeBetweenPages;\n }\n return this.page * this.sizeBetweenPages;\n }\n\n getItems() {\n this.loading = true;\n this.cdr.detectChanges(); // Forzar detección antes de la petición\n\n const internalPage = this.getInternalPage();\n const url = this.url + this.filters;\n const questionMark = url?.includes('?') ? '&' : '?'\n const filters = `${this.pageParamName}=${internalPage}&${this.limitParamName}=${this.limit}`;\n\n this.http.get(url + questionMark + filters).subscribe({\n next: (data: any) => {\n\n if (this.contentList && data[this.contentList]) {\n this.items = [...data[this.contentList]]; // Crear nueva referencia del array\n } else {\n this.items = [...data]; // Crear nueva referencia del array\n }\n\n if (this.contentTotal) {\n\n const total = []\n for (let i = 0; i < this.getValue(data, this.contentTotal) / this.limit; i++) {\n total.push(i + 1)\n }\n\n this.total = total.length\n }\n\n this.loading = false;\n this.cdr.detectChanges(); // Forzar detección después de actualizar datos\n },\n error: (error: any) => {\n console.error('ERROR obtener productos. ' + error);\n this.loading = false;\n this.cdr.detectChanges();\n }\n });\n }\n\n // Método simple para refrescar la tabla\n refresh() {\n if (this.url) {\n this.items = []; // Limpiar array primero\n this.cdr.detectChanges(); // Forzar actualización\n this.getItems();\n }\n }\n\n getLink(pattern: string = '{key}', item: any, value: string | string[]): { url: string, isExternal: boolean } {\n const keyValue = this.getValue(item, value);\n const url = pattern.replace('{key}', keyValue);\n const isExternal = url.startsWith('http://') || url.startsWith('https://')\n\n return {\n url,\n isExternal\n }\n }\n\n getValue(item: any, key: string | string[]) {\n\n let arrayKey = [];\n\n if (!Array.isArray(key)) {\n arrayKey.push(key);\n } else {\n arrayKey = key.slice();\n }\n\n let result = ''\n\n while (arrayKey.length > 0) {\n\n let keys = arrayKey[0].split('.');\n let value = item;\n\n if (keys[0].includes('[]')) {\n let arrayKey = keys[0].replace('[]', '');\n\n value = value[arrayKey].map((element: any) => this.getValue(element, keys.slice(1).join('.'))).join(', ');\n\n } else {\n let finalValue = item[String(key)]\n\n let isArray = Array.isArray(finalValue)\n let isBoolean = typeof finalValue === 'boolean'\n let isNumber = typeof finalValue === 'number'\n\n if (isArray || isBoolean || isNumber) {\n return finalValue\n }\n\n for (let i = 0; value && i < keys.length; i++) {\n value = value[keys[i]];\n }\n }\n\n arrayKey.shift();\n\n result += (value ?? '') + (arrayKey.length > 0 ? ' ' : '');\n\n }\n\n return result;\n }\n\n isArray(array: any): boolean {\n return Array.isArray(array)\n }\n\n clickEditButton(item?: any) {\n this.editEvent.emit(item)\n }\n\n clickDeleteButton(item?: any) {\n this.deleteEvent.emit(item);\n }\n\n clickPrintButton(item?: any) {\n this.printEvent.emit(item);\n }\n\n clickShowButton(item?: any) {\n this.showEvent.emit(item);\n }\n\n onPageChange(newPage: number) {\n this.page = newPage;\n this.getItems()\n }\n\n onFiltersChange(filters: string) {\n this.filters = filters;\n this.getItems()\n }\n\n}\n","<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\" (click)=\"clickDeleteButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item)\" title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecerán aquí cuando estén disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>","/*\n * Public API Surface of table\n */\n\nexport * from './lib/table';\nexport * from './lib/components/data-template/data-template.component';\nexport * from './lib/components/data-type-template/data-type-template.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"some-angular-utils-table.mjs","sources":["../../../../projects/some-angular-utils/table/src/lib/icons/chevron-down-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/pen-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/trash-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/inbox-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/print-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/eye-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/check-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/xmark-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/envelope-icon.ts","../../../../projects/some-angular-utils/table/src/lib/icons/google-icon.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-type-template/data-type-template.component.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-type-template/data-type-template.component.html","../../../../projects/some-angular-utils/table/src/lib/icons/crown-icon.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-template/data-template.component.ts","../../../../projects/some-angular-utils/table/src/lib/components/data-template/data-template.component.html","../../../../projects/some-angular-utils/table/src/lib/table.ts","../../../../projects/some-angular-utils/table/src/lib/table.html","../../../../projects/some-angular-utils/table/src/public-api.ts","../../../../projects/some-angular-utils/table/src/some-angular-utils-table.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-chevron-down-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M12 15.5l-6-6h12l-6 6z\" />\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class ChevronDownIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-pen-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class PenIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-trash-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class TrashIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-inbox-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H5V5h14v10z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class InboxIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-print-icon',\n standalone: true,\n template: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.-->\n <path d=\"M128 128C128 92.7 156.7 64 192 64L405.5 64C422.5 64 438.8 70.7 450.8 82.7L493.3 125.2C505.3 137.2 512 153.5 512 170.5L512 208L128 208L128 128zM64 320C64 284.7 92.7 256 128 256L512 256C547.3 256 576 284.7 576 320L576 416C576 433.7 561.7 448 544 448L512 448L512 512C512 547.3 483.3 576 448 576L192 576C156.7 576 128 547.3 128 512L128 448L96 448C78.3 448 64 433.7 64 416L64 320zM192 480L192 512L448 512L448 416L192 416L192 480zM520 336C520 322.7 509.3 312 496 312C482.7 312 472 322.7 472 336C472 349.3 482.7 360 496 360C509.3 360 520 349.3 520 336z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class PrintIconComponent { }","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-eye-icon',\n standalone: true,\n template: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"w-4 h-auto\">\n <path fill=\"currentColor\"\n d=\"M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6.01 7 11 7s9.27-3.11 11-7c-1.73-3.89-6.01-7-11-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8.5c-1.93 0-3.5 1.57-3.5 3.5S10.07 15.5 12 15.5 15.5 13.93 15.5 12 13.93 8.5 12 8.5z\" />\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class EyeIconComponent { }","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-check-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class CheckIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-xmark-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.88-4.89c.39-.38.39-1.02.01-1.4z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class XmarkIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-envelope-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class EnvelopeIconComponent {}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-google-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%;\">\n <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\" fill=\"#4285F4\"/>\n <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\"/>\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\"/>\n <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class GoogleIconComponent {}","import { Component, Input } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { CheckIconComponent } from '../../icons/check-icon';\nimport { XmarkIconComponent } from '../../icons/xmark-icon';\nimport { EnvelopeIconComponent } from '../../icons/envelope-icon';\nimport { GoogleIconComponent } from '../../icons/google-icon';\n\n@Component({\n selector: 'sau-data-type-template',\n templateUrl: './data-type-template.component.html',\n styleUrls: ['./data-type-template.component.scss'],\n imports: [\n CommonModule,\n DatePipe,\n RouterModule,\n CheckIconComponent,\n XmarkIconComponent,\n EnvelopeIconComponent,\n GoogleIconComponent\n ]\n})\nexport class DataTypeTemplateComponent {\n @Input() item!: any;\n @Input() header!: any;\n @Input() value!: string | string[];\n\n getValue(item: any, key: string | string[]) {\n let arrayKey = [];\n\n if (!Array.isArray(key)) {\n arrayKey.push(key);\n } else {\n arrayKey = key.slice();\n }\n\n let result = ''\n\n while (arrayKey.length > 0) {\n\n let keys = arrayKey[0].split('.');\n let value = item;\n\n if (keys[0].includes('[]')) {\n let arrayKey = keys[0].replace('[]', '');\n\n value = value[arrayKey].map((element: any) => this.getValue(element, keys.slice(1).join('.'))).join(', ');\n\n } else {\n let finalValue = item[String(key)]\n\n let isArray = Array.isArray(finalValue)\n let isBoolean = typeof finalValue === 'boolean'\n let isNumber = typeof finalValue === 'number'\n\n if (isArray || isBoolean || isNumber) {\n return finalValue\n }\n\n for (let i = 0; value && i < keys.length; i++) {\n value = value[keys[i]];\n }\n\n result = value;\n\n }\n\n arrayKey.shift();\n }\n\n return result;\n }\n\n getLink(pattern: string = '{key}', item: any, value: string | string[]): { url: string, isExternal: boolean } {\n const keyValue = this.getValue(item, value);\n const url = pattern.replace('{key}', keyValue);\n const isExternal = url.startsWith('http://') || url.startsWith('https://')\n\n return {\n url,\n isExternal\n }\n }\n}\n","<section class=\"sau-table-data-type-section\">\n @switch (header.type) {\n\n @case ('boolean') {\n @if(getValue(item, value)){\n <div class=\"sau-table-boolean-true\">\n <span class=\"sau-icon sau-icon-check\">\n <sau-check-icon></sau-check-icon>\n </span>\n </div>\n } @else {\n <div class=\"sau-table-boolean-false\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @case ('date') {\n <span class=\"sau-table-date\">\n {{getValue(item, value) | date: 'dd/MM/yyyy'}}\n </span>\n }\n\n @case ('dateTime') {\n <span class=\"sau-table-datetime\">\n {{getValue(item, value) | date: 'dd/MM/yyyy HH:mm'}}\n </span>\n }\n\n @case ('color'){\n <span class=\"sau-table-color-indicator\" [style.background-color]=\"getValue(item, value)\"></span>\n }\n\n @case ('link'){\n @let link = getLink(header.url, item, value);\n\n @if(link.isExternal){\n <a [href]=\"link.url\" class=\"sau-table-link\">\n {{header.linkName}}\n </a>\n }@else{\n <a [routerLink]=\"link.url\" class=\"sau-table-link\" target=\"_blank\">\n {{header.linkName}}\n </a>\n }\n\n }\n\n @case ('image'){\n @let link = getLink(header.url, item, value);\n\n <img [src]=\"link.url\" [alt]=\"getValue(item, value)\" loading=\"lazy\" class=\"sau-table-image\">\n }\n\n @case ('login'){\n @if(item.active){\n <span class=\"sau-table-login-container\">\n\n @if(item.email_verified_at){\n <div [title]=\"item.email\" class=\"sau-table-login-email-verified\">\n <span class=\"sau-icon sau-icon-envelope\">\n <sau-envelope-icon></sau-envelope-icon>\n </span>\n </div>\n }\n\n @if(item.google_id){\n <div [title]=\"item.google_id\" class=\"sau-table-login-google\">\n <span class=\"sau-icon sau-icon-google\">\n <sau-google-icon></sau-google-icon>\n </span>\n </div>\n }\n\n </span>\n } @else {\n <div class=\"sau-table-login-inactive\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @default {\n {{getValue(item, value)}}\n }\n }\n</section>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sau-crown-icon',\n standalone: true,\n template: `\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 100%; height: 100%; fill: currentColor;\">\n <path d=\"M5 16L3 5l4.5 7L12 4l4.5 8L21 5l-2 11H5zm2.7-2h8.6l.9-5.4-2.1 3.7L12 9l-3.1 3.3-2.1-3.7L7.7 14z\"/>\n </svg>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n }\n `]\n})\nexport class CrownIconComponent {}","import { Component, Input, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataTypeTemplateComponent } from '../data-type-template/data-type-template.component';\nimport { CrownIconComponent } from '../../icons/crown-icon';\n\n@Component({\n selector: 'sau-data-template',\n templateUrl: './data-template.component.html',\n styleUrls: ['./data-template.component.scss'],\n imports: [\n CommonModule,\n DataTypeTemplateComponent,\n CrownIconComponent\n ]\n})\nexport class DataTemplateComponent {\n @Input() item!: any;\n @Input() header!: any;\n @Input() customTemplates: { [key: string]: TemplateRef<any> } = {};\n\n getCustomTemplate(key: string): TemplateRef<any> | undefined {\n return this.customTemplates ? this.customTemplates[key] : undefined;\n }\n\n getValue(item: any, key: string | string[]) {\n let arrayKey = [];\n\n if (!Array.isArray(key)) {\n arrayKey.push(key);\n } else {\n arrayKey = key.slice();\n }\n\n let result = ''\n\n while (arrayKey.length > 0) {\n\n let keys = arrayKey[0].split('.');\n let value = item;\n\n if (keys[0].includes('[]')) {\n let arrayKey = keys[0].replace('[]', '');\n\n value = value[arrayKey].map((element: any) => this.getValue(element, keys.slice(1).join('.'))).join(', ');\n\n } else {\n let finalValue = item[String(key)]\n\n let isArray = Array.isArray(finalValue)\n let isBoolean = typeof finalValue === 'boolean'\n let isNumber = typeof finalValue === 'number'\n\n if (isArray || isBoolean || isNumber) {\n return finalValue\n }\n\n for (let i = 0; value && i < keys.length; i++) {\n value = value[keys[i]];\n }\n\n result = value;\n\n }\n\n arrayKey.shift();\n }\n\n return result;\n }\n}\n","<section class=\"sau-table-data-section\">\n\n @if(header.name == 'NOMBRE' && item.role == 'ROLE_ADMIN') {\n <div class=\"sau-table-admin-crown\">\n <span class=\"sau-icon sau-icon-crown\">\n <sau-crown-icon></sau-crown-icon>\n </span>\n </div>\n }\n\n @let customTmpl = getCustomTemplate(header.key);\n\n @if (customTmpl) {\n\n <section class=\"sau-table-data-type-section\">\n <ng-container [ngTemplateOutlet]=\"customTmpl\" [ngTemplateOutletContext]=\"{item: item, header: header}\">\n </ng-container>\n </section>\n\n } @else {\n <span>\n\n @if (header.innerHtml) {\n <span [innerHTML]=\"getValue(item, header.key)\"></span>\n } @else {\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.key\"></sau-data-type-template>\n }\n\n @if(header.subKey){\n <span class=\"sau-table-subkey\">\n (\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.subKey\"></sau-data-type-template>\n )\n </span>\n }\n\n </span>\n }\n\n</section>","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation, ContentChild, ContentChildren, QueryList, ViewChild } from '@angular/core';\nimport { TemplateRef } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SAUFilterModule } from '@some-angular-utils/filter'\nimport { SAUPaginatorModule } from '@some-angular-utils/paginator'\n\nimport { ChevronDownIconComponent } from './icons/chevron-down-icon';\nimport { PenIconComponent } from './icons/pen-icon';\nimport { TrashIconComponent } from './icons/trash-icon';\nimport { InboxIconComponent } from './icons/inbox-icon';\nimport { PrintIconComponent } from './icons/print-icon';\nimport { EyeIconComponent } from './icons/eye-icon';\nimport { DataTemplateComponent } from './components/data-template/data-template.component';\n\n@Component({\n selector: 'sau-table',\n templateUrl: './table.html',\n styleUrls: ['./table.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n RouterModule,\n CommonModule,\n SAUFilterModule,\n SAUPaginatorModule,\n ChevronDownIconComponent,\n PenIconComponent,\n TrashIconComponent,\n InboxIconComponent,\n PrintIconComponent,\n EyeIconComponent,\n DataTemplateComponent,\n ]\n})\nexport class SAUTableModule {\n @Input() url?: string;\n @Input() filterConfig = ''\n @Input() contentList?: string;\n @Input() contentTotal?: string;\n @Input() pageParamName = 'page';\n @Input() limitParamName = 'limit'\n @Input() sizeInitialPage = 0\n @Input() sizeBetweenPages = 1\n @Input() fixedContent = []\n @Input() orientation: \"dynamic\" | \"horizontal\" | \"vertical\" = \"dynamic\"\n @Input() headers?: { name: string, key: string | string[], subKey?: string, type?: string, innerHtml?: boolean, headers?: any }[];\n\n @Input() showOptions = true;\n @Output() editEvent = new EventEmitter();\n @Output() deleteEvent = new EventEmitter();\n @Output() printEvent = new EventEmitter();\n @Output() showEvent = new EventEmitter();\n @Output() itemsLoadedEvent = new EventEmitter<any[]>();\n\n // ContentChild para detectar cosas personalizadas\n @ContentChild('editButton', { static: false }) editButtonTemplate?: TemplateRef<any>;\n @ContentChild('deleteButton', { static: false }) deleteButtonTemplate?: TemplateRef<any>;\n @ContentChild('printButton', { static: false }) printButtonTemplate?: TemplateRef<any>;\n @ContentChild('showButton', { static: false }) showButtonTemplate?: TemplateRef<any>;\n\n @Input() canEdit?: (item: any) => boolean;\n @Input() canDelete?: (item: any) => boolean;\n @Input() canPrint?: (item: any) => boolean;\n @Input() canShow?: (item: any) => boolean;\n\n @ViewChild('filterComponent') filterComponent?: SAUFilterModule;\n\n @ContentChildren('customCell') customCellTemplates!: QueryList<any>;\n @Input() customTemplates: { [key: string]: TemplateRef<any> } = {};\n\n getCustomTemplate(key: string): TemplateRef<any> | undefined {\n return this.customTemplates ? this.customTemplates[key] : undefined;\n }\n\n // Getters para verificar si hay suscriptores\n get hasEditSubscription(): boolean {\n return this.editEvent.observed;\n }\n\n get hasDeleteSubscription(): boolean {\n return this.deleteEvent.observed;\n }\n\n get hasPrintSubscription(): boolean {\n return this.printEvent.observed;\n }\n\n get hasShowSubscription(): boolean {\n return this.showEvent.observed;\n }\n\n showEdit(item: any): boolean {\n return this.canEdit ? this.canEdit(item) : this.hasEditSubscription;\n }\n\n showDelete(item: any): boolean {\n return this.canDelete ? this.canDelete(item) : this.hasDeleteSubscription;\n }\n\n showPrint(item: any): boolean {\n return this.canPrint ? this.canPrint(item) : this.hasPrintSubscription;\n }\n\n showShow(item: any): boolean {\n return this.canShow ? this.canShow(item) : this.hasShowSubscription;\n }\n\n loading = false\n\n @Input() items: any = [];\n\n total: number = 0\n\n page = 1\n\n @Input() limit = 10\n\n filters = ''\n\n constructor(\n private http: HttpClient,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngAfterViewInit() {\n if (this.filterConfig && this.filterComponent) {\n this.filterComponent.processFilter()\n }\n\n if (this.url) {\n this.getItems();\n\n } else if (this.fixedContent && this.fixedContent.length > 0) {\n this.items = [...this.fixedContent];\n this.cdr.detectChanges();\n this.itemsLoadedEvent.emit(this.items);\n\n }\n }\n\n // Método para obtener la página interna (0-based si sizeInitialPage es 0, 1-based si es 1)\n private getInternalPage(): number {\n if (this.sizeInitialPage === 0) {\n return (this.page - 1) * this.sizeBetweenPages;\n }\n return this.page * this.sizeBetweenPages;\n }\n\n getItems() {\n this.loading = true;\n this.cdr.detectChanges(); // Forzar detección antes de la petición\n\n const internalPage = this.getInternalPage();\n const url = this.url + this.filters;\n const questionMark = url?.includes('?') ? '&' : '?'\n const filters = `${this.pageParamName}=${internalPage}&${this.limitParamName}=${this.limit}`;\n\n this.http.get(url + questionMark + filters).subscribe({\n next: (data: any) => {\n\n if (this.contentList && data[this.contentList]) {\n this.items = [...data[this.contentList]]; // Crear nueva referencia del array\n } else {\n this.items = [...data]; // Crear nueva referencia del array\n }\n\n if (this.contentTotal) {\n\n const total = []\n for (let i = 0; i < this.getValue(data, this.contentTotal) / this.limit; i++) {\n total.push(i + 1)\n }\n\n this.total = total.length\n }\n\n this.loading = false;\n this.cdr.detectChanges(); // Forzar detección después de actualizar datos\n this.itemsLoadedEvent.emit(this.items);\n },\n error: (error: any) => {\n console.error('ERROR obtener productos. ' + error);\n this.loading = false;\n this.cdr.detectChanges();\n }\n });\n }\n\n // Método simple para refrescar la tabla\n refresh() {\n if (this.url) {\n this.items = []; // Limpiar array primero\n this.cdr.detectChanges(); // Forzar actualización\n this.getItems();\n }\n }\n\n getLink(pattern: string = '{key}', item: any, value: string | string[]): { url: string, isExternal: boolean } {\n const keyValue = this.getValue(item, value);\n const url = pattern.replace('{key}', keyValue);\n const isExternal = url.startsWith('http://') || url.startsWith('https://')\n\n return {\n url,\n isExternal\n }\n }\n\n getValue(item: any, key: string | string[]) {\n\n let arrayKey = [];\n\n if (!Array.isArray(key)) {\n arrayKey.push(key);\n } else {\n arrayKey = key.slice();\n }\n\n let result = ''\n\n while (arrayKey.length > 0) {\n\n let keys = arrayKey[0].split('.');\n let value = item;\n\n if (keys[0].includes('[]')) {\n let arrayKey = keys[0].replace('[]', '');\n\n value = value[arrayKey].map((element: any) => this.getValue(element, keys.slice(1).join('.'))).join(', ');\n\n } else {\n let finalValue = item[String(key)]\n\n let isArray = Array.isArray(finalValue)\n let isBoolean = typeof finalValue === 'boolean'\n let isNumber = typeof finalValue === 'number'\n\n if (isArray || isBoolean || isNumber) {\n return finalValue\n }\n\n for (let i = 0; value && i < keys.length; i++) {\n value = value[keys[i]];\n }\n }\n\n arrayKey.shift();\n\n result += (value ?? '') + (arrayKey.length > 0 ? ' ' : '');\n\n }\n\n return result;\n }\n\n isArray(array: any): boolean {\n return Array.isArray(array)\n }\n\n clickEditButton(item?: any) {\n this.editEvent.emit(item)\n }\n\n clickDeleteButton(item?: any) {\n this.deleteEvent.emit(item);\n }\n\n clickPrintButton(item?: any) {\n this.printEvent.emit(item);\n }\n\n clickShowButton(item?: any) {\n this.showEvent.emit(item);\n }\n\n onPageChange(newPage: number) {\n this.page = newPage;\n this.getItems()\n }\n\n onFiltersChange(filters: string) {\n this.filters = filters;\n this.getItems()\n }\n\n}\n","<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\" (click)=\"clickDeleteButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item)\" title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecerán aquí cuando estén disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>","/*\n * Public API Surface of table\n */\n\nexport * from './lib/table';\nexport * from './lib/components/data-template/data-template.component';\nexport * from './lib/components/data-type-template/data-type-template.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@some-angular-utils/table",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "Angular table utility library",
5
5
  "author": {
6
6
  "name": "jose de los santos",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "tslib": "^2.3.0",
28
- "@some-angular-utils/filter": "^0.0.8",
28
+ "@some-angular-utils/filter": "^0.0.9",
29
29
  "@some-angular-utils/paginator": "^0.0.11"
30
30
  },
31
31
  "sideEffects": false,
@@ -29,6 +29,7 @@ declare class SAUTableModule {
29
29
  deleteEvent: EventEmitter<any>;
30
30
  printEvent: EventEmitter<any>;
31
31
  showEvent: EventEmitter<any>;
32
+ itemsLoadedEvent: EventEmitter<any[]>;
32
33
  editButtonTemplate?: TemplateRef<any>;
33
34
  deleteButtonTemplate?: TemplateRef<any>;
34
35
  printButtonTemplate?: TemplateRef<any>;
@@ -75,7 +76,7 @@ declare class SAUTableModule {
75
76
  onPageChange(newPage: number): void;
76
77
  onFiltersChange(filters: string): void;
77
78
  static ɵfac: i0.ɵɵFactoryDeclaration<SAUTableModule, never>;
78
- static ɵcmp: i0.ɵɵComponentDeclaration<SAUTableModule, "sau-table", never, { "url": { "alias": "url"; "required": false; }; "filterConfig": { "alias": "filterConfig"; "required": false; }; "contentList": { "alias": "contentList"; "required": false; }; "contentTotal": { "alias": "contentTotal"; "required": false; }; "pageParamName": { "alias": "pageParamName"; "required": false; }; "limitParamName": { "alias": "limitParamName"; "required": false; }; "sizeInitialPage": { "alias": "sizeInitialPage"; "required": false; }; "sizeBetweenPages": { "alias": "sizeBetweenPages"; "required": false; }; "fixedContent": { "alias": "fixedContent"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "headers": { "alias": "headers"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canPrint": { "alias": "canPrint"; "required": false; }; "canShow": { "alias": "canShow"; "required": false; }; "customTemplates": { "alias": "customTemplates"; "required": false; }; "items": { "alias": "items"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "editEvent": "editEvent"; "deleteEvent": "deleteEvent"; "printEvent": "printEvent"; "showEvent": "showEvent"; }, ["editButtonTemplate", "deleteButtonTemplate", "printButtonTemplate", "showButtonTemplate", "customCellTemplates"], never, true, never>;
79
+ static ɵcmp: i0.ɵɵComponentDeclaration<SAUTableModule, "sau-table", never, { "url": { "alias": "url"; "required": false; }; "filterConfig": { "alias": "filterConfig"; "required": false; }; "contentList": { "alias": "contentList"; "required": false; }; "contentTotal": { "alias": "contentTotal"; "required": false; }; "pageParamName": { "alias": "pageParamName"; "required": false; }; "limitParamName": { "alias": "limitParamName"; "required": false; }; "sizeInitialPage": { "alias": "sizeInitialPage"; "required": false; }; "sizeBetweenPages": { "alias": "sizeBetweenPages"; "required": false; }; "fixedContent": { "alias": "fixedContent"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "headers": { "alias": "headers"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canPrint": { "alias": "canPrint"; "required": false; }; "canShow": { "alias": "canShow"; "required": false; }; "customTemplates": { "alias": "customTemplates"; "required": false; }; "items": { "alias": "items"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "editEvent": "editEvent"; "deleteEvent": "deleteEvent"; "printEvent": "printEvent"; "showEvent": "showEvent"; "itemsLoadedEvent": "itemsLoadedEvent"; }, ["editButtonTemplate", "deleteButtonTemplate", "printButtonTemplate", "showButtonTemplate", "customCellTemplates"], never, true, never>;
79
80
  }
80
81
 
81
82
  declare class DataTemplateComponent {