UNPKG

86.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"wavesurfer.regions.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/regions/index.js","webpack://WaveSurfer/./src/plugin/regions/region.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\"][\"regions\"] = factory();\n})(self, () => {\nreturn ","/**\n * @since 4.0.0 This class has been split\n *\n * @typedef {Object} RegionsPluginParams\n * @property {?boolean} dragSelection Enable creating regions by dragging with\n * the mouse\n * @property {?RegionParams[]} regions Regions that should be added upon\n * initialisation\n * @property {number} slop=2 The sensitivity of the mouse dragging\n * @property {?number} snapToGridInterval Snap the regions to a grid of the specified multiples in seconds\n * @property {?number} snapToGridOffset Shift the snap-to-grid by the specified seconds. May also be negative.\n * @property {?boolean} deferInit Set to true to manually call\n * @property {number} maxRegions Maximum number of regions that may be created by the user at one time.\n * `initPlugin('regions')`\n * @property {function} formatTimeCallback Allows custom formating for region tooltip.\n * @property {?number} edgeScrollWidth='5% from container edges' Optional width for edgeScroll to start\n */\n\n/**\n * @typedef {Object} RegionParams\n * @desc The parameters used to describe a region.\n * @example wavesurfer.addRegion(regionParams);\n * @property {string} id=→random The id of the region\n * @property {number} start=0 The start position of the region (in seconds).\n * @property {number} end=0 The end position of the region (in seconds).\n * @property {?boolean} loop Whether to loop the region when played back.\n * @property {boolean} drag=true Allow/disallow dragging the region.\n * @property {boolean} resize=true Allow/disallow resizing the region.\n * @property {string} [color='rgba(0, 0, 0, 0.1)'] HTML color code.\n * @property {?number} channelIdx Select channel to draw the region on (if there are multiple channel waveforms).\n * @property {?object} handleStyle A set of CSS properties used to style the left and right handle.\n * @property {?boolean} preventContextMenu=false Determines whether the context menu is prevented from being opened.\n * @property {boolean} showTooltip=true Enable/disable tooltip displaying start and end times when hovering over region.\n */\n\nimport {Region} from \"./region.js\";\n\n/**\n * Regions are visual overlays on waveform that can be used to play and loop\n * portions of audio. Regions can be dragged and resized.\n *\n * Visual customization is possible via CSS (using the selectors\n * `.wavesurfer-region` and `.wavesurfer-handle`).\n *\n * @implements {PluginClass}\n * @extends {Observer}\n *\n * @example\n * // es6\n * import RegionsPlugin from 'wavesurfer.regions.js';\n *\n * // commonjs\n * var RegionsPlugin = require('wavesurfer.regions.js');\n *\n * // if you are using <script> tags\n * var RegionsPlugin = window.WaveSurfer.regions;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * RegionsPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class RegionsPlugin {\n /**\n * Regions 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 {RegionsPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'regions',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {\n addRegion(options) {\n if (!this.initialisedPluginList.regions) {\n this.initPlugin('regions');\n }\n return this.regions.add(options);\n },\n\n clearRegions() {\n this.regions && this.regions.clear();\n },\n\n enableDragSelection(options) {\n if (!this.initialisedPluginList.regions) {\n this.initPlugin('regions');\n }\n this.regions.enableDragSelection(options);\n },\n\n disableDragSelection() {\n this.regions.disableDragSelection();\n }\n },\n instance: RegionsPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.wavesurfer = ws;\n this.util = {\n ...ws.util,\n getRegionSnapToGridValue: value => {\n return this.getRegionSnapToGridValue(value, params);\n }\n };\n this.maxRegions = params.maxRegions;\n this.regionsMinLength = params.regionsMinLength || null;\n\n // turn the plugin instance into an observer\n const observerPrototypeKeys = Object.getOwnPropertyNames(\n this.util.Observer.prototype\n );\n observerPrototypeKeys.forEach(key => {\n Region.prototype[key] = this.util.Observer.prototype[key];\n });\n this.wavesurfer.Region = Region;\n\n // By default, scroll the container if the user drags a region\n // within 5% (based on its initial size) of its edge\n const scrollWidthProportion = 0.05;\n this._onBackendCreated = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this.orientation = this.wavesurfer.drawer.orientation;\n this.defaultEdgeScrollWidth = this.wrapper.clientWidth * scrollWidthProportion;\n if (this.params.regions) {\n this.params.regions.forEach(region => {\n this.add(region);\n });\n }\n };\n\n // Id-based hash of regions\n this.list = {};\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this.vertical = this.wavesurfer.drawer.params.vertical;\n if (this.params.dragSelection) {\n this.enableDragSelection(this.params);\n }\n Object.keys(this.list).forEach(id => {\n this.list[id].updateRender();\n });\n };\n }\n\n init() {\n // Check if ws is ready\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n this.wavesurfer.once('ready', this._onReady);\n this.wavesurfer.once('backend-created', this._onBackendCreated);\n }\n }\n\n destroy() {\n this.wavesurfer.un('ready', this._onReady);\n this.wavesurfer.un('backend-created', this._onBackendCreated);\n // Disabling `region-removed' because destroying the plugin calls\n // the Region.remove() method that is also used to remove regions based\n // on user input. This can cause confusion since teardown is not a\n // user event, but would emit `region-removed` as if it was.\n this.wavesurfer.setDisabledEventEmissions(['region-removed']);\n this.disableDragSelection();\n this.clear();\n }\n\n /**\n * check to see if adding a new region would exceed maxRegions\n * @return {boolean} whether we should proceed and create a region\n * @private\n */\n wouldExceedMaxRegions() {\n return (\n this.maxRegions && Object.keys(this.list).length >= this.maxRegions\n );\n }\n\n /**\n * Add a region\n *\n * @param {object} params Region parameters\n * @return {Region} The created region\n */\n add(params) {\n if (this.wouldExceedMaxRegions()) {\n return null;\n }\n\n params = {\n edgeScrollWidth: this.params.edgeScrollWidth || this.defaultEdgeScrollWidth,\n ...params\n };\n\n // Take formatTimeCallback from plugin params if not already set\n if (!params.formatTimeCallback && this.params.formatTimeCallback) {\n params = {...params, formatTimeCallback: this.params.formatTimeCallback};\n }\n\n if (!params.minLength && this.regionsMinLength) {\n params = {...params, minLength: this.regionsMinLength};\n }\n\n const region = new this.wavesurfer.Region(params, this.util, this.wavesurfer);\n\n this.list[region.id] = region;\n\n region.on('remove', () => {\n delete this.list[region.id];\n });\n\n return region;\n }\n\n /**\n * Remove all regions\n */\n clear() {\n Object.keys(this.list).forEach(id => {\n this.list[id].remove();\n });\n }\n\n enableDragSelection(params) {\n this.disableDragSelection();\n\n const slop = params.slop || 2;\n const container = this.wavesurfer.drawer.container;\n const scroll =\n params.scroll !== false && this.wavesurfer.params.scrollParent;\n const scrollSpeed = params.scrollSpeed || 1;\n const scrollThreshold = params.scrollThreshold || 10;\n let drag;\n let duration = this.wavesurfer.getDuration();\n let maxScroll;\n let start;\n let region;\n let touchId;\n let pxMove = 0;\n let scrollDirection;\n let wrapperRect;\n\n // Scroll when the user is dragging within the threshold\n const edgeScroll = e => {\n if (!region || !scrollDirection) {\n return;\n }\n\n // Update scroll position\n let scrollLeft =\n this.wrapper.scrollLeft + scrollSpeed * scrollDirection;\n this.wrapper.scrollLeft = scrollLeft = Math.min(\n maxScroll,\n Math.max(0, scrollLeft)\n );\n\n // Update range\n const end = this.wavesurfer.drawer.handleEvent(e);\n region.update({\n start: Math.min(end * duration, start * duration),\n end: Math.max(end * duration, start * duration)\n });\n\n // Check that there is more to scroll and repeat\n if (scrollLeft < maxScroll && scrollLeft > 0) {\n window.requestAnimationFrame(() => {\n edgeScroll(e);\n });\n }\n };\n\n const eventDown = e => {\n if (e.touches && e.touches.length > 1) {\n return;\n }\n duration = this.wavesurfer.getDuration();\n touchId = e.targetTouches ? e.targetTouches[0].identifier : null;\n\n // Store for scroll calculations\n maxScroll = this.wrapper.scrollWidth -\n this.wrapper.clientWidth;\n wrapperRect = this.util.withOrientation(\n this.wrapper.getBoundingClientRect(),\n this.vertical\n );\n\n // set the region channel index based on the clicked area\n if (this.wavesurfer.params.splitChannels && this.wavesurfer.params.splitChannelsOptions.splitDragSelection) {\n const y = (e.touches ? e.touches[0].clientY : e.clientY) - wrapperRect.top;\n const channelCount = this.wavesurfer.backend.buffer != null ? this.wavesurfer.backend.buffer.numberOfChannels : 1;\n const channelHeight = this.wrapper.clientHeight / channelCount;\n const channelIdx = Math.floor(y / channelHeight);\n params.channelIdx = channelIdx;\n const channelColors = this.wavesurfer.params.splitChannelsOptions.channelColors[channelIdx];\n if (channelColors && channelColors.dragColor) {\n params.color = channelColors.dragColor;\n }\n }\n\n drag = true;\n start = this.wavesurfer.drawer.handleEvent(e, true);\n region = null;\n scrollDirection = null;\n };\n this.wrapper.addEventListener('mousedown', eventDown);\n this.wrapper.addEventListener('touchstart', eventDown);\n this.on('disable-drag-selection', () => {\n this.wrapper.removeEventListener('touchstart', eventDown);\n this.wrapper.removeEventListener('mousedown', eventDown);\n });\n\n const eventUp = e => {\n if (e.touches && e.touches.length > 1) {\n return;\n }\n\n drag = false;\n pxMove = 0;\n scrollDirection = null;\n\n if (region) {\n this.util.preventClick();\n region.fireEvent('update-end', e);\n this.wavesurfer.fireEvent('region-update-end', region, e);\n }\n\n region = null;\n };\n this.wrapper.addEventListener('mouseleave', eventUp);\n this.wrapper.addEventListener('mouseup', eventUp);\n this.wrapper.addEventListener('touchend', eventUp);\n\n document.body.addEventListener('mouseup', eventUp);\n document.body.addEventListener('touchend', eventUp);\n this.on('disable-drag-selection', () => {\n document.body.removeEventListener('mouseup', eventUp);\n document.body.removeEventListener('touchend', eventUp);\n this.wrapper.removeEventListener('touchend', eventUp);\n this.wrapper.removeEventListener('mouseup', eventUp);\n this.wrapper.removeEventListener('mouseleave', eventUp);\n });\n\n const eventMove = event => {\n if (!drag) {\n return;\n }\n if (++pxMove <= slop) {\n return;\n }\n\n if (event.touches && event.touches.length > 1) {\n return;\n }\n if (event.targetTouches && event.targetTouches[0].identifier != touchId) {\n return;\n }\n\n // auto-create a region during mouse drag, unless region-count would exceed \"maxRegions\"\n if (!region) {\n region = this.add(params || {});\n if (!region) {\n return;\n }\n }\n\n const end = this.wavesurfer.drawer.handleEvent(event);\n const startUpdate = this.wavesurfer.regions.util.getRegionSnapToGridValue(\n start * duration\n );\n const endUpdate = this.wavesurfer.regions.util.getRegionSnapToGridValue(\n end * duration\n );\n region.update({\n start: Math.min(endUpdate, startUpdate),\n end: Math.max(endUpdate, startUpdate)\n });\n\n let orientedEvent = this.util.withOrientation(event, this.vertical);\n\n // If scrolling is enabled\n if (scroll && container.clientWidth < this.wrapper.scrollWidth) {\n // Check threshold based on mouse\n const x = orientedEvent.clientX - wrapperRect.left;\n if (x <= scrollThreshold) {\n scrollDirection = -1;\n } else if (x >= wrapperRect.right - scrollThreshold) {\n scrollDirection = 1;\n } else {\n scrollDirection = null;\n }\n scrollDirection && edgeScroll(event);\n }\n };\n this.wrapper.addEventListener('mousemove', eventMove);\n this.wrapper.addEventListener('touchmove', eventMove);\n this.on('disable-drag-selection', () => {\n this.wrapper.removeEventListener('touchmove', eventMove);\n this.wrapper.removeEventListener('mousemove', eventMove);\n });\n\n this.wavesurfer.on('region-created', region => {\n if (this.regionsMinLength) {\n region.minLength = this.regionsMinLength;\n }\n });\n }\n\n disableDragSelection() {\n this.fireEvent('disable-drag-selection');\n }\n\n /**\n * Get current region\n *\n * The smallest region that contains the current time. If several such\n * regions exist, take the first. Return `null` if none exist.\n *\n * @returns {Region} The current region\n */\n getCurrentRegion() {\n const time = this.wavesurfer.getCurrentTime();\n let min = null;\n Object.keys(this.list).forEach(id => {\n const cur = this.list[id];\n if (cur.start <= time && cur.end >= time) {\n if (!min || cur.end - cur.start < min.end - min.start) {\n min = cur;\n }\n }\n });\n\n return min;\n }\n\n /**\n * Match the value to the grid, if required\n *\n * If the regions plugin params have a snapToGridInterval set, return the\n * value matching the nearest grid interval. If no snapToGridInterval is set,\n * the passed value will be returned without modification.\n *\n * @param {number} value the value to snap to the grid, if needed\n * @param {Object} params the regions plugin params\n * @returns {number} value\n */\n getRegionSnapToGridValue(value, params) {\n if (params.snapToGridInterval) {\n // the regions should snap to a grid\n const offset = params.snapToGridOffset || 0;\n return (\n Math.round((value - offset) / params.snapToGridInterval) *\n params.snapToGridInterval +\n offset\n );\n }\n\n // no snap-to-grid\n return value;\n }\n}\n","/**\n * @since 4.0.0\n *\n * (Single) Region plugin class\n *\n * Must be turned into an observer before instantiating. This is done in\n * `RegionsPlugin` (main plugin class).\n *\n * @extends {Observer}\n */\nexport class Region {\n constructor(params, regionsUtils, ws) {\n this.wavesurfer = ws;\n this.wrapper = ws.drawer.wrapper;\n this.util = ws.util;\n this.style = this.util.style;\n this.regionsUtil = regionsUtils;\n this.vertical = ws.drawer.params.vertical;\n\n this.id = params.id == null ? ws.util.getId() : params.id;\n this.start = Number(params.start) || 0;\n this.end =\n params.end == null\n ? // small marker-like region\n this.start +\n (4 / this.wrapper.scrollWidth) * this.wavesurfer.getDuration()\n : Number(params.end);\n this.resize =\n params.resize === undefined ? true : Boolean(params.resize);\n this.drag = params.drag === undefined ? true : Boolean(params.drag);\n // reflect resize and drag state of region for region-updated listener\n this.isResizing = false;\n this.isDragging = false;\n this.loop = Boolean(params.loop);\n this.color = params.color || 'rgba(0, 0, 0, 0.1)';\n // The left and right handleStyle properties can be set to 'none' for\n // no styling or can be assigned an object containing CSS properties.\n this.handleStyle = params.handleStyle || {\n left: {},\n right: {}\n };\n this.handleLeftEl = null;\n this.handleRightEl = null;\n this.data = params.data || {};\n this.attributes = params.attributes || {};\n this.showTooltip = params.showTooltip ?? true;\n\n this.maxLength = params.maxLength;\n // It assumes the minLength parameter value, or the regionsMinLength parameter value, if the first one not provided\n this.minLength = params.minLength;\n this._onRedraw = () => this.updateRender();\n\n this.scroll = params.scroll !== false && ws.params.scrollParent;\n this.scrollSpeed = params.scrollSpeed || 1;\n this.scrollThreshold = params.scrollThreshold || 10;\n // Determines whether the context menu is prevented from being opened.\n this.preventContextMenu =\n params.preventContextMenu === undefined\n ? false\n : Boolean(params.preventContextMenu);\n\n // select channel ID to set region\n let channelIdx =\n params.channelIdx == null ? -1 : parseInt(params.channelIdx);\n this.channelIdx = channelIdx;\n this.regionHeight = '100%';\n this.marginTop = '0px';\n\n if (channelIdx !== -1) {\n let channelCount =\n this.wavesurfer.backend.buffer != null\n ? this.wavesurfer.backend.buffer.numberOfChannels\n : -1;\n if (channelCount >= 0 && channelIdx < channelCount) {\n this.regionHeight = Math.floor((1 / channelCount) * 100) + '%';\n this.marginTop =\n this.wavesurfer.getHeight() * channelIdx + 'px';\n }\n }\n\n this.formatTimeCallback = params.formatTimeCallback;\n this.edgeScrollWidth = params.edgeScrollWidth;\n this.bindInOut();\n this.render();\n this.wavesurfer.on('zoom', this._onRedraw);\n this.wavesurfer.on('redraw', this._onRedraw);\n this.wavesurfer.fireEvent('region-created', this);\n }\n\n /* Update region params. */\n update(params, eventParams) {\n if (params.start != null) {\n this.start = Number(params.start);\n }\n if (params.end != null) {\n this.end = Number(params.end);\n }\n if (params.loop != null) {\n this.loop = Boolean(params.loop);\n }\n if (params.color != null) {\n this.color = params.color;\n }\n if (params.handleStyle != null) {\n this.handleStyle = params.handleStyle;\n }\n if (params.data != null) {\n this.data = params.data;\n }\n if (params.resize != null) {\n this.resize = Boolean(params.resize);\n this.updateHandlesResize(this.resize);\n }\n if (params.drag != null) {\n this.drag = Boolean(params.drag);\n }\n if (params.maxLength != null) {\n this.maxLength = Number(params.maxLength);\n }\n if (params.minLength != null) {\n this.minLength = Number(params.minLength);\n }\n if (params.attributes != null) {\n this.attributes = params.attributes;\n }\n\n this.updateRender();\n this.fireEvent('update');\n this.wavesurfer.fireEvent('region-updated', this, eventParams);\n }\n\n /* Remove a single region. */\n remove() {\n if (this.element) {\n this.wrapper.removeChild(this.element.domElement);\n this.element = null;\n this.fireEvent('remove');\n this.wavesurfer.un('zoom', this._onRedraw);\n this.wavesurfer.un('redraw', this._onRedraw);\n this.wavesurfer.fireEvent('region-removed', this);\n }\n }\n\n /**\n * Play the audio region.\n * @param {number} start Optional offset to start playing at\n */\n play(start) {\n const s = start || this.start;\n this.wavesurfer.play(s, this.end);\n this.fireEvent('play');\n this.wavesurfer.fireEvent('region-play', this);\n }\n\n /**\n * Play the audio region in a loop.\n * @param {number} start Optional offset to start playing at\n * */\n playLoop(start) {\n this.loop = true;\n this.play(start);\n }\n\n /**\n * Set looping on/off.\n * @param {boolean} loop True if should play in loop\n */\n setLoop(loop) {\n this.loop = loop;\n }\n\n /* Render a region as a DOM element. */\n render() {\n this.element = this.util.withOrientation(\n this.wrapper.appendChild(document.createElement('region')),\n this.vertical\n );\n\n this.element.className = 'wavesurfer-region';\n if (this.showTooltip) {\n this.element.title = this.formatTime(this.start, this.end);\n }\n this.element.setAttribute('data-id', this.id);\n\n for (const attrname in this.attributes) {\n this.element.setAttribute(\n 'data-region-' + attrname,\n this.attributes[attrname]\n );\n }\n\n this.style(this.element, {\n position: 'absolute',\n zIndex: 3,\n height: this.regionHeight,\n top: this.marginTop\n });\n\n /* Resize handles */\n if (this.resize) {\n this.handleLeftEl = this.util.withOrientation(\n this.element.appendChild(document.createElement('handle')),\n this.vertical\n );\n this.handleRightEl = this.util.withOrientation(\n this.element.appendChild(document.createElement('handle')),\n this.vertical\n );\n\n this.handleLeftEl.className = 'wavesurfer-handle wavesurfer-handle-start';\n this.handleRightEl.className = 'wavesurfer-handle wavesurfer-handle-end';\n\n // Default CSS properties for both handles.\n const css = {\n cursor: this.vertical ? 'row-resize' : 'col-resize',\n position: 'absolute',\n top: '0px',\n width: '2px',\n height: '100%',\n backgroundColor: 'rgba(0, 0, 0, 1)'\n };\n\n // Merge CSS properties per handle.\n const handleLeftCss =\n this.handleStyle.left !== 'none'\n ? Object.assign(\n { left: '0px' },\n css,\n this.handleStyle.left\n )\n : null;\n const handleRightCss =\n this.handleStyle.right !== 'none'\n ? Object.assign(\n { right: '0px' },\n css,\n this.handleStyle.right\n )\n : null;\n\n if (handleLeftCss) {\n this.style(this.handleLeftEl, handleLeftCss);\n }\n\n if (handleRightCss) {\n this.style(this.handleRightEl, handleRightCss);\n }\n }\n\n this.updateRender();\n this.bindEvents();\n }\n\n formatTime(start, end) {\n if (this.formatTimeCallback) {\n return this.formatTimeCallback(start, end);\n }\n return (start == end ? [start] : [start, end])\n .map((time) =>\n [\n Math.floor((time % 3600) / 60), // minutes\n ('00' + Math.floor(time % 60)).slice(-2) // seconds\n ].join(':')\n )\n .join('-');\n }\n\n getWidth() {\n return this.wavesurfer.drawer.width / this.wavesurfer.params.pixelRatio;\n }\n\n /* Update element's position, width, color. */\n updateRender() {\n // duration varies during loading process, so don't overwrite important data\n const dur = this.wavesurfer.getDuration();\n const width = this.getWidth();\n\n let startLimited = this.start;\n let endLimited = this.end;\n if (startLimited < 0) {\n startLimited = 0;\n endLimited = endLimited - startLimited;\n }\n if (endLimited > dur) {\n endLimited = dur;\n startLimited = dur - (endLimited - startLimited);\n }\n\n if (this.minLength != null) {\n endLimited = Math.max(startLimited + this.minLength, endLimited);\n }\n\n if (this.maxLength != null) {\n endLimited = Math.min(startLimited + this.maxLength, endLimited);\n }\n\n if (this.element != null) {\n // Calculate the left and width values of the region such that\n // no gaps appear between regions.\n const left = Math.round((startLimited / dur) * width);\n const regionWidth = Math.round((endLimited / dur) * width) - left;\n\n this.style(this.element, {\n left: left + 'px',\n width: regionWidth + 'px',\n backgroundColor: this.color,\n cursor: this.drag ? 'move' : 'default'\n });\n\n for (const attrname in this.attributes) {\n this.element.setAttribute(\n 'data-region-' + attrname,\n this.attributes[attrname]\n );\n }\n\n if (this.showTooltip) {\n this.element.title = this.formatTime(this.start, this.end);\n }\n }\n }\n\n /* Bind audio events. */\n bindInOut() {\n this.firedIn = false;\n this.firedOut = false;\n\n const onProcess = (time) => {\n let start = Math.round(this.start * 10) / 10;\n let end = Math.round(this.end * 10) / 10;\n time = Math.round(time * 10) / 10;\n\n if (\n !this.firedOut &&\n this.firedIn &&\n (start > time || end <= time)\n ) {\n this.firedOut = true;\n this.firedIn = false;\n this.fireEvent('out');\n this.wavesurfer.fireEvent('region-out', this);\n }\n if (!this.firedIn && start <= time && end > time) {\n this.firedIn = true;\n this.firedOut = false;\n this.fireEvent('in');\n this.wavesurfer.fireEvent('region-in', this);\n }\n };\n\n this.wavesurfer.backend.on('audioprocess', onProcess);\n\n this.on('remove', () => {\n this.wavesurfer.backend.un('audioprocess', onProcess);\n });\n\n /* Loop playback. */\n this.on('out', () => {\n if (this.loop) {\n const realTime = this.wavesurfer.getCurrentTime();\n if (realTime >= this.start && realTime <= this.end) {\n this.wavesurfer.play(this.start);\n }\n }\n });\n }\n\n /* Bind DOM events. */\n bindEvents() {\n const preventContextMenu = this.preventContextMenu;\n\n this.element.addEventListener('mouseenter', (e) => {\n this.fireEvent('mouseenter', e);\n this.wavesurfer.fireEvent('region-mouseenter', this, e);\n });\n\n this.element.addEventListener('mouseleave', (e) => {\n this.fireEvent('mouseleave', e);\n this.wavesurfer.fireEvent('region-mouseleave', this, e);\n });\n\n this.element.addEventListener('click', (e) => {\n e.preventDefault();\n this.fireEvent('click', e);\n this.wavesurfer.fireEvent('region-click', this, e);\n });\n\n this.element.addEventListener('dblclick', (e) => {\n e.stopPropagation();\n e.preventDefault();\n this.fireEvent('dblclick', e);\n this.wavesurfer.fireEvent('region-dblclick', this, e);\n });\n\n this.element.addEventListener('contextmenu', (e) => {\n if (preventContextMenu) {\n e.preventDefault();\n }\n this.fireEvent('contextmenu', e);\n this.wavesurfer.fireEvent('region-contextmenu', this, e);\n });\n\n /* Drag or resize on mousemove. */\n if (this.drag || this.resize) {\n this.bindDragEvents();\n }\n }\n\n bindDragEvents() {\n const container = this.wavesurfer.drawer.container;\n const scrollSpeed = this.scrollSpeed;\n const scrollThreshold = this.scrollThreshold;\n let startTime;\n let touchId;\n let drag;\n let maxScroll;\n let resize;\n let updated = false;\n let scrollDirection;\n let wrapperRect;\n let regionLeftHalfTime;\n let regionRightHalfTime;\n\n // Scroll when the user is dragging within the threshold\n const edgeScroll = (event) => {\n let orientedEvent = this.util.withOrientation(event, this.vertical);\n const duration = this.wavesurfer.getDuration();\n if (!scrollDirection || (!drag && !resize)) {\n return;\n }\n\n const x = orientedEvent.clientX;\n let distanceBetweenCursorAndWrapperEdge = 0;\n let regionHalfTimeWidth = 0;\n let adjustment = 0;\n\n // Get the currently selected time according to the mouse position\n let time = this.regionsUtil.getRegionSnapToGridValue(\n this.wavesurfer.drawer.handleEvent(event) * duration\n );\n\n if (drag) {\n // Considering the point of contact with the region while edgescrolling\n if (scrollDirection === -1) {\n regionHalfTimeWidth = regionLeftHalfTime * this.wavesurfer.params.minPxPerSec;\n distanceBetweenCursorAndWrapperEdge = x - wrapperRect.left;\n } else {\n regionHalfTimeWidth = regionRightHalfTime * this.wavesurfer.params.minPxPerSec;\n distanceBetweenCursorAndWrapperEdge = wrapperRect.right - x;\n }\n } else {\n // Considering minLength while edgescroll\n let minLength = this.minLength;\n if (!minLength) {\n minLength = 0;\n }\n\n if (resize === 'start') {\n if (time > this.end - minLength) {\n time = this.end - minLength;\n adjustment = scrollSpeed * scrollDirection;\n }\n\n if (time < 0) {\n time = 0;\n }\n } else if (resize === 'end') {\n if (time < this.start + minLength) {\n time = this.start + minLength;\n adjustment = scrollSpeed * scrollDirection;\n }\n\n if (time > duration) {\n time = duration;\n }\n }\n }\n\n // Don't edgescroll if region has reached min or max limit\n const wrapperScrollLeft = this.wrapper.scrollLeft;\n\n if (scrollDirection === -1) {\n if (Math.round(wrapperScrollLeft) === 0) {\n return;\n }\n\n if (Math.round(wrapperScrollLeft - regionHalfTimeWidth + distanceBetweenCursorAndWrapperEdge) <= 0) {\n return;\n }\n } else {\n if (Math.round(wrapperScrollLeft) === maxScroll) {\n return;\n }\n\n if (Math.round(wrapperScrollLeft + regionHalfTimeWidth - distanceBetweenCursorAndWrapperEdge) >= maxScroll) {\n return;\n }\n }\n\n // Update scroll position\n let scrollLeft = wrapperScrollLeft - adjustment + scrollSpeed * scrollDirection;\n\n if (scrollDirection === -1) {\n const calculatedLeft = Math.max(0 + regionHalfTimeWidth - distanceBetweenCursorAndWrapperEdge, scrollLeft);\n this.wrapper.scrollLeft = scrollLeft = calculatedLeft;\n } else {\n const calculatedRight = Math.min(maxScroll - regionHalfTimeWidth + distanceBetweenCursorAndWrapperEdge, scrollLeft);\n this.wrapper.scrollLeft = scrollLeft = calculatedRight;\n }\n\n const delta = time - startTime;\n startTime = time;\n\n // Continue dragging or resizing\n drag ? this.onDrag(delta) : this.onResize(delta, resize);\n\n // Repeat\n window.requestAnimationFrame(() => {\n edgeScroll(event);\n });\n };\n\n const onDown = (event) => {\n const duration = this.wavesurfer.getDuration();\n if (event.touches && event.touches.length > 1) {\n return;\n }\n touchId = event.targetTouches ? event.targetTouches[0].identifier : null;\n\n // stop the event propagation, if this region is resizable or draggable\n // and the event is therefore handled here.\n if (this.drag || this.resize) {\n event.stopPropagation();\n }\n\n // Store the selected startTime we begun dragging or resizing\n startTime = this.regionsUtil.getRegionSnapToGridValue(\n this.wavesurfer.drawer.handleEvent(event, true) * duration\n );\n\n // Store the selected point of contact when we begin dragging\n regionLeftHalfTime = startTime - this.start;\n regionRightHalfTime = this.end - startTime;\n\n // Store for scroll calculations\n maxScroll = this.wrapper.scrollWidth - this.wrapper.clientWidth;\n\n wrapperRect = this.util.withOrientation(\n this.wrapper.getBoundingClientRect(),\n this.vertical\n );\n\n this.isResizing = false;\n this.isDragging = false;\n if (event.target.tagName.toLowerCase() === 'handle') {\n this.isResizing = true;\n resize = event.target.classList.contains('wavesurfer-handle-start')\n ? 'start'\n : 'end';\n } else {\n this.isDragging = true;\n drag = true;\n resize = false;\n }\n };\n const onUp = (event) => {\n if (event.touches && event.touches.length > 1) {\n return;\n }\n\n if (drag || resize) {\n this.isDragging = false;\n this.isResizing = false;\n drag = false;\n scrollDirection = null;\n resize = false;\n }\n\n if (updated) {\n updated = false;\n this.util.preventClick();\n this.fireEvent('update-end', event);\n this.wavesurfer.fireEvent('region-update-end', this, event);\n }\n };\n const onMove = (event) => {\n const duration = this.wavesurfer.getDuration();\n let orientedEvent = this.util.withOrientation(event, this.vertical);\n\n if (event.touches && event.touches.length > 1) {\n return;\n }\n if (event.targetTouches && event.targetTouches[0].identifier != touchId) {\n return;\n }\n if (!drag && !resize) {\n return;\n }\n\n const oldTime = startTime;\n let time = this.regionsUtil.getRegionSnapToGridValue(\n this.wavesurfer.drawer.handleEvent(event) * duration\n );\n\n if (drag) {\n // To maintain relative cursor start point while dragging\n const maxEnd = this.wavesurfer.getDuration();\n if (time > maxEnd - regionRightHalfTime) {\n time = maxEnd - regionRightHalfTime;\n }\n\n if (time - regionLeftHalfTime < 0) {\n time = regionLeftHalfTime;\n }\n }\n\n if (resize) {\n // To maintain relative cursor start point while resizing\n // we have to handle for minLength\n let minLength = this.minLength;\n if (!minLength) {\n minLength = 0;\n }\n\n if (resize === 'start') {\n if (time > this.end - minLength) {\n time = this.end - minLength;\n }\n\n if (time < 0) {\n time = 0;\n }\n } else if (resize === 'end') {\n if (time < this.start + minLength) {\n time = this.start + minLength;\n }\n\n if (time > duration) {\n time = duration;\n }\n }\n }\n\n let delta = time - startTime;\n startTime = time;\n\n // Drag\n if (this.drag && drag) {\n updated = updated || !!delta;\n this.onDrag(delta);\n }\n\n // Resize\n if (this.resize && resize) {\n updated = updated || !!delta;\n this.onResize(delta, resize);\n }\n\n if (\n this.scroll && container.clientWidth < this.wrapper.scrollWidth\n ) {\n // Triggering edgescroll from within edgeScrollWidth\n let x = orientedEvent.clientX;\n\n // Check direction\n if (x < wrapperRect.left + this.edgeScrollWidth) {\n scrollDirection = -1;\n } else if (x > wrapperRect.right - this.edgeScrollWidth) {\n scrollDirection = 1;\n } else {\n scrollDirection = null;\n }\n\n if (scrollDirection) {\n edgeScroll(event);\n }\n }\n };\n\n this.element.addEventListener('mousedown', onDown);\n this.element.addEventListener('touchstart', onDown);\n\n document.body.addEventListener('mousemove', onMove);\n document.body.addEventListener('touchmove', onMove, {passive: false});\n\n document.addEventListener('mouseup', onUp);\n document.body.addEventListener('touchend', onUp);\n\n this.on('remove', () => {\n document.removeEventListener('mouseup', onUp);\n document.body.removeEventListener('touchend', onUp);\n document.body.removeEventListener('mousemove', onMove);\n document.body.removeEventListener('touchmove', onMove);\n });\n\n this.wavesurfer.on('destroy', () => {\n document.removeEventListener('mouseup', onUp);\n document.body.removeEventListener('touchend', onUp);\n });\n }\n\n onDrag(delta) {\n const maxEnd = this.wavesurfer.getDuration();\n if (this.end + delta > maxEnd) {\n delta = maxEnd - this.end;\n }\n\n if (this.start + delta < 0) {\n delta = this.start * -1;\n }\n\n const eventParams = {\n direction: this._getDragDirection(delta),\n action: 'drag'\n };\n\n this.update({\n start: this.start + delta,\n end: this.end + delta\n }, eventParams);\n }\n\n /**\n * Returns the direction of dragging region based on delta\n * Negative delta means region is moving to the left\n * Positive - to the right\n * For zero delta the direction is not defined\n * @param {number} delta Drag offset\n * @returns {string|null} Direction 'left', 'right' or null\n */\n _getDragDirection(delta) {\n if (delta < 0) {\n return 'left';\n }\n if (delta > 0) {\n return 'right';\n }\n return null;\n }\n\n /**\n * @example\n * onResize(-5, 'start') // Moves the start point 5 seconds back\n * onResize(0.5, 'end') // Moves the end point 0.5 seconds forward\n *\n * @param {number} delta How much to add or subtract, given in seconds\n * @param {string} direction 'start 'or 'end'\n */\n onResize(delta, direction) {\n const duration = this.wavesurfer.getDuration();\n const eventParams = {\n action: 'resize',\n direction: direction === 'start' ? 'left' : 'right'\n };\n\n if (direction === 'start') {\n // Check if changing the start by the given delta would result in the region being smaller than minLength\n if (delta > 0 && this.end - (this.start + delta) < this.minLength) {\n delta = this.end - this.minLength - this.start;\n }\n\n // Check if changing the start by the given delta would result in the region being larger than maxLength\n if (delta < 0 && this.end - (this.start + delta) > this.maxLength) {\n delta = this.end - this.start - this.maxLength;\n }\n\n if (delta < 0 && (this.start + delta) < 0) {\n delta = this.start * -1;\n }\n\n this.update({\n start: Math.min(this.start + delta, this.end),\n end: Math.max(this.start + delta, this.end)\n }, eventParams);\n } else {\n // Check if changing the end by the given delta would result in the region being smaller than minLength\n if (delta < 0 && this.end + delta - this.start < this.minLength) {\n delta = this.start + this.minLength - this.end;\n }\n\n // Check if changing the end by the given delta would result in the region being larger than maxLength\n if (delta > 0 && this.end + delta - this.start > this.maxLength) {\n delta = this.maxLength - (this.end - this.start);\n }\n\n if (delta > 0 && (this.end + delta) > duration) {\n delta = duration - this.end;\n }\n\n this.update({\n start: Math.min(this.end + delta, this.start),\n end: Math.max(this.end + delta, this.start)\n }, eventParams);\n }\n }\n\n updateHandlesResize(resize) {\n let cursorStyle;\n if (resize) {\n cursorStyle = this.vertical ? 'row-resize' : 'col-resize';\n } else {\n cursorStyle = 'auto';\n }\n\n this.handleLeftEl && this.style(this.handleLeftEl, { cursor: cursorStyle });\n this.handleRightEl && this.style(this.handleRightEl, { cursor: cursorStyle });\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/regions/index.js\");\n",""],"names":["RegionsPlugin","params","ws","wavesurfer","util","getRegionSnapToGridValue","value","maxRegions","regionsMinLength","observerPrototypeKeys","Object","getOwnPropertyNames","Observer","prototype","forEach","key","Region","scrollWidthProportion","_onBackendCreated","wrapper","drawer","orientation","defaultEdgeScrollWidth","clientWidth","regions","region","add","list","_onReady","vertical","dragSelection","enableDragSelection","keys","id","updateRender","isReady","once","un","setDisabledEventEmissions","disableDragSelection","clear","length","wouldExceedMaxRegions","edgeScrollWidth","formatTimeCallback","minLength","on","remove","slop","container","scroll","scrollParent","scrollSpeed","scrollThreshold","drag","duration","getDuration","maxScroll","start","touchId","pxMove","scrollDirection","wrapperRect","edgeScroll","e","scrollLeft","Math","min","max","end","handleEvent","update","window","requestAnimationFrame","eventDown","touches","targetTouches","identifier","scrollWidth","withOrientation","getBoundingClientRect","splitChannels","splitChannelsOptions","splitDragSelection","y","clientY","top","channelCount","backend","buffer","numberOfChannels","channelHeight","clientHeight","channelIdx","floor","channelColors","dragColor","color","addEventListener","removeEventListener","eventUp","preventClick","fireEvent","document","body","eventMove","event","startUpdate","endUpdate","orientedEvent","x","clientX","left","right","time","getCurrentTime","cur","snapToGridInterval","offset","snapToGridOffset","round","name","deferInit","staticProps","addRegion","options","initialisedPluginList","initPlugin","clearRegions","instance","regionsUtils","style","regionsUtil","getId","Number","resize","undefined","Boolean","isResizing","isDragging","loop","handleStyle","handleLeftEl","handleRightEl","data","attributes","showTooltip","maxLength","_onRedraw","preventContextMenu","parseInt","regionHeight","marginTop","getHeight","bindInOut","render","eventParams","updateHandlesResize","element","removeChild","domElement","s","play","appendChild","createElement","className","title","formatTime","setAttribute","attrname","position","zIndex","height","css","cursor","width","backgroundColor","handleLeftCss","assign","handleRightCss","bindEvents","map","slice","join","pixelRatio","dur","getWidth","startLimited","endLimited","regionWidth","firedIn","firedOut","onProcess","realTime","preventDefault","stopPropagation","bindDragEvents","startTime","updated","regionLeftHalfTime","regionRightHalfTime","distanceBetweenCursorAndWrapperEdge","regionHalfTimeWidth","adjustment","minPxPerSec","wrapperScrollLeft","calculatedLeft","calculatedRight","delta","onDrag","onResize","onDown","target","tagName","toLowerCase","classList","contains","onUp","onMove","oldTime","maxEnd","passive","direction","_getDragDirection","action","cursorStyle"],"sourceRoot":""}
\No newline at end of file