ps-helix 4.0.7 → 4.1.1

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.1",
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",
@@ -1472,21 +1472,26 @@ interface SelectOptionGroup<T> {
1472
1472
  disabled?: boolean;
1473
1473
  }
1474
1474
  type SelectSize = 'small' | 'medium' | 'large';
1475
+ type SelectVariant = 'outlined' | 'filled';
1475
1476
  interface SearchConfig {
1476
1477
  debounceTime: number;
1477
1478
  placeholder: string;
1478
1479
  minLength: number;
1479
1480
  }
1480
1481
 
1481
- declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, AfterContentInit, FormValueControl<T | T[] | null> {
1482
+ interface FlatOption<T> {
1483
+ option: SelectOption<T>;
1484
+ effectiveDisabled: boolean;
1485
+ }
1486
+ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, FormValueControl<T | T[] | null> {
1482
1487
  private readonly elementRef;
1483
- private readonly cdr;
1484
1488
  private readonly destroyRef;
1485
1489
  protected readonly selectId: string;
1486
1490
  readonly value: _angular_core.ModelSignal<T | T[] | null>;
1487
1491
  readonly disabled: _angular_core.ModelSignal<boolean>;
1488
1492
  readonly touched: _angular_core.ModelSignal<boolean>;
1489
1493
  size: _angular_core.InputSignal<SelectSize>;
1494
+ variant: _angular_core.InputSignal<SelectVariant>;
1490
1495
  searchable: _angular_core.InputSignal<boolean>;
1491
1496
  multiple: _angular_core.InputSignal<boolean>;
1492
1497
  clearable: _angular_core.InputSignal<boolean>;
@@ -1498,22 +1503,30 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, A
1498
1503
  placeholder: _angular_core.InputSignal<string>;
1499
1504
  multiplePlaceholder: _angular_core.InputSignal<string>;
1500
1505
  error: _angular_core.InputSignal<string | null | undefined>;
1506
+ success: _angular_core.InputSignal<string | null | undefined>;
1507
+ hint: _angular_core.InputSignal<string | null | undefined>;
1508
+ ariaLabel: _angular_core.InputSignal<string | null>;
1509
+ maxSelections: _angular_core.InputSignal<number | undefined>;
1510
+ minSelections: _angular_core.InputSignal<number | undefined>;
1501
1511
  compareWith: _angular_core.InputSignal<(a: T, b: T) => boolean>;
1502
1512
  searchConfig: _angular_core.InputSignal<SearchConfig>;
1503
1513
  private readonly isOpenSignal;
1504
1514
  private readonly searchTermSignal;
1505
- private readonly initializedSignal;
1515
+ readonly focusedIndex: _angular_core.WritableSignal<number>;
1506
1516
  opened: _angular_core.OutputEmitterRef<void>;
1507
1517
  closed: _angular_core.OutputEmitterRef<void>;
1508
1518
  searched: _angular_core.OutputEmitterRef<string>;
1509
1519
  scrollEnd: _angular_core.OutputEmitterRef<void>;
1510
1520
  isOpen: _angular_core.Signal<boolean>;
1511
1521
  searchTerm: _angular_core.Signal<string>;
1512
- state: _angular_core.Signal<"default" | "disabled" | "error">;
1522
+ state: _angular_core.Signal<"success" | "default" | "disabled" | "error">;
1523
+ computedAriaLabel: _angular_core.Signal<string>;
1524
+ describedBy: _angular_core.Signal<"error-message" | "success-message" | "hint-message" | null>;
1525
+ flatFilteredOptions: _angular_core.Signal<FlatOption<T>[]>;
1526
+ activeDescendant: _angular_core.Signal<string | null>;
1513
1527
  selectedLabel: _angular_core.Signal<string>;
1514
1528
  filteredOptions: _angular_core.Signal<(SelectOption<T> | SelectOptionGroup<T>)[]>;
1515
1529
  constructor();
1516
- ngAfterContentInit(): void;
1517
1530
  private onChange;
1518
1531
  private onTouched;
1519
1532
  writeValue(value: unknown): void;
@@ -1522,18 +1535,23 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, A
1522
1535
  setDisabledState(isDisabled: boolean): void;
1523
1536
  toggle(): void;
1524
1537
  close(): void;
1525
- select(option: SelectOption<T>): void;
1538
+ select(option: SelectOption<T>, groupDisabled?: boolean): void;
1526
1539
  clear(event: MouseEvent): void;
1527
1540
  onSearch(event: Event): void;
1528
1541
  onScroll(event: Event): void;
1542
+ handleKeydown(event: KeyboardEvent): void;
1529
1543
  protected isOptionGroup(item: SelectOption<T> | SelectOptionGroup<T>): item is SelectOptionGroup<T>;
1530
1544
  protected getOptionKey(item: SelectOption<T> | SelectOptionGroup<T>): string;
1531
1545
  protected isSelected(option: SelectOption<T>): boolean;
1532
1546
  protected hasValue(): boolean;
1533
- private flattenOptions;
1547
+ protected getFlatIndex(option: SelectOption<T>): number;
1534
1548
  protected focusSelect(): void;
1549
+ private flattenOptions;
1550
+ private moveFocus;
1551
+ private focusFirst;
1552
+ private focusLast;
1535
1553
  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>;
1554
+ 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; }; "variant": { "alias": "variant"; "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
1555
  }
1538
1556
 
1539
1557
  /**
@@ -2001,9 +2019,19 @@ interface TableColumn {
2001
2019
  interface TableRow {
2002
2020
  /** Identifiant unique */
2003
2021
  id: string | number;
2022
+ /** Lignes enfants (un seul niveau) */
2023
+ children?: TableRow[];
2004
2024
  /** Données de la ligne */
2005
2025
  [key: string]: any;
2006
2026
  }
