import HTMLCollection from '../element/HTMLCollection.js';
import HTMLElement from '../html-element/HTMLElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
import HTMLAreaElement from '../html-area-element/HTMLAreaElement.js';
import ParentNodeUtility from '../parent-node/ParentNodeUtility.js';
/**
* HTMLMapElement
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMapElement
*/
export default class HTMLMapElement extends HTMLElement {
public [PropertySymbol.areas]: HTMLCollection | null = null;
/**
* Returns areas.
*
* @returns Areas.
*/
public get areas(): HTMLCollection {
if (!this[PropertySymbol.areas]) {
this[PropertySymbol.areas] = ParentNodeUtility.getElementsByTagName(
this,
'area'
);
}
return this[PropertySymbol.areas];
}
/**
* Returns name.
*
* @returns Name.
*/
public get name(): string {
return this.getAttribute('name') || '';
}
/**
* Sets name.
*
* @param name Name.
*/
public set name(name: string) {
this.setAttribute('name', name);
}
}