@stemplayer-js/stemplayer-js
Version:
A streaming, low latency Stem Player Web-Component
1,744 lines (1,743 loc) • 73.1 kB
JSON
{
"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",