@solcre-org/core-ui 2.26.0 → 2.26.2

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.
@@ -232,3 +232,7 @@
232
232
  background-color: hsl(from hsl(var(--color-context-error-hsl)) h s 94%);
233
233
  border-radius: var(--_entry-input-br, 8px);
234
234
  }
235
+
236
+ .s-dark-mode .c-native-select{
237
+ background-color: var(--color-neutral-900);
238
+ }
@@ -13765,6 +13765,8 @@ class GenericTableComponent {
13765
13765
  dataRefreshed = output();
13766
13766
  modalClosed = output();
13767
13767
  hasTabs = computed(() => this.modalTabs().length > 0);
13768
+ modalCreateSteps = input([]);
13769
+ hasModalCreateSteps = computed(() => this.modalCreateSteps().length > 0);
13768
13770
  allModalFields = computed(() => {
13769
13771
  if (this.hasTabs()) {
13770
13772
  return this.modalTabs().flatMap(tab => tab.fields);
@@ -15492,14 +15494,15 @@ class GenericTableComponent {
15492
15494
  getSortButtonTitle(column) {
15493
15495
  const sortState = this.getColumnSortState(column);
15494
15496
  const priority = this.getColumnSortPriority(column);
15497
+ const label = this.translationService.instant(column.label);
15495
15498
  if (!sortState) {
15496
- return `Ordenar por ${column.label}`;
15499
+ return `Ordenar por ${label}`;
15497
15500
  }
15498
15501
  const direction = sortState === SortDirection.ASC ? 'ascendente' : 'descendente';
15499
15502
  const priorityText = this.isMultiColumnSortEnabled() && priority !== null
15500
15503
  ? ` (prioridad ${priority + 1})`
15501
15504
  : '';
15502
- return `Ordenado por ${column.label} ${direction}${priorityText}. Click para cambiar.`;
15505
+ return `Ordenado por ${label} ${direction}${priorityText}. Click para cambiar.`;
15503
15506
  }
15504
15507
  handleSortChange() {
15505
15508
  if (this.tableSortService.isServerMode()) {
@@ -16017,7 +16020,7 @@ class GenericTableComponent {
16017
16020
  };
16018
16021
  }
16019
16022
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16020
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTableComponent, isStandalone: true, selector: "core-generic-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, modalFields: { classPropertyName: "modalFields", publicName: "modalFields", isSignal: true, isRequired: false, transformFunction: null }, modalTabs: { classPropertyName: "modalTabs", publicName: "modalTabs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, globalActions: { classPropertyName: "globalActions", publicName: "globalActions", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showSelection: { classPropertyName: "showSelection", publicName: "showSelection", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateButton: { classPropertyName: "showCreateButton", publicName: "showCreateButton", isSignal: true, isRequired: false, transformFunction: null }, filterButtonConfig: { classPropertyName: "filterButtonConfig", publicName: "filterButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonConfig: { classPropertyName: "createButtonConfig", publicName: "createButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonText: { classPropertyName: "createButtonText", publicName: "createButtonText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "dataInput", isSignal: true, isRequired: false, transformFunction: null }, customFilters: { classPropertyName: "customFilters", publicName: "customFilters", isSignal: true, isRequired: false, transformFunction: null }, enablePagination: { classPropertyName: "enablePagination", publicName: "enablePagination", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, endpoint: { classPropertyName: "endpoint", publicName: "endpoint", isSignal: true, isRequired: false, transformFunction: null }, customParams: { classPropertyName: "customParams", publicName: "customParams", isSignal: true, isRequired: false, transformFunction: null }, customArrayKey: { classPropertyName: "customArrayKey", publicName: "customArrayKey", isSignal: true, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: true, isRequired: false, transformFunction: null }, listSubTitle: { classPropertyName: "listSubTitle", publicName: "listSubTitle", isSignal: true, isRequired: false, transformFunction: null }, moreData: { classPropertyName: "moreData", publicName: "moreData", isSignal: true, isRequired: false, transformFunction: null }, inModal: { classPropertyName: "inModal", publicName: "inModal", isSignal: true, isRequired: false, transformFunction: null }, expansionConfig: { classPropertyName: "expansionConfig", publicName: "expansionConfig", isSignal: true, isRequired: false, transformFunction: null }, fileUploadConfig: { classPropertyName: "fileUploadConfig", publicName: "fileUploadConfig", isSignal: true, isRequired: false, transformFunction: null }, rowStyleConfigs: { classPropertyName: "rowStyleConfigs", publicName: "rowStyleConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnDisabledConfigs: { classPropertyName: "columnDisabledConfigs", publicName: "columnDisabledConfigs", isSignal: true, isRequired: false, transformFunction: null }, rowVisibilityConfigs: { classPropertyName: "rowVisibilityConfigs", publicName: "rowVisibilityConfigs", isSignal: true, isRequired: false, transformFunction: null }, headerOrder: { classPropertyName: "headerOrder", publicName: "headerOrder", isSignal: true, isRequired: false, transformFunction: null }, showActiveFilters: { classPropertyName: "showActiveFilters", publicName: "showActiveFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFiltersConfig: { classPropertyName: "activeFiltersConfig", publicName: "activeFiltersConfig", isSignal: true, isRequired: false, transformFunction: null }, sortConfig: { classPropertyName: "sortConfig", publicName: "sortConfig", isSignal: true, isRequired: false, transformFunction: null }, showManualRefresh: { classPropertyName: "showManualRefresh", publicName: "showManualRefresh", isSignal: true, isRequired: false, transformFunction: null }, manualRefreshConfig: { classPropertyName: "manualRefreshConfig", publicName: "manualRefreshConfig", isSignal: true, isRequired: false, transformFunction: null }, refreshButtonConfig: { classPropertyName: "refreshButtonConfig", publicName: "refreshButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, fixedActionsConfig: { classPropertyName: "fixedActionsConfig", publicName: "fixedActionsConfig", isSignal: true, isRequired: false, transformFunction: null }, deletedFilterKey: { classPropertyName: "deletedFilterKey", publicName: "deletedFilterKey", isSignal: true, isRequired: false, transformFunction: null }, scrollTable: { classPropertyName: "scrollTable", publicName: "scrollTable", isSignal: true, isRequired: false, transformFunction: null }, customEdit: { classPropertyName: "customEdit", publicName: "customEdit", isSignal: true, isRequired: false, transformFunction: null }, customDelete: { classPropertyName: "customDelete", publicName: "customDelete", isSignal: true, isRequired: false, transformFunction: null }, customView: { classPropertyName: "customView", publicName: "customView", isSignal: true, isRequired: false, transformFunction: null }, customSave: { classPropertyName: "customSave", publicName: "customSave", isSignal: true, isRequired: false, transformFunction: null }, useCustomSave: { classPropertyName: "useCustomSave", publicName: "useCustomSave", isSignal: true, isRequired: false, transformFunction: null }, onApiError: { classPropertyName: "onApiError", publicName: "onApiError", isSignal: true, isRequired: false, transformFunction: null }, inlineEditConfig: { classPropertyName: "inlineEditConfig", publicName: "inlineEditConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", selectionChanged: "selectionChanged", dataCreated: "dataCreated", dataUpdated: "dataUpdated", dataDeleted: "dataDeleted", dataFetched: "dataFetched", onMoreDataLoaded: "onMoreDataLoaded", globalActionTriggered: "globalActionTriggered", modalData: "modalData", beforeSave: "beforeSave", onFilterChange: "onFilterChange", onClearFilters: "onClearFilters", activeFilterRemoved: "activeFilterRemoved", activeFiltersCleared: "activeFiltersCleared", dataRefreshed: "dataRefreshed", modalClosed: "modalClosed", inlineEditSave: "inlineEditSave", inlineEditModeChanged: "inlineEditModeChanged", inlineEditValidationError: "inlineEditValidationError" }, host: { listeners: { "window:beforeunload": "onBeforeUnload($event)", "document:click": "closeSubmenu()" } }, providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], viewQueries: [{ propertyName: "sentinel", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: ["dropdownTrigger"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "manualRefreshComponent", first: true, predicate: CoreManualRefreshComponent, descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\"\n >\n </core-active-filters>\n}\n<div\n class=\"c-table\"\n [class.c-table--scroll]=\"scrollTable()\"\n [class.in-modal]=\"inModal()\"\n [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\"\n>\n @if (shouldShowManualRefresh()) {\n <core-manual-refresh\n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\"\n >\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n (change)=\"masterToggle()\"\n />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button\n class=\"c-table-order\"\n tabindex=\"-1\"\n [class.is-asc]=\"\n getColumnSortState(column) === SortDirection.ASC\n \"\n [class.is-desc]=\"\n getColumnSortState(column) === SortDirection.DESC\n \"\n [class.has-multiple-sorts]=\"\n isMultiColumnSortEnabled() &&\n getColumnSortPriority(column) !== null\n \"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\"\n >\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span\n class=\"c-table-order__arrow--asc icon-arrow-down\"\n ></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (\n showActions() && (actions().length > 0 || customActions().length > 0)\n ) {\n <th class=\"u-align-right\">{{ \"table.actions\" | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr\n [ngClass]=\"getRowClasses(row)\"\n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\"\n >\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isRowSelected(row)\"\n (change)=\"toggleRow(row)\"\n />\n </td>\n }\n @for (column of columns(); track $index) {\n <td\n [attr.data-label]=\"column.label | translate\"\n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column),\n ]\"\n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\"\n >\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container\n *ngTemplateOutlet=\"\n column.template;\n context: { $implicit: row, column: column }\n \"\n ></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n {{ getFormattedValue(row, column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (\n showActions() &&\n (actions().length > 0 ||\n customActions().length > 0 ||\n expansionConfig()?.enabled)\n ) {\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown\n [rowId]=\"row.getId()\"\n [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\"\n [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"\n triggerCustomAction($event.action, $event.row)\n \"\n #dropdown\n >\n </core-dropdown>\n @for (\n actionConfig of getVisibleDefaultActions(row, false);\n track actionConfig.action\n ) {\n @if (hasPermission(actionConfig)) {\n @if (\n actionConfig.action === TableAction.VIEW ||\n actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE ||\n actionConfig.action === TableAction.RECOVER\n ) {\n <core-generic-button\n [config]=\"\n getActionButtonConfig(\n actionConfig.action,\n actionConfig,\n row\n )\n \"\n (buttonClick)=\"\n onButtonClick($event, actionConfig.action, row)\n \"\n >\n </core-generic-button>\n }\n }\n }\n @for (\n customAction of getVisibleCustomActions(row, false);\n track customAction.label || $index\n ) {\n @if (hasPermission(customAction)) {\n @if (customAction.isSwitch && customAction.switchOptions) {\n <core-generic-switch\n [options]=\"customAction.switchOptions\"\n [selectedValue]=\"\n customAction.switchValue\n ? customAction.switchValue(row)\n : null\n \"\n [ariaLabel]=\"\n customAction.switchAriaLabel || customAction.title\n \"\n (valueChange)=\"\n onCustomActionSwitchChange($event, customAction, row)\n \"\n >\n </core-generic-switch>\n } @else {\n <core-generic-button\n [config]=\"\n getCustomActionButtonConfigForRow(customAction, row)\n \"\n (buttonClick)=\"onButtonClick($event, customAction, row)\"\n >\n </core-generic-button>\n }\n }\n }\n\n @for (\n outsideAction of getOutsideFixedActionsForRow(row);\n track $index\n ) {\n @if (\n outsideAction.type === \"table\" ||\n outsideAction.type === \"custom\"\n ? hasPermission(outsideAction.config)\n : true\n ) {\n <core-generic-button\n [config]=\"\n getOutsideFixedActionButtonConfig(outsideAction, row)\n \"\n (buttonClick)=\"\n onOutsideFixedActionClick($event, outsideAction, row)\n \"\n >\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button\n [config]=\"getMoreActionsButtonConfig(row.getId())\"\n [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\"\n #dropdownTrigger\n >\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button\n [config]=\"getExpandButtonConfig(row)\"\n (buttonClick)=\"onExpandButtonClick($event, row)\"\n >\n </core-generic-button>\n }\n </div>\n <!-- .c-table__actions -->\n </td>\n <!-- td parent of .c-table__actions -->\n }\n <!-- @if (showActions() -->\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"c-table-dropdown\" [ngClass]=\"getRowClasses(row)\">\n <td\n [attr.colspan]=\"displayedColumns().length\"\n class=\"c-table-dropdown__holder\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionConfig()!.template;\n context: { $implicit: row }\n \"\n >\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ \"table.noData\" | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n<!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n <!-- Todo: Ver qu\u00E9 onda esto -->\n <div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n <core-generic-pagination\n [tableId]=\"tableId\"\n [isServerSide]=\"!!endpoint()\"\n [showPagination]=\"shouldShowPagination()\"\n [showPageSizeSelector]=\"shouldShowPageSizeSelector()\"\n >\n </core-generic-pagination>\n}\n\n<core-generic-modal\n [isOpen]=\"tableActionService.getIsModalOpen()\"\n [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\"\n [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\"\n [title]=\"tableActionService.getModalTitle()\"\n [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\"\n (close)=\"closeModal()\"\n (modalData)=\"onModalData($event)\"\n>\n</core-generic-modal>\n\n<core-filter-modal\n [isOpen]=\"isFilterModalOpen()\"\n [filters]=\"modalFilters()\"\n [currentFilterValues]=\"currentFilterValues()\"\n (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\"\n (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\"\n>\n</core-filter-modal>\n\n<!-- @if (shouldShowFixedActions()) {\n <div class=\"c-fixed-actions\" [ngClass]=\"'c-fixed-actions--' + (fixedActionsConfig()?.position || 'right')\">\n @for (action of fixedActionsArray(); track $index) {\n @if (shouldShowFixedAction(action)) {\n <button \n type=\"button\"\n [ngClass]=\"getFixedActionClass(action)\"\n [disabled]=\"isFixedActionDisabled(action)\"\n [title]=\"getFixedActionTooltip(action) || ''\"\n [attr.aria-label]=\"getFixedActionTooltip(action) || action.label || ''\"\n (click)=\"onFixedActionClick(action)\">\n </button>\n }\n }\n </div>\n} -->\n\n<core-fixed-actions-mobile-modal />\n", styles: [".c-table-dropdown{padding:16px;background-color:var(--color-neutral-200);border-top:1px solid var(--color-alternative-100)}.c-table-dropdown td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:var(--color-context-success)}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}@media (max-width: 61.1875rem){.c-table-dropdown{background-color:var(--color-neutral-200);border-radius:0 0 var(--app-br) var(--app-br);border-top:none;margin-top:calc(var(--_gap-y) * -1 - var(--app-br))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericModalComponent, selector: "core-generic-modal", inputs: ["isOpen", "mode", "data", "fields", "tabs", "steps", "title", "isMultiple", "customTemplate", "customViewTemplate", "finalStepTemplate", "buttonConfig", "modelFactory", "errors", "validators", "customHasChanges", "stepValidationEnabled", "allowFreeNavigation", "autoMarkCompleted"], outputs: ["save", "close", "modalData"] }, { kind: "component", type: GenericPaginationComponent, selector: "core-generic-pagination", inputs: ["tableId", "isServerSide", "showPagination", "showPageSizeSelector"] }, { kind: "component", type: DropdownComponent, selector: "core-dropdown", inputs: ["rowId", "triggerElementId", "extraDefaultActions", "extraCustomActions", "row"], outputs: ["actionTriggered", "customActionTriggered"] }, { kind: "component", type: FilterModalComponent, selector: "core-filter-modal", inputs: ["isOpen", "filters", "currentFilterValues"], outputs: ["close", "filterChange", "clearFilters", "globalFilterChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: ActiveFiltersComponent, selector: "core-active-filters", inputs: ["activeFilters", "config"], outputs: ["onFilterRemove", "onClearAll"] }, { kind: "component", type: CoreManualRefreshComponent, selector: "core-manual-refresh", inputs: ["config", "refreshId"], outputs: ["onRefresh", "timestampUpdated"] }, { kind: "component", type: GenericSwitchComponent, selector: "core-generic-switch", inputs: ["options", "selectedValue", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: FixedActionsMobileModalComponent, selector: "core-fixed-actions-mobile-modal" }] });
16023
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: GenericTableComponent, isStandalone: true, selector: "core-generic-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, modalFields: { classPropertyName: "modalFields", publicName: "modalFields", isSignal: true, isRequired: false, transformFunction: null }, modalTabs: { classPropertyName: "modalTabs", publicName: "modalTabs", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, globalActions: { classPropertyName: "globalActions", publicName: "globalActions", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFilter: { classPropertyName: "showFilter", publicName: "showFilter", isSignal: true, isRequired: false, transformFunction: null }, showSelection: { classPropertyName: "showSelection", publicName: "showSelection", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateButton: { classPropertyName: "showCreateButton", publicName: "showCreateButton", isSignal: true, isRequired: false, transformFunction: null }, filterButtonConfig: { classPropertyName: "filterButtonConfig", publicName: "filterButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonConfig: { classPropertyName: "createButtonConfig", publicName: "createButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, createButtonText: { classPropertyName: "createButtonText", publicName: "createButtonText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "dataInput", isSignal: true, isRequired: false, transformFunction: null }, customFilters: { classPropertyName: "customFilters", publicName: "customFilters", isSignal: true, isRequired: false, transformFunction: null }, enablePagination: { classPropertyName: "enablePagination", publicName: "enablePagination", isSignal: true, isRequired: false, transformFunction: null }, modelFactory: { classPropertyName: "modelFactory", publicName: "modelFactory", isSignal: true, isRequired: false, transformFunction: null }, endpoint: { classPropertyName: "endpoint", publicName: "endpoint", isSignal: true, isRequired: false, transformFunction: null }, customParams: { classPropertyName: "customParams", publicName: "customParams", isSignal: true, isRequired: false, transformFunction: null }, customArrayKey: { classPropertyName: "customArrayKey", publicName: "customArrayKey", isSignal: true, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: true, isRequired: false, transformFunction: null }, listSubTitle: { classPropertyName: "listSubTitle", publicName: "listSubTitle", isSignal: true, isRequired: false, transformFunction: null }, moreData: { classPropertyName: "moreData", publicName: "moreData", isSignal: true, isRequired: false, transformFunction: null }, inModal: { classPropertyName: "inModal", publicName: "inModal", isSignal: true, isRequired: false, transformFunction: null }, expansionConfig: { classPropertyName: "expansionConfig", publicName: "expansionConfig", isSignal: true, isRequired: false, transformFunction: null }, fileUploadConfig: { classPropertyName: "fileUploadConfig", publicName: "fileUploadConfig", isSignal: true, isRequired: false, transformFunction: null }, rowStyleConfigs: { classPropertyName: "rowStyleConfigs", publicName: "rowStyleConfigs", isSignal: true, isRequired: false, transformFunction: null }, columnDisabledConfigs: { classPropertyName: "columnDisabledConfigs", publicName: "columnDisabledConfigs", isSignal: true, isRequired: false, transformFunction: null }, rowVisibilityConfigs: { classPropertyName: "rowVisibilityConfigs", publicName: "rowVisibilityConfigs", isSignal: true, isRequired: false, transformFunction: null }, headerOrder: { classPropertyName: "headerOrder", publicName: "headerOrder", isSignal: true, isRequired: false, transformFunction: null }, showActiveFilters: { classPropertyName: "showActiveFilters", publicName: "showActiveFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFiltersConfig: { classPropertyName: "activeFiltersConfig", publicName: "activeFiltersConfig", isSignal: true, isRequired: false, transformFunction: null }, sortConfig: { classPropertyName: "sortConfig", publicName: "sortConfig", isSignal: true, isRequired: false, transformFunction: null }, showManualRefresh: { classPropertyName: "showManualRefresh", publicName: "showManualRefresh", isSignal: true, isRequired: false, transformFunction: null }, manualRefreshConfig: { classPropertyName: "manualRefreshConfig", publicName: "manualRefreshConfig", isSignal: true, isRequired: false, transformFunction: null }, refreshButtonConfig: { classPropertyName: "refreshButtonConfig", publicName: "refreshButtonConfig", isSignal: true, isRequired: false, transformFunction: null }, fixedActionsConfig: { classPropertyName: "fixedActionsConfig", publicName: "fixedActionsConfig", isSignal: true, isRequired: false, transformFunction: null }, deletedFilterKey: { classPropertyName: "deletedFilterKey", publicName: "deletedFilterKey", isSignal: true, isRequired: false, transformFunction: null }, scrollTable: { classPropertyName: "scrollTable", publicName: "scrollTable", isSignal: true, isRequired: false, transformFunction: null }, customEdit: { classPropertyName: "customEdit", publicName: "customEdit", isSignal: true, isRequired: false, transformFunction: null }, customDelete: { classPropertyName: "customDelete", publicName: "customDelete", isSignal: true, isRequired: false, transformFunction: null }, customView: { classPropertyName: "customView", publicName: "customView", isSignal: true, isRequired: false, transformFunction: null }, customSave: { classPropertyName: "customSave", publicName: "customSave", isSignal: true, isRequired: false, transformFunction: null }, useCustomSave: { classPropertyName: "useCustomSave", publicName: "useCustomSave", isSignal: true, isRequired: false, transformFunction: null }, onApiError: { classPropertyName: "onApiError", publicName: "onApiError", isSignal: true, isRequired: false, transformFunction: null }, modalCreateSteps: { classPropertyName: "modalCreateSteps", publicName: "modalCreateSteps", isSignal: true, isRequired: false, transformFunction: null }, inlineEditConfig: { classPropertyName: "inlineEditConfig", publicName: "inlineEditConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", selectionChanged: "selectionChanged", dataCreated: "dataCreated", dataUpdated: "dataUpdated", dataDeleted: "dataDeleted", dataFetched: "dataFetched", onMoreDataLoaded: "onMoreDataLoaded", globalActionTriggered: "globalActionTriggered", modalData: "modalData", beforeSave: "beforeSave", onFilterChange: "onFilterChange", onClearFilters: "onClearFilters", activeFilterRemoved: "activeFilterRemoved", activeFiltersCleared: "activeFiltersCleared", dataRefreshed: "dataRefreshed", modalClosed: "modalClosed", inlineEditSave: "inlineEditSave", inlineEditModeChanged: "inlineEditModeChanged", inlineEditValidationError: "inlineEditValidationError" }, host: { listeners: { "window:beforeunload": "onBeforeUnload($event)", "document:click": "closeSubmenu()" } }, providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], viewQueries: [{ propertyName: "sentinel", first: true, predicate: ["sentinel"], descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: ["dropdownTrigger"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "manualRefreshComponent", first: true, predicate: CoreManualRefreshComponent, descendants: true }], hostDirectives: [{ directive: CoreHostDirective }], ngImport: i0, template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\"\n >\n </core-active-filters>\n}\n<div\n class=\"c-table\"\n [class.c-table--scroll]=\"scrollTable()\"\n [class.in-modal]=\"inModal()\"\n [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\"\n>\n @if (shouldShowManualRefresh()) {\n <core-manual-refresh\n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\"\n >\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n (change)=\"masterToggle()\"\n />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button\n class=\"c-table-order\"\n tabindex=\"-1\"\n [class.is-asc]=\"\n getColumnSortState(column) === SortDirection.ASC\n \"\n [class.is-desc]=\"\n getColumnSortState(column) === SortDirection.DESC\n \"\n [class.has-multiple-sorts]=\"\n isMultiColumnSortEnabled() &&\n getColumnSortPriority(column) !== null\n \"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\"\n >\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span\n class=\"c-table-order__arrow--asc icon-arrow-down\"\n ></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (\n showActions() && (actions().length > 0 || customActions().length > 0)\n ) {\n <th class=\"u-align-right\">{{ \"table.actions\" | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr\n [ngClass]=\"getRowClasses(row)\"\n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\"\n >\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isRowSelected(row)\"\n (change)=\"toggleRow(row)\"\n />\n </td>\n }\n @for (column of columns(); track $index) {\n <td\n [attr.data-label]=\"column.label | translate\"\n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column),\n ]\"\n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\"\n >\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container\n *ngTemplateOutlet=\"\n column.template;\n context: { $implicit: row, column: column }\n \"\n ></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n {{ getFormattedValue(row, column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (\n showActions() &&\n (actions().length > 0 ||\n customActions().length > 0 ||\n expansionConfig()?.enabled)\n ) {\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown\n [rowId]=\"row.getId()\"\n [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\"\n [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"\n triggerCustomAction($event.action, $event.row)\n \"\n #dropdown\n >\n </core-dropdown>\n @for (\n actionConfig of getVisibleDefaultActions(row, false);\n track actionConfig.action\n ) {\n @if (hasPermission(actionConfig)) {\n @if (\n actionConfig.action === TableAction.VIEW ||\n actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE ||\n actionConfig.action === TableAction.RECOVER\n ) {\n <core-generic-button\n [config]=\"\n getActionButtonConfig(\n actionConfig.action,\n actionConfig,\n row\n )\n \"\n (buttonClick)=\"\n onButtonClick($event, actionConfig.action, row)\n \"\n >\n </core-generic-button>\n }\n }\n }\n @for (\n customAction of getVisibleCustomActions(row, false);\n track customAction.label || $index\n ) {\n @if (hasPermission(customAction)) {\n @if (customAction.isSwitch && customAction.switchOptions) {\n <core-generic-switch\n [options]=\"customAction.switchOptions\"\n [selectedValue]=\"\n customAction.switchValue\n ? customAction.switchValue(row)\n : null\n \"\n [ariaLabel]=\"\n customAction.switchAriaLabel || customAction.title\n \"\n (valueChange)=\"\n onCustomActionSwitchChange($event, customAction, row)\n \"\n >\n </core-generic-switch>\n } @else {\n <core-generic-button\n [config]=\"\n getCustomActionButtonConfigForRow(customAction, row)\n \"\n (buttonClick)=\"onButtonClick($event, customAction, row)\"\n >\n </core-generic-button>\n }\n }\n }\n\n @for (\n outsideAction of getOutsideFixedActionsForRow(row);\n track $index\n ) {\n @if (\n outsideAction.type === \"table\" ||\n outsideAction.type === \"custom\"\n ? hasPermission(outsideAction.config)\n : true\n ) {\n <core-generic-button\n [config]=\"\n getOutsideFixedActionButtonConfig(outsideAction, row)\n \"\n (buttonClick)=\"\n onOutsideFixedActionClick($event, outsideAction, row)\n \"\n >\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button\n [config]=\"getMoreActionsButtonConfig(row.getId())\"\n [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\"\n #dropdownTrigger\n >\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button\n [config]=\"getExpandButtonConfig(row)\"\n (buttonClick)=\"onExpandButtonClick($event, row)\"\n >\n </core-generic-button>\n }\n </div>\n <!-- .c-table__actions -->\n </td>\n <!-- td parent of .c-table__actions -->\n }\n <!-- @if (showActions() -->\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"c-table-dropdown\" [ngClass]=\"getRowClasses(row)\">\n <td\n [attr.colspan]=\"displayedColumns().length\"\n class=\"c-table-dropdown__holder\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionConfig()!.template;\n context: { $implicit: row }\n \"\n >\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ \"table.noData\" | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n<!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n <!-- Todo: Ver qu\u00E9 onda esto -->\n <div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n <core-generic-pagination\n [tableId]=\"tableId\"\n [isServerSide]=\"!!endpoint()\"\n [showPagination]=\"shouldShowPagination()\"\n [showPageSizeSelector]=\"shouldShowPageSizeSelector()\"\n >\n </core-generic-pagination>\n}\n\n<core-generic-modal\n [isOpen]=\"tableActionService.getIsModalOpen()\"\n [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\"\n [fields]=\"(hasTabs() || (hasModalCreateSteps() && tableActionService.getModalMode() === ModalMode.CREATE)) ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() && !(hasModalCreateSteps() && tableActionService.getModalMode() === ModalMode.CREATE) ? modalTabs() : []\"\n [steps]=\"hasModalCreateSteps() && tableActionService.getModalMode() === ModalMode.CREATE ? modalCreateSteps() : []\"\n [title]=\"tableActionService.getModalTitle()\"\n [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\"\n (close)=\"closeModal()\"\n (modalData)=\"onModalData($event)\"\n>\n</core-generic-modal>\n\n<core-filter-modal\n [isOpen]=\"isFilterModalOpen()\"\n [filters]=\"modalFilters()\"\n [currentFilterValues]=\"currentFilterValues()\"\n (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\"\n (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\"\n>\n</core-filter-modal>\n\n<!-- @if (shouldShowFixedActions()) {\n <div class=\"c-fixed-actions\" [ngClass]=\"'c-fixed-actions--' + (fixedActionsConfig()?.position || 'right')\">\n @for (action of fixedActionsArray(); track $index) {\n @if (shouldShowFixedAction(action)) {\n <button \n type=\"button\"\n [ngClass]=\"getFixedActionClass(action)\"\n [disabled]=\"isFixedActionDisabled(action)\"\n [title]=\"getFixedActionTooltip(action) || ''\"\n [attr.aria-label]=\"getFixedActionTooltip(action) || action.label || ''\"\n (click)=\"onFixedActionClick(action)\">\n </button>\n }\n }\n </div>\n} -->\n\n<core-fixed-actions-mobile-modal />\n", styles: [".c-table-dropdown{padding:16px;background-color:var(--color-neutral-200);border-top:1px solid var(--color-alternative-100)}.c-table-dropdown td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:var(--color-context-success)}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}@media (max-width: 61.1875rem){.c-table-dropdown{background-color:var(--color-neutral-200);border-radius:0 0 var(--app-br) var(--app-br);border-top:none;margin-top:calc(var(--_gap-y) * -1 - var(--app-br))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: GenericModalComponent, selector: "core-generic-modal", inputs: ["isOpen", "mode", "data", "fields", "tabs", "steps", "title", "isMultiple", "customTemplate", "customViewTemplate", "finalStepTemplate", "buttonConfig", "modelFactory", "errors", "validators", "customHasChanges", "stepValidationEnabled", "allowFreeNavigation", "autoMarkCompleted"], outputs: ["save", "close", "modalData"] }, { kind: "component", type: GenericPaginationComponent, selector: "core-generic-pagination", inputs: ["tableId", "isServerSide", "showPagination", "showPageSizeSelector"] }, { kind: "component", type: DropdownComponent, selector: "core-dropdown", inputs: ["rowId", "triggerElementId", "extraDefaultActions", "extraCustomActions", "row"], outputs: ["actionTriggered", "customActionTriggered"] }, { kind: "component", type: FilterModalComponent, selector: "core-filter-modal", inputs: ["isOpen", "filters", "currentFilterValues"], outputs: ["close", "filterChange", "clearFilters", "globalFilterChange"] }, { kind: "component", type: GenericButtonComponent, selector: "core-generic-button", inputs: ["config", "data"], outputs: ["buttonClick"] }, { kind: "directive", type: DynamicFieldDirective, selector: "[coreDynamicField]", inputs: ["field", "value", "mode", "errors", "rowData", "formValue"], outputs: ["valueChange", "onBlurEvent", "onEnterEvent", "selectionChange"] }, { kind: "component", type: ActiveFiltersComponent, selector: "core-active-filters", inputs: ["activeFilters", "config"], outputs: ["onFilterRemove", "onClearAll"] }, { kind: "component", type: CoreManualRefreshComponent, selector: "core-manual-refresh", inputs: ["config", "refreshId"], outputs: ["onRefresh", "timestampUpdated"] }, { kind: "component", type: GenericSwitchComponent, selector: "core-generic-switch", inputs: ["options", "selectedValue", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: FixedActionsMobileModalComponent, selector: "core-fixed-actions-mobile-modal" }] });
16021
16024
  }
16022
16025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GenericTableComponent, decorators: [{
16023
16026
  type: Component,
@@ -16034,7 +16037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
16034
16037
  CoreManualRefreshComponent,
16035
16038
  GenericSwitchComponent,
16036
16039
  FixedActionsMobileModalComponent,
16037
- ], hostDirectives: [CoreHostDirective], providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\"\n >\n </core-active-filters>\n}\n<div\n class=\"c-table\"\n [class.c-table--scroll]=\"scrollTable()\"\n [class.in-modal]=\"inModal()\"\n [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\"\n>\n @if (shouldShowManualRefresh()) {\n <core-manual-refresh\n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\"\n >\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n (change)=\"masterToggle()\"\n />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button\n class=\"c-table-order\"\n tabindex=\"-1\"\n [class.is-asc]=\"\n getColumnSortState(column) === SortDirection.ASC\n \"\n [class.is-desc]=\"\n getColumnSortState(column) === SortDirection.DESC\n \"\n [class.has-multiple-sorts]=\"\n isMultiColumnSortEnabled() &&\n getColumnSortPriority(column) !== null\n \"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\"\n >\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span\n class=\"c-table-order__arrow--asc icon-arrow-down\"\n ></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (\n showActions() && (actions().length > 0 || customActions().length > 0)\n ) {\n <th class=\"u-align-right\">{{ \"table.actions\" | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr\n [ngClass]=\"getRowClasses(row)\"\n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\"\n >\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isRowSelected(row)\"\n (change)=\"toggleRow(row)\"\n />\n </td>\n }\n @for (column of columns(); track $index) {\n <td\n [attr.data-label]=\"column.label | translate\"\n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column),\n ]\"\n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\"\n >\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container\n *ngTemplateOutlet=\"\n column.template;\n context: { $implicit: row, column: column }\n \"\n ></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n {{ getFormattedValue(row, column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (\n showActions() &&\n (actions().length > 0 ||\n customActions().length > 0 ||\n expansionConfig()?.enabled)\n ) {\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown\n [rowId]=\"row.getId()\"\n [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\"\n [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"\n triggerCustomAction($event.action, $event.row)\n \"\n #dropdown\n >\n </core-dropdown>\n @for (\n actionConfig of getVisibleDefaultActions(row, false);\n track actionConfig.action\n ) {\n @if (hasPermission(actionConfig)) {\n @if (\n actionConfig.action === TableAction.VIEW ||\n actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE ||\n actionConfig.action === TableAction.RECOVER\n ) {\n <core-generic-button\n [config]=\"\n getActionButtonConfig(\n actionConfig.action,\n actionConfig,\n row\n )\n \"\n (buttonClick)=\"\n onButtonClick($event, actionConfig.action, row)\n \"\n >\n </core-generic-button>\n }\n }\n }\n @for (\n customAction of getVisibleCustomActions(row, false);\n track customAction.label || $index\n ) {\n @if (hasPermission(customAction)) {\n @if (customAction.isSwitch && customAction.switchOptions) {\n <core-generic-switch\n [options]=\"customAction.switchOptions\"\n [selectedValue]=\"\n customAction.switchValue\n ? customAction.switchValue(row)\n : null\n \"\n [ariaLabel]=\"\n customAction.switchAriaLabel || customAction.title\n \"\n (valueChange)=\"\n onCustomActionSwitchChange($event, customAction, row)\n \"\n >\n </core-generic-switch>\n } @else {\n <core-generic-button\n [config]=\"\n getCustomActionButtonConfigForRow(customAction, row)\n \"\n (buttonClick)=\"onButtonClick($event, customAction, row)\"\n >\n </core-generic-button>\n }\n }\n }\n\n @for (\n outsideAction of getOutsideFixedActionsForRow(row);\n track $index\n ) {\n @if (\n outsideAction.type === \"table\" ||\n outsideAction.type === \"custom\"\n ? hasPermission(outsideAction.config)\n : true\n ) {\n <core-generic-button\n [config]=\"\n getOutsideFixedActionButtonConfig(outsideAction, row)\n \"\n (buttonClick)=\"\n onOutsideFixedActionClick($event, outsideAction, row)\n \"\n >\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button\n [config]=\"getMoreActionsButtonConfig(row.getId())\"\n [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\"\n #dropdownTrigger\n >\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button\n [config]=\"getExpandButtonConfig(row)\"\n (buttonClick)=\"onExpandButtonClick($event, row)\"\n >\n </core-generic-button>\n }\n </div>\n <!-- .c-table__actions -->\n </td>\n <!-- td parent of .c-table__actions -->\n }\n <!-- @if (showActions() -->\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"c-table-dropdown\" [ngClass]=\"getRowClasses(row)\">\n <td\n [attr.colspan]=\"displayedColumns().length\"\n class=\"c-table-dropdown__holder\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionConfig()!.template;\n context: { $implicit: row }\n \"\n >\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ \"table.noData\" | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n<!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n <!-- Todo: Ver qu\u00E9 onda esto -->\n <div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n <core-generic-pagination\n [tableId]=\"tableId\"\n [isServerSide]=\"!!endpoint()\"\n [showPagination]=\"shouldShowPagination()\"\n [showPageSizeSelector]=\"shouldShowPageSizeSelector()\"\n >\n </core-generic-pagination>\n}\n\n<core-generic-modal\n [isOpen]=\"tableActionService.getIsModalOpen()\"\n [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\"\n [fields]=\"hasTabs() ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() ? modalTabs() : []\"\n [title]=\"tableActionService.getModalTitle()\"\n [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\"\n (close)=\"closeModal()\"\n (modalData)=\"onModalData($event)\"\n>\n</core-generic-modal>\n\n<core-filter-modal\n [isOpen]=\"isFilterModalOpen()\"\n [filters]=\"modalFilters()\"\n [currentFilterValues]=\"currentFilterValues()\"\n (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\"\n (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\"\n>\n</core-filter-modal>\n\n<!-- @if (shouldShowFixedActions()) {\n <div class=\"c-fixed-actions\" [ngClass]=\"'c-fixed-actions--' + (fixedActionsConfig()?.position || 'right')\">\n @for (action of fixedActionsArray(); track $index) {\n @if (shouldShowFixedAction(action)) {\n <button \n type=\"button\"\n [ngClass]=\"getFixedActionClass(action)\"\n [disabled]=\"isFixedActionDisabled(action)\"\n [title]=\"getFixedActionTooltip(action) || ''\"\n [attr.aria-label]=\"getFixedActionTooltip(action) || action.label || ''\"\n (click)=\"onFixedActionClick(action)\">\n </button>\n }\n }\n </div>\n} -->\n\n<core-fixed-actions-mobile-modal />\n", styles: [".c-table-dropdown{padding:16px;background-color:var(--color-neutral-200);border-top:1px solid var(--color-alternative-100)}.c-table-dropdown td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:var(--color-context-success)}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}@media (max-width: 61.1875rem){.c-table-dropdown{background-color:var(--color-neutral-200);border-radius:0 0 var(--app-br) var(--app-br);border-top:none;margin-top:calc(var(--_gap-y) * -1 - var(--app-br))}}\n"] }]
16040
+ ], hostDirectives: [CoreHostDirective], providers: [TableDataService, FilterService, PaginationService, ModelApiService, InlineEditService], template: "@if (showActiveFilters()) {\n <core-active-filters\n [activeFilters]=\"currentActiveFilters()\"\n [config]=\"activeFiltersConfig()\"\n (onFilterRemove)=\"onActiveFilterRemove($event)\"\n (onClearAll)=\"onActiveFiltersClear()\"\n >\n </core-active-filters>\n}\n<div\n class=\"c-table\"\n [class.c-table--scroll]=\"scrollTable()\"\n [class.in-modal]=\"inModal()\"\n [class.inline-edit-mode]=\"inlineEditService.isInlineEditMode()\"\n>\n @if (shouldShowManualRefresh()) {\n <core-manual-refresh\n [config]=\"getManualRefreshConfig()\"\n (onRefresh)=\"onManualRefresh()\"\n >\n </core-manual-refresh>\n }\n <table>\n <thead>\n <tr>\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <th class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n (change)=\"masterToggle()\"\n />\n </th>\n }\n @for (column of columns(); track $index) {\n <th [ngClass]=\"column.align ? 'u-align-' + column.align : ''\">\n @if (isColumnSortable(column)) {\n <button\n class=\"c-table-order\"\n tabindex=\"-1\"\n [class.is-asc]=\"\n getColumnSortState(column) === SortDirection.ASC\n \"\n [class.is-desc]=\"\n getColumnSortState(column) === SortDirection.DESC\n \"\n [class.has-multiple-sorts]=\"\n isMultiColumnSortEnabled() &&\n getColumnSortPriority(column) !== null\n \"\n [title]=\"getSortButtonTitle(column)\"\n (click)=\"onColumnHeaderClick(column)\"\n >\n {{ column.label | translate }}\n <!-- @if (isMultiColumnSortEnabled() && getColumnSortPriority(column) !== null) {\n <span class=\"c-table-order__priority\">{{ getColumnSortPriority(column)! + 1 }}</span>\n } -->\n <span class=\"c-table-order__controls\">\n <span class=\"c-table-order__arrow--desc icon-arrow-up\"></span>\n <span\n class=\"c-table-order__arrow--asc icon-arrow-down\"\n ></span>\n </span>\n </button>\n } @else {\n {{ column.label | translate }}\n }\n </th>\n }\n @if (\n showActions() && (actions().length > 0 || customActions().length > 0)\n ) {\n <th class=\"u-align-right\">{{ \"table.actions\" | translate }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of displayedData(); track row.getId()) {\n <tr\n [ngClass]=\"getRowClasses(row)\"\n [class.is-editable]=\"isRowInEditMode(row.getId())\"\n [class.is-disabled]=\"isRowDisabled(row)\"\n >\n @if (showSelection()) {\n <!-- Todo: Tabla con row selection -->\n <td class=\"select-column\">\n <input\n type=\"checkbox\"\n [checked]=\"isRowSelected(row)\"\n (change)=\"toggleRow(row)\"\n />\n </td>\n }\n @for (column of columns(); track $index) {\n <td\n [attr.data-label]=\"column.label | translate\"\n [ngClass]=\"[\n column.align ? 'u-align-' + column.align : '',\n getCellDisabledClasses(row, column),\n ]\"\n [class.is-editing]=\"isColumnEditable(column, row)\"\n [class.is-column-disabled]=\"isColumnDisabledForRow(row, column)\"\n >\n @if (column.template) {\n <!-- Todo: Ver qu\u00E9 es esto -->\n <ng-container\n *ngTemplateOutlet=\"\n column.template;\n context: { $implicit: row, column: column }\n \"\n ></ng-container>\n } @else if (isColumnEditable(column, row)) {\n <!-- !Solcre: Modo de edici\u00F3n en l\u00EDnea usando DynamicField -->\n <div class=\"c-table__inline-edit\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n <div\n coreDynamicField\n [field]=\"getInlineEditableConfigWithState(row, column)!\"\n [value]=\"getEditingValue(row, column)\"\n [mode]=\"ModalMode.EDIT\"\n [errors]=\"getCellErrors(row, column)\"\n [rowData]=\"row\"\n (valueChange)=\"onCellValueChange(row, column, $event)\"\n (onBlurEvent)=\"onCellBlur(row, column)\"\n (onEnterEvent)=\"onCellEnter(row, column)\"\n ></div>\n </div>\n } @else {\n <div class=\"c-table__content\">\n <strong class=\"c-table__mobile-heading\"\n >{{ column.label | translate }}:</strong\n >\n {{ getFormattedValue(row, column) }}\n </div>\n }\n </td>\n }\n\n <!-- Actions-->\n\n @if (\n showActions() &&\n (actions().length > 0 ||\n customActions().length > 0 ||\n expansionConfig()?.enabled)\n ) {\n <td class=\"u-align-right\">\n <div class=\"c-table__actions\">\n <core-dropdown\n [rowId]=\"row.getId()\"\n [extraDefaultActions]=\"getVisibleDefaultActions(row, true)\"\n [extraCustomActions]=\"getVisibleCustomActions(row, true)\"\n [row]=\"row\"\n [triggerElementId]=\"'dropdown-trigger-' + row.getId()\"\n (actionTriggered)=\"triggerAction($event.action, $event.row)\"\n (customActionTriggered)=\"\n triggerCustomAction($event.action, $event.row)\n \"\n #dropdown\n >\n </core-dropdown>\n @for (\n actionConfig of getVisibleDefaultActions(row, false);\n track actionConfig.action\n ) {\n @if (hasPermission(actionConfig)) {\n @if (\n actionConfig.action === TableAction.VIEW ||\n actionConfig.action === TableAction.EDIT ||\n actionConfig.action === TableAction.DELETE ||\n actionConfig.action === TableAction.RECOVER\n ) {\n <core-generic-button\n [config]=\"\n getActionButtonConfig(\n actionConfig.action,\n actionConfig,\n row\n )\n \"\n (buttonClick)=\"\n onButtonClick($event, actionConfig.action, row)\n \"\n >\n </core-generic-button>\n }\n }\n }\n @for (\n customAction of getVisibleCustomActions(row, false);\n track customAction.label || $index\n ) {\n @if (hasPermission(customAction)) {\n @if (customAction.isSwitch && customAction.switchOptions) {\n <core-generic-switch\n [options]=\"customAction.switchOptions\"\n [selectedValue]=\"\n customAction.switchValue\n ? customAction.switchValue(row)\n : null\n \"\n [ariaLabel]=\"\n customAction.switchAriaLabel || customAction.title\n \"\n (valueChange)=\"\n onCustomActionSwitchChange($event, customAction, row)\n \"\n >\n </core-generic-switch>\n } @else {\n <core-generic-button\n [config]=\"\n getCustomActionButtonConfigForRow(customAction, row)\n \"\n (buttonClick)=\"onButtonClick($event, customAction, row)\"\n >\n </core-generic-button>\n }\n }\n }\n\n @for (\n outsideAction of getOutsideFixedActionsForRow(row);\n track $index\n ) {\n @if (\n outsideAction.type === \"table\" ||\n outsideAction.type === \"custom\"\n ? hasPermission(outsideAction.config)\n : true\n ) {\n <core-generic-button\n [config]=\"\n getOutsideFixedActionButtonConfig(outsideAction, row)\n \"\n (buttonClick)=\"\n onOutsideFixedActionClick($event, outsideAction, row)\n \"\n >\n </core-generic-button>\n }\n }\n\n @if (hasExtraActionsForRow(row)) {\n <core-generic-button\n [config]=\"getMoreActionsButtonConfig(row.getId())\"\n [data]=\"row\"\n (buttonClick)=\"onMoreActionsClick($event, row.getId())\"\n #dropdownTrigger\n >\n </core-generic-button>\n }\n\n @if (expansionConfig()?.enabled) {\n <!-- \u2705 Solcre: Celda dedicada para expansi\u00F3n en su posici\u00F3n correcta -->\n <core-generic-button\n [config]=\"getExpandButtonConfig(row)\"\n (buttonClick)=\"onExpandButtonClick($event, row)\"\n >\n </core-generic-button>\n }\n </div>\n <!-- .c-table__actions -->\n </td>\n <!-- td parent of .c-table__actions -->\n }\n <!-- @if (showActions() -->\n </tr>\n @if (expansionConfig()?.enabled && isRowExpanded(row)) {\n <!-- Todo: Ver que es esto -->\n <tr class=\"c-table-dropdown\" [ngClass]=\"getRowClasses(row)\">\n <td\n [attr.colspan]=\"displayedColumns().length\"\n class=\"c-table-dropdown__holder\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionConfig()!.template;\n context: { $implicit: row }\n \"\n >\n </ng-container>\n </td>\n </tr>\n }\n } @empty {\n <tr>\n <!-- Todo: Estilo .no-data -->\n <td [attr.colspan]=\"displayedColumns().length\">\n <p class=\"c-placeholder\">{{ \"table.noData\" | translate }}</p>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n<!-- .c-table -->\n\n<!-- Todo: Todo lo que viene dsp de la tabla -->\n\n@if (!enablePagination()) {\n <!-- Todo: Ver qu\u00E9 onda esto -->\n <div #sentinel class=\"sentinel\"></div>\n}\n\n@if (enablePagination()) {\n <core-generic-pagination\n [tableId]=\"tableId\"\n [isServerSide]=\"!!endpoint()\"\n [showPagination]=\"shouldShowPagination()\"\n [showPageSizeSelector]=\"shouldShowPageSizeSelector()\"\n >\n </core-generic-pagination>\n}\n\n<core-generic-modal\n [isOpen]=\"tableActionService.getIsModalOpen()\"\n [mode]=\"tableActionService.getModalMode()\"\n [data]=\"tableActionService.getModalData()\"\n [fields]=\"(hasTabs() || (hasModalCreateSteps() && tableActionService.getModalMode() === ModalMode.CREATE)) ? [] : tableActionService.getModalFieldsToShow()\"\n [tabs]=\"hasTabs() && !(hasModalCreateSteps() && tableActionService.getModalMode() === ModalMode.CREATE) ? modalTabs() : []\"\n [steps]=\"hasModalCreateSteps() && tableActionService.getModalMode() === ModalMode.CREATE ? modalCreateSteps() : []\"\n [title]=\"tableActionService.getModalTitle()\"\n [modelFactory]=\"modelFactory() || null\"\n (save)=\"onModalSave($event)\"\n (close)=\"closeModal()\"\n (modalData)=\"onModalData($event)\"\n>\n</core-generic-modal>\n\n<core-filter-modal\n [isOpen]=\"isFilterModalOpen()\"\n [filters]=\"modalFilters()\"\n [currentFilterValues]=\"currentFilterValues()\"\n (close)=\"closeFiltersPopup()\"\n (filterChange)=\"handleFilterChange($event)\"\n (globalFilterChange)=\"applyGlobalFilter($event)\"\n (clearFilters)=\"handleClearFilters()\"\n>\n</core-filter-modal>\n\n<!-- @if (shouldShowFixedActions()) {\n <div class=\"c-fixed-actions\" [ngClass]=\"'c-fixed-actions--' + (fixedActionsConfig()?.position || 'right')\">\n @for (action of fixedActionsArray(); track $index) {\n @if (shouldShowFixedAction(action)) {\n <button \n type=\"button\"\n [ngClass]=\"getFixedActionClass(action)\"\n [disabled]=\"isFixedActionDisabled(action)\"\n [title]=\"getFixedActionTooltip(action) || ''\"\n [attr.aria-label]=\"getFixedActionTooltip(action) || action.label || ''\"\n (click)=\"onFixedActionClick(action)\">\n </button>\n }\n }\n </div>\n} -->\n\n<core-fixed-actions-mobile-modal />\n", styles: [".c-table-dropdown{padding:16px;background-color:var(--color-neutral-200);border-top:1px solid var(--color-alternative-100)}.c-table-dropdown td{border-bottom:none}@keyframes newItemHighlight{0%{background-color:#f8f9fa;border-left-color:var(--color-context-success)}25%{background-color:#e9ecef}50%{background-color:#f8f9fa}75%{background-color:#e9ecef}to{background-color:transparent;border-left-color:transparent}}@media (max-width: 61.1875rem){.c-table-dropdown{background-color:var(--color-neutral-200);border-radius:0 0 var(--app-br) var(--app-br);border-top:none;margin-top:calc(var(--_gap-y) * -1 - var(--app-br))}}\n"] }]
16038
16041
  }], ctorParameters: () => [], propDecorators: { sentinel: [{
16039
16042
  type: ViewChild,
16040
16043
  args: ['sentinel', { static: false }]
@@ -17766,12 +17769,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
17766
17769
  // Este archivo es generado automáticamente por scripts/update-version.js
17767
17770
  // No edites manualmente este archivo
17768
17771
  const VERSION = {
17769
- full: '2.26.0',
17772
+ full: '2.26.2',
17770
17773
  major: 2,
17771
17774
  minor: 26,
17772
- patch: 0,
17773
- timestamp: '2026-03-27T13:08:49.542Z',
17774
- buildDate: '27/3/2026'
17775
+ patch: 2,
17776
+ timestamp: '2026-04-07T12:44:00.848Z',
17777
+ buildDate: '7/4/2026'
17775
17778
  };
17776
17779
 
17777
17780
  class MainNavComponent {