gd-bs
Version:
Bootstrap JavaScript, TypeScript and Web Components library.
177 lines (156 loc) • 4.69 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() {
* // Offcanvas elements should be added to the body
* var elOffcanvas = document.querySelector("#offcanvas-demo");
* if(elOffcanvas === null) {
* elOffcanvas = document.createElement("div");
* elOffcanvas.id = "offcanvas-demo";
* document.body.appendChild(elOffcanvas);
* }
*
* // Create the offcanvas
* var offcanvas = $REST.Components.Offcanvas({
* el: elOffcanvas,
* id: "offcanvasDemo",
* title: "Offcanvas Demo",
* body: "This is the body of the offcanvas.",
* type: $REST.Components.OffcanvasTypes.End
* });
*
* // Create the button
* $REST.Components.Button({
* el: document.querySelector("#demo"),
* text: "Show Offcanvas",
* toggleObj: offcanvas
* });
* });
* </script>
*/
/**
* Offcanvas
*
* ```ts
* import { Components } from "gd-sprest-bs";
*
* // Offcanvas elements should be added to the body
* var elOffcanvas = document.querySelector("#offcanvas-demo");
* if(elOffcanvas === null) {
* elOffcanvas = document.createElement("div");
* elOffcanvas.id = "offcanvas-demo";
* document.body.appendChild(elOffcanvas);
* }
*
* // Create the offcanvas
* let el = document.querySelector("#offcanvasDemo");
* let offcanvas = Components.Offcanvas({
* el: el,
* id: "offcanvasDemo",
* title: "Offcanvas Demo",
* body: "This is the body of the offcanvas.",
* type: Components.OffcanvasTypes.End
* });
*
* // Create the button
* Components.Button({
* el: document.querySelector("#offcanvasDemo"),
* text: "Show Offcanvas",
* toggleObj: offcanvas
* });
* ```
*/
export const Offcanvas: (props: IOffcanvasProps, template?: string) => IOffcanvas;
/**
* Offcanvas Sizes
*/
export const OffcanvasSize: IOffcanvasSize;
/**
* Offcanvas Types
*/
export const OffcanvasTypes: IOffcanvasTypes;
import { IBaseProps } from "../types";
/**
* Offcanvas
*/
export interface IOffcanvas {
/** The element. */
el: HTMLElement;
/** Hides a collapsible element. */
hide: () => void;
/** Returns true if the modal is visible. */
isVisible: boolean;
/** Updates the auto close flag. */
setAutoClose: (value: boolean) => void;
/** Updates the size. */
setSize: (canvasSize: number) => void;
/** Updates the type. */
setType: (canvasType: number) => void;
/** Shows a collapsible element. */
show: () => void;
/** Toggles the collapsible element on invocation. */
toggle: () => void;
}
/**
* Offcanvas Properties
*/
export interface IOffcanvasProps<T = HTMLElement> extends IBaseProps<IOffcanvas> {
body?: string | T;
data?: any;
id?: string;
onClose?: (el: HTMLDivElement) => void;
onRenderBody?: (el?: HTMLDivElement, props?: IOffcanvasProps) => void;
onRenderHeader?: (el?: HTMLDivElement, props?: IOffcanvasProps) => void;
options?: IOffcanvasOptions;
size?: number;
title?: string | T;
type?: number;
}
/**
* Offcanvas Options
*/
export interface IOffcanvasOptions {
/** True to automatically close the offcanvas when clicking outside of it. */
autoClose?: boolean;
/** True to enable the backdrop when the offcanvas is visible. */
backdrop?: boolean;
/** Puts the focus on the offcanvas when initialized. */
focus?: boolean;
/** Closes the offcanvas when escape key is pressed. */
keyboard?: boolean;
/** True to enable scrolling of the background. */
scroll?: boolean;
/** True to toggle the offcanvas on creation. */
visible?: boolean;
}
/**
* Offcanvas Size
*/
export type IOffcanvasSize = {
Small: number;
Small1: number;
Small2: number;
Small3: number;
Medium: number;
Medium1: number;
Medium2: number;
Medium3: number;
Large: number;
Large1: number;
Large2: number;
Large3: number;
XLarge: number;
XXLarge: number;
Full: number;
}
/**
* Offcanvas Types
*/
export type IOffcanvasTypes = {
Bottom: number;
End: number;
Start: number;
Top: number;
}