Angular Data GridPlugin: Dialog
Description
The dialog plugin provides a modal dialog system for Handsontable. It allows you to display custom content in modal dialogs that overlay the table, providing a way to show notifications, error messages, loading indicators, or any other interactive content.
In order to enable the dialog mechanism, Options#dialog option must be set to true.
The plugin provides several configuration options to customize the dialog behavior and appearance:
template: The template to use for the dialog (default:null). The error will be thrown when the template is provided together with thecontentoption.type: The type of the template ('confirm')title: The title of the dialogdescription: The description of the dialog (default: '')buttons: The buttons to display in the dialog (default: [])text: The text of the buttontype: The type of the button ('primary' | 'secondary')callback: The callback to trigger when the button is clicked
content: The string or HTMLElement content to display in the dialog (default: '')customClassName: Custom class name to apply to the dialog (default: '')background: Dialog background variant 'solid' | 'semi-transparent' (default: 'solid')contentBackground: Whether to show content background (default: false)animation: Whether to enable animations (default: true)closable: Whether the dialog can be closed (default: false)a11y: Object with accessibility options (default object below)role: The role of the dialog ('dialog' | 'alertdialog') (default: 'dialog')ariaLabel: The label of the dialog (default: 'Dialog')ariaLabelledby: The ID of the element that labels the dialog (default: '')ariaDescribedby: The ID of the element that describes the dialog (default: ''),
Example
hotSettings: Handsontable.GridSettings = {
data: data,
dialog: {
customClassName: 'angular-dialog',
closable: true
}
}
<hot-table
[settings]="hotSettings">
</hot-table>
Options
dialog
Source codedialog.dialog : boolean | object
The dialog option configures the Dialog plugin.
You can set the dialog option to one of the following:
| Setting | Description |
|---|---|
false | Disable the Dialog plugin |
true | Enable the Dialog plugin with default options |
dialog: Additional options
| Option | Possible settings | Description |
|---|---|---|
template | Object with the template configuration (default: null). | The template of the dialog allows to use prebuild templates |
template.type | The type of the template ('confirm') | The type of the template |
template.title | The title of the template | The title of the template |
template.description | The description of the template | The description of the template |
template.buttons | Array of objects with the buttons configuration (default: []) | The buttons of the template |
template.buttons.text | The text of the button | The text of the button |
template.buttons.type | The type of the button ('primary' | 'secondary') |
template.buttons.callback | The callback function to trigger when the button is clicked | The callback function to trigger when the button is clicked |
content | A string, HTMLElement or DocumentFragment (default: '') | The content of the dialog |
customClassName | A string (default: '') | The custom class name of the dialog |
background | One of the options: 'solid' or 'semi-transparent' (default: 'solid') | The background of the dialog |
contentBackground | Boolean (default: false) | Whether to show the content background |
animation | Boolean (default: true) | Whether to show the animation |
closable | Boolean (default: false) | Whether to make the dialog closable |
a11y | Object with accessibility options (default: { role: 'dialog', ariaLabel: 'Dialog', ariaLabelledby: '', ariaDescribedby: '' }) | Accessibility options for the dialog |
a11y.role | The role of the dialog ('dialog' | 'alertdialog') |
a11y.ariaLabel | The label of the dialog | The label of the dialog |
a11y.ariaLabelledby | The ID of the element that labels the dialog | The ID of the element that labels the dialog |
a11y.ariaDescribedby | The ID of the element that describes the dialog | The ID of the element that describes the dialog |
Read more:
Default: false
Since: 16.1.0
Example
settings = {
dialog: {
content: 'Dialog content',
customClassName: 'custom-dialog',
background: 'semi-transparent',
contentBackground: false,
animation: false,
closable: true,
a11y: {
role: 'dialog',
ariaLabel: 'Dialog',
ariaLabelledby: 'titleID',
ariaDescribedby: 'descriptionID',
}
}
};
// enable the Dialog plugin using a template
settings = {
dialog: {
template: {
type: 'confirm',
title: 'Confirm',
description: 'Do you want change the value?',
}
}
};
<hot-table [settings]="settings" />
Methods
destroy
Source codedialog.destroy()
Destroy dialog and reset plugin state.
disablePlugin
Source codedialog.disablePlugin()
Disable plugin for this Handsontable instance.
enablePlugin
Source codedialog.enablePlugin()
Enable plugin for this Handsontable instance.
focus
Source codedialog.focus()
Focus the dialog.
hide
Source codedialog.hide()
Hide the currently open dialog. Closes the dialog and restores the focus to the table.
isEnabled
Source codedialog.isEnabled() ⇒ boolean
Check if the plugin is enabled in the handsontable settings.
isVisible
Source codedialog.isVisible() ⇒ boolean
Check if the dialog is currently visible.
Returns: boolean - True if the dialog is visible, false otherwise.
show
Source codedialog.show(options)
Show dialog with given configuration. Displays the dialog with the specified content and options.
| Param | Type | Description |
|---|---|---|
| options | object | Dialog configuration object containing content and display options. |
| options.template | object | The template to use for the dialog (default: null). The error will be thrown when the template is provided together with the content option. |
| options.template.type | 'confirm' | The type of the template ('confirm'). |
| options.template.title | string | The title of the dialog. |
| options.template.description | string | The description of the dialog. Default: ''. |
| options.template.buttons | Array<object> | The buttons to display in the dialog. Default: []. |
| options.template.buttons.text | string | The text of the button. |
| options.template.buttons.type | 'primary' 'secondary' | The type of the button. |
| options.template.buttons.callback | function | The callback to trigger when the button is clicked. |
| options.content | string HTMLElement DocumentFragment | The content to display in the dialog. Can be a string, HTMLElement, or DocumentFragment. Default: '' |
| options.customClassName | string | Custom CSS class name to apply to the dialog container. Default: '' |
| options.background | 'solid' 'semi-transparent' | Dialog background variant. Default: 'solid'. |
| options.contentBackground | boolean | Whether to show content background. Default: false. |
| options.animation | boolean | Whether to enable animations when showing/hiding the dialog. Default: true. |
| options.closable | boolean | Whether the dialog can be closed by user interaction. Default: false. |
| options.a11y | object | Object with accessibility options. |
| options.a11y.role | string | The role of the dialog. Default: 'dialog'. |
| options.a11y.ariaLabel | string | The label of the dialog. Default: 'Dialog'. |
| options.a11y.ariaLabelledby | string | The ID of the element that labels the dialog. Default: ''. |
| options.a11y.ariaDescribedby | string | The ID of the element that describes the dialog. Default: ''. |
showAlert
Source codedialog.showAlert(message, [callback])
Displays the alert dialog with the specified content.
| Param | Type | Description |
|---|---|---|
| message | string Object | The message to display in the dialog. Can be a string or an object with title and description properties. |
| [callback] | function | optional The callback to trigger when the button is clicked. |
showConfirm
Source codedialog.showConfirm(message, [onOk], [onCancel])
Displays the confirm dialog with the specified content and options.
| Param | Type | Description |
|---|---|---|
| message | string Object | The message to display in the dialog. Can be a string or an object with title and description properties. |
| [onOk] | function | optional The callback to trigger when the OK button is clicked. |
| [onCancel] | function | optional The callback to trigger when the Cancel button is clicked. |
update
Source codedialog.update(options)
Update the dialog configuration.
| Param | Type | Description |
|---|---|---|
| options | object | Dialog configuration object containing content and display options. |
| options.template | object | The template to use for the dialog (default: null). The error will be thrown when the template is provided together with the content option. |
| options.template.type | 'confirm' | The type of the template ('confirm'). |
| options.template.title | string | The title of the dialog. |
| options.template.description | string | The description of the dialog. Default: ''. |
| options.template.buttons | Array<object> | The buttons to display in the dialog. Default: []. |
| options.template.buttons.text | string | The text of the button. |
| options.template.buttons.type | 'primary' 'secondary' | The type of the button. |
| options.template.buttons.callback | function | The callback to trigger when the button is clicked. |
| options.content | string HTMLElement DocumentFragment | The content to display in the dialog. Can be a string, HTMLElement, or DocumentFragment. Default: '' |
| options.customClassName | string | Custom CSS class name to apply to the dialog container. Default: '' |
| options.background | 'solid' 'semi-transparent' | Dialog background variant. Default: 'solid'. |
| options.contentBackground | boolean | Whether to show content background. Default: false. |
| options.animation | boolean | Whether to enable animations when showing/hiding the dialog. Default: true. |
| options.closable | boolean | Whether the dialog can be closed by user interaction. Default: false. |
| options.a11y | object | Object with accessibility options. |
| options.a11y.role | string | The role of the dialog. Default: 'dialog'. |
| options.a11y.ariaLabel | string | The label of the dialog. Default: 'Dialog'. |
| options.a11y.ariaLabelledby | string | The ID of the element that labels the dialog. Default: ''. |
| options.a11y.ariaDescribedby | string | The ID of the element that describes the dialog. Default: ''. |
updatePlugin
Source codedialog.updatePlugin()
Update plugin state after Handsontable settings update.