UNPKG

@flk/modal

Version:

Modal popup for Falak framework

70 lines (53 loc) 4.15 kB
# Modal A simple lightweight modal implementation for `FalakJS`. # Installation `flk install flk-modal` # Table of contents - [Modal](#modal) - [Installation](#installation) - [Table of contents](#table-of-contents) - [Usage](#usage) - [Using the close event](#using-the-close-event) - [Available attributes](#available-attributes) - [Configurations](#configurations) # Usage In any component you want to use the modal, just include it with an `if statement`. `home-page.component.html` ```html <h1>Home sweet home</h1> <flk-modal *if="this.showProfile" header="My profile info"> <!-- Modal body here --> </flk-modal> ``` ## Using the close event As the `*if` statement is used to initialize the modal component, we need to tell the component when it closes to change our `if` criteria so the modal no longer be opened. `close` event handles this case. `home-page.component.html` ```html <h1>Home sweet home</h1> <flk-modal *if="this.showProfile" (close)="this.showProfile = null" header="My profile info"> <!-- Modal body here --> </flk-modal> ``` So when the modal is closed, it changes our opening condition to be `null` thus the modal no longer is opened until the condition `showProfile` is set to `true` again. The `header` attribute is used to set the modal header text, it could be used as a `static` attribute `header="header text"` or a dynamic attribute `[header]="this.profileHeader"`. # Available attributes Here is the full list of attributes | Attribute | Type | Default value | Description | | ------------------ | -------------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------------------- | | **header** | [option](https://github.com/falakjs/Falak/wiki/Component-UI#options) | `N/a` | Modal header text. | | **id** | [option](https://github.com/falakjs/Falak/wiki/Component-UI#options) | `Random string` | Modal id for more control. | | **class** | [option](https://github.com/falakjs/Falak/wiki/Component-UI#options) | `Random string` | The class is passed to the `modal content` wrapper. | | **close-keyboard** | [prop](https://github.com/falakjs/Falak/wiki/Component-UI#props) | `true` | If set to true, the modal will be closed when the user presses `esc` key. | | **close-btn** | [prop](https://github.com/falakjs/Falak/wiki/Component-UI#props) | `true` | If set to true, the modal will be closed when the user clicks on the top `close` icon. | | **close-backdrop** | [prop](https://github.com/falakjs/Falak/wiki/Component-UI#props) | `true` | If set to true, the modal will be closed when the user presses on the dimmed overlay. | | **theme** | [prop](https://github.com/falakjs/Falak/wiki/Component-UI#props) | `default` | Default theme is white modal, available options `default`, `dark`, `dark-transparent`. | # Configurations The following list could be set as default value in the `config.js` file **Main Configuration key**: `modal` | key | Type | Default value | Description | | -------- | --------- | ------------- | ------------------------------------------------------------------ | | keyboard | `Boolean` | **true** | Close the modal when user presses the `esc` key. | | closeBtn | `boolean` | **true** | Close the modal when user click on the `close` icon. | | backdrop | `boolean` | **true** | Close the modal when the user presses on the dimmed overlay. icon. | | theme | `string` | **default** | Modal theme, available options `default`, `dark`, `dark-transparent`. |