gd-bs
Version:
Bootstrap JavaScript, TypeScript and Web Components library.
118 lines (103 loc) • 3.19 kB
TypeScript
/**
* <div id="demo"></div>
* <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/gd-sprest-bs/5.0.3/gd-sprest-bs.min.js"></script>
* <script type="text/javascript">
* // Wait for the window to be loaded
* window.addEventListener("load", function() {
* // Create the popover element
* var elContent = document.createElement("div");
* elContent.classList.add("m-2");
* elContent.innerHTML = "This is the popover content.";
*
* // Render the popover
* $REST.Components.Popover({
* el: document.querySelector("#demo"),
* className: "m-2",
* title: "My Popover",
* btnProps: {
* text: "Popover Demo",
* type: $REST.Components.ButtonTypes.OutlineDark
* },
* options: {
* content: elContent,
* trigger: "focus"
* }
* });
* });
* </script>
*/
/**
* ### Popover
*
* ```ts
* import { Components } from "gd-sprest-bs";
*
* // Create the popover
* let el = document.querySelector("#popover");
* let popover = Components.Popover({
* el: el,
* className: "m-2",
* text: "My Popover",
* btnProps: {
* text: "Popover Demo",
* type: Components.ButtonTypes.OutlineDark
* },
* options: {
* content: elContent,
* trigger: "focus"
* }
* });
* ```
*/
export const Popover: (props: IPopoverProps, template?: string) => IPopover;
/**
* Popover Placements
*/
export const PopoverPlacements: IFloatingUIPlacements;
/**
* Popover Types
*/
export const PopoverTypes: IFloatingUITypes;
import { IBaseProps } from "../types";
import { IButtonProps } from "../button/types";
import { IFloatingUI, IFloatingUIOptions, IFloatingUIPlacements, IFloatingUITypes } from "../floating-ui/types";
/**
* Popover
*/
export interface IPopover {
/** The element. */
el: HTMLElement;
/** The floating ui instance. */
floatingUI: IFloatingUI;
/** Enables the popover. */
enable: () => void;
/** Hides an element’s popover. */
hide: () => void;
/** True if the popover is visible, false otherwise. */
isVisible: boolean;
/** Toggles an element's popover. */
toggle: () => void;
/** Sets the body element of the popover. */
setBody: (content: string | Element) => void;
/** Sets the floating ui content. */
setContent: (content: string | Element) => void;
/** Sets the header element of the popover. */
setHeader: (content: string | Element) => void;
/** Reveals an element’s popover. */
show: () => void;
}
/**
* Popover Properties
*/
export interface IPopoverProps extends IBaseProps<IPopover> {
btnProps?: IButtonProps;
classNameBody?: string;
classNameHeader?: string;
isDismissible?: boolean;
options?: IFloatingUIOptions;
placement?: number;
show?: boolean;
target?: HTMLElement,
title?: string;
type?: number;
}