import * as i0 from '@angular/core'; import { TemplateRef, EventEmitter, ElementRef, ModuleWithProviders, OnInit, AfterContentInit, AfterContentChecked, Renderer2, ChangeDetectorRef, OnDestroy, PipeTransform, AfterViewChecked, OnChanges, SimpleChanges, AfterViewInit, NgZone, QueryList, InjectionToken, ViewContainerRef, Injector, ComponentRef, Optional, DoCheck } from '@angular/core'; import * as i1 from '@angular/common'; import * as rxjs from 'rxjs'; import { Observable, Subscription, Subject, BehaviorSubject } from 'rxjs'; import * as i1$1 from '@angular/cdk/overlay'; import { CdkConnectedOverlay, ConnectedOverlayPositionChange, ScrollStrategy, ComponentType, OverlayRef, FlexibleConnectedPositionStrategyOrigin, ViewportRuler, Overlay, ConnectedPosition } from '@angular/cdk/overlay'; import * as i5 from '@angular/forms'; import { ControlValueAccessor, AbstractControl, FormGroupDirective, NgForm, NgControl, Validator, ValidationErrors } from '@angular/forms'; import * as i7 from '@angular/cdk/bidi'; import { Directionality, Direction } from '@angular/cdk/bidi'; import { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion'; import * as i3 from '@angular/cdk/portal'; import { TemplatePortal, ComponentPortal, CdkPortalOutlet, CdkPortal } from '@angular/cdk/portal'; import { FocusableOption, FocusOrigin, ActiveDescendantKeyManager, FocusKeyManager } from '@angular/cdk/a11y'; import * as i1$3 from '@angular/cdk/dialog'; import { DialogConfig, CdkDialogContainer, DialogRef, Dialog } from '@angular/cdk/dialog'; import * as i1$2 from '@angular/cdk/scrolling'; import * as i3$1 from '@angular/cdk/stepper'; import { CdkStepLabel, StepState, CdkStep, CdkStepper, CdkStepperNext, CdkStepperPrevious, CdkStepHeader } from '@angular/cdk/stepper'; export { StepState, StepperOrientation } from '@angular/cdk/stepper'; import { SelectionModel } from '@angular/cdk/collections'; import { ModifierKey } from '@angular/cdk/keycodes'; /** * Component for displaying a collapsible content. * * * Example of usage: *``` * * * *

Card Title

*
* * *
Content inside collapse *
*
* *``` * https://platform.mef.dev/ui_kit_demo/view/page_components/collapse */ declare class CollapseComponent { private _collapseSet; private _elementRef; private _disabled; _active: boolean; _el: any; /** * ContentChild for the template of the card title. * * Example: * ``` * *

Card Title

*
* ``` */ CardTitle: TemplateRef; /** * Indicates whether the collapse is disabled. * Set this to `true` to disable the collapse. Defaults to `false`. */ set Disabled(value: boolean); get Disabled(): boolean; /** * Indicates whether the collapse is active or not. */ set Active(value: boolean); get Active(): boolean; /** * Event emitter for the state change of the collapse. * Emits a boolean value indicating whether the collapse is active or not. * * Example: * ``` * * ``` */ stateChange: EventEmitter; /** * Event handler for the header click event. * Toggles the active state of the collapse and emits the state change event. * * @param $event The mouse event object. */ clickHeader($event: MouseEvent): void; constructor(_collapseSet: CollapseSetComponent, _elementRef: ElementRef); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Component representing a set of collapsible panels. * * Example of usage: * *``` * * * *

Panel 1

*

Panel 1 content...

*
* * *

Panel 2

*

Panel 2 content...

*
* * *

Panel 3

*

Panel 3 content...

*
*
*``` */ declare class CollapseSetComponent { private _accordion; private _horizontal; private _expandAny; panels: CollapseComponent[]; /** * Indicates whether multiple panels can be expanded simultaneously. * Set this to `true` to allow multiple panels to be expanded. Defaults to `false`. */ set expandAny(value: boolean); get expandAny(): boolean; /** * Indicates whether the collapse set operates as an accordion. * Set this to `true` to enable accordion behavior. Defaults to `false`. */ set Accordion(value: boolean); get Accordion(): boolean; /** * Indicates whether the collapse set is displayed horizontally or vertically. * Set this to `true` for horizontal display and `false` for vertical display. Defaults to `true`. */ set Horizontal(value: boolean); get Horizontal(): boolean; /** * Event handler for the click event on a collapse panel. * Closes other panels if the collapse set is an accordion and does not allow multiple expansions. * * @param collapse The clicked collapse component. */ pgClick(collapse: CollapseComponent): void; /** * Adds a collapse panel to the collapse set. * * @param collapse The collapse component to be added. */ addTab(collapse: CollapseComponent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare const mefDevCollapseModuleComponents: (typeof CollapseComponent | typeof CollapseSetComponent)[]; declare class MefDevCollapseModule { static forRoot(): ModuleWithProviders; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class FiltredItemModel { constructor(id: string, newValue: string, standartValue: string, discard: (standartValue: string) => any); id: string; newValue: string; standartValue: string; discard: (standartValue: string) => any; } declare class FilteredFieldService { private newFilterItem; private openFilter; constructor(); /** * Returns an observable that emits the open filter events. */ getOpenFilter(): Observable; /** * Sends an open filter event with the specified item. * @param item The filtered item model. */ sendOpenFilter(item: FiltredItemModel): void; /** * Returns an observable that emits the new filter item events. */ getNewFilterItem(): Observable; /** * Sends a new filter item event with the specified item. * @param item The filtered item model. */ sendNewFilterItem(item: FiltredItemModel): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * A container component for filtered fields. * * Example of usage: * ``` * * * * * * * ``` * Example of usage: * https://platform.mef.dev/ui_kit_demo/view/utils/filtered_field */ declare class FilteredFieldContainerComponent implements OnInit { private service; /** * An array of filtered item models. */ items: FiltredItemModel[]; constructor(service: FilteredFieldService); /** * Event handler for opening the filter. * * @param item The filtered item model. */ onOpenFilter(item: FiltredItemModel): void; /** * Event handler for discarding the filter. * * @param item The filtered item model. */ onDiscard(item: FiltredItemModel): void; ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Component representing a filtered field item. * * Example of usage: * ``` * * *``` * */ declare class FilteredFieldItemComponent implements OnInit { /** * The filtered item model. * ``` * * Content goes here... * * ``` */ item: FiltredItemModel; /** * Event emitted when the filter is discarded. * ``` * * Content goes here... * * ``` */ discard: EventEmitter; /** * Event emitted when the filter is opened. * ``` * * Content goes here... * * ``` */ openFilter: EventEmitter; constructor(); ngOnInit(): void; /** * Event handler for opening the filter. * Emits the `openFilter` event. */ onOpenFilter(): void; /** * Event handler for discarding the filter. * Emits the `discard` event with the `item` as the payload. */ onDiscard(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevFilteredFieldModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Component for displaying a simple card with a title. * * Example of usage: *``` * * * * * *``` * * https://platform.mef.dev/ui_kit_demo/view/page_components/card/card_simple */ declare class CardSimpleComponent implements OnInit { /** * Determines whether the card is disabled or not. */ isDisabled: boolean; /** * Template for displaying the title of the card. *``` * * *

Card Title

*
*
*``` */ card_title: TemplateRef; constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Example of usage: * https://platform.mef.dev/ui_kit_demo/view/controls/select */ declare class MefDevSelectComponent implements OnInit, AfterContentInit, AfterContentChecked, ControlValueAccessor { private _elementRef; private _renderer; private cDRef; private _allowClear; private _disabled; private _isTags; private _isMultiple; private _keepUnListOptions; private _showSearch; _el: HTMLElement; _isOpen: boolean; _prefixCls: string; _classList: string[]; _dropDownClassMap: any; _dropDownPrefixCls: string; _selectionClassMap: any; _selectionPrefixCls: string; _size: string; _value: string[] | string; _placeholder: string; _notFoundContent: string; _searchText: string; _triggerWidth: number; _selectedOption: MefDevOptionComponent; _operatingMultipleOption: MefDevOptionComponent; _selectedOptions: Set; _options: MefDevOptionComponent[]; _cacheOptions: MefDevOptionComponent[]; _filterOptions: MefDevOptionComponent[]; _tagsOptions: MefDevOptionComponent[]; _activeFilterOption: MefDevOptionComponent; _isMultiInit: boolean; _dropDownPosition: "top" | "center" | "bottom"; _composing: boolean; _mode: any; onChange: (value: string | string[]) => void; onTouched: () => void; searchInputElementRef: any; trigger: ElementRef; dropdownUl: ElementRef; SearchChange: EventEmitter; change: EventEmitter; OpenChange: EventEmitter; ScrollToBottom: EventEmitter; Filter: boolean; MaxMultiple: number; FirstDefault: boolean; _cdkOverlay: CdkConnectedOverlay; set AllowClear(value: boolean); get AllowClear(): boolean; set KeepUnListOptions(value: boolean); get KeepUnListOptions(): boolean; set Mode(value: string); set Multiple(value: boolean); get Multiple(): boolean; set PlaceHolder(value: string); get PlaceHolder(): string; set NotFoundContent(value: string); get NotFoundContent(): string; set Size(value: string); get Size(): string; set ShowSearch(value: boolean); get ShowSearch(): boolean; set Tags(value: boolean); get Tags(): boolean; set Disabled(value: boolean); get Disabled(): boolean; set Open(value: boolean); get Open(): boolean; /** new -option insert or new tags insert */ addOption: (option: any) => void; /** -option remove or tags remove */ removeOption(option: MefDevOptionComponent): void; /** dropdown position changed */ onPositionChange(position: ConnectedOverlayPositionChange): void; compositionStart(): void; compositionEnd(): void; /** clear single selected option */ clearSelect($event?: MouseEvent): void; /** click dropdown option by user */ clickOption(option: MefDevOptionComponent, $event?: MouseEvent): void; /** choose option */ chooseOption(option: MefDevOptionComponent, isUserClick?: boolean, $event?: MouseEvent): void; updateWidth(element: HTMLInputElement, text: string): void; /** determine if option in set */ isInSet(set: Set, option: MefDevOptionComponent): MefDevOptionComponent; /** cancel select multiple option */ unSelectMultipleOption: (option: any, $event?: any, emitChange?: boolean) => void; /** select multiple option */ selectMultipleOption(option: MefDevOptionComponent, $event?: MouseEvent): void; /** emit multiple options */ emitMultipleOptions(): void; /** update selected option when add remove option etc */ updateSelectedOption(currentModelValue: string | string[], triggerByNgModel?: boolean): void; forceUpdateSelectedOption(value: string | string[]): void; get Value(): string | string[]; set Value(value: string | string[]); clearAllSelectedOption(emitChange?: boolean): void; handleKeyEnterEvent(event: KeyboardEvent): void; handleKeyBackspaceEvent(event: KeyboardEvent): void; handleKeyDownEvent($event: MouseEvent): void; handleKeyUpEvent($event: MouseEvent): void; preOption(option: MefDevOptionComponent, options: MefDevOptionComponent[]): MefDevOptionComponent; nextOption(option: MefDevOptionComponent, options: MefDevOptionComponent[]): MefDevOptionComponent; clearSearchText(): void; updateFilterOption(updateActiveFilter?: boolean): void; onSearchChange(searchValue: string): void; onClick(e: MouseEvent): void; onKeyDown(e: KeyboardEvent): void; closeDropDown(): void; setClassMap(): void; setDropDownClassMap(): void; scrollToActive(): void; flushComponentState(): void; _setTriggerWidth(): void; _getTriggerRect(): ClientRect; writeValue(value: string | string[]): void; registerOnChange(fn: (value: string | string[]) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; dropDownScroll(ul: HTMLUListElement): void; checkDropDownScroll(): void; constructor(_elementRef: ElementRef, _renderer: Renderer2, cDRef: ChangeDetectorRef); ngAfterContentInit(): void; ngOnInit(): void; ngAfterContentChecked(): void; private _updateValue; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * @skipTemplateDoc true * Component for representing an option in a dropdown list. * *``` * * * * * *``` * */ declare class MefDevOptionComponent implements OnDestroy, OnInit { private _Select; private _disabled; _value: string; _label: string; /** * Template for the content of the option. */ OptionTemplate: any; /** * The value of the option. */ set Value(value: string); get Value(): string; /** * The label of the option. */ set Label(value: string); get Label(): string; /** * Indicates whether the option is disabled. */ set Disabled(value: boolean); get Disabled(): boolean; constructor(_Select: MefDevSelectComponent); /** * Initialization lifecycle hook. * Adds the option to the dropdown list. */ ngOnInit(): void; /** * Destruction lifecycle hook. * Removes the option from the dropdown list. */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class OptionPipe implements PipeTransform { transform(options: MefDevOptionComponent[], value: any): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵpipe: i0.ɵɵPipeDeclaration; } declare class MefDevSelectModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare const mefDevCardComponents: (typeof CardSimpleComponent)[]; declare class MefDevCardModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Fill Component for a modal window. * * Example of usage: * ``` * * * * * * * * * * * * ``` * * https://platform.mef.dev/ui_kit_demo/view/page_components/modals/fill */ declare class FillComponent implements OnInit { protected visible: boolean; protected dialog?: ElementRef; /** * The header template of the modal window. * ``` * * * * * * ``` */ modal_header: TemplateRef; /** * The footer template of the modal window. * ``` * * * * * * ``` */ modal_footer: TemplateRef; /** * Input parameter that determines whether to show the modal window. */ set show(val: boolean); /** * Event emitted when the modal is change state. * Emits a boolean value indicating if the modal is closed(false), or open(true). * Example: * ``` * * ``` */ visibleChange: EventEmitter; constructor(); ngOnInit(): void; /** * Shows the modal state. * Return a boolean value indicating if the modal is closed(false), or open(true) */ getModalState(): boolean; /** * Shows the modal. * Call this method to open the modal window. */ showModal(): void; /** * Hides the modal. * Call this method to close the modal window. */ hideModal(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * A component representing a slide-up modal window. * * Example of usage: * * ``` * * *

Modal Header

*
* * * * *
* ``` * https://platform.mef.dev/ui_kit_demo/view/page_components/modals/slide_up */ declare class SlideUpComponent implements OnInit { protected visible: boolean; /** * Reference to the template for the modal header. * Use this template to customize the header of the modal. */ modal_header: TemplateRef; /** * Reference to the template for the modal footer. * Use this template to customize the footer of the modal. */ modal_footer: TemplateRef; /** * Flag indicating whether the modal should be shown or hidden. * Set it to `true` to show the modal and `false` to hide it. */ set show(val: boolean); /** * Event emitted when the modal is change state. * Emits a boolean value indicating if the modal is closed(false), or open(true). */ visibleChange: EventEmitter; constructor(); ngOnInit(): void; /** * Shows the modal state. * Return a boolean value indicating if the modal is closed(false), or open(true) */ getModalState(): boolean; /** * Shows the modal. * Call this method to open the modal window. */ showModal(): void; /** * Hides the modal. * Call this method to close the modal window. */ hideModal(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare const enum ModalSize { sm = "sm", md = "md", lg = "lg" } /** * A component representing a slide-right modal window. * * Example of usage: * * ``` * * *

Modal Header

*
* * * * *
* ``` * https://platform.mef.dev/ui_kit_demo/view/page_components/modals/slide_right */ declare class SlideRightComponent implements OnInit { protected visible: boolean; protected dialog: ElementRef; /** * Reference to the template for the modal header. * Use this template to customize the header of the modal. */ modal_header: TemplateRef; /** * Reference to the template for the modal footer. * Use this template to customize the footer of the modal. */ modal_footer: TemplateRef; /** * Size of the modal. * Defaults to `ModalSize.md`. * Possible values: `ModalSize.sm`, `ModalSize.md`, `ModalSize.lg`, `ModalSize.xl`. */ size: ModalSize; /** * Flag indicating whether the modal should be shown or hidden. * Set it to `true` to show the modal and `false` to hide it. */ set show(val: boolean); /** * Event emitted when the modal is change state. * Emits a boolean value indicating if the modal is closed(false), or open(true). * Example: * ``` * * ``` */ visibleChange: EventEmitter; constructor(); ngOnInit(): void; /** * Shows the modal state. * Return a boolean value indicating if the modal is closed(false), or open(true) */ getModalState(): boolean; /** * Shows the modal. * Call this method to open the modal window. */ showModal(): void; /** * Hides the modal. * Call this method to close the modal window. */ hideModal(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Component representing the right filter. */ declare class RightFilterComponent implements OnInit { private filteredFieldService; /** * Flag indicating whether the right filter is open or closed. */ isOpen: boolean; showStandartOpenButton: boolean; constructor(filteredFieldService: FilteredFieldService); ngOnInit(): void; /** * Opens or closes the right filter modal. */ openModal(): void; /** * Event handler for when the modal is closed. * Sets the isOpen flag to false. */ modalIsCloused(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevModalModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * A component representing a central page layout. * * Example of usage: * * ``` * * Content goes here... * * ``` * * https://platform.mef.dev/ui_kit_demo/view/page_layouts/central_page */ declare class CentralPageComponent implements OnInit, OnDestroy, AfterViewChecked { constructor(); /** * The width of the central page. * Defaults to '100%'. * You can specify the width using CSS units (e.g., '80%', '500px'). */ width: string; /** * Lifecycle hook called just before the component is destroyed. * Removes the height style from the main content element. */ ngOnDestroy(): void; ngOnInit(): void; /** * Lifecycle hook called after the component's view has been checked. * Sets the height of the main content element to '100%'. */ ngAfterViewChecked(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * A component representing a central page layout. * * Example of usage: * * ``` * * * Content goes here... * * * ``` */ declare class CentralPageRowComponent implements OnInit { constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * A component representing a table page layout. * * Example of usage: * * ``` * * * * * * ``` * * https://platform.mef.dev/ui_kit_demo/view/page_layouts/table_page */ declare class TablePageComponent implements OnInit { /** * The template reference to the content of the filter column. * ``` * * * * ``` */ filter_colum: TemplateRef; constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * A component representing a manage page layout. * * Example of usage: * * ``` * * * Title of the card * * * Content of the tabs block * * * ``` * * Example of usage: * https://platform.mef.dev/ui_kit_demo/view/page_layouts/manage_page */ declare class ManagePageComponent implements OnInit { /** * The template reference to the card title. * ``` * * * Title of the card * * * ``` */ card_title: TemplateRef; /** * The template reference to the tabs block. * ``` * * * Content of the tabs block * * * ``` */ tabs_block: TemplateRef; /** * The index of the starting tab. * ``` * * Content goes here... * * ``` */ startTabInd: number; constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevPageLayoutsModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * @ignore */ declare class StageComponent { currentExecutorStep: number; isRightModal: boolean; isCompleted: boolean; title: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * A component that allows us to create a content page - a step in our executor. * Each individual step can have different styles, content and settings. * * Example of usage: * * ``` * * * * * * * * * * ``` * */ declare class MefdevExecutorPageComponent implements OnChanges { private _mainExecutor; private _elementRef; /** * The title of the step * @usageNotes * ``` * * ``` */ title: string; /** * The input parameter that corresponds to whether the current step matches the respective page. * The value of the active page is passed by reference from the specific component StepExecutorComponent. * * @usageNotes * ``` * * * * * * * ``` */ isActive: boolean; /** * The input parameter that checks whether the step is completed. * * @usageNotes * ``` * * ``` */ isCompleted: boolean; /** * The output parameter that emits a boolean value indicating whether our completed step has changed. * * @usageNotes * ``` * * ``` */ isCompletedChange: EventEmitter; elRef: ElementRef; constructor(_mainExecutor: StepExecutorComponent, _elementRef: ElementRef); ngOnChanges(changes: SimpleChanges): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Wrapper component that represents a specific encapsulated executor. * * Example of usage: *``` * * * * * * * * * * * * * * * * * * * * * * * * * *``` * https://platform.mef.dev/ui_kit_demo/view/utils/main_executor */ declare class StepExecutorComponent implements AfterViewInit { private renderer; private changeDetectorRef; /** * Mandatory input parameter that specifies the type of the step-by-step wizard. * It can have three options: regular, modal, right. * * @usageNotes * ``` * * ``` */ view: string; /** * An optional input parameter that specifies whether to show your executor. * Usually used when you have a slideup or right executor view * * @usageNotes * ``` * * ``` */ show: boolean; /** * ViewChild reference to the host executor content. */ container: ElementRef; /** * Template for displaying the content of the executor title. * * @usageNotes * ``` * * * * ``` */ title: TemplateRef; /** * Template for displaying the content of the executor description. * * @usageNotes * ``` * * * * ``` */ description: TemplateRef; /** * Template for displaying the content of the executor footer. * * @usageNotes * ``` * * * * ``` */ footer: TemplateRef; /** * The output parameter that emits the class of the active page - active step. * * @usageNotes * ``` * * ``` */ onActivePageChange: EventEmitter; /** * An output parameter that conveys the current state of the stepper in modal view * * @usageNotes * ``` * * ``` */ modalStepExecutorStateChange: EventEmitter; /** * An output parameter that conveys the current state of the stepper in right view * * @usageNotes * ``` * * ``` */ rightStepExecutorStateChange: EventEmitter; _activePageInd: number; pages: MefdevExecutorPageComponent[]; constructor(renderer: Renderer2, changeDetectorRef: ChangeDetectorRef); set activePageInd(activePageNumber: number); get activePageInd(): number; get activePage(): MefdevExecutorPageComponent | null; ngAfterViewInit(): void; /** * A function that is allows to track the status of your executor in the modal view */ modalStepExecutorVisibleChange(value: boolean): void; /** * A function that is allows to track the status of your executor in the right view */ rightStepExecutorVisibleChange(value: boolean): void; /** * A function that allows you to close your executor */ closeExecutor(): void; /** * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button */ nextBtnIsDisabled(): boolean; /** * Check whether there is a next step of the executor. If we are at the last step - disable the 'next' button */ prev(): void; /** * Go back to the previous step */ cancel(): void; /** * Go to the next step */ next(): void; /** * Set a specific active page */ setActivePage(pageNumber: number): void; /** * Add new page */ addPage(page: MefdevExecutorPageComponent): void; /** * Delete a specific page */ removeSpecificPage(page: MefdevExecutorPageComponent): void; /** * Delete a page by its index */ removePageByIndex(index: number): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevStepExecutorModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class MefdevDropdownMenuComponent { private _eref; label: TemplateRef; protected isOpen: boolean; constructor(_eref: ElementRef); onClick($event: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevDropDownMenuModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Component representing a progress bar. * * Example of usage: * * ``` * * * ``` */ declare class MefDevProgressComponent { _value: number; _value2: any; /** * The type of progress bar. * Possible values: "linear" | "circle". * Default value: "linear". */ type: string; /** * The color of the progress bar. * Possible values: any valid CSS color value. * Default value: none. */ color: string; /** * Determines whether the progress bar is thick. * Default value: false. */ thick: boolean; /** * Determines whether the progress bar is indeterminate. * Default value: false. */ indeterminate: boolean; /** * The value of the progress bar. * For the "circle" type, it should be a number between 0 and 100. */ set value(value: number); get value(): number; /** * Additional value property. */ get value2(): any; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class ProgressConfig { color: string; thickness: number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class MefDevProgressModule { static forRoot(): ModuleWithProviders; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * @component * @skipTemplateDoc: true * Example of usage: * https://platform.mef.dev/ui_kit_demo/view/controls/switch */ declare class MefDevSwitchComponent implements OnInit, ControlValueAccessor { private _disabled; _prefixCls: string; _color: string; _innerPrefixCls: string; _classMap: any; _size: string; _checked: boolean; /** * Event emitted when the value of the switch changes. * * @output * @param value The new value of the switch. * * Usage example: * ``` * * ``` */ onChange: (value: boolean) => void; onTouched: () => void; /** * Sets the value of the switch. * * @input * @param value The value of the switch. * * Usage example: * ``` * * ``` */ set Value(value: boolean); /** * Sets the size of the switch. * * @input * @param value The size of the switch (e.g., "small", "large"). * * Usage example: * ``` * * ``` */ set Size(value: string); /** * Sets the color of the switch. * * @input * @param value The color of the switch (e.g., "primary", "secondary"). * * Usage example: * ``` * * ``` */ set Color(value: string); /** * Gets the current size of the switch. * * @input * @returns The size of the switch. * * Usage example: * ``` * const size = mySwitchComponent.Size; * ``` */ get Size(): string; /** * Sets the disabled state of the switch. * * @input * @param value The disabled state of the switch. * * Usage example: * ``` * * ``` */ set Disabled(value: boolean); /** * Gets the current disabled state of the switch. * * @input * @returns The disabled state of the switch. * * Usage example: * ``` * const disabled = mySwitchComponent.Disabled; * ``` */ get Disabled(): boolean; /** * Handles the click event of the switch. * * @param e The click event object. * * Usage example: * ``` * * ``` */ onClick(e: MouseEvent): void; /** * Updates the value of the switch. * * @param value The new value of the switch. * * Usage example: * ``` * this.updateValue(true); * ``` */ updateValue(value: boolean): void; /** * Sets the class map for the switch. * * Usage example: * ``` * this.setClassMap(); * ``` */ setClassMap(): void; /** * Writes a new value to the switch. * * @param value The new value of the switch. * * Usage example: * ``` * this.writeValue(true); * ``` */ writeValue(value: boolean): void; /** * Registers a callback function to be executed when the switch value changes. * * @param fn The callback function. * * Usage example: * ``` * this.registerOnChange(value => { * // Do something with the new value * }); * ``` */ registerOnChange(fn: (_: boolean) => void): void; /** * Registers a callback function to be executed when the switch is touched. * * @param fn The callback function. * * Usage example: * ``` * this.registerOnTouched(() => { * // Do something when the switch is touched * }); * ``` */ registerOnTouched(fn: () => void): void; /** * Sets the disabled state of the switch. * * @param isDisabled The disabled state of the switch. * * Usage example: * ``` * this.setDisabledState(true); * ``` */ setDisabledState(isDisabled: boolean): void; ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevSwitchModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Component representing the body of a tab, which displays the tab's content. */ declare class MefDevTabBodyComponent { /** * The content of the tab, which can be passed as a template. */ content: TemplateRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevTabLabelDirective { elementRef: ElementRef; private _disabled; set disabled(value: boolean); get disabled(): boolean; constructor(elementRef: ElementRef); getOffsetLeft(): number; getOffsetWidth(): number; getOffsetTop(): number; getOffsetHeight(): number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } type TabPositionMode$2 = 'horizontal' | 'vertical'; declare class MefDevTabsInkBarDirective { private _renderer; private _elementRef; private _ngZone; private _animated; set Animated(value: boolean); get Animated(): boolean; PositionMode: TabPositionMode$2; constructor(_renderer: Renderer2, _elementRef: ElementRef, _ngZone: NgZone); alignToElement(element: HTMLElement): void; show(): void; setDisplay(value: string): void; hide(): void; _getLeftPosition(element: HTMLElement): string; _getElementWidth(element: HTMLElement): string; _getTopPosition(element: HTMLElement): string; _getElementHeight(element: HTMLElement): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** code from https://github.com/angular/material2 */ type ScrollDirection$1 = 'after' | 'before'; /** duplicated defined https://github.com/angular/angular-cli/issues/2034 **/ type TabPositionMode$1 = 'horizontal' | 'vertical'; declare class MefDevTabsNavComponent implements AfterContentChecked, AfterContentInit { _elementRef: ElementRef; private _ngZone; private _renderer; private _dir; private _animated; private _hideBar; private _showPagination; _showPaginationControls: boolean; _disableScrollAfter: boolean; _disableScrollBefore: boolean; _scrollDistance: number; _selectedIndexChanged: boolean; _realignInkBar: Subscription | null; _tabLabelCount: number; _scrollDistanceChanged: boolean; _selectedIndex: number; _tabPositionMode: TabPositionMode$1; _tabPosition: string; Size: string; _type: string; set Animated(value: boolean); get Animated(): boolean; set Position(value: string); get Position(): string; set HideBar(value: boolean); get HideBar(): boolean; set Type(value: string); get Type(): string; _tabBarExtraContent: TemplateRef; _labelWrappers: QueryList; _inkBar: MefDevTabsInkBarDirective; _tabListContainer: ElementRef; _tabList: ElementRef; set ShowPagination(value: boolean); get ShowPagination(): boolean; set PositionMode(value: TabPositionMode$1); get PositionMode(): TabPositionMode$1; set selectedIndex(value: number); get selectedIndex(): number; constructor(_elementRef: ElementRef, _ngZone: NgZone, _renderer: Renderer2, _dir: Directionality); _onContentChanges(): void; _scrollHeader(scrollDir: ScrollDirection$1): void; ngAfterContentChecked(): void; ngAfterContentInit(): void; _updateTabScrollPosition(): void; _updatePagination(): void; _checkPaginationEnabled(): void; _scrollToLabel(labelIndex: number): void; _checkScrollingControls(): void; /** * Determines what is the maximum length in pixels that can be set for the scroll distance. This * is equal to the difference in width between the tab list container and tab header container. * * This is an expensive call that forces a layout reflow to compute box and scroll metrics and * should be called sparingly. */ _getMaxScrollDistance(): number; /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */ set scrollDistance(v: number); get scrollDistance(): number; get viewWidthHeightPix(): number; get tabListScrollWidthHeightPix(): number; get elementRefOffSetWidthHeight(): number; _getLayoutDirection(): Direction; _alignInkBarToSelectedTab(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** code from https://github.com/angular/material2 */ interface AnimatedInterface { inkBar: boolean; tabPane: boolean; } declare class TabChangeEvent { index: number; tab: MefDevTabComponent; } type TabPosition = 'top' | 'bottom' | 'left' | 'right'; type TabPositionMode = 'horizontal' | 'vertical'; type TabType = 'line' | 'fillup' | 'linetriangle'; /** * Represents a tab set or tab group component. * @example * * Tab 1 content * Tab 2 content * * * Example of usage: * https://platform.mef.dev/ui_kit_demo/view/page_components/tabset */ declare class MefDevTabSetComponent implements AfterContentChecked, OnInit, AfterViewInit { private _renderer; _el: any; _classMap: any; _prefixCls: string; _width: any; _tabPosition: TabPosition; _tabPositionMode: TabPositionMode; _indexToSelect: number | null; _selectedIndex: number | null; _isViewInit: boolean; _tabs: MefDevTabComponent[]; _tabAnimation: string; _extra_tab_class: string; _extra_tabcontent_class: string; /** * Template reference for additional content to be displayed in the tab bar. */ TabBarExtraTemplate: TemplateRef; TabBarExtraContent: TemplateRef; _tabNav: MefDevTabsNavComponent; _tabContent: ElementRef; _hostContent: ElementRef; /** * Whether the tab set is animated. Can be a boolean or an object of type AnimatedInterface. * @example * - true (enables animation for both ink bar and tab pane) * - { inkBar: true, tabPane: false } (enables animation for ink bar only) * Default: true */ Animated: AnimatedInterface | boolean; /** * Whether to show pagination controls for scrolling tabs. * @example true * Default: true */ ShowPagination: boolean; /** * Whether the tab set is hidden. * @example true * Default: false */ Hide: boolean; /** * The index of the selected tab. */ set SelectedIndex(value: number | null); get SelectedIndex(): number | null; /** * Event emitted when the selected tab index changes. * @returns An Observable emitting the index of the selected tab. */ get SelectedIndexChange(): Observable; /** * Event emitted when a tab is selected. * @example * */ SelectChange: EventEmitter; /** * Size of the tab set. Can be 'default', 'small', or 'large'. * @example 'large' * Default: 'default' */ Size: string; _type: TabType; tabs: MefDevTabComponent[]; /** * Position of the tab set. Can be 'top', 'bottom', 'left', or 'right'. */ set TabPosition(value: TabPosition); get TabPosition(): TabPosition; /** * Additional CSS class for the tabs. */ set extraTabClass(value: string); /** * Additional CSS class for the tab content. */ set extraTabContentClass(value: string); /** * Type of the tab set. Can be 'line', 'fillup', or 'linetriangle'. */ set Type(value: TabType); /** * Animation to apply to the tabs. Accepts CSS animation name. */ set tabAnimation(value: string); get Type(): TabType; _setPosition(value: TabPosition): void; _setClassMap(): void; /** * Selects the tab at the specified index. * @param index The index of the tab to select. * ``` * *``` */ clickLabel(index: number): void; ngOnInit(): void; ngAfterContentChecked(): void; ngAfterViewInit(): void; private _createChangeEvent; get inkBarAnimated(): boolean; get tabPaneAnimated(): boolean; constructor(_renderer: Renderer2); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevTabComponent implements OnDestroy, OnInit { private MefDevTabSetComponent; private disabled; position: number | null; origin: number | null; /** * Sets the disabled state of the tab. *```html * * ``` */ set Disabled(value: boolean); /** * Gets the disabled state of the tab. */ get Disabled(): boolean; /** * Event emitted when the tab is selected. *```html * * ``` */ pgSelect: EventEmitter; /** * Event emitted when the tab is clicked. *```html * * ``` */ pgClick: EventEmitter; /** * Event emitted when the tab is deselected. *```html * *``` */ pgDeselect: EventEmitter; /** * Reference to the template for the tab heading. */ _tabHeading: TemplateRef; /** * Reference to the template for the tab content. */ _content: TemplateRef; /** * Gets the template for the tab content. *```html * *``` */ get content(): TemplateRef | null; constructor(MefDevTabSetComponent: MefDevTabSetComponent); /** * Initializes the tab component. */ ngOnInit(): void; /** * Cleans up resources when the tab component is destroyed. */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MefDevTabsModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } type AccordionDisplayMode = 'default' | 'flat'; type AccordionTogglePosition = 'before' | 'after'; interface AccordionBase extends CdkAccordion { hideToggle: boolean; displayMode: AccordionDisplayMode; togglePosition: AccordionTogglePosition; _handleHeaderKeydown: (event: KeyboardEvent) => void; _handleHeaderFocus: (header: any) => void; } declare const ACCORDION: InjectionToken; interface ExpansionPanelBase extends CdkAccordionItem { hideToggle: boolean; } declare const MD_EXPANSION_PANEL: InjectionToken; declare class MDExpansionPanelContent { _template: TemplateRef; _expansionPanel: ExpansionPanelBase | null; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** Visual state of the panel used by host bindings/classes. */ type ExpansionPanelState = 'expanded' | 'collapsed'; /** Optional DI defaults for panel behavior and look. */ interface ExpansionPanelDefaultOptions { expandedHeight: string; collapsedHeight: string; hideToggle: boolean; } /** Injection token for providing default expansion-panel options. */ declare const EXPANSION_PANEL_DEFAULT_OPTIONS: InjectionToken; declare class MDExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges, OnDestroy { /** View container for lazily attaching projected content via portals. */ private _viewContainerRef; /** Global animation toggle for this component instance. */ private readonly _animationsDisabled; /** Document reference for focus containment checks. */ private _document; /** NgZone to run listeners outside Angular and re-enter only on emit. */ private _ngZone; /** Host element ref for event binding and CSS class toggles. */ private _elementRef; /** Renderer used to register `transitionend` listeners. */ private _renderer; /** Cleanup function returned by Renderer2.listen; called on destroy. */ private _cleanupTransitionEnd; /** Whether the toggle indicator should be hidden (local or inherited). */ get hideToggle(): boolean; set hideToggle(value: boolean); private _hideToggle; /** Toggle position relative to header content (local or inherited). */ get togglePosition(): AccordionTogglePosition; set togglePosition(value: AccordionTogglePosition); private _togglePosition; /** Fires after the expand transition completes. */ readonly afterExpand: EventEmitter; /** Fires after the collapse transition completes. */ readonly afterCollapse: EventEmitter; /** Emits whenever any @Input changes (for consumers to react). */ readonly _inputChanges: Subject; /** Optional parent accordion context (if inside an accordion). */ accordion: AccordionBase; /** Lazily-projected body content (). */ _lazyContent: MDExpansionPanelContent; /** Body host element (focus containment & transition target). */ _body: ElementRef; /** Wrapper element that handles the grid/height transition. */ protected _bodyWrapper: ElementRef | undefined; /** Portal wrapping the lazy content; created on first open. */ _portal: TemplatePortal; /** Header id for aria-controls/label association. */ _headerId: string; constructor(); /** Host CSS helper: spacing only in default display mode when expanded. */ _hasSpacing(): boolean; /** Map boolean expanded flag to the public state union. */ _getExpandedState(): ExpansionPanelState; /** Programmatic toggle (overrides base to flip expanded flag). */ toggle(): void; /** Programmatic close. */ close(): void; /** Programmatic open. */ open(): void; /** Set up lazy content portal and animation listeners once content is ready. */ ngAfterContentInit(): void; /** Forward raw input changes to a Subject for external observers. */ ngOnChanges(changes: SimpleChanges): void; /** Cleanup listeners and subjects. */ ngOnDestroy(): void; /** Whether the current document focus is inside the panel body. */ _containsFocus(): boolean; /** * Transitionend handler: * - Ensures we react only to the body wrapper's grid-height transition. * - Emits the appropriate afterExpand/afterCollapse event inside Angular. */ private _transitionEndListener; /** * Registers animation listeners: * - In no-animation mode, emit completion events immediately on state streams. * - Otherwise, add a `transitionend` listener and a CSS class to enable transitions, * after a short timeout so the initial render settles. */ protected _setupAnimationEvents(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_hideToggle: unknown; } /** * Simple action-row wrapper for projected buttons/links inside the panel body. * Provides a stable class hook for styling. */ declare class ExpansionPanelActionRow { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Header component for an expansion panel. * - Acts as the interactive control (button role) that toggles the panel. * - Manages aria attributes and keyboard interaction. * - Syncs with parent accordion/panel inputs and emits change detection marks. */ declare class MDExpansionPanelHeader implements AfterViewInit, OnDestroy, FocusableOption { /** Owning panel (injected from host). */ panel: MDExpansionPanel; /** Host element reference (focus & DOM ops). */ private _element; /** FocusMonitor for origin-aware focus management. */ private _focusMonitor; /** Marks for check on state changes (OnPush). */ private _changeDetectorRef; /** Subscriptions to panel/accordion streams. */ private _parentChangeSubscription; constructor(); /** Custom height when the panel is expanded (CSS length). */ expandedHeight: string; /** Custom height when the panel is collapsed (CSS length). */ collapsedHeight: string; /** * Keyboard tab stop order for the header. * Normalized via numberAttribute; defaults to 0 if null/undefined. */ tabIndex: number; /** Whether the header is effectively disabled (delegates to panel). */ get disabled(): boolean; /** Click/keyboard toggle handler. */ _toggle(): void; /** Current expanded state as boolean. */ _isExpanded(): boolean; /** Expanded state string used by templates/host bindings. */ _getExpandedState(): string; /** ID of the associated panel body (for aria-controls). */ _getPanelId(): string; /** Toggle indicator placement relative to header content. */ _getTogglePosition(): AccordionTogglePosition; /** Whether to show the toggle indicator (inherits hideToggle/disabled). */ _showToggle(): boolean; /** Compute header height based on state and provided inputs. */ _getHeaderHeight(): string | null; /** Keydown handler: Space/Enter toggles; delegate others to accordion. */ _keydown(event: KeyboardEvent): void; /** FocusableOption implementation with origin-aware focus. */ focus(origin?: FocusOrigin, options?: FocusOptions): void; /** Start monitoring focus and notify accordion when header gains focus. */ ngAfterViewInit(): void; /** Cleanup subscriptions and focus monitoring. */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_tabIndex: unknown; } /** Projected description container inside the header (styling hook). */ declare class ExpansionPanelDescription { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** Projected title container inside the header (styling hook). */ declare class ExpansionPanelTitle { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Accordion container that coordinates multiple expansion panels. * - Provides the ACCORDION token for children to read common settings. * - Manages roving focus across panel headers with FocusKeyManager. * - Filters projected headers so only this accordion’s own headers are managed. */ declare class MDAccordion extends CdkAccordion implements AccordionBase, AfterContentInit, OnDestroy { /** Keyboard manager for roving focus (Home/End/Arrow navigation). */ private _keyManager; /** * Local QueryList containing only headers owned by this accordion. * We derive it from `_headers` because projected content could include * nested accordions or headers belonging to another parent. */ private _ownHeaders; /** All descendant headers from projected content (may include foreign ones). */ _headers: QueryList; /** Hides the toggle arrow/indicator on all child panels. */ hideToggle: boolean; /** Display mode that affects spacing/styling of panels. */ displayMode: AccordionDisplayMode; /** Placement of the toggle indicator relative to header content. */ togglePosition: AccordionTogglePosition; /** After content init, filter and wire focus management. */ ngAfterContentInit(): void; /** Delegate keydown from a header to the key manager (arrow/home/end handling). */ _handleHeaderKeydown(event: KeyboardEvent): void; /** Update the active item when a particular header gains focus. */ _handleHeaderFocus(header: MDExpansionPanelHeader): void; /** Tear down key manager and QueryList on destroy; call base cleanup too. */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_hideToggle: unknown; } declare const components: (typeof ExpansionPanelActionRow)[]; declare class MDCollapseModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Public API type that controls the overall visual style of the card. * - `'outlined'` — draws an outline around the card. * - `'raised'` — default look with elevation (shadow). * - `'filled'` — filled background emphasis. */ type CardAppearance = 'outlined' | 'raised' | 'filled'; /** * Optional DI-provided configuration for MDCard defaults. * Allows setting application-wide defaults without touching each instance. */ interface CardConfig { /** Default appearance applied to all cards unless overridden per instance. */ appearance?: CardAppearance; } /** * Injection token for providing a global {@link CardConfig}. * * @example App-wide default * ```ts * providers: [{ provide: CARD_CONFIG, useValue: { appearance: 'filled' } as CardConfig }] * ``` */ declare const CARD_CONFIG: InjectionToken; /** * Root Card component. * * @remarks * - Renders a Material Design–like card container. * - Applies host CSS classes based on the {@link appearance} input. * - Reads optional defaults from DI via {@link CARD_CONFIG}. * * Template & styles: * - `templateUrl: 'card.html'` — defines the card structure/slots. * - `styleUrl: 'card.scss'` — variants and section styling. * * Performance: * - `ChangeDetectionStrategy.OnPush` to minimize change detection work. * * Export: * - `exportAs: 'mdCard'` — allows `#card="mdCard"` in templates. */ declare class MDCard { /** * Controls the visual style of the card. * * @default 'outlined' (or {@link CARD_CONFIG}.appearance if provided) * @ignore */ appearance: CardAppearance; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Title directive. * * @example * ```html * Title *
Title
*
Title
* ``` * * Adds a semantic class for styling the title area. */ declare class MDCardTitle { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Title group component. * Encapsulates grouped title-related content (e.g., title + subtitle + avatar). * Template is defined in `card-title-group.html`. */ declare class MDCardTitleGroup { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Content directive for the main textual/body area of the card. * * @example * ```html * ... * ``` */ declare class MDCardContent { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Subtitle directive. * * @example * ```html * Subtitle *
Subtitle
*
Subtitle
* ``` * * Adds a semantic class for styling the subtitle text. */ declare class MDCardSubtitle { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Actions directive. * Represents the action row (e.g., buttons) at the bottom or top of a card. * * Host classes: * - Base: `'mdc-card-actions mdc-card__actions'` * - If `align === 'end'`, also applies `'mdc-card-actions-align-end'`. */ declare class MDCardActions { /** * Controls horizontal alignment of actions. * - `'start'` — actions align to the start edge * - `'end'` — actions align to the end edge * * @default 'start' * * @example * ```html * * * * ``` */ align: 'start' | 'end'; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Header component. * A dedicated container for card header content (e.g., avatar, title/subtitle group). * Template is defined in `card-header.html`. */ declare class MDCardHeader { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Footer directive. * A semantic area for card footers—secondary info, meta, or supplementary actions. */ declare class MDCardFooter { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Image directive (default size). * Applies media-related classes to display a cover/media area inside the card. * * @example * ```html *
*
* ``` * * Note: Actual sizing (height/ratio) should be defined in `card.scss`. */ declare class MDCardImage { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Small image directive. * Adds the same base media classes; size differences should be implemented in CSS. */ declare class MDCardSmImage { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Medium image directive. * Adds the same base media classes; size differences should be implemented in CSS. */ declare class MDCardMdImage { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Large image directive. * Adds the same base media classes; size differences should be implemented in CSS. */ declare class MDCardLgImage { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Extra-large image directive. * Adds the same base media classes; size differences should be implemented in CSS. */ declare class MDCardXlImage { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Avatar directive. * Intended for small, typically circular images near the title/header area. * The concrete size/shape should be controlled via CSS (e.g., width/height/border-radius). */ declare class MDCardAvatar { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDCardModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading'; type DialogRole = 'dialog' | 'alertdialog'; interface DialogPosition { top?: string; bottom?: string; left?: string; right?: string; } declare class MefDevDialogConfig { viewContainerRef?: ViewContainerRef; injector?: Injector; id?: string; role?: DialogRole; panelClass?: string | string[]; hasBackdrop?: boolean; backdropClass?: string | string[]; disableClose?: boolean; closePredicate?: (result: Result | undefined, config: Config, componentInstance: Component | null) => boolean; width?: string; height?: string; minWidth?: number | string; minHeight?: number | string; maxWidth?: number | string; maxHeight?: number | string; position?: DialogPosition; data?: D | null; direction?: Direction; ariaDescribedBy?: string | null; ariaLabelledBy?: string | null; ariaLabel?: string | null; ariaModal?: boolean; autoFocus?: AutoFocusTarget | string | boolean; restoreFocus?: boolean; delayFocusTrap?: boolean; scrollStrategy?: ScrollStrategy; closeOnNavigation?: boolean; enterAnimationDuration?: string | number; exitAnimationDuration?: string | number; animationPosition?: 'top' | 'right' | 'bottom' | 'left'; } /** Legacy-style animation event payload used by the dialog service/ref. */ interface LegacyDialogAnimationEvent { state: 'opened' | 'opening' | 'closing' | 'closed'; totalTime: number; } declare class MDDialogContainer extends CdkDialogContainer implements OnDestroy { /** Emits animation lifecycle states understood by the dialog ref. */ _animationStateChanged: EventEmitter; /** Master flag to enable/disable animations for this container instance. */ _animationsEnabled: boolean; /** Count of projected action sections (affects layout class). */ protected _actionSectionCount: number; /** Cached host element for class and style mutations. */ private _hostElement; /** Effective enter animation duration derived from config (or defaults). */ private _enterAnimationDuration; /** Effective exit animation duration derived from config (or defaults). */ private _exitAnimationDuration; /** Timer id for open/close fallback completion. */ private _animationTimer; /** After content is attached, kick off the open animation. */ protected _contentAttached(): void; /** Optional position modifier class for origin-based animations. */ private ANIMATION_POSITION_CLASS; /** Starts the open animation sequence and emits "opening". */ private _startOpenAnimation; /** Public entrypoint called by the ref to start the close sequence. */ _startExitAnimation(): void; /** Tracks action sections; used to toggle a host layout class. */ _updateActionSectionCount(delta: number): void; /** Finishes open sequence: clear classes and emit "opened". */ private _finishDialogOpen; /** Finishes close sequence: clear classes and emit "closed". */ private _finishDialogClose; /** Removes transient animation classes (and optional position class). */ private _clearAnimationClasses; /** * Sets/refreshes a timeout to complete the animation sequence. This acts as a * fallback when relying on CSS transitions without guaranteed end events. */ private _waitForAnimationToComplete; /** * Schedules a callback on the next animation frame, outside Angular, * to ensure CSS transitions are applied predictably. */ private _requestAnimationFrame; /** Focus handling after content attachment depending on `delayFocusTrap` config. */ protected _captureInitialFocus(): void; /** Called when open animation completes to emit "opened" and (optionally) trap focus. */ protected _openAnimationDone(totalTime: number): void; /** Cleanup any pending timers on destroy. */ ngOnDestroy(): void; /** * Decorates the root component host element with a class so that card/panel * styles can target it specifically when used inside a dialog. */ attachComponentPortal(portal: ComponentPortal): ComponentRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Internal finite state for a dialog's lifecycle. * - OPEN: visible and interactive * - CLOSING: exit animation playing or teardown in progress * - CLOSED: fully closed and resources released */ declare enum DialogState { OPEN = 0, CLOSING = 1, CLOSED = 2 } /** * Strongly-typed wrapper around CDK's DialogRef with MEF/MD container integration. * * Responsibilities: * - Expose open/close lifecycle streams (afterOpened, beforeClosed, afterClosed). * - Respect `disableClose`, ESC and backdrop click behavior. * - Start/await container animations and provide a fallback close timeout. * - Bridge size/position/panel class updates to the underlying CDK dialog. * - Track the interaction type (mouse/keyboard) that triggered close for focus restoration. */ declare class MefDevDialogRef { /** Underlying CDK dialog ref. */ private _ref; /** Immutable configuration used to open this dialog. */ private _config; /** Reference to the container component that hosts animations and structure. */ _containerInstance: MDDialogContainer; /** Instance of the component hosted inside the dialog (if opened via component). */ componentInstance: T; /** Low-level componentRef for advanced users (null for TemplateRef opens). */ readonly componentRef: ComponentRef | null; /** When true, ESC and backdrop click won't close the dialog. */ disableClose: boolean | undefined; /** Dialog id (auto-generated unless provided in config). */ id: string; /** Emits once when the dialog has finished its enter animation. */ private readonly _afterOpened; /** Emits right before the dialog starts closing (with the result). */ private readonly _beforeClosed; /** Cached result passed to `close(result)`; emitted via afterClosed. */ private _result; /** Fallback timer that triggers `_finishDialogClose` if animation events don't arrive. */ private _closeFallbackTimeout; /** Current lifecycle state of the dialog. */ private _state; /** Input modality that caused the close (used for focus origin on restore). */ private _closeInteractionType; constructor( /** Underlying CDK dialog ref. */ _ref: DialogRef, /** Immutable configuration used to open this dialog. */ _config: MefDevDialogConfig, /** Reference to the container component that hosts animations and structure. */ _containerInstance: MDDialogContainer); /** * Programmatically close the dialog with an optional result. * Respects an optional `closePredicate` to veto the close. */ close(dialogResult?: R): void; /** Stream that emits once the dialog is fully opened (after enter animation). */ afterOpened(): Observable; /** Stream that emits the result after the dialog is fully closed and disposed. */ afterClosed(): Observable; /** Stream that emits right before the dialog starts closing with the result (if any). */ beforeClosed(): Observable; /** Backdrop click stream (useful for custom close logic / analytics). */ backdropClick(): Observable; /** Keydown stream scoped to the dialog overlay (e.g., listen for ESC). */ keydownEvents(): Observable; /** * Updates the dialog position. If top/bottom or left/right are not provided, * the dialog will be centered on that axis. */ updatePosition(position?: DialogPosition): this; /** Updates dialog width/height (CSS length values, e.g. '600px', '80vh'). */ updateSize(width?: string, height?: string): this; /** Adds one or more CSS classes to the overlay panel. */ addPanelClass(classes: string | string[]): this; /** Removes one or more CSS classes from the overlay panel. */ removePanelClass(classes: string | string[]): this; /** Returns the current lifecycle state of the dialog. */ getState(): DialogState; /** * Finalizes the closing sequence: * - Sets state to CLOSED * - Closes underlying CDK ref (emits afterClosed with the result) * - Clears strong reference to the component instance */ private _finishDialogClose; } /** * Helper to close a dialog and tag the close with the interaction origin. * Used by default ESC/backdrop handlers to restore focus appropriately. */ declare function _closeDialogVia(ref: MefDevDialogRef, interactionType: FocusOrigin, result?: R): void; /** Injection token used to pass arbitrary data into a dialog instance. */ declare const DIALOG_DATA: InjectionToken; /** Token for providing global/default dialog configuration. */ declare const DIALOG_DEFAULT_OPTIONS: InjectionToken>; /** * Token that provides a factory for the scroll strategy used by dialogs. * Defaults to `createBlockScrollStrategy` which prevents body scrolling while a dialog is open. */ declare const DIALOG_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>; /** * High-level dialog service wrapping CDK Dialog with MDC/MEF-specific defaults. * * Features: * - Merges provided config with app-level defaults. * - Creates a global centered position strategy by default. * - Emits streams for "after opened" and "after all closed". * - Keeps a stack of open dialogs and coordinates teardown. * - Bridges to a custom `MDDialogContainer` and `MefDevDialogRef`. */ declare class MDDialog implements OnDestroy { /** Optional application-wide defaults injected via `DIALOG_DEFAULT_OPTIONS`. */ private _defaultOptions; /** Factory for the body scroll strategy while a dialog is open. */ private _scrollStrategy; /** Optional parent dialog service (supports hierarchical injectors / lazy modules). */ private _parentDialog; /** Id generator for dialog instances. */ private _idGenerator; /** Root injector needed for CDK helpers (position strategy, etc.). */ private _injector; /** Underlying CDK Dialog service. */ protected _dialog: Dialog; /** Global flag to disable dialog enter/exit animations. */ private _animationsDisabled; /** Stack of open dialogs at the current injector level. */ private readonly _openDialogsAtThisLevel; /** Completes after the last dialog at this level has been closed. */ private readonly _afterAllClosedAtThisLevel; /** Emits each time a dialog is opened at this level. */ private readonly _afterOpenedAtThisLevel; /** Class reference used for providing config to the container. */ protected dialogConfigClass: typeof MefDevDialogConfig; /** Concrete types used to construct dialog refs/containers and provide DIALOG_DATA. */ private readonly _dialogRefConstructor; private readonly _dialogContainerType; private readonly _dialogDataToken; /** Public list of open dialogs (delegates to parent if present). */ get openDialogs(): MefDevDialogRef[]; /** Stream that emits after each dialog is opened (delegates to parent if present). */ get afterOpened(): Subject>; /** Internal accessor for the "after all closed" subject (handles parent delegation). */ private _getAfterAllClosed; /** * Emits when all dialogs (in this hierarchy) are closed. * If there are no open dialogs at subscription time, it emits once immediately. */ readonly afterAllClosed: Observable; constructor(); /** Overload signatures for component vs template dialogs. */ open(component: ComponentType, config?: MefDevDialogConfig): MefDevDialogRef; open(template: TemplateRef, config?: MefDevDialogConfig): MefDevDialogRef; open(template: ComponentType | TemplateRef, config?: MefDevDialogConfig): MefDevDialogRef; /** Closes all currently open dialogs (in stack order). */ closeAll(): void; /** Finds an open dialog by id (if any). */ getDialogById(id: string): MefDevDialogRef | undefined; /** On service destroy, close dialogs owned at this injector level and complete streams. */ ngOnDestroy(): void; /** Helper that iterates and closes dialogs without changing array identity. */ private _closeDialogs; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Button-like directive that closes the nearest dialog when clicked. * * Usage: * * * * - It tries to inject the current MefDevDialogRef; if not available, * it finds the nearest dialog container in the DOM and resolves the ref from MDDialog.openDialogs. * - On click, it calls `_closeDialogVia` with an interaction origin ('mouse' or 'keyboard') * so the focus can be restored appropriately. */ declare class MDDialogClose implements OnInit, OnChanges { /** Injected dialog ref when available (undefined if used outside projected dialog content). */ dialogRef: MefDevDialogRef; /** Host element reference (used for DOM traversal when ref is not injected). */ private _elementRef; /** Dialog service used to access `openDialogs` for fallback lookup. */ private _dialog; /** Optional aria-label for the closing button. */ ariaLabel: string; /** Native button type; defaults to "button" to avoid accidental form submit. */ type: 'submit' | 'button' | 'reset'; /** Preferred input for a close result (dash-cased attribute). */ dialogResult: any; /** CamelCased alias of the same input (kept for API parity & template style). */ dialogClose: any; constructor(); /** Resolve dialogRef if it wasn't injected (e.g., directive used in a nested view). */ ngOnInit(): void; /** Mirror `dialogClose` into `dialogResult` when either input changes. */ ngOnChanges(changes: SimpleChanges): void; /** Click handler: close the dialog and tag the interaction origin for focus restoration. */ _onButtonClick(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Base class for directives that represent structural sections within a dialog * (e.g., title area, actions area). It: * - Resolves the dialog ref by injection or DOM traversal. * - Calls `_onAdd()` when attached to the DOM (after microtask) so the container * can update ARIA attributes or layout counts. * - Calls `_onRemove()` when destroyed so the container can revert those changes. */ declare abstract class DialogLayoutSection implements OnInit, OnDestroy { /** Reference to the owning dialog (if any). */ protected _dialogRef: MefDevDialogRef; /** Host element reference for DOM traversal fallback. */ private _elementRef; /** Dialog service used for fallback dialog lookup. */ private _dialog; constructor(...args: unknown[]); /** Hook for subclasses to add themselves to the container (e.g., ARIA wiring, layout counters). */ protected abstract _onAdd(): void; /** Hook for subclasses to remove themselves from the container. */ protected abstract _onRemove(): void; ngOnInit(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Dialog title directive. * * - Adds semantic/title classes to the host. * - Generates a unique id that is used to label the dialog via `aria-labelledby`. * - Notifies the container to add/remove this id from its aria-labelledby list. */ declare class MDDialogTitle extends DialogLayoutSection { /** Unique id used by the container for aria-labelledby. */ id: string; /** Register this title id with the container for a11y. */ protected _onAdd(): void; /** Unregister this title id on destroy. */ protected _onRemove(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Scrollable content section of the dialog. * - Applies MDC content classes. * - Attaches `CdkScrollable` so consumers/tools can query/observe scroll. */ declare class MDDialogContent { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Action row of the dialog (typically hosts buttons). * - Applies alignment classes based on `align` input. * - Notifies the container about the presence of an actions section so it can * adjust layout (e.g., paddings, separators). */ declare class MDDialogActions extends DialogLayoutSection { /** Horizontal alignment for the action buttons. */ align?: 'start' | 'center' | 'end'; /** Tell the container an actions section was added. */ protected _onAdd(): void; /** Tell the container an actions section was removed. */ protected _onRemove(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDModalModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Marks an embedded template as the label for a step. * * Usage: * Custom label * * Extends Angular CDK's CdkStepLabel so the stepper can project * and render this template in the step header area. */ declare class MDStepLabel extends CdkStepLabel { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Context passed into a custom stepper icon template. * Consumers can use these values inside the template to * render state-aware icons (e.g., different glyphs/colors). */ interface StepperIconContext { /** 0-based index of the step. */ index: number; /** True if this step is currently active/selected. */ active: boolean; /** True if this step is marked as optional. */ optional: boolean; } /** * Marks an as a custom icon for a particular step state. * * Usage: * * * * * * Bind the `stepperIcon` input to one of the StepState values * (e.g., 'number' | 'edit' | 'done' | 'error'), and the stepper * will project this template when the step is in that state. */ declare class MDStepperIcon { /** Reference to the provided template, instantiated by the stepper as needed. */ templateRef: TemplateRef; /** Step state that this icon template should represent. */ name: StepState; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Marks an as the content for a step. * Usage: * ... * * The directive exposes the underlying TemplateRef so parent * components (e.g., a stepper) can instantiate it on demand. */ declare class MDStepContent { /** Reference to the template to be rendered for this step. */ _template: TemplateRef; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDStepFooter { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } type MDPaginatedStepHeaderItem = FocusableOption & { elementRef: ElementRef; }; /** * ErrorStateMatcher that shows errors only once a control is dirty * (or when the parent form was submitted). Useful for “show on edit”. */ declare class ShowOnDirtyErrorStateMatcher implements StepperErrorStateMatcher { isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Default StepperErrorStateMatcher used across the stepper. * Marks error when a control is invalid and touched, or the form is submitted. */ declare class StepperErrorStateMatcher { isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Single step inside the stepper. * - Extends CdkStep and plugs in lazy content via . * - Provides StepperErrorStateMatcher so the step can decide its own error state. */ declare class MDStep extends CdkStep implements StepperErrorStateMatcher, AfterContentInit, OnDestroy { /** Parent-provided matcher used as a baseline in isErrorState. */ private _errorStateMatcher; /** View container used to create a portal for lazy content. */ private _viewContainerRef; /** Subscription to selected-state changes (to attach lazy content). */ private _isSelected; /** Optional projected label for the step header. */ stepLabel: MDStepLabel; /** Optional lazy body content template: */ _lazyContent: MDStepContent; /** Portal instance created when the step first becomes selected. */ _portal: TemplatePortal; /** Attach lazy content when this step becomes selected for the first time. */ ngAfterContentInit(): void; /** Cleanup subscription on destroy. */ ngOnDestroy(): void; /** * StepperErrorStateMatcher implementation for this step. * Combines the injected default matcher with “interacted” state so that * a step can show errors after the user interacted with the step controls. */ isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * The stepper container that manages a sequence of md-step children. * - Handles orientation, header/label positioning, and animations. * - Tracks and emits animation lifecycle. * - Supports custom icon overrides via . */ declare class MDStepper extends CdkStepper implements AfterViewInit, AfterContentInit, AfterViewChecked, OnDestroy { /** Run transition listeners outside Angular for perf. */ private _ngZone; /** Used to set up/tear down transitionend listeners. */ private _renderer; /** Disable animations flag (useful for testing or SSR). */ private _animationsDisabled; /** Cleanup handle for the transitionend listener. */ private _cleanupTransition; /** Reactive animating flag used by host binding. */ protected _isAnimating: i0.WritableSignal; /** Step headers rendered by this component's own template. */ private _renderedStepHeaders; /** Animated containers used to detect when transitions finish. */ _animatedContainers: QueryList; /** All descendant steps (supports nested usage; CdkStepper handles scoping). */ _steps: QueryList; /** Public alias of _steps used by base class. */ readonly steps: QueryList; /** Any custom icon templates projected via mdStepperIcon. */ _icons: QueryList; /** Emits when a view transition animation has completed. */ readonly animationDone: EventEmitter; footer: MDStepFooter; /** Horizontal label position (end/bottom when orientation is horizontal). */ labelPosition: 'bottom' | 'end'; /** Step header position (top/bottom). */ headerPosition: 'top' | 'bottom'; /** Map of step state → custom icon template overrides. */ _iconOverrides: Record>; /** Duration for transitions (e.g. "500ms" | "0ms"). */ get animationDuration(): string; set animationDuration(value: string); private _animationDuration; /** SSR guard (avoid DOM APIs when not in browser). */ protected _isServer: boolean; private _sharedResizeObserver; constructor(); /** * After content init: * - Collect custom icon templates. * - React to step list changes to recalc state. * - Toggle animating flag on selected index changes and prepare CSS listeners. */ ngAfterContentInit(): void; ngAfterViewChecked(): void; private _stopScrolling; private _eventCleanups; private _stepLabelCount; private changeDetectorRef; private _platform; disablePagination: boolean; _stepHeaderElRef: ElementRef; _stepListContainer: ElementRef; _stepList: ElementRef; _stepListInner: ElementRef; _nextPaginator: ElementRef; _previousPaginator: ElementRef; private _scrollDistanceChanged; private _scrollDistance; _showPaginationControls: boolean; _disableScrollAfter: boolean; _disableScrollBefore: boolean; get scrollDistance(): number; set scrollDistance(value: number); _handlePaginatorClick(direction: ScrollDirection$1): void; _handlePaginatorPress(direction: ScrollDirection$1, mouseEvent?: MouseEvent): void; _scrollHeader(direction: ScrollDirection$1): { maxScrollDistance: number; distance: number; }; _stopInterval(): void; private _scrollSelectedLabelIntoView; _scrollToLabel(labelIndex: number): void; private _getScrollPositionForRange; private _findPreviousClippedLabelRange; private _findNextClippedLabelRange; private _getVisibleRange; private _getLabelRanges; private _itemsResized; private _scrollTo; _checkScrollingControls(): void; _getMaxScrollDistance(): number; _updateTabScrollPosition(): void; updatePagination(): void; _checkPaginationEnabled(): void; /** * After view init: * - Emit initial animationDone once containers are rendered. * - Recompute alignment/layout on container list changes. */ ngAfterViewInit(): void; /** Tear down transition listener on destroy. */ ngOnDestroy(): void; /** Resolve the effective animation duration string applied to CSS. */ _getAnimationDuration(): string; /** * Global transitionend handler: * - Detects the active animated container based on orientation and CSS properties. * - Calls _onAnimationDone when the relevant transition completes. */ private _handleTransitionend; /** Clear the animating flag and emit animationDone to consumers. */ private _onAnimationDone; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Button directive that advances the stepper to the next step. * * Usage: * * * Extends CDK's CdkStepperNext; this wrapper only provides * a semantic selector and host classes/attrs for styling. */ declare class MDStepperNext extends CdkStepperNext { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Button directive that moves the stepper to the previous step. * * Usage: * * * Extends CDK's CdkStepperPrevious; this wrapper only provides * a semantic selector and host classes/attrs for styling. */ declare class MDStepperPrevious extends CdkStepperPrevious { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Intl/i18n service for the stepper. * Holds user-facing strings and exposes a `changes` stream so components * can re-render when labels are updated at runtime. */ declare class StepperIntl { /** Emits whenever any of the labels change. Consumers should mark for check on emission. */ readonly changes: Subject; /** Label shown next to steps that are marked as optional. */ optionalLabel: string; /** Label used to announce or describe completed steps. */ completedLabel: string; /** Label indicating that a step is editable. */ editableLabel: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Factory that returns the closest parent StepperIntl if available, * otherwise creates a new instance. * * This allows apps/libraries to provide a single shared StepperIntl * higher in the injector tree and have all steppers reuse it. */ declare function STEPPER_INTL_PROVIDER_FACTORY(parentIntl: StepperIntl): StepperIntl; /** * Provider that prefers an ancestor StepperIntl, falling back to a fresh one * created via the factory above when none is found. * * Usage in a module or component: * providers: [STEPPER_INTL_PROVIDER] */ declare const STEPPER_INTL_PROVIDER: { provide: typeof StepperIntl; deps: Optional[][]; useFactory: typeof STEPPER_INTL_PROVIDER_FACTORY; }; /** * Header (tab) for a step in the stepper. * Responsibilities: * - Renders label, state icon/text, and optional/error hints. * - Manages focus (including origin-aware focus for a11y styling). * - Reacts to i18n changes from StepperIntl and marks for check. */ declare class MDStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy { /** Stepper i18n service (emits when labels change). */ _intl: StepperIntl; /** Focus monitor to track focus origin on the host element. */ private _focusMonitor; /** Subscription to StepperIntl changes for OnPush CD. */ private _intlSubscription; /** Visual/logical state of this step (e.g., 'number' | 'done' | 'error' | 'edit'). */ state: StepState; /** Label can be a template (MDStepLabel) or plain string. */ label: MDStepLabel | string; /** Error message displayed when state === 'error'. */ errorMessage: string; /** Optional templates to override the default icons by state. */ iconOverrides: { [key: string]: TemplateRef; }; /** 0-based index of the step within the stepper. */ index: number; /** Whether this step is selected (active tab). */ selected: boolean; /** Whether this step is currently active (focused/engaged). */ active: boolean; /** Marks the step as optional (affects label rendering). */ optional: boolean; constructor(); /** Begin monitoring focus on the header to apply origin-aware styles. */ ngAfterViewInit(): void; /** Cleanup subscriptions and focus monitoring. */ ngOnDestroy(): void; /** * Programmatic focus with optional origin (mouse/keyboard/touch/program). * Falls back to direct focus if no origin is provided. */ focus(origin?: FocusOrigin, options?: FocusOptions): void; /** Returns string label if provided directly, otherwise null. */ _stringLabel(): string | null; /** Returns template label if provided, otherwise null. */ _templateLabel(): MDStepLabel | null; /** Host element getter used by base classes/templates. */ _getHostElement(): HTMLElement; /** * Default text for built-in states when an icon template isn’t provided. * - 'number' → (index + 1) as text * - 'edit' → 'create' * - 'error' → 'warning' * - otherwise returns the state string itself */ _getDefaultTextForState(state: StepState): string; /** True if no label, no optional/error labels — used for styling empty headers. */ protected _hasEmptyLabel(): boolean; /** True if the step is optional and not in error state. */ protected _hasOptionalLabel(): boolean; /** True if the current state is 'error'. */ protected _hasErrorLabel(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MDStepExecutorModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } type MenuPositionX = 'before' | 'after'; type MenuPositionY = 'above' | 'below'; declare const MD_MENU_CONTENT: InjectionToken; declare class MDMenuContent implements OnDestroy { private _template; private _appRef; private _injector; private _viewContainerRef; private _document; private _changeDetectorRef; private _portal; private _outlet; readonly _attached: Subject; constructor(); attach(context?: any): void; detach(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare const MD_MENU_PANEL: InjectionToken>; interface MDMenuPanel { xPosition: MenuPositionX; yPosition: MenuPositionY; overlapTrigger: boolean; animationsDisabled: boolean; templateRef: TemplateRef; readonly close: EventEmitter; parentMenu?: MDMenuPanel | undefined; direction?: Direction; focusFirstItem: (origin?: FocusOrigin) => void; resetActiveItem: () => void; setPositionClasses?: (x: MenuPositionX, y: MenuPositionY) => void; setElevation?(depth: number): void; lazyContent?: MDMenuContent; backdropClass?: string; overlayPanelClass?: string | string[]; hasBackdrop?: boolean; readonly panelId?: string; addItem?: (item: T) => void; removeItem?: (item: T) => void; } declare class MDMenuItem implements FocusableOption, AfterViewInit, OnDestroy { private _elementRef; private _document; private _focusMonitor; _parentMenu?: MDMenuPanel | null | undefined; private _changeDetectorRef; role: 'menuitem' | 'menuitemradio' | 'menuitemcheckbox'; disabled: boolean; disableRipple: boolean; readonly _hovered: Subject; readonly _focused: Subject; _highlighted: boolean; _triggersSubmenu: boolean; constructor(); focus(origin?: FocusOrigin, options?: FocusOptions): void; ngAfterViewInit(): void; ngOnDestroy(): void; _getTabIndex(): string; _getHostElement(): HTMLElement; _checkDisabled(event: Event): void; _handleMouseEnter(): void; getLabel(): string; _setHighlighted(isHighlighted: boolean): void; _setTriggersSubmenu(triggersSubmenu: boolean): void; _hasFocus(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_disableRipple: unknown; } type MenuCloseReason = void | 'click' | 'keydown' | 'tab'; interface MDMenuDefaultOptions { xPosition: MenuPositionX; yPosition: MenuPositionY; overlapTrigger: boolean; backdropClass: string; overlayPanelClass?: string | string[]; hasBackdrop?: boolean; } declare const MD_MENU_DEFAULT_OPTIONS: InjectionToken; declare class MDMenu implements AfterContentInit, MDMenuPanel, OnInit, OnDestroy { private _elementRef; private _changeDetectorRef; private _injector; private _keyManager; private _xPosition; private _yPosition; private _firstItemFocusRef?; private _exitFallbackTimeout; _allItems: QueryList; _directDescendantItems: QueryList; _classList: { [key: string]: boolean; }; _panelAnimationState: 'void' | 'enter'; readonly _animationDone: Subject<"void" | "enter">; _isAnimating: i0.WritableSignal; parentMenu: MDMenuPanel | undefined; direction: Direction; overlayPanelClass: string | string[]; animationsDisabled: boolean; backdropClass: string; ariaLabel: string; ariaLabelledby: string; ariaDescribedby: string; get xPosition(): MenuPositionX; set xPosition(value: MenuPositionX); get yPosition(): MenuPositionY; set yPosition(value: MenuPositionY); templateRef: TemplateRef; items: QueryList; lazyContent: MDMenuContent; overlapTrigger: boolean; hasBackdrop?: boolean; set panelClass(classes: string); private _previousPanelClass; get classList(): string; set classList(classes: string); readonly closed: EventEmitter; readonly close: EventEmitter; readonly panelId: string; constructor(); ngOnInit(): void; ngAfterContentInit(): void; ngOnDestroy(): void; _hovered(): Observable; addItem(_item: MDMenuItem): void; removeItem(_item: MDMenuItem): void; _handleKeydown(event: KeyboardEvent): void; focusFirstItem(origin?: FocusOrigin): void; resetActiveItem(): void; setElevation(_depth: number): void; setPositionClasses(posX?: MenuPositionX, posY?: MenuPositionY): void; protected _onAnimationDone(state: string): void; protected _onAnimationStart(state: string): void; _setIsOpen(isOpen: boolean): void; private _updateDirectDescendants; private _resolvePanel; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_overlapTrigger: unknown; static ngAcceptInputType_hasBackdrop: any; } declare const MD_MENU_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>; declare const MENU_PANEL_TOP_PADDING = 8; declare abstract class MDMenuTriggerBase implements OnDestroy { private readonly _canHaveBackdrop; protected _element: ElementRef; private _viewContainerRef; protected _menuItemInstance: MDMenuItem; private _dir; private _focusMonitor; private _ngZone; private _injector; private _scrollStrategy; private _changeDetectorRef; private _portal; protected _overlayRef: OverlayRef | null; private _menuOpen; private _closingActionsSubscription; private _menuCloseSubscription; private _pendingRemoval; protected _parentMenu: MDMenu | undefined; protected _openedBy: Exclude | undefined; abstract menuData: any; abstract restoreFocus: boolean; protected get _menu(): MDMenuPanel | null; protected set _menu(menu: MDMenuPanel | null); private _menuInternal; abstract menuOpened: EventEmitter; abstract menuClosed: EventEmitter; protected abstract _getOverlayOrigin(): FlexibleConnectedPositionStrategyOrigin; protected abstract _getOutsideClickStream(overlayRef: OverlayRef): Observable; constructor(_canHaveBackdrop: boolean); ngOnDestroy(): void; get menuOpen(): boolean; get dir(): Direction; protected _triggersSubmenu(): boolean; protected _closeMenu(): void; protected _openMenu(autoFocus: boolean): void; focus(origin?: FocusOrigin, options?: FocusOptions): void; protected _destroyMenu(reason: MenuCloseReason): void; private _setIsMenuOpen; private _createOverlay; private _getOverlayConfig; private _subscribeToPositions; private _setPosition; private _menuClosingActions; private _getPortal; private _ownsMenu; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDMenuTrigger extends MDMenuTriggerBase implements AfterContentInit, OnDestroy { private _cleanupTouchstart; private _hoverSubscription; get _deprecatedMDMenuTriggerFor(): MDMenuPanel | null; set _deprecatedMDMenuTriggerFor(v: MDMenuPanel | null); get menu(): MDMenuPanel | null; set menu(menu: MDMenuPanel | null); menuData: any; restoreFocus: boolean; readonly menuOpened: EventEmitter; readonly onMenuOpen: EventEmitter; readonly menuClosed: EventEmitter; readonly onMenuClose: EventEmitter; constructor(); triggersSubmenu(): boolean; toggleMenu(): void; openMenu(): void; closeMenu(): void; updatePosition(): void; ngAfterContentInit(): void; ngOnDestroy(): void; protected _getOverlayOrigin(): i0.ElementRef; protected _getOutsideClickStream(overlayRef: OverlayRef): rxjs.Observable; _handleMousedown(event: MouseEvent): void; _handleKeydown(event: KeyboardEvent): void; _handleClick(event: MouseEvent): void; private _handleHover; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDContextMenuTrigger extends MDMenuTriggerBase implements OnDestroy { private _point; private _triggerPressedControl; private _rootNode; private _document; private _viewportRuler; private _scrollDispatcher; private _scrollSubscription; get menu(): MDMenuPanel | null; set menu(menu: MDMenuPanel | null); menuData: any; restoreFocus: boolean; disabled: boolean; readonly menuOpened: EventEmitter; readonly menuClosed: EventEmitter; constructor(); ngOnDestroy(): void; protected _handleContextMenuEvent(event: MouseEvent): void; protected _destroyMenu(reason: MenuCloseReason): void; protected _getOverlayOrigin(): { x: number; y: number; initialX: number; initialY: number; initialScrollX: number; initialScrollY: number; }; protected _getOutsideClickStream(overlayRef: OverlayRef): rxjs.Observable; private _isWithinMenuOrTrigger; private _openContextMenu; private _initializePoint; private _updatePosition; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_disabled: unknown; } declare class MDMenuModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class MDOptionGroup { /** Visible group header shown above the contained options. */ label: string; /** * Disables the entire group (non-interactive/inert rendering). * @default false */ disabled: boolean; /** * Unique id used to associate the rendered label with the grouped options for a11y. * Useful as `aria-labelledby` target on the options container. */ _labelId: string; /** * Internal flag for templates to make the group non-interactive without altering ARIA. * Can be toggled by the parent template if additional gating is needed. * @internal */ _inert: boolean; /** * Optional reference to the parent select; useful for contextual checks in the template. * Kept for side-effects/context only; not required for basic grouping behavior. */ constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; } /** Visual states for the pseudo checkbox glyph. */ type PseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate'; declare class PseudoCheckbox { /** * Visual state of the glyph. * Affects host classes only; no behavior is implied. * @default 'checked' */ state: PseudoCheckboxState; /** * Applies a disabled look. * Parent/consumer is responsible for actual interactivity. * @default false */ disabled: boolean; /** * Size/style variant of the glyph. * - `'minimal'` — compact indicator * - `'full'` — standard checkbox visuals * @default 'full' */ appearance: 'minimal' | 'full'; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MDPseudoCheckboxModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Event payload emitted when an option's selection state changes. * * @template T Model value type. */ declare class MDOptionSelectionChange { source: MDOption; isUserInput: boolean; constructor(source: MDOption, isUserInput?: boolean); } declare class MDOption { /** Host element reference for focus & DOM access. */ private _element; /** Change detector for OnPush-friendly manual marks. */ _changeDetectorRef: ChangeDetectorRef; /** Optional parent select to derive `multiple` and for coordination. */ private _parent; /** Optional parent group to inherit disabled state. */ group: MDOptionGroup | null; /** Internal selection state. */ private _selected; /** Internal active (highlighted) state used by typeahead/keyboard nav. */ private _active; /** Model value associated with this option. */ value: T; /** Unique id for the option (used by host/id bindings). */ id: string; /** * Disabled state: `true` if the group is disabled OR the individual disabled signal is `true`. * Group-level disabled takes precedence and is observed reactively. */ get disabled(): boolean; set disabled(value: boolean); /** Internal reactive flag for individual disabled state. */ private _disabled; /** Whether the parent select is in multi-selection mode. */ get multiple(): boolean | null; /** Public read-only selection flag. */ get selected(): boolean; /** Emits whenever selection state changes (user or programmatic). */ readonly onSelectionChange: EventEmitter>; /** * Reference to the visible text node inside option. * Used to compute {@link viewValue} / {@link getLabel}. */ _text: ElementRef | undefined; /** Stream used by parent components to observe state changes. */ readonly _stateChanges: Subject; constructor(); /** Whether this option is currently "active" (keyboard highlight). */ get active(): boolean; /** * Select this option programmatically. * @param emitEvent When `true` (default), emits {@link onSelectionChange}. */ select(emitEvent?: boolean): void; /** * Handle keyboard selection: `ENTER`/`SPACE` toggles selection * when no modifier keys are pressed. */ _handleKeydown(event: KeyboardEvent): void; /** * Toggle/select via click or keyboard; respects disabled and multiple modes. * Marks for check and emits user-input-flavored selection event. */ _selectViaInteraction(): void; /** * Deselect this option programmatically. * @param emitEvent When `true` (default), emits {@link onSelectionChange}. */ deselect(emitEvent?: boolean): void; /** * Move focus to this option's host element. * @param _origin Optional {@link FocusOrigin} (not used by default). * @param options Standard {@link FocusOptions}. */ focus(_origin?: FocusOrigin, options?: FocusOptions): void; /** Visible string representation of the option (trimmed text content). */ get viewValue(): string; /** Alias for {@link viewValue}; kept for API parity with other option components. */ getLabel(): string; /** Apply "active" visual styles (used by parent for keyboard navigation). */ setActiveStyles(): void; /** Remove "active" visual styles. */ setInactiveStyles(): void; /** Return the underlying host `HTMLElement`. */ _getHostElement(): HTMLElement; /** * Emit selection change payload; optionally mark as user-driven. * @param isUserInput Whether the change originated from user interaction. */ private _emitSelectionChangeEvent; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "md-option", never, { "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "onSelectionChange": "onSelectionChange"; }, never, ["icon", "*"], true, never>; static ngAcceptInputType_disabled: unknown; } /** * Count how many group labels appear before a given option index. * Useful for computing aria-posinset / active-descendant offsets when groups are present. * * @param optionIndex Index of the target option among all rendered options. * @param options `QueryList` of all `MDOption` items (in render order). * @param optionGroups `QueryList` of `MDOptionGroup` (in render order). * @returns Number of group headers preceding the option. */ declare function _countGroupLabelsBeforeOption(optionIndex: number, options: QueryList, optionGroups: QueryList): number; /** * Compute the `scrollTop` needed to bring an option fully into view inside a panel. * * @param optionOffset Distance (px) from top of panel to the top of the option. * @param optionHeight Height of the option (px). * @param currentScrollPosition Current `scrollTop` of the panel. * @param panelHeight Visible height of the panel (px). * @returns Desired `scrollTop` to ensure full visibility (or current if already visible). */ declare function _getOptionScrollPosition(optionOffset: number, optionHeight: number, currentScrollPosition: number, panelHeight: number): number; declare class MDOptionModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Returns an exception to be thrown when attempting to change a select's `multiple` option * after initialization. * @docs-private */ declare function getMDSelectDynamicMultipleError(): Error; /** * Returns an exception to be thrown when attempting to assign a non-array value to a select * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for * resetting the value. * @docs-private */ declare function getMDSelectNonArrayValueError(): Error; /** * Returns an exception to be thrown when assigning a non-function value to the comparator * used to determine if a value corresponds to an option. Note that whether the function * actually takes two values and returns a boolean is not checked. */ declare function getMDSelectNonFunctionValueError(): Error; /** Event payload emitted when the select's value changes. */ declare class SelectChange { source: MDSelect; value: T; constructor(source: MDSelect, value: T); } /** Token for projecting a custom trigger template (optional). */ declare const MD_SELECT_TRIGGER: InjectionToken; declare class MDSelect implements OnInit, OnChanges, OnDestroy, ControlValueAccessor { /** Viewport ruler for resize/orientation tracking to recompute overlay width. */ protected _viewportRuler: ViewportRuler; /** Change detector for OnPush; used throughout for manual marks. */ protected _changeDetectorRef: ChangeDetectorRef; /** Host element reference. */ readonly _elementRef: ElementRef; /** CDK Overlay service. */ readonly _overlay: Overlay; /** RTL/LTR direction (optional). */ private _dir; /** Emits once content is fully initialized. */ private _initialized; /** Control accessor hookup (if used inside forms). */ ngControl: NgControl; /** Id generator for trigger/value elements. */ private _idGenerator; /** Cleanup fn for overlay detach (animation end / fallback). */ private _cleanupDetach; /** Renderer for low-level DOM ops. */ private _renderer; /** CSS class(es) applied to the overlay panel container. */ panelClass: string | string[] | Set | { [key: string]: any; }; /** Disabled state for the whole control. */ disabled: boolean; /** Multiple selection toggle. */ get multiple(): boolean; set multiple(value: boolean); private _multiple; /** Current model value (single or array for multiple). */ get value(): any; set value(newValue: any); private _value; /** Host tabindex (applies when not disabled). */ tabIndex: number; /** * Required flag; auto-derives from `Validators.required` on the bound control * if not provided explicitly. */ get required(): boolean; set required(value: boolean); private _required; /** Custom comparator for complex option values. */ get compareWith(): (o1: any, o2: any) => boolean; set compareWith(fn: (o1: any, o2: any) => boolean); private _compareWith; /** Placeholder/label when nothing is selected. */ get placeholder(): string; set placeholder(value: string); private _placeholder; /** Allow selecting null/undefined values in single mode. */ canSelectNullableOptions: boolean; /** Optional custom sorting for selected values (multiple mode). */ sortComparator: (a: MDOption, b: MDOption, options: MDOption[]) => number; /** Emits raw value whenever internal value changes. */ readonly valueChange: EventEmitter; /** Emits {@link SelectChange} with source/value when selection changes. */ readonly selectionChange: EventEmitter>; /** Emits `true/false` when panel opens/closes. */ readonly openedChange: EventEmitter; /** Convenience stream: fires once on open. */ readonly _openedStream: Observable; /** Convenience stream: fires once on close. */ readonly _closedStream: Observable; /** Trigger element ref (default trigger template). */ trigger: ElementRef; /** Panel container ref. */ panel: ElementRef; /** Overlay directive for positioning/attach/detach. */ protected _overlayDir: CdkConnectedOverlay; /** Optional projected custom trigger via injection token. */ customTrigger: MDSelectTrigger; /** Descendant options in the content. */ options: QueryList; /** Descendant option groups in the content. */ optionGroups: QueryList; /** Preferred connected positions for overlay. */ _positions: ConnectedPosition[]; /** True when host is focused or panel is open. */ get focused(): boolean; private _focused; /** Emits when any input that affects layout/state changes. */ readonly stateChanges: Subject; /** Destroy notifier for subscriptions. */ protected readonly _destroy: Subject; /** Panel visibility flag. */ private _panelOpen; /** Computed overlay width (synced on viewport size changes). */ _overlayWidth: string | number; /** Scroll strategy for overlay panel. */ _scrollStrategy: ScrollStrategy; /** Selected options model. */ _selectionModel: SelectionModel; /** ControlValueAccessor change fn. */ _onChange: (value: any) => void; /** ControlValueAccessor touched fn. */ _onTouched: () => void; /** Keyboard manager for activeDescendant/roving focus/typeahead. */ _keyManager: ActiveDescendantKeyManager; /** Stream of child option selection events, lazily wired. */ readonly optionSelectionChanges: Observable; /** Id for the trigger value region (for aria). */ _valueId: string; /** True when no selection is present. */ get empty(): boolean; constructor(); /** Lifecycle: react to `@Input` changes (reserved for future use). */ ngOnChanges(changes: SimpleChanges): void; /** After content init: wire key manager, selection model synchronization. */ ngAfterContentInit(): void; /** Initialize selection model and subscribe to viewport changes. */ ngOnInit(): void; /** Cleanup listeners/subscriptions. */ ngOnDestroy(): void; /** Public: whether the panel is currently open. */ get panelOpen(): boolean; /** Public: current selection (single `MDOption` or array for multiple). */ get selected(): MDOption | MDOption[]; /** Human-readable value for the trigger display. */ get triggerValue(): string; writeValue(value: any): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => {}): void; /** * Disables the select. Part of the ControlValueAccessor interface required * to integrate with Angular's core forms API. * * @param isDisabled Sets whether the component is disabled. */ setDisabledState(isDisabled: boolean): void; /** Guard: can we open now (not disabled, have options, overlay ready)? */ protected _canOpen(): boolean; /** Open the panel and prepare keyboard/scroll state. */ open(): void; /** Pick initial active item on open (first enabled or selected). */ private _highlightCorrectOption; /** After attach: ensure active option is scrolled into view. */ private _positioningSettled; /** Close panel, restore orientation, mark touched, and emit. */ close(): void; /** Play exit animation (if available), then detach overlay. */ private _exitAndDetach; /** Detach overlay and request change detection. */ private _detachOverlay; /** RTL helper. */ _isRtl(): boolean; _handleKeydown(event: KeyboardEvent): void; /** When closed: open with Enter/Space; navigate single selection. */ private _handleClosedKeydown; /** When open: navigate/select, Ctrl+A (multiple), Alt+Arrow closes. */ private _handleOpenKeydown; /** For overlay container keydown (ESC closes). */ protected _handleOverlayKeydown(event: KeyboardEvent): void; /** Assign value and synchronize selection from external model. */ private _assignValue; /** Compute overlay width from host bounding box. */ private _getOverlayWidth; /** Update selection based on a (possibly array) value. */ private _setSelectionByValue; /** Find option that matches value (using compareWith) and select it. */ private _selectOptionByValue; /** Move focus to host (useful after closing). */ focus(options?: FocusOptions): void; /** Default container click behavior: focus + open. */ onContainerClick(): void; /** Initialize selection from bound form control or internal value. */ private _initializeSelection; /** Skip disabled options while panel is closed (for key manager). */ private _skipPredicate; /** Ensure a given option index is fully visible inside the panel. */ _scrollOptionIntoView(index: number): void; /** Wire option streams and handle user-driven selection/changes. */ private _resetOptions; /** Handle a single option's (de)selection and propagate changes. */ private _onSelect; /** Sort selected values using custom comparator or DOM order. */ private _sortValues; /** Build `SelectChange` payload. */ private _getChangeEvent; /** Emit valueChange, call CVA onChange, emit selectionChange, mark for check. */ private _propagateChanges; /** Initialize keyboard manager for navigation, typeahead, and tabOut. */ private _initKeyManager; /** `aria-activedescendant` points to the active option when panel is open. */ _getAriaActiveDescendant(): string | null; /** Focus-in handler: set focused state (unless disabled). */ _onFocus(): void; /** Focus-out handler: mark touched when closed; cancel typeahead. */ _onBlur(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_multiple: unknown; static ngAcceptInputType_tabIndex: unknown; static ngAcceptInputType_required: unknown; static ngAcceptInputType_canSelectNullableOptions: unknown; } /** Optional directive to project a custom trigger area for the select. */ declare class MDSelectTrigger { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDSelectModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class BaseEditableHolder implements ControlValueAccessor { /** Change detector used by children to mark for check after updates. */ cd: ChangeDetectorRef; /** * Reactive internal value for the control (Signal). * @default undefined */ modelValue: i0.WritableSignal; /** * Optional "required" flag as a signalized input. * @remarks Value is transformed via `booleanAttribute`. */ required: i0.InputSignalWithTransform; /** * Optional "invalid" flag as a signalized input (used for UI state). * @remarks Value is transformed via `booleanAttribute`. */ invalid: i0.InputSignalWithTransform; /** * Disabled input as a signal (explicit/external). * @remarks Value is transformed via `booleanAttribute`. */ disabled: i0.InputSignalWithTransform; /** Optional control name (useful for forms & a11y attributes). */ name: i0.InputSignal; /** * Internal disabled state set via CVA's `setDisabledState`. * @default false * @internal */ _disabled: i0.WritableSignal; /** * Effective disabled state: * `true` if either the input `disabled()` is truthy OR `setDisabledState(true)` was called. */ $disabled: i0.Signal; /** CVA onChange callback (assigned by Angular Forms). */ onModelChange: Function; /** CVA onTouched callback (assigned by Angular Forms). */ onModelTouched: Function; /** * Programmatically set the internal disabled state (used by `setDisabledState`). * @param value New disabled state. */ writeDisabledState(value: boolean): void; /** * Overridable hook invoked by `writeValue`. * Child components can coerce or transform incoming values here. * Call `setModelValue(value)` to persist. * * @param value Incoming value from the external model. * @param setModelValue Callback to update the internal `modelValue`. * @protected */ protected writeControlValue(value: any, setModelValue?: (value: any) => void): void; /** * CVA: writes an external value into the control. * Delegates to {@link writeControlValue} so children can customize behavior. * * @param value Value coming from the Angular Forms model. */ writeValue(value: any): void; /** * Updates the internal value signal (`modelValue`) from the component itself * (e.g., on user input). This does **not** notify the Forms API by itself. * Invoke {@link onModelChange} after this to propagate when appropriate. * * @param value New internal value to set. */ writeModelValue(value: any): void; /** * CVA: registers the callback to propagate value changes to Angular Forms. * @param fn Callback invoked when the control's value changes. */ registerOnChange(fn: Function): void; /** * CVA: registers the callback to mark the control as touched. * @param fn Callback invoked when the control is touched. */ registerOnTouched(fn: Function): void; /** * CVA: enables/disables the control from the Forms API. * @param val `true` to disable, `false` to enable. */ setDisabledState(val: boolean): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDSwitch extends BaseEditableHolder implements OnInit, OnDestroy, ControlValueAccessor { /** * Backing unique id used as a default for {@link id}. * @internal */ private _uniqueId; /** * Host element id. Can be overridden by the consumer. * @default auto-generated value like `"slide-toggle-..."` */ id: string; /** * Keyboard tab order for the internal input. * @remarks Value is transformed via `numberAttribute`. */ tabindex: number | undefined; /** * Read-only mode: prevents user interaction while still allowing focus. * @remarks Value is transformed via `booleanAttribute`. */ readonly: boolean | undefined; /** * Host click handler. * * @param event Browser `MouseEvent`. * @remarks Delegates to {@link _handleClick}. * @internal */ onHostClick(event: MouseEvent): void; /** * Emits when the user toggles the switch via UI interaction. * * @example * ```html * * ``` */ onChange: EventEmitter; /** * Template reference to the internal input element (for focus management). * @internal */ input: ElementRef; /** * Focus ring helper for template/styles. * @internal */ focused: boolean; constructor(); /** Lifecycle: initialization (reserved for future use). */ ngOnInit(): void; /** * Synchronous validator hook (provided via `NG_VALIDATORS`). * @remarks Currently a stub. */ validate(): void; /** Lifecycle: teardown (reserved for future use). */ ngOnDestroy(): void; /** * ControlValueAccessor: write an external value into the component. * * @param value Value coming from the form model. * @param setModelValue Callback to update the base class model value. * @remarks Calls `markForCheck` to ensure change detection runs. */ writeControlValue(value: any, setModelValue: (value: any) => void): void; /** Focus-in handler (called from the template). */ onFocus(): void; /** * Focus-out handler (called from the template). * @remarks Triggers `onModelTouched()` for forms. */ onBlur(): void; /** * Centralized click logic: * - toggles the model via `BaseEditableHolder`; * - calls `onModelChange()` for the form; * - emits {@link onChange} with details; * - returns focus to the input for accessible keyboard flow. * * @param event Original browser `Event`. * @internal */ _handleClick(event: Event): void; /** * Convenience getter for host class binding. * @returns Current checked state. */ checked(): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_tabindex: unknown; static ngAcceptInputType_readonly: unknown; } /** * Event emitted by {@link MDSwitch} on user-initiated change. */ interface ToggleSwitchChangeEvent { /** Original browser event. */ originalEvent: Event; /** New checked state. */ checked: boolean; } declare class MDSwitchModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** Direction to scroll the header when paginating. */ type ScrollDirection = 'after' | 'before'; /** * Contract for focusable tab header items used by the header. * Must expose an `elementRef` for measurement/positioning. */ type PaginatedTabHeaderItem = FocusableOption & { elementRef: ElementRef; }; declare abstract class PaginatedTabHeader implements AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy { /** Root host element (the header wrapper). */ protected _elementRef: ElementRef; /** For OnPush marking when values change. */ protected _changeDetectorRef: ChangeDetectorRef; /** Viewport ruler for resize/scrollbar metrics. */ private _viewportRuler; /** Optional RTL service to flip layout. */ private _dir; /** For running timers/listeners outside Angular. */ private _ngZone; /** Platform detection (legacy engines). */ private _platform; /** Efficient ResizeObserver sharing. */ private _sharedResizeObserver; /** Injector for `afterNextRender` scheduling. */ private _injector; /** Renderer for native event listeners & styles. */ private _renderer; /** Cleanup callbacks for host-level listeners. */ private _eventCleanups; /** List of focusable items (tab labels). */ abstract _items: QueryList; /** Ink bar API for alignment/hide. */ abstract _inkBar: { hide: () => void; alignToElement: (element: HTMLElement) => void; }; /** Container that clips the scrollable tab list. */ abstract _tabListContainer: ElementRef; /** The horizontally translated list element. */ abstract _tabList: ElementRef; /** Inner list wrapper used for measurements. */ abstract _tabListInner: ElementRef; /** Next paginator button element. */ abstract _nextPaginator: ElementRef; /** Previous paginator button element. */ abstract _previousPaginator: ElementRef; /** Current horizontal scroll translation in px (LTR positive moves content left). */ private _scrollDistance; /** Flag to know when selectedIndex changed between content checks. */ private _selectedIndexChanged; /** Teardown notifier for streams. */ protected readonly _destroyed: Subject; /** Whether to render/show pagination controls. */ _showPaginationControls: boolean; /** Disable "scroll after" paginator. */ _disableScrollAfter: boolean; /** Disable "scroll before" paginator. */ _disableScrollBefore: boolean; /** Cached count of tab labels to detect additions/removals. */ private _tabLabelCount; /** Marker to apply pending scroll distance change to DOM. */ private _scrollDistanceChanged; /** Keyboard manager for roving focus. */ protected _keyManager: FocusKeyManager | undefined; /** Used to detect text-content changes affecting layout. */ private _currentTextContent; /** Emits when auto-scrolling should stop (mouseleave or end). */ private _stopScrolling; hideInkBar: boolean; /** * Disable pagination and force-fit all tabs (no scroll). * @default false */ disablePagination: boolean; /** * Currently selected tab index (drives ink bar & scroll-to-visible). */ get selectedIndex(): number; set selectedIndex(v: number); private _selectedIndex; /** * Emits requested selection when user presses Enter/Space on a focused tab. * Consumers typically update `selectedIndex` in response. */ readonly selectFocusedIndex: EventEmitter; /** Emits when focus moves to a different tab header item. */ readonly indexFocused: EventEmitter; constructor(); /** * Subclass must implement: what happens when user "selects" * the focused item via keyboard (Enter/Space). */ protected abstract _itemSelected(event: KeyboardEvent): void; /** Lifecycle: attach touch handlers for press-and-hold scrolling. */ ngAfterViewInit(): void; /** Lifecycle: set up keyboard manager, observers and initial alignment. */ ngAfterContentInit(): void; /** * Observe when any header item has (re)measured to a non-zero size. * Helps re-evaluate pagination after lazy content/label changes. */ private _itemsResized; /** Lifecycle: react to item count/selection/scroll changes and flush DOM updates. */ ngAfterContentChecked(): void; /** Lifecycle: teardown listeners/streams. */ ngOnDestroy(): void; /** * Handle keydown on the header container. * Space/Enter select the focused tab; arrows/home/end are delegated to the key manager. */ _handleKeydown(event: KeyboardEvent): void; /** Called when projected content text changes may affect layout/widths. */ _onContentChanges(): void; /** Recompute pagination state and apply current scroll position. */ updatePagination(): void; /** Index of the currently focused item in the key manager. */ get focusIndex(): number; set focusIndex(value: number); /** Returns whether the given index is valid for the items list. */ _isValidIndex(index: number): boolean; /** * Moves focus to a given tab and ensures it is visible within the scroll container. * Also snaps container scroll to an edge (LTR/RTL) to avoid native scroll drift. */ _setTabFocus(tabIndex: number): void; /** Current layout direction derived from `Directionality`. */ _getLayoutDirection(): Direction; /** Applies the current scroll transform to the tab list element. */ _updateTabScrollPosition(): void; /** Current scroll distance (px). Setting it clamps to valid range and flags for DOM update. */ get scrollDistance(): number; set scrollDistance(value: number); /** Scrolls the header to the start of the next/previous item where possible. */ _scrollHeader(direction: ScrollDirection): { maxScrollDistance: number; distance: number; }; /** Single-click paginator handler. */ _handlePaginatorClick(direction: ScrollDirection): void; /** * Ensures the tab at `labelIndex` is fully visible within the scroll range. * Adjusts `scrollDistance` as needed based on LTR/RTL calculations. */ _scrollToLabel(labelIndex: number): void; private _getVisibleRange; private _getItemRanges; private _findPreviousItemRange; private _findNextItemRange; /** Evaluates whether pagination controls should be shown based on content width. */ _checkPaginationEnabled(): void; /** Enables/disables paginator buttons based on current scroll position. */ _checkScrollingControls(): void; /** Maximum scrollable distance of the tab list (px). */ _getMaxScrollDistance(): number; /** Aligns the ink bar to the selected tab or hides it if no selection. */ _alignInkBarToSelectedTab(): void; /** Stops any ongoing auto-scroll interval. */ _stopInterval(): void; /** * Handles press-and-hold on a paginator button for continuous scrolling. * Uses a delay before repeating to avoid accidental long-press. */ _handlePaginatorPress(direction: ScrollDirection, mouseEvent?: MouseEvent): void; /** * Clamps and applies a new scroll position. * @returns The max scroll distance and the clamped distance for convenience. */ private _scrollTo; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_disablePagination: unknown; static ngAcceptInputType_selectedIndex: unknown; } declare class TabBodyPortal extends CdkPortalOutlet implements OnInit, OnDestroy { /** The owning tab body that drives attach/detach. */ private _host; /** Subscription to the "before centering" notifier. */ private _centeringSub; /** Subscription to the "after leaving center" notifier. */ private _leavingSub; constructor(); /** Wires up listeners to mount/unmount the portal at the right lifecycle moments. */ ngOnInit(): void; /** Cleans up subscriptions and outlet resources. */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** Position of a tab body relative to the active (center) body. */ type TabBodyPositionState = 'left' | 'center' | 'right'; /** Direction from which the tab body originated (reserved for animations). */ type TabBodyOriginState = 'left' | 'right'; declare class MDTabBody implements OnInit, OnDestroy { /** Host element reference for class toggles and measurement. */ private _elementRef; /** Optional bidi service to map positions in RTL. */ private _dir; /** For scheduling and transition fallback timers. */ private _ngZone; /** Injector used by `afterNextRender` callbacks. */ private _injector; /** Renderer for passive DOM event bindings (transition events). */ private _renderer; /** Stored cleanup callbacks for event listeners. */ private _eventCleanups?; /** Whether OnInit finished; used to guard transition fallbacks. */ private _initialized; /** Fallback timer to simulate transitions if needed. */ private _fallbackTimer; /** Relative position index provided by parent: -1, 0, +1, ... */ private _positionIndex; /** Directionality subscription to recompute when RTL changes. */ private _dirChangeSubscription; /** Current position state ('left' | 'center' | 'right'). */ _position: TabBodyPositionState; /** Previous position state to know if we're entering/leaving center. */ protected _previousPosition: TabBodyPositionState; /** * Emits the tab body's `clientHeight` when starting to center. * Useful for parent to resize the container. */ readonly _onCentering: EventEmitter; /** Indicates whether we're about to center (`true`) or not (`false`). */ readonly _beforeCentering: EventEmitter; /** Fires after we've left the center position. */ readonly _afterLeavingCenter: EventEmitter; /** Emits when the body has finished centering transition. */ readonly _onCentered: EventEmitter; /** Outlet that actually attaches/detaches the `TemplatePortal`. */ _portalHost: TabBodyPortal; /** Reference to the element with the transition (the inner content). */ _contentElement: ElementRef | undefined; /** The content portal to render for this tab body. */ _content: TemplatePortal; /** Duration of CSS transitions (e.g., `"500ms"`, `"0ms"`). */ animationDuration: string; /** Whether to leave the content attached when not centered. */ preserveContent: boolean; /** Background color of the tab body content. */ tabBackgroundColor: 'transparent' | 'white' | 'grey'; /** Padding of the tab body content. */ tabPadding: string; /** * Relative position index set by parent (negative = left, 0 = center, positive = right). * This setter maps index → position state considering layout direction (LTR/RTL). */ set position(position: number); constructor(); /** * Binds transition listeners and emits initial centering height if already centered. * Lifecycle: `OnInit`. */ ngOnInit(): void; /** Removes listeners, timers, and subscriptions. */ ngOnDestroy(): void; /** * Attaches listeners for CSS transition lifecycle. * These run outside Angular to avoid change detection storms. */ private _bindTransitionEvents; /** * Called when a transition starts; emits sizing and "beforeCentering" status. * Triggers `_onCentering` when entering the center position. */ private _transitionStarted; /** * Called when a transition completes; emits `_onCentered` or `_afterLeavingCenter` * depending on the current/previous positions. */ private _transitionDone; /** * Toggles the active CSS class for the currently selected tab body. * @param isActive Whether this body is currently active (centered). */ _setActiveClass(isActive: boolean): void; /** Resolves current layout direction (LTR/RTL). */ _getLayoutDirection(): Direction; /** True when this body is the centered (active) one. */ _isCenterPosition(): boolean; /** * Maps the numeric index to a semantic position state and handles fallback simulation * in cases where animations are disabled or the transition might not fire. * * @param dir Optional direction override; defaults to current {@link Directionality}. */ private _computePositionAnimationState; /** Fires synthetic transitionstart/transitionend callbacks in sequence. */ private _simulateTransitionEvents; /** Whether animations are effectively disabled by config. */ private _animationsDisabled; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Configuration options for the Tabs module. * * @remarks * Provide this via the {@link TABS_CONFIG} injection token at the app or feature level. * Each field is optional; omit to use component defaults. * * @example Provide defaults app-wide * ```ts * bootstrapApplication(AppComponent, { * providers: [ * { provide: TABS_CONFIG, useValue: { * animationDuration: '250ms', * fitInkBarToContent: true, * alignTabs: 'center' * } as TabsConfig } * ] * }); * ``` */ interface TabsConfig { /** * Duration of tab header/ink bar animations. * @example "200ms", "300ms ease-out" */ animationDuration?: string; /** * Disables header pagination arrows when there are many tabs. * If `true`, all tabs must fit without scrolling. * @default false */ disablePagination?: boolean; /** * If `true`, ink bar width matches the label content rather than the full tab. * @default false */ fitInkBarToContent?: boolean; /** * Automatically resizes the tab-body container to match the active tab's height. * @default false */ dynamicHeight?: boolean; /** * `tabindex` applied to the tab body content container for accessibility. * @default 0 */ contentTabIndex?: number; /** * Preserves inactive tab contents in the DOM instead of destroying them. * Useful for keeping component state or form controls alive. * @default false */ preserveContent?: boolean; /** * Stretches tabs to evenly fill the header width. * @default false */ stretchTabs?: boolean; /** * Horizontal alignment of tab labels in the header. * @default 'start' */ alignTabs?: 'start' | 'center' | 'end'; } /** * Injection token for providing {@link TabsConfig} defaults. * * @example Feature-level override * ```ts * @NgModule({ * providers: [{ provide: TABS_CONFIG, useValue: { stretchTabs: true } }] * }) * export class TabsFeatureModule {} * ``` * * @example Injecting the config * ```ts * @Component({...}) * export class TabsHeaderComponent { * constructor(@Inject(TABS_CONFIG) readonly cfg: TabsConfig) {} * } * ``` */ declare const TABS_CONFIG: InjectionToken; declare const TAB_CONTENT: InjectionToken; declare class MDTabContent { template: TemplateRef; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Injection token bound to the current {@link MDTabLabel} instance. * Useful for querying/injecting the label from descendants. */ declare const MD_TAB_LABEL: InjectionToken; /** Token representing the closest parent Tab instance (provided by the Tab). */ declare const MD_TAB: InjectionToken; declare class MDTabLabel extends CdkPortal { /** * Reference to the nearest parent tab instance if provided via {@link MD_TAB}. * `undefined` when used outside of a tab context. */ _closestTab: any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** Injection token for the closest parent tab-group (provided by the group). */ declare const TAB_GROUP: InjectionToken; declare class MDTab { /** View container used as the portal outlet context for tab content. */ private _viewContainerRef; /** Optional reference to the closest parent tab group (for coordination). */ _closestTabGroup: any; /** * Disables this tab. * Header becomes non-interactive and body is not focusable. * @default false */ disabled: boolean; /** * Explicit tab body provided via ``. * If absent, the component's own template (implicit content) is used. */ private _explicitContent; /** Implicit content template captured from the component template. */ _implicitContent: TemplateRef; /** Plain text label for the tab header (alternative to template label). */ textLabel: string; /** Accessible label for the tab header element. */ ariaLabel: string; /** Id of element that labels the tab header (for a11y). */ ariaLabelledby: string; /** Additional CSS class(es) applied to the label host. */ labelClass: string | string[]; /** Additional CSS class(es) applied to the body/content host. */ bodyClass: string | string[]; /** Optional id for this tab; can be used for linking and testing. */ id: string | null; /** * Custom label template projected via ``. * Setter ensures the template belongs to this tab instance. */ get templateLabel(): MDTabLabel; set templateLabel(value: MDTabLabel); private _templateLabel; /** Lazily-created portal wrapping either explicit or implicit content. */ private _contentPortal; /** Public getter for the content portal (used by parent tab group). */ get content(): TemplatePortal | null; /** Notifies parent/consumers that an input affecting rendering has changed. */ readonly _stateChanges: Subject; /** Position relative to the active tab (used for ink bar/animations). */ position: number | null; /** Index from which this tab originated during a transition. */ origin: number | null; /** Whether this tab is currently the active/selected one. */ isActive: boolean; constructor(); /** Emits `stateChanges` when key inputs mutate. */ ngOnChanges(changes: SimpleChanges): void; /** Completes internal subject to avoid leaks. */ ngOnDestroy(): void; /** Initializes the content portal using explicit or implicit template. */ ngOnInit(): void; /** Accepts a label template only if it belongs to this `MDTab` instance. */ private _setTemplateLabelInput; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; } /** * Contract that an item must implement to participate in ink-bar activation. * Typically implemented by tab header items. */ interface InkBarItemContract extends OnInit, OnDestroy { /** Reference to the host element used for positioning and class toggles. */ elementRef: ElementRef; /** * Activates the ink bar on this item, optionally animating from the * previous indicator's client rect (for smooth transitions). */ activateInkBar(previousIndicatorClientRect?: DOMRect): void; /** Deactivates the ink bar on this item. */ deactivateInkBar(): void; /** Whether the ink bar should fit the label content rather than full width. */ fitInkBarToContent: boolean; } /** * Controller for moving the ink bar between a set of items. * Keeps track of the currently active item and coordinates activation/deactivation. */ declare class InkBar { private _items; private _currentItem; /** * @param _items QueryList of items that can host the ink bar. */ constructor(_items: QueryList); /** Hides the ink bar and clears the current item reference. */ hide(): void; /** * Aligns the ink bar to the given element, if there is a corresponding item. * Performs a smooth transition from the previously active item when possible. * * @param element Host element to align the ink bar with. */ alignToElement(element: HTMLElement): void; } /** * Abstract base for an element that can host an ink bar. * Responsible for creating/attaching the indicator DOM and handling transitions. */ declare abstract class InkBarItem implements OnInit, OnDestroy { /** Host element reference. */ private _elementRef; /** Root element of the ink bar indicator. */ private _inkBarElement; /** Inner content element of the ink bar (underline). */ private _inkBarContentElement; /** Whether the ink bar attaches to content width instead of full host width. */ private _fitToContent; /** * When `true`, append the ink bar inside `.mdc-tab__content` to fit label width, * otherwise append directly to the host for full-width underline. */ get fitInkBarToContent(): boolean; set fitInkBarToContent(newValue: boolean); /** * Activates the ink bar and, if `previousIndicatorClientRect` is provided, * animates from the previous position/width for a smooth transition. */ activateInkBar(previousIndicatorClientRect?: DOMRect): void; /** Deactivates the ink bar from this host item. */ deactivateInkBar(): void; /** Lifecycle: create the indicator DOM on init. */ ngOnInit(): void; /** Lifecycle: remove indicator DOM on destroy. */ ngOnDestroy(): void; /** Creates the ink bar root and content elements and appends them. */ private _createInkBarElement; /** * Appends the ink bar into the appropriate container depending on * {@link fitInkBarToContent} value. */ private _appendInkBarElement; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_fitInkBarToContent: unknown; } /** * Computes the left/width style values for positioning an ink bar * under the given element. */ interface _InkBarPositioner { /** * @param element Host element to measure. * @returns CSS `left` and `width` values (in pixels with `px` suffix). */ (element: HTMLElement): { left: string; width: string; }; } /** * Factory returning a default ink bar positioner based on `offsetLeft/offsetWidth`. * Useful as the default strategy; can be overridden via DI. */ declare function INK_BAR_POSITIONER_FACTORY(): _InkBarPositioner; /** * Injection token for providing an ink bar positioner function. * * @example Override in a module * ```ts * providers: [ * { provide: INK_BAR_POSITIONER, useFactory: myCustomPositionerFactory } * ] * ``` * * @example Inject and use * ```ts * constructor(@Inject(INK_BAR_POSITIONER) private pos: _InkBarPositioner) {} * ``` */ declare const INK_BAR_POSITIONER: InjectionToken<_InkBarPositioner>; declare class MDTabLabelWrapper extends InkBarItem { /** Native element reference for focus & measurement. */ elementRef: ElementRef; /** * Disables the tab label (affects CSS and sets `aria-disabled`). * @default false */ disabled: boolean; /** Programmatically moves focus to the label element. */ focus(): void; /** Horizontal offset used to position the ink bar. */ getOffsetLeft(): number; /** Element width used to size the ink bar. */ getOffsetWidth(): number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_disabled: unknown; } declare class MDTabHeader extends PaginatedTabHeader implements AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy { /** All direct tab label wrappers (no deep descendants). */ _items: QueryList; /** Container element around the scrolling tab list (used for clipping/scroll). */ _tabListContainer: ElementRef; /** The scrollable tab list element. */ _tabList: ElementRef; /** Inner wrapper of the tab list (helps with measurements). */ _tabListInner: ElementRef; /** Next-page paginator button element (when overflow occurs). */ _nextPaginator: ElementRef; /** Previous-page paginator button element (when overflow occurs). */ _previousPaginator: ElementRef; /** Ink bar instance responsible for active-underline positioning. */ _inkBar: InkBar; /** Accessible name for the tablist region (if no external labelling). */ ariaLabel: string; /** Id of element that labels this tablist for a11y. */ ariaLabelledby: string; /** * After content is available, initialize the ink bar with current items * and let the base header wire scrolling/pagination behaviors. */ ngAfterContentInit(): void; /** * Keyboard selection handler at the header level. * Prevents default browser behavior; actual selection logic is handled * by the parent container or the base class. */ protected _itemSelected(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } type LegacySize = 'small' | 'medium' | 'large'; /** Interface exposed by tab header implementations used by the group. */ interface TabGroupBaseHeader { _alignInkBarToSelectedTab(): void; updatePagination(): void; focusIndex: number; } /** Where to render the tab header relative to the body. */ type TabHeaderPosition = 'above' | 'below'; declare class MDTabGroup implements AfterViewInit, AfterContentInit, AfterContentChecked, OnDestroy { /** Root element ref for size/host-class interactions. */ readonly _elementRef: ElementRef; private _changeDetectorRef; private _ngZone; /** Subscriptions to various tab/label/body change streams. */ private _tabsSubscription; private _tabLabelSubscription; private _tabBodySubscription; /** All candidate tabs in content (including nested); filtered to own group below. */ _allTabs: QueryList; /** Projected tab body components and wrapper/child references. */ _tabBodies: QueryList | undefined; _tabBodyWrapper: ElementRef; _tabHeader: MDTabHeader; /** Tabs belonging to this group (excludes nested/foreign groups). */ _tabs: QueryList; /** Next index requested by inputs/user actions; reconciled each content check. */ private _indexToSelect; /** Last header-focused tab index (for roving tabindex). */ private _lastFocusedTabIndex; /** Cached wrapper height for dynamicHeight animations. */ private _tabBodyWrapperHeight; isLegacyMode: boolean; hideInkBar: boolean; legacySize: LegacySize; tabBackgroundColor: 'transparent' | 'white' | 'grey'; tabPadding: string; get legacySizeClass(): string; c(val: any): any; /** * Fit ink bar width to the text content of the label rather than the full tab. * @default false */ get fitInkBarToContent(): boolean; set fitInkBarToContent(value: boolean); private _fitInkBarToContent; /** * Stretch tabs across the header row (attribute alias). * @alias stretch-tabs * @default true */ stretchTabs: boolean; /** * Alignment of tab headers: `'start' | 'center' | 'end'` (attribute alias). * @alias align-tabs * @default null (use header default) */ alignTabs: string | null; /** Animate container height to fit active body. @default false */ dynamicHeight: boolean; /** * Two-way bound selected index. * @remarks Setter stores a pending request; actual selection happens during checks. */ get selectedIndex(): number | null; set selectedIndex(value: number); private _selectedIndex; /** Header position relative to body. @default 'above' */ headerPosition: TabHeaderPosition; animationDisabled: boolean; /** * Duration applied to transitions; accepts `'500ms'` or number (ms). * Numbers are normalized to `"Xms"`. * @default '500ms' (or DI default) */ get animationDuration(): string; set animationDuration(value: string | number); private _animationDuration; /** * `tabindex` for the active tab content container. * @default null (browser default) */ get contentTabIndex(): number | null; set contentTabIndex(value: number); private _contentTabIndex; /** Disable header pagination controls and related layout. @default false */ disablePagination: boolean; /** Reserved flag for ripple styling/integration. @default false */ disableRipple: boolean; /** Keep inactive tab bodies attached in the DOM. @default false */ preserveContent: boolean; /** A11y labeling for the tablist region. */ ariaLabel: string; ariaLabelledby: string; /** Emits when selected index changes (two-way binding helper). */ readonly selectedIndexChange: EventEmitter; /** Emits when header focus changes between tabs (keyboard nav). */ readonly focusChange: EventEmitter; /** Emits after content wrapper height animation completes. */ readonly animationDone: EventEmitter; /** * Emits when a new tab is selected (async; not emitted on initial render). * @see selectedIndexChange for 2-way binding signal. */ readonly selectedTabChange: EventEmitter; /** Group id used for aria-controls/label linking. */ private _groupId; /** SSR guard to avoid DOM operations when not in the browser. */ protected _isServer: boolean; constructor(); /** * Reconcile desired index with available tabs; update selection & positions. * Emits change events and manages wrapper height for smooth transitions. */ ngAfterContentChecked(): void; /** Wire up tabs list and labels after initial content projection. */ ngAfterContentInit(): void; /** Watch body list to keep active class centered after view init. */ ngAfterViewInit(): void; /** Filter nested tabs and keep only those belonging to this group. */ private _subscribeToAllTabChanges; /** Cleanup resources. */ ngOnDestroy(): void; /** Realign ink bar to the current selected tab. */ realignInkBar(): void; /** Recompute pagination (e.g., after resize). */ updatePagination(): void; /** Move focus to a specific tab header index. */ focusTab(index: number): void; /** Emits `focusChange` when header focus moves. */ _focusChanged(index: number): void; /** Creates a reusable change event object for selection/focus updates. */ private _createChangeEvent; /** Subscribe to label/template changes to trigger CD when they update. */ private _subscribeToTabLabels; /** Ensure the target index is within `[0, tabs.length - 1]`. */ private _clampTabIndex; /** Build a unique id for each tab label element (aria-labelledby). */ _getTabLabelId(tab: MDTab, index: number): string; /** Build a unique id for each tab content region (aria-controls). */ _getTabContentId(index: number): string; /** Manage body wrapper height during `dynamicHeight` animations. */ _setTabBodyWrapperHeight(tabHeight: number): void; /** Clear height lock and emit `animationDone` once the cycle completes. */ _removeTabBodyWrapperHeight(): void; /** Handle header click: focus header item and (if enabled) select it. */ _handleClick(tab: MDTab, tabHeader: TabGroupBaseHeader, index: number): void; /** Roving tabindex: only selected/last-focused tab is tabbable. */ _getTabIndex(index: number): number; /** When header item receives non-mouse focus, update `focusIndex`. */ _tabFocusChanged(focusOrigin: FocusOrigin, index: number): void; /** Toggle active class on bodies when centering is enabled. */ protected _bodyCentered(isCenter: boolean): void; /** Disable animations when duration is explicitly zero. */ protected _animationsDisabled(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_fitInkBarToContent: unknown; static ngAcceptInputType_stretchTabs: unknown; static ngAcceptInputType_dynamicHeight: unknown; static ngAcceptInputType_selectedIndex: unknown; static ngAcceptInputType_contentTabIndex: unknown; static ngAcceptInputType_disablePagination: unknown; static ngAcceptInputType_disableRipple: unknown; static ngAcceptInputType_preserveContent: unknown; } /** Change event emitted by MDTabGroup for selection/focus updates. */ declare class MDTabChangeEvent { /** Index of the tab that changed. */ index: number; /** Reference to the tab instance. */ tab: MDTab; } declare class MDTabNav extends PaginatedTabHeader implements AfterContentChecked, AfterContentInit, AfterViewInit { _focusedItem: i0.WritableSignal; get fitInkBarToContent(): boolean; set fitInkBarToContent(value: boolean); readonly _fitInkBarToContent: BehaviorSubject; stretchTabs: boolean; isLegacyMode: boolean; legacySize: LegacySize; get animationDuration(): string; set animationDuration(value: string | number); private _animationDuration; get disableRipple(): boolean; set disableRipple(value: boolean); private _disableRipple; tabPanel?: MDTabNavPanel; _items: QueryList; _tabListContainer: ElementRef; _tabList: ElementRef; _tabListInner: ElementRef; _nextPaginator: ElementRef; _previousPaginator: ElementRef; _inkBar: InkBar; protected _itemSelected(): void; ngAfterContentInit(): void; updateActiveLink(): void; _getHostRole(): string | null; _getRole(): string | null; _hasFocus(link: MDTabLink): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_fitInkBarToContent: unknown; static ngAcceptInputType_stretchTabs: unknown; static ngAcceptInputType_isLegacyMode: unknown; static ngAcceptInputType_disableRipple: unknown; } declare class MDTabLink extends InkBarItem implements AfterViewInit, OnDestroy, FocusableOption { private _tabNavBar; elementRef: ElementRef; private _focusMonitor; private readonly _destroyed; protected _isActive: boolean; protected _tabIndex: i0.Signal; get active(): boolean; set active(value: boolean); disabled: boolean; get disableRipple(): boolean; set disableRipple(value: boolean); private _disableRipple; tabIndex: number; id: string; get rippleDisabled(): boolean; constructor(); focus(): void; ngAfterViewInit(): void; ngOnDestroy(): void; _handleFocus(): void; _handleKeydown(event: KeyboardEvent): void; _getAriaControls(): string | null; _getAriaSelected(): string | null; _getAriaCurrent(): string | null; _getRole(): string | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_active: unknown; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_disableRipple: unknown; static ngAcceptInputType_tabIndex: unknown; } declare class MDTabNavPanel { id: string; _activeTabId?: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MDTabsModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Finite states for the checkbox visual state machine. * * - `Init`: initial (pre-render) state * - `Checked`: box is checked * - `Unchecked`: box is unchecked * * Used to pick the proper animation class during transitions. */ declare enum TransitionCheckState { Init = 0, Checked = 1, Unchecked = 2 } /** * Payload for `(change)` output. * * - `source`: reference to emitting checkbox instance * - `checked`: current boolean state after the change */ declare class MDCheckboxChange { /** Source checkbox that emitted the change. */ source: MDCheckBox; /** Current checked state after the update. */ checked: boolean; } /** * Controls how a host click affects the checked state. * * - `'noop'` — ignore host clicks (useful for fully-controlled mode) * - `'check'` — toggle on click (default) * - `undefined` — treated as default */ type CheckboxClickAction = 'noop' | 'check' | undefined; declare class MDCheckBox implements OnChanges, ControlValueAccessor, Validator, FocusableOption { /** Host `ElementRef` for low-level DOM ops (focus mgmt, class toggles via templates). */ _elementRef: ElementRef; /** Change detector to mark view dirty on imperative state changes. */ private _changeDetectorRef; /** Zone used to schedule work outside Angular for animation class cleanup. */ private _ngZone; /** When true, skips adding animation classes to avoid motion. */ protected _animationsDisabled: boolean; /** * Local options bag (can be extended to accept DI-config in the future). * * - `color`: theme class on host (`'accent'` by default) * - `clickAction`: how clicks affect toggle (default `'check'`) * - `disabledInteractive`: allow certain focus/aria semantics even if disabled */ private _options; /** * FocusableOption API (CDK lists, key manager, etc.). * Delegates focus to the internal native ``. */ focus(): void; /** * Factory for `(change)` event payloads. * @param isChecked Final boolean state after user interaction/programmatic toggle. */ protected _createChangeEvent(isChecked: boolean): MDCheckboxChange; /** * Returns the element on which animation classes are applied. * Typically the native input or visual container around it. */ protected _getAnimationTargetElement(): HTMLInputElement; /** Mapping of transition names to MDC animation classes. */ protected _animationClasses: { uncheckedToChecked: string; checkedToUnchecked: string; }; /** Accessible label text (if no external label is used). */ ariaLabel: string; /** Element id that labels this checkbox (preferred over `aria-label`). */ ariaLabelledby: string | null; /** Element id that provides a description for this control. */ ariaDescribedby: string; /** Expanded state for composite widgets; rarely needed on a checkbox. */ ariaExpanded: boolean; /** Id of element(s) whose contents are controlled by this checkbox. */ ariaControls: string; /** Id of element(s) owned by this checkbox. */ ariaOwns: string; /** Unique id seed used for host and internal input id wiring. */ private _uniqueId; /** Host element id; also used to derive input id if provided. */ id: string; /** Computed id for the internal ``. */ get inputId(): string; /** Whether the control is required; used by `Validator` implementation. */ required: boolean; /** Label placement relative to the box. @default 'after' */ labelPosition: 'before' | 'after'; /** HTML `name` attribute of the internal input. */ name: string | null; /** * Fired when the user toggles the checkbox (after internal state is updated). * Emits {@link MDCheckboxChange}. */ readonly change: EventEmitter; /** Optional value associated with this checkbox (for forms/radio-like patterns). */ value: string; /** Reference to the native input (used for focus, syncing native state). */ _inputElement: ElementRef; /** Reference to the label element (used to stop click bubbling). */ _labelElement: ElementRef; /** * Tab order for the internal input. If `null/undefined` — defaults to `0`. * Accepts string/number; normalized via `numberAttribute`. */ tabIndex: number; /** Theme color token applied as a host class (e.g., `'accent'`, `'primary'`). */ color: string | undefined; /** * When true, allows certain interactions even in disabled state. * Useful when a disabled checkbox still needs focus/aria semantics. */ disabledInteractive: boolean; /** onTouched callback provided by Angular Forms. */ _onTouched: () => any; /** Currently applied animation class; cleared after timeout. */ private _currentAnimationClass; /** Last known check state to compute transition direction. */ private _currentCheckState; /** onChange callback provided by Angular Forms (propagates model updates). */ private _controlValueAccessorChangeFn; /** Hook to notify Angular Forms that validator inputs changed. */ private _validatorChangeFn; constructor(); /** On input changes (e.g., `required` toggled), re-run validator if needed. */ ngOnChanges(changes: SimpleChanges): void; /** Current boolean state (getter). */ get checked(): boolean; /** * Setter that marks view for check under OnPush strategy. * Avoids unnecessary marks if value didn't change. */ set checked(value: boolean); private _checked; /** Disabled state (getter). */ get disabled(): boolean; /** * Setter that marks view for check under OnPush strategy. * Avoids unnecessary marks if value didn't change. */ set disabled(value: boolean); private _disabled; /** * Force change detection when projected label text mutates (e.g., via i18n async). * Called from template via `(cdkObserveContent)` or similar. */ _onLabelTextChange(): void; /** Writes a new value from the model into the view. */ writeValue(value: any): void; /** Registers a callback to be triggered when the value changes in the UI. */ registerOnChange(fn: (value: any) => void): void; /** Registers a callback for the control being touched (blurred). */ registerOnTouched(fn: any): void; /** Enables or disables the control from the Angular Forms API. */ setDisabledState(isDisabled: boolean): void; /** * Synchronous validation: if `required`, only `true` is valid. */ validate(control: AbstractControl): ValidationErrors | null; /** Informs Angular Forms that validators should be re-run. */ registerOnValidatorChange(fn: () => void): void; /** * Applies/removes the appropriate animation CSS class for the transition. * Cleans up the class after a timeout (~duration of the CSS animation). */ private _transitionCheckState; /** * Picks the correct CSS animation class for a given `old → new` transition. * Returns empty string when animations are disabled. */ private _getAnimationClassForCheckStateTransition; /** Host handler for click on the native ``. */ _onInputClick(): void; /** * Click on the larger touch target (ripple/visual area) should toggle as well. * Also refocuses the real input if not disabled to preserve keyboard flow. */ _onTouchTargetClick(): void; /** * Prevent outer components from reacting to internal mouse/keyboard events. */ _onInteractionEvent(event: Event): void; /** * Mark as touched after blur has fully propagated to avoid change collisions. */ _onBlur(): void; /** * Centralized click handler used by input/touch-target. * Respects disabled state and `clickAction` behavior. */ protected _handleInputClick(): void; /** * Emits Angular Forms change, fires `(change)` output, and syncs native input state. */ private _emitChangeEvent; /** * Programmatic toggle (e.g., from parent component). * Also notifies Angular Forms via registered `onChange` callback. */ toggle(): void; /** * If a click originates from inside the label element, stop it from bubbling * to avoid double-handling (host click + input click). */ _preventBubblingFromLabel(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_ariaExpanded: unknown; static ngAcceptInputType_required: unknown; static ngAcceptInputType_tabIndex: unknown; static ngAcceptInputType_disabledInteractive: unknown; static ngAcceptInputType_checked: unknown; static ngAcceptInputType_disabled: unknown; } declare class MDCheckBoxModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class MDAutocompleteSelectedEvent { source: MDAutocomplete; option: MDOption; constructor(source: MDAutocomplete, option: MDOption); } interface MDAutocompleteActivatedEvent { source: MDAutocomplete; option: MDOption | null; } interface MdAutocompleteDefaultOptions { autoActiveFirstOption?: boolean; autoSelectActiveOption?: boolean; requireSelection?: boolean; backdropClass?: string; hasBackdrop?: boolean; overlayPanelClass?: string | string[]; hideSingleSelectionIndicator?: boolean; } declare const MD_AUTOCOMPLETE_DEFAULT_OPTIONS: InjectionToken; interface MDOptionParentComponent { multiple?: boolean; inertGroups?: boolean; hideSingleSelectionIndicator?: boolean; } declare const MD_OPTION_PARENT_COMPONENT: InjectionToken; declare class MDAutocomplete implements AfterContentInit, OnDestroy { private _changeDetectorRef; private _elementRef; protected _defaults: MdAutocompleteDefaultOptions; private _activeOptionChanges; _keyManager: ActiveDescendantKeyManager; showPanel: boolean; get isOpen(): boolean; _isOpen: boolean; _latestOpeningTrigger: unknown; template: TemplateRef; panel: ElementRef; options: QueryList; optionGroups: QueryList; ariaLabel: string; ariaLabelledby: string; displayWith: ((value: any) => string) | null; autoActiveFirstOption: boolean; autoSelectActiveOption: boolean; requireSelection: boolean; panelWidth: string | number; _animationsDisabled: boolean; readonly optionSelected: EventEmitter; readonly opened: EventEmitter; readonly closed: EventEmitter; readonly optionActivated: EventEmitter; set classList(value: string | string[]); _classList: string | string[]; get hideSingleSelectionIndicator(): boolean; set hideSingleSelectionIndicator(value: boolean); private _hideSingleSelectionIndicator; _syncParentProperties(): void; id: string; readonly inertGroups: boolean; constructor(); ngAfterContentInit(): void; ngOnDestroy(): void; _setScrollTop(scrollTop: number): void; _getScrollTop(): number; _setVisibility(): void; _emitSelectEvent(option: MDOption): void; _getPanelAriaLabelledby(labelId: string | null): string | null; protected _skipPredicate(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_autoActiveFirstOption: unknown; static ngAcceptInputType_autoSelectActiveOption: unknown; static ngAcceptInputType_requireSelection: unknown; static ngAcceptInputType_hideSingleSelectionIndicator: unknown; } declare class MDAutocompleteOrigin { elementRef: ElementRef; constructor(); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare const MD_AUTOCOMPLETE_VALUE_ACCESSOR: any; declare function getMDAutocompleteMissingPanelError(): Error; declare const MD_AUTOCOMPLETE_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>; declare class MDAutocompleteTrigger implements ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy { private _environmentInjector; private _element; private _injector; private _viewContainerRef; private _zone; private _changeDetectorRef; private _dir; private _viewportRuler; private _scrollStrategy; private _renderer; private _animationsDisabled; private _defaults; private _overlayRef; private _portal; private _componentDestroyed; private _initialized; private _keydownSubscription; private _outsideClickSubscription; private _cleanupWindowBlur; private _previousValue; private _valueOnAttach; private _valueOnLastKeydown; private _positionStrategy; private _manuallyFloatingLabel; private _closingActionsSubscription; private _viewportSubscription; private _breakpointObserver; private _handsetLandscapeSubscription; private _canOpenOnNextFocus; private _valueBeforeAutoSelection; private _pendingAutoselectedOption; private readonly _closeKeyEventStream; readonly _overlayPanelClass: string[]; private _windowBlurHandler; _onChange: (value: any) => void; _onTouched: () => void; autocomplete: MDAutocomplete; position: 'auto' | 'above' | 'below'; connectedTo: MDAutocompleteOrigin; autocompleteAttribute: string; autocompleteDisabled: boolean; constructor(...args: unknown[]); private _aboveClass; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; get panelOpen(): boolean; private _overlayAttached; openPanel(): void; closePanel(): void; updatePosition(): void; get panelClosingActions(): Observable; readonly optionSelections: Observable; get activeOption(): MDOption | null; private _getOutsideClickStream; writeValue(value: any): void; registerOnChange(fn: (value: any) => {}): void; registerOnTouched(fn: () => {}): void; setDisabledState(isDisabled: boolean): void; _handleKeydown(e: Event): void; _handleInput(event: Event): void; _handleFocus(): void; _handleClick(): void; private _hasFocus; private _subscribeToClosingActions; private _emitOpened; private _destroyPanel; private _getDisplayValue; private _assignOptionValue; private _updateNativeInputValue; private _setValueAndClose; private _clearPreviousSelectedOption; private _openPanelInternal; private _attachOverlay; private _handlePanelKeydown; private _updatePanelState; private _getOverlayConfig; private _getOverlayPosition; private _setStrategyPositions; private _getConnectedElement; private _getPanelWidth; private _getHostWidth; private _resetActiveItem; private _canOpen; private _scrollToOption; private _trackedModal; private _applyModalPanelOwnership; private _clearFromModal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_autocompleteDisabled: unknown; } declare class MDAutocompleteModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Change payload emitted by both group and individual radio buttons. * `source` is the button that triggered the change; `value` is its current value. */ declare class RadioChange { source: MDRadioButton; value: T; constructor(source: MDRadioButton, value: T); } /** ControlValueAccessor provider for the radio group. */ declare const RADIO_GROUP_CONTROL_VALUE_ACCESSOR: any; /** Token to inject the parent group into child radio buttons. */ declare const MD_RADIO_GROUP: InjectionToken; /** * Radio group directive: manages a set of `md-radio-button` children. * * Responsibilities: * - Keeps a single selection (mutual exclusivity). * - Syncs `name` across all child radios. * - Integrates with Angular forms via ControlValueAccessor. * - Forwards `disabled`, `required`, and `disabledInteractive` to children. */ declare class MDRadioGroup implements AfterContentInit, OnDestroy, ControlValueAccessor { /** Triggers CD when value/flags change via setters. */ private _changeDetector; /** Currently selected value (model). */ private _value; /** Shared `name` for all child radios (defaults to unique id). */ private _name; /** Reference to the selected radio (if any). */ private _selected; /** True after first content init; used to gate change emissions. */ private _isInitialized; /** Group-level disabled flag; propagated to children. */ private _disabled; /** Group-level required flag; propagated to children. */ private _required; /** Subscription to children changes (add/remove). */ private _buttonChanges; /** ngModel/FormControl onChange callback. */ _controlValueAccessorChangeFn: (value: any) => void; /** ngModel/FormControl onTouched callback. */ onTouched: () => any; /** Emits when selection changes after init. */ readonly change: EventEmitter; /** Child radios discovered in content. */ _radios: QueryList; /** Group name getter/setter (propagates to children). */ get name(): string; set name(value: string); /** Model value getter/setter; updates selected radio accordingly. */ get value(): any; set value(newValue: any); /** Ensures the selected radio is actually checked. */ _checkSelectedRadioButton(): void; /** Selected radio getter/setter; also sets group value. */ get selected(): MDRadioButton | null; set selected(selected: MDRadioButton | null); /** Group disabled getter/setter; marks children for check. */ get disabled(): boolean; set disabled(value: boolean); /** Group required getter/setter; marks children for check. */ get required(): boolean; set required(value: boolean); /** * If true, disabled items may still be focusable/interactive * (special a11y scenarios). Propagated to children. */ get disabledInteractive(): boolean; set disabledInteractive(value: boolean); private _disabledInteractive; /** Overloads kept for compatibility; actual ctor is empty. */ constructor(...args: unknown[]); /** After content init, watch for dynamic child list changes. */ ngAfterContentInit(): void; /** Clean up subscriptions. */ ngOnDestroy(): void; /** Mark group as touched (used by children on blur). */ _touch(): void; /** Propagate `name` to child radios and mark them for check. */ private _updateRadioButtonNames; /** Update `checked` on children based on current group value. */ private _updateSelectedRadioFromValue; /** Emit `change` when selection altered by user after init. */ _emitChangeEvent(): void; /** Ask all children to run CD (OnPush-safe updates). */ _markRadiosForCheck(): void; /** Write model value from forms API. */ writeValue(value: any): void; /** Register forms onChange callback. */ registerOnChange(fn: (value: any) => void): void; /** Register forms onTouched callback. */ registerOnTouched(fn: any): void; /** Set disabled via forms API. */ setDisabledState(isDisabled: boolean): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_required: unknown; static ngAcceptInputType_disabledInteractive: unknown; } /** * Single radio button component. * * Responsibilities: * - Manages its own checked/disabled state. * - Coordinates with its parent `MDRadioGroup`. * - Emits `change` when user selects it. * - Handles focus/keyboard via CDK FocusMonitor. */ declare class MDRadioButton implements OnInit, AfterViewInit, DoCheck, OnDestroy { /** Host element reference (used by FocusMonitor and listeners). */ protected _elementRef: ElementRef; /** Change detector to request view updates under OnPush. */ private _changeDetector; /** CDK FocusMonitor to handle programmatic focus origins. */ private _focusMonitor; /** Ensures unique selection across same-name radios. */ private _radioDispatcher; /** Zone for running event listeners outside Angular (perf). */ private _ngZone; /** Renderer for low-level DOM events binding. */ private _renderer; /** Unique id seed for host/input ids. */ private _uniqueId; /** Cleanup function for native click listener. */ private _cleanupClick; /** Element id (defaults to unique id). */ id: string; /** Shared group name; set by group or consumer. */ name: string; /** ARIA label text for input (if no external label). */ ariaLabel: string; /** Id of element that labels this input. */ ariaLabelledby: string; /** Id of element that describes this input. */ ariaDescribedby: string; /** * Tabindex for internal input; normalized via numberAttribute. * Default is 0 so item can be focused when selected. */ tabIndex: number; /** Checked state with group coordination and dispatcher notify. */ get checked(): boolean; set checked(value: boolean); /** Arbitrary value associated with this radio. */ get value(): any; set value(value: any); /** Disabled state; considers group-level disabled as well. */ get disabled(): boolean; set disabled(value: boolean); /** Required state; considers group-level required as well. */ get required(): boolean; set required(value: boolean); /** * If true, item remains interactive/focusable even when disabled. * Also considers group-level disabledInteractive. */ get disabledInteractive(): boolean; set disabledInteractive(value: boolean); private _disabledInteractive; /** Emits when this particular radio is selected by the user. */ readonly change: EventEmitter; /** Optional reference to parent group (injected). */ radioGroup: MDRadioGroup; /** Id for internal input element. */ get inputId(): string; /** Backing fields for state. */ private _checked; private _disabled; private _required; private _value; /** Callback to unlisten from unique selection dispatcher. */ private _removeUniqueSelectionListener; /** Tracks last applied tabindex for optimization. */ private _previousTabIndex; /** Template refs. */ _inputElement: ElementRef; /** Placeholder for potential animations flag (wired via template). */ _noopAnimations: boolean; /** Injector used for afterNextRender microtask scheduling. */ private _injector; /** * Inject parent group (optional) and host tabindex. * Also initializes disabledInteractive default. */ constructor(); /** * Programmatic focus API. * If `origin` provided, uses FocusMonitor to set proper focus classes. */ focus(options?: FocusOptions, origin?: FocusOrigin): void; /** Ask view to update (used by group). */ _markForCheck(): void; /** Initialize from group (name/value) and subscribe to unique selection dispatcher. */ ngOnInit(): void; /** Keep tabindexes updated so only selected item is in tab order. */ ngDoCheck(): void; /** Attach focus monitor and click handler outside Angular for perf. */ ngAfterViewInit(): void; /** Cleanup listeners and monitors. */ ngOnDestroy(): void; /** Emit own change and, if part of a group, notify the group. */ private _emitChangeEvent; /** * Handles interaction on the real input. * Ensures single selection, emits change, updates group model. */ _onInputInteraction(event: Event): void; /** * Click on the visual/touch target should behave like clicking the input. * Also refocus the input if allowed. */ _onTouchTargetClick(event: Event): void; /** Setter for disabled that triggers CD when value changes. */ protected _setDisabled(value: boolean): void; /** * Prevent native input click from toggling when disabled but `disabledInteractive` is true. * Keeps UI consistent with intended behavior. */ private _onInputClick; /** * Maintain roving tabindex: * - Selected radio keeps its configured tabIndex (defaults to 0). * - Non-selected radios get tabindex="-1". * Also re-routes focus to the selected item if needed after render. */ private _updateTabIndex; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_tabIndex: unknown; static ngAcceptInputType_checked: unknown; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_required: unknown; static ngAcceptInputType_disabledInteractive: unknown; } declare class MDRadioModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class MDChipContent { _elementRef: ElementRef; protected _parentChip: { _handlePrimaryActionInteraction(): void; remove(): void; disabled: boolean; _edit(): void; _isEditing?: boolean; }; _isPrimary: boolean; _isLeading: boolean; get disabled(): boolean; set disabled(value: boolean); private _disabled; tabIndex: number; _allowFocusWhenDisabled: boolean; protected _getDisabledAttribute(): string | null; constructor(); focus(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_tabIndex: unknown; } declare class MDChipAction extends MDChipContent { protected _getTabindex(): string | null; _handleClick(event: MouseEvent): void; _handleKeydown(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDChipAvatar { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDChipTrailingIcon extends MDChipContent { _isPrimary: boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDChipEdit extends MDChipAction { _isPrimary: boolean; _isLeading: boolean; _handleClick(event: MouseEvent): void; _handleKeydown(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDChipRemove extends MDChipAction { _isPrimary: boolean; _handleClick(event: MouseEvent): void; _handleKeydown(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface MDChipEvent { chip: MDChip; } declare class MDChip implements OnInit, AfterViewInit, AfterContentInit, OnDestroy { _changeDetectorRef: ChangeDetectorRef; _elementRef: ElementRef; private readonly _tagName; protected _ngZone: NgZone; private _focusMonitor; protected _document: Document; readonly _onFocus: Subject; readonly _onBlur: Subject; _isBasicChip: boolean; role: string | null; private _hasFocusInternal; private _pendingFocus; private _actionChanges; _animationsDisabled: boolean; protected _allLeadingIcons: QueryList; protected _allTrailingIcons: QueryList; protected _allEditIcons: QueryList; protected _allRemoveIcons: QueryList; _hasFocus(): boolean; id: string; ariaLabel: string | null; ariaDescription: string | null; _chipListDisabled: boolean; _hadFocusOnRemove: boolean; private _textElement; get value(): any; set value(value: any); protected _value: any; removable: boolean; highlighted: boolean; get disabled(): boolean; set disabled(value: boolean); private _disabled; readonly removed: EventEmitter; readonly destroyed: EventEmitter; protected basicChipAttrName: string; leadingIcon: MDChipAvatar; editIcon: MDChipEdit; trailingIcon: MDChipTrailingIcon; removeIcon: MDChipRemove; primaryAction: MDChipAction; protected _injector: Injector; constructor(); ngOnInit(): void; ngAfterViewInit(): void; ngAfterContentInit(): void; ngOnDestroy(): void; remove(): void; _hasTrailingIcon(): boolean; _handleKeydown(event: KeyboardEvent): void; focus(): void; _getSourceAction(target: Node): MDChipAction | undefined; _getActions(): MDChipAction[]; _handlePrimaryActionInteraction(): void; _hasInteractiveActions(): boolean; _edit(event: Event): void; private _monitorFocus; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_removable: unknown; static ngAcceptInputType_highlighted: unknown; static ngAcceptInputType_disabled: unknown; } declare class MDChipSelectionChange { source: MDChipOption; selected: boolean; isUserInput: boolean; constructor(source: MDChipOption, selected: boolean, isUserInput?: boolean); } declare class MDChipOption extends MDChip implements OnInit { private _defaultOptions; chipListSelectable: boolean; _chipListMultiple: boolean; _chipListHideSingleSelectionIndicator: boolean; get selectable(): boolean; set selectable(value: boolean); protected _selectable: boolean; /** Whether the chip is selected. */ get selected(): boolean; set selected(value: boolean); private _selected; get ariaSelected(): string | null; protected basicChipAttrName: string; readonly selectionChange: EventEmitter; ngOnInit(): void; select(): void; deselect(): void; selectViaInteraction(): void; toggleSelected(isUserInput?: boolean): boolean; _handlePrimaryActionInteraction(): void; _hasLeadingGraphic(): boolean; _setSelectedState(isSelected: boolean, isUserInput: boolean, emitEvent: boolean): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_selectable: unknown; static ngAcceptInputType_selected: unknown; } declare class MDChipEditInput { private readonly _elementRef; private readonly _document; constructor(); initialize(initialValue: string): void; getNativeElement(): HTMLElement; setValue(value: string): void; getValue(): string; private _moveCursorToEndOfInput; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface MDChipEditedEvent extends MDChipEvent { value: string; } declare class MDChipRow extends MDChip implements AfterViewInit { protected basicChipAttrName: string; private _editStartPending; editable: boolean; readonly edited: EventEmitter; defaultEditInput?: MDChipEditInput; contentEditInput?: MDChipEditInput; private _alreadyFocused; _isEditing: boolean; constructor(); ngAfterViewInit(): void; protected _hasLeadingActionIcon(): boolean; _hasTrailingIcon(): boolean; _handleFocus(): void; _handleKeydown(event: KeyboardEvent): void; _handleClick(event: MouseEvent): void; _handleDoubleclick(event: MouseEvent): void; _edit(): void; private _startEditing; private _onEditFinish; private _getEditInput; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MDChipSet implements AfterViewInit, OnDestroy { protected _elementRef: ElementRef; protected _changeDetectorRef: ChangeDetectorRef; private _dir; private _lastDestroyedFocusedChipIndex; protected _keyManager: FocusKeyManager; protected _destroyed: Subject; protected _defaultRole: string; get chipFocusChanges(): Observable; get chipDestroyedChanges(): Observable; get chipRemovedChanges(): Observable; get disabled(): boolean; set disabled(value: boolean); protected _disabled: boolean; get empty(): boolean; get role(): string | null; tabIndex: number; set role(value: string | null); private _explicitRole; get focused(): boolean; _chips: QueryList; _chipActions: QueryList; constructor(); ngAfterViewInit(): void; ngOnDestroy(): void; protected _hasFocusedChip(): boolean; protected _syncChipsState(): void; /** Dummy method for subclasses to override. Base chip set cannot be focused. */ focus(): void; _handleKeydown(event: KeyboardEvent): void; protected _isValidIndex(index: number): boolean; protected _allowFocusEscape(): void; protected _getChipStream(mappingFunction: (chip: C) => Observable): Observable; protected _originatesFromChip(event: Event): boolean; private _setUpFocusManagement; protected _skipPredicate(action: MDChipContent): boolean; private _trackChipSetChanges; private _trackDestroyedFocusedChip; private _redirectDestroyedChipFocus; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_tabIndex: unknown; } declare class MDChipListboxChange { source: MDChipListbox; value: any; constructor(source: MDChipListbox, value: any); } declare const MD_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR: any; declare class MDChipListbox extends MDChipSet implements AfterContentInit, OnDestroy, ControlValueAccessor { _onTouched: () => void; _onChange: (value: any) => void; protected _defaultRole: string; private _defaultOptions; get multiple(): boolean; set multiple(value: boolean); private _multiple; get selected(): MDChipOption[] | MDChipOption; ariaOrientation: 'horizontal' | 'vertical'; get selectable(): boolean; set selectable(value: boolean); protected _selectable: boolean; compareWith: (o1: any, o2: any) => boolean; required: boolean; get hideSingleSelectionIndicator(): boolean; set hideSingleSelectionIndicator(value: boolean); private _hideSingleSelectionIndicator; get chipSelectionChanges(): Observable; get chipBlurChanges(): Observable; get value(): any; set value(value: any); protected _value: any; readonly change: EventEmitter; _chips: QueryList; ngAfterContentInit(): void; focus(): void; writeValue(value: any): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; _setSelectionByValue(value: any, isUserInput?: boolean): void; _blur(): void; _keydown(event: KeyboardEvent): void; private _markAsTouched; private _propagateChanges; private _clearSelection; private _selectValue; private _syncListboxProperties; private _getFirstSelectedChip; protected _skipPredicate(action: MDChipAction): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_multiple: unknown; static ngAcceptInputType_selectable: unknown; static ngAcceptInputType_required: unknown; static ngAcceptInputType_hideSingleSelectionIndicator: unknown; } interface MDChipTextControl { id: string; placeholder: string; focused: boolean; empty: boolean; focus(): void; readonly describedByIds?: string[]; setDescribedByIds(ids: string[]): void; } declare class MDChipGridChange { source: MDChipGrid; value: any; constructor(source: MDChipGrid, value: any); } declare class MDChipGrid extends MDChipSet implements AfterContentInit, AfterViewInit, ControlValueAccessor, DoCheck, OnDestroy { ngControl: NgControl; readonly controlType: string; protected _chipInput?: MDChipTextControl; protected _defaultRole: string; private _errorStateTracker; private _uid; private _ariaDescribedbyIds; _onTouched: () => void; _onChange: (value: any) => void; get disabled(): boolean; set disabled(value: boolean); get id(): string; get empty(): boolean; get placeholder(): string; set placeholder(value: string); protected _placeholder: string; get focused(): boolean; get required(): boolean; set required(value: boolean); protected _required: boolean | undefined; get shouldLabelFloat(): boolean; get value(): any; set value(value: any); protected _value: any[]; get errorStateMatcher(): ErrorStateMatcher; set errorStateMatcher(value: ErrorStateMatcher); get chipBlurChanges(): Observable; readonly change: EventEmitter; readonly valueChange: EventEmitter; _chips: QueryList; readonly stateChanges: Subject; get errorState(): boolean; set errorState(value: boolean); constructor(...args: unknown[]); ngAfterContentInit(): void; ngDoCheck(): void; ngOnDestroy(): void; registerInput(inputElement: MDChipTextControl): void; onContainerClick(event: MouseEvent): void; focus(): void; get describedByIds(): string[]; setDescribedByIds(ids: string[]): void; writeValue(value: any): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; updateErrorState(): void; _blur(): void; protected _allowFocusEscape(): void; _handleKeydown(event: KeyboardEvent): void; _focusLastChip(): void; private _propagateChanges; private _markAsTouched; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_required: unknown; } declare class ErrorStateMatcher { isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class _ErrorStateTracker { private _defaultMatcher; ngControl: NgControl | null; private _parentFormGroup; private _parentForm; private _stateChanges; errorState: boolean; matcher: ErrorStateMatcher; constructor(_defaultMatcher: ErrorStateMatcher | null, ngControl: NgControl | null, _parentFormGroup: FormGroupDirective | null, _parentForm: NgForm | null, _stateChanges: Subject); updateErrorState(): void; } interface SeparatorKey { keyCode: number; modifiers: readonly ModifierKey[]; } interface MDChipsDefaultOptions { separatorKeyCodes: readonly (number | SeparatorKey)[] | ReadonlySet; hideSingleSelectionIndicator?: boolean; inputDisabledInteractive?: boolean; } declare const MD_CHIPS_DEFAULT_OPTIONS: InjectionToken; declare const MD_CHIP_AVATAR: InjectionToken; declare const MD_CHIP_TRAILING_ICON: InjectionToken; declare const MD_CHIP_EDIT: InjectionToken; declare const MD_CHIP_REMOVE: InjectionToken; declare const MD_CHIP: InjectionToken; interface MDChipInputEvent { input: HTMLInputElement; value: string; chipInput: MDChipInput; } declare class MDChipInput implements MDChipTextControl, OnChanges, OnDestroy { protected _elementRef: ElementRef; focused: boolean; get chipGrid(): MDChipGrid; set chipGrid(value: MDChipGrid); protected _chipGrid: MDChipGrid; addOnBlur: boolean; separatorKeyCodes: readonly (number | SeparatorKey)[] | ReadonlySet; readonly chipEnd: EventEmitter; placeholder: string; id: string; get disabled(): boolean; set disabled(value: boolean); private _disabled; readonly: boolean; disabledInteractive: boolean; get empty(): boolean; readonly inputElement: HTMLInputElement; constructor(); ngOnChanges(): void; ngOnDestroy(): void; _keydown(event: KeyboardEvent): void; _blur(): void; _focus(): void; _emitChipEnd(event?: KeyboardEvent): void; _onInput(): void; focus(): void; clear(): void; get describedByIds(): string[]; setDescribedByIds(ids: string[]): void; private _isSeparatorKey; protected _getReadonlyAttribute(): string | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; static ngAcceptInputType_addOnBlur: unknown; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_readonly: unknown; static ngAcceptInputType_disabledInteractive: unknown; } declare class MDChipsModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Individual header card component for use within md-header-card-set. * * @remarks * Simple container component that accepts any content via ng-content projection. * Styled with border, background, and padding. Use within md-header-card-set * for responsive grid layout. * * @example * ```html * *
Card Title
*
Card content here
*
* ``` */ declare class MDHeaderCardComponent { padding: string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * Container for multiple header cards with responsive CSS Grid layout. * * @remarks * Uses CSS Grid with auto-fit to automatically determine optimal column count. * Cards flex between minCardWidth and maxCardWidth to minimize empty space. * Card count is automatically tracked via ContentChildren. * * Layout behavior: * - Mobile (<768px): horizontal scroll, single row * - Tablet+ (≥768px): CSS Grid with auto-fit, cards sized between min/max * * Features: * - Automatic card count tracking (--md-header-card-count CSS variable) * - Automatic column count based on available space * - Configurable min/max card widths * - Full-width layout with responsive padding * * @example * ```html * * *
Service Title
*
* *
Type: Canvas
*
*
* ``` */ declare class MDHeaderCardSetComponent implements AfterContentInit { cards: QueryList; private _cdr; private _cardCount; /** * Gap between cards in pixels. * @default 8 */ gap: number; /** * Horizontal padding for the container in pixels. * Responsive: 16px mobile, 24px tablet, 32px desktop. * @default 'responsive' */ padding: number | 'responsive'; /** * Minimum card width in pixels. * Cards won't shrink below this value. * @default 300 */ minCardWidth: number; /** * Maximum card width in pixels. * Cards won't grow beyond this value. * @default 570 */ maxCardWidth: number; /** * Disable wrapping (force single row with horizontal scroll). * Useful for mobile or specific layouts. * @default false */ noWrap: boolean; ngAfterContentInit(): void; /** * Get CSS custom properties for the container. * @internal */ get _containerStyles(): Record; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_noWrap: unknown; } declare class MDHeaderCardModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Page event emitted when pagination changes */ interface PaginatorPageEvent { offset: number; limit: number; count: number; pageSize: number; } /** * Sort direction enum */ declare enum SortDirection { asc = "asc", desc = "desc", none = "" } /** * Sort type - single or multi column sorting */ declare enum SortType { single = "single", multi = "multi" } /** * Sort property with direction */ interface SortPropDir { prop: string; dir: SortDirection; } /** * Sort event emitted when sorting changes */ interface GridSortEvent { active: string; direction: SortDirection; } /** * Page event emitted when pagination changes */ interface GridPageEvent { offset: number; limit: number; count: number; pageSize: number; } /** * Row edit event */ interface GridRowEditEvent { row: T; rowIndex: number; originalRow?: T; } /** * Column resize event */ interface GridColumnResizeEvent { column: GridColumn; prevWidth: number; newWidth: number; } /** * Grouped rows structure */ interface GroupedRows { key: any; value: T[]; } /** * Cell template context - available in cell templates */ interface GridCellContext { /** Current row data */ row: T; /** Cell value */ value: any; /** Column definition */ column: GridColumn; /** Row index */ rowIndex: number; /** Whether the row is in edit mode */ isEditing: boolean; /** Group key if grouped */ group?: any; } /** * Header cell template context */ interface GridHeaderContext { /** Column definition */ column: GridColumn; /** Current sort direction */ sortDir?: SortDirection; /** Function to trigger sort */ sortFn: () => void; } /** * Edit template context - available in edit templates */ interface GridEditContext { /** Current row data (mutable copy) */ row: T; /** Original row data (immutable) */ originalRow: T; /** Cell value */ value: any; /** Column definition */ column: GridColumn; /** Row index */ rowIndex: number; /** Function to save changes */ saveFn: () => void; /** Function to cancel editing */ cancelFn: () => void; } type ColumnPinnedType = 'left' | 'right' | null | undefined; type GridColumnMobileRole = 'data' | 'id' | 'actions'; /** * Column definition interface */ interface GridColumn { /** Column unique identifier */ $$id?: string; /** Display name for the header */ name?: string; /** Mobile card layout role. Defaults to a regular data column. */ mobileRole?: GridColumnMobileRole; /** Property path to get value from row (e.g., 'user.name') */ prop?: string; /** Column width in pixels */ width?: number; /** Minimum column width */ minWidth: number; /** Maximum column width */ maxWidth?: number; flex?: number; suppressSizeToFit?: boolean; /** Whether column is sortable */ sortable: boolean; /** Whether column is resizeable (can be dragged to change width) */ resizeable: boolean; pinned: ColumnPinnedType; /** Custom sort comparator */ comparator?: (valueA: any, valueB: any, rowA: T, rowB: T, sortDir: SortDirection) => number; /** Pipe to transform cell value */ pipe?: PipeTransform; /** CSS class for header cell */ headerClass?: string | ((data: { column: GridColumn; }) => string | Record); /** CSS class for body cell */ cellClass?: string | ((data: { row: T; column: GridColumn; value: any; }) => string | Record); /** Template for cell content in view mode */ cellTemplate?: TemplateRef>; /** Template for header content */ headerTemplate?: TemplateRef>; /** Template for cell content in edit mode */ editTemplate?: TemplateRef>; } /** @deprecated Use GridEditContext instead */ type CardsGridEditContext = GridEditContext; type ColumnEventType = 'sizeColumnsToFit' | 'autosizeColumns' | 'flex' | 'gridInitializing' | 'uiColumnResized'; declare class MDGridCellTemplateDirective { static ngTemplateContextGuard(dir: MDGridCellTemplateDirective, ctx: unknown): ctx is GridCellContext; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[mdGridCellTemplate]", never, {}, {}, never, never, true, never>; } declare class MDGridHeaderTemplateDirective { static ngTemplateContextGuard(dir: MDGridHeaderTemplateDirective, ctx: unknown): ctx is GridHeaderContext; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[mdGridHeaderTemplate]", never, {}, {}, never, never, true, never>; } declare class MDGridEditTemplateDirective { static ngTemplateContextGuard(dir: MDGridEditTemplateDirective, ctx: unknown): ctx is GridEditContext; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[mdGridEditTemplate]", never, {}, {}, never, never, true, never>; } type ClassValue = string | Record; type HeaderClassContext = { column: GridColumn; }; type CellClassContext = { row: T; column: GridColumn; value: any; }; type HeaderClassFn = (data: HeaderClassContext) => ClassValue; type CellClassFn = (data: CellClassContext) => ClassValue; declare class MDGridColumnDirective implements GridColumn, OnChanges { name?: string; prop?: string; mobileRole: GridColumnMobileRole; width?: number; minWidth: number; maxWidth: number; flex: number; suppressSizeToFit: boolean; suppressAutoSize: boolean; resizeable: boolean; pinned: ColumnPinnedType; sortable: boolean; comparator?: (valueA: any, valueB: any, rowA: T, rowB: T, sortDir: SortDirection) => number; pipe?: PipeTransform; headerClass: string | HeaderClassFn; cellClass: string | CellClassFn; cellTemplate?: TemplateRef>; colDefChange: EventEmitter; private contentCellTemplate?; get resolvedCellTemplate(): TemplateRef> | undefined; headerTemplate?: TemplateRef>; private contentHeaderTemplate?; get resolvedHeaderTemplate(): TemplateRef> | undefined; editTemplate: TemplateRef>; private contentEditTemplate?; get resolvedEditTemplate(): TemplateRef> | undefined; flexOverridden: boolean; get resolvedFlex(): number | null; actualWidth: number; $$id: string; getValue(row: T): any; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; getActualWidth(): number; setActualWidth(actualWidth: number, source: ColumnEventType): void; resetActualWidth(source: ColumnEventType): void; private calculateColInitialWidth; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "md-grid-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "mobileRole": { "alias": "mobileRole"; "required": false; }; "width": { "alias": "width"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "flex": { "alias": "flex"; "required": false; }; "suppressSizeToFit": { "alias": "suppressSizeToFit"; "required": false; }; "suppressAutoSize": { "alias": "suppressAutoSize"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "pinned": { "alias": "pinned"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "editTemplate": { "alias": "editTemplate"; "required": false; }; }, { "colDefChange": "colDefChange"; }, ["contentCellTemplate", "contentHeaderTemplate", "contentEditTemplate"], never, true, never>; static ngAcceptInputType_width: unknown; static ngAcceptInputType_minWidth: unknown; static ngAcceptInputType_maxWidth: unknown; static ngAcceptInputType_flex: unknown; static ngAcceptInputType_suppressSizeToFit: unknown; static ngAcceptInputType_suppressAutoSize: unknown; static ngAcceptInputType_resizeable: unknown; static ngAcceptInputType_sortable: unknown; } declare class MDGridIdColumnDirective implements OnInit { private column; constructor(column: MDGridColumnDirective); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDGridActionsColumnDirective implements OnInit { private column; constructor(column: MDGridColumnDirective); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDGridToolbarTemplateDirective { templateRef: TemplateRef; constructor(templateRef: TemplateRef); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDGridComponent = any> implements AfterContentInit, OnChanges { private _cdr; private host; private zone; rows: T[]; trackByKey: null; groupRowsBy?: keyof T | ((row: T) => any); groupHeaderTemplate?: TemplateRef<{ group: GroupedRows; }>; rowActionsTemplate?: TemplateRef<{ row: T; rowIndex: number; isEditing: boolean; editFn: () => void; saveFn: () => void; cancelFn: () => void; }>; headerHeight: number; cardHeight: number | 'auto'; gap: number; defaultColumnWidth: number; showRowActions: boolean; emptyMessage: string; emptyTemplate?: TemplateRef; enableColumnResize: boolean; defaultMinColumnWidth: number; defaultMaxColumnWidth: number; columnResize: EventEmitter; sorts: SortPropDir[]; sortType: SortType; mdSortActive: string; mdSortDirection: string; externalSorting: boolean; enableClearingSortState: boolean; sortAscendingIcon?: string; sortDescendingIcon?: string; sortUnsetIcon?: string; sort: EventEmitter; limit: number; offset: number; count?: number; externalPaging: boolean; showFooter: boolean; footerHeight: number; autosizeStrategy: AutosizeStrategy; pageSizeOptions: number[]; page: EventEmitter; pageSizeChange: EventEmitter; editingRow: T | null; editingRowChange: EventEmitter; rowEditStart: EventEmitter>; rowEditSave: EventEmitter>; rowEditCancel: EventEmitter>; inited: EventEmitter; firstTimeVisible: EventEmitter; layoutReady: EventEmitter; _columnDirectives: QueryList>; toolbarTemplate?: MDGridToolbarTemplateDirective; columns__: i0.Signal[]>; columnsObs: rxjs.Observable[]>; _displayRows: T[]; _groupedRows: GroupedRows[] | null; private _originalEditRow; _editingRowCopy: T | null; _editingRowIndex: number; _resizingColumn: MDGridColumnDirective | null; private _resizeStartX; private _resizeStartWidth; get totalSpace(): number; get columns(): MDGridColumnDirective[]; get toolbarContext(): MDGridToolbarContext; gridInited: boolean; get actualWidthSum(): number; ngAfterContentInit(): Promise; private waitForFonts; private observeGridResize; private watchColumnDefinitions; sizeColumnsToFit(): void; autoSize(): void; resetFlexSizing(): void; sizeToFitCellContents(defaultMinColumnWidth: number | null, defaultMaxColumnWidth: number | null): void; ngOnChanges(changes: SimpleChanges): void; hasHorizontalScroll: boolean; hasVerticalScroll: boolean; private applyInitialColumnSizing; private refreshLayoutAfterConsumerSizing; private refreshFlexedLayout; private updateScrollState; ngOnDestroy(): void; editRow(row: T): void; editRow(index: number): void; saveRow(): void; saveRow(row: T): void; cancelEdit(): void; isEditing(row: T): boolean; getEditingCopy(row: T): T | null; currentSortCol: MDGridColumnDirective | null; currentSortDirection: SortDirection | undefined; start: SortDirection; onColumnSort(column: MDGridColumnDirective): void; getSortDir(column: MDGridColumnDirective): SortDirection | undefined; getSortClass(column: MDGridColumnDirective): string; isColumnResizeable(column: MDGridColumnDirective): boolean; isFirstActionColumn(column: MDGridColumnDirective): boolean; isLastActionColumn(column: MDGridColumnDirective): boolean; onResizeStart(event: MouseEvent, column: MDGridColumnDirective): void; private _onResizeMove; private _onResizeEnd; get _paginatorCount(): number; onPaginatorPage(event: PaginatorPageEvent): void; onPaginatorPageSizeChange(newSize: number): void; setPage(offset: number): void; get totalPages(): number; get currentPage(): number; getCellValue(row: T, column: MDGridColumnDirective): any; getTemplateRow(row: T): T; trackByRow: (index: number, row: T) => any; trackByColumn: (index: number, column: MDGridColumnDirective) => string; trackByGroup: (index: number, group: GroupedRows) => any; private _processRows; private _handleEditingRowChange; private _clearEditState; cells: i0.Signal[]>; cellsObs: rxjs.Observable[]>; getColAfter(col: GridColumn): MDGridColumnDirective | null; setColumnWidths(columnWidths: { key: MDGridColumnDirective; newWidth: number; }[], shiftKey: boolean): void; resizeColumnSets(resizeSets: ColumnResizeSet[]): void; requestAnimationFrameId: number; isSyncing: boolean; headerScroll: ElementRef; bodyScroll: ElementRef; private destroyFns; syncScroll(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "md-grid", ["mdGrid"], { "rows": { "alias": "rows"; "required": false; }; "trackByKey": { "alias": "trackByKey"; "required": false; }; "groupRowsBy": { "alias": "groupRowsBy"; "required": false; }; "groupHeaderTemplate": { "alias": "groupHeaderTemplate"; "required": false; }; "rowActionsTemplate": { "alias": "rowActionsTemplate"; "required": false; }; "headerHeight": { "alias": "headerHeight"; "required": false; }; "cardHeight": { "alias": "cardHeight"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "defaultColumnWidth": { "alias": "defaultColumnWidth"; "required": false; }; "showRowActions": { "alias": "showRowActions"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "enableColumnResize": { "alias": "enableColumnResize"; "required": false; }; "defaultMinColumnWidth": { "alias": "defaultMinColumnWidth"; "required": false; }; "defaultMaxColumnWidth": { "alias": "defaultMaxColumnWidth"; "required": false; }; "sorts": { "alias": "sorts"; "required": false; }; "sortType": { "alias": "sortType"; "required": false; }; "mdSortActive": { "alias": "mdSortActive"; "required": false; }; "mdSortDirection": { "alias": "mdSortDirection"; "required": false; }; "externalSorting": { "alias": "externalSorting"; "required": false; }; "enableClearingSortState": { "alias": "enableClearingSortState"; "required": false; }; "sortAscendingIcon": { "alias": "sortAscendingIcon"; "required": false; }; "sortDescendingIcon": { "alias": "sortDescendingIcon"; "required": false; }; "sortUnsetIcon": { "alias": "sortUnsetIcon"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "count": { "alias": "count"; "required": false; }; "externalPaging": { "alias": "externalPaging"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "footerHeight": { "alias": "footerHeight"; "required": false; }; "autosizeStrategy": { "alias": "autosizeStrategy"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "editingRow": { "alias": "editingRow"; "required": false; }; }, { "columnResize": "columnResize"; "sort": "sort"; "page": "page"; "pageSizeChange": "pageSizeChange"; "editingRowChange": "editingRowChange"; "rowEditStart": "rowEditStart"; "rowEditSave": "rowEditSave"; "rowEditCancel": "rowEditCancel"; "inited": "inited"; "firstTimeVisible": "firstTimeVisible"; "layoutReady": "layoutReady"; }, ["columns__", "toolbarTemplate", "_columnDirectives"], never, true, never>; static ngAcceptInputType_headerHeight: unknown; static ngAcceptInputType_gap: unknown; static ngAcceptInputType_defaultColumnWidth: unknown; static ngAcceptInputType_showRowActions: unknown; static ngAcceptInputType_enableColumnResize: unknown; static ngAcceptInputType_defaultMinColumnWidth: unknown; static ngAcceptInputType_defaultMaxColumnWidth: unknown; static ngAcceptInputType_externalSorting: unknown; static ngAcceptInputType_enableClearingSortState: unknown; static ngAcceptInputType_limit: unknown; static ngAcceptInputType_offset: unknown; static ngAcceptInputType_count: unknown; static ngAcceptInputType_externalPaging: unknown; static ngAcceptInputType_showFooter: unknown; static ngAcceptInputType_footerHeight: unknown; } interface ColumnResizeSet { columns: MDGridColumnDirective[]; ratios: number[]; width: number; } interface MDGridToolbarContext = any> { $implicit: MDGridComponent; grid: MDGridComponent; } type AutosizeStrategy = 'fitGridWidth' | 'fitCellContents'; declare class MDGridAutoSizeDirective { grid?: MDGridComponent; onClick(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDGridResetFlexSizingDirective { grid?: MDGridComponent; onClick(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class MDGridModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } /** * Group rows by a property */ declare function groupRowsByProperty(rows: T[], groupBy: keyof T | ((row: T) => any)): GroupedRows[]; /** * Sort rows by sort configuration */ declare function sortRows(rows: T[], sorts: SortPropDir[], columns: MDGridColumnDirective[]): T[]; /** * MD Paginator Component * * A standalone paginator with first/prev/next/last navigation. * Can be used independently or together with md-grid. * * @example * ```html * * * * ``` */ declare class MDPaginatorComponent { /** Current page offset (0-indexed) */ offset: number; /** Page size (items per page) */ limit: number; /** Total items count */ count: number; /** Height of the paginator in pixels */ height: number; /** Show first/last page buttons */ showFirstLast: boolean; /** Available page size options for the dropdown. Empty array hides the dropdown. */ pageSizeOptions: number[]; /** Page change event */ page: EventEmitter; /** Emitted when page size changes via the dropdown */ pageSizeChange: EventEmitter; /** Total number of pages */ get totalPages(): number; /** Current page number (1-indexed for display) */ get currentPage(): number; /** Navigate to a specific page (0-indexed offset) */ setPage(offset: number): void; /** Go to first page */ firstPage(): void; /** Go to previous page */ prevPage(): void; /** Go to next page */ nextPage(): void; /** Go to last page */ lastPage(): void; /** Handle page size change from dropdown */ onPageSizeChange(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_offset: unknown; static ngAcceptInputType_limit: unknown; static ngAcceptInputType_count: unknown; static ngAcceptInputType_height: unknown; static ngAcceptInputType_showFirstLast: unknown; } declare class MDPaginatorModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { ACCORDION, CARD_CONFIG, CardSimpleComponent, CentralPageComponent, CentralPageRowComponent, CollapseComponent, CollapseSetComponent, DIALOG_DATA, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DialogState, EXPANSION_PANEL_DEFAULT_OPTIONS, ErrorStateMatcher, ExpansionPanelActionRow, ExpansionPanelDescription, ExpansionPanelTitle, FillComponent, FilteredFieldContainerComponent, FilteredFieldItemComponent, FilteredFieldService, FiltredItemModel, INK_BAR_POSITIONER, INK_BAR_POSITIONER_FACTORY, InkBar, MDAccordion, MDAutocomplete, MDAutocompleteModule, MDAutocompleteOrigin, MDAutocompleteSelectedEvent, MDAutocompleteTrigger, MDCard, MDCardActions, MDCardAvatar, MDCardContent, MDCardFooter, MDCardHeader, MDCardImage, MDCardLgImage, MDCardMdImage, MDCardModule, MDCardSmImage, MDCardSubtitle, MDCardTitle, MDCardTitleGroup, MDCardXlImage, MDCheckBox, MDCheckBoxModule, MDCheckboxChange, MDChip, MDChipAvatar, MDChipEdit, MDChipEditInput, MDChipGrid, MDChipGridChange, MDChipInput, MDChipListbox, MDChipListboxChange, MDChipOption, MDChipRemove, MDChipRow, MDChipSelectionChange, MDChipSet, MDChipTrailingIcon, MDChipsModule, MDCollapseModule, MDContextMenuTrigger, MDDialog, MDDialogActions, MDDialogClose, MDDialogContainer, MDDialogContent, MDDialogTitle, MDExpansionPanel, MDExpansionPanelContent, MDExpansionPanelHeader, MDGridActionsColumnDirective, MDGridAutoSizeDirective, MDGridCellTemplateDirective, MDGridColumnDirective, MDGridComponent, MDGridEditTemplateDirective, MDGridHeaderTemplateDirective, MDGridIdColumnDirective, MDGridModule, MDGridResetFlexSizingDirective, MDGridToolbarTemplateDirective, MDHeaderCardComponent, MDHeaderCardModule, MDHeaderCardSetComponent, MDMenu, MDMenuContent, MDMenuItem, MDMenuModule, MDMenuTrigger, MDModalModule, MDOption, MDOptionGroup, MDOptionModule, MDOptionSelectionChange, MDPaginatorComponent, MDPaginatorModule, MDPseudoCheckboxModule, MDRadioButton, MDRadioGroup, MDRadioModule, MDSelect, MDSelectModule, MDSelectTrigger, MDStep, MDStepContent, MDStepExecutorModule, MDStepFooter, MDStepHeader, MDStepLabel, MDStepper, MDStepperIcon, MDStepperNext, MDStepperPrevious, MDSwitch, MDSwitchModule, MDTab, MDTabBody, MDTabChangeEvent, MDTabContent, MDTabGroup, MDTabHeader, MDTabLabel, MDTabLabelWrapper, MDTabLink, MDTabNav, MDTabNavPanel, MDTabsModule, MD_AUTOCOMPLETE_DEFAULT_OPTIONS, MD_AUTOCOMPLETE_SCROLL_STRATEGY, MD_AUTOCOMPLETE_VALUE_ACCESSOR, MD_CHIP, MD_CHIPS_DEFAULT_OPTIONS, MD_CHIP_AVATAR, MD_CHIP_EDIT, MD_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR, MD_CHIP_REMOVE, MD_CHIP_TRAILING_ICON, MD_EXPANSION_PANEL, MD_MENU_CONTENT, MD_MENU_DEFAULT_OPTIONS, MD_MENU_PANEL, MD_MENU_SCROLL_STRATEGY, MD_OPTION_PARENT_COMPONENT, MD_RADIO_GROUP, MD_SELECT_TRIGGER, MD_TAB, MD_TAB_LABEL, MENU_PANEL_TOP_PADDING, ManagePageComponent, MefDevCardModule, MefDevCollapseModule, MefDevDialogConfig, MefDevDialogRef, MefDevDropDownMenuModule, MefDevFilteredFieldModule, MefDevModalModule, MefDevOptionComponent, MefDevPageLayoutsModule, MefDevProgressComponent, MefDevProgressModule, MefDevSelectComponent, MefDevSelectModule, MefDevStepExecutorModule, MefDevSwitchComponent, MefDevSwitchModule, MefDevTabBodyComponent, MefDevTabComponent, MefDevTabLabelDirective, MefDevTabSetComponent, MefDevTabsInkBarDirective, MefDevTabsModule, MefDevTabsNavComponent, MefdevDropdownMenuComponent, MefdevExecutorPageComponent, ModalSize, OptionPipe, PaginatedTabHeader, ProgressConfig, PseudoCheckbox, RADIO_GROUP_CONTROL_VALUE_ACCESSOR, RadioChange, RightFilterComponent, STEPPER_INTL_PROVIDER, STEPPER_INTL_PROVIDER_FACTORY, SelectChange, ShowOnDirtyErrorStateMatcher, SlideRightComponent, SlideUpComponent, SortDirection, SortType, StageComponent, StepExecutorComponent, StepperErrorStateMatcher, StepperIntl, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TabBodyPortal, TabChangeEvent, TablePageComponent, TransitionCheckState, _ErrorStateTracker, _closeDialogVia, _countGroupLabelsBeforeOption, _getOptionScrollPosition, components, getMDAutocompleteMissingPanelError, getMDSelectDynamicMultipleError, getMDSelectNonArrayValueError, getMDSelectNonFunctionValueError, groupRowsByProperty, mefDevCardComponents, mefDevCollapseModuleComponents, sortRows }; export type { AccordionBase, AccordionDisplayMode, AccordionTogglePosition, AnimatedInterface, AutoFocusTarget, CardAppearance, CardConfig, CardsGridEditContext, CheckboxClickAction, DialogPosition, DialogRole, ExpansionPanelBase, ExpansionPanelDefaultOptions, ExpansionPanelState, GridCellContext, GridColumn, GridColumnMobileRole, GridColumnResizeEvent, GridEditContext, GridHeaderContext, GridPageEvent, GridRowEditEvent, GridSortEvent, GroupedRows, MDAutocompleteActivatedEvent, MDChipEditedEvent, MDChipEvent, MDChipInputEvent, MDChipTextControl, MDChipsDefaultOptions, MDMenuDefaultOptions, MDMenuPanel, MDOptionParentComponent, MDPaginatedStepHeaderItem, MdAutocompleteDefaultOptions, MenuCloseReason, MenuPositionX, MenuPositionY, PaginatorPageEvent, PseudoCheckboxState, ScrollDirection, SeparatorKey, SortPropDir, StepperIconContext, TabBodyOriginState, TabBodyPositionState, TabGroupBaseHeader, TabHeaderPosition, TabPosition, TabPositionMode, TabType, TabsConfig, ToggleSwitchChangeEvent }; //# sourceMappingURL=index.d.ts.map