sapenlinea-components 0.12.97 → 0.13.99

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.
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy, QueryList, ElementRef, NgZone, OnInit, Type, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
3
+ import * as lucide_angular from 'lucide-angular';
3
4
  import { LucideIconData } from 'lucide-angular';
4
5
  import { ControlValueAccessor, FormGroup, AbstractControl, FormControl } from '@angular/forms';
5
6
  import * as sapenlinea_components from 'sapenlinea-components';
@@ -1550,7 +1551,7 @@ declare class Button {
1550
1551
  /** Ocupa todo el ancho del contenedor */
1551
1552
  fullWidth: _angular_core.InputSignal<boolean>;
1552
1553
  /** Tamaño del botón: por defecto (grande) o compacto */
1553
- size: _angular_core.InputSignal<"default" | "compact">;
1554
+ size: _angular_core.InputSignal<"compact" | "default">;
1554
1555
  /** Evento click del botón */
1555
1556
  clicked: _angular_core.OutputEmitterRef<MouseEvent>;
1556
1557
  handleClick(event: MouseEvent): void;
@@ -1639,16 +1640,23 @@ declare class OptionCard {
1639
1640
  description: _angular_core.InputSignal<string>;
1640
1641
  buttonBg: _angular_core.InputSignal<string | undefined>;
1641
1642
  iconBg: _angular_core.InputSignal<string | undefined>;
1643
+ /** Clase CSS (`icon-*`) o valor Lucide (`lucide:nombre`). */
1644
+ icon: _angular_core.InputSignal<string>;
1642
1645
  clickAction: _angular_core.OutputEmitterRef<void>;
1646
+ readonly hasIconInput: _angular_core.Signal<boolean>;
1647
+ readonly isLucideIcon: _angular_core.Signal<boolean>;
1648
+ readonly cssIconClass: _angular_core.Signal<string>;
1649
+ readonly lucideIcon: _angular_core.Signal<LucideIconData | null>;
1643
1650
  onClick(): void;
1644
1651
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OptionCard, never>;
1645
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OptionCard, "lib-option-card", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "buttonBg": { "alias": "buttonBg"; "required": false; "isSignal": true; }; "iconBg": { "alias": "iconBg"; "required": false; "isSignal": true; }; }, { "clickAction": "clickAction"; }, never, ["[icon]"], true, never>;
1652
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OptionCard, "lib-option-card", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "buttonBg": { "alias": "buttonBg"; "required": false; "isSignal": true; }; "iconBg": { "alias": "iconBg"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "clickAction": "clickAction"; }, never, ["[icon]"], true, never>;
1646
1653
  }
1647
1654
 
1648
1655
  interface QuickAccessItem {
1649
1656
  id: string;
1650
1657
  label: string;
1651
1658
  description: string;
1659
+ /** Clase CSS (`icon-*`) o valor Lucide (`lucide:nombre`) */
1652
1660
  icon: string;
1653
1661
  iconBg?: string;
1654
1662
  }
