wavesurfer.js 6.0.2 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +22 -0
- package/README.md +1 -1
- package/dist/plugin/wavesurfer.cursor.js +5 -5
- package/dist/plugin/wavesurfer.cursor.js.map +1 -1
- package/dist/plugin/wavesurfer.cursor.min.js +2 -2
- package/dist/plugin/wavesurfer.cursor.min.js.map +1 -1
- package/dist/plugin/wavesurfer.elan.js +1 -1
- package/dist/plugin/wavesurfer.elan.min.js +1 -1
- package/dist/plugin/wavesurfer.markers.js +1 -1
- package/dist/plugin/wavesurfer.markers.min.js +1 -1
- package/dist/plugin/wavesurfer.mediasession.js +1 -3
- package/dist/plugin/wavesurfer.mediasession.js.map +1 -1
- package/dist/plugin/wavesurfer.mediasession.min.js +1 -1
- package/dist/plugin/wavesurfer.mediasession.min.js.map +1 -1
- package/dist/plugin/wavesurfer.microphone.js +1 -1
- package/dist/plugin/wavesurfer.microphone.min.js +1 -1
- package/dist/plugin/wavesurfer.minimap.js +24 -4
- package/dist/plugin/wavesurfer.minimap.js.map +1 -1
- package/dist/plugin/wavesurfer.minimap.min.js +2 -2
- package/dist/plugin/wavesurfer.minimap.min.js.map +1 -1
- package/dist/plugin/wavesurfer.playhead.js +1 -1
- package/dist/plugin/wavesurfer.playhead.min.js +1 -1
- package/dist/plugin/wavesurfer.regions.js +1 -1
- package/dist/plugin/wavesurfer.regions.min.js +1 -1
- package/dist/plugin/wavesurfer.spectrogram.js +28 -9
- package/dist/plugin/wavesurfer.spectrogram.js.map +1 -1
- package/dist/plugin/wavesurfer.spectrogram.min.js +2 -2
- package/dist/plugin/wavesurfer.spectrogram.min.js.map +1 -1
- package/dist/plugin/wavesurfer.timeline.js +5 -3
- package/dist/plugin/wavesurfer.timeline.js.map +1 -1
- package/dist/plugin/wavesurfer.timeline.min.js +2 -2
- package/dist/plugin/wavesurfer.timeline.min.js.map +1 -1
- package/dist/wavesurfer-html-init.js +1 -1
- package/dist/wavesurfer-html-init.min.js +1 -1
- package/dist/wavesurfer.js +33 -10
- package/dist/wavesurfer.js.map +1 -1
- package/dist/wavesurfer.min.js +2 -2
- package/dist/wavesurfer.min.js.map +1 -1
- package/package.json +10 -10
- package/src/plugin/cursor/index.js +4 -4
- package/src/plugin/mediasession/index.js +0 -2
- package/src/plugin/minimap/index.js +17 -2
- package/src/plugin/spectrogram/index.js +23 -10
- package/src/plugin/timeline/index.js +7 -1
- package/src/wavesurfer.js +4 -1
- package/src/webaudio.js +24 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wavesurfer.minimap.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/minimap/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/webpack/before-startup","webpack://WaveSurfer.[name]/webpack/startup","webpack://WaveSurfer.[name]/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, function() {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.regions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n regions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/plugin/minimap/index.js\");\n",""],"names":["MinimapPlugin","params","ws","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","regions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onZoom","on","isReady","window","removeEventListener","un","destroy","unAll","region","id","renderRegions","regionElements","querySelectorAll","i","length","removeChild","keys","forEach","width","getWidth","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","len","peaks","getPeaks","drawPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","name","deferInit","staticProps","instance"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"wavesurfer.minimap.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/minimap/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/webpack/before-startup","webpack://WaveSurfer.[name]/webpack/startup","webpack://WaveSurfer.[name]/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, function() {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.cleared = false;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.drawRegions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onLoading = percent => {\n if (percent >= 100) {\n this.cleared = false;\n return;\n }\n if (this.cleared === true) {\n return;\n }\n const len = this.drawer.getWidth();\n this.drawer.drawPeaks([0], len, 0, len);\n this.cleared = true;\n };\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.wavesurfer.un('loading', this._onLoading);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n drawRegions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n this.wavesurfer.on('loading', this._onLoading);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/plugin/minimap/index.js\");\n",""],"names":["MinimapPlugin","params","ws","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","cleared","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","drawRegions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onLoading","percent","len","getWidth","drawPeaks","_onZoom","on","isReady","window","removeEventListener","un","destroy","unAll","regions","region","id","renderRegions","regionElements","querySelectorAll","i","length","removeChild","keys","forEach","width","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","name","deferInit","staticProps","instance"],"sourceRoot":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* wavesurfer.js minimap plugin 6.0
|
|
2
|
+
* wavesurfer.js minimap plugin 6.1.0 (2022-03-31)
|
|
3
3
|
* https://wavesurfer-js.org
|
|
4
4
|
* @license BSD-3-Clause
|
|
5
5
|
*/
|
|
6
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("WaveSurfer",[],r):"object"==typeof exports?exports.WaveSurfer=r():(e.WaveSurfer=e.WaveSurfer||{},e.WaveSurfer.minimap=r())}(self,(function(){return(()=>{"use strict";var e={521:(e,r)=>{function i(e,r){for(var i=0;i<r.length;i++){var t=r[i];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var t=function(){function e(r,i){var t=this;if(function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.params=Object.assign({},i.params,{showRegions:!1,regionsPluginName:r.regionsPluginName||"regions",showOverview:!1,overviewBorderColor:"green",overviewBorderSize:2,container:!1,height:Math.max(Math.round(i.params.height/4),20)},r,{scrollParent:!1,fillParent:!0}),"string"==typeof r.container){var n=document.querySelector(r.container);n||console.warn("Wavesurfer minimap container ".concat(r.container," was not found! The minimap will be automatically appended below the waveform.")),this.params.container=n}r.container||(this.params.container=i.util.style(document.createElement("minimap"),{display:"block"})),this.drawer=new i.Drawer(this.params.container,this.params),this.wavesurfer=i,this.util=i.util,this.renderEvent="redraw",this.overviewRegion=null,this.regionsPlugin=this.wavesurfer[this.params.regionsPluginName],this.drawer.createWrapper(),this.createElements();var s=!1;this._onShouldRender=function(){s||(t.bindWavesurferEvents(),t.bindMinimapEvents(),s=!0),document.body.contains(t.params.container)||i.container.insertBefore(t.params.container,null),t.regionsPlugin&&t.params.showRegions&&t.
|
|
6
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("WaveSurfer",[],r):"object"==typeof exports?exports.WaveSurfer=r():(e.WaveSurfer=e.WaveSurfer||{},e.WaveSurfer.minimap=r())}(self,(function(){return(()=>{"use strict";var e={521:(e,r)=>{function i(e,r){for(var i=0;i<r.length;i++){var t=r[i];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var t=function(){function e(r,i){var t=this;if(function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.params=Object.assign({},i.params,{showRegions:!1,regionsPluginName:r.regionsPluginName||"regions",showOverview:!1,overviewBorderColor:"green",overviewBorderSize:2,container:!1,height:Math.max(Math.round(i.params.height/4),20)},r,{scrollParent:!1,fillParent:!0}),"string"==typeof r.container){var n=document.querySelector(r.container);n||console.warn("Wavesurfer minimap container ".concat(r.container," was not found! The minimap will be automatically appended below the waveform.")),this.params.container=n}r.container||(this.params.container=i.util.style(document.createElement("minimap"),{display:"block"})),this.drawer=new i.Drawer(this.params.container,this.params),this.wavesurfer=i,this.util=i.util,this.cleared=!1,this.renderEvent="redraw",this.overviewRegion=null,this.regionsPlugin=this.wavesurfer[this.params.regionsPluginName],this.drawer.createWrapper(),this.createElements();var s=!1;this._onShouldRender=function(){s||(t.bindWavesurferEvents(),t.bindMinimapEvents(),s=!0),document.body.contains(t.params.container)||i.container.insertBefore(t.params.container,null),t.regionsPlugin&&t.params.showRegions&&t.drawRegions(),t.render()},this._onAudioprocess=function(e){t.drawer.progress(t.wavesurfer.backend.getPlayedPercents())},this._onSeek=function(){return t.drawer.progress(i.backend.getPlayedPercents())},this._onScroll=function(e){if(!t.draggingOverview){var r=t.util.withOrientation(e.target,t.wavesurfer.params.vertical);t.moveOverviewRegion(r.scrollLeft/t.ratio)}},this._onMouseover=function(e){t.draggingOverview&&(t.draggingOverview=!1)};var o=0;this._onResize=i.util.debounce((function(){o!=t.drawer.wrapper.clientWidth&&(o=t.drawer.wrapper.clientWidth,t.render(),t.drawer.progress(t.wavesurfer.backend.getPlayedPercents()))})),this._onLoading=function(e){if(e>=100)t.cleared=!1;else if(!0!==t.cleared){var r=t.drawer.getWidth();t.drawer.drawPeaks([0],r,0,r),t.cleared=!0}},this._onZoom=function(e){t.render()},this.wavesurfer.on("zoom",this._onZoom)}var r,t,n;return r=e,n=[{key:"create",value:function(r){return{name:"minimap",deferInit:!(!r||!r.deferInit)&&r.deferInit,params:r,staticProps:{},instance:e}}}],(t=[{key:"init",value:function(){this.wavesurfer.isReady&&this._onShouldRender(),this.wavesurfer.on(this.renderEvent,this._onShouldRender)}},{key:"destroy",value:function(){window.removeEventListener("resize",this._onResize,!0),window.removeEventListener("orientationchange",this._onResize,!0),this.wavesurfer.drawer.wrapper.removeEventListener("mouseover",this._onMouseover),this.wavesurfer.un(this.renderEvent,this._onShouldRender),this.wavesurfer.un("seek",this._onSeek),this.wavesurfer.un("scroll",this._onScroll),this.wavesurfer.un("audioprocess",this._onAudioprocess),this.wavesurfer.un("zoom",this._onZoom),this.wavesurfer.un("loading",this._onLoading),this.drawer.destroy(),this.overviewRegion=null,this.unAll()}},{key:"drawRegions",value:function(){var e=this;this.regions={},this.wavesurfer.on("region-created",(function(r){e.regions[r.id]=r,e.drawer.wrapper&&e.renderRegions()})),this.wavesurfer.on("region-updated",(function(r){e.regions[r.id]=r,e.drawer.wrapper&&e.renderRegions()})),this.wavesurfer.on("region-removed",(function(r){delete e.regions[r.id],e.drawer.wrapper&&e.renderRegions()}))}},{key:"renderRegions",value:function(){var e,r=this,i=this.drawer.wrapper.querySelectorAll("region");for(e=0;e<i.length;++e)this.drawer.wrapper.removeChild(i[e]);Object.keys(this.regions).forEach((function(e){var i=r.regions[e],t=r.getWidth()*((i.end-i.start)/r.wavesurfer.getDuration()),n=r.getWidth()*(i.start/r.wavesurfer.getDuration()),s=r.util.style(document.createElement("region"),{height:"inherit",backgroundColor:i.color,width:t+"px",left:n+"px",display:"block",position:"absolute"});s.classList.add(e),r.drawer.wrapper.appendChild(s)}))}},{key:"createElements",value:function(){this.drawer.createElements(),this.params.showOverview&&(this.overviewRegion=this.util.withOrientation(this.drawer.wrapper.appendChild(document.createElement("overview")),this.wavesurfer.params.vertical),this.util.style(this.overviewRegion,{top:0,bottom:0,width:"0px",display:"block",position:"absolute",cursor:"move",border:this.params.overviewBorderSize+"px solid "+this.params.overviewBorderColor,zIndex:2,opacity:this.params.overviewOpacity}))}},{key:"bindWavesurferEvents",value:function(){window.addEventListener("resize",this._onResize,!0),window.addEventListener("orientationchange",this._onResize,!0),this.wavesurfer.on("audioprocess",this._onAudioprocess),this.wavesurfer.on("seek",this._onSeek),this.wavesurfer.on("loading",this._onLoading),this.params.showOverview&&(this.wavesurfer.on("scroll",this._onScroll),this.wavesurfer.drawer.wrapper.addEventListener("mouseover",this._onMouseover))}},{key:"bindMinimapEvents",value:function(){var e=this,r={clientX:0,clientY:0},i=0,t=!0;this.params.interact&&(this.drawer.wrapper.addEventListener("click",(function(r){e.fireEvent("click",r,e.drawer.handleEvent(r))})),this.on("click",(function(r,i){t?(e.drawer.progress(i),e.wavesurfer.seekAndCenter(i)):t=!0}))),this.params.showOverview&&(this.overviewRegion.domElement.addEventListener("mousedown",(function(t){var n=e.util.withOrientation(t,e.wavesurfer.params.vertical);e.draggingOverview=!0,i=n.layerX,r.clientX=n.clientX,r.clientY=n.clientY})),this.drawer.wrapper.addEventListener("mousemove",(function(r){if(e.draggingOverview){var t=e.util.withOrientation(r,e.wavesurfer.params.vertical);e.moveOverviewRegion(t.clientX-e.drawer.container.getBoundingClientRect().left-i)}})),this.drawer.wrapper.addEventListener("mouseup",(function(i){var n=e.util.withOrientation(i,e.wavesurfer.params.vertical);r.clientX-n.clientX==0&&r.clientX-n.clientX==0?(t=!0,e.draggingOverview=!1):e.draggingOverview&&(t=!1,e.draggingOverview=!1)})))}},{key:"render",value:function(){var e=this.drawer.getWidth(),r=this.wavesurfer.backend.getPeaks(e,0,e);this.drawer.drawPeaks(r,e,0,e),this.drawer.progress(this.wavesurfer.backend.getPlayedPercents()),this.params.showOverview&&(this.ratio=this.wavesurfer.drawer.width/this.drawer.width,this.waveShowedWidth=this.wavesurfer.drawer.width/this.ratio,this.waveWidth=this.wavesurfer.drawer.width,this.overviewWidth=this.drawer.container.offsetWidth/this.ratio,this.overviewPosition=0,this.moveOverviewRegion(this.wavesurfer.drawer.wrapper.scrollLeft/this.ratio),this.util.style(this.overviewRegion,{width:this.overviewWidth+"px"}))}},{key:"moveOverviewRegion",value:function(e){e<0?this.overviewPosition=0:e+this.overviewWidth<this.drawer.container.offsetWidth?this.overviewPosition=e:this.overviewPosition=this.drawer.container.offsetWidth-this.overviewWidth,this.util.style(this.overviewRegion,{left:this.overviewPosition+"px"}),this.draggingOverview&&(this.wavesurfer.drawer.wrapper.scrollLeft=this.overviewPosition*this.ratio)}},{key:"getWidth",value:function(){return this.drawer.width/this.params.pixelRatio}}])&&i(r.prototype,t),n&&i(r,n),Object.defineProperty(r,"prototype",{writable:!1}),e}();r.default=t,e.exports=r.default}},r={};var i=function i(t){var n=r[t];if(void 0!==n)return n.exports;var s=r[t]={exports:{}};return e[t](s,s.exports,i),s.exports}(521);return i})()}));
|
|
7
7
|
//# sourceMappingURL=wavesurfer.minimap.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wavesurfer.minimap.min.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/minimap/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, function() {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.regions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n regions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(521);\n"],"names":["root","factory","exports","module","define","amd","self","MinimapPlugin","params","ws","this","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","regions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onZoom","on","name","deferInit","staticProps","instance","isReady","window","removeEventListener","un","destroy","unAll","region","id","renderRegions","i","regionElements","querySelectorAll","length","removeChild","keys","forEach","width","getWidth","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","len","peaks","getPeaks","drawPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"wavesurfer.minimap.min.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/minimap/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, function() {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.cleared = false;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.drawRegions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onLoading = percent => {\n if (percent >= 100) {\n this.cleared = false;\n return;\n }\n if (this.cleared === true) {\n return;\n }\n const len = this.drawer.getWidth();\n this.drawer.drawPeaks([0], len, 0, len);\n this.cleared = true;\n };\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.wavesurfer.un('loading', this._onLoading);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n drawRegions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n this.wavesurfer.on('loading', this._onLoading);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(521);\n"],"names":["root","factory","exports","module","define","amd","self","MinimapPlugin","params","ws","this","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","cleared","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","drawRegions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onLoading","percent","len","getWidth","drawPeaks","_onZoom","on","name","deferInit","staticProps","instance","isReady","window","removeEventListener","un","destroy","unAll","regions","region","id","renderRegions","i","regionElements","querySelectorAll","length","removeChild","keys","forEach","width","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* wavesurfer.js spectrogram plugin 6.0
|
|
2
|
+
* wavesurfer.js spectrogram plugin 6.1.0 (2022-03-31)
|
|
3
3
|
* https://wavesurfer-js.org
|
|
4
4
|
* @license BSD-3-Clause
|
|
5
5
|
*/
|
|
@@ -280,6 +280,9 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
280
280
|
* @property {number} pixelRatio=wavesurfer.params.pixelRatio to control the
|
|
281
281
|
* size of the spectrogram in relation with its canvas. 1 = Draw on the whole
|
|
282
282
|
* canvas. 2 = Draw on a quarter (1/2 the length and 1/2 the width)
|
|
283
|
+
* @property {number} frequencyMin=0 Min frequency to scale spectrogram.
|
|
284
|
+
* @property {number} frequencyMax=12000 Max frequency to scale spectrogram.
|
|
285
|
+
* Set this to samplerate/2 to draw whole range of spectrogram.
|
|
283
286
|
* @property {?boolean} deferInit Set to true to manually call
|
|
284
287
|
* `initPlugin('spectrogram')`
|
|
285
288
|
* @property {?number[][]} colorMap A 256 long array of 4-element arrays.
|
|
@@ -375,7 +378,11 @@ var SpectrogramPlugin = /*#__PURE__*/function () {
|
|
|
375
378
|
_this.windowFunc = params.windowFunc;
|
|
376
379
|
_this.alpha = params.alpha;
|
|
377
380
|
_this.splitChannels = params.splitChannels;
|
|
378
|
-
_this.channels = _this.splitChannels ? ws.backend.buffer.numberOfChannels : 1;
|
|
381
|
+
_this.channels = _this.splitChannels ? ws.backend.buffer.numberOfChannels : 1; // Getting file's original samplerate is difficult(#1248).
|
|
382
|
+
// So set 12kHz default to render like wavesurfer.js 5.x.
|
|
383
|
+
|
|
384
|
+
_this.frequencyMin = params.frequencyMin || 0;
|
|
385
|
+
_this.frequencyMax = params.frequencyMax || 12000;
|
|
379
386
|
|
|
380
387
|
_this.createWrapper();
|
|
381
388
|
|
|
@@ -508,15 +515,18 @@ var SpectrogramPlugin = /*#__PURE__*/function () {
|
|
|
508
515
|
var spectrCc = my.spectrCc;
|
|
509
516
|
var height = my.height;
|
|
510
517
|
var width = my.width;
|
|
518
|
+
var freqFrom = my.buffer.sampleRate / 2;
|
|
519
|
+
var freqMin = my.frequencyMin;
|
|
520
|
+
var freqMax = my.frequencyMax;
|
|
511
521
|
|
|
512
522
|
if (!spectrCc) {
|
|
513
523
|
return;
|
|
514
524
|
}
|
|
515
525
|
|
|
516
|
-
|
|
526
|
+
var _loop = function _loop(c) {
|
|
517
527
|
// for each channel
|
|
518
528
|
var pixels = my.resample(frequenciesData[c]);
|
|
519
|
-
var imageData =
|
|
529
|
+
var imageData = new ImageData(width, height);
|
|
520
530
|
|
|
521
531
|
for (var i = 0; i < pixels.length; i++) {
|
|
522
532
|
for (var j = 0; j < pixels[i].length; j++) {
|
|
@@ -527,10 +537,20 @@ var SpectrogramPlugin = /*#__PURE__*/function () {
|
|
|
527
537
|
imageData.data[redIndex + 2] = colorMap[2] * 255;
|
|
528
538
|
imageData.data[redIndex + 3] = colorMap[3] * 255;
|
|
529
539
|
}
|
|
530
|
-
} // stack spectrograms
|
|
540
|
+
} // scale and stack spectrograms
|
|
541
|
+
|
|
531
542
|
|
|
543
|
+
createImageBitmap(imageData).then(function (renderer) {
|
|
544
|
+
return spectrCc.drawImage(renderer, 0, height * (1 - freqMax / freqFrom), // source x, y
|
|
545
|
+
width, height * (freqMax - freqMin) / freqFrom, // source width, height
|
|
546
|
+
0, height * c, // destination x, y
|
|
547
|
+
width, height // destination width, height
|
|
548
|
+
);
|
|
549
|
+
});
|
|
550
|
+
};
|
|
532
551
|
|
|
533
|
-
|
|
552
|
+
for (var c = 0; c < frequenciesData.length; c++) {
|
|
553
|
+
_loop(c);
|
|
534
554
|
}
|
|
535
555
|
}
|
|
536
556
|
}, {
|
|
@@ -624,8 +644,8 @@ var SpectrogramPlugin = /*#__PURE__*/function () {
|
|
|
624
644
|
var bgWidth = 55;
|
|
625
645
|
var getMaxY = frequenciesHeight || 512;
|
|
626
646
|
var labelIndex = 5 * (getMaxY / 256);
|
|
627
|
-
var freqStart =
|
|
628
|
-
var step = (this.
|
|
647
|
+
var freqStart = this.frequencyMin;
|
|
648
|
+
var step = (this.frequencyMax - freqStart) / labelIndex; // prepare canvas element for labels
|
|
629
649
|
|
|
630
650
|
var ctx = this.labelsEl.getContext('2d');
|
|
631
651
|
this.labelsEl.height = this.height * this.channels;
|
|
@@ -647,7 +667,6 @@ var SpectrogramPlugin = /*#__PURE__*/function () {
|
|
|
647
667
|
ctx.textAlign = textAlign;
|
|
648
668
|
ctx.textBaseline = 'middle';
|
|
649
669
|
var freq = freqStart + step * i;
|
|
650
|
-
var index = Math.round(freq / (this.sampleRate / 2) * this.fftSamples);
|
|
651
670
|
var label = this.freqType(freq);
|
|
652
671
|
var units = this.unitType(freq);
|
|
653
672
|
var yLabelOffset = 2;
|