sapenlinea-components 0.0.31 → 0.0.33

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
@@ -30,7 +30,6 @@ interface TableColumn {
30
30
  showActions?: boolean;
31
31
  icon?: string;
32
32
  iconKey?: string;
33
- iconColor?: string;
34
33
  }
35
34
  interface TableRow {
36
35
  [key: string]: any;
@@ -39,16 +38,11 @@ interface TableAction {
39
38
  key: string;
40
39
  icon: string;
41
40
  label: string;
42
- color?: string;
43
41
  }
44
42
  interface StatusToneMap {
45
43
  [statusKey: string]: StatusTone;
46
44
  }
47
45
  type StatusTone = 'success' | 'error' | 'warning' | 'info' | 'neutral';
48
- declare const STATUS_TONE_STYLES: Record<StatusTone, {
49
- bg: string;
50
- color: string;
51
- }>;
52
46
  declare class Table implements AfterViewInit {
53
47
  columns: _angular_core.InputSignal<TableColumn[]>;
54
48
  data: _angular_core.InputSignal<TableRow[]>;
@@ -76,6 +70,7 @@ declare class Table implements AfterViewInit {
76
70
  onClickOutside(event: MouseEvent): void;
77
71
  getAlignment(col: TableColumn): string;
78
72
  formatValue(col: TableColumn, value: any): string;
73
+ getActionColor(action: TableAction): string;
79
74
  getStatusStyle(value: any): {
80
75
  bg: string;
81
76
  color: string;
@@ -306,6 +301,7 @@ declare class InputNumberFilter implements ControlValueAccessor, OnDestroy {
306
301
  setDisabledState(isDisabled: boolean): void;
307
302
  onInputChange(event: Event, filterValue: string): void;
308
303
  private markAsTouched;
304
+ clearFilter(filterValue: string): void;
309
305
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputNumberFilter, never>;
310
306
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputNumberFilter, "lib-input-number-filter", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "clearTrigger": { "alias": "clearTrigger"; "required": false; "isSignal": true; }; }, { "filterSelected": "filterSelected"; "valueChange": "valueChange"; }, never, never, true, never>;
311
307
  }
@@ -497,6 +493,7 @@ declare class DynamicFormFields implements OnInit, OnDestroy {
497
493
  onCheckboxChange(event: Event, fieldKey: string, optionIndex: number): void;
498
494
  ngOnDestroy(): void;
499
495
  onCancel(): void;
496
+ onUppercaseInput(event: Event, fieldType: string, key: string): void;
500
497
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormFields, never>;
501
498
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormFields, "lib-dynamic-form-fields", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
502
499
  }
@@ -708,7 +705,7 @@ interface SideCardItem {
708
705
  value: string | number;
709
706
  }
710
707
  interface SideCardSection {
711
- title: string;
708
+ title?: string;
712
709
  items?: SideCardItem[];
713
710
  showSlider?: boolean;
714
711
  sliderLabel?: string;
@@ -716,7 +713,8 @@ interface SideCardSection {
716
713
  sliderUnit?: string;
717
714
  buttonSectionLabel?: string;
718
715
  }
719
- declare class SideCard implements OnChanges {
716
+ declare class SideCard implements AfterViewInit, OnChanges, OnDestroy {
717
+ wrapper: ElementRef<HTMLElement>;
720
718
  isFloating: boolean;
721
719
  isCompact: boolean;
722
720
  modeSideCard: 'create' | 'edit' | 'info';
@@ -739,25 +737,124 @@ declare class SideCard implements OnChanges {
739
737
  sliderChange: EventEmitter<number>;
740
738
  showBtnPrimary: boolean;
741
739
  primaryButtonLabel: string;
742
- primaryButtonClick: EventEmitter<void>;
743
740
  showBtnSecondary: boolean;
744
741
  secondaryButtonLabel: string;
745
- secondaryButtonClick: EventEmitter<void>;
742
+ buttonClick: EventEmitter<"primary" | "secondary">;
743
+ private ro;
746
744
  get statusLabel(): string;
747
745
  get statusClass(): string;
746
+ get sliderPercentage(): string;
748
747
  ngOnChanges(): void;
748
+ ngAfterViewInit(): void;
749
+ ngOnDestroy(): void;
749
750
  selectType(type: 'radial' | 'poligonal'): void;
750
751
  onInput(event: Event): void;
751
752
  focusInput(input: HTMLInputElement): void;
752
753
  onSliderChange(event: Event): void;
753
- onButtonClick(section: SideCardSection): void;
754
- onPrimaryClick(): void;
755
- onSecondaryClick(): void;
754
+ onButtonSectionClick(section: SideCardSection): void;
755
+ onButtonClick(type: 'primary' | 'secondary'): void;
756
756
  changeStatusLabel(): void;
757
757
  buttonClickIcon(): void;
758
+ private updateCompact;
758
759
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SideCard, never>;
759
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideCard, "lib-side-card", never, { "isFloating": { "alias": "isFloating"; "required": false; }; "isCompact": { "alias": "isCompact"; "required": false; }; "modeSideCard": { "alias": "modeSideCard"; "required": false; }; "showTypeSelector": { "alias": "showTypeSelector"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "statusValue": { "alias": "statusValue"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "showBtnPrimary": { "alias": "showBtnPrimary"; "required": false; }; "primaryButtonLabel": { "alias": "primaryButtonLabel"; "required": false; }; "showBtnSecondary": { "alias": "showBtnSecondary"; "required": false; }; "secondaryButtonLabel": { "alias": "secondaryButtonLabel"; "required": false; }; }, { "btnClickIcon": "btnClickIcon"; "valueChange": "valueChange"; "typeChange": "typeChange"; "statusChange": "statusChange"; "sectionButtonClick": "sectionButtonClick"; "sliderChange": "sliderChange"; "primaryButtonClick": "primaryButtonClick"; "secondaryButtonClick": "secondaryButtonClick"; }, never, never, true, never>;
760
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideCard, "lib-side-card", never, { "isFloating": { "alias": "isFloating"; "required": false; }; "modeSideCard": { "alias": "modeSideCard"; "required": false; }; "showTypeSelector": { "alias": "showTypeSelector"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "statusValue": { "alias": "statusValue"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "showBtnPrimary": { "alias": "showBtnPrimary"; "required": false; }; "primaryButtonLabel": { "alias": "primaryButtonLabel"; "required": false; }; "showBtnSecondary": { "alias": "showBtnSecondary"; "required": false; }; "secondaryButtonLabel": { "alias": "secondaryButtonLabel"; "required": false; }; }, { "btnClickIcon": "btnClickIcon"; "valueChange": "valueChange"; "typeChange": "typeChange"; "statusChange": "statusChange"; "sectionButtonClick": "sectionButtonClick"; "sliderChange": "sliderChange"; "buttonClick": "buttonClick"; }, never, never, true, never>;
761
+ }
762
+
763
+ declare class SideCardDetail implements AfterViewInit, OnDestroy {
764
+ wrapper: ElementRef<HTMLElement>;
765
+ isFloating: boolean;
766
+ isCompact: boolean;
767
+ nowLabel: string;
768
+ agoLabel: string;
769
+ title: string;
770
+ subtitle: string;
771
+ btnClickIcon: EventEmitter<"back" | "location" | "message">;
772
+ statusValue: 1 | 2;
773
+ statusChange: EventEmitter<1 | 2>;
774
+ sections: SideCardSection[];
775
+ activeTab: 'principal' | 'historial';
776
+ tabChange: EventEmitter<"principal" | "historial">;
777
+ private ro;
778
+ ngAfterViewInit(): void;
779
+ ngOnDestroy(): void;
780
+ get statusLabel(): string;
781
+ get statusClass(): string;
782
+ buttonClickIcon(type: 'back' | 'location' | 'message'): void;
783
+ setTab(tab: 'principal' | 'historial'): void;
784
+ getIndicatorLeft(): string;
785
+ isDateValue(value: any): boolean;
786
+ getRelativeTime(date: string | Date | number): string;
787
+ private updateCompact;
788
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SideCardDetail, never>;
789
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SideCardDetail, "lib-side-card-detail", never, { "isFloating": { "alias": "isFloating"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "statusValue": { "alias": "statusValue"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; }, { "btnClickIcon": "btnClickIcon"; "statusChange": "statusChange"; "tabChange": "tabChange"; }, never, never, true, never>;
790
+ }
791
+
792
+ interface DeviceStatus {
793
+ geofence: 'inside' | 'outside';
794
+ wifi?: boolean;
795
+ bluetooth?: boolean;
796
+ gps?: boolean;
797
+ signalStatus?: 0 | 1 | 2 | 3 | 4;
798
+ batteryPercentage?: string;
799
+ }
800
+ interface DeviceCard {
801
+ code: string;
802
+ name: string;
803
+ geofenceName: string;
804
+ deviceInfo: string;
805
+ status: DeviceStatus;
806
+ lastUpdate: string | Date | number;
807
+ }
808
+ declare class DevicesCarousel implements AfterViewInit {
809
+ devices: DeviceCard[];
810
+ nowLabel: string;
811
+ agoLabel: string;
812
+ canScrollLeft: boolean;
813
+ canScrollRight: boolean;
814
+ btnClickIcon: EventEmitter<void>;
815
+ listRef: ElementRef<HTMLElement>;
816
+ onResize(): void;
817
+ onScroll(el: HTMLElement): void;
818
+ updateScrollButtons(el?: HTMLElement): void;
819
+ ngAfterViewInit(): void;
820
+ scroll(el: HTMLElement, dir: 'left' | 'right'): void;
821
+ getGeofenceClass(state: string): "badge-inside" | "badge-outside";
822
+ getSignalClass(level: 0 | 1 | 2 | 3 | 4): string;
823
+ getBatteryLevel(battery?: string): 0 | 1 | 2 | 3 | 4;
824
+ getRelativeTime(date: string | Date | number): string;
825
+ buttonClickIcon(): void;
826
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DevicesCarousel, never>;
827
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DevicesCarousel, "lib-devices-carousel", never, { "devices": { "alias": "devices"; "required": false; }; }, { "btnClickIcon": "btnClickIcon"; }, never, never, true, never>;
828
+ }
829
+
830
+ interface TitleFilterConfig {
831
+ type: FilterType;
832
+ filters: FilterItem[];
833
+ }
834
+ type FilterButtonMode = 'toggle' | 'action';
835
+ declare class TitleFilters {
836
+ showFilters: _angular_core.WritableSignal<boolean>;
837
+ title: _angular_core.InputSignal<string>;
838
+ filtersConfig: _angular_core.InputSignal<TitleFilterConfig[]>;
839
+ filtersChange: _angular_core.OutputEmitterRef<Record<string, string | number | Date | null>>;
840
+ applyFilters: _angular_core.OutputEmitterRef<void>;
841
+ clearFilterTrigger: _angular_core.WritableSignal<number>;
842
+ selectedDates: _angular_core.WritableSignal<SelectedDatesMap>;
843
+ selectedTextFilters: _angular_core.WritableSignal<Record<string, string>>;
844
+ buttonMode: _angular_core.InputSignal<FilterButtonMode>;
845
+ filterButtonClicked: _angular_core.OutputEmitterRef<void>;
846
+ onFilterButtonClick(): void;
847
+ toggleFilters(): void;
848
+ clearAllFilters(): void;
849
+ onApplyFilters(): void;
850
+ onDateSelected(event: DateFilterSelection): void;
851
+ onFilterSelected(event: {
852
+ filter: string;
853
+ value: string;
854
+ }): void;
855
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TitleFilters, never>;
856
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TitleFilters, "lib-title-filters", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "filtersConfig": { "alias": "filtersConfig"; "required": false; "isSignal": true; }; "buttonMode": { "alias": "buttonMode"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; "applyFilters": "applyFilters"; "filterButtonClicked": "filterButtonClicked"; }, never, never, true, never>;
760
857
  }
761
858
 
762
- export { DateTimeFilter, DateTimePicker, DialogAlertComponent, DialogConfirmation, DynamicFormFields, FeatureCard, InfoGroup, Input, InputNumberFilter, InputSelectFilter, InputTextFilter, Loader, ModalForm, NotFoundModal, PaginationComponent, ProcessingOverlay, ProgressBar, ProgressFormService, STATUS_TONE_STYLES, SelectCustomSearch, SideCard, TOAST_EVENTS, Table, ToastHelper, WizardForm };
763
- export type { DateFilterSelection, DateTimeMode, DialogItem, Feature, FieldConfig, FilterItem, FilterOption, FilterType, Hour12, InfoItem, ModalFormStep, Option, SectionConfig, SelectedDatesMap, SideCardItem, SideCardSection, StatusTone, StatusToneMap, TableAction, TableColumn, TableRow, ToastData };
859
+ export { DateTimeFilter, DateTimePicker, DevicesCarousel, DialogAlertComponent, DialogConfirmation, DynamicFormFields, FeatureCard, InfoGroup, Input, InputNumberFilter, InputSelectFilter, InputTextFilter, Loader, ModalForm, NotFoundModal, PaginationComponent, ProcessingOverlay, ProgressBar, ProgressFormService, SelectCustomSearch, SideCard, SideCardDetail, TOAST_EVENTS, Table, TitleFilters, ToastHelper, WizardForm };
860
+ export type { DateFilterSelection, DateTimeMode, DeviceCard, DeviceStatus, DialogItem, Feature, FieldConfig, FilterItem, FilterOption, FilterType, Hour12, InfoItem, ModalFormStep, Option, SectionConfig, SelectedDatesMap, SideCardItem, SideCardSection, StatusTone, StatusToneMap, TableAction, TableColumn, TableRow, TitleFilterConfig, ToastData };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sapenlinea-components",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0",
6
6
  "@angular/core": "^20.3.0",