/
HTMLDialogElement.ts
47 lines (42 loc) · 957 Bytes
/
HTMLDialogElement.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import Event from '../../event/Event';
import HTMLElement from '../html-element/HTMLElement';
import IHTMLDialogElement from './IHTMLDialogElement';
/**
* HTML Dialog Element.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement.
*/
export default class HTMLDialogElement extends HTMLElement implements IHTMLDialogElement {
public returnValue = '';
/**
* Returns open.
*
* @returns Open.
*/
public get open(): boolean {
return this.hasAttributeNS(null, 'open');
}
/**
* Closes the dialog.
*
* @param [returnValue] ReturnValue.
*/
public close(returnValue = ''): void {
this.removeAttributeNS(null, 'open');
this.returnValue = returnValue;
this.dispatchEvent(new Event('close'));
}
/**
* Shows the modal.
*/
public showModal(): void {
this.setAttributeNS(null, 'open', '');
}
/**
* Shows the dialog.
*/
public show(): void {
this.setAttributeNS(null, 'open', '');
}
}