@byuhbll/components 6.1.1 → 7.0.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/fesm2022/byuhbll-components.mjs +1224 -119
- package/fesm2022/byuhbll-components.mjs.map +1 -1
- package/index.d.ts +604 -8
- package/package.json +4 -1
- package/styles/scss/_sr-only.scss +21 -0
- package/styles/scss/_vars.scss +1 -1
- package/styles/scss/hbll-foundation.scss +523 -0
package/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as rxjs from 'rxjs';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { AfterViewInit, ElementRef, EventEmitter, PipeTransform, OnInit, OnDestroy, Signal, OnChanges, SimpleChanges,
|
|
4
|
+
import { AfterViewInit, ElementRef, EventEmitter, PipeTransform, OnInit, OnDestroy, Signal, AfterViewChecked, OnChanges, SimpleChanges, AfterContentInit, QueryList } from '@angular/core';
|
|
5
5
|
import * as _angular_forms from '@angular/forms';
|
|
6
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
6
7
|
import { JwtPayload } from 'jwt-decode';
|
|
7
8
|
|
|
8
9
|
interface LibraryHours {
|
|
@@ -45,8 +46,7 @@ declare class HbllHeaderComponent implements AfterViewInit {
|
|
|
45
46
|
ngAfterViewInit(): void;
|
|
46
47
|
protected openSidebarNav: () => void;
|
|
47
48
|
protected closeSidebarNav: () => void;
|
|
48
|
-
|
|
49
|
-
private setMobileSidebarHeight;
|
|
49
|
+
setMobileSidebarHeight(): void;
|
|
50
50
|
focusMainContent(): void;
|
|
51
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<HbllHeaderComponent, never>;
|
|
52
52
|
static ɵcmp: i0.ɵɵComponentDeclaration<HbllHeaderComponent, "lib-hbll-header", never, { "name": { "alias": "name"; "required": false; }; "mainsitebaseurl": { "alias": "mainsitebaseurl"; "required": false; }; "showImpersonateButton": { "alias": "showImpersonateButton"; "required": false; "isSignal": true; }; }, { "openImpersonationModal": "openImpersonationModal"; "login": "login"; "logout": "logout"; }, never, never, true, never>;
|
|
@@ -485,7 +485,7 @@ interface Date$1 {
|
|
|
485
485
|
to: string;
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
declare class SsSearchBarComponent {
|
|
488
|
+
declare class SsSearchBarComponent implements AfterViewChecked {
|
|
489
489
|
readonly searchText: i0.ModelSignal<string>;
|
|
490
490
|
private _config;
|
|
491
491
|
set config(config: string);
|
|
@@ -500,13 +500,16 @@ declare class SsSearchBarComponent {
|
|
|
500
500
|
tabChange: EventEmitter<SearchConfig>;
|
|
501
501
|
suggest: EventEmitter<SearchConfig>;
|
|
502
502
|
private barWrapperRef;
|
|
503
|
+
advSearchCloseBtn?: ElementRef<HTMLButtonElement>;
|
|
503
504
|
protected heightOfContainer: number;
|
|
505
|
+
private shouldFocusAdvClose;
|
|
504
506
|
protected emitClearSimpleSearch: () => void;
|
|
505
507
|
protected emitSimpleSearch: (updatedProps: Partial<SearchConfig>) => void;
|
|
506
508
|
protected emitAdvancedSearchClosed: () => void;
|
|
507
509
|
protected emitAdvancedSearch: (config: SearchConfig) => void;
|
|
508
510
|
protected emitAdvancedSearchOpen: () => void;
|
|
509
511
|
protected emitTabChange: (newScope: SearchScope) => void;
|
|
512
|
+
ngAfterViewChecked(): void;
|
|
510
513
|
static ɵfac: i0.ɵɵFactoryDeclaration<SsSearchBarComponent, never>;
|
|
511
514
|
static ɵcmp: i0.ɵɵComponentDeclaration<SsSearchBarComponent, "lib-ss-search-bar", never, { "searchText": { "alias": "searchText"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": true; }; "supportedSuggestionScopes": { "alias": "supportedSuggestionScopes"; "required": false; }; "suggestions": { "alias": "suggestions"; "required": false; }; }, { "searchText": "searchTextChange"; "simpleSearch": "simpleSearch"; "clearSimpleSearch": "clearSimpleSearch"; "advancedSearch": "advancedSearch"; "advancedSearchClosed": "advancedSearchClosed"; "advancedSearchOpen": "advancedSearchOpen"; "tabChange": "tabChange"; "suggest": "suggest"; }, never, never, true, never>;
|
|
512
515
|
}
|
|
@@ -626,7 +629,6 @@ declare class SnackbarComponent implements OnInit, OnChanges, OnDestroy {
|
|
|
626
629
|
declare class SnackbarService {
|
|
627
630
|
private appRef;
|
|
628
631
|
private env;
|
|
629
|
-
constructor(appRef: ApplicationRef, env: EnvironmentInjector);
|
|
630
632
|
/**
|
|
631
633
|
* This open method is what consuming code will use to create a snackbar
|
|
632
634
|
* @param snackbarOptions interface
|
|
@@ -650,6 +652,7 @@ interface ButtonInputs {
|
|
|
650
652
|
disabled?: boolean;
|
|
651
653
|
isThin?: boolean;
|
|
652
654
|
ariaLabel?: string;
|
|
655
|
+
pill?: boolean;
|
|
653
656
|
}
|
|
654
657
|
/**
|
|
655
658
|
* A flexible, reusable button component that supports multiple button types
|
|
@@ -697,13 +700,19 @@ declare class ButtonComponent {
|
|
|
697
700
|
disabled: boolean;
|
|
698
701
|
isThin: boolean;
|
|
699
702
|
ariaLabel?: string;
|
|
703
|
+
minWidth?: string;
|
|
704
|
+
pill?: boolean;
|
|
705
|
+
color?: string;
|
|
700
706
|
buttonClick: EventEmitter<void>;
|
|
707
|
+
private readonly namedColors;
|
|
708
|
+
get computedBg(): string | null;
|
|
709
|
+
get computedBgHover(): string | null;
|
|
701
710
|
/**
|
|
702
711
|
* Handles button click events and emits the buttonClick event if the button is not disabled.
|
|
703
712
|
*/
|
|
704
713
|
onButtonClick(): void;
|
|
705
714
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
706
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "lib-button", never, { "buttonType": { "alias": "buttonType"; "required": false; }; "title": { "alias": "title"; "required": false; }; "iconBefore": { "alias": "iconBefore"; "required": false; }; "iconAfter": { "alias": "iconAfter"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isThin": { "alias": "isThin"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, never, true, never>;
|
|
715
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "lib-button", never, { "buttonType": { "alias": "buttonType"; "required": false; }; "title": { "alias": "title"; "required": false; }; "iconBefore": { "alias": "iconBefore"; "required": false; }; "iconAfter": { "alias": "iconAfter"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isThin": { "alias": "isThin"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "pill": { "alias": "pill"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, never, true, never>;
|
|
707
716
|
}
|
|
708
717
|
|
|
709
718
|
declare class ButtonGroupItemComponent {
|
|
@@ -767,5 +776,592 @@ declare class ButtonGroupComponent implements AfterContentInit, OnDestroy {
|
|
|
767
776
|
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonGroupComponent, "lib-button-group", never, { "initialActiveId": { "alias": "initialActiveId"; "required": false; }; }, { "activeButtonChange": "activeButtonChange"; }, ["buttonItems"], ["*"], true, never>;
|
|
768
777
|
}
|
|
769
778
|
|
|
770
|
-
|
|
771
|
-
|
|
779
|
+
interface CheckboxInputs {
|
|
780
|
+
isChecked: boolean;
|
|
781
|
+
isIndeterminate?: boolean;
|
|
782
|
+
isSmall?: boolean;
|
|
783
|
+
disabled?: boolean;
|
|
784
|
+
isError?: boolean;
|
|
785
|
+
}
|
|
786
|
+
/**
|
|
787
|
+
* A flexible, reusable checkbox component that supports multiple states (error, disabled, indeterminate, default, and checked)
|
|
788
|
+
*
|
|
789
|
+
* @example
|
|
790
|
+
* ```html
|
|
791
|
+
* <!-- Default checkbox with label (toggleable) -->
|
|
792
|
+
* <lib-label text="Normal Checkbox 1" [for]="'checkbox1'"></lib-label>
|
|
793
|
+
* <lib-checkbox
|
|
794
|
+
* inputId="checkbox1"
|
|
795
|
+
* [isChecked]="normalInfo()"
|
|
796
|
+
* (checkedChange)="normalInfo.set($event)"
|
|
797
|
+
* ></lib-checkbox>
|
|
798
|
+
*
|
|
799
|
+
* <!-- Disabled checkbox checked -->
|
|
800
|
+
* <lib-label text="Disabled Checked" [for]="'disabled-checkbox'"></lib-label>
|
|
801
|
+
* <lib-checkbox
|
|
802
|
+
* inputId="disabled-checkbox"
|
|
803
|
+
* [isChecked]="true"
|
|
804
|
+
* [disabled]="true"
|
|
805
|
+
* ></lib-checkbox>
|
|
806
|
+
*
|
|
807
|
+
* <!-- Small checkbox toggleable -->
|
|
808
|
+
* <lib-label text="Small Checkbox 1" [for]="'small-checkbox'"></lib-label>
|
|
809
|
+
* <lib-checkbox
|
|
810
|
+
* inputId="small-checkbox"
|
|
811
|
+
* [isChecked]="smallInfo()"
|
|
812
|
+
* (checkedChange)="smallInfo.set($event)"
|
|
813
|
+
* [isSmall]="true"
|
|
814
|
+
* ></lib-checkbox>
|
|
815
|
+
*
|
|
816
|
+
* <!-- Error checkbox toggleable -->
|
|
817
|
+
* <lib-label text="Error Checkbox 1" [for]="'error-checkbox'"></lib-label>
|
|
818
|
+
* <lib-checkbox
|
|
819
|
+
* inputId="error-checkbox"
|
|
820
|
+
* [isChecked]="errorInfo()"
|
|
821
|
+
* (checkedChange)="errorInfo.set($event)"
|
|
822
|
+
* [isError]="true"
|
|
823
|
+
* ></lib-checkbox>
|
|
824
|
+
*
|
|
825
|
+
* <!-- Indeterminate parent with children example -->
|
|
826
|
+
* <div style="display: flex; flex-direction: column; gap: 8px;">
|
|
827
|
+
* <!-- Parent -->
|
|
828
|
+
* <div style="display: flex; align-items: center; gap: 8px">
|
|
829
|
+
* <lib-label text="Select All" [for]="'parent-checkbox'"></lib-label>
|
|
830
|
+
* <lib-checkbox
|
|
831
|
+
* inputId="parent-checkbox"
|
|
832
|
+
* [isChecked]="parentChecked()"
|
|
833
|
+
* [isIndeterminate]="parentIndeterminate()"
|
|
834
|
+
* (checkedChange)="toggleParent($event)"
|
|
835
|
+
* ></lib-checkbox>
|
|
836
|
+
* </div>
|
|
837
|
+
* <!-- Children -->
|
|
838
|
+
* <div style="margin-left: 24px;">
|
|
839
|
+
* <lib-label text="Option 1" [for]="'child-1'"></lib-label>
|
|
840
|
+
* <lib-checkbox
|
|
841
|
+
* inputId="child-1"
|
|
842
|
+
* [isChecked]="child1()"
|
|
843
|
+
* (checkedChange)="child1.set($event)"
|
|
844
|
+
* ></lib-checkbox>
|
|
845
|
+
* </div>
|
|
846
|
+
* </div>
|
|
847
|
+
* ```
|
|
848
|
+
*/
|
|
849
|
+
declare class CheckboxComponent {
|
|
850
|
+
isChecked: boolean;
|
|
851
|
+
isIndeterminate?: boolean;
|
|
852
|
+
isSmall?: boolean;
|
|
853
|
+
disabled?: boolean;
|
|
854
|
+
isError?: boolean;
|
|
855
|
+
inputId: string;
|
|
856
|
+
checkedChange: EventEmitter<boolean>;
|
|
857
|
+
onCheckBoxChange(event: Event): void;
|
|
858
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
859
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "lib-checkbox", never, { "isChecked": { "alias": "isChecked"; "required": false; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; }; "isSmall": { "alias": "isSmall"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isError": { "alias": "isError"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
declare class TabItemComponent {
|
|
863
|
+
id: string;
|
|
864
|
+
title?: string;
|
|
865
|
+
icon?: string;
|
|
866
|
+
ariaLabel?: string;
|
|
867
|
+
disabled: boolean;
|
|
868
|
+
routerLink?: string;
|
|
869
|
+
itemClick: EventEmitter<string>;
|
|
870
|
+
isActive: boolean;
|
|
871
|
+
/**
|
|
872
|
+
* Handles the tab item click event and emits the tab's ID to the parent component.
|
|
873
|
+
*/
|
|
874
|
+
onClick(): void;
|
|
875
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TabItemComponent, never>;
|
|
876
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabItemComponent, "lib-tab-item", never, { "id": { "alias": "id"; "required": true; }; "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "routerLink": { "alias": "routerLink"; "required": false; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
declare class TabBarComponent implements AfterContentInit, OnDestroy {
|
|
880
|
+
initialActiveId?: string;
|
|
881
|
+
activeTabChange: EventEmitter<string>;
|
|
882
|
+
tabItems: QueryList<TabItemComponent>;
|
|
883
|
+
private elementRef;
|
|
884
|
+
protected activeTabId: string;
|
|
885
|
+
private subscriptions;
|
|
886
|
+
/**
|
|
887
|
+
* Angular lifecycle hook called after content projection is initialized.
|
|
888
|
+
* Sets up the initial active tab and subscribes to tab click events from all tab items.
|
|
889
|
+
*/
|
|
890
|
+
ngAfterContentInit(): void;
|
|
891
|
+
/**
|
|
892
|
+
* Initializes custom element children when used as web components.
|
|
893
|
+
*/
|
|
894
|
+
private initializeCustomElements;
|
|
895
|
+
/**
|
|
896
|
+
* Sets the active state on a custom element by toggling the active class on its button.
|
|
897
|
+
*/
|
|
898
|
+
private setActiveState;
|
|
899
|
+
/**
|
|
900
|
+
* Handles click events for custom element children.
|
|
901
|
+
*/
|
|
902
|
+
private handleCustomElementClick;
|
|
903
|
+
/**
|
|
904
|
+
* Angular lifecycle hook called when the component is destroyed.
|
|
905
|
+
* Cleans up all subscriptions to prevent memory leaks.
|
|
906
|
+
*/
|
|
907
|
+
ngOnDestroy(): void;
|
|
908
|
+
/**
|
|
909
|
+
* Initializes the active tab state based on the initialActiveId input.
|
|
910
|
+
* Sets the active state on the matching tab item if an initial ID is provided.
|
|
911
|
+
*/
|
|
912
|
+
private initializeActiveTab;
|
|
913
|
+
/**
|
|
914
|
+
* Handles tab click events from child tab items.
|
|
915
|
+
* Updates the active tab state and emits the activeTabChange event.
|
|
916
|
+
* @param tabId - The ID of the clicked tab
|
|
917
|
+
*/
|
|
918
|
+
onTabClick(tabId: string): void;
|
|
919
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TabBarComponent, never>;
|
|
920
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabBarComponent, "lib-tab-bar", never, { "initialActiveId": { "alias": "initialActiveId"; "required": false; }; }, { "activeTabChange": "activeTabChange"; }, ["tabItems"], ["*"], true, never>;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
type FieldState = 'default' | 'hover' | 'focused' | 'error' | 'success' | 'disabled';
|
|
924
|
+
type FieldStatus = 'filled' | 'not-filled';
|
|
925
|
+
type InputType = 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';
|
|
926
|
+
interface FieldInputs {
|
|
927
|
+
inputType?: InputType;
|
|
928
|
+
inputId?: string;
|
|
929
|
+
placeholder: string;
|
|
930
|
+
state?: FieldState;
|
|
931
|
+
status?: FieldStatus;
|
|
932
|
+
iconBefore?: string;
|
|
933
|
+
iconAfter?: string;
|
|
934
|
+
disabled?: boolean;
|
|
935
|
+
ariaLabel?: string;
|
|
936
|
+
value?: string;
|
|
937
|
+
isFullText?: boolean;
|
|
938
|
+
rows?: number;
|
|
939
|
+
minWidth?: string;
|
|
940
|
+
maxWidth?: string;
|
|
941
|
+
minHeight?: string;
|
|
942
|
+
maxHeight?: string;
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* A flexible, reusable field (input) component that supports multiple states
|
|
946
|
+
* and optional icons on left and right.
|
|
947
|
+
*
|
|
948
|
+
* @example
|
|
949
|
+
* ```html
|
|
950
|
+
* <!-- Basic text input -->
|
|
951
|
+
* <lib-field
|
|
952
|
+
* placeholder="Enter your name"
|
|
953
|
+
* (valueChange)="onInputChange($event)">
|
|
954
|
+
* </lib-field>
|
|
955
|
+
*
|
|
956
|
+
* <!-- Password input with icons -->
|
|
957
|
+
* <lib-field
|
|
958
|
+
* [inputType]="'password'"
|
|
959
|
+
* placeholder="Enter password"
|
|
960
|
+
* iconBefore="lock"
|
|
961
|
+
* iconAfter="visibility"
|
|
962
|
+
* (iconAfterClick)="togglePasswordVisibility()">
|
|
963
|
+
* </lib-field>
|
|
964
|
+
*
|
|
965
|
+
* <!-- Error state with icon -->
|
|
966
|
+
* <lib-field
|
|
967
|
+
* placeholder="Email"
|
|
968
|
+
* state="error"
|
|
969
|
+
* iconBefore="person"
|
|
970
|
+
* (valueChange)="onEmailChange($event)">
|
|
971
|
+
* </lib-field>
|
|
972
|
+
*
|
|
973
|
+
* <!-- Full text (textarea) field -->
|
|
974
|
+
* <lib-field
|
|
975
|
+
* [isFullText]="true"
|
|
976
|
+
* [rows]="4"
|
|
977
|
+
* placeholder="Enter your message"
|
|
978
|
+
* (valueChange)="onMessageChange($event)">
|
|
979
|
+
* </lib-field>
|
|
980
|
+
*
|
|
981
|
+
* <!-- Field with custom dimensions -->
|
|
982
|
+
* <lib-field
|
|
983
|
+
* placeholder="Custom sized field"
|
|
984
|
+
* minWidth="200px"
|
|
985
|
+
* maxWidth="400px"
|
|
986
|
+
* minHeight="40px"
|
|
987
|
+
* maxHeight="60px">
|
|
988
|
+
* </lib-field>
|
|
989
|
+
* ```
|
|
990
|
+
*/
|
|
991
|
+
declare class FieldComponent implements ControlValueAccessor {
|
|
992
|
+
inputType: InputType;
|
|
993
|
+
inputId?: string;
|
|
994
|
+
placeholder: string;
|
|
995
|
+
state: FieldState;
|
|
996
|
+
status: FieldStatus;
|
|
997
|
+
iconBefore?: string;
|
|
998
|
+
iconAfter?: string;
|
|
999
|
+
iconBeforeClickable: boolean;
|
|
1000
|
+
iconAfterClickable: boolean;
|
|
1001
|
+
iconBeforeAction?: () => void;
|
|
1002
|
+
iconAfterAction?: () => void;
|
|
1003
|
+
disabled: boolean;
|
|
1004
|
+
ariaLabel?: string;
|
|
1005
|
+
value: string;
|
|
1006
|
+
isFullText: boolean;
|
|
1007
|
+
rows: number;
|
|
1008
|
+
minWidth?: string;
|
|
1009
|
+
maxWidth?: string;
|
|
1010
|
+
minHeight?: string;
|
|
1011
|
+
maxHeight?: string;
|
|
1012
|
+
valueChange: EventEmitter<string>;
|
|
1013
|
+
iconBeforeClick: EventEmitter<void>;
|
|
1014
|
+
iconAfterClick: EventEmitter<void>;
|
|
1015
|
+
fieldFocus: EventEmitter<void>;
|
|
1016
|
+
fieldBlur: EventEmitter<void>;
|
|
1017
|
+
private onChange;
|
|
1018
|
+
private onTouched;
|
|
1019
|
+
isFocused: boolean;
|
|
1020
|
+
private isKeyboardFocus;
|
|
1021
|
+
onDocumentKeydown(event: KeyboardEvent): void;
|
|
1022
|
+
onDocumentMousedown(): void;
|
|
1023
|
+
onDocumentPointerdown(): void;
|
|
1024
|
+
/**
|
|
1025
|
+
* Handles input value changes and updates status based on content.
|
|
1026
|
+
*/
|
|
1027
|
+
onValueChange(event: Event): void;
|
|
1028
|
+
/**
|
|
1029
|
+
* Handles focus event and updates state.
|
|
1030
|
+
*/
|
|
1031
|
+
onFocus(): void;
|
|
1032
|
+
/**
|
|
1033
|
+
* Handles blur event and updates state.
|
|
1034
|
+
*/
|
|
1035
|
+
onBlur(): void;
|
|
1036
|
+
/**
|
|
1037
|
+
* Handles left icon click.
|
|
1038
|
+
*/
|
|
1039
|
+
onIconBeforeClick(): void;
|
|
1040
|
+
/**
|
|
1041
|
+
* Handles right icon click.
|
|
1042
|
+
*/
|
|
1043
|
+
onIconAfterClick(): void;
|
|
1044
|
+
writeValue(value: string): void;
|
|
1045
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
1046
|
+
registerOnTouched(fn: () => void): void;
|
|
1047
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1048
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FieldComponent, never>;
|
|
1049
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FieldComponent, "lib-field", never, { "inputType": { "alias": "inputType"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "state": { "alias": "state"; "required": false; }; "status": { "alias": "status"; "required": false; }; "iconBefore": { "alias": "iconBefore"; "required": false; }; "iconAfter": { "alias": "iconAfter"; "required": false; }; "iconBeforeClickable": { "alias": "iconBeforeClickable"; "required": false; }; "iconAfterClickable": { "alias": "iconAfterClickable"; "required": false; }; "iconBeforeAction": { "alias": "iconBeforeAction"; "required": false; }; "iconAfterAction": { "alias": "iconAfterAction"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "value": { "alias": "value"; "required": false; }; "isFullText": { "alias": "isFullText"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; }, { "valueChange": "valueChange"; "iconBeforeClick": "iconBeforeClick"; "iconAfterClick": "iconAfterClick"; "fieldFocus": "fieldFocus"; "fieldBlur": "fieldBlur"; }, never, never, true, never>;
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
type LabelType = 'none' | 'required' | 'optional';
|
|
1053
|
+
type LabelPosition = 'above' | 'left';
|
|
1054
|
+
interface LabelInputs {
|
|
1055
|
+
text: string;
|
|
1056
|
+
type?: LabelType;
|
|
1057
|
+
showHelpIcon?: boolean;
|
|
1058
|
+
ariaLabel?: string;
|
|
1059
|
+
position?: LabelPosition;
|
|
1060
|
+
isRequired?: boolean;
|
|
1061
|
+
for?: string;
|
|
1062
|
+
subtext?: string;
|
|
1063
|
+
}
|
|
1064
|
+
/**
|
|
1065
|
+
* A flexible label component that supports different label types
|
|
1066
|
+
* with optional help icon and required/optional indicators.
|
|
1067
|
+
*
|
|
1068
|
+
* @example
|
|
1069
|
+
* ```html
|
|
1070
|
+
* <!-- Basic label -->
|
|
1071
|
+
* <lib-label
|
|
1072
|
+
* text="Email"
|
|
1073
|
+
* type="none">
|
|
1074
|
+
* </lib-label>
|
|
1075
|
+
*
|
|
1076
|
+
* <!-- Required label with help icon -->
|
|
1077
|
+
* <lib-label
|
|
1078
|
+
* text="Password"
|
|
1079
|
+
* type="required"
|
|
1080
|
+
* [showHelpIcon]="true"
|
|
1081
|
+
* (helpIconClick)="showHelp()">
|
|
1082
|
+
* </lib-label>
|
|
1083
|
+
*
|
|
1084
|
+
* <!-- Optional label -->
|
|
1085
|
+
* <lib-label
|
|
1086
|
+
* text="Phone"
|
|
1087
|
+
* type="optional"
|
|
1088
|
+
* [showHelpIcon]="true">
|
|
1089
|
+
* </lib-label>
|
|
1090
|
+
*
|
|
1091
|
+
* <!-- Label positioned to the left of field -->
|
|
1092
|
+
* <lib-label
|
|
1093
|
+
* text="Email"
|
|
1094
|
+
* position="left">
|
|
1095
|
+
* </lib-label>
|
|
1096
|
+
* ```
|
|
1097
|
+
*/
|
|
1098
|
+
declare class LabelComponent {
|
|
1099
|
+
text: string;
|
|
1100
|
+
type: LabelType;
|
|
1101
|
+
showHelpIcon: boolean;
|
|
1102
|
+
ariaLabel?: string;
|
|
1103
|
+
position: LabelPosition;
|
|
1104
|
+
isRequired: boolean;
|
|
1105
|
+
for?: string;
|
|
1106
|
+
subtext?: string;
|
|
1107
|
+
helpIconClick: EventEmitter<void>;
|
|
1108
|
+
/**
|
|
1109
|
+
* Handles help icon click event.
|
|
1110
|
+
*/
|
|
1111
|
+
onHelpIconClick(): void;
|
|
1112
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LabelComponent, never>;
|
|
1113
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LabelComponent, "lib-label", never, { "text": { "alias": "text"; "required": false; }; "type": { "alias": "type"; "required": false; }; "showHelpIcon": { "alias": "showHelpIcon"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "position": { "alias": "position"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "for": { "alias": "for"; "required": false; }; "subtext": { "alias": "subtext"; "required": false; }; }, { "helpIconClick": "helpIconClick"; }, never, never, true, never>;
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
type LinkType = 'basic' | 'inline';
|
|
1117
|
+
type LinkState = 'default' | 'hover' | 'focused' | 'disabled';
|
|
1118
|
+
type LinkIconPosition = 'left' | 'right';
|
|
1119
|
+
interface LinkInputs {
|
|
1120
|
+
text: string;
|
|
1121
|
+
textHtml?: string;
|
|
1122
|
+
imageSrc?: string;
|
|
1123
|
+
imageAlt?: string;
|
|
1124
|
+
imageTitle?: string;
|
|
1125
|
+
imageClass?: string;
|
|
1126
|
+
href?: string;
|
|
1127
|
+
target?: string;
|
|
1128
|
+
rel?: string;
|
|
1129
|
+
type?: LinkType;
|
|
1130
|
+
state?: LinkState;
|
|
1131
|
+
disabled?: boolean;
|
|
1132
|
+
leftIcon?: string;
|
|
1133
|
+
rightIcon?: string;
|
|
1134
|
+
ariaLabel?: string;
|
|
1135
|
+
}
|
|
1136
|
+
/**
|
|
1137
|
+
* A link component that supports basic and inline variants
|
|
1138
|
+
* with optional left and right icons.
|
|
1139
|
+
*
|
|
1140
|
+
* @example
|
|
1141
|
+
* ```html
|
|
1142
|
+
* <lib-link text="Link item" href="/details"></lib-link>
|
|
1143
|
+
*
|
|
1144
|
+
* <lib-link
|
|
1145
|
+
* text="Inline link"
|
|
1146
|
+
* type="inline"
|
|
1147
|
+
* href="/details">
|
|
1148
|
+
* </lib-link>
|
|
1149
|
+
*
|
|
1150
|
+
* <lib-link
|
|
1151
|
+
* text="Disabled link"
|
|
1152
|
+
* [disabled]="true">
|
|
1153
|
+
* </lib-link>
|
|
1154
|
+
* ```
|
|
1155
|
+
*/
|
|
1156
|
+
declare class LinkComponent {
|
|
1157
|
+
text: string;
|
|
1158
|
+
textHtml?: string;
|
|
1159
|
+
imageSrc?: string;
|
|
1160
|
+
imageAlt?: string;
|
|
1161
|
+
imageTitle?: string;
|
|
1162
|
+
imageClass?: string;
|
|
1163
|
+
href?: string;
|
|
1164
|
+
target?: string;
|
|
1165
|
+
rel?: string;
|
|
1166
|
+
type: LinkType;
|
|
1167
|
+
state: LinkState;
|
|
1168
|
+
disabled: boolean;
|
|
1169
|
+
leftIcon?: string;
|
|
1170
|
+
rightIcon?: string;
|
|
1171
|
+
ariaLabel?: string;
|
|
1172
|
+
linkClick: EventEmitter<MouseEvent>;
|
|
1173
|
+
get computedState(): LinkState;
|
|
1174
|
+
get hasLeftIcon(): boolean;
|
|
1175
|
+
get hasRightIcon(): boolean;
|
|
1176
|
+
get computedLeftIcon(): string;
|
|
1177
|
+
get computedRightIcon(): string;
|
|
1178
|
+
get computedHref(): string | null;
|
|
1179
|
+
get computedRel(): string | null;
|
|
1180
|
+
get computedAriaLabel(): string;
|
|
1181
|
+
onClick(event: MouseEvent): void;
|
|
1182
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LinkComponent, never>;
|
|
1183
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LinkComponent, "lib-link", never, { "text": { "alias": "text"; "required": false; }; "textHtml": { "alias": "textHtml"; "required": false; }; "imageSrc": { "alias": "imageSrc"; "required": false; }; "imageAlt": { "alias": "imageAlt"; "required": false; }; "imageTitle": { "alias": "imageTitle"; "required": false; }; "imageClass": { "alias": "imageClass"; "required": false; }; "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "rel": { "alias": "rel"; "required": false; }; "type": { "alias": "type"; "required": false; }; "state": { "alias": "state"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "leftIcon": { "alias": "leftIcon"; "required": false; }; "rightIcon": { "alias": "rightIcon"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "linkClick": "linkClick"; }, never, never, true, never>;
|
|
1184
|
+
static ngAcceptInputType_disabled: unknown;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
interface RadioButtonChange {
|
|
1188
|
+
checked: boolean;
|
|
1189
|
+
value: string;
|
|
1190
|
+
originalEvent: Event;
|
|
1191
|
+
}
|
|
1192
|
+
/**
|
|
1193
|
+
* Accessible replacement for a native `<input type="radio">` that can live
|
|
1194
|
+
* inside Angular forms or be used as a standalone control. The component
|
|
1195
|
+
* exposes color, name, disabled, and value inputs plus a `checkedChange`
|
|
1196
|
+
* output so parent views can respond to state transitions or drive a custom
|
|
1197
|
+
* radio group.
|
|
1198
|
+
*
|
|
1199
|
+
* Features:
|
|
1200
|
+
* - Standalone + OnPush component that keeps templates lean.
|
|
1201
|
+
* - Implements ControlValueAccessor so it works with `ngModel` and reactive forms.
|
|
1202
|
+
* - Emits the original DOM event, checked state, and configured value for analytics.
|
|
1203
|
+
* - Auto-generates a unique `inputId` so external `<lib-label>` elements can bind via `for`.
|
|
1204
|
+
*
|
|
1205
|
+
* @example
|
|
1206
|
+
* ```html
|
|
1207
|
+
* <lib-radio-button
|
|
1208
|
+
* #flighting
|
|
1209
|
+
* name="experiment"
|
|
1210
|
+
* value="flighting"
|
|
1211
|
+
* color="#7c3aed"
|
|
1212
|
+
* [(ngModel)]="selectedValue"
|
|
1213
|
+
* (checkedChange)="logRadio($event)">
|
|
1214
|
+
* </lib-radio-button>
|
|
1215
|
+
* <lib-label position="left" [for]="flighting.inputId" text="Flighting"></lib-label>
|
|
1216
|
+
* ```
|
|
1217
|
+
*/
|
|
1218
|
+
declare class RadioButtonComponent implements ControlValueAccessor {
|
|
1219
|
+
private readonly cdr;
|
|
1220
|
+
private readonly inputUid;
|
|
1221
|
+
color?: string;
|
|
1222
|
+
disabled: boolean;
|
|
1223
|
+
name?: string;
|
|
1224
|
+
value: string;
|
|
1225
|
+
checked: boolean;
|
|
1226
|
+
checkedChange: EventEmitter<RadioButtonChange>;
|
|
1227
|
+
private onChange;
|
|
1228
|
+
private onTouched;
|
|
1229
|
+
writeValue(formValue: unknown): void;
|
|
1230
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
1231
|
+
registerOnTouched(fn: () => void): void;
|
|
1232
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1233
|
+
onInputChange(event: Event): void;
|
|
1234
|
+
onBlur(): void;
|
|
1235
|
+
get inputId(): string;
|
|
1236
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonComponent, never>;
|
|
1237
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "lib-radio-button", never, { "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
1238
|
+
static ngAcceptInputType_disabled: unknown;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
type DropdownState = 'default' | 'hover' | 'focused' | 'error' | 'success' | 'disabled';
|
|
1242
|
+
interface DropdownOption {
|
|
1243
|
+
value: string;
|
|
1244
|
+
label: string;
|
|
1245
|
+
disabled?: boolean;
|
|
1246
|
+
}
|
|
1247
|
+
interface DropdownInputs {
|
|
1248
|
+
label?: string;
|
|
1249
|
+
labelType?: 'none' | 'required' | 'optional';
|
|
1250
|
+
inputId?: string;
|
|
1251
|
+
showHelpIcon?: boolean;
|
|
1252
|
+
subtext?: string;
|
|
1253
|
+
placeholder?: string;
|
|
1254
|
+
options: DropdownOption[];
|
|
1255
|
+
state?: DropdownState;
|
|
1256
|
+
disabled?: boolean;
|
|
1257
|
+
ariaLabel?: string;
|
|
1258
|
+
value?: string;
|
|
1259
|
+
searchable?: boolean;
|
|
1260
|
+
}
|
|
1261
|
+
/**
|
|
1262
|
+
* A dropdown component that combines a label and a searchable select field.
|
|
1263
|
+
* Features include:
|
|
1264
|
+
* - Searchable input to filter options
|
|
1265
|
+
* - Keyboard navigation support
|
|
1266
|
+
* - Optional label with help icon
|
|
1267
|
+
* - Multiple states (default, focused, error, etc.)
|
|
1268
|
+
*
|
|
1269
|
+
* @example
|
|
1270
|
+
* ```html
|
|
1271
|
+
* <!-- Basic dropdown -->
|
|
1272
|
+
* <lib-dropdown
|
|
1273
|
+
* label="Select an option"
|
|
1274
|
+
* [options]="myOptions"
|
|
1275
|
+
* (valueChange)="onSelectionChange($event)">
|
|
1276
|
+
* </lib-dropdown>
|
|
1277
|
+
*
|
|
1278
|
+
* <!-- Required dropdown with help icon -->
|
|
1279
|
+
* <lib-dropdown
|
|
1280
|
+
* label="Category"
|
|
1281
|
+
* labelType="required"
|
|
1282
|
+
* [showHelpIcon]="true"
|
|
1283
|
+
* [options]="categories"
|
|
1284
|
+
* placeholder="Choose a category"
|
|
1285
|
+
* (valueChange)="onCategoryChange($event)">
|
|
1286
|
+
* </lib-dropdown>
|
|
1287
|
+
*
|
|
1288
|
+
* <!-- Dropdown with error state -->
|
|
1289
|
+
* <lib-dropdown
|
|
1290
|
+
* label="Status"
|
|
1291
|
+
* [options]="statuses"
|
|
1292
|
+
* state="error"
|
|
1293
|
+
* subtext="Please select a status"
|
|
1294
|
+
* (valueChange)="onStatusChange($event)">
|
|
1295
|
+
* </lib-dropdown>
|
|
1296
|
+
* ```
|
|
1297
|
+
*/
|
|
1298
|
+
declare class DropdownComponent implements ControlValueAccessor, OnInit {
|
|
1299
|
+
label?: string;
|
|
1300
|
+
inputId?: string;
|
|
1301
|
+
labelType: 'none' | 'required' | 'optional';
|
|
1302
|
+
showHelpIcon: boolean;
|
|
1303
|
+
subtext?: string;
|
|
1304
|
+
placeholder: string;
|
|
1305
|
+
options: DropdownOption[];
|
|
1306
|
+
state: DropdownState;
|
|
1307
|
+
disabled: boolean;
|
|
1308
|
+
ariaLabel?: string;
|
|
1309
|
+
searchable: boolean;
|
|
1310
|
+
valueChange: EventEmitter<string>;
|
|
1311
|
+
helpIconClick: EventEmitter<void>;
|
|
1312
|
+
dropdownInput?: FieldComponent;
|
|
1313
|
+
value: string;
|
|
1314
|
+
searchText: string;
|
|
1315
|
+
isOpen: boolean;
|
|
1316
|
+
selectedIndex: number;
|
|
1317
|
+
filteredOptions: DropdownOption[];
|
|
1318
|
+
private elementRef;
|
|
1319
|
+
private onChange;
|
|
1320
|
+
private onTouched;
|
|
1321
|
+
ngOnInit(): void;
|
|
1322
|
+
/**
|
|
1323
|
+
* Gets the display text for the selected value
|
|
1324
|
+
*/
|
|
1325
|
+
get displayText(): string;
|
|
1326
|
+
/**
|
|
1327
|
+
* Toggles dropdown open/closed state
|
|
1328
|
+
*/
|
|
1329
|
+
toggleDropdown(): void;
|
|
1330
|
+
/**
|
|
1331
|
+
* Handles input changes for search functionality
|
|
1332
|
+
*/
|
|
1333
|
+
onSearchInput(event: Event): void;
|
|
1334
|
+
/**
|
|
1335
|
+
* Filters options based on search text
|
|
1336
|
+
*/
|
|
1337
|
+
filterOptions(): void;
|
|
1338
|
+
/**
|
|
1339
|
+
* Selects an option from the dropdown
|
|
1340
|
+
*/
|
|
1341
|
+
selectOption(option: DropdownOption): void;
|
|
1342
|
+
/**
|
|
1343
|
+
* Handles keyboard navigation
|
|
1344
|
+
*/
|
|
1345
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
1346
|
+
/**
|
|
1347
|
+
* Handles blur event
|
|
1348
|
+
*/
|
|
1349
|
+
onBlur(): void;
|
|
1350
|
+
/**
|
|
1351
|
+
* Handles help icon click event
|
|
1352
|
+
*/
|
|
1353
|
+
onHelpIconClick(): void;
|
|
1354
|
+
/**
|
|
1355
|
+
* Closes dropdown when clicking outside
|
|
1356
|
+
*/
|
|
1357
|
+
onDocumentClick(event: MouseEvent): void;
|
|
1358
|
+
writeValue(value: string): void;
|
|
1359
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
1360
|
+
registerOnTouched(fn: () => void): void;
|
|
1361
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1362
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
1363
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "lib-dropdown", never, { "label": { "alias": "label"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "labelType": { "alias": "labelType"; "required": false; }; "showHelpIcon": { "alias": "showHelpIcon"; "required": false; }; "subtext": { "alias": "subtext"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "state": { "alias": "state"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; }, { "valueChange": "valueChange"; "helpIconClick": "helpIconClick"; }, never, never, true, never>;
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
export { ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, ADVANCED_SEARCH_QUALIFIER_MAP, ButtonComponent, ButtonGroupComponent, ButtonGroupItemComponent, CheckboxComponent, DropdownComponent, FieldComponent, HbllFooterComponent, HbllHeaderComponent, HbllItemTypeIconPipe, HeaderWithImpersonationComponent, ImpersonateModalComponent, ImpersonateUserPipe, ImpersonationBannerComponent, LIBRARY_HOURS_API_URL, LabelComponent, LinkComponent, RadioButtonComponent, SnackbarComponent, SnackbarService, SsSearchBarComponent, StatusButtonComponent, TabBarComponent, TabItemComponent, defaultOidcBaseUri, defaultOidcDefaultIdp, getUserStatusFromRoles, isAdvancedSearchExternalFieldOption, isAdvancedSearchFieldOption, isAdvancedSearchLocalFieldOption, isSearchScope };
|
|
1367
|
+
export type { AdvancedSearchBooleanOption, AdvancedSearchExternalFieldOption, AdvancedSearchFieldOption, AdvancedSearchLanguageOption, AdvancedSearchLocalFieldOption, AdvancedSearchQualifier, AdvancedSearchQualifierOption, AdvancedSearchQueryRow, AdvancedSearchResultsPerPageOption, ButtonInputs, ButtonType, CheckboxInputs, DropdownInputs, DropdownOption, DropdownState, FieldInputs, FieldState, FieldStatus, ImpersonateSearchResult, InputType, LabelInputs, LabelPosition, LabelType, LinkIconPosition, LinkInputs, LinkState, LinkType, RadioButtonChange, SearchConfig, SearchScope, SnackbarInputs, SnackbarPurpose, Status, StatusButtonInputs };
|