UNPKG

@stemplayer-js/stemplayer-js

Version:

A streaming, low latency Stem Player Web-Component

1,744 lines (1,743 loc) 73.1 kB
{ "schemaVersion": "1.0.0", "readme": "", "modules": [ { "kind": "javascript-module", "path": "element.js", "declarations": [], "exports": [ { "kind": "js", "name": "config", "declaration": { "name": "config", "module": "./stemplayer.js" } } ] }, { "kind": "javascript-module", "path": "index.js", "declarations": [], "exports": [ { "kind": "js", "name": "FcStemPlayer", "declaration": { "name": "FcStemPlayer", "module": "./src/StemPlayer.js" } }, { "kind": "js", "name": "FcStemPlayerControls", "declaration": { "name": "FcStemPlayerControls", "module": "./src/StemPlayerControls.js" } }, { "kind": "js", "name": "FcStemPlayerStem", "declaration": { "name": "FcStemPlayerStem", "module": "./src/StemPlayerStem.js" } } ] }, { "kind": "javascript-module", "path": "stemplayer.js", "declarations": [], "exports": [ { "kind": "js", "name": "config", "declaration": { "name": "default", "module": "./src/config.js" } }, { "kind": "custom-element-definition", "name": "stemplayer-js", "declaration": { "name": "FcStemPlayer", "module": "/src/StemPlayer.js" } }, { "kind": "custom-element-definition", "name": "stemplayer-js-controls", "declaration": { "name": "FcStemPlayerControls", "module": "/src/StemPlayerControls.js" } }, { "kind": "custom-element-definition", "name": "stemplayer-js-stem", "declaration": { "name": "FcStemPlayerStem", "module": "/src/StemPlayerStem.js" } }, { "kind": "custom-element-definition", "name": "stemplayer-js-workspace", "declaration": { "name": "Workspace", "module": "/src/Workspace.js" } }, { "kind": "custom-element-definition", "name": "stemplayer-js-row", "declaration": { "name": "Row", "module": "/src/Row.js" } } ] }, { "kind": "javascript-module", "path": "src/ResponsiveLitElement.js", "declarations": [ { "kind": "class", "description": "", "name": "ResponsiveLitElement", "mixins": [ { "name": "ResponsiveMixin", "module": "/src/mixins/ResponsiveMixin.js" } ], "superclass": { "name": "LitElement", "package": "lit" }, "customElement": true, "attributes": [ { "name": "displayMode", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "fieldName": "displayMode", "inheritedFrom": { "name": "ResponsiveMixin", "module": "src/mixins/ResponsiveMixin.js" } } ], "members": [ { "kind": "field", "name": "properties", "static": true, "readonly": true, "inheritedFrom": { "name": "ResponsiveMixin", "module": "src/mixins/ResponsiveMixin.js" } }, { "kind": "field", "name": "#onResizeCallback", "privacy": "private", "inheritedFrom": { "name": "ResponsiveMixin", "module": "src/mixins/ResponsiveMixin.js" } }, { "kind": "method", "name": "recalculateDisplayMode", "privacy": "private", "inheritedFrom": { "name": "ResponsiveMixin", "module": "src/mixins/ResponsiveMixin.js" } }, { "kind": "field", "name": "displayMode", "privacy": "private", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "attribute": "displayMode", "inheritedFrom": { "name": "ResponsiveMixin", "module": "src/mixins/ResponsiveMixin.js" } } ], "events": [ { "name": "resize", "type": { "text": "Event" }, "inheritedFrom": { "name": "ResponsiveMixin", "module": "src/mixins/ResponsiveMixin.js" } } ] } ], "exports": [ { "kind": "js", "name": "ResponsiveLitElement", "declaration": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ] }, { "kind": "javascript-module", "path": "src/Row.js", "declarations": [ { "kind": "class", "description": "A component to render a single stem", "name": "Row", "members": [ { "kind": "method", "name": "#getSmallScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#getLargeScreenTpl", "privacy": "private" }, { "kind": "field", "name": "nonFlexWidth", "description": "Returns the combined width of the non fluid (flex) containers", "readonly": true }, { "kind": "field", "name": "displayMode", "privacy": "public", "type": { "text": "string" }, "attribute": "displayMode" } ], "attributes": [ { "name": "displayMode", "type": { "text": "string" }, "fieldName": "displayMode" } ], "superclass": { "name": "LitElement", "package": "lit" }, "tagName": "stemplayer-js-row", "customElement": true } ], "exports": [ { "kind": "js", "name": "Row", "declaration": { "name": "Row", "module": "src/Row.js" } } ] }, { "kind": "javascript-module", "path": "src/StemPlayer.js", "declarations": [ { "kind": "class", "description": "A Stem Player web component", "name": "FcStemPlayer", "cssProperties": [ { "name": "--stemplayer-js-font-family", "default": "\"'Franklin Gothic Medium','Arial Narrow',Arial,sans-serif\"" }, { "name": "--stemplayer-js-font-size", "default": "16px" }, { "name": "--stemplayer-js-color", "default": "rgb(220, 220, 220)" }, { "name": "--stemplayer-js-brand-color", "default": "rgb(1, 164, 179)" }, { "name": "--stemplayer-js-background-color", "default": "black" }, { "name": "--stemplayer-js-row-height", "default": "4.5rem" }, { "name": "--stemplayer-js-waveform-color" }, { "name": "--stemplayer-js-waveform-bar-width" }, { "name": "--stemplayer-js-waveform-bar-gap" }, { "name": "--stemplayer-js-waveform-pixel-ratio" }, { "name": "--stemplayer-js-grid-base", "default": "1.5rem" }, { "name": "--stemplayer-js-max-height", "default": "auto" }, { "name": "--stemplayer-js-progress-background-color", "default": "rgba(255, 255, 255, 1)" }, { "name": "--stemplayer-js-progress-mix-blend-mode", "default": "overlay" }, { "name": "--stemplayer-js-row-controls-background-color", "default": "black" }, { "name": "--stemplayer-js-row-end-background-color", "default": "black" } ], "slots": [ { "name": "header" }, { "description": "The default (body) slot", "name": "" }, { "name": "footer" } ], "members": [ { "kind": "field", "name": "#workspace", "privacy": "private" }, { "kind": "field", "name": "#controller", "privacy": "private" }, { "kind": "field", "name": "#debouncedMergePeaks", "privacy": "private" }, { "kind": "field", "name": "#nLoading", "privacy": "private", "type": { "text": "number" }, "default": "0" }, { "kind": "method", "name": "destroy" }, { "kind": "method", "name": "#onSlotChange", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "method", "name": "#loadStem", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "method", "name": "#getLargeScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#getSmallScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#onPlay", "privacy": "private" }, { "kind": "method", "name": "#onPause", "privacy": "private" }, { "kind": "method", "name": "#onToggleLoop", "privacy": "private" }, { "kind": "method", "name": "#onToggleCollapse", "privacy": "private" }, { "kind": "field", "name": "state", "description": "Exports the current state of the player", "readonly": true }, { "kind": "method", "name": "play", "description": "Start playback" }, { "kind": "method", "name": "pause", "description": "Pause playback" }, { "kind": "field", "name": "pct", "description": "Sets the currentTime to a pct of total duration, seeking to that time", "type": { "text": "number" } }, { "kind": "field", "name": "currentTime", "description": "Set the curentTime of playback, seeking to that time.", "type": { "text": "number" } }, { "kind": "method", "name": "#mergePeaks", "privacy": "private", "description": "Calculates the \"combined\" peaks" }, { "kind": "method", "name": "#onStemLoadingStart", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "Event" } } ] }, { "kind": "method", "name": "#onStemLoadingEnd", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "Event" } } ] }, { "kind": "method", "name": "#onWaveformDraw", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "Event" } } ], "description": "Listen to peaks events emitting from the stems" }, { "kind": "method", "name": "#onSolo", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "Event" } } ] }, { "kind": "method", "name": "#onUnSolo", "privacy": "private", "parameters": [ { "name": "e", "type": { "text": "Event" } } ] }, { "kind": "field", "name": "slottedElements", "readonly": true }, { "kind": "field", "name": "stemComponents", "description": "Get the stem componenents", "return": { "type": { "text": "Array" } }, "readonly": true }, { "kind": "method", "name": "#updateChildren", "privacy": "private", "parameters": [ { "name": "props" } ] }, { "kind": "method", "name": "#onRegionChange", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "method", "name": "#onRegionUpdate", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "method", "name": "#recalculatePixelsPerSecond", "privacy": "private" }, { "kind": "method", "name": "#handleKeypress", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "field", "name": "autoplay", "privacy": "public", "type": { "text": "boolean" }, "description": "Whether to (attempt) autoplay", "default": "false", "attribute": "autoplay" }, { "kind": "field", "name": "loop", "privacy": "public", "type": { "text": "boolean" }, "description": "Allows looping (experimental)", "default": "false", "attribute": "loop" }, { "kind": "field", "name": "noKeyboardEvents", "privacy": "public", "type": { "text": "boolean" }, "description": "Controls the player by keyboard events (e.g. space = start/pause)", "default": "false", "attribute": "no-keyboard-events" }, { "kind": "field", "name": "regions", "privacy": "public", "type": { "text": "boolean" }, "description": "Enable region selection", "default": "false", "attribute": "regions" }, { "kind": "field", "name": "zoom", "privacy": "public", "type": { "text": "number" }, "description": "Zoom waveform", "default": "1", "attribute": "zoom" }, { "kind": "field", "name": "collapsed", "privacy": "public", "type": { "text": "boolean" }, "default": "false", "attribute": "collapsed" }, { "kind": "field", "name": "lockRegions", "privacy": "public", "type": { "text": "boolean" }, "description": "Enable locking for the region selection", "default": "false", "attribute": "lockRegions" }, { "kind": "field", "name": "isLoading", "privacy": "public", "attribute": "isLoading" }, { "kind": "field", "name": "duration", "privacy": "public", "type": { "text": "number" }, "description": "overrides the duration", "attribute": "duration" }, { "kind": "field", "name": "offset", "privacy": "public", "type": { "text": "number" }, "description": "the offset", "attribute": "offset" }, { "kind": "field", "name": "audioContext", "privacy": "public", "type": { "text": "object" }, "description": "Inject a pre instantiated AudioContext", "attribute": "audioContext" }, { "kind": "field", "name": "destination", "privacy": "public", "type": { "text": "object" }, "description": "Inject a pre instantiated destination for the audio context to use", "attribute": "destination" }, { "kind": "field", "name": "audioDuration", "privacy": "public", "attribute": "audioDuration" }, { "kind": "field", "name": "regionOffset", "privacy": "public", "attribute": "regionOffset" }, { "kind": "field", "name": "regionDuration", "privacy": "public", "attribute": "regionDuration" }, { "kind": "field", "name": "properties", "static": true, "readonly": true, "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "field", "name": "#onResizeCallback", "privacy": "private", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "method", "name": "recalculateDisplayMode", "privacy": "private", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "field", "name": "displayMode", "privacy": "private", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "attribute": "displayMode", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "events": [ { "name": "event", "type": { "text": "CustomEvent" } }, { "name": "loading-start", "type": { "text": "Event" }, "description": "Fires when the player starts loading data" }, { "name": "loading-end", "type": { "text": "Event" }, "description": "Fires when the player completes loading data" }, { "name": "error", "type": { "text": "ErrorEvent" } }, { "name": "peaks", "type": { "text": "CustomEvent" } }, { "description": "Fires the player progresses", "name": "timeupdate" }, { "description": "Fires when the player starts playing", "name": "start" }, { "description": "Fires when the player pauses playback", "name": "pause" }, { "description": "Fires when the player seeks", "name": "seek" }, { "description": "Fires when the player reaches the end of the playback", "name": "end" }, { "name": "resize", "type": { "text": "Event" }, "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "attributes": [ { "name": "isLoading", "fieldName": "isLoading" }, { "name": "autoplay", "type": { "text": "boolean" }, "description": "Whether to (attempt) autoplay", "default": "false", "fieldName": "autoplay" }, { "name": "duration", "type": { "text": "number" }, "description": "overrides the duration", "fieldName": "duration" }, { "name": "offset", "type": { "text": "number" }, "description": "the offset", "fieldName": "offset" }, { "name": "loop", "type": { "text": "boolean" }, "description": "Allows looping (experimental)", "default": "false", "fieldName": "loop" }, { "name": "zoom", "type": { "text": "number" }, "description": "Zoom waveform", "default": "1", "fieldName": "zoom" }, { "name": "regions", "type": { "text": "boolean" }, "description": "Enable region selection", "default": "false", "fieldName": "regions" }, { "name": "audioContext", "type": { "text": "object" }, "description": "Inject a pre instantiated AudioContext", "fieldName": "audioContext" }, { "name": "destination", "type": { "text": "object" }, "description": "Inject a pre instantiated destination for the audio context to use", "fieldName": "destination" }, { "name": "no-keyboard-events", "type": { "text": "boolean" }, "description": "Controls the player by keyboard events (e.g. space = start/pause)", "default": "false", "fieldName": "noKeyboardEvents" }, { "name": "audioDuration", "fieldName": "audioDuration" }, { "name": "regionOffset", "fieldName": "regionOffset" }, { "name": "regionDuration", "fieldName": "regionDuration" }, { "name": "collapsed", "type": { "text": "boolean" }, "default": "false", "fieldName": "collapsed" }, { "name": "lockRegions", "type": { "text": "boolean" }, "description": "Enable locking for the region selection", "default": "false", "fieldName": "lockRegions" }, { "name": "displayMode", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "fieldName": "displayMode", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "superclass": { "name": "ResponsiveLitElement", "module": "/src/ResponsiveLitElement.js" }, "tagName": "stemplayer-js", "customElement": true } ], "exports": [ { "kind": "js", "name": "FcStemPlayer", "declaration": { "name": "FcStemPlayer", "module": "src/StemPlayer.js" } } ] }, { "kind": "javascript-module", "path": "src/StemPlayerControls.js", "declarations": [ { "kind": "class", "description": "A component to render a single stem", "name": "FcStemPlayerControls", "cssProperties": [ { "name": "--stemplayer-js-controls-color" }, { "name": "--stemplayer-js-controls-background-color" } ], "members": [ { "kind": "field", "name": "#debouncedHandleSeek", "privacy": "private" }, { "kind": "method", "name": "#getLargeScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#getSmallScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#onPlayClick", "privacy": "private" }, { "kind": "method", "name": "#onPauseClick", "privacy": "private" }, { "kind": "method", "name": "#onDownloadClick", "privacy": "private" }, { "kind": "method", "name": "#onToggleCollapseClick", "privacy": "private" }, { "kind": "method", "name": "#handleSeeking", "privacy": "private" }, { "kind": "method", "name": "#handleSeek", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "method", "name": "#toggleLoop", "privacy": "private", "parameters": [ { "name": "e" } ] }, { "kind": "method", "name": "#onZoominClick", "privacy": "private" }, { "kind": "method", "name": "#onZoomoutClick", "privacy": "private" }, { "kind": "method", "name": "isControlEnabled", "parameters": [ { "name": "value" } ] }, { "kind": "method", "name": "#renderControl", "privacy": "private", "parameters": [ { "name": "value" }, { "name": "mandatory" } ] }, { "kind": "field", "name": "collapsed" }, { "kind": "field", "name": "controls", "privacy": "public", "type": { "text": "array" }, "description": "The controls that are enables", "default": "['playpause', 'loop', 'progress', 'duration', 'time']", "attribute": "controls" }, { "kind": "field", "name": "label", "privacy": "public", "type": { "text": "string" }, "description": "The label to display", "attribute": "label" }, { "kind": "field", "name": "duration", "privacy": "public", "type": { "text": "number" }, "description": "The duration of the track", "attribute": "duration" }, { "kind": "field", "name": "currentTime", "privacy": "public", "type": { "text": "number" }, "description": "The current time of playback", "attribute": "currentTime" }, { "kind": "field", "name": "peaks", "privacy": "public", "type": { "text": "object" }, "description": "The peaks data that are to be used for displaying the waveform", "attribute": "peaks" }, { "kind": "field", "name": "currentPct", "privacy": "public", "type": { "text": "number" }, "description": "The percentage of the current time", "attribute": "currentPct" }, { "kind": "field", "name": "isPlaying", "privacy": "public", "type": { "text": "boolean" }, "description": "The playing state", "attribute": "isPlaying" }, { "kind": "field", "name": "loop", "privacy": "public", "type": { "text": "boolean" }, "description": "Whether the loop is toggled on or off", "attribute": "loop" }, { "kind": "field", "name": "#computedStyle", "privacy": "private", "inheritedFrom": { "name": "WaveformHostMixin", "module": "src/mixins/WaveformHostMixin.js" } }, { "kind": "method", "name": "getComputedWaveformStyles", "description": "Calculates the styles for rendering the waveform", "privacy": "private", "inheritedFrom": { "name": "WaveformHostMixin", "module": "src/mixins/WaveformHostMixin.js" } }, { "kind": "method", "name": "computeWaveformStyles", "inheritedFrom": { "name": "WaveformHostMixin", "module": "src/mixins/WaveformHostMixin.js" } }, { "kind": "field", "name": "properties", "static": true, "readonly": true, "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "field", "name": "#onResizeCallback", "privacy": "private", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "method", "name": "recalculateDisplayMode", "privacy": "private", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "field", "name": "displayMode", "privacy": "private", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "attribute": "displayMode", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "events": [ { "name": "controls:play", "type": { "text": "Event" } }, { "name": "controls:pause", "type": { "text": "Event" } }, { "name": "controls:download", "type": { "text": "Event" } }, { "name": "controls:collapse", "type": { "text": "Event" } }, { "name": "controls:seeking", "type": { "text": "CustomEvent" } }, { "name": "controls:seek", "type": { "text": "CustomEvent" } }, { "name": "controls:loop", "type": { "text": "CustomEvent" } }, { "name": "controls:zoom:in", "type": { "text": "Event" } }, { "name": "controls:zoom:out", "type": { "text": "Event" } }, { "name": "resize", "type": { "text": "Event" }, "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "attributes": [ { "name": "label", "type": { "text": "string" }, "description": "The label to display", "fieldName": "label" }, { "name": "duration", "type": { "text": "number" }, "description": "The duration of the track", "fieldName": "duration" }, { "name": "currentTime", "type": { "text": "number" }, "description": "The current time of playback", "fieldName": "currentTime" }, { "name": "peaks", "type": { "text": "object" }, "description": "The peaks data that are to be used for displaying the waveform", "fieldName": "peaks" }, { "name": "currentPct", "type": { "text": "number" }, "description": "The percentage of the current time", "fieldName": "currentPct" }, { "name": "isPlaying", "type": { "text": "boolean" }, "description": "The playing state", "fieldName": "isPlaying" }, { "name": "loop", "type": { "text": "boolean" }, "description": "Whether the loop is toggled on or off", "fieldName": "loop" }, { "name": "controls", "type": { "text": "array" }, "description": "The controls that are enables", "default": "['playpause', 'loop', 'progress', 'duration', 'time']", "fieldName": "controls" }, { "name": "displayMode", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "fieldName": "displayMode", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "mixins": [ { "name": "WaveformHostMixin", "module": "/src/mixins/WaveformHostMixin.js" } ], "superclass": { "name": "ResponsiveLitElement", "module": "/src/ResponsiveLitElement.js" }, "tagName": "stemplayer-js-controls", "customElement": true } ], "exports": [ { "kind": "js", "name": "FcStemPlayerControls", "declaration": { "name": "FcStemPlayerControls", "module": "src/StemPlayerControls.js" } } ] }, { "kind": "javascript-module", "path": "src/StemPlayerStem.js", "declarations": [ { "kind": "class", "description": "A component to render a single stem", "name": "FcStemPlayerStem", "members": [ { "kind": "field", "name": "#volume", "privacy": "private", "type": { "text": "Number" }, "default": "1" }, { "kind": "field", "name": "#HLS", "privacy": "private", "type": { "text": "HLS" } }, { "kind": "method", "name": "load", "parameters": [ { "name": "controller" } ] }, { "kind": "method", "name": "unload" }, { "kind": "method", "name": "requestLoad", "description": "When the src changes, trigger a request to reload the stem (in the context of the player)" }, { "kind": "method", "name": "#getSmallScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#getLargeScreenTpl", "privacy": "private" }, { "kind": "method", "name": "#toggleMute", "privacy": "private" }, { "kind": "method", "name": "#onSoloClick", "privacy": "private" }, { "kind": "method", "name": "#dispatchSoloEvent", "privacy": "private", "description": "Dispatch event so that the solo state of other stems can be modified" }, { "kind": "method", "name": "#onUnSoloClick", "privacy": "private" }, { "kind": "method", "name": "#handleVolume", "privacy": "private", "parameters": [ { "name": "v" } ] }, { "kind": "field", "name": "volume", "privacy": "public", "type": { "text": "number" }, "description": "Get the current volume, while taking into consideration the values for `muted` and `solo`.", "attribute": "volume" }, { "kind": "field", "name": "peaks", "return": { "type": { "text": "Array" } }, "readonly": true }, { "kind": "field", "name": "waveformComponent", "privacy": "private", "readonly": true }, { "kind": "field", "name": "row", "readonly": true }, { "kind": "field", "name": "solo", "privacy": "public", "type": { "text": "string" }, "parameters": [ { "description": "The solo state. 'on' = solo this stem; 'muted' = another stem is soloed, mute this one", "name": "solo", "type": { "text": "('off'|'on'|'muted')" } } ], "default": "'off'", "attribute": "solo" }, { "kind": "field", "name": "label", "privacy": "public", "type": { "text": "string" }, "description": "The label to display", "attribute": "label" }, { "kind": "field", "name": "src", "privacy": "public", "type": { "text": "string" }, "description": "The url of the audio file", "attribute": "src" }, { "kind": "field", "name": "waveform", "privacy": "public", "type": { "text": "string" }, "description": "The url of the waveform file", "attribute": "waveform" }, { "kind": "field", "name": "muted", "privacy": "public", "type": { "text": "boolean" }, "attribute": "muted" }, { "kind": "field", "name": "currentPct", "privacy": "public", "type": { "text": "number" }, "attribute": "currentPct" }, { "kind": "field", "name": "duration", "privacy": "public", "type": { "text": "number" }, "description": "Override the duration of the track", "attribute": "duration" }, { "kind": "field", "name": "waveColor", "privacy": "public", "type": { "text": "string" }, "description": "The colour of the waveform", "attribute": "waveColor" }, { "kind": "field", "name": "waveProgressColor", "privacy": "public", "type": { "text": "string" }, "description": "The wave progress colour", "attribute": "waveProgressColor" }, { "kind": "field", "name": "#computedStyle", "privacy": "private", "inheritedFrom": { "name": "WaveformHostMixin", "module": "src/mixins/WaveformHostMixin.js" } }, { "kind": "method", "name": "getComputedWaveformStyles", "description": "Calculates the styles for rendering the waveform", "privacy": "private", "inheritedFrom": { "name": "WaveformHostMixin", "module": "src/mixins/WaveformHostMixin.js" } }, { "kind": "method", "name": "computeWaveformStyles", "inheritedFrom": { "name": "WaveformHostMixin", "module": "src/mixins/WaveformHostMixin.js" } }, { "kind": "field", "name": "properties", "static": true, "readonly": true, "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "field", "name": "#onResizeCallback", "privacy": "private", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "method", "name": "recalculateDisplayMode", "privacy": "private", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } }, { "kind": "field", "name": "displayMode", "privacy": "private", "description": "The displayMode determines normal or small screen rendering", "type": { "text": "string" }, "default": "'lg'", "attribute": "displayMode", "inheritedFrom": { "name": "ResponsiveLitElement", "module": "src/ResponsiveLitElement.js" } } ], "events": [ { "name": "stem:load:start", "type": { "text": "Event" } }, { "name": "stem:load:end", "type": { "text": "Event" } }, { "name": "error", "type": { "text": "ErrorEvent" } }, { "name": "stem:load:error", "type": { "text": "CustomEvent" } }, { "name": "stem:load:request", "type": { "text": "Event" } }, { "name": "event",