wavesurfer.js 6.3.0 → 6.5.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.
Files changed (59) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +36 -47
  3. package/dist/plugin/wavesurfer.cursor.js +45 -54
  4. package/dist/plugin/wavesurfer.cursor.js.map +1 -1
  5. package/dist/plugin/wavesurfer.cursor.min.js +2 -2
  6. package/dist/plugin/wavesurfer.cursor.min.js.map +1 -1
  7. package/dist/plugin/wavesurfer.elan.js +24 -51
  8. package/dist/plugin/wavesurfer.elan.js.map +1 -1
  9. package/dist/plugin/wavesurfer.elan.min.js +2 -2
  10. package/dist/plugin/wavesurfer.elan.min.js.map +1 -1
  11. package/dist/plugin/wavesurfer.markers.js +62 -74
  12. package/dist/plugin/wavesurfer.markers.js.map +1 -1
  13. package/dist/plugin/wavesurfer.markers.min.js +2 -2
  14. package/dist/plugin/wavesurfer.markers.min.js.map +1 -1
  15. package/dist/plugin/wavesurfer.mediasession.js +8 -16
  16. package/dist/plugin/wavesurfer.mediasession.js.map +1 -1
  17. package/dist/plugin/wavesurfer.mediasession.min.js +2 -2
  18. package/dist/plugin/wavesurfer.mediasession.min.js.map +1 -1
  19. package/dist/plugin/wavesurfer.microphone.js +48 -63
  20. package/dist/plugin/wavesurfer.microphone.js.map +1 -1
  21. package/dist/plugin/wavesurfer.microphone.min.js +2 -2
  22. package/dist/plugin/wavesurfer.microphone.min.js.map +1 -1
  23. package/dist/plugin/wavesurfer.minimap.js +20 -69
  24. package/dist/plugin/wavesurfer.minimap.js.map +1 -1
  25. package/dist/plugin/wavesurfer.minimap.min.js +2 -2
  26. package/dist/plugin/wavesurfer.minimap.min.js.map +1 -1
  27. package/dist/plugin/wavesurfer.playhead.js +6 -30
  28. package/dist/plugin/wavesurfer.playhead.js.map +1 -1
  29. package/dist/plugin/wavesurfer.playhead.min.js +2 -2
  30. package/dist/plugin/wavesurfer.playhead.min.js.map +1 -1
  31. package/dist/plugin/wavesurfer.regions.js +203 -260
  32. package/dist/plugin/wavesurfer.regions.js.map +1 -1
  33. package/dist/plugin/wavesurfer.regions.min.js +2 -2
  34. package/dist/plugin/wavesurfer.regions.min.js.map +1 -1
  35. package/dist/plugin/wavesurfer.spectrogram.js +55 -147
  36. package/dist/plugin/wavesurfer.spectrogram.js.map +1 -1
  37. package/dist/plugin/wavesurfer.spectrogram.min.js +2 -2
  38. package/dist/plugin/wavesurfer.spectrogram.min.js.map +1 -1
  39. package/dist/plugin/wavesurfer.timeline.js +53 -88
  40. package/dist/plugin/wavesurfer.timeline.js.map +1 -1
  41. package/dist/plugin/wavesurfer.timeline.min.js +2 -2
  42. package/dist/plugin/wavesurfer.timeline.min.js.map +1 -1
  43. package/dist/wavesurfer-html-init.js +34 -54
  44. package/dist/wavesurfer-html-init.js.map +1 -1
  45. package/dist/wavesurfer-html-init.min.js +2 -2
  46. package/dist/wavesurfer-html-init.min.js.map +1 -1
  47. package/dist/wavesurfer.js +490 -1003
  48. package/dist/wavesurfer.js.map +1 -1
  49. package/dist/wavesurfer.min.js +2 -2
  50. package/dist/wavesurfer.min.js.map +1 -1
  51. package/package.json +11 -11
  52. package/src/mediaelement.js +3 -0
  53. package/src/plugin/cursor/index.js +15 -3
  54. package/src/plugin/markers/index.js +40 -1
  55. package/src/plugin/regions/index.js +4 -0
  56. package/src/plugin/regions/region.js +76 -1
  57. package/src/util/silence-mode.js +7 -0
  58. package/src/wavesurfer.js +4 -0
  59. package/CHANGES.md +0 -482
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.minimap.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/minimap/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/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, () => {\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
+ {"version":3,"file":"wavesurfer.minimap.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/minimap/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/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, () => {\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","_classCallCheck","this","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","concat","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","key","value","name","deferInit","staticProps","instance","isReady","window","removeEventListener","un","destroy","unAll","_this2","regions","region","id","renderRegions","i","_this3","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","_this4","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","default","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js playhead plugin 6.3.0 (2022-10-03)
2
+ * wavesurfer.js playhead plugin 6.5.0 (2023-03-11)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -29,13 +29,12 @@ Object.defineProperty(exports, "__esModule", ({
29
29
  value: true
30
30
  }));
31
31
  exports["default"] = void 0;
32
-
32
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
33
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34
-
35
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
36
-
34
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
37
35
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
38
-
36
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
37
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
39
38
  /**
40
39
  * The playhead plugin separates the notion of the currently playing position from
41
40
  * a 'play-start' position. Having a playhead enables a listening pattern
@@ -62,14 +61,12 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
62
61
  * ]
63
62
  * });
64
63
  */
65
- var DEFAULT_FILL_COLOR = '#CF2F00';
66
64
 
65
+ var DEFAULT_FILL_COLOR = '#CF2F00';
67
66
  var PlayheadPlugin = /*#__PURE__*/function () {
68
67
  function PlayheadPlugin(params, ws) {
69
68
  var _this = this;
70
-
71
69
  _classCallCheck(this, PlayheadPlugin);
72
-
73
70
  this.params = params;
74
71
  this.options = {};
75
72
  ['draw', 'moveOnSeek', 'returnOnPause'].forEach(function (opt) {
@@ -86,33 +83,25 @@ var PlayheadPlugin = /*#__PURE__*/function () {
86
83
  this.markerHeight = 16;
87
84
  this.playheadTime = 0;
88
85
  this.unFuns = [];
89
-
90
86
  this._onResize = function () {
91
87
  _this._updatePlayheadPosition();
92
88
  };
93
-
94
89
  this._onReady = function () {
95
90
  _this.wrapper = _this.wavesurfer.drawer.wrapper;
96
-
97
91
  _this._updatePlayheadPosition();
98
92
  };
99
93
  }
100
-
101
94
  _createClass(PlayheadPlugin, [{
102
95
  key: "_onBackendCreated",
103
96
  value: function _onBackendCreated() {
104
97
  var _this2 = this;
105
-
106
98
  this.wrapper = this.wavesurfer.drawer.wrapper;
107
-
108
99
  if (this.options.draw) {
109
100
  this._createPlayheadElement();
110
-
111
101
  window.addEventListener('resize', this._onResize, true);
112
102
  window.addEventListener('orientationchange', this._onResize, true);
113
103
  this.wavesurferOn('zoom', this._onResize);
114
104
  }
115
-
116
105
  this.wavesurferOn('pause', function () {
117
106
  if (_this2.options.returnOnPause) {
118
107
  _this2.wavesurfer.setCurrentTime(_this2.playheadTime);
@@ -121,7 +110,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
121
110
  this.wavesurferOn('seek', function () {
122
111
  if (_this2.options.moveOnSeek) {
123
112
  _this2.playheadTime = _this2.wavesurfer.getCurrentTime();
124
-
125
113
  _this2._updatePlayheadPosition();
126
114
  }
127
115
  });
@@ -131,7 +119,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
131
119
  key: "wavesurferOn",
132
120
  value: function wavesurferOn(ev, fn) {
133
121
  var _this3 = this;
134
-
135
122
  var ret = this.wavesurfer.on(ev, fn);
136
123
  this.unFuns.push(function () {
137
124
  _this3.wavesurfer.un(ev, fn);
@@ -142,10 +129,8 @@ var PlayheadPlugin = /*#__PURE__*/function () {
142
129
  key: "init",
143
130
  value: function init() {
144
131
  var _this4 = this;
145
-
146
132
  if (this.wavesurfer.isReady) {
147
133
  this._onBackendCreated();
148
-
149
134
  this._onReady();
150
135
  } else {
151
136
  var r;
@@ -172,11 +157,9 @@ var PlayheadPlugin = /*#__PURE__*/function () {
172
157
  key: "setPlayheadTime",
173
158
  value: function setPlayheadTime(time) {
174
159
  this.playheadTime = time;
175
-
176
160
  if (!this.wavesurfer.isPlaying()) {
177
161
  this.wavesurfer.setCurrentTime(time);
178
162
  }
179
-
180
163
  this._updatePlayheadPosition();
181
164
  }
182
165
  }, {
@@ -202,7 +185,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
202
185
  key: "_createPlayheadElement",
203
186
  value: function _createPlayheadElement() {
204
187
  var _this5 = this;
205
-
206
188
  var el = document.createElement('playhead');
207
189
  el.className = 'wavesurfer-playhead';
208
190
  this.style(el, {
@@ -211,13 +193,10 @@ var PlayheadPlugin = /*#__PURE__*/function () {
211
193
  display: 'flex',
212
194
  'flex-direction': 'column'
213
195
  });
214
-
215
196
  var pointer = this._createPointerSVG();
216
-
217
197
  el.appendChild(pointer);
218
198
  pointer.addEventListener('click', function (e) {
219
199
  e.stopPropagation();
220
-
221
200
  _this5.wavesurfer.setCurrentTime(_this5.playheadTime);
222
201
  });
223
202
  var line = document.createElement('div');
@@ -238,7 +217,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
238
217
  if (!this.element) {
239
218
  return;
240
219
  }
241
-
242
220
  var duration = this.wavesurfer.getDuration();
243
221
  var elementWidth = this.wavesurfer.drawer.width / this.wavesurfer.params.pixelRatio;
244
222
  var positionPct = this.playheadTime / duration;
@@ -275,10 +253,8 @@ var PlayheadPlugin = /*#__PURE__*/function () {
275
253
  };
276
254
  }
277
255
  }]);
278
-
279
256
  return PlayheadPlugin;
280
257
  }();
281
-
282
258
  exports["default"] = PlayheadPlugin;
283
259
  module.exports = exports.default;
284
260
 
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.playhead.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/webpack/before-startup","webpack://WaveSurfer/webpack/startup","webpack://WaveSurfer/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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/playhead/index.js\");\n",""],"names":["DEFAULT_FILL_COLOR","PlayheadPlugin","params","ws","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","ret","on","push","un","isReady","_onBackendCreated","r","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","name","deferInit","instance"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.playhead.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/webpack/before-startup","webpack://WaveSurfer/webpack/startup","webpack://WaveSurfer/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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/playhead/index.js\");\n",""],"names":["DEFAULT_FILL_COLOR","PlayheadPlugin","params","ws","_this","_classCallCheck","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","_createClass","key","value","_onBackendCreated","_this2","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","_this3","ret","on","push","un","init","_this4","isReady","r","once","destroy","f","removeChild","element","removeEventListener","setPlayheadTime","time","isPlaying","_createPointerSVG","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","_this5","createElement","className","position","display","pointer","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","create","name","deferInit","instance","exports","default","module"],"sourceRoot":""}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * wavesurfer.js playhead plugin 6.3.0 (2022-10-03)
2
+ * wavesurfer.js playhead plugin 6.5.0 (2023-03-11)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("WaveSurfer",[],t):"object"==typeof exports?exports.WaveSurfer=t():(e.WaveSurfer=e.WaveSurfer||{},e.WaveSurfer.playhead=t())}(self,(()=>(()=>{"use strict";var e={374:(e,t)=>{function r(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(){function e(t,r){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.params=t,this.options={},["draw","moveOnSeek","returnOnPause"].forEach((function(e){i.options[e]=!(e in t)||t[e]})),this.wavesurfer=r,this.util=r.util,this.style=this.util.style,this.markerWidth=21,this.markerHeight=16,this.playheadTime=0,this.unFuns=[],this._onResize=function(){i._updatePlayheadPosition()},this._onReady=function(){i.wrapper=i.wavesurfer.drawer.wrapper,i._updatePlayheadPosition()}}var t,i,a;return t=e,a=[{key:"create",value:function(t){return{name:"playhead",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,instance:e}}}],(i=[{key:"_onBackendCreated",value:function(){var e=this;this.wrapper=this.wavesurfer.drawer.wrapper,this.options.draw&&(this._createPlayheadElement(),window.addEventListener("resize",this._onResize,!0),window.addEventListener("orientationchange",this._onResize,!0),this.wavesurferOn("zoom",this._onResize)),this.wavesurferOn("pause",(function(){e.options.returnOnPause&&e.wavesurfer.setCurrentTime(e.playheadTime)})),this.wavesurferOn("seek",(function(){e.options.moveOnSeek&&(e.playheadTime=e.wavesurfer.getCurrentTime(),e._updatePlayheadPosition())})),this.playheadTime=this.wavesurfer.getCurrentTime()}},{key:"wavesurferOn",value:function(e,t){var r=this,i=this.wavesurfer.on(e,t);return this.unFuns.push((function(){r.wavesurfer.un(e,t)})),i}},{key:"init",value:function(){var e=this;this.wavesurfer.isReady?(this._onBackendCreated(),this._onReady()):(this.wavesurfer.once("ready",(function(){return e._onReady()})),this.wavesurfer.once("backend-created",(function(){return e._onBackendCreated()})))}},{key:"destroy",value:function(){this.unFuns.forEach((function(e){return e()})),this.unFuns=[],this.wrapper.removeChild(this.element),window.removeEventListener("resize",this._onResize,!0),window.removeEventListener("orientationchange",this._onResize,!0)}},{key:"setPlayheadTime",value:function(e){this.playheadTime=e,this.wavesurfer.isPlaying()||this.wavesurfer.setCurrentTime(e),this._updatePlayheadPosition()}},{key:"_createPointerSVG",value:function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg"),r=document.createElementNS(e,"path");return t.setAttribute("viewBox","0 0 33 30"),r.setAttribute("d","M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z"),r.setAttribute("stroke","#979797"),r.setAttribute("fill","#CF2F00"),t.appendChild(r),this.style(t,{width:this.markerWidth+"px",height:this.markerHeight+"px",cursor:"pointer","z-index":5}),t}},{key:"_createPlayheadElement",value:function(){var e=this,t=document.createElement("playhead");t.className="wavesurfer-playhead",this.style(t,{position:"absolute",height:"100%",display:"flex","flex-direction":"column"});var r=this._createPointerSVG();t.appendChild(r),r.addEventListener("click",(function(t){t.stopPropagation(),e.wavesurfer.setCurrentTime(e.playheadTime)}));var i=document.createElement("div");this.style(i,{"flex-grow":1,"margin-left":this.markerWidth/2-.5+"px",background:"black",width:"1px",opacity:.1}),t.appendChild(i),this.element=t,this.wrapper.appendChild(t)}},{key:"_updatePlayheadPosition",value:function(){if(this.element){var e=this.wavesurfer.getDuration(),t=this.wavesurfer.drawer.width/this.wavesurfer.params.pixelRatio,r=this.playheadTime/e;this.style(this.element,{left:t*r-this.markerWidth/2+"px"})}}}])&&r(t.prototype,i),a&&r(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=i,e.exports=t.default}},t={};var r=function r(i){var a=t[i];if(void 0!==a)return a.exports;var n=t[i]={exports:{}};return e[i](n,n.exports,r),n.exports}(374);return r})()));
6
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("WaveSurfer",[],t):"object"==typeof exports?exports.WaveSurfer=t():(e.WaveSurfer=e.WaveSurfer||{},e.WaveSurfer.playhead=t())}(self,(()=>(()=>{"use strict";var e={374:(e,t)=>{function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(a=n.key,s=void 0,s=function(e,t){if("object"!==r(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!==r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(a,"string"),"symbol"===r(s)?s:String(s)),n)}var a,s}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(){function e(t,r){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.params=t,this.options={},["draw","moveOnSeek","returnOnPause"].forEach((function(e){i.options[e]=!(e in t)||t[e]})),this.wavesurfer=r,this.util=r.util,this.style=this.util.style,this.markerWidth=21,this.markerHeight=16,this.playheadTime=0,this.unFuns=[],this._onResize=function(){i._updatePlayheadPosition()},this._onReady=function(){i.wrapper=i.wavesurfer.drawer.wrapper,i._updatePlayheadPosition()}}var t,r,n;return t=e,n=[{key:"create",value:function(t){return{name:"playhead",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,instance:e}}}],(r=[{key:"_onBackendCreated",value:function(){var e=this;this.wrapper=this.wavesurfer.drawer.wrapper,this.options.draw&&(this._createPlayheadElement(),window.addEventListener("resize",this._onResize,!0),window.addEventListener("orientationchange",this._onResize,!0),this.wavesurferOn("zoom",this._onResize)),this.wavesurferOn("pause",(function(){e.options.returnOnPause&&e.wavesurfer.setCurrentTime(e.playheadTime)})),this.wavesurferOn("seek",(function(){e.options.moveOnSeek&&(e.playheadTime=e.wavesurfer.getCurrentTime(),e._updatePlayheadPosition())})),this.playheadTime=this.wavesurfer.getCurrentTime()}},{key:"wavesurferOn",value:function(e,t){var r=this,i=this.wavesurfer.on(e,t);return this.unFuns.push((function(){r.wavesurfer.un(e,t)})),i}},{key:"init",value:function(){var e=this;this.wavesurfer.isReady?(this._onBackendCreated(),this._onReady()):(this.wavesurfer.once("ready",(function(){return e._onReady()})),this.wavesurfer.once("backend-created",(function(){return e._onBackendCreated()})))}},{key:"destroy",value:function(){this.unFuns.forEach((function(e){return e()})),this.unFuns=[],this.wrapper.removeChild(this.element),window.removeEventListener("resize",this._onResize,!0),window.removeEventListener("orientationchange",this._onResize,!0)}},{key:"setPlayheadTime",value:function(e){this.playheadTime=e,this.wavesurfer.isPlaying()||this.wavesurfer.setCurrentTime(e),this._updatePlayheadPosition()}},{key:"_createPointerSVG",value:function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg"),r=document.createElementNS(e,"path");return t.setAttribute("viewBox","0 0 33 30"),r.setAttribute("d","M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z"),r.setAttribute("stroke","#979797"),r.setAttribute("fill","#CF2F00"),t.appendChild(r),this.style(t,{width:this.markerWidth+"px",height:this.markerHeight+"px",cursor:"pointer","z-index":5}),t}},{key:"_createPlayheadElement",value:function(){var e=this,t=document.createElement("playhead");t.className="wavesurfer-playhead",this.style(t,{position:"absolute",height:"100%",display:"flex","flex-direction":"column"});var r=this._createPointerSVG();t.appendChild(r),r.addEventListener("click",(function(t){t.stopPropagation(),e.wavesurfer.setCurrentTime(e.playheadTime)}));var i=document.createElement("div");this.style(i,{"flex-grow":1,"margin-left":this.markerWidth/2-.5+"px",background:"black",width:"1px",opacity:.1}),t.appendChild(i),this.element=t,this.wrapper.appendChild(t)}},{key:"_updatePlayheadPosition",value:function(){if(this.element){var e=this.wavesurfer.getDuration(),t=this.wavesurfer.drawer.width/this.wavesurfer.params.pixelRatio,r=this.playheadTime/e;this.style(this.element,{left:t*r-this.markerWidth/2+"px"})}}}])&&i(t.prototype,r),n&&i(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=n,e.exports=t.default}},t={};var r=function r(i){var n=t[i];if(void 0!==n)return n.exports;var a=t[i]={exports:{}};return e[i](a,a.exports,r),a.exports}(374);return r})()));
7
7
  //# sourceMappingURL=wavesurfer.playhead.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.playhead.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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__(374);\n"],"names":["root","factory","exports","module","define","amd","self","PlayheadPlugin","params","ws","this","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","name","deferInit","instance","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","ret","on","push","un","isReady","_onBackendCreated","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.playhead.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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__(374);\n"],"names":["root","factory","exports","module","define","amd","self","PlayheadPlugin","params","ws","_this","_classCallCheck","this","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","key","value","name","deferInit","instance","_this2","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","_this3","ret","on","push","un","_this4","isReady","_onBackendCreated","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","_this5","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","default","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}