carbon-components-angular
Version:
Next generation components
100 lines (96 loc) • 3.91 kB
TypeScript
/**
*
* carbon-angular v0.0.0 | combo-button.component.d.ts
*
* Copyright 2014, 2025 IBM
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from "@angular/core";
import { ContextMenuItemComponent, ItemClickEvent } from "carbon-components-angular/context-menu";
import * as i0 from "@angular/core";
declare type ComboButtonPlacement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end";
export declare class ComboButtonComponent implements OnChanges, AfterViewInit, OnDestroy {
protected ngZone: NgZone;
protected renderer: Renderer2;
protected hostElement: ElementRef;
protected viewContainerRef: ViewContainerRef;
protected changeDetectorRef: ChangeDetectorRef;
static comboButtonCounter: number;
comboId: string;
set projectedMenuItems(itemList: QueryList<ContextMenuItemComponent>);
size: "sm" | "md" | "lg";
label: string;
disabled: boolean;
menuAlignment: ComboButtonPlacement;
description: string;
tooltipAutoAlign: boolean;
tooltipPlacement: string;
open: boolean;
actionClick: EventEmitter<Event>;
comboButtonContainer: boolean;
get sizeLg(): boolean;
get sizeMd(): boolean;
get sizeSm(): boolean;
get ariaOwns(): string;
menuTemplate: TemplateRef<any>;
protected documentClick: any;
protected unmountFloatingElement: Function;
private subscriptions;
private _alignment;
private menuRef;
constructor(ngZone: NgZone, renderer: Renderer2, hostElement: ElementRef, viewContainerRef: ViewContainerRef, changeDetectorRef: ChangeDetectorRef);
/**
* In case user updates alignment, store initial value.
* This allows us to test user passed alignment on each open
*/
ngOnChanges(changes: SimpleChanges): void;
/**
* If user has passed in true for open, we dynamically open the menu
*/
ngAfterViewInit(): void;
/**
* Clean up Floating-ui & subscriptions
*/
ngOnDestroy(): void;
/**
* As of now, menu button does not support nexted menu, on button click it should close
*/
handleMenuItemClick(event: ItemClickEvent): void;
/**
* On body click, close the menu
* @param event
*/
handleFocusOut(event: any): void;
/**
* Clean up `autoUpdate` if auto alignment is enabled
*/
cleanUp(): void;
/**
* On action click, notify user
* If the menu is open, close the menu
* @param event
*/
onActionClick(event: PointerEvent): void;
/**
* Handles emitting open/close event
*/
toggleMenu(): void;
roundByDPR(value: any): number;
/**
* Compute position of menu
*/
recomputePosition(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ComboButtonComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ComboButtonComponent, "cds-combo-button", never, { "comboId": "comboId"; "size": "size"; "label": "label"; "disabled": "disabled"; "menuAlignment": "menuAlignment"; "description": "description"; "tooltipAutoAlign": "tooltipAutoAlign"; "tooltipPlacement": "tooltipPlacement"; "open": "open"; }, { "actionClick": "actionClick"; }, ["projectedMenuItems"], ["cds-menu-item, cds-menu-divider"], false>;
}
export {};