ps-helix 4.0.7 → 4.1.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ps-helix",
3
- "version": "4.0.7",
3
+ "version": "4.1.0",
4
4
  "description": "Helix Design System - A comprehensive Angular component library",
5
5
  "author": "Fabrice PEREZ - Product designer at PACK Solutions",
6
6
  "license": "MIT",
@@ -1478,9 +1478,12 @@ interface SearchConfig {
1478
1478
  minLength: number;
1479
1479
  }
1480
1480
 
1481
- declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, AfterContentInit, FormValueControl<T | T[] | null> {
1481
+ interface FlatOption<T> {
1482
+ option: SelectOption<T>;
1483
+ effectiveDisabled: boolean;
1484
+ }
1485
+ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, FormValueControl<T | T[] | null> {
1482
1486
  private readonly elementRef;
1483
- private readonly cdr;
1484
1487
  private readonly destroyRef;
1485
1488
  protected readonly selectId: string;
1486
1489
  readonly value: _angular_core.ModelSignal<T | T[] | null>;
@@ -1498,22 +1501,30 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, A
1498
1501
  placeholder: _angular_core.InputSignal<string>;
1499
1502
  multiplePlaceholder: _angular_core.InputSignal<string>;
1500
1503
  error: _angular_core.InputSignal<string | null | undefined>;
1504
+ success: _angular_core.InputSignal<string | null | undefined>;
1505
+ hint: _angular_core.InputSignal<string | null | undefined>;
1506
+ ariaLabel: _angular_core.InputSignal<string | null>;
1507
+ maxSelections: _angular_core.InputSignal<number | undefined>;
1508
+ minSelections: _angular_core.InputSignal<number | undefined>;
1501
1509
  compareWith: _angular_core.InputSignal<(a: T, b: T) => boolean>;
1502
1510
  searchConfig: _angular_core.InputSignal<SearchConfig>;
1503
1511
  private readonly isOpenSignal;
1504
1512
  private readonly searchTermSignal;
1505
- private readonly initializedSignal;
1513
+ readonly focusedIndex: _angular_core.WritableSignal<number>;
1506
1514
  opened: _angular_core.OutputEmitterRef<void>;
1507
1515
  closed: _angular_core.OutputEmitterRef<void>;
1508
1516
  searched: _angular_core.OutputEmitterRef<string>;
1509
1517
  scrollEnd: _angular_core.OutputEmitterRef<void>;
1510
1518
  isOpen: _angular_core.Signal<boolean>;
1511
1519
  searchTerm: _angular_core.Signal<string>;
1512
- state: _angular_core.Signal<"default" | "disabled" | "error">;
1520
+ state: _angular_core.Signal<"success" | "default" | "disabled" | "error">;
1521
+ computedAriaLabel: _angular_core.Signal<string>;
1522
+ describedBy: _angular_core.Signal<"error-message" | "success-message" | "hint-message" | null>;
1523
+ flatFilteredOptions: _angular_core.Signal<FlatOption<T>[]>;
1524
+ activeDescendant: _angular_core.Signal<string | null>;
1513
1525
  selectedLabel: _angular_core.Signal<string>;
1514
1526
  filteredOptions: _angular_core.Signal<(SelectOption<T> | SelectOptionGroup<T>)[]>;
1515
1527
  constructor();
1516
- ngAfterContentInit(): void;
1517
1528
  private onChange;
1518
1529
  private onTouched;
1519
1530
  writeValue(value: unknown): void;
@@ -1522,18 +1533,23 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, A
1522
1533
  setDisabledState(isDisabled: boolean): void;
1523
1534
  toggle(): void;
1524
1535
  close(): void;
1525
- select(option: SelectOption<T>): void;
1536
+ select(option: SelectOption<T>, groupDisabled?: boolean): void;
1526
1537
  clear(event: MouseEvent): void;
1527
1538
  onSearch(event: Event): void;
1528
1539
  onScroll(event: Event): void;
1540
+ handleKeydown(event: KeyboardEvent): void;
1529
1541
  protected isOptionGroup(item: SelectOption<T> | SelectOptionGroup<T>): item is SelectOptionGroup<T>;
1530
1542
  protected getOptionKey(item: SelectOption<T> | SelectOptionGroup<T>): string;
1531
1543
  protected isSelected(option: SelectOption<T>): boolean;
1532
1544
  protected hasValue(): boolean;
1533
- private flattenOptions;
1545
+ protected getFlatIndex(option: SelectOption<T>): number;
1534
1546
  protected focusSelect(): void;
1547
+ private flattenOptions;
1548
+ private moveFocus;
1549
+ private focusFirst;
1550
+ private focusLast;
1535
1551
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PshSelectComponent<any>, never>;
1536
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshSelectComponent<any>, "psh-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiplePlaceholder": { "alias": "multiplePlaceholder"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "searchConfig": { "alias": "searchConfig"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; "opened": "opened"; "closed": "closed"; "searched": "searched"; "scrollEnd": "scrollEnd"; }, never, never, true, never>;
1552
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshSelectComponent<any>, "psh-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiplePlaceholder": { "alias": "multiplePlaceholder"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "maxSelections": { "alias": "maxSelections"; "required": false; "isSignal": true; }; "minSelections": { "alias": "minSelections"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "searchConfig": { "alias": "searchConfig"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; "opened": "opened"; "closed": "closed"; "searched": "searched"; "scrollEnd": "scrollEnd"; }, never, never, true, never>;
1537
1553
  }
1538
1554
 
1539
1555
  /**
@@ -2001,9 +2017,19 @@ interface TableColumn {
2001
2017
  interface TableRow {
2002
2018
  /** Identifiant unique */
2003
2019
  id: string | number;
2020
+ /** Lignes enfants (un seul niveau) */
2021
+ children?: TableRow[];
2004
2022
  /** Données de la ligne */
2005
2023
  [key: string]: any;
2006
2024
  }
2025
+ interface TableRowExpandEvent {
2026
+ id: string | number;
2027
+ row: TableRow;
2028
+ expanded: boolean;
2029
+ }
2030
+ interface TableExpandedRowContext {
2031
+ $implicit: TableRow;
2032
+ }
2007
2033
  /**
2008
2034
  * Interface for row click event
2009
2035
  */
@@ -2052,6 +2078,10 @@ interface TableConfig {
2052
2078
  truncateText: boolean;
2053
2079
  /** Full width mode */
2054
2080
  fullWidth: boolean;
2081
+ /** Lignes extensibles */
2082
+ expandable: boolean;
2083
+ /** Mode accordéon (une seule ligne ouverte à la fois) */
2084
+ singleExpand: boolean;
2055
2085
  }
2056
2086
 
2057
2087
  declare const TABLE_CONFIG: InjectionToken<Partial<TableConfig>>;
@@ -2072,11 +2102,17 @@ declare class PshTableComponent {
2072
2102
  globalSearchPlaceholder: _angular_core.InputSignal<string>;
2073
2103
  tableLayout: _angular_core.InputSignal<"fixed" | "auto">;
2074
2104
  truncateText: _angular_core.InputSignal<boolean>;
2105
+ expandable: _angular_core.InputSignal<boolean>;
2106
+ singleExpand: _angular_core.InputSignal<boolean>;
2107
+ expandedRowTemplate: _angular_core.InputSignal<TemplateRef<TableExpandedRowContext> | undefined>;
2075
2108
  sortChange: _angular_core.OutputEmitterRef<TableSort>;
2076
2109
  globalSearchChange: _angular_core.OutputEmitterRef<string>;
2077
2110
  rowClick: _angular_core.OutputEmitterRef<TableRowClickEvent>;
2111
+ rowExpand: _angular_core.OutputEmitterRef<TableRowExpandEvent>;
2112
+ rowCollapse: _angular_core.OutputEmitterRef<TableRowExpandEvent>;
2078
2113
  private currentSortSignal;
2079
2114
  readonly searchTermSignal: _angular_core.WritableSignal<string>;
2115
+ private expandedRowIds;
2080
2116
  currentSort: _angular_core.Signal<TableSort | undefined>;
2081
2117
  searchTerm: _angular_core.Signal<string>;
2082
2118
  computedEmptyMessage: _angular_core.Signal<string>;
@@ -2097,12 +2133,15 @@ declare class PshTableComponent {
2097
2133
  handleSort(column: TableColumn): void;
2098
2134
  onSearchValueChange(value: string): void;
2099
2135
  handleRowClick(row: TableRow): void;
2100
- /**
2101
- * Récupère la valeur d'une cellule pour affichage
2102
- */
2103
2136
  protected getCellValue(row: TableRow, column: TableColumn): any;
2137
+ totalColumns: _angular_core.Signal<number>;
2138
+ isRowExpandable(row: TableRow): boolean;
2139
+ isRowExpanded(row: TableRow): boolean;
2140
+ toggleRow(row: TableRow): void;
2141
+ expandAll(): void;
2142
+ collapseAll(): void;
2104
2143
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PshTableComponent, never>;
2105
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshTableComponent, "psh-table", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "globalSearch": { "alias": "globalSearch"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "globalSearchPlaceholder": { "alias": "globalSearchPlaceholder"; "required": false; "isSignal": true; }; "tableLayout": { "alias": "tableLayout"; "required": false; "isSignal": true; }; "truncateText": { "alias": "truncateText"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "globalSearchChange": "globalSearchChange"; "rowClick": "rowClick"; }, never, never, true, never>;
2144
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshTableComponent, "psh-table", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "globalSearch": { "alias": "globalSearch"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "globalSearchPlaceholder": { "alias": "globalSearchPlaceholder"; "required": false; "isSignal": true; }; "tableLayout": { "alias": "tableLayout"; "required": false; "isSignal": true; }; "truncateText": { "alias": "truncateText"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "singleExpand": { "alias": "singleExpand"; "required": false; "isSignal": true; }; "expandedRowTemplate": { "alias": "expandedRowTemplate"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "globalSearchChange": "globalSearchChange"; "rowClick": "rowClick"; "rowExpand": "rowExpand"; "rowCollapse": "rowCollapse"; }, never, never, true, never>;
2106
2145
  }
2107
2146
 
2108
2147
  /**
@@ -2450,4 +2489,4 @@ declare class ScrollService {
2450
2489
  }
2451
2490
 
2452
2491
  export { CHECKBOX_CONFIG, INPUT_LABELS, INSURER_CONTEXT_SERVICE, MODAL_CONFIG, ModalService, NgxTranslateProvider, PAGINATION_CONFIG, PROGRESSBAR_CONFIG, PshAlertComponent, PshAvatarComponent, PshBadgeComponent, PshButtonComponent, PshCardComponent, PshCheckboxComponent, PshCollapseComponent, PshDropdownComponent, PshFlowStepComponent, PshHorizontalCardComponent, PshInfoCardComponent, PshInputComponent, PshMenuComponent, PshModalComponent, PshPaginationComponent, PshProgressbarComponent, PshRadioComponent, PshSelectComponent, PshSidebarComponent, PshSpinLoaderComponent, PshStatCardComponent, PshStateFlowIndicatorComponent, PshStepComponent, PshStepperComponent, PshSwitchComponent, PshTabBarComponent, PshTabComponent, PshTableComponent, PshTabsComponent, PshTagComponent, PshToastComponent, PshToastService, PshTooltipComponent, RADIO_CONFIG, RADIO_STYLES, SIDEBAR_CONFIG, SPINLOADER_CONFIG, STATE_FLOW_INDICATOR_CONFIG, STEPPER_CONFIG, SWITCH_CONFIG, ScrollService, TABLE_CONFIG, TABS_CONFIG, TAB_BAR_CONFIG, TAG_CONFIG, TOAST_CONFIG, TOOLTIP_CONFIG, TRANSLATION_PROVIDER, ThemeService, ToastComponent, ToastService, provideTranslation };
2453
- export type { AlertConfig, AlertLabels, AlertRole, AlertSize, AlertType, AutocompleteConfig, AvatarConfig, AvatarShape, AvatarSize, AvatarStatus, BadgeDisplayType, BadgePosition, BadgeSize, BadgeVariant, ButtonAppearance, ButtonIconPosition, ButtonSize, ButtonVariant, CardActionsAlignment, CardColorVariant, CardDensity, CardVariant, CheckboxConfig, CheckboxLabelPosition, CheckboxSize, CollapseSize, CollapseVariant, DropdownConfig, DropdownItem, DropdownPlacement, DropdownSize, FlowStepConfig, IconPosition, InfoCardData, InfoCardOptions, InfoCardVariant, InputConfig, InputSize, InputType, InputVariant, InsurerContextService, MenuItem, MenuMode, MenuVariant, ModalConfig, ModalSize, PaginationConfig, PaginationSize, PaginationVariant, ProgressbarConfig, ProgressbarLabelPosition, ProgressbarMode, ProgressbarSize, ProgressbarVariant, RadioConfig, RadioSize, SearchConfig, SelectOption, SelectOptionGroup, SelectSize, SidebarConfig, SidebarMode, SidebarPosition, SpinLoaderColor, SpinLoaderConfig, SpinLoaderSize, SpinLoaderVariant, StatCardLayout, StatCardVariant, StatTagVariant, StateFlowIndicatorAriaLabels, StateFlowIndicatorConfig, StateFlowIndicatorSize, StepConfig, StepperAriaLabels, StepperConfig, StepperVariant, SuggestionResult, SwitchConfig, SwitchSize, Tab, TabBarChangeEvent, TabBarConfig, TabBarItem, TabChangeEvent, TableCellContext, TableColumn, TableConfig, TableRow, TableRowClickEvent, TableSort, TabsConfig, TabsSize, TabsVariant, TagConfig, TagSize, TagVariant, Theme, ThemeConfig, Toast, ToastConfig, ToastPosition, ToastType, TooltipConfig, TooltipPosition, TooltipVariant, TranslationConfig, TranslationEntry, TranslationProvider };
2492
+ export type { AlertConfig, AlertLabels, AlertRole, AlertSize, AlertType, AutocompleteConfig, AvatarConfig, AvatarShape, AvatarSize, AvatarStatus, BadgeDisplayType, BadgePosition, BadgeSize, BadgeVariant, ButtonAppearance, ButtonIconPosition, ButtonSize, ButtonVariant, CardActionsAlignment, CardColorVariant, CardDensity, CardVariant, CheckboxConfig, CheckboxLabelPosition, CheckboxSize, CollapseSize, CollapseVariant, DropdownConfig, DropdownItem, DropdownPlacement, DropdownSize, FlowStepConfig, IconPosition, InfoCardData, InfoCardOptions, InfoCardVariant, InputConfig, InputSize, InputType, InputVariant, InsurerContextService, MenuItem, MenuMode, MenuVariant, ModalConfig, ModalSize, PaginationConfig, PaginationSize, PaginationVariant, ProgressbarConfig, ProgressbarLabelPosition, ProgressbarMode, ProgressbarSize, ProgressbarVariant, RadioConfig, RadioSize, SearchConfig, SelectOption, SelectOptionGroup, SelectSize, SidebarConfig, SidebarMode, SidebarPosition, SpinLoaderColor, SpinLoaderConfig, SpinLoaderSize, SpinLoaderVariant, StatCardLayout, StatCardVariant, StatTagVariant, StateFlowIndicatorAriaLabels, StateFlowIndicatorConfig, StateFlowIndicatorSize, StepConfig, StepperAriaLabels, StepperConfig, StepperVariant, SuggestionResult, SwitchConfig, SwitchSize, Tab, TabBarChangeEvent, TabBarConfig, TabBarItem, TabChangeEvent, TableCellContext, TableColumn, TableConfig, TableExpandedRowContext, TableRow, TableRowClickEvent, TableRowExpandEvent, TableSort, TabsConfig, TabsSize, TabsVariant, TagConfig, TagSize, TagVariant, Theme, ThemeConfig, Toast, ToastConfig, ToastPosition, ToastType, TooltipConfig, TooltipPosition, TooltipVariant, TranslationConfig, TranslationEntry, TranslationProvider };