@@ -2301,13 +2309,13 @@ declare class PdfViewer {
2301
2309
  get isShowModal(): boolean;
2302
2310
  doc: _angular_core.Signal<sapenlinea_components.FileViewerDoc | null>;
2303
2311
  currentUrl: _angular_core.Signal<string>;
2312
+ safePdfUrl: _angular_core.Signal<SafeResourceUrl | null>;
2313
+ safeImageUrl: _angular_core.Signal<SafeUrl | null>;
2304
2314
  hasMultiple: _angular_core.Signal<boolean>;
2305
2315
  isImage: _angular_core.Signal<boolean>;
2306
2316
  constructor();
2307
2317
  prev(): void;
2308
2318
  next(): void;
2309
- getSafePdfUrl(url: string): SafeResourceUrl;
2310
- getSafeImageUrl(url: string): SafeUrl;
2311
2319
  closeModal(): void;
2312
2320
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfViewer, never>;
2313
2321
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PdfViewer, "lib-pdf-viewer", never, {}, {}, never, never, true, never>;
@@ -2382,7 +2390,7 @@ declare class CardHistory {
2382
2390
  historialEntry: _angular_core.InputSignal<HistorialEntry | undefined>;
2383
2391
  isExpanded: _angular_core.WritableSignal<boolean>;
2384
2392
  withResponsible: _angular_core.InputSignal<boolean>;
2385
- variant: _angular_core.InputSignal<"history" | "default">;
2393
+ variant: _angular_core.InputSignal<"default" | "history">;
2386
2394
  private months;
2387
2395
  toggleExpanded(): void;
2388
2396
  formatDate(isoDate: string): string;
@@ -2585,18 +2593,18 @@ interface ModuleData {
2585
2593
  childOrder?: ModuleChildRef[];
2586
2594
  }
2587
2595
  interface ModuleEvent {
2588
- type: 'moveUp' | 'moveDown' | 'edit' | 'delete' | 'visibleChange' | 'addApplicativo' | 'addSubmodule';
2596
+ type: 'moveUp' | 'moveDown' | 'reorder' | 'edit' | 'delete' | 'visibleChange' | 'addApplicativo' | 'addSubmodule';
2589
2597
  moduleId: string | number;
2590
2598
  data?: any;
2591
2599
  }
2592
2600
  interface SubmoduleEvent {
2593
- type: 'moveUp' | 'moveDown' | 'edit' | 'delete' | 'visibleChange';
2601
+ type: 'moveUp' | 'moveDown' | 'reorder' | 'edit' | 'delete' | 'visibleChange';
2594
2602
  submoduleId: string | number;
2595
2603
  moduleId: string | number;
2596
2604
  data?: any;
2597
2605
  }
2598
2606
  interface ApplicativoEvent {
2599
- type: 'moveUp' | 'moveDown' | 'edit' | 'delete' | 'visibleChange' | 'addAction' | 'removeAction';
2607
+ type: 'moveUp' | 'moveDown' | 'reorder' | 'edit' | 'delete' | 'visibleChange' | 'addAction' | 'removeAction';
2600
2608
  moduleId: string | number;
2601
2609
  applicativoId: string | number;
2602
2610
  submoduleId?: string | number | null;
@@ -2616,14 +2624,28 @@ declare class ModuleCard {
2616
2624
  isFirst: _angular_core.InputSignal<boolean>;
2617
2625
  /** true cuando este módulo es el último de la lista (deshabilita mover abajo) */
2618
2626
  isLast: _angular_core.InputSignal<boolean>;
2627
+ /** Muestra el asa de arrastre en el encabezado del módulo (lo usa module-card-list). */
2628
+ showDragHandle: _angular_core.InputSignal<boolean>;
2619
2629
  moduleEvent: _angular_core.OutputEmitterRef<ModuleEvent>;
2620
2630
  submoduleEvent: _angular_core.OutputEmitterRef<SubmoduleEvent>;
2621
2631
  applicativoEvent: _angular_core.OutputEmitterRef<ApplicativoEvent>;
2622
2632
  childOrderChange: _angular_core.OutputEmitterRef<ModuleChildRef[]>;
2633
+ dragHandleDragStart: _angular_core.OutputEmitterRef<DragEvent>;
2634
+ dragHandleDragEnd: _angular_core.OutputEmitterRef<DragEvent>;
2623
2635
  expanded: _angular_core.WritableSignal<boolean>;
2624
2636
  expandedSubmodules: _angular_core.WritableSignal<Set<string | number>>;
2625
2637
  expandedApplicativos: _angular_core.WritableSignal<Set<string | number>>;
2626
2638
  private optimisticChildOrder;
2639
+ readonly draggingChildIndex: _angular_core.WritableSignal<number | null>;
2640
+ readonly dropChildIndex: _angular_core.WritableSignal<number | null>;
2641
+ readonly draggingSubApp: _angular_core.WritableSignal<{
2642
+ subId: string | number;
2643
+ index: number;
2644
+ } | null>;
2645
+ readonly dropSubApp: _angular_core.WritableSignal<{
2646
+ subId: string | number;
2647
+ index: number;
2648
+ } | null>;
2627
2649
  moduleChildren: _angular_core.Signal<sapenlinea_components.ResolvedModuleChild[]>;
2628
2650
  constructor();
2629
2651
  toggleExpand(): void;
@@ -2632,10 +2654,27 @@ declare class ModuleCard {
2632
2654
  toggleApplicativo(id: string | number): void;
2633
2655
  isApplicativoExpanded(id: string | number): boolean;
2634
2656
  moveChild(index: number, direction: 'up' | 'down'): void;
2657
+ moveChildTo(from: number, to: number): void;
2658
+ private applyChildReorder;
2659
+ onChildDragStart(event: DragEvent, index: number): void;
2660
+ onChildDragEnd(): void;
2661
+ onChildDragOver(event: DragEvent, index: number): void;
2662
+ onChildDrop(event: DragEvent, toIndex: number): void;
2663
+ onSubAppDragStart(event: DragEvent, subId: string | number, index: number): void;
2664
+ onSubAppDragEnd(): void;
2665
+ onSubAppDragOver(event: DragEvent, subId: string | number, index: number): void;
2666
+ onSubAppDrop(event: DragEvent, subId: string | number, toIndex: number): void;
2667
+ private getCurrentChildOrder;
2668
+ private reorderSubApp;
2635
2669
  onDirectApplicativoEvent(event: ApplicativoEvent, index: number): void;
2636
- private animateChildSwap;
2670
+ onDirectApplicativoDragStart(event: DragEvent, index: number): void;
2671
+ onDirectApplicativoDragEnd(): void;
2672
+ onDirectApplicativoDragOver(event: DragEvent, index: number): void;
2673
+ onDirectApplicativoDrop(event: DragEvent, index: number): void;
2674
+ onModuleDragHandleStart(event: DragEvent): void;
2675
+ onModuleDragHandleEnd(event: DragEvent): void;
2637
2676
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModuleCard, never>;
2638
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModuleCard, "lib-module-card", never, { "moduleId": { "alias": "moduleId"; "required": true; "isSignal": true; }; "moduleName": { "alias": "moduleName"; "required": true; "isSignal": true; }; "moduleIcon": { "alias": "moduleIcon"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "submodules": { "alias": "submodules"; "required": false; "isSignal": true; }; "aplicativos": { "alias": "aplicativos"; "required": false; "isSignal": true; }; "childOrder": { "alias": "childOrder"; "required": false; "isSignal": true; }; "isFirst": { "alias": "isFirst"; "required": false; "isSignal": true; }; "isLast": { "alias": "isLast"; "required": false; "isSignal": true; }; }, { "moduleEvent": "moduleEvent"; "submoduleEvent": "submoduleEvent"; "applicativoEvent": "applicativoEvent"; "childOrderChange": "childOrderChange"; }, never, never, true, never>;
2677
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModuleCard, "lib-module-card", never, { "moduleId": { "alias": "moduleId"; "required": true; "isSignal": true; }; "moduleName": { "alias": "moduleName"; "required": true; "isSignal": true; }; "moduleIcon": { "alias": "moduleIcon"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "submodules": { "alias": "submodules"; "required": false; "isSignal": true; }; "aplicativos": { "alias": "aplicativos"; "required": false; "isSignal": true; }; "childOrder": { "alias": "childOrder"; "required": false; "isSignal": true; }; "isFirst": { "alias": "isFirst"; "required": false; "isSignal": true; }; "isLast": { "alias": "isLast"; "required": false; "isSignal": true; }; "showDragHandle": { "alias": "showDragHandle"; "required": false; "isSignal": true; }; }, { "moduleEvent": "moduleEvent"; "submoduleEvent": "submoduleEvent"; "applicativoEvent": "applicativoEvent"; "childOrderChange": "childOrderChange"; "dragHandleDragStart": "dragHandleDragStart"; "dragHandleDragEnd": "dragHandleDragEnd"; }, never, never, true, never>;
2639
2678
  }
2640
2679
 
2641
2680
  declare class ModuleCardList {
@@ -2645,14 +2684,268 @@ declare class ModuleCardList {
2645
2684
  moduleEvent: _angular_core.OutputEmitterRef<ModuleEvent>;
2646
2685
  submoduleEvent: _angular_core.OutputEmitterRef<SubmoduleEvent>;
2647
2686
  applicativoEvent: _angular_core.OutputEmitterRef<ApplicativoEvent>;
2687
+ readonly draggingModuleIndex: _angular_core.WritableSignal<number | null>;
2688
+ readonly dropModuleIndex: _angular_core.WritableSignal<number | null>;
2689
+ onModuleDragStart(event: DragEvent, index: number): void;
2690
+ onModuleDragEnd(): void;
2691
+ onModuleDragOver(event: DragEvent, index: number): void;
2692
+ onModuleDrop(event: DragEvent, toIndex: number): void;
2648
2693
  onModuleEvent(event: ModuleEvent, index: number): void;
2649
2694
  onChildOrderChange(moduleId: string | number, order: ModuleChildRef[]): void;
2650
2695
  onSubmoduleEvent(event: SubmoduleEvent): void;
2651
2696
  onApplicativoEvent(event: ApplicativoEvent): void;
2652
- private animateSwap;
2697
+ private reorderModule;
2653
2698
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModuleCardList, never>;
2654
2699
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModuleCardList, "lib-module-card-list", never, { "modules": { "alias": "modules"; "required": false; "isSignal": true; }; }, { "modules": "modulesChange"; "moduleEvent": "moduleEvent"; "submoduleEvent": "submoduleEvent"; "applicativoEvent": "applicativoEvent"; }, never, never, true, never>;
2655
2700
  }
2656
2701
 
2657
- export { BarChart, BaseChart, Button, ButtonCards, CARD_BG, CSS_ICON_CATALOG, CardContent, CardHistory, ColorPicker, Colors, DEFAULT_ICON_PICKER_ICONS, DEFAULT_MODULE_ICONS, DEFAULT_ROLE_COLORS, DateTimeFilter, DateTimePicker, DevicesCarousel, DialogAlertComponent, DialogConfirmation, DocumentItem, DocumentUpload, DonutChart, DynamicFormFields, FeatureCard, Footer, GeoAPIMaps, Heatmap, IconPicker, InfoGroup, Input, InputNumberFilter, InputSelectFilter, InputTextFilter, InputTimeFilter, KpiCard, LUCIDE_ICON_CATALOG, LineChart, LoadImage, Loader, MapGeo, ModalForm, ModuleCard, ModuleCardList, NotFoundModal, NotFoundSection, NotificationModal, OptionCard, PaginationComponent, PdfViewer, PdfViewerService, ProcessingOverlay, ProgressBar, ProgressFormService, QuickAccessCards, RolCard, SelectCustomSearch, SideCard, SideCardDetail, Signature, TOAST_EVENTS, Table, TableChart, Tabs, TitleFilters, Toast, ToastHelper, ToastService, ToggleCustom, UI_CHART_TOKENS, WizardForm, buildChildGridTemplateColumns, getCssIconClass, getIconPickerOptionLabel, getLucideIconName, getModuleChildOrder, getTableMinWidth, isLucideIconValue, isMultilineHeaderLabel, parseIconPickerValue, resolveIconKind, resolveModuleChildren, resolveTableColumnLayout, toIconPickerStoredValue, toLucidePascalCase };
2658
- export type { ApplicativoEvent, BarSeries, CardBgPreset, ChartItem, ColumnGroup, ColumnGroupItem, ColumnWidthProfile, DataCard, DateFilterSelection, DateTimeMode, DeviceCard, DeviceStatus, DialogItem, DocumentInfo, Feature, FeatureType, FieldConfig, FileViewerDoc, FileViewerType, FilterItem, FilterOption, FilterType, GeoMapResponse, GeoPoint, GeoPointCameras, HeatmapConfig, HeatmapDataItem, HistorialEntry, Hour12, IconPickerOption, InfoItem, KpiColorType, LineSeries, MeasurementUnit, ModalFormStep, ModuleApplicativo, ModuleCardAction, ModuleChildRef, ModuleChildType, ModuleData, ModuleEvent, ModuleSubmodule, OpcionButtonVariant, Option, QuickAccessItem, ResolvedModuleChild, ResolvedTableColumnLayout, SectionConfig, SelectedDatesMap, SideCardItem, SideCardSection, StatusTone, StatusToneMap, SubColumn, SubmoduleEvent, TabCardConfig, TabId, TabItem, TabSearchConfig, TabTogglesConfig, TableAction, TableColumn, TableIconButtonConfig, TableRow, TitleFilterConfig, ToastData, ToggleCustomChange, ToggleCustomKey };
2702
+ /**
2703
+ * Modelo de ítem del sidebar en runtime.
2704
+ * Alineado con la jerarquía de `ModuleData` (module-card) pero con datos de navegación.
2705
+ */
2706
+ interface SidebarMenuItem {
2707
+ id: string | number;
2708
+ label: string;
2709
+ /** Mismo formato que module-card: `lucide:nombre` o clase CSS `icon-*` */
2710
+ icon?: string;
2711
+ route?: string;
2712
+ /** Si es `false`, el ítem no se muestra. Por defecto `true`. */
2713
+ visible?: boolean;
2714
+ isActive?: boolean;
2715
+ children?: SidebarMenuItem[];
2716
+ /**
2717
+ * Identificador de acción para ítems del menú de usuario
2718
+ * (ej. `settings`, `logout`). El contenedor decide qué hacer.
2719
+ */
2720
+ action?: string;
2721
+ }
2722
+ type SidebarItemLevel = 'main' | 'child' | 'user';
2723
+ interface SidebarItemClickEvent {
2724
+ item: SidebarMenuItem;
2725
+ level: SidebarItemLevel;
2726
+ parent?: SidebarMenuItem;
2727
+ index: number;
2728
+ }
2729
+ interface SidebarNavigateEvent {
2730
+ route: string;
2731
+ item: SidebarMenuItem;
2732
+ level: SidebarItemLevel;
2733
+ parent?: SidebarMenuItem;
2734
+ }
2735
+ interface SidebarUserActionEvent {
2736
+ action: string;
2737
+ item: SidebarMenuItem;
2738
+ index: number;
2739
+ }
2740
+ /** Resuelve la ruta de un nodo del menú a partir de sus ids estables. */
2741
+ type SidebarRouteResolver = (ref: {
2742
+ moduleId?: string | number;
2743
+ submoduleId?: string | number;
2744
+ applicativoId?: string | number;
2745
+ }) => string | undefined;
2746
+
2747
+ /**
2748
+ * Convierte `ModuleData[]` (module-card / permisos) al modelo del sidebar.
2749
+ * Respeta `visible`, `childOrder` y la jerarquía módulo → submódulo → aplicativo.
2750
+ */
2751
+ declare function mapModuleDataToSidebarItems(modules: ModuleData[], resolveRoute?: SidebarRouteResolver): SidebarMenuItem[];
2752
+ /** Filtra ítems no visibles en todos los niveles. */
2753
+ declare function filterVisibleSidebarItems(items: SidebarMenuItem[]): SidebarMenuItem[];
2754
+ /** Marca `isActive` según la URL actual (coincidencia por prefijo de ruta). */
2755
+ declare function markActiveSidebarItems(items: SidebarMenuItem[], url: string): SidebarMenuItem[];
2756
+ /** Abre el módulo y submódulo que contienen el ítem activo (solo uno de cada uno). */
2757
+ declare function getInitialOpenState(items: SidebarMenuItem[]): {
2758
+ modules: Record<string | number, boolean>;
2759
+ submodules: Record<string, boolean>;
2760
+ };
2761
+ declare function submoduleOpenKey(moduleId: string | number, submoduleId: string | number): string;
2762
+
2763
+ /**
2764
+ * Barra lateral reutilizable. Recibe ítems vía `@Input` y delega navegación/acciones
2765
+ * al contenedor mediante `@Output`. Compatible con la jerarquía de `ModuleData`
2766
+ * (module-card) usando `mapModuleDataToSidebarItems`.
2767
+ */
2768
+ declare class Sidebar implements OnDestroy {
2769
+ private el;
2770
+ private router;
2771
+ private cdr;
2772
+ private menuScroll?;
2773
+ private hoverExpandTimer;
2774
+ private readonly isPinned;
2775
+ /** Ítems del menú principal (módulos del sidebar). */
2776
+ menuItems: _angular_core.InputSignal<SidebarMenuItem[]>;
2777
+ /** Ítems del pie (configuración, cerrar sesión, etc.). */
2778
+ userMenuItems: _angular_core.InputSignal<SidebarMenuItem[]>;
2779
+ /** Estado expandido/colapsado (two-way). */
2780
+ expanded: _angular_core.ModelSignal<boolean>;
2781
+ /** Si es `true`, navega con `Router` al hacer clic en ítems con `route`. */
2782
+ autoNavigate: _angular_core.InputSignalWithTransform<boolean, unknown>;
2783
+ closeOnNavigate: _angular_core.InputSignalWithTransform<boolean, unknown>;
2784
+ closeOnOutsideClick: _angular_core.InputSignalWithTransform<boolean, unknown>;
2785
+ closeOnEscape: _angular_core.InputSignalWithTransform<boolean, unknown>;
2786
+ /** Expande temporalmente al mantener el hover (solo si no está fijado). */
2787
+ hoverExpand: _angular_core.InputSignalWithTransform<boolean, unknown>;
2788
+ /** Retardo en ms antes de expandir por hover. */
2789
+ hoverExpandDelay: _angular_core.InputSignal<number>;
2790
+ /** Ancho del sidebar expandido. */
2791
+ expandedWidth: _angular_core.InputSignal<string>;
2792
+ /** Ancho del sidebar colapsado. */
2793
+ collapsedWidth: _angular_core.InputSignal<string>;
2794
+ /** Offset superior del sidebar (ej. altura del header). */
2795
+ topOffset: _angular_core.InputSignal<string>;
2796
+ /** `action` del menú de usuario que se muestra con color de peligro. */
2797
+ dangerAction: _angular_core.InputSignal<string>;
2798
+ dangerItemColor: _angular_core.InputSignal<string>;
2799
+ iconColor: _angular_core.InputSignal<string>;
2800
+ itemClick: _angular_core.OutputEmitterRef<SidebarItemClickEvent>;
2801
+ navigate: _angular_core.OutputEmitterRef<SidebarNavigateEvent>;
2802
+ userAction: _angular_core.OutputEmitterRef<SidebarUserActionEvent>;
2803
+ readonly icons: {
2804
+ menu: lucide_angular.LucideIconData;
2805
+ close: lucide_angular.LucideIconData;
2806
+ chevronDown: lucide_angular.LucideIconData;
2807
+ };
2808
+ openItems: _angular_core.WritableSignal<Record<string | number, boolean>>;
2809
+ openChildItems: _angular_core.WritableSignal<Record<string | number, boolean>>;
2810
+ constructor();
2811
+ isExpandable(item: SidebarMenuItem): boolean;
2812
+ ngOnDestroy(): void;
2813
+ onSidebarMouseEnter(): void;
2814
+ onSidebarMouseLeave(): void;
2815
+ private scheduleHoverExpand;
2816
+ private clearHoverExpandTimer;
2817
+ private expandTemporary;
2818
+ private pinExpand;
2819
+ private collapse;
2820
+ private scrollActiveItemIntoView;
2821
+ onDocumentClick(event: Event): void;
2822
+ onEscapePress(): void;
2823
+ toggleSidebar(): void;
2824
+ private closeIfNeeded;
2825
+ private emitNavigate;
2826
+ onMainItemClick(item: SidebarMenuItem, index: number): void;
2827
+ onChildItemClick(child: SidebarMenuItem, parent: SidebarMenuItem, index: number): void;
2828
+ onGrandchildItemClick(grandchild: SidebarMenuItem, child: SidebarMenuItem, parent: SidebarMenuItem, index: number): void;
2829
+ isChildOpen(child: SidebarMenuItem, parent: SidebarMenuItem): boolean;
2830
+ onUserItemClick(item: SidebarMenuItem, index: number): void;
2831
+ isDangerUserItem(item: SidebarMenuItem): boolean;
2832
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Sidebar, never>;
2833
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Sidebar, "lib-sidebar", never, { "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "userMenuItems": { "alias": "userMenuItems"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "autoNavigate": { "alias": "autoNavigate"; "required": false; "isSignal": true; }; "closeOnNavigate": { "alias": "closeOnNavigate"; "required": false; "isSignal": true; }; "closeOnOutsideClick": { "alias": "closeOnOutsideClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "hoverExpand": { "alias": "hoverExpand"; "required": false; "isSignal": true; }; "hoverExpandDelay": { "alias": "hoverExpandDelay"; "required": false; "isSignal": true; }; "expandedWidth": { "alias": "expandedWidth"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "topOffset": { "alias": "topOffset"; "required": false; "isSignal": true; }; "dangerAction": { "alias": "dangerAction"; "required": false; "isSignal": true; }; "dangerItemColor": { "alias": "dangerItemColor"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "itemClick": "itemClick"; "navigate": "navigate"; "userAction": "userAction"; }, never, never, true, never>;
2834
+ }
2835
+
2836
+ /**
2837
+ * Estado compartido opcional del sidebar (expandido/colapsado).
2838
+ * El menú y la navegación los gestiona el contenedor vía inputs/outputs de `lib-sidebar`.
2839
+ */
2840
+ declare class SidebarService {
2841
+ readonly sidebarExpanded: _angular_core.WritableSignal<boolean>;
2842
+ toggleSidebar(): void;
2843
+ openSidebar(): void;
2844
+ closeSidebar(): void;
2845
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarService, never>;
2846
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SidebarService>;
2847
+ }
2848
+
2849
+ interface LibNotification {
2850
+ id: string;
2851
+ title: string;
2852
+ description: string;
2853
+ category: string;
2854
+ timeAgo: string;
2855
+ isRead: boolean;
2856
+ }
2857
+ type CategoryKey = 'acuerdos' | 'financiero' | 'infracciones' | 'sistema' | 'default';
2858
+ declare class NotificationCenter {
2859
+ notifications: _angular_core.InputSignal<LibNotification[]>;
2860
+ isOpen: _angular_core.InputSignal<boolean>;
2861
+ /** Indica si hay una página de notificaciones cargándose en este momento. */
2862
+ loading: _angular_core.InputSignal<boolean>;
2863
+ /** Indica si quedan más notificaciones por cargar desde el origen. */
2864
+ hasMore: _angular_core.InputSignal<boolean>;
2865
+ markAllRead: _angular_core.OutputEmitterRef<void>;
2866
+ notificationClick: _angular_core.OutputEmitterRef<LibNotification>;
2867
+ close: _angular_core.OutputEmitterRef<void>;
2868
+ /** Se emite cuando el usuario se acerca al final de la lista y debe cargarse la siguiente página. */
2869
+ loadMore: _angular_core.OutputEmitterRef<void>;
2870
+ scrollContainer: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2871
+ sentinel: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
2872
+ selectedCategory: _angular_core.WritableSignal<string>;
2873
+ categories: _angular_core.Signal<string[]>;
2874
+ filteredNotifications: _angular_core.Signal<LibNotification[]>;
2875
+ unreadCount: _angular_core.Signal<number>;
2876
+ private readonly lightColors;
2877
+ private readonly darkColors;
2878
+ constructor();
2879
+ selectCategory(cat: string): void;
2880
+ onMarkAllRead(): void;
2881
+ onNotificationClick(n: LibNotification): void;
2882
+ /** Etiqueta legible para una pestaña de categoría (ej. "ACUERDOS DE PAGO" -> "Acuerdos de pago"). */
2883
+ tabLabel(category: string): string;
2884
+ /** Normaliza una categoría a una de las claves conocidas para color e icono. */
2885
+ categoryKey(category: string): CategoryKey;
2886
+ getCategoryLight(category: string): string;
2887
+ getCategoryDark(category: string): string;
2888
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationCenter, never>;
2889
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotificationCenter, "lib-notification-center", never, { "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; }, { "markAllRead": "markAllRead"; "notificationClick": "notificationClick"; "close": "close"; "loadMore": "loadMore"; }, never, never, true, never>;
2890
+ }
2891
+
2892
+ declare class Header {
2893
+ /**
2894
+ * Todas las entradas son opcionales para que el header funcione igual
2895
+ * como custom element, microfrontend con module-federation o dentro del
2896
+ * monolito, sin que el consumidor esté obligado a enlazar cada propiedad.
2897
+ */
2898
+ isExpanded: _angular_core.InputSignal<boolean>;
2899
+ activeTitle: _angular_core.InputSignal<string>;
2900
+ mfId: _angular_core.InputSignal<string>;
2901
+ isMfFailed: _angular_core.InputSignal<boolean>;
2902
+ userRole: _angular_core.InputSignal<string>;
2903
+ /** Lista de notificaciones a mostrar en el centro de notificaciones. */
2904
+ notifications: _angular_core.InputSignal<LibNotification[]>;
2905
+ /** Indica si se está cargando una página de notificaciones. */
2906
+ notificationsLoading: _angular_core.InputSignal<boolean>;
2907
+ /** Indica si quedan más notificaciones por cargar desde el origen. */
2908
+ notificationsHasMore: _angular_core.InputSignal<boolean>;
2909
+ navigateTo: _angular_core.OutputEmitterRef<string>;
2910
+ menuClick: _angular_core.OutputEmitterRef<void>;
2911
+ profileClick: _angular_core.OutputEmitterRef<void>;
2912
+ logoutClick: _angular_core.OutputEmitterRef<void>;
2913
+ actionClick: _angular_core.OutputEmitterRef<string>;
2914
+ /** Eventos reenviados desde el centro de notificaciones. */
2915
+ markAllRead: _angular_core.OutputEmitterRef<void>;
2916
+ notificationClick: _angular_core.OutputEmitterRef<LibNotification>;
2917
+ /** Se emite cuando debe cargarse la siguiente página de notificaciones. */
2918
+ loadMoreNotifications: _angular_core.OutputEmitterRef<void>;
2919
+ isDropdownOpen: _angular_core.WritableSignal<boolean>;
2920
+ isNotifOpen: _angular_core.WritableSignal<boolean>;
2921
+ /** Cantidad de notificaciones no leídas, derivada de la lista. */
2922
+ unreadCount: _angular_core.Signal<number>;
2923
+ onMenuClick(): void;
2924
+ toggleDropdown(): void;
2925
+ toggleNotifications(): void;
2926
+ closeNotifications(): void;
2927
+ userProfile(): void;
2928
+ logout(): void;
2929
+ getMenuIcon(): "✕" | "☰";
2930
+ goToHome(): void;
2931
+ onActionClick(): void;
2932
+ getActionLabel(): string;
2933
+ hasAction(): boolean;
2934
+ onMarkAllRead(): void;
2935
+ onNotificationItemClick(notification: LibNotification): void;
2936
+ onLoadMoreNotifications(): void;
2937
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Header, never>;
2938
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Header, "lib-header", never, { "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; "activeTitle": { "alias": "activeTitle"; "required": false; "isSignal": true; }; "mfId": { "alias": "mfId"; "required": false; "isSignal": true; }; "isMfFailed": { "alias": "isMfFailed"; "required": false; "isSignal": true; }; "userRole": { "alias": "userRole"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "notificationsLoading": { "alias": "notificationsLoading"; "required": false; "isSignal": true; }; "notificationsHasMore": { "alias": "notificationsHasMore"; "required": false; "isSignal": true; }; }, { "navigateTo": "navigateTo"; "menuClick": "menuClick"; "profileClick": "profileClick"; "logoutClick": "logoutClick"; "actionClick": "actionClick"; "markAllRead": "markAllRead"; "notificationClick": "notificationClick"; "loadMoreNotifications": "loadMoreNotifications"; }, never, never, true, never>;
2939
+ }
2940
+
2941
+ declare class BellWithBadge {
2942
+ count: _angular_core.InputSignal<number>;
2943
+ active: _angular_core.InputSignalWithTransform<boolean, unknown>;
2944
+ ariaLabel: _angular_core.InputSignal<string>;
2945
+ bellClick: _angular_core.OutputEmitterRef<void>;
2946
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BellWithBadge, never>;
2947
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BellWithBadge, "lib-bell-with-badge", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "bellClick": "bellClick"; }, never, never, true, never>;
2948
+ }
2949
+
2950
+ export { BarChart, BaseChart, BellWithBadge, Button, ButtonCards, CARD_BG, CSS_ICON_CATALOG, CardContent, CardHistory, ColorPicker, Colors, DEFAULT_ICON_PICKER_ICONS, DEFAULT_MODULE_ICONS, DEFAULT_ROLE_COLORS, DateTimeFilter, DateTimePicker, DevicesCarousel, DialogAlertComponent, DialogConfirmation, DocumentItem, DocumentUpload, DonutChart, DynamicFormFields, FeatureCard, Footer, GeoAPIMaps, Header, Heatmap, IconPicker, InfoGroup, Input, InputNumberFilter, InputSelectFilter, InputTextFilter, InputTimeFilter, KpiCard, LUCIDE_ICON_CATALOG, LineChart, LoadImage, Loader, MapGeo, ModalForm, ModuleCard, ModuleCardList, NotFoundModal, NotFoundSection, NotificationCenter, NotificationModal, OptionCard, PaginationComponent, PdfViewer, PdfViewerService, ProcessingOverlay, ProgressBar, ProgressFormService, QuickAccessCards, RolCard, SelectCustomSearch, SideCard, SideCardDetail, Sidebar, SidebarService, Signature, TOAST_EVENTS, Table, TableChart, Tabs, TitleFilters, Toast, ToastHelper, ToastService, ToggleCustom, UI_CHART_TOKENS, WizardForm, buildChildGridTemplateColumns, filterVisibleSidebarItems, getCssIconClass, getIconPickerOptionLabel, getInitialOpenState, getLucideIconName, getModuleChildOrder, getTableMinWidth, isLucideIconValue, isMultilineHeaderLabel, mapModuleDataToSidebarItems, markActiveSidebarItems, parseIconPickerValue, resolveIconKind, resolveModuleChildren, resolveTableColumnLayout, submoduleOpenKey, toIconPickerStoredValue, toLucidePascalCase };
2951
+ export type { ApplicativoEvent, BarSeries, CardBgPreset, ChartItem, ColumnGroup, ColumnGroupItem, ColumnWidthProfile, DataCard, DateFilterSelection, DateTimeMode, DeviceCard, DeviceStatus, DialogItem, DocumentInfo, Feature, FeatureType, FieldConfig, FileViewerDoc, FileViewerType, FilterItem, FilterOption, FilterType, GeoMapResponse, GeoPoint, GeoPointCameras, HeatmapConfig, HeatmapDataItem, HistorialEntry, Hour12, IconPickerOption, InfoItem, KpiColorType, LibNotification, LineSeries, MeasurementUnit, ModalFormStep, ModuleApplicativo, ModuleCardAction, ModuleChildRef, ModuleChildType, ModuleData, ModuleEvent, ModuleSubmodule, OpcionButtonVariant, Option, QuickAccessItem, ResolvedModuleChild, ResolvedTableColumnLayout, SectionConfig, SelectedDatesMap, SideCardItem, SideCardSection, SidebarItemClickEvent, SidebarItemLevel, SidebarMenuItem, SidebarNavigateEvent, SidebarRouteResolver, SidebarUserActionEvent, StatusTone, StatusToneMap, SubColumn, SubmoduleEvent, TabCardConfig, TabId, TabItem, TabSearchConfig, TabTogglesConfig, TableAction, TableColumn, TableIconButtonConfig, TableRow, TitleFilterConfig, ToastData, ToggleCustomChange, ToggleCustomKey };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sapenlinea-components",
3
- "version": "0.12.97",
3
+ "version": "0.13.99",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0",
6
6
  "@angular/core": "^20.3.0",