* Defines the constructor as a new custom element. * https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define * @param {string|object} [name] The element name. * @param {object} [options] The element definition options.
(
name?: string | ElementDefinitionOptions,
options?: ElementDefinitionOptions,
)
| 281 | * @param {object} [options] The element definition options. |
| 282 | */ |
| 283 | static $define( |
| 284 | name?: string | ElementDefinitionOptions, |
| 285 | options?: ElementDefinitionOptions, |
| 286 | ): void { |
| 287 | if (isObject(name)) { |
| 288 | options = name; |
| 289 | name = ''; |
| 290 | } |
| 291 | |
| 292 | if (!name) { |
| 293 | name = this.$name || this.name; |
| 294 | } |
| 295 | |
| 296 | name = toKebabCase(name as string); |
| 297 | |
| 298 | if (IS_BROWSER && WINDOW.customElements && !WINDOW.customElements.get(name)) { |
| 299 | customElements.define(name, this, options); |
| 300 | } |
| 301 | } |
| 302 | } |
no test coverage detected