carbon-components-angular
Version:
Next generation components
123 lines (119 loc) • 3.57 kB
TypeScript
/**
*
* carbon-angular v0.0.0 | dialog-config.interface.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 { ElementRef, TemplateRef } from "@angular/core";
/**
* An enum of the various reasons a dialog may close. For use with `CloseMeta` and `shouldClose`
*
* It's expected that `interaction` will be a common closure reason.
*/
export declare enum CloseReasons {
/**
* For when the component is closed by being destroyed
*/
destroyed = 0,
/**
* For use in cases where the dialog closes for programmatic reasons other than destruction
*/
programmatic = 1,
/**
* interaction reasons will also provide a target for the interaction
*/
interaction = 2,
/**
* For use in cases where the dialog closes due to being hidden
*/
hidden = 3
}
/**
* Interface representing various metadata that can be passed to `shouldClose` and the `close` event
*/
export interface CloseMeta {
reason: CloseReasons;
target?: EventTarget;
}
/**
* Data structure for definig properties of a `Dialog` component.
**/
export interface DialogConfig {
/**
* Title for the `Dialog` header.
*/
title?: string;
/**
* Body content for the `Dialog`.
*/
content: string | TemplateRef<any>;
/**
* Parameter for triggering `Dialog` display.
*/
trigger?: "click" | "hover" | "mouseenter";
/**
* Parameter for triggering the `Dialog` close event.
*/
closeTrigger?: "mouseout" | "mouseleave";
/**
* Callback to control the closing behaviour. return `true` to close, and `false` to prevent closing
*/
shouldClose?: (meta?: CloseMeta) => boolean;
/**
* If true the dialog will close when hidden (by scrolling or otherwise going out of the viewport)
* If false the dialog will stay open until explicitly closed
* When true this closure method can be picked up via `CloseReasons.hidden`
*/
closeWhenHidden?: boolean;
/**
* Parameter defining the placement in which the `Dialog` appears.
*/
placement?: string;
/**
* Used to set the offset of the `Dialog` relative to the content it
* is associated to.
*/
gap?: number;
/**
* Reference to the Parent element that links the `Dialog`.
*/
parentRef?: ElementRef;
/**
* Set to `true` to open the dialog next to the triggering component
*/
appendInline?: boolean;
/**
* Config object passed to the rendered component. (Optional)
*/
data?: Object;
/**
* Additional arbitrary properties (mostly for internal/extended component use)
*/
[propName: string]: any;
/**
* Classes to add to the dialog container
*/
wrapperClass?: string;
/**
* This specifies any vertical and horizontal offset for the position of the dialog
*/
offset?: {
x: number;
y: number;
};
/**
* This prevents the dialog from being toggled
*/
disabled?: boolean;
}