UNPKG

carbon-components-angular

Version:
123 lines (119 loc) 3.57 kB
/** * * 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; }