orbiq-neural-ui-kit 1.1.14 → 1.1.16
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.
|
@@ -12412,6 +12412,8 @@ class NeuralDataTableComponent {
|
|
|
12412
12412
|
...(ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []));
|
|
12413
12413
|
hasInfo = input(false, /* @ts-ignore */
|
|
12414
12414
|
...(ngDevMode ? [{ debugName: "hasInfo" }] : /* istanbul ignore next */ []));
|
|
12415
|
+
viewMode = input('list', /* @ts-ignore */
|
|
12416
|
+
...(ngDevMode ? [{ debugName: "viewMode" }] : /* istanbul ignore next */ []));
|
|
12415
12417
|
newLabel = input('Nuevo', /* @ts-ignore */
|
|
12416
12418
|
...(ngDevMode ? [{ debugName: "newLabel" }] : /* istanbul ignore next */ []));
|
|
12417
12419
|
searchPlaceholder = input('Search', /* @ts-ignore */
|
|
@@ -12522,7 +12524,7 @@ class NeuralDataTableComponent {
|
|
|
12522
12524
|
this.sortChange.emit(key);
|
|
12523
12525
|
}
|
|
12524
12526
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NeuralDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12525
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NeuralDataTableComponent, isStandalone: true, selector: "neural-data-table", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, hasInfo: { classPropertyName: "hasInfo", publicName: "hasInfo", isSignal: true, isRequired: false, transformFunction: null }, newLabel: { classPropertyName: "newLabel", publicName: "newLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, allColumns: { classPropertyName: "allColumns", publicName: "allColumns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowKey: { classPropertyName: "rowKey", publicName: "rowKey", isSignal: true, isRequired: true, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTitle: { classPropertyName: "emptyStateTitle", publicName: "emptyStateTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyStateDesc: { classPropertyName: "emptyStateDesc", publicName: "emptyStateDesc", isSignal: true, isRequired: false, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleActions: { classPropertyName: "maxVisibleActions", publicName: "maxVisibleActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch", onPageChange: "onPageChange", sortChange: "sortChange", onInfoClick: "onInfoClick", onHelpClick: "onHelpClick", onRefreshClick: "onRefreshClick", onViewChange: "onViewChange", onFilterClick: "onFilterClick", onSortChangeClick: "onSortChangeClick", onSearchClick: "onSearchClick", onCustomActionClick: "onCustomActionClick", onNewClick: "onNewClick" }, host: { properties: { "attr.title": "null" } }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }], ngImport: i0, template: `
|
|
12527
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NeuralDataTableComponent, isStandalone: true, selector: "neural-data-table", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, hasInfo: { classPropertyName: "hasInfo", publicName: "hasInfo", isSignal: true, isRequired: false, transformFunction: null }, viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: true, isRequired: false, transformFunction: null }, newLabel: { classPropertyName: "newLabel", publicName: "newLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, allColumns: { classPropertyName: "allColumns", publicName: "allColumns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowKey: { classPropertyName: "rowKey", publicName: "rowKey", isSignal: true, isRequired: true, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, emptyStateTitle: { classPropertyName: "emptyStateTitle", publicName: "emptyStateTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyStateDesc: { classPropertyName: "emptyStateDesc", publicName: "emptyStateDesc", isSignal: true, isRequired: false, transformFunction: null }, customActions: { classPropertyName: "customActions", publicName: "customActions", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleActions: { classPropertyName: "maxVisibleActions", publicName: "maxVisibleActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSearch: "onSearch", onPageChange: "onPageChange", sortChange: "sortChange", onInfoClick: "onInfoClick", onHelpClick: "onHelpClick", onRefreshClick: "onRefreshClick", onViewChange: "onViewChange", onFilterClick: "onFilterClick", onSortChangeClick: "onSortChangeClick", onSearchClick: "onSearchClick", onCustomActionClick: "onCustomActionClick", onNewClick: "onNewClick" }, host: { properties: { "attr.title": "null" } }, queries: [{ propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }], ngImport: i0, template: `
|
|
12526
12528
|
<div class="flex flex-col w-full h-full bg-white rounded-md border border-outline-gray-2 shadow-sm overflow-hidden">
|
|
12527
12529
|
|
|
12528
12530
|
<!-- Top Header Area -->
|
|
@@ -12533,76 +12535,84 @@ class NeuralDataTableComponent {
|
|
|
12533
12535
|
</div>
|
|
12534
12536
|
|
|
12535
12537
|
<!-- Right: Actions Toolbar -->
|
|
12536
|
-
|
|
12537
|
-
|
|
12538
|
-
<!-- Built-in Actions Group (Clean, no background) -->
|
|
12539
|
-
<div class="flex items-center gap-0.5">
|
|
12540
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Vista" (click)="onViewChange.emit('report')">
|
|
12541
|
-
<i class="lucide-list size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12542
|
-
</button>
|
|
12543
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Filtrar" (click)="onFilterClick.emit()">
|
|
12544
|
-
<i class="lucide-filter size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12545
|
-
</button>
|
|
12546
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Orden" (click)="onSortChangeClick.emit()">
|
|
12547
|
-
<i class="lucide-arrow-up-down size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12548
|
-
</button>
|
|
12549
|
-
</div>
|
|
12550
|
-
|
|
12551
|
-
<div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
|
|
12552
|
-
|
|
12553
|
-
<div class="flex items-center gap-0.5">
|
|
12554
|
-
<!-- Search Icon -->
|
|
12555
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Buscar" (click)="onSearchClick.emit()">
|
|
12556
|
-
<i class="lucide-search size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12557
|
-
</button>
|
|
12558
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Actualizar" (click)="onRefreshClick.emit()">
|
|
12559
|
-
<i class="lucide-refresh-cw size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12560
|
-
</button>
|
|
12538
|
+
@if (viewMode() === 'list') {
|
|
12539
|
+
<div class="flex items-center gap-1">
|
|
12561
12540
|
|
|
12562
|
-
<!--
|
|
12563
|
-
|
|
12564
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors
|
|
12565
|
-
|
|
12566
|
-
[disabled]="action.disabled"
|
|
12567
|
-
(click)="onCustomActionClick.emit(action.id)">
|
|
12568
|
-
<i [class]="action.icon + ' size-[18px]'" style="stroke-width: 1.5px;"></i>
|
|
12541
|
+
<!-- Built-in Actions Group (Clean, no background) -->
|
|
12542
|
+
<div class="flex items-center gap-0.5">
|
|
12543
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Vista" (click)="onViewChange.emit('report')">
|
|
12544
|
+
<i class="lucide-list size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12569
12545
|
</button>
|
|
12570
|
-
|
|
12546
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Filtrar" (click)="onFilterClick.emit()">
|
|
12547
|
+
<i class="lucide-filter size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12548
|
+
</button>
|
|
12549
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Orden" (click)="onSortChangeClick.emit()">
|
|
12550
|
+
<i class="lucide-arrow-up-down size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12551
|
+
</button>
|
|
12552
|
+
</div>
|
|
12571
12553
|
|
|
12572
|
-
|
|
12573
|
-
|
|
12574
|
-
|
|
12575
|
-
|
|
12554
|
+
<div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
|
|
12555
|
+
|
|
12556
|
+
<div class="flex items-center gap-0.5">
|
|
12557
|
+
<!-- Search Icon -->
|
|
12558
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Buscar" (click)="onSearchClick.emit()">
|
|
12559
|
+
<i class="lucide-search size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12560
|
+
</button>
|
|
12561
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Actualizar" (click)="onRefreshClick.emit()">
|
|
12562
|
+
<i class="lucide-refresh-cw size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12563
|
+
</button>
|
|
12564
|
+
|
|
12565
|
+
<!-- Dynamic Custom Actions -->
|
|
12566
|
+
@for (action of visibleCustomActions(); track action.id) {
|
|
12567
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors disabled:opacity-50"
|
|
12568
|
+
[title]="action.label"
|
|
12569
|
+
[disabled]="action.disabled"
|
|
12570
|
+
(click)="onCustomActionClick.emit(action.id)">
|
|
12571
|
+
<i [class]="action.icon + ' size-[18px]'" style="stroke-width: 1.5px;"></i>
|
|
12576
12572
|
</button>
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
|
|
12573
|
+
}
|
|
12574
|
+
|
|
12575
|
+
@if (overflowCustomActions().length > 0) {
|
|
12576
|
+
<neural-dropdown [options]="overflowDropdownOptions()" (onSelect)="onCustomActionDropdownSelect($event)" [hasTriggerSlot]="true" placement="bottom-end">
|
|
12577
|
+
<button trigger class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Más acciones">
|
|
12578
|
+
<i class="lucide-more-horizontal size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12579
|
+
</button>
|
|
12580
|
+
</neural-dropdown>
|
|
12581
|
+
}
|
|
12582
|
+
</div>
|
|
12580
12583
|
|
|
12581
|
-
|
|
12584
|
+
<div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
|
|
12582
12585
|
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12587
|
-
|
|
12588
|
-
|
|
12589
|
-
|
|
12590
|
-
|
|
12586
|
+
<!-- Settings, Help and External Actions -->
|
|
12587
|
+
<div class="flex items-center gap-0.5">
|
|
12588
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Configurar columnas" (click)="isPreferencesOpen.set(true)">
|
|
12589
|
+
<i class="lucide-columns size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12590
|
+
</button>
|
|
12591
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Ayuda / Información" (click)="onHelpClick.emit()">
|
|
12592
|
+
<i class="lucide-help-circle size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12593
|
+
</button>
|
|
12594
|
+
|
|
12595
|
+
<ng-content select="[header-actions]"></ng-content>
|
|
12596
|
+
</div>
|
|
12591
12597
|
|
|
12592
|
-
<
|
|
12598
|
+
<div class="ms-1.5">
|
|
12599
|
+
<!-- + Nuevo Button -->
|
|
12600
|
+
<neural-button variant="solid" theme="gray" size="sm" icon="lucide-plus" [iconLeft]="true" class="!px-3 !h-8 !text-[12px]" (click)="onNewClick.emit()">
|
|
12601
|
+
{{ newLabel() }}
|
|
12602
|
+
</neural-button>
|
|
12603
|
+
</div>
|
|
12593
12604
|
</div>
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
<
|
|
12598
|
-
{{ newLabel() }}
|
|
12599
|
-
</neural-button>
|
|
12605
|
+
}
|
|
12606
|
+
@if (viewMode() === 'form') {
|
|
12607
|
+
<div class="flex items-center gap-1">
|
|
12608
|
+
<ng-content select="[form-actions]"></ng-content>
|
|
12600
12609
|
</div>
|
|
12601
|
-
|
|
12610
|
+
}
|
|
12602
12611
|
</div>
|
|
12603
12612
|
|
|
12604
|
-
|
|
12605
|
-
|
|
12613
|
+
@if (viewMode() === 'list') {
|
|
12614
|
+
<!-- Table Content -->
|
|
12615
|
+
<div class="flex-1 overflow-x-auto min-h-[300px] relative px-4 pb-4">
|
|
12606
12616
|
<table class="w-full text-left border-separate" style="border-spacing: 0;">
|
|
12607
12617
|
<thead>
|
|
12608
12618
|
<tr>
|
|
@@ -12701,6 +12711,13 @@ class NeuralDataTableComponent {
|
|
|
12701
12711
|
</div>
|
|
12702
12712
|
</div>
|
|
12703
12713
|
</div>
|
|
12714
|
+
}
|
|
12715
|
+
|
|
12716
|
+
@if (viewMode() === 'form') {
|
|
12717
|
+
<div class="flex-1 w-full h-full relative">
|
|
12718
|
+
<ng-content select="[form-view]"></ng-content>
|
|
12719
|
+
</div>
|
|
12720
|
+
}
|
|
12704
12721
|
|
|
12705
12722
|
<!-- Dialog moved outside of the main flex flows -->
|
|
12706
12723
|
<neural-dialog [openModel]="isPreferencesOpen()" (openModelChange)="isPreferencesOpen.set($event)" [hasTitleSlot]="true" [hasActionsSlot]="true" size="md">
|
|
@@ -12774,76 +12791,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12774
12791
|
</div>
|
|
12775
12792
|
|
|
12776
12793
|
<!-- Right: Actions Toolbar -->
|
|
12777
|
-
|
|
12778
|
-
|
|
12779
|
-
<!-- Built-in Actions Group (Clean, no background) -->
|
|
12780
|
-
<div class="flex items-center gap-0.5">
|
|
12781
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Vista" (click)="onViewChange.emit('report')">
|
|
12782
|
-
<i class="lucide-list size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12783
|
-
</button>
|
|
12784
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Filtrar" (click)="onFilterClick.emit()">
|
|
12785
|
-
<i class="lucide-filter size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12786
|
-
</button>
|
|
12787
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Orden" (click)="onSortChangeClick.emit()">
|
|
12788
|
-
<i class="lucide-arrow-up-down size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12789
|
-
</button>
|
|
12790
|
-
</div>
|
|
12791
|
-
|
|
12792
|
-
<div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
|
|
12793
|
-
|
|
12794
|
-
<div class="flex items-center gap-0.5">
|
|
12795
|
-
<!-- Search Icon -->
|
|
12796
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Buscar" (click)="onSearchClick.emit()">
|
|
12797
|
-
<i class="lucide-search size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12798
|
-
</button>
|
|
12799
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Actualizar" (click)="onRefreshClick.emit()">
|
|
12800
|
-
<i class="lucide-refresh-cw size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12801
|
-
</button>
|
|
12794
|
+
@if (viewMode() === 'list') {
|
|
12795
|
+
<div class="flex items-center gap-1">
|
|
12802
12796
|
|
|
12803
|
-
<!--
|
|
12804
|
-
|
|
12805
|
-
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors
|
|
12806
|
-
|
|
12807
|
-
[disabled]="action.disabled"
|
|
12808
|
-
(click)="onCustomActionClick.emit(action.id)">
|
|
12809
|
-
<i [class]="action.icon + ' size-[18px]'" style="stroke-width: 1.5px;"></i>
|
|
12797
|
+
<!-- Built-in Actions Group (Clean, no background) -->
|
|
12798
|
+
<div class="flex items-center gap-0.5">
|
|
12799
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Vista" (click)="onViewChange.emit('report')">
|
|
12800
|
+
<i class="lucide-list size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12810
12801
|
</button>
|
|
12811
|
-
|
|
12802
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Filtrar" (click)="onFilterClick.emit()">
|
|
12803
|
+
<i class="lucide-filter size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12804
|
+
</button>
|
|
12805
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Orden" (click)="onSortChangeClick.emit()">
|
|
12806
|
+
<i class="lucide-arrow-up-down size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12807
|
+
</button>
|
|
12808
|
+
</div>
|
|
12812
12809
|
|
|
12813
|
-
|
|
12814
|
-
|
|
12815
|
-
|
|
12816
|
-
|
|
12810
|
+
<div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
|
|
12811
|
+
|
|
12812
|
+
<div class="flex items-center gap-0.5">
|
|
12813
|
+
<!-- Search Icon -->
|
|
12814
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Buscar" (click)="onSearchClick.emit()">
|
|
12815
|
+
<i class="lucide-search size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12816
|
+
</button>
|
|
12817
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Actualizar" (click)="onRefreshClick.emit()">
|
|
12818
|
+
<i class="lucide-refresh-cw size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12819
|
+
</button>
|
|
12820
|
+
|
|
12821
|
+
<!-- Dynamic Custom Actions -->
|
|
12822
|
+
@for (action of visibleCustomActions(); track action.id) {
|
|
12823
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors disabled:opacity-50"
|
|
12824
|
+
[title]="action.label"
|
|
12825
|
+
[disabled]="action.disabled"
|
|
12826
|
+
(click)="onCustomActionClick.emit(action.id)">
|
|
12827
|
+
<i [class]="action.icon + ' size-[18px]'" style="stroke-width: 1.5px;"></i>
|
|
12817
12828
|
</button>
|
|
12818
|
-
|
|
12819
|
-
|
|
12820
|
-
|
|
12829
|
+
}
|
|
12830
|
+
|
|
12831
|
+
@if (overflowCustomActions().length > 0) {
|
|
12832
|
+
<neural-dropdown [options]="overflowDropdownOptions()" (onSelect)="onCustomActionDropdownSelect($event)" [hasTriggerSlot]="true" placement="bottom-end">
|
|
12833
|
+
<button trigger class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Más acciones">
|
|
12834
|
+
<i class="lucide-more-horizontal size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12835
|
+
</button>
|
|
12836
|
+
</neural-dropdown>
|
|
12837
|
+
}
|
|
12838
|
+
</div>
|
|
12821
12839
|
|
|
12822
|
-
|
|
12840
|
+
<div class="w-px h-4 bg-outline-gray-2 mx-1.5"></div>
|
|
12823
12841
|
|
|
12824
|
-
|
|
12825
|
-
|
|
12826
|
-
|
|
12827
|
-
|
|
12828
|
-
|
|
12829
|
-
|
|
12830
|
-
|
|
12831
|
-
|
|
12842
|
+
<!-- Settings, Help and External Actions -->
|
|
12843
|
+
<div class="flex items-center gap-0.5">
|
|
12844
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Configurar columnas" (click)="isPreferencesOpen.set(true)">
|
|
12845
|
+
<i class="lucide-columns size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12846
|
+
</button>
|
|
12847
|
+
<button class="flex items-center justify-center size-8 rounded-md hover:bg-surface-gray-1 text-ink-gray-6 hover:text-ink-gray-9 transition-colors" title="Ayuda / Información" (click)="onHelpClick.emit()">
|
|
12848
|
+
<i class="lucide-help-circle size-[18px]" style="stroke-width: 1.5px;"></i>
|
|
12849
|
+
</button>
|
|
12850
|
+
|
|
12851
|
+
<ng-content select="[header-actions]"></ng-content>
|
|
12852
|
+
</div>
|
|
12832
12853
|
|
|
12833
|
-
<
|
|
12854
|
+
<div class="ms-1.5">
|
|
12855
|
+
<!-- + Nuevo Button -->
|
|
12856
|
+
<neural-button variant="solid" theme="gray" size="sm" icon="lucide-plus" [iconLeft]="true" class="!px-3 !h-8 !text-[12px]" (click)="onNewClick.emit()">
|
|
12857
|
+
{{ newLabel() }}
|
|
12858
|
+
</neural-button>
|
|
12859
|
+
</div>
|
|
12834
12860
|
</div>
|
|
12835
|
-
|
|
12836
|
-
|
|
12837
|
-
|
|
12838
|
-
<
|
|
12839
|
-
{{ newLabel() }}
|
|
12840
|
-
</neural-button>
|
|
12861
|
+
}
|
|
12862
|
+
@if (viewMode() === 'form') {
|
|
12863
|
+
<div class="flex items-center gap-1">
|
|
12864
|
+
<ng-content select="[form-actions]"></ng-content>
|
|
12841
12865
|
</div>
|
|
12842
|
-
|
|
12866
|
+
}
|
|
12843
12867
|
</div>
|
|
12844
12868
|
|
|
12845
|
-
|
|
12846
|
-
|
|
12869
|
+
@if (viewMode() === 'list') {
|
|
12870
|
+
<!-- Table Content -->
|
|
12871
|
+
<div class="flex-1 overflow-x-auto min-h-[300px] relative px-4 pb-4">
|
|
12847
12872
|
<table class="w-full text-left border-separate" style="border-spacing: 0;">
|
|
12848
12873
|
<thead>
|
|
12849
12874
|
<tr>
|
|
@@ -12942,6 +12967,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12942
12967
|
</div>
|
|
12943
12968
|
</div>
|
|
12944
12969
|
</div>
|
|
12970
|
+
}
|
|
12971
|
+
|
|
12972
|
+
@if (viewMode() === 'form') {
|
|
12973
|
+
<div class="flex-1 w-full h-full relative">
|
|
12974
|
+
<ng-content select="[form-view]"></ng-content>
|
|
12975
|
+
</div>
|
|
12976
|
+
}
|
|
12945
12977
|
|
|
12946
12978
|
<!-- Dialog moved outside of the main flex flows -->
|
|
12947
12979
|
<neural-dialog [openModel]="isPreferencesOpen()" (openModelChange)="isPreferencesOpen.set($event)" [hasTitleSlot]="true" [hasActionsSlot]="true" size="md">
|
|
@@ -12988,7 +13020,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12988
13020
|
</div>
|
|
12989
13021
|
`
|
|
12990
13022
|
}]
|
|
12991
|
-
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], hasInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasInfo", required: false }] }], newLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "newLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], allColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "allColumns", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: true }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }], totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], emptyStateTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTitle", required: false }] }], emptyStateDesc: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateDesc", required: false }] }], customActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "customActions", required: false }] }], maxVisibleActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisibleActions", required: false }] }], onSearch: [{
|
|
13023
|
+
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], hasInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasInfo", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], newLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "newLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], allColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "allColumns", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: true }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }], totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], emptyStateTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateTitle", required: false }] }], emptyStateDesc: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyStateDesc", required: false }] }], customActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "customActions", required: false }] }], maxVisibleActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisibleActions", required: false }] }], onSearch: [{
|
|
12992
13024
|
type: Output
|
|
12993
13025
|
}], onPageChange: [{
|
|
12994
13026
|
type: Output
|