2027
+ interface TableRowExpandEvent {
2028
+ id: string | number;
2029
+ row: TableRow;
2030
+ expanded: boolean;
2031
+ }
2032
+ interface TableExpandedRowContext {
2033
+ $implicit: TableRow;
2034
+ }
2007
2035
  /**
2008
2036
  * Interface for row click event
2009
2037
  */
@@ -2052,6 +2080,10 @@ interface TableConfig {
2052
2080
  truncateText: boolean;
2053
2081
  /** Full width mode */
2054
2082
  fullWidth: boolean;
2083
+ /** Lignes extensibles */
2084
+ expandable: boolean;
2085
+ /** Mode accordéon (une seule ligne ouverte à la fois) */
2086
+ singleExpand: boolean;
2055
2087
  }
2056
2088
 
2057
2089
  declare const TABLE_CONFIG: InjectionToken<Partial<TableConfig>>;
@@ -2072,11 +2104,17 @@ declare class PshTableComponent {
2072
2104
  globalSearchPlaceholder: _angular_core.InputSignal<string>;
2073
2105
  tableLayout: _angular_core.InputSignal<"fixed" | "auto">;
2074
2106
  truncateText: _angular_core.InputSignal<boolean>;
2107
+ expandable: _angular_core.InputSignal<boolean>;
2108
+ singleExpand: _angular_core.InputSignal<boolean>;
2109
+ expandedRowTemplate: _angular_core.InputSignal<TemplateRef<TableExpandedRowContext> | undefined>;
2075
2110
  sortChange: _angular_core.OutputEmitterRef<TableSort>;
2076
2111
  globalSearchChange: _angular_core.OutputEmitterRef<string>;
2077
2112
  rowClick: _angular_core.OutputEmitterRef<TableRowClickEvent>;
2113
+ rowExpand: _angular_core.OutputEmitterRef<TableRowExpandEvent>;
2114
+ rowCollapse: _angular_core.OutputEmitterRef<TableRowExpandEvent>;
2078
2115
  private currentSortSignal;
2079
2116
  readonly searchTermSignal: _angular_core.WritableSignal<string>;
2117
+ private expandedRowIds;
2080
2118
  currentSort: _angular_core.Signal<TableSort | undefined>;
2081
2119
  searchTerm: _angular_core.Signal<string>;
2082
2120
  computedEmptyMessage: _angular_core.Signal<string>;
@@ -2097,12 +2135,15 @@ declare class PshTableComponent {
2097
2135
  handleSort(column: TableColumn): void;
2098
2136
  onSearchValueChange(value: string): void;
2099
2137
  handleRowClick(row: TableRow): void;
2100
- /**
2101
- * Récupère la valeur d'une cellule pour affichage
2102
- */
2103
2138
  protected getCellValue(row: TableRow, column: TableColumn): any;
2139
+ totalColumns: _angular_core.Signal<number>;
2140
+ isRowExpandable(row: TableRow): boolean;
2141
+ isRowExpanded(row: TableRow): boolean;
2142
+ toggleRow(row: TableRow): void;
2143
+ expandAll(): void;
2144
+ collapseAll(): void;
2104
2145
  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>;
2146
+ 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
2147
  }
2107
2148
 
2108
2149
  /**
@@ -2450,4 +2491,4 @@ declare class ScrollService {
2450
2491
  }
2451
2492
 
2452
2493
  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 };
2494
+ 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, SelectVariant, 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 };