wavesurfer.js 6.4.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 (58) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +36 -48
  3. package/dist/plugin/wavesurfer.cursor.js +19 -8
  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 +6 -3
  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 +6 -3
  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 +4 -2
  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 +5 -2
  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 +5 -2
  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 +5 -2
  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 +106 -9
  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 +5 -2
  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 +13 -5
  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 +4 -2
  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 +77 -27
  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 +8 -8
  52. package/src/mediaelement.js +3 -0
  53. package/src/plugin/cursor/index.js +1 -1
  54. package/src/plugin/markers/index.js +1 -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
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.elan.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/elan/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\"][\"elan\"] = factory();\n})(self, () => {\nreturn ","/**\n * @typedef {Object} ElanPluginParams\n * @property {string|HTMLElement} container CSS selector or HTML element where\n * the ELAN information should be rendered.\n * @property {string} url The location of ELAN XML data\n * @property {?boolean} deferInit Set to true to manually call\n * @property {?Object} tiers If set only shows the data tiers with the `TIER_ID`\n * in this map.\n */\n\n/**\n * Downloads and renders ELAN audio transcription documents alongside the\n * waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import ElanPlugin from 'wavesurfer.elan.js';\n *\n * // commonjs\n * var ElanPlugin = require('wavesurfer.elan.js');\n *\n * // if you are using <script> tags\n * var ElanPlugin = window.WaveSurfer.elan;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * ElanPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class ElanPlugin {\n /**\n * Elan 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 {ElanPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'elan',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: ElanPlugin\n };\n }\n\n Types = {\n ALIGNABLE_ANNOTATION: 'ALIGNABLE_ANNOTATION',\n REF_ANNOTATION: 'REF_ANNOTATION'\n };\n\n constructor(params, ws) {\n this.data = null;\n this.params = params;\n this.container =\n 'string' == typeof params.container\n ? document.querySelector(params.container)\n : params.container;\n\n if (!this.container) {\n throw Error('No container for ELAN');\n }\n }\n\n init() {\n this.bindClick();\n\n if (this.params.url) {\n this.load(this.params.url);\n }\n }\n\n destroy() {\n this.container.removeEventListener('click', this._onClick);\n this.container.removeChild(this.table);\n }\n\n load(url) {\n this.loadXML(url, xml => {\n this.data = this.parseElan(xml);\n this.render();\n this.fireEvent('ready', this.data);\n });\n }\n\n loadXML(url, callback) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'document';\n xhr.send();\n xhr.addEventListener('load', e => {\n callback && callback(e.target.responseXML);\n });\n }\n\n parseElan(xml) {\n const _forEach = Array.prototype.forEach;\n const _map = Array.prototype.map;\n\n const data = {\n media: {},\n timeOrder: {},\n tiers: [],\n annotations: {},\n alignableAnnotations: []\n };\n\n const header = xml.querySelector('HEADER');\n const inMilliseconds =\n header.getAttribute('TIME_UNITS') == 'milliseconds';\n const media = header.querySelector('MEDIA_DESCRIPTOR');\n data.media.url = media.getAttribute('MEDIA_URL');\n data.media.type = media.getAttribute('MIME_TYPE');\n\n const timeSlots = xml.querySelectorAll('TIME_ORDER TIME_SLOT');\n const timeOrder = {};\n _forEach.call(timeSlots, slot => {\n let value = parseFloat(slot.getAttribute('TIME_VALUE'));\n // If in milliseconds, convert to seconds with rounding\n if (inMilliseconds) {\n value = Math.round(value * 1e2) / 1e5;\n }\n timeOrder[slot.getAttribute('TIME_SLOT_ID')] = value;\n });\n\n data.tiers = _map.call(xml.querySelectorAll('TIER'), tier => ({\n id: tier.getAttribute('TIER_ID'),\n linguisticTypeRef: tier.getAttribute('LINGUISTIC_TYPE_REF'),\n defaultLocale: tier.getAttribute('DEFAULT_LOCALE'),\n annotations: _map.call(\n tier.querySelectorAll('REF_ANNOTATION, ALIGNABLE_ANNOTATION'),\n node => {\n const annot = {\n type: node.nodeName,\n id: node.getAttribute('ANNOTATION_ID'),\n ref: node.getAttribute('ANNOTATION_REF'),\n value: node\n .querySelector('ANNOTATION_VALUE')\n .textContent.trim()\n };\n\n if (this.Types.ALIGNABLE_ANNOTATION == annot.type) {\n // Add start & end to alignable annotation\n annot.start =\n timeOrder[node.getAttribute('TIME_SLOT_REF1')];\n annot.end =\n timeOrder[node.getAttribute('TIME_SLOT_REF2')];\n // Add to the list of alignable annotations\n data.alignableAnnotations.push(annot);\n }\n\n // Additionally, put into the flat map of all annotations\n data.annotations[annot.id] = annot;\n\n return annot;\n }\n )\n }));\n\n // Create JavaScript references between annotations\n data.tiers.forEach(tier => {\n tier.annotations.forEach(annot => {\n if (null != annot.ref) {\n annot.reference = data.annotations[annot.ref];\n }\n });\n });\n\n // Sort alignable annotations by start & end\n data.alignableAnnotations.sort((a, b) => {\n let d = a.start - b.start;\n if (d == 0) {\n d = b.end - a.end;\n }\n return d;\n });\n\n data.length = data.alignableAnnotations.length;\n\n return data;\n }\n\n render() {\n // apply tiers filter\n let tiers = this.data.tiers;\n if (this.params.tiers) {\n tiers = tiers.filter(tier => tier.id in this.params.tiers);\n }\n\n // denormalize references to alignable annotations\n const backRefs = {};\n let indeces = {};\n tiers.forEach((tier, index) => {\n tier.annotations.forEach(annot => {\n if (\n annot.reference &&\n annot.reference.type == this.Types.ALIGNABLE_ANNOTATION\n ) {\n if (!(annot.reference.id in backRefs)) {\n backRefs[annot.ref] = {};\n }\n backRefs[annot.ref][index] = annot;\n indeces[index] = true;\n }\n });\n });\n indeces = Object.keys(indeces).sort();\n\n this.renderedAlignable = this.data.alignableAnnotations.filter(\n alignable => backRefs[alignable.id]\n );\n\n // table\n const table = (this.table = document.createElement('table'));\n table.className = 'wavesurfer-annotations';\n\n // head\n const thead = document.createElement('thead');\n const headRow = document.createElement('tr');\n thead.appendChild(headRow);\n table.appendChild(thead);\n const th = document.createElement('th');\n th.textContent = 'Time';\n th.className = 'wavesurfer-time';\n headRow.appendChild(th);\n indeces.forEach(index => {\n const tier = tiers[index];\n const th = document.createElement('th');\n th.className = 'wavesurfer-tier-' + tier.id;\n th.textContent = tier.id;\n if (this.params.tiers) { th.style.width = this.params.tiers[tier.id]; }\n headRow.appendChild(th);\n });\n\n // body\n const tbody = document.createElement('tbody');\n table.appendChild(tbody);\n this.renderedAlignable.forEach(alignable => {\n const row = document.createElement('tr');\n row.id = 'wavesurfer-alignable-' + alignable.id;\n tbody.appendChild(row);\n\n const td = document.createElement('td');\n td.className = 'wavesurfer-time';\n td.textContent =\n alignable.start.toFixed(1) + '–' + alignable.end.toFixed(1);\n row.appendChild(td);\n\n const backRef = backRefs[alignable.id];\n indeces.forEach(index => {\n const tier = tiers[index];\n const td = document.createElement('td');\n const annotation = backRef[index];\n if (annotation) {\n td.id = 'wavesurfer-annotation-' + annotation.id;\n td.dataset.ref = alignable.id;\n td.dataset.start = alignable.start;\n td.dataset.end = alignable.end;\n td.textContent = annotation.value;\n }\n td.className = 'wavesurfer-tier-' + tier.id;\n row.appendChild(td);\n });\n });\n\n this.container.innerHTML = '';\n this.container.appendChild(table);\n }\n\n bindClick() {\n this._onClick = e => {\n const ref = e.target.dataset.ref;\n if (null != ref) {\n const annot = this.data.annotations[ref];\n if (annot) {\n this.fireEvent('select', annot.start, annot.end);\n }\n }\n };\n this.container.addEventListener('click', this._onClick);\n }\n\n getRenderedAnnotation(time) {\n let result;\n this.renderedAlignable.some(annotation => {\n if (annotation.start <= time && annotation.end >= time) {\n result = annotation;\n return true;\n }\n return false;\n });\n return result;\n }\n\n getAnnotationNode(annotation) {\n return document.getElementById('wavesurfer-alignable-' + annotation.id);\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/elan/index.js\");\n",""],"names":["ElanPlugin","params","ws","ALIGNABLE_ANNOTATION","REF_ANNOTATION","data","container","document","querySelector","Error","bindClick","url","load","removeEventListener","_onClick","removeChild","table","loadXML","xml","parseElan","render","fireEvent","callback","xhr","XMLHttpRequest","open","responseType","send","addEventListener","e","target","responseXML","_forEach","Array","prototype","forEach","_map","map","media","timeOrder","tiers","annotations","alignableAnnotations","header","inMilliseconds","getAttribute","type","timeSlots","querySelectorAll","call","slot","value","parseFloat","Math","round","tier","id","linguisticTypeRef","defaultLocale","node","annot","nodeName","ref","textContent","trim","Types","start","end","push","reference","sort","a","b","d","length","filter","backRefs","indeces","index","Object","keys","renderedAlignable","alignable","createElement","className","thead","headRow","appendChild","th","style","width","tbody","row","td","toFixed","backRef","annotation","dataset","innerHTML","time","result","some","getElementById","name","deferInit","instance"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.elan.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/elan/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\"][\"elan\"] = factory();\n})(self, () => {\nreturn ","/**\n * @typedef {Object} ElanPluginParams\n * @property {string|HTMLElement} container CSS selector or HTML element where\n * the ELAN information should be rendered.\n * @property {string} url The location of ELAN XML data\n * @property {?boolean} deferInit Set to true to manually call\n * @property {?Object} tiers If set only shows the data tiers with the `TIER_ID`\n * in this map.\n */\n\n/**\n * Downloads and renders ELAN audio transcription documents alongside the\n * waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import ElanPlugin from 'wavesurfer.elan.js';\n *\n * // commonjs\n * var ElanPlugin = require('wavesurfer.elan.js');\n *\n * // if you are using <script> tags\n * var ElanPlugin = window.WaveSurfer.elan;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * ElanPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class ElanPlugin {\n /**\n * Elan 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 {ElanPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'elan',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: ElanPlugin\n };\n }\n\n Types = {\n ALIGNABLE_ANNOTATION: 'ALIGNABLE_ANNOTATION',\n REF_ANNOTATION: 'REF_ANNOTATION'\n };\n\n constructor(params, ws) {\n this.data = null;\n this.params = params;\n this.container =\n 'string' == typeof params.container\n ? document.querySelector(params.container)\n : params.container;\n\n if (!this.container) {\n throw Error('No container for ELAN');\n }\n }\n\n init() {\n this.bindClick();\n\n if (this.params.url) {\n this.load(this.params.url);\n }\n }\n\n destroy() {\n this.container.removeEventListener('click', this._onClick);\n this.container.removeChild(this.table);\n }\n\n load(url) {\n this.loadXML(url, xml => {\n this.data = this.parseElan(xml);\n this.render();\n this.fireEvent('ready', this.data);\n });\n }\n\n loadXML(url, callback) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'document';\n xhr.send();\n xhr.addEventListener('load', e => {\n callback && callback(e.target.responseXML);\n });\n }\n\n parseElan(xml) {\n const _forEach = Array.prototype.forEach;\n const _map = Array.prototype.map;\n\n const data = {\n media: {},\n timeOrder: {},\n tiers: [],\n annotations: {},\n alignableAnnotations: []\n };\n\n const header = xml.querySelector('HEADER');\n const inMilliseconds =\n header.getAttribute('TIME_UNITS') == 'milliseconds';\n const media = header.querySelector('MEDIA_DESCRIPTOR');\n data.media.url = media.getAttribute('MEDIA_URL');\n data.media.type = media.getAttribute('MIME_TYPE');\n\n const timeSlots = xml.querySelectorAll('TIME_ORDER TIME_SLOT');\n const timeOrder = {};\n _forEach.call(timeSlots, slot => {\n let value = parseFloat(slot.getAttribute('TIME_VALUE'));\n // If in milliseconds, convert to seconds with rounding\n if (inMilliseconds) {\n value = Math.round(value * 1e2) / 1e5;\n }\n timeOrder[slot.getAttribute('TIME_SLOT_ID')] = value;\n });\n\n data.tiers = _map.call(xml.querySelectorAll('TIER'), tier => ({\n id: tier.getAttribute('TIER_ID'),\n linguisticTypeRef: tier.getAttribute('LINGUISTIC_TYPE_REF'),\n defaultLocale: tier.getAttribute('DEFAULT_LOCALE'),\n annotations: _map.call(\n tier.querySelectorAll('REF_ANNOTATION, ALIGNABLE_ANNOTATION'),\n node => {\n const annot = {\n type: node.nodeName,\n id: node.getAttribute('ANNOTATION_ID'),\n ref: node.getAttribute('ANNOTATION_REF'),\n value: node\n .querySelector('ANNOTATION_VALUE')\n .textContent.trim()\n };\n\n if (this.Types.ALIGNABLE_ANNOTATION == annot.type) {\n // Add start & end to alignable annotation\n annot.start =\n timeOrder[node.getAttribute('TIME_SLOT_REF1')];\n annot.end =\n timeOrder[node.getAttribute('TIME_SLOT_REF2')];\n // Add to the list of alignable annotations\n data.alignableAnnotations.push(annot);\n }\n\n // Additionally, put into the flat map of all annotations\n data.annotations[annot.id] = annot;\n\n return annot;\n }\n )\n }));\n\n // Create JavaScript references between annotations\n data.tiers.forEach(tier => {\n tier.annotations.forEach(annot => {\n if (null != annot.ref) {\n annot.reference = data.annotations[annot.ref];\n }\n });\n });\n\n // Sort alignable annotations by start & end\n data.alignableAnnotations.sort((a, b) => {\n let d = a.start - b.start;\n if (d == 0) {\n d = b.end - a.end;\n }\n return d;\n });\n\n data.length = data.alignableAnnotations.length;\n\n return data;\n }\n\n render() {\n // apply tiers filter\n let tiers = this.data.tiers;\n if (this.params.tiers) {\n tiers = tiers.filter(tier => tier.id in this.params.tiers);\n }\n\n // denormalize references to alignable annotations\n const backRefs = {};\n let indeces = {};\n tiers.forEach((tier, index) => {\n tier.annotations.forEach(annot => {\n if (\n annot.reference &&\n annot.reference.type == this.Types.ALIGNABLE_ANNOTATION\n ) {\n if (!(annot.reference.id in backRefs)) {\n backRefs[annot.ref] = {};\n }\n backRefs[annot.ref][index] = annot;\n indeces[index] = true;\n }\n });\n });\n indeces = Object.keys(indeces).sort();\n\n this.renderedAlignable = this.data.alignableAnnotations.filter(\n alignable => backRefs[alignable.id]\n );\n\n // table\n const table = (this.table = document.createElement('table'));\n table.className = 'wavesurfer-annotations';\n\n // head\n const thead = document.createElement('thead');\n const headRow = document.createElement('tr');\n thead.appendChild(headRow);\n table.appendChild(thead);\n const th = document.createElement('th');\n th.textContent = 'Time';\n th.className = 'wavesurfer-time';\n headRow.appendChild(th);\n indeces.forEach(index => {\n const tier = tiers[index];\n const th = document.createElement('th');\n th.className = 'wavesurfer-tier-' + tier.id;\n th.textContent = tier.id;\n if (this.params.tiers) { th.style.width = this.params.tiers[tier.id]; }\n headRow.appendChild(th);\n });\n\n // body\n const tbody = document.createElement('tbody');\n table.appendChild(tbody);\n this.renderedAlignable.forEach(alignable => {\n const row = document.createElement('tr');\n row.id = 'wavesurfer-alignable-' + alignable.id;\n tbody.appendChild(row);\n\n const td = document.createElement('td');\n td.className = 'wavesurfer-time';\n td.textContent =\n alignable.start.toFixed(1) + '–' + alignable.end.toFixed(1);\n row.appendChild(td);\n\n const backRef = backRefs[alignable.id];\n indeces.forEach(index => {\n const tier = tiers[index];\n const td = document.createElement('td');\n const annotation = backRef[index];\n if (annotation) {\n td.id = 'wavesurfer-annotation-' + annotation.id;\n td.dataset.ref = alignable.id;\n td.dataset.start = alignable.start;\n td.dataset.end = alignable.end;\n td.textContent = annotation.value;\n }\n td.className = 'wavesurfer-tier-' + tier.id;\n row.appendChild(td);\n });\n });\n\n this.container.innerHTML = '';\n this.container.appendChild(table);\n }\n\n bindClick() {\n this._onClick = e => {\n const ref = e.target.dataset.ref;\n if (null != ref) {\n const annot = this.data.annotations[ref];\n if (annot) {\n this.fireEvent('select', annot.start, annot.end);\n }\n }\n };\n this.container.addEventListener('click', this._onClick);\n }\n\n getRenderedAnnotation(time) {\n let result;\n this.renderedAlignable.some(annotation => {\n if (annotation.start <= time && annotation.end >= time) {\n result = annotation;\n return true;\n }\n return false;\n });\n return result;\n }\n\n getAnnotationNode(annotation) {\n return document.getElementById('wavesurfer-alignable-' + annotation.id);\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/elan/index.js\");\n",""],"names":["ElanPlugin","params","ws","_classCallCheck","_defineProperty","ALIGNABLE_ANNOTATION","REF_ANNOTATION","data","container","document","querySelector","Error","_createClass","key","value","init","bindClick","url","load","destroy","removeEventListener","_onClick","removeChild","table","_this","loadXML","xml","parseElan","render","fireEvent","callback","xhr","XMLHttpRequest","open","responseType","send","addEventListener","e","target","responseXML","_this2","_forEach","Array","prototype","forEach","_map","map","media","timeOrder","tiers","annotations","alignableAnnotations","header","inMilliseconds","getAttribute","type","timeSlots","querySelectorAll","call","slot","parseFloat","Math","round","tier","id","linguisticTypeRef","defaultLocale","node","annot","nodeName","ref","textContent","trim","Types","start","end","push","reference","sort","a","b","d","length","_this3","filter","backRefs","indeces","index","Object","keys","renderedAlignable","alignable","createElement","className","thead","headRow","appendChild","th","style","width","tbody","row","td","toFixed","backRef","annotation","dataset","innerHTML","_this4","getRenderedAnnotation","time","result","some","getAnnotationNode","getElementById","create","name","deferInit","instance","exports","default","module"],"sourceRoot":""}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * wavesurfer.js elan plugin 6.4.0 (2022-11-05)
2
+ * wavesurfer.js elan 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.elan=t())}(self,(()=>(()=>{"use strict";var e={375:(e,t)=>{function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){function e(t,n){var r,a,i;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i={ALIGNABLE_ANNOTATION:"ALIGNABLE_ANNOTATION",REF_ANNOTATION:"REF_ANNOTATION"},(a="Types")in(r=this)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i,this.data=null,this.params=t,this.container="string"==typeof t.container?document.querySelector(t.container):t.container,!this.container)throw Error("No container for ELAN")}var t,r,a;return t=e,a=[{key:"create",value:function(t){return{name:"elan",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,instance:e}}}],(r=[{key:"init",value:function(){this.bindClick(),this.params.url&&this.load(this.params.url)}},{key:"destroy",value:function(){this.container.removeEventListener("click",this._onClick),this.container.removeChild(this.table)}},{key:"load",value:function(e){var t=this;this.loadXML(e,(function(e){t.data=t.parseElan(e),t.render(),t.fireEvent("ready",t.data)}))}},{key:"loadXML",value:function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="document",n.send(),n.addEventListener("load",(function(e){t&&t(e.target.responseXML)}))}},{key:"parseElan",value:function(e){var t=this,n=Array.prototype.forEach,r=Array.prototype.map,a={media:{},timeOrder:{},tiers:[],annotations:{},alignableAnnotations:[]},i=e.querySelector("HEADER"),o="milliseconds"==i.getAttribute("TIME_UNITS"),l=i.querySelector("MEDIA_DESCRIPTOR");a.media.url=l.getAttribute("MEDIA_URL"),a.media.type=l.getAttribute("MIME_TYPE");var s=e.querySelectorAll("TIME_ORDER TIME_SLOT"),u={};return n.call(s,(function(e){var t=parseFloat(e.getAttribute("TIME_VALUE"));o&&(t=Math.round(100*t)/1e5),u[e.getAttribute("TIME_SLOT_ID")]=t})),a.tiers=r.call(e.querySelectorAll("TIER"),(function(e){return{id:e.getAttribute("TIER_ID"),linguisticTypeRef:e.getAttribute("LINGUISTIC_TYPE_REF"),defaultLocale:e.getAttribute("DEFAULT_LOCALE"),annotations:r.call(e.querySelectorAll("REF_ANNOTATION, ALIGNABLE_ANNOTATION"),(function(e){var n={type:e.nodeName,id:e.getAttribute("ANNOTATION_ID"),ref:e.getAttribute("ANNOTATION_REF"),value:e.querySelector("ANNOTATION_VALUE").textContent.trim()};return t.Types.ALIGNABLE_ANNOTATION==n.type&&(n.start=u[e.getAttribute("TIME_SLOT_REF1")],n.end=u[e.getAttribute("TIME_SLOT_REF2")],a.alignableAnnotations.push(n)),a.annotations[n.id]=n,n}))}})),a.tiers.forEach((function(e){e.annotations.forEach((function(e){null!=e.ref&&(e.reference=a.annotations[e.ref])}))})),a.alignableAnnotations.sort((function(e,t){var n=e.start-t.start;return 0==n&&(n=t.end-e.end),n})),a.length=a.alignableAnnotations.length,a}},{key:"render",value:function(){var e=this,t=this.data.tiers;this.params.tiers&&(t=t.filter((function(t){return t.id in e.params.tiers})));var n={},r={};t.forEach((function(t,a){t.annotations.forEach((function(t){t.reference&&t.reference.type==e.Types.ALIGNABLE_ANNOTATION&&(t.reference.id in n||(n[t.ref]={}),n[t.ref][a]=t,r[a]=!0)}))})),r=Object.keys(r).sort(),this.renderedAlignable=this.data.alignableAnnotations.filter((function(e){return n[e.id]}));var a=this.table=document.createElement("table");a.className="wavesurfer-annotations";var i=document.createElement("thead"),o=document.createElement("tr");i.appendChild(o),a.appendChild(i);var l=document.createElement("th");l.textContent="Time",l.className="wavesurfer-time",o.appendChild(l),r.forEach((function(n){var r=t[n],a=document.createElement("th");a.className="wavesurfer-tier-"+r.id,a.textContent=r.id,e.params.tiers&&(a.style.width=e.params.tiers[r.id]),o.appendChild(a)}));var s=document.createElement("tbody");a.appendChild(s),this.renderedAlignable.forEach((function(e){var a=document.createElement("tr");a.id="wavesurfer-alignable-"+e.id,s.appendChild(a);var i=document.createElement("td");i.className="wavesurfer-time",i.textContent=e.start.toFixed(1)+"–"+e.end.toFixed(1),a.appendChild(i);var o=n[e.id];r.forEach((function(n){var r=t[n],i=document.createElement("td"),l=o[n];l&&(i.id="wavesurfer-annotation-"+l.id,i.dataset.ref=e.id,i.dataset.start=e.start,i.dataset.end=e.end,i.textContent=l.value),i.className="wavesurfer-tier-"+r.id,a.appendChild(i)}))})),this.container.innerHTML="",this.container.appendChild(a)}},{key:"bindClick",value:function(){var e=this;this._onClick=function(t){var n=t.target.dataset.ref;if(null!=n){var r=e.data.annotations[n];r&&e.fireEvent("select",r.start,r.end)}},this.container.addEventListener("click",this._onClick)}},{key:"getRenderedAnnotation",value:function(e){var t;return this.renderedAlignable.some((function(n){return n.start<=e&&n.end>=e&&(t=n,!0)})),t}},{key:"getAnnotationNode",value:function(e){return document.getElementById("wavesurfer-alignable-"+e.id)}}])&&n(t.prototype,r),a&&n(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=r,e.exports=t.default}},t={};var n=function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(375);return n})()));
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.elan=t())}(self,(()=>(()=>{"use strict";var e={375:(e,t)=>{function n(e){return n="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},n(e)}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,a(r.key),r)}}function a(e){var t=function(e,t){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!==n(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===n(t)?t:String(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(){function e(t,n){var r,i,o;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r=this,o={ALIGNABLE_ANNOTATION:"ALIGNABLE_ANNOTATION",REF_ANNOTATION:"REF_ANNOTATION"},(i=a(i="Types"))in r?Object.defineProperty(r,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[i]=o,this.data=null,this.params=t,this.container="string"==typeof t.container?document.querySelector(t.container):t.container,!this.container)throw Error("No container for ELAN")}var t,n,i;return t=e,i=[{key:"create",value:function(t){return{name:"elan",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,instance:e}}}],(n=[{key:"init",value:function(){this.bindClick(),this.params.url&&this.load(this.params.url)}},{key:"destroy",value:function(){this.container.removeEventListener("click",this._onClick),this.container.removeChild(this.table)}},{key:"load",value:function(e){var t=this;this.loadXML(e,(function(e){t.data=t.parseElan(e),t.render(),t.fireEvent("ready",t.data)}))}},{key:"loadXML",value:function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="document",n.send(),n.addEventListener("load",(function(e){t&&t(e.target.responseXML)}))}},{key:"parseElan",value:function(e){var t=this,n=Array.prototype.forEach,r=Array.prototype.map,a={media:{},timeOrder:{},tiers:[],annotations:{},alignableAnnotations:[]},i=e.querySelector("HEADER"),o="milliseconds"==i.getAttribute("TIME_UNITS"),l=i.querySelector("MEDIA_DESCRIPTOR");a.media.url=l.getAttribute("MEDIA_URL"),a.media.type=l.getAttribute("MIME_TYPE");var u=e.querySelectorAll("TIME_ORDER TIME_SLOT"),s={};return n.call(u,(function(e){var t=parseFloat(e.getAttribute("TIME_VALUE"));o&&(t=Math.round(100*t)/1e5),s[e.getAttribute("TIME_SLOT_ID")]=t})),a.tiers=r.call(e.querySelectorAll("TIER"),(function(e){return{id:e.getAttribute("TIER_ID"),linguisticTypeRef:e.getAttribute("LINGUISTIC_TYPE_REF"),defaultLocale:e.getAttribute("DEFAULT_LOCALE"),annotations:r.call(e.querySelectorAll("REF_ANNOTATION, ALIGNABLE_ANNOTATION"),(function(e){var n={type:e.nodeName,id:e.getAttribute("ANNOTATION_ID"),ref:e.getAttribute("ANNOTATION_REF"),value:e.querySelector("ANNOTATION_VALUE").textContent.trim()};return t.Types.ALIGNABLE_ANNOTATION==n.type&&(n.start=s[e.getAttribute("TIME_SLOT_REF1")],n.end=s[e.getAttribute("TIME_SLOT_REF2")],a.alignableAnnotations.push(n)),a.annotations[n.id]=n,n}))}})),a.tiers.forEach((function(e){e.annotations.forEach((function(e){null!=e.ref&&(e.reference=a.annotations[e.ref])}))})),a.alignableAnnotations.sort((function(e,t){var n=e.start-t.start;return 0==n&&(n=t.end-e.end),n})),a.length=a.alignableAnnotations.length,a}},{key:"render",value:function(){var e=this,t=this.data.tiers;this.params.tiers&&(t=t.filter((function(t){return t.id in e.params.tiers})));var n={},r={};t.forEach((function(t,a){t.annotations.forEach((function(t){t.reference&&t.reference.type==e.Types.ALIGNABLE_ANNOTATION&&(t.reference.id in n||(n[t.ref]={}),n[t.ref][a]=t,r[a]=!0)}))})),r=Object.keys(r).sort(),this.renderedAlignable=this.data.alignableAnnotations.filter((function(e){return n[e.id]}));var a=this.table=document.createElement("table");a.className="wavesurfer-annotations";var i=document.createElement("thead"),o=document.createElement("tr");i.appendChild(o),a.appendChild(i);var l=document.createElement("th");l.textContent="Time",l.className="wavesurfer-time",o.appendChild(l),r.forEach((function(n){var r=t[n],a=document.createElement("th");a.className="wavesurfer-tier-"+r.id,a.textContent=r.id,e.params.tiers&&(a.style.width=e.params.tiers[r.id]),o.appendChild(a)}));var u=document.createElement("tbody");a.appendChild(u),this.renderedAlignable.forEach((function(e){var a=document.createElement("tr");a.id="wavesurfer-alignable-"+e.id,u.appendChild(a);var i=document.createElement("td");i.className="wavesurfer-time",i.textContent=e.start.toFixed(1)+"–"+e.end.toFixed(1),a.appendChild(i);var o=n[e.id];r.forEach((function(n){var r=t[n],i=document.createElement("td"),l=o[n];l&&(i.id="wavesurfer-annotation-"+l.id,i.dataset.ref=e.id,i.dataset.start=e.start,i.dataset.end=e.end,i.textContent=l.value),i.className="wavesurfer-tier-"+r.id,a.appendChild(i)}))})),this.container.innerHTML="",this.container.appendChild(a)}},{key:"bindClick",value:function(){var e=this;this._onClick=function(t){var n=t.target.dataset.ref;if(null!=n){var r=e.data.annotations[n];r&&e.fireEvent("select",r.start,r.end)}},this.container.addEventListener("click",this._onClick)}},{key:"getRenderedAnnotation",value:function(e){var t;return this.renderedAlignable.some((function(n){return n.start<=e&&n.end>=e&&(t=n,!0)})),t}},{key:"getAnnotationNode",value:function(e){return document.getElementById("wavesurfer-alignable-"+e.id)}}])&&r(t.prototype,n),i&&r(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=i,e.exports=t.default}},t={};var n=function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(375);return n})()));
7
7
  //# sourceMappingURL=wavesurfer.elan.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.elan.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/elan/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\"][\"elan\"] = factory();\n})(self, () => {\nreturn ","/**\n * @typedef {Object} ElanPluginParams\n * @property {string|HTMLElement} container CSS selector or HTML element where\n * the ELAN information should be rendered.\n * @property {string} url The location of ELAN XML data\n * @property {?boolean} deferInit Set to true to manually call\n * @property {?Object} tiers If set only shows the data tiers with the `TIER_ID`\n * in this map.\n */\n\n/**\n * Downloads and renders ELAN audio transcription documents alongside the\n * waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import ElanPlugin from 'wavesurfer.elan.js';\n *\n * // commonjs\n * var ElanPlugin = require('wavesurfer.elan.js');\n *\n * // if you are using <script> tags\n * var ElanPlugin = window.WaveSurfer.elan;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * ElanPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class ElanPlugin {\n /**\n * Elan 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 {ElanPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'elan',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: ElanPlugin\n };\n }\n\n Types = {\n ALIGNABLE_ANNOTATION: 'ALIGNABLE_ANNOTATION',\n REF_ANNOTATION: 'REF_ANNOTATION'\n };\n\n constructor(params, ws) {\n this.data = null;\n this.params = params;\n this.container =\n 'string' == typeof params.container\n ? document.querySelector(params.container)\n : params.container;\n\n if (!this.container) {\n throw Error('No container for ELAN');\n }\n }\n\n init() {\n this.bindClick();\n\n if (this.params.url) {\n this.load(this.params.url);\n }\n }\n\n destroy() {\n this.container.removeEventListener('click', this._onClick);\n this.container.removeChild(this.table);\n }\n\n load(url) {\n this.loadXML(url, xml => {\n this.data = this.parseElan(xml);\n this.render();\n this.fireEvent('ready', this.data);\n });\n }\n\n loadXML(url, callback) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'document';\n xhr.send();\n xhr.addEventListener('load', e => {\n callback && callback(e.target.responseXML);\n });\n }\n\n parseElan(xml) {\n const _forEach = Array.prototype.forEach;\n const _map = Array.prototype.map;\n\n const data = {\n media: {},\n timeOrder: {},\n tiers: [],\n annotations: {},\n alignableAnnotations: []\n };\n\n const header = xml.querySelector('HEADER');\n const inMilliseconds =\n header.getAttribute('TIME_UNITS') == 'milliseconds';\n const media = header.querySelector('MEDIA_DESCRIPTOR');\n data.media.url = media.getAttribute('MEDIA_URL');\n data.media.type = media.getAttribute('MIME_TYPE');\n\n const timeSlots = xml.querySelectorAll('TIME_ORDER TIME_SLOT');\n const timeOrder = {};\n _forEach.call(timeSlots, slot => {\n let value = parseFloat(slot.getAttribute('TIME_VALUE'));\n // If in milliseconds, convert to seconds with rounding\n if (inMilliseconds) {\n value = Math.round(value * 1e2) / 1e5;\n }\n timeOrder[slot.getAttribute('TIME_SLOT_ID')] = value;\n });\n\n data.tiers = _map.call(xml.querySelectorAll('TIER'), tier => ({\n id: tier.getAttribute('TIER_ID'),\n linguisticTypeRef: tier.getAttribute('LINGUISTIC_TYPE_REF'),\n defaultLocale: tier.getAttribute('DEFAULT_LOCALE'),\n annotations: _map.call(\n tier.querySelectorAll('REF_ANNOTATION, ALIGNABLE_ANNOTATION'),\n node => {\n const annot = {\n type: node.nodeName,\n id: node.getAttribute('ANNOTATION_ID'),\n ref: node.getAttribute('ANNOTATION_REF'),\n value: node\n .querySelector('ANNOTATION_VALUE')\n .textContent.trim()\n };\n\n if (this.Types.ALIGNABLE_ANNOTATION == annot.type) {\n // Add start & end to alignable annotation\n annot.start =\n timeOrder[node.getAttribute('TIME_SLOT_REF1')];\n annot.end =\n timeOrder[node.getAttribute('TIME_SLOT_REF2')];\n // Add to the list of alignable annotations\n data.alignableAnnotations.push(annot);\n }\n\n // Additionally, put into the flat map of all annotations\n data.annotations[annot.id] = annot;\n\n return annot;\n }\n )\n }));\n\n // Create JavaScript references between annotations\n data.tiers.forEach(tier => {\n tier.annotations.forEach(annot => {\n if (null != annot.ref) {\n annot.reference = data.annotations[annot.ref];\n }\n });\n });\n\n // Sort alignable annotations by start & end\n data.alignableAnnotations.sort((a, b) => {\n let d = a.start - b.start;\n if (d == 0) {\n d = b.end - a.end;\n }\n return d;\n });\n\n data.length = data.alignableAnnotations.length;\n\n return data;\n }\n\n render() {\n // apply tiers filter\n let tiers = this.data.tiers;\n if (this.params.tiers) {\n tiers = tiers.filter(tier => tier.id in this.params.tiers);\n }\n\n // denormalize references to alignable annotations\n const backRefs = {};\n let indeces = {};\n tiers.forEach((tier, index) => {\n tier.annotations.forEach(annot => {\n if (\n annot.reference &&\n annot.reference.type == this.Types.ALIGNABLE_ANNOTATION\n ) {\n if (!(annot.reference.id in backRefs)) {\n backRefs[annot.ref] = {};\n }\n backRefs[annot.ref][index] = annot;\n indeces[index] = true;\n }\n });\n });\n indeces = Object.keys(indeces).sort();\n\n this.renderedAlignable = this.data.alignableAnnotations.filter(\n alignable => backRefs[alignable.id]\n );\n\n // table\n const table = (this.table = document.createElement('table'));\n table.className = 'wavesurfer-annotations';\n\n // head\n const thead = document.createElement('thead');\n const headRow = document.createElement('tr');\n thead.appendChild(headRow);\n table.appendChild(thead);\n const th = document.createElement('th');\n th.textContent = 'Time';\n th.className = 'wavesurfer-time';\n headRow.appendChild(th);\n indeces.forEach(index => {\n const tier = tiers[index];\n const th = document.createElement('th');\n th.className = 'wavesurfer-tier-' + tier.id;\n th.textContent = tier.id;\n if (this.params.tiers) { th.style.width = this.params.tiers[tier.id]; }\n headRow.appendChild(th);\n });\n\n // body\n const tbody = document.createElement('tbody');\n table.appendChild(tbody);\n this.renderedAlignable.forEach(alignable => {\n const row = document.createElement('tr');\n row.id = 'wavesurfer-alignable-' + alignable.id;\n tbody.appendChild(row);\n\n const td = document.createElement('td');\n td.className = 'wavesurfer-time';\n td.textContent =\n alignable.start.toFixed(1) + '–' + alignable.end.toFixed(1);\n row.appendChild(td);\n\n const backRef = backRefs[alignable.id];\n indeces.forEach(index => {\n const tier = tiers[index];\n const td = document.createElement('td');\n const annotation = backRef[index];\n if (annotation) {\n td.id = 'wavesurfer-annotation-' + annotation.id;\n td.dataset.ref = alignable.id;\n td.dataset.start = alignable.start;\n td.dataset.end = alignable.end;\n td.textContent = annotation.value;\n }\n td.className = 'wavesurfer-tier-' + tier.id;\n row.appendChild(td);\n });\n });\n\n this.container.innerHTML = '';\n this.container.appendChild(table);\n }\n\n bindClick() {\n this._onClick = e => {\n const ref = e.target.dataset.ref;\n if (null != ref) {\n const annot = this.data.annotations[ref];\n if (annot) {\n this.fireEvent('select', annot.start, annot.end);\n }\n }\n };\n this.container.addEventListener('click', this._onClick);\n }\n\n getRenderedAnnotation(time) {\n let result;\n this.renderedAlignable.some(annotation => {\n if (annotation.start <= time && annotation.end >= time) {\n result = annotation;\n return true;\n }\n return false;\n });\n return result;\n }\n\n getAnnotationNode(annotation) {\n return document.getElementById('wavesurfer-alignable-' + annotation.id);\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__(375);\n"],"names":["root","factory","exports","module","define","amd","self","ElanPlugin","params","ws","ALIGNABLE_ANNOTATION","REF_ANNOTATION","this","data","container","document","querySelector","Error","name","deferInit","instance","bindClick","url","load","removeEventListener","_onClick","removeChild","table","loadXML","xml","parseElan","render","fireEvent","callback","xhr","XMLHttpRequest","open","responseType","send","addEventListener","e","target","responseXML","_forEach","Array","prototype","forEach","_map","map","media","timeOrder","tiers","annotations","alignableAnnotations","header","inMilliseconds","getAttribute","type","timeSlots","querySelectorAll","call","slot","value","parseFloat","Math","round","tier","id","linguisticTypeRef","defaultLocale","node","annot","nodeName","ref","textContent","trim","Types","start","end","push","reference","sort","a","b","d","length","filter","backRefs","indeces","index","Object","keys","renderedAlignable","alignable","createElement","className","thead","headRow","appendChild","th","style","width","tbody","row","td","toFixed","backRef","annotation","dataset","innerHTML","time","result","some","getElementById","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.elan.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/elan/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\"][\"elan\"] = factory();\n})(self, () => {\nreturn ","/**\n * @typedef {Object} ElanPluginParams\n * @property {string|HTMLElement} container CSS selector or HTML element where\n * the ELAN information should be rendered.\n * @property {string} url The location of ELAN XML data\n * @property {?boolean} deferInit Set to true to manually call\n * @property {?Object} tiers If set only shows the data tiers with the `TIER_ID`\n * in this map.\n */\n\n/**\n * Downloads and renders ELAN audio transcription documents alongside the\n * waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import ElanPlugin from 'wavesurfer.elan.js';\n *\n * // commonjs\n * var ElanPlugin = require('wavesurfer.elan.js');\n *\n * // if you are using <script> tags\n * var ElanPlugin = window.WaveSurfer.elan;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * ElanPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class ElanPlugin {\n /**\n * Elan 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 {ElanPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'elan',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: ElanPlugin\n };\n }\n\n Types = {\n ALIGNABLE_ANNOTATION: 'ALIGNABLE_ANNOTATION',\n REF_ANNOTATION: 'REF_ANNOTATION'\n };\n\n constructor(params, ws) {\n this.data = null;\n this.params = params;\n this.container =\n 'string' == typeof params.container\n ? document.querySelector(params.container)\n : params.container;\n\n if (!this.container) {\n throw Error('No container for ELAN');\n }\n }\n\n init() {\n this.bindClick();\n\n if (this.params.url) {\n this.load(this.params.url);\n }\n }\n\n destroy() {\n this.container.removeEventListener('click', this._onClick);\n this.container.removeChild(this.table);\n }\n\n load(url) {\n this.loadXML(url, xml => {\n this.data = this.parseElan(xml);\n this.render();\n this.fireEvent('ready', this.data);\n });\n }\n\n loadXML(url, callback) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'document';\n xhr.send();\n xhr.addEventListener('load', e => {\n callback && callback(e.target.responseXML);\n });\n }\n\n parseElan(xml) {\n const _forEach = Array.prototype.forEach;\n const _map = Array.prototype.map;\n\n const data = {\n media: {},\n timeOrder: {},\n tiers: [],\n annotations: {},\n alignableAnnotations: []\n };\n\n const header = xml.querySelector('HEADER');\n const inMilliseconds =\n header.getAttribute('TIME_UNITS') == 'milliseconds';\n const media = header.querySelector('MEDIA_DESCRIPTOR');\n data.media.url = media.getAttribute('MEDIA_URL');\n data.media.type = media.getAttribute('MIME_TYPE');\n\n const timeSlots = xml.querySelectorAll('TIME_ORDER TIME_SLOT');\n const timeOrder = {};\n _forEach.call(timeSlots, slot => {\n let value = parseFloat(slot.getAttribute('TIME_VALUE'));\n // If in milliseconds, convert to seconds with rounding\n if (inMilliseconds) {\n value = Math.round(value * 1e2) / 1e5;\n }\n timeOrder[slot.getAttribute('TIME_SLOT_ID')] = value;\n });\n\n data.tiers = _map.call(xml.querySelectorAll('TIER'), tier => ({\n id: tier.getAttribute('TIER_ID'),\n linguisticTypeRef: tier.getAttribute('LINGUISTIC_TYPE_REF'),\n defaultLocale: tier.getAttribute('DEFAULT_LOCALE'),\n annotations: _map.call(\n tier.querySelectorAll('REF_ANNOTATION, ALIGNABLE_ANNOTATION'),\n node => {\n const annot = {\n type: node.nodeName,\n id: node.getAttribute('ANNOTATION_ID'),\n ref: node.getAttribute('ANNOTATION_REF'),\n value: node\n .querySelector('ANNOTATION_VALUE')\n .textContent.trim()\n };\n\n if (this.Types.ALIGNABLE_ANNOTATION == annot.type) {\n // Add start & end to alignable annotation\n annot.start =\n timeOrder[node.getAttribute('TIME_SLOT_REF1')];\n annot.end =\n timeOrder[node.getAttribute('TIME_SLOT_REF2')];\n // Add to the list of alignable annotations\n data.alignableAnnotations.push(annot);\n }\n\n // Additionally, put into the flat map of all annotations\n data.annotations[annot.id] = annot;\n\n return annot;\n }\n )\n }));\n\n // Create JavaScript references between annotations\n data.tiers.forEach(tier => {\n tier.annotations.forEach(annot => {\n if (null != annot.ref) {\n annot.reference = data.annotations[annot.ref];\n }\n });\n });\n\n // Sort alignable annotations by start & end\n data.alignableAnnotations.sort((a, b) => {\n let d = a.start - b.start;\n if (d == 0) {\n d = b.end - a.end;\n }\n return d;\n });\n\n data.length = data.alignableAnnotations.length;\n\n return data;\n }\n\n render() {\n // apply tiers filter\n let tiers = this.data.tiers;\n if (this.params.tiers) {\n tiers = tiers.filter(tier => tier.id in this.params.tiers);\n }\n\n // denormalize references to alignable annotations\n const backRefs = {};\n let indeces = {};\n tiers.forEach((tier, index) => {\n tier.annotations.forEach(annot => {\n if (\n annot.reference &&\n annot.reference.type == this.Types.ALIGNABLE_ANNOTATION\n ) {\n if (!(annot.reference.id in backRefs)) {\n backRefs[annot.ref] = {};\n }\n backRefs[annot.ref][index] = annot;\n indeces[index] = true;\n }\n });\n });\n indeces = Object.keys(indeces).sort();\n\n this.renderedAlignable = this.data.alignableAnnotations.filter(\n alignable => backRefs[alignable.id]\n );\n\n // table\n const table = (this.table = document.createElement('table'));\n table.className = 'wavesurfer-annotations';\n\n // head\n const thead = document.createElement('thead');\n const headRow = document.createElement('tr');\n thead.appendChild(headRow);\n table.appendChild(thead);\n const th = document.createElement('th');\n th.textContent = 'Time';\n th.className = 'wavesurfer-time';\n headRow.appendChild(th);\n indeces.forEach(index => {\n const tier = tiers[index];\n const th = document.createElement('th');\n th.className = 'wavesurfer-tier-' + tier.id;\n th.textContent = tier.id;\n if (this.params.tiers) { th.style.width = this.params.tiers[tier.id]; }\n headRow.appendChild(th);\n });\n\n // body\n const tbody = document.createElement('tbody');\n table.appendChild(tbody);\n this.renderedAlignable.forEach(alignable => {\n const row = document.createElement('tr');\n row.id = 'wavesurfer-alignable-' + alignable.id;\n tbody.appendChild(row);\n\n const td = document.createElement('td');\n td.className = 'wavesurfer-time';\n td.textContent =\n alignable.start.toFixed(1) + '–' + alignable.end.toFixed(1);\n row.appendChild(td);\n\n const backRef = backRefs[alignable.id];\n indeces.forEach(index => {\n const tier = tiers[index];\n const td = document.createElement('td');\n const annotation = backRef[index];\n if (annotation) {\n td.id = 'wavesurfer-annotation-' + annotation.id;\n td.dataset.ref = alignable.id;\n td.dataset.start = alignable.start;\n td.dataset.end = alignable.end;\n td.textContent = annotation.value;\n }\n td.className = 'wavesurfer-tier-' + tier.id;\n row.appendChild(td);\n });\n });\n\n this.container.innerHTML = '';\n this.container.appendChild(table);\n }\n\n bindClick() {\n this._onClick = e => {\n const ref = e.target.dataset.ref;\n if (null != ref) {\n const annot = this.data.annotations[ref];\n if (annot) {\n this.fireEvent('select', annot.start, annot.end);\n }\n }\n };\n this.container.addEventListener('click', this._onClick);\n }\n\n getRenderedAnnotation(time) {\n let result;\n this.renderedAlignable.some(annotation => {\n if (annotation.start <= time && annotation.end >= time) {\n result = annotation;\n return true;\n }\n return false;\n });\n return result;\n }\n\n getAnnotationNode(annotation) {\n return document.getElementById('wavesurfer-alignable-' + annotation.id);\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__(375);\n"],"names":["root","factory","exports","module","define","amd","self","ElanPlugin","params","ws","_classCallCheck","ALIGNABLE_ANNOTATION","REF_ANNOTATION","this","data","container","document","querySelector","Error","key","value","name","deferInit","instance","bindClick","url","load","removeEventListener","_onClick","removeChild","table","_this","loadXML","xml","parseElan","render","fireEvent","callback","xhr","XMLHttpRequest","open","responseType","send","addEventListener","e","target","responseXML","_this2","_forEach","Array","prototype","forEach","_map","map","media","timeOrder","tiers","annotations","alignableAnnotations","header","inMilliseconds","getAttribute","type","timeSlots","querySelectorAll","call","slot","parseFloat","Math","round","tier","id","linguisticTypeRef","defaultLocale","node","annot","nodeName","ref","textContent","trim","Types","start","end","push","reference","sort","a","b","d","length","_this3","filter","backRefs","indeces","index","Object","keys","renderedAlignable","alignable","createElement","className","thead","headRow","appendChild","th","style","width","tbody","row","td","toFixed","backRef","annotation","dataset","innerHTML","_this4","time","result","some","getElementById","default","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js markers plugin 6.4.0 (2022-11-05)
2
+ * wavesurfer.js markers plugin 6.5.0 (2023-03-11)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -29,9 +29,12 @@ Object.defineProperty(exports, "__esModule", ({
29
29
  value: true
30
30
  }));
31
31
  exports["default"] = void 0;
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); }
32
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33
- 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); } }
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); } }
34
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; }
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); }
35
38
  /**
36
39
  * @typedef {Object} MarkerParams
37
40
  * @desc The parameters used to describe a marker.
@@ -260,7 +263,7 @@ var MarkersPlugin = /*#__PURE__*/function () {
260
263
  labelEl.innerText = label;
261
264
  labelEl.setAttribute('title', tooltip);
262
265
  this.style(labelEl, {
263
- "font-family": "monospace",
266
+ "font-family": "inherit",
264
267
  "font-size": "90%"
265
268
  });
266
269
  labelDiv.appendChild(labelEl);
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.markers.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/markers/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\"][\"markers\"] = factory();\n})(self, () => {\nreturn ","/**\n * @typedef {Object} MarkerParams\n * @desc The parameters used to describe a marker.\n * @example wavesurfer.addMarker(regionParams);\n * @property {number} time The time to set the marker at\n * @property {?label} string An optional marker label\n * @property {?tooltip} string An optional marker tooltip\n * @property {?color} string Background color for marker\n * @property {?position} string \"top\" or \"bottom\", defaults to \"bottom\"\n * @property {?markerElement} element An HTML element to display instead of the default marker image\n * @property {?draggable} boolean Set marker as draggable, defaults to false\n * @property {?boolean} preventContextMenu Determines whether the context menu\n * is prevented from being opened, defaults to false\n */\n\n\n/**\n * Markers are points in time in the audio that can be jumped to.\n *\n * @implements {PluginClass}\n *\n * @example\n * import MarkersPlugin from 'wavesurfer.markers.js';\n *\n * // if you are using <script> tags\n * var MarkerPlugin = window.WaveSurfer.markers;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MarkersPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = \"#D8D8D8\";\nconst DEFAULT_POSITION = \"bottom\";\n\nexport default class MarkersPlugin {\n /**\n * @typedef {Object} MarkersPluginParams\n * @property {?MarkerParams[]} markers Initial set of markers\n * @fires MarkersPlugin#marker-click\n * @fires MarkersPlugin#marker-drag\n * @fires MarkersPlugin#marker-drop\n */\n\n /**\n * Markers 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 {MarkersPluginParams} params parameters use to initialise the plugin\n * @since 4.6.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'markers',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {\n addMarker(options) {\n if (!this.initialisedPluginList.markers) {\n this.initPlugin('markers');\n }\n return this.markers.add(options);\n },\n clearMarkers() {\n this.markers && this.markers.clear();\n }\n },\n instance: MarkersPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerLineWidth = 1;\n this.markerWidth = 11;\n this.markerHeight = 22;\n this.dragging = false;\n\n\n this._onResize = () => {\n this._updateMarkerPositions();\n };\n\n this._onBackendCreated = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n if (this.params.markers) {\n this.params.markers.forEach(marker => this.add(marker));\n }\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('zoom', this._onResize);\n\n if (!this.markers.find(marker => marker.draggable)){\n return;\n }\n\n this.onMouseMove = (e) => this._onMouseMove(e);\n window.addEventListener('mousemove', this.onMouseMove);\n\n this.onMouseUp = (e) => this._onMouseUp(e);\n window.addEventListener(\"mouseup\", this.onMouseUp);\n };\n\n this.markers = [];\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updateMarkerPositions();\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\n this.wavesurfer.un('zoom', this._onResize);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n\n if (this.onMouseMove) {\n window.removeEventListener('mousemove', this.onMouseMove);\n }\n if (this.onMouseUp) {\n window.removeEventListener(\"mouseup\", this.onMouseUp);\n }\n\n this.clear();\n }\n\n /**\n * Add a marker\n *\n * @param {MarkerParams} params Marker definition\n * @return {object} The created marker\n */\n add(params) {\n let marker = {\n time: params.time,\n label: params.label,\n tooltip: params.tooltip,\n color: params.color || DEFAULT_FILL_COLOR,\n position: params.position || DEFAULT_POSITION,\n draggable: !!params.draggable,\n preventContextMenu: !!params.preventContextMenu\n };\n\n marker.el = this._createMarkerElement(marker, params.markerElement);\n\n this.wrapper.appendChild(marker.el);\n this.markers.push(marker);\n this._updateMarkerPositions();\n\n this._registerEvents();\n\n return marker;\n }\n\n /**\n * Remove a marker\n *\n * @param {number} index Index of the marker to remove\n */\n remove(index) {\n let marker = this.markers[index];\n if (!marker) {\n return;\n }\n let label = marker.el.getElementsByClassName(\"marker-label\")[0];\n if (label) {\n if (label._onContextMenu) {\n label.removeEventListener(\"contextmenu\", label._onContextMenu);\n }\n if (label._onClick) {\n label.removeEventListener(\"click\", label._onClick);\n }\n if (label._onMouseDown) {\n label.removeEventListener(\"mousedown\", label._onMouseDown);\n }\n }\n\n this.wrapper.removeChild(marker.el);\n this.markers.splice(index, 1);\n\n this._unregisterEvents();\n }\n\n _createPointerSVG(color, position) {\n const svgNS = \"http://www.w3.org/2000/svg\";\n\n const el = document.createElementNS(svgNS, \"svg\");\n const polygon = document.createElementNS(svgNS, \"polygon\");\n\n el.setAttribute(\"viewBox\", \"0 0 40 80\");\n\n polygon.setAttribute(\"id\", \"polygon\");\n polygon.setAttribute(\"stroke\", \"#979797\");\n polygon.setAttribute(\"fill\", color);\n polygon.setAttribute(\"points\", \"20 0 40 30 40 80 0 80 0 30\");\n if ( position == \"top\" ) {\n polygon.setAttribute(\"transform\", \"rotate(180, 20 40)\");\n }\n\n el.appendChild(polygon);\n\n this.style(el, {\n width: this.markerWidth + \"px\",\n height: this.markerHeight + \"px\",\n \"min-width\": this.markerWidth + \"px\",\n \"margin-right\": \"5px\",\n \"z-index\": 4\n });\n return el;\n }\n\n _createMarkerElement(marker, markerElement) {\n let label = marker.label;\n let tooltip = marker.tooltip;\n\n const el = document.createElement('marker');\n el.className = \"wavesurfer-marker\";\n\n this.style(el, {\n position: \"absolute\",\n height: \"100%\",\n display: \"flex\",\n overflow: \"hidden\",\n \"flex-direction\": (marker.position == \"top\" ? \"column-reverse\" : \"column\")\n });\n\n const line = document.createElement('div');\n const width = markerElement ? markerElement.width : this.markerWidth;\n marker.offset = (width - this.markerLineWidth) / 2;\n this.style(line, {\n \"flex-grow\": 1,\n \"margin-left\": marker.offset + \"px\",\n background: \"black\",\n width: this.markerLineWidth + \"px\",\n opacity: 0.1\n });\n el.appendChild(line);\n\n const labelDiv = document.createElement('div');\n const point = markerElement || this._createPointerSVG(marker.color, marker.position);\n if (marker.draggable){\n point.draggable = false;\n }\n labelDiv.appendChild(point);\n\n if ( label ) {\n const labelEl = document.createElement('span');\n labelEl.innerText = label;\n labelEl.setAttribute('title', tooltip);\n this.style(labelEl, {\n \"font-family\": \"monospace\",\n \"font-size\": \"90%\"\n });\n labelDiv.appendChild(labelEl);\n }\n\n this.style(labelDiv, {\n display: \"flex\",\n \"align-items\": \"center\",\n cursor: \"pointer\"\n });\n labelDiv.classList.add(\"marker-label\");\n\n el.appendChild(labelDiv);\n\n labelDiv._onClick = (e) => {\n e.stopPropagation();\n // Click event is caught when the marker-drop event was dispatched.\n // Drop event was dispatched at this moment, but this.dragging\n // is waiting for the next tick to set as false\n if (this.dragging){\n return;\n }\n this.wavesurfer.setCurrentTime(marker.time);\n this.wavesurfer.fireEvent(\"marker-click\", marker, e);\n };\n labelDiv.addEventListener(\"click\", labelDiv._onClick);\n\n labelDiv._onContextMenu = (e) => {\n if (marker.preventContextMenu) {\n e.preventDefault();\n }\n this.wavesurfer.fireEvent(\"marker-contextmenu\", marker, e);\n };\n labelDiv.addEventListener(\"contextmenu\", labelDiv._onContextMenu);\n\n if (marker.draggable) {\n labelDiv._onMouseDown = () => {\n this.selectedMarker = marker;\n };\n labelDiv.addEventListener(\"mousedown\", labelDiv._onMouseDown);\n }\n return el;\n }\n\n _updateMarkerPositions() {\n for ( let i = 0 ; i < this.markers.length; i++ ) {\n let marker = this.markers[i];\n this._updateMarkerPosition(marker);\n }\n }\n\n /**\n * Update a marker position based on its time property.\n *\n * @private\n * @param {MarkerParams} params The marker to update.\n * @returns {void}\n */\n _updateMarkerPosition(params) {\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = Math.min(params.time / duration, 1);\n const leftPx = ((elementWidth * positionPct) - params.offset);\n this.style(params.el, {\n \"left\": leftPx + \"px\",\n \"max-width\": (elementWidth - leftPx) + \"px\"\n });\n }\n\n /**\n * Fires `marker-drag` event, update the `time` property for the\n * selected marker based on the mouse position, and calls to update\n * its position.\n *\n * @private\n * @param {MouseEvent} event The mouse event.\n * @returns {void}\n */\n _onMouseMove(event) {\n if (!this.selectedMarker){\n return;\n }\n if (!this.dragging){\n this.dragging = true;\n this.wavesurfer.fireEvent(\"marker-drag\", this.selectedMarker, event);\n }\n this.selectedMarker.time = this.wavesurfer.drawer.handleEvent(event) * this.wavesurfer.getDuration();\n this._updateMarkerPositions();\n }\n\n /**\n * Fires `marker-drop` event and unselect the dragged marker.\n *\n * @private\n * @param {MouseEvent} event The mouse event.\n * @returns {void}\n */\n _onMouseUp(event) {\n if (this.selectedMarker) {\n setTimeout(() => {\n this.selectedMarker = false;\n this.dragging = false;\n }, 0);\n }\n\n if (!this.dragging) {\n return;\n }\n\n event.stopPropagation();\n const duration = this.wavesurfer.getDuration();\n this.selectedMarker.time = this.wavesurfer.drawer.handleEvent(event) * duration;\n this._updateMarkerPositions();\n this.wavesurfer.fireEvent(\"marker-drop\", this.selectedMarker, event);\n }\n\n _registerEvents() {\n if (!this.markers.find(marker => marker.draggable)) {\n return;\n }\n //we have some draggable markers, check for listeners\n if (!this.onMouseMove) {\n this.onMouseMove = (e) => this._onMouseMove(e);\n window.addEventListener('mousemove', this.onMouseMove);\n }\n\n if (!this.onMouseUp) {\n this.onMouseUp = (e) => this._onMouseUp(e);\n window.addEventListener(\"mouseup\", this.onMouseUp);\n }\n }\n\n _unregisterEvents() {\n if (this.markers.find(marker => marker.draggable)) {\n return;\n }\n //we don't have any draggable markers, unregister listeners\n if (this.onMouseMove) {\n window.removeEventListener('mousemove', this.onMouseMove);\n this.onMouseMove = null;\n }\n if (this.onMouseUp) {\n window.removeEventListener(\"mouseup\", this.onMouseUp);\n this.onMouseUp = null;\n }\n }\n\n /**\n * Remove all markers\n */\n clear() {\n while ( this.markers.length > 0 ) {\n this.remove(0);\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/markers/index.js\");\n",""],"names":["DEFAULT_FILL_COLOR","DEFAULT_POSITION","MarkersPlugin","params","ws","wavesurfer","util","style","markerLineWidth","markerWidth","markerHeight","dragging","_onResize","_updateMarkerPositions","_onBackendCreated","wrapper","drawer","markers","forEach","marker","add","window","addEventListener","on","find","draggable","onMouseMove","e","_onMouseMove","onMouseUp","_onMouseUp","_onReady","isReady","once","un","removeEventListener","clear","time","label","tooltip","color","position","preventContextMenu","el","_createMarkerElement","markerElement","appendChild","push","_registerEvents","index","getElementsByClassName","_onContextMenu","_onClick","_onMouseDown","removeChild","splice","_unregisterEvents","svgNS","document","createElementNS","polygon","setAttribute","width","height","createElement","className","display","overflow","line","offset","background","opacity","labelDiv","point","_createPointerSVG","labelEl","innerText","cursor","classList","stopPropagation","setCurrentTime","fireEvent","preventDefault","selectedMarker","i","length","_updateMarkerPosition","duration","getDuration","elementWidth","pixelRatio","positionPct","Math","min","leftPx","event","handleEvent","setTimeout","remove","name","deferInit","staticProps","addMarker","options","initialisedPluginList","initPlugin","clearMarkers","instance"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.markers.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/markers/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\"][\"markers\"] = factory();\n})(self, () => {\nreturn ","/**\n * @typedef {Object} MarkerParams\n * @desc The parameters used to describe a marker.\n * @example wavesurfer.addMarker(regionParams);\n * @property {number} time The time to set the marker at\n * @property {?label} string An optional marker label\n * @property {?tooltip} string An optional marker tooltip\n * @property {?color} string Background color for marker\n * @property {?position} string \"top\" or \"bottom\", defaults to \"bottom\"\n * @property {?markerElement} element An HTML element to display instead of the default marker image\n * @property {?draggable} boolean Set marker as draggable, defaults to false\n * @property {?boolean} preventContextMenu Determines whether the context menu\n * is prevented from being opened, defaults to false\n */\n\n\n/**\n * Markers are points in time in the audio that can be jumped to.\n *\n * @implements {PluginClass}\n *\n * @example\n * import MarkersPlugin from 'wavesurfer.markers.js';\n *\n * // if you are using <script> tags\n * var MarkerPlugin = window.WaveSurfer.markers;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MarkersPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = \"#D8D8D8\";\nconst DEFAULT_POSITION = \"bottom\";\n\nexport default class MarkersPlugin {\n /**\n * @typedef {Object} MarkersPluginParams\n * @property {?MarkerParams[]} markers Initial set of markers\n * @fires MarkersPlugin#marker-click\n * @fires MarkersPlugin#marker-drag\n * @fires MarkersPlugin#marker-drop\n */\n\n /**\n * Markers 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 {MarkersPluginParams} params parameters use to initialise the plugin\n * @since 4.6.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'markers',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {\n addMarker(options) {\n if (!this.initialisedPluginList.markers) {\n this.initPlugin('markers');\n }\n return this.markers.add(options);\n },\n clearMarkers() {\n this.markers && this.markers.clear();\n }\n },\n instance: MarkersPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerLineWidth = 1;\n this.markerWidth = 11;\n this.markerHeight = 22;\n this.dragging = false;\n\n\n this._onResize = () => {\n this._updateMarkerPositions();\n };\n\n this._onBackendCreated = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n if (this.params.markers) {\n this.params.markers.forEach(marker => this.add(marker));\n }\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('zoom', this._onResize);\n\n if (!this.markers.find(marker => marker.draggable)){\n return;\n }\n\n this.onMouseMove = (e) => this._onMouseMove(e);\n window.addEventListener('mousemove', this.onMouseMove);\n\n this.onMouseUp = (e) => this._onMouseUp(e);\n window.addEventListener(\"mouseup\", this.onMouseUp);\n };\n\n this.markers = [];\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updateMarkerPositions();\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\n this.wavesurfer.un('zoom', this._onResize);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n\n if (this.onMouseMove) {\n window.removeEventListener('mousemove', this.onMouseMove);\n }\n if (this.onMouseUp) {\n window.removeEventListener(\"mouseup\", this.onMouseUp);\n }\n\n this.clear();\n }\n\n /**\n * Add a marker\n *\n * @param {MarkerParams} params Marker definition\n * @return {object} The created marker\n */\n add(params) {\n let marker = {\n time: params.time,\n label: params.label,\n tooltip: params.tooltip,\n color: params.color || DEFAULT_FILL_COLOR,\n position: params.position || DEFAULT_POSITION,\n draggable: !!params.draggable,\n preventContextMenu: !!params.preventContextMenu\n };\n\n marker.el = this._createMarkerElement(marker, params.markerElement);\n\n this.wrapper.appendChild(marker.el);\n this.markers.push(marker);\n this._updateMarkerPositions();\n\n this._registerEvents();\n\n return marker;\n }\n\n /**\n * Remove a marker\n *\n * @param {number} index Index of the marker to remove\n */\n remove(index) {\n let marker = this.markers[index];\n if (!marker) {\n return;\n }\n let label = marker.el.getElementsByClassName(\"marker-label\")[0];\n if (label) {\n if (label._onContextMenu) {\n label.removeEventListener(\"contextmenu\", label._onContextMenu);\n }\n if (label._onClick) {\n label.removeEventListener(\"click\", label._onClick);\n }\n if (label._onMouseDown) {\n label.removeEventListener(\"mousedown\", label._onMouseDown);\n }\n }\n\n this.wrapper.removeChild(marker.el);\n this.markers.splice(index, 1);\n\n this._unregisterEvents();\n }\n\n _createPointerSVG(color, position) {\n const svgNS = \"http://www.w3.org/2000/svg\";\n\n const el = document.createElementNS(svgNS, \"svg\");\n const polygon = document.createElementNS(svgNS, \"polygon\");\n\n el.setAttribute(\"viewBox\", \"0 0 40 80\");\n\n polygon.setAttribute(\"id\", \"polygon\");\n polygon.setAttribute(\"stroke\", \"#979797\");\n polygon.setAttribute(\"fill\", color);\n polygon.setAttribute(\"points\", \"20 0 40 30 40 80 0 80 0 30\");\n if ( position == \"top\" ) {\n polygon.setAttribute(\"transform\", \"rotate(180, 20 40)\");\n }\n\n el.appendChild(polygon);\n\n this.style(el, {\n width: this.markerWidth + \"px\",\n height: this.markerHeight + \"px\",\n \"min-width\": this.markerWidth + \"px\",\n \"margin-right\": \"5px\",\n \"z-index\": 4\n });\n return el;\n }\n\n _createMarkerElement(marker, markerElement) {\n let label = marker.label;\n let tooltip = marker.tooltip;\n\n const el = document.createElement('marker');\n el.className = \"wavesurfer-marker\";\n\n this.style(el, {\n position: \"absolute\",\n height: \"100%\",\n display: \"flex\",\n overflow: \"hidden\",\n \"flex-direction\": (marker.position == \"top\" ? \"column-reverse\" : \"column\")\n });\n\n const line = document.createElement('div');\n const width = markerElement ? markerElement.width : this.markerWidth;\n marker.offset = (width - this.markerLineWidth) / 2;\n this.style(line, {\n \"flex-grow\": 1,\n \"margin-left\": marker.offset + \"px\",\n background: \"black\",\n width: this.markerLineWidth + \"px\",\n opacity: 0.1\n });\n el.appendChild(line);\n\n const labelDiv = document.createElement('div');\n const point = markerElement || this._createPointerSVG(marker.color, marker.position);\n if (marker.draggable){\n point.draggable = false;\n }\n labelDiv.appendChild(point);\n\n if ( label ) {\n const labelEl = document.createElement('span');\n labelEl.innerText = label;\n labelEl.setAttribute('title', tooltip);\n this.style(labelEl, {\n \"font-family\": \"inherit\",\n \"font-size\": \"90%\"\n });\n labelDiv.appendChild(labelEl);\n }\n\n this.style(labelDiv, {\n display: \"flex\",\n \"align-items\": \"center\",\n cursor: \"pointer\"\n });\n labelDiv.classList.add(\"marker-label\");\n\n el.appendChild(labelDiv);\n\n labelDiv._onClick = (e) => {\n e.stopPropagation();\n // Click event is caught when the marker-drop event was dispatched.\n // Drop event was dispatched at this moment, but this.dragging\n // is waiting for the next tick to set as false\n if (this.dragging){\n return;\n }\n this.wavesurfer.setCurrentTime(marker.time);\n this.wavesurfer.fireEvent(\"marker-click\", marker, e);\n };\n labelDiv.addEventListener(\"click\", labelDiv._onClick);\n\n labelDiv._onContextMenu = (e) => {\n if (marker.preventContextMenu) {\n e.preventDefault();\n }\n this.wavesurfer.fireEvent(\"marker-contextmenu\", marker, e);\n };\n labelDiv.addEventListener(\"contextmenu\", labelDiv._onContextMenu);\n\n if (marker.draggable) {\n labelDiv._onMouseDown = () => {\n this.selectedMarker = marker;\n };\n labelDiv.addEventListener(\"mousedown\", labelDiv._onMouseDown);\n }\n return el;\n }\n\n _updateMarkerPositions() {\n for ( let i = 0 ; i < this.markers.length; i++ ) {\n let marker = this.markers[i];\n this._updateMarkerPosition(marker);\n }\n }\n\n /**\n * Update a marker position based on its time property.\n *\n * @private\n * @param {MarkerParams} params The marker to update.\n * @returns {void}\n */\n _updateMarkerPosition(params) {\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = Math.min(params.time / duration, 1);\n const leftPx = ((elementWidth * positionPct) - params.offset);\n this.style(params.el, {\n \"left\": leftPx + \"px\",\n \"max-width\": (elementWidth - leftPx) + \"px\"\n });\n }\n\n /**\n * Fires `marker-drag` event, update the `time` property for the\n * selected marker based on the mouse position, and calls to update\n * its position.\n *\n * @private\n * @param {MouseEvent} event The mouse event.\n * @returns {void}\n */\n _onMouseMove(event) {\n if (!this.selectedMarker){\n return;\n }\n if (!this.dragging){\n this.dragging = true;\n this.wavesurfer.fireEvent(\"marker-drag\", this.selectedMarker, event);\n }\n this.selectedMarker.time = this.wavesurfer.drawer.handleEvent(event) * this.wavesurfer.getDuration();\n this._updateMarkerPositions();\n }\n\n /**\n * Fires `marker-drop` event and unselect the dragged marker.\n *\n * @private\n * @param {MouseEvent} event The mouse event.\n * @returns {void}\n */\n _onMouseUp(event) {\n if (this.selectedMarker) {\n setTimeout(() => {\n this.selectedMarker = false;\n this.dragging = false;\n }, 0);\n }\n\n if (!this.dragging) {\n return;\n }\n\n event.stopPropagation();\n const duration = this.wavesurfer.getDuration();\n this.selectedMarker.time = this.wavesurfer.drawer.handleEvent(event) * duration;\n this._updateMarkerPositions();\n this.wavesurfer.fireEvent(\"marker-drop\", this.selectedMarker, event);\n }\n\n _registerEvents() {\n if (!this.markers.find(marker => marker.draggable)) {\n return;\n }\n //we have some draggable markers, check for listeners\n if (!this.onMouseMove) {\n this.onMouseMove = (e) => this._onMouseMove(e);\n window.addEventListener('mousemove', this.onMouseMove);\n }\n\n if (!this.onMouseUp) {\n this.onMouseUp = (e) => this._onMouseUp(e);\n window.addEventListener(\"mouseup\", this.onMouseUp);\n }\n }\n\n _unregisterEvents() {\n if (this.markers.find(marker => marker.draggable)) {\n return;\n }\n //we don't have any draggable markers, unregister listeners\n if (this.onMouseMove) {\n window.removeEventListener('mousemove', this.onMouseMove);\n this.onMouseMove = null;\n }\n if (this.onMouseUp) {\n window.removeEventListener(\"mouseup\", this.onMouseUp);\n this.onMouseUp = null;\n }\n }\n\n /**\n * Remove all markers\n */\n clear() {\n while ( this.markers.length > 0 ) {\n this.remove(0);\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/markers/index.js\");\n",""],"names":["DEFAULT_FILL_COLOR","DEFAULT_POSITION","MarkersPlugin","params","ws","_this","_classCallCheck","wavesurfer","util","style","markerLineWidth","markerWidth","markerHeight","dragging","_onResize","_updateMarkerPositions","_onBackendCreated","wrapper","drawer","markers","forEach","marker","add","window","addEventListener","on","find","draggable","onMouseMove","e","_onMouseMove","onMouseUp","_onMouseUp","_onReady","_createClass","key","value","init","isReady","once","destroy","un","removeEventListener","clear","time","label","tooltip","color","position","preventContextMenu","el","_createMarkerElement","markerElement","appendChild","push","_registerEvents","remove","index","getElementsByClassName","_onContextMenu","_onClick","_onMouseDown","removeChild","splice","_unregisterEvents","_createPointerSVG","svgNS","document","createElementNS","polygon","setAttribute","width","height","_this2","createElement","className","display","overflow","line","offset","background","opacity","labelDiv","point","labelEl","innerText","cursor","classList","stopPropagation","setCurrentTime","fireEvent","preventDefault","selectedMarker","i","length","_updateMarkerPosition","duration","getDuration","elementWidth","pixelRatio","positionPct","Math","min","leftPx","event","handleEvent","_this3","setTimeout","_this4","create","name","deferInit","staticProps","addMarker","options","initialisedPluginList","initPlugin","clearMarkers","instance","exports","default","module"],"sourceRoot":""}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * wavesurfer.js markers plugin 6.4.0 (2022-11-05)
2
+ * wavesurfer.js markers 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.markers=t())}(self,(()=>(()=>{"use strict";var e={188:(e,t)=>{function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(){function e(t,r){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.params=t,this.wavesurfer=r,this.util=r.util,this.style=this.util.style,this.markerLineWidth=1,this.markerWidth=11,this.markerHeight=22,this.dragging=!1,this._onResize=function(){n._updateMarkerPositions()},this._onBackendCreated=function(){n.wrapper=n.wavesurfer.drawer.wrapper,n.params.markers&&n.params.markers.forEach((function(e){return n.add(e)})),window.addEventListener("resize",n._onResize,!0),window.addEventListener("orientationchange",n._onResize,!0),n.wavesurfer.on("zoom",n._onResize),n.markers.find((function(e){return e.draggable}))&&(n.onMouseMove=function(e){return n._onMouseMove(e)},window.addEventListener("mousemove",n.onMouseMove),n.onMouseUp=function(e){return n._onMouseUp(e)},window.addEventListener("mouseup",n.onMouseUp))},this.markers=[],this._onReady=function(){n.wrapper=n.wavesurfer.drawer.wrapper,n._updateMarkerPositions()}}var t,n,i;return t=e,i=[{key:"create",value:function(t){return{name:"markers",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,staticProps:{addMarker:function(e){return this.initialisedPluginList.markers||this.initPlugin("markers"),this.markers.add(e)},clearMarkers:function(){this.markers&&this.markers.clear()}},instance:e}}}],(n=[{key:"init",value:function(){this.wavesurfer.isReady?(this._onBackendCreated(),this._onReady()):(this.wavesurfer.once("ready",this._onReady),this.wavesurfer.once("backend-created",this._onBackendCreated))}},{key:"destroy",value:function(){this.wavesurfer.un("ready",this._onReady),this.wavesurfer.un("backend-created",this._onBackendCreated),this.wavesurfer.un("zoom",this._onResize),window.removeEventListener("resize",this._onResize,!0),window.removeEventListener("orientationchange",this._onResize,!0),this.onMouseMove&&window.removeEventListener("mousemove",this.onMouseMove),this.onMouseUp&&window.removeEventListener("mouseup",this.onMouseUp),this.clear()}},{key:"add",value:function(e){var t={time:e.time,label:e.label,tooltip:e.tooltip,color:e.color||"#D8D8D8",position:e.position||"bottom",draggable:!!e.draggable,preventContextMenu:!!e.preventContextMenu};return t.el=this._createMarkerElement(t,e.markerElement),this.wrapper.appendChild(t.el),this.markers.push(t),this._updateMarkerPositions(),this._registerEvents(),t}},{key:"remove",value:function(e){var t=this.markers[e];if(t){var r=t.el.getElementsByClassName("marker-label")[0];r&&(r._onContextMenu&&r.removeEventListener("contextmenu",r._onContextMenu),r._onClick&&r.removeEventListener("click",r._onClick),r._onMouseDown&&r.removeEventListener("mousedown",r._onMouseDown)),this.wrapper.removeChild(t.el),this.markers.splice(e,1),this._unregisterEvents()}}},{key:"_createPointerSVG",value:function(e,t){var r="http://www.w3.org/2000/svg",n=document.createElementNS(r,"svg"),i=document.createElementNS(r,"polygon");return n.setAttribute("viewBox","0 0 40 80"),i.setAttribute("id","polygon"),i.setAttribute("stroke","#979797"),i.setAttribute("fill",e),i.setAttribute("points","20 0 40 30 40 80 0 80 0 30"),"top"==t&&i.setAttribute("transform","rotate(180, 20 40)"),n.appendChild(i),this.style(n,{width:this.markerWidth+"px",height:this.markerHeight+"px","min-width":this.markerWidth+"px","margin-right":"5px","z-index":4}),n}},{key:"_createMarkerElement",value:function(e,t){var r=this,n=e.label,i=e.tooltip,o=document.createElement("marker");o.className="wavesurfer-marker",this.style(o,{position:"absolute",height:"100%",display:"flex",overflow:"hidden","flex-direction":"top"==e.position?"column-reverse":"column"});var s=document.createElement("div"),a=t?t.width:this.markerWidth;e.offset=(a-this.markerLineWidth)/2,this.style(s,{"flex-grow":1,"margin-left":e.offset+"px",background:"black",width:this.markerLineWidth+"px",opacity:.1}),o.appendChild(s);var u=document.createElement("div"),d=t||this._createPointerSVG(e.color,e.position);if(e.draggable&&(d.draggable=!1),u.appendChild(d),n){var l=document.createElement("span");l.innerText=n,l.setAttribute("title",i),this.style(l,{"font-family":"monospace","font-size":"90%"}),u.appendChild(l)}return this.style(u,{display:"flex","align-items":"center",cursor:"pointer"}),u.classList.add("marker-label"),o.appendChild(u),u._onClick=function(t){t.stopPropagation(),r.dragging||(r.wavesurfer.setCurrentTime(e.time),r.wavesurfer.fireEvent("marker-click",e,t))},u.addEventListener("click",u._onClick),u._onContextMenu=function(t){e.preventContextMenu&&t.preventDefault(),r.wavesurfer.fireEvent("marker-contextmenu",e,t)},u.addEventListener("contextmenu",u._onContextMenu),e.draggable&&(u._onMouseDown=function(){r.selectedMarker=e},u.addEventListener("mousedown",u._onMouseDown)),o}},{key:"_updateMarkerPositions",value:function(){for(var e=0;e<this.markers.length;e++){var t=this.markers[e];this._updateMarkerPosition(t)}}},{key:"_updateMarkerPosition",value:function(e){var t=this.wavesurfer.getDuration(),r=this.wavesurfer.drawer.width/this.wavesurfer.params.pixelRatio,n=r*Math.min(e.time/t,1)-e.offset;this.style(e.el,{left:n+"px","max-width":r-n+"px"})}},{key:"_onMouseMove",value:function(e){this.selectedMarker&&(this.dragging||(this.dragging=!0,this.wavesurfer.fireEvent("marker-drag",this.selectedMarker,e)),this.selectedMarker.time=this.wavesurfer.drawer.handleEvent(e)*this.wavesurfer.getDuration(),this._updateMarkerPositions())}},{key:"_onMouseUp",value:function(e){var t=this;if(this.selectedMarker&&setTimeout((function(){t.selectedMarker=!1,t.dragging=!1}),0),this.dragging){e.stopPropagation();var r=this.wavesurfer.getDuration();this.selectedMarker.time=this.wavesurfer.drawer.handleEvent(e)*r,this._updateMarkerPositions(),this.wavesurfer.fireEvent("marker-drop",this.selectedMarker,e)}}},{key:"_registerEvents",value:function(){var e=this;this.markers.find((function(e){return e.draggable}))&&(this.onMouseMove||(this.onMouseMove=function(t){return e._onMouseMove(t)},window.addEventListener("mousemove",this.onMouseMove)),this.onMouseUp||(this.onMouseUp=function(t){return e._onMouseUp(t)},window.addEventListener("mouseup",this.onMouseUp)))}},{key:"_unregisterEvents",value:function(){this.markers.find((function(e){return e.draggable}))||(this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.onMouseUp&&(window.removeEventListener("mouseup",this.onMouseUp),this.onMouseUp=null))}},{key:"clear",value:function(){for(;this.markers.length>0;)this.remove(0)}}])&&r(t.prototype,n),i&&r(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=n,e.exports=t.default}},t={};var r=function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}(188);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.markers=t())}(self,(()=>(()=>{"use strict";var e={188:(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 n(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,(o=i.key,s=void 0,s=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(o,"string"),"symbol"===r(s)?s:String(s)),i)}var o,s}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(){function e(t,r){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.params=t,this.wavesurfer=r,this.util=r.util,this.style=this.util.style,this.markerLineWidth=1,this.markerWidth=11,this.markerHeight=22,this.dragging=!1,this._onResize=function(){n._updateMarkerPositions()},this._onBackendCreated=function(){n.wrapper=n.wavesurfer.drawer.wrapper,n.params.markers&&n.params.markers.forEach((function(e){return n.add(e)})),window.addEventListener("resize",n._onResize,!0),window.addEventListener("orientationchange",n._onResize,!0),n.wavesurfer.on("zoom",n._onResize),n.markers.find((function(e){return e.draggable}))&&(n.onMouseMove=function(e){return n._onMouseMove(e)},window.addEventListener("mousemove",n.onMouseMove),n.onMouseUp=function(e){return n._onMouseUp(e)},window.addEventListener("mouseup",n.onMouseUp))},this.markers=[],this._onReady=function(){n.wrapper=n.wavesurfer.drawer.wrapper,n._updateMarkerPositions()}}var t,r,i;return t=e,i=[{key:"create",value:function(t){return{name:"markers",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,staticProps:{addMarker:function(e){return this.initialisedPluginList.markers||this.initPlugin("markers"),this.markers.add(e)},clearMarkers:function(){this.markers&&this.markers.clear()}},instance:e}}}],(r=[{key:"init",value:function(){this.wavesurfer.isReady?(this._onBackendCreated(),this._onReady()):(this.wavesurfer.once("ready",this._onReady),this.wavesurfer.once("backend-created",this._onBackendCreated))}},{key:"destroy",value:function(){this.wavesurfer.un("ready",this._onReady),this.wavesurfer.un("backend-created",this._onBackendCreated),this.wavesurfer.un("zoom",this._onResize),window.removeEventListener("resize",this._onResize,!0),window.removeEventListener("orientationchange",this._onResize,!0),this.onMouseMove&&window.removeEventListener("mousemove",this.onMouseMove),this.onMouseUp&&window.removeEventListener("mouseup",this.onMouseUp),this.clear()}},{key:"add",value:function(e){var t={time:e.time,label:e.label,tooltip:e.tooltip,color:e.color||"#D8D8D8",position:e.position||"bottom",draggable:!!e.draggable,preventContextMenu:!!e.preventContextMenu};return t.el=this._createMarkerElement(t,e.markerElement),this.wrapper.appendChild(t.el),this.markers.push(t),this._updateMarkerPositions(),this._registerEvents(),t}},{key:"remove",value:function(e){var t=this.markers[e];if(t){var r=t.el.getElementsByClassName("marker-label")[0];r&&(r._onContextMenu&&r.removeEventListener("contextmenu",r._onContextMenu),r._onClick&&r.removeEventListener("click",r._onClick),r._onMouseDown&&r.removeEventListener("mousedown",r._onMouseDown)),this.wrapper.removeChild(t.el),this.markers.splice(e,1),this._unregisterEvents()}}},{key:"_createPointerSVG",value:function(e,t){var r="http://www.w3.org/2000/svg",n=document.createElementNS(r,"svg"),i=document.createElementNS(r,"polygon");return n.setAttribute("viewBox","0 0 40 80"),i.setAttribute("id","polygon"),i.setAttribute("stroke","#979797"),i.setAttribute("fill",e),i.setAttribute("points","20 0 40 30 40 80 0 80 0 30"),"top"==t&&i.setAttribute("transform","rotate(180, 20 40)"),n.appendChild(i),this.style(n,{width:this.markerWidth+"px",height:this.markerHeight+"px","min-width":this.markerWidth+"px","margin-right":"5px","z-index":4}),n}},{key:"_createMarkerElement",value:function(e,t){var r=this,n=e.label,i=e.tooltip,o=document.createElement("marker");o.className="wavesurfer-marker",this.style(o,{position:"absolute",height:"100%",display:"flex",overflow:"hidden","flex-direction":"top"==e.position?"column-reverse":"column"});var s=document.createElement("div"),a=t?t.width:this.markerWidth;e.offset=(a-this.markerLineWidth)/2,this.style(s,{"flex-grow":1,"margin-left":e.offset+"px",background:"black",width:this.markerLineWidth+"px",opacity:.1}),o.appendChild(s);var u=document.createElement("div"),d=t||this._createPointerSVG(e.color,e.position);if(e.draggable&&(d.draggable=!1),u.appendChild(d),n){var l=document.createElement("span");l.innerText=n,l.setAttribute("title",i),this.style(l,{"font-family":"inherit","font-size":"90%"}),u.appendChild(l)}return this.style(u,{display:"flex","align-items":"center",cursor:"pointer"}),u.classList.add("marker-label"),o.appendChild(u),u._onClick=function(t){t.stopPropagation(),r.dragging||(r.wavesurfer.setCurrentTime(e.time),r.wavesurfer.fireEvent("marker-click",e,t))},u.addEventListener("click",u._onClick),u._onContextMenu=function(t){e.preventContextMenu&&t.preventDefault(),r.wavesurfer.fireEvent("marker-contextmenu",e,t)},u.addEventListener("contextmenu",u._onContextMenu),e.draggable&&(u._onMouseDown=function(){r.selectedMarker=e},u.addEventListener("mousedown",u._onMouseDown)),o}},{key:"_updateMarkerPositions",value:function(){for(var e=0;e<this.markers.length;e++){var t=this.markers[e];this._updateMarkerPosition(t)}}},{key:"_updateMarkerPosition",value:function(e){var t=this.wavesurfer.getDuration(),r=this.wavesurfer.drawer.width/this.wavesurfer.params.pixelRatio,n=r*Math.min(e.time/t,1)-e.offset;this.style(e.el,{left:n+"px","max-width":r-n+"px"})}},{key:"_onMouseMove",value:function(e){this.selectedMarker&&(this.dragging||(this.dragging=!0,this.wavesurfer.fireEvent("marker-drag",this.selectedMarker,e)),this.selectedMarker.time=this.wavesurfer.drawer.handleEvent(e)*this.wavesurfer.getDuration(),this._updateMarkerPositions())}},{key:"_onMouseUp",value:function(e){var t=this;if(this.selectedMarker&&setTimeout((function(){t.selectedMarker=!1,t.dragging=!1}),0),this.dragging){e.stopPropagation();var r=this.wavesurfer.getDuration();this.selectedMarker.time=this.wavesurfer.drawer.handleEvent(e)*r,this._updateMarkerPositions(),this.wavesurfer.fireEvent("marker-drop",this.selectedMarker,e)}}},{key:"_registerEvents",value:function(){var e=this;this.markers.find((function(e){return e.draggable}))&&(this.onMouseMove||(this.onMouseMove=function(t){return e._onMouseMove(t)},window.addEventListener("mousemove",this.onMouseMove)),this.onMouseUp||(this.onMouseUp=function(t){return e._onMouseUp(t)},window.addEventListener("mouseup",this.onMouseUp)))}},{key:"_unregisterEvents",value:function(){this.markers.find((function(e){return e.draggable}))||(this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.onMouseUp&&(window.removeEventListener("mouseup",this.onMouseUp),this.onMouseUp=null))}},{key:"clear",value:function(){for(;this.markers.length>0;)this.remove(0)}}])&&n(t.prototype,r),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=i,e.exports=t.default}},t={};var r=function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}(188);return r})()));
7
7
  //# sourceMappingURL=wavesurfer.markers.min.js.map