diff --git a/src/dom.ts b/src/dom.ts index c1c85cf69..e1953ec80 100644 --- a/src/dom.ts +++ b/src/dom.ts @@ -31,12 +31,12 @@ function renderNode(tagName: string, content: TreeNode): HTMLElement | SVGElemen return element } -function render(tagName: string, content: TreeNode & { xmlns: string }, container?: Node): SVGElement -function render(tagName: string, content?: TreeNode, container?: Node): HTMLElement -function render(tagName: string, content?: TreeNode, container?: Node): HTMLElement | SVGElement { +export function createElement(tagName: string, content: TreeNode & { xmlns: string }, container?: Node): SVGElement +export function createElement(tagName: string, content?: TreeNode, container?: Node): HTMLElement +export function createElement(tagName: string, content?: TreeNode, container?: Node): HTMLElement | SVGElement { const el = renderNode(tagName, content || {}) container?.appendChild(el) return el } -export default render +export default createElement diff --git a/src/plugins/envelope.ts b/src/plugins/envelope.ts index 34395e3e6..45d1b674f 100644 --- a/src/plugins/envelope.ts +++ b/src/plugins/envelope.ts @@ -5,7 +5,7 @@ import BasePlugin, { type BasePluginEvents } from '../base-plugin.js' import { makeDraggable } from '../draggable.js' import EventEmitter from '../event-emitter.js' -import render from '../dom.js' +import createElement from '../dom.js' export type EnvelopePoint = { id?: string @@ -66,7 +66,7 @@ class Polyline extends EventEmitter<{ const height = wrapper.clientHeight // SVG element - const svg = render( + const svg = createElement( 'svg', { xmlns: 'http://www.w3.org/2000/svg', @@ -88,7 +88,7 @@ class Polyline extends EventEmitter<{ this.svg = svg // A polyline representing the envelope - const polyline = render( + const polyline = createElement( 'polyline', { xmlns: 'http://www.w3.org/2000/svg', @@ -173,7 +173,7 @@ class Polyline extends EventEmitter<{ private createCircle(x: number, y: number) { const size = this.options.dragPointSize const radius = size / 2 - return render( + return createElement( 'ellipse', { xmlns: 'http://www.w3.org/2000/svg', diff --git a/src/plugins/hover.ts b/src/plugins/hover.ts index 3066cd688..e3b3a98e6 100644 --- a/src/plugins/hover.ts +++ b/src/plugins/hover.ts @@ -3,7 +3,7 @@ */ import BasePlugin, { type BasePluginEvents } from '../base-plugin.js' -import render from '../dom.js' +import createElement from '../dom.js' export type HoverPluginOptions = { lineColor?: string @@ -33,8 +33,8 @@ class HoverPlugin extends BasePlugin { this.options = Object.assign({}, defaultOptions, options) // Create the plugin elements - this.wrapper = render('div', { part: 'hover' }) - this.label = render('span', { part: 'hover-label' }, this.wrapper) + this.wrapper = createElement('div', { part: 'hover' }) + this.label = createElement('span', { part: 'hover-label' }, this.wrapper) } public static create(options?: HoverPluginOptions) { diff --git a/src/plugins/minimap.ts b/src/plugins/minimap.ts index a21c73cdc..b5996b995 100644 --- a/src/plugins/minimap.ts +++ b/src/plugins/minimap.ts @@ -4,7 +4,7 @@ import BasePlugin, { type BasePluginEvents } from '../base-plugin.js' import WaveSurfer, { type WaveSurferOptions } from '../wavesurfer.js' -import render from '../dom.js' +import createElement from '../dom.js' export type MinimapPluginOptions = { overlayColor?: string @@ -63,7 +63,7 @@ class MinimapPlugin extends BasePlugin { wordBreak: 'keep-all', } - const leftHandle = render( + const leftHandle = createElement( 'div', { part: 'region-handle region-handle-left', @@ -134,7 +134,7 @@ class SingleRegion extends EventEmitter { element, ) - const rightHandle = render( + const rightHandle = createElement( 'div', { part: 'region-handle region-handle-right', @@ -188,7 +188,7 @@ class SingleRegion extends EventEmitter { elementTop = elementHeight * this.channelIdx } - const element = render('div', { + const element = createElement('div', { style: { position: 'absolute', top: `${elementTop}%`, @@ -319,7 +319,7 @@ class SingleRegion extends EventEmitter { } if (typeof content === 'string') { const isMarker = this.start === this.end - this.content = render('div', { + this.content = createElement('div', { style: { padding: `0.2em ${isMarker ? 0.2 : 0.4}em`, display: 'inline-block', @@ -439,7 +439,7 @@ class RegionsPlugin extends BasePlugin { protected subscriptions: Array<() => void> = [] protected mediaSubscriptions: Array<() => void> = [] + public static readonly BasePlugin = BasePlugin + public static readonly dom = dom + /** Create a new WaveSurfer instance */ public static create(options: WaveSurferOptions) { return new WaveSurfer(options)