{"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":""}