ipyaudio 0.1.12__py3-none-any.whl → 0.1.16__py3-none-any.whl
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.
- ipyaudio/_frontend.py +1 -1
- ipyaudio/_version.py +1 -1
- ipyaudio/configs/recorder.json +1 -1
- ipyaudio/labextension/package.json +1 -1
- ipyaudio/labextension/static/270.b6e7f47d313701fe1e56.js +1 -0
- ipyaudio/labextension/static/58.1d71425dd409ae479079.js +1 -0
- ipyaudio/labextension/static/third-party-licenses.json +2 -2
- ipyaudio/nbextension/index.js +1 -1
- ipyaudio/nbextension/index.js.map +1 -1
- ipyaudio/player.py +23 -28
- ipyaudio/recorder.py +30 -24
- ipyaudio/timer.py +57 -0
- ipyaudio/utils.py +16 -32
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/package.json +1 -1
- ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/270.b6e7f47d313701fe1e56.js +1 -0
- ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/58.1d71425dd409ae479079.js +1 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/static/third-party-licenses.json +2 -2
- ipyaudio-0.1.16.data/data/share/jupyter/nbextensions/ipyaudio/index.js +3 -0
- ipyaudio-0.1.16.data/data/share/jupyter/nbextensions/ipyaudio/index.js.map +1 -0
- {ipyaudio-0.1.12.dist-info → ipyaudio-0.1.16.dist-info}/METADATA +10 -28
- ipyaudio-0.1.16.dist-info/RECORD +46 -0
- ipyaudio/labextension/static/424.ca45437f3ff02b14458c.js +0 -1
- ipyaudio/labextension/static/58.0e2f3d700c41688625fe.js +0 -1
- ipyaudio-0.1.12.data/data/share/jupyter/labextensions/ipyaudio/static/424.ca45437f3ff02b14458c.js +0 -1
- ipyaudio-0.1.12.data/data/share/jupyter/labextensions/ipyaudio/static/58.0e2f3d700c41688625fe.js +0 -1
- ipyaudio-0.1.12.data/data/share/jupyter/nbextensions/ipyaudio/index.js +0 -3
- ipyaudio-0.1.12.data/data/share/jupyter/nbextensions/ipyaudio/index.js.map +0 -1
- ipyaudio-0.1.12.dist-info/RECORD +0 -45
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/etc/jupyter/nbconfig/notebook.d/ipyaudio.json +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/install.json +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/static/122.3700f0454aee82938e32.js +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/static/509.a9d6860fe38ae60aa71f.js +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js.LICENSE.txt +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/labextensions/ipyaudio/static/style.js +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/nbextensions/ipyaudio/extension.js +0 -0
- {ipyaudio-0.1.12.data → ipyaudio-0.1.16.data}/data/share/jupyter/nbextensions/ipyaudio/index.js.LICENSE.txt +0 -0
- {ipyaudio-0.1.12.dist-info → ipyaudio-0.1.16.dist-info}/WHEEL +0 -0
- {ipyaudio-0.1.12.dist-info → ipyaudio-0.1.16.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ipyaudio
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.16
|
4
4
|
Summary: A Custom Jupyter Widget Library
|
5
5
|
Project-URL: Homepage, https://github.com/pengzhendong/ipyaudio
|
6
6
|
Author-email: Zhendong Peng <pzd17@tsinghua.org.cn>
|
@@ -46,7 +46,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
46
46
|
Classifier: Programming Language :: Python :: 3.11
|
47
47
|
Classifier: Programming Language :: Python :: 3.12
|
48
48
|
Requires-Python: >=3.9
|
49
|
-
Requires-Dist: audiolab>=0.0
|
49
|
+
Requires-Dist: audiolab>=0.2.0
|
50
50
|
Requires-Dist: ipydatawidgets>=4.3.5
|
51
51
|
Requires-Dist: ipywidgets>=8.0.0
|
52
52
|
Provides-Extra: docs
|
@@ -65,64 +65,46 @@ Requires-Dist: pytest-cov; extra == 'test'
|
|
65
65
|
Requires-Dist: pytest>=6.0; extra == 'test'
|
66
66
|
Description-Content-Type: text/markdown
|
67
67
|
|
68
|
-
|
69
68
|
# ipyaudio
|
70
69
|
|
71
70
|
[](https://travis-ci.org/pengzhendong/ipyaudio)
|
72
71
|
[](https://codecov.io/gh/pengzhendong/ipyaudio)
|
73
72
|
|
74
|
-
|
75
73
|
A Custom Jupyter Widget Library
|
76
74
|
|
77
75
|
## Installation
|
78
76
|
|
79
|
-
You can install using `pip`:
|
80
|
-
|
81
77
|
```bash
|
82
78
|
pip install ipyaudio
|
83
79
|
```
|
84
80
|
|
85
|
-
If you are using Jupyter Notebook 5.2 or earlier, you may also need to enable
|
86
|
-
the nbextension:
|
87
|
-
```bash
|
88
|
-
jupyter nbextension enable --py [--sys-prefix|--user|--system] ipyaudio
|
89
|
-
```
|
90
|
-
|
91
81
|
## Development Installation
|
92
82
|
|
93
83
|
Create a dev environment:
|
84
|
+
|
94
85
|
```bash
|
95
|
-
conda create -n ipyaudio-dev -c conda-forge nodejs python jupyterlab
|
86
|
+
conda create -n ipyaudio-dev -c conda-forge nodejs python jupyterlab
|
96
87
|
conda activate ipyaudio-dev
|
97
88
|
```
|
98
89
|
|
99
90
|
Install the python. This will also build the TS package.
|
91
|
+
|
100
92
|
```bash
|
101
93
|
pip install -e ".[test, examples]"
|
102
94
|
```
|
103
95
|
|
104
96
|
When developing your extensions, you need to manually enable your extensions with the
|
105
|
-
|
97
|
+
lab frontend.
|
106
98
|
|
107
|
-
```
|
99
|
+
```bash
|
108
100
|
jupyter labextension develop --overwrite .
|
109
101
|
jlpm run build
|
110
102
|
```
|
111
103
|
|
112
|
-
For classic notebook, you need to run:
|
113
|
-
|
114
|
-
```
|
115
|
-
jupyter nbextension install --sys-prefix --symlink --overwrite --py ipyaudio
|
116
|
-
jupyter nbextension enable --sys-prefix --py ipyaudio
|
117
|
-
```
|
118
|
-
|
119
|
-
Note that the `--symlink` flag doesn't work on Windows, so you will here have to run
|
120
|
-
the `install` command every time that you rebuild your extension. For certain installations
|
121
|
-
you might also need another flag instead of `--sys-prefix`, but we won't cover the meaning
|
122
|
-
of those flags here.
|
123
|
-
|
124
104
|
### How to see your changes
|
105
|
+
|
125
106
|
#### Typescript:
|
107
|
+
|
126
108
|
If you use JupyterLab to develop then you can watch the source directory and run JupyterLab at the same time in different
|
127
109
|
terminals to watch for changes in the extension's source and automatically rebuild the widget.
|
128
110
|
|
@@ -136,6 +118,7 @@ jupyter lab
|
|
136
118
|
After a change wait for the build to finish and then refresh your browser and the changes should take effect.
|
137
119
|
|
138
120
|
#### Python:
|
121
|
+
|
139
122
|
If you make a change to the python code then you will need to restart the notebook kernel to have it take effect.
|
140
123
|
|
141
124
|
## Updating the version
|
@@ -147,4 +130,3 @@ By default it will also create a tag.
|
|
147
130
|
pip install tbump
|
148
131
|
tbump <new-version>
|
149
132
|
```
|
150
|
-
|
@@ -0,0 +1,46 @@
|
|
1
|
+
ipyaudio/__init__.py,sha256=GO0pZvY1ER8CGSEdSgXyf9byRVCTdshf30EcqflfnGs,1859
|
2
|
+
ipyaudio/_frontend.py,sha256=qZpko-NJpt7s_FtXCd1fkIbuv57z-r5Sa-qLrIwPjBw,246
|
3
|
+
ipyaudio/_version.py,sha256=GI2jvqB0IJvYPRLfRWqXGEW_bYmSL3T6CX_lDAD4sBQ,203
|
4
|
+
ipyaudio/player.py,sha256=L2PL08b8UDTOSXx1ghFFCAi9eTVk8IadZIAbMl8M0e8,3904
|
5
|
+
ipyaudio/recorder.py,sha256=7vYvSUOzIW8GUnz-RU1sqhOSAByZzTNYP1FvSayk9BY,6117
|
6
|
+
ipyaudio/timer.py,sha256=b3ho1X2zXjoUxMS7JWnVAreMC3dlcpd3zvgceqFkmEY,1788
|
7
|
+
ipyaudio/utils.py,sha256=5RbrkesXuf2R5hDdMkH5ajaSgXsYG2JTZVqx-5Doq6s,783
|
8
|
+
ipyaudio/widget.py,sha256=d4VBAWLuObTN76J691kmhcBAXMPPb2MiK03XWkjVU-U,975
|
9
|
+
ipyaudio/configs/player.json,sha256=OQCglTSb3CJBl8_IRXQrmXTGC_Sg_H76E4bLZqitBFc,1030
|
10
|
+
ipyaudio/configs/recorder.json,sha256=QhJja8HzjjZexfKvx__MpsK5-98xSlDHdVkOHBh9Bjs,257
|
11
|
+
ipyaudio/labextension/package.json,sha256=Irc6ADffN9Uk6SwRJmPEHLJKsoi1In1EZBSf5Ozabzs,3451
|
12
|
+
ipyaudio/labextension/static/122.3700f0454aee82938e32.js,sha256=NwDwRUrugpOOMpSrNaUUlDh_VcIo_CsLXqd_Dqv9aBE,1076
|
13
|
+
ipyaudio/labextension/static/270.b6e7f47d313701fe1e56.js,sha256=tuf0fTE3Af4eVjAN0sRVuDDkIszCuZa1DHImRv4nwZk,26381
|
14
|
+
ipyaudio/labextension/static/509.a9d6860fe38ae60aa71f.js,sha256=qdaGD-OK5gqnH9J8i1LRsAFbaDrRt7vhCDtiyrLU_yE,632
|
15
|
+
ipyaudio/labextension/static/570.97f2a8196b7f1703e636.js,sha256=g9sSzxO7BhhC5U9q-cdCAa62fsNS0H55VFy8hMZpgEM,60441
|
16
|
+
ipyaudio/labextension/static/570.97f2a8196b7f1703e636.js.LICENSE.txt,sha256=Rygqb6FGni17yJNtFnwX6_D9gAlBEE3RUJeUUgjMtQE,120
|
17
|
+
ipyaudio/labextension/static/58.1d71425dd409ae479079.js,sha256=HXFCXdQJrkeQedCFMX3W20sArds8uEiuat5eRIDsJBY,345240
|
18
|
+
ipyaudio/labextension/static/style.js,sha256=-CQt0ZTPaCTvrRiLcznxflAbfvIKlOVzjOos-muaXQ8,118
|
19
|
+
ipyaudio/labextension/static/third-party-licenses.json,sha256=Bf8Xf3Ts5Ei8_w0jbr2SLFIHbju9pTfI-nhy1tfEaZ4,15803
|
20
|
+
ipyaudio/nbextension/extension.js,sha256=DuyS9AUV37h3WxspuhDpEPTFCztkEyMWfZ5YjZSaWAg,406
|
21
|
+
ipyaudio/nbextension/index.js,sha256=SdWeq4gEigaHUQg66vSvEuG_obP0RA5t4gVU0E_ujpc,1251191
|
22
|
+
ipyaudio/nbextension/index.js.LICENSE.txt,sha256=Rygqb6FGni17yJNtFnwX6_D9gAlBEE3RUJeUUgjMtQE,120
|
23
|
+
ipyaudio/nbextension/index.js.map,sha256=CteiQQ4Wtp4lJ7ZzEVK5lYEYZab--n4PHuOeORXnaiA,1820837
|
24
|
+
ipyaudio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
+
ipyaudio/tests/conftest.py,sha256=bvWtEyGyYxzUqTzS3Yb6E6mWOMP12SyVy9AqXvQGGLg,1415
|
26
|
+
ipyaudio/tests/test_example.py,sha256=JLdr25MjPjNe5Wj8n7J40U14o5s4JXJpxOU9_VQrN94,278
|
27
|
+
ipyaudio/tests/test_nbextension_path.py,sha256=t9Y4IaMOSbTzmtNxMGCldbZRExTah-b-fKwd7_2K2ys,462
|
28
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/package.json,sha256=Irc6ADffN9Uk6SwRJmPEHLJKsoi1In1EZBSf5Ozabzs,3451
|
29
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/122.3700f0454aee82938e32.js,sha256=NwDwRUrugpOOMpSrNaUUlDh_VcIo_CsLXqd_Dqv9aBE,1076
|
30
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/270.b6e7f47d313701fe1e56.js,sha256=tuf0fTE3Af4eVjAN0sRVuDDkIszCuZa1DHImRv4nwZk,26381
|
31
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/509.a9d6860fe38ae60aa71f.js,sha256=qdaGD-OK5gqnH9J8i1LRsAFbaDrRt7vhCDtiyrLU_yE,632
|
32
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js,sha256=g9sSzxO7BhhC5U9q-cdCAa62fsNS0H55VFy8hMZpgEM,60441
|
33
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js.LICENSE.txt,sha256=Rygqb6FGni17yJNtFnwX6_D9gAlBEE3RUJeUUgjMtQE,120
|
34
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/58.1d71425dd409ae479079.js,sha256=HXFCXdQJrkeQedCFMX3W20sArds8uEiuat5eRIDsJBY,345240
|
35
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/style.js,sha256=-CQt0ZTPaCTvrRiLcznxflAbfvIKlOVzjOos-muaXQ8,118
|
36
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/static/third-party-licenses.json,sha256=Bf8Xf3Ts5Ei8_w0jbr2SLFIHbju9pTfI-nhy1tfEaZ4,15803
|
37
|
+
ipyaudio-0.1.16.data/data/share/jupyter/nbextensions/ipyaudio/extension.js,sha256=DuyS9AUV37h3WxspuhDpEPTFCztkEyMWfZ5YjZSaWAg,406
|
38
|
+
ipyaudio-0.1.16.data/data/share/jupyter/nbextensions/ipyaudio/index.js,sha256=SdWeq4gEigaHUQg66vSvEuG_obP0RA5t4gVU0E_ujpc,1251191
|
39
|
+
ipyaudio-0.1.16.data/data/share/jupyter/nbextensions/ipyaudio/index.js.LICENSE.txt,sha256=Rygqb6FGni17yJNtFnwX6_D9gAlBEE3RUJeUUgjMtQE,120
|
40
|
+
ipyaudio-0.1.16.data/data/share/jupyter/nbextensions/ipyaudio/index.js.map,sha256=CteiQQ4Wtp4lJ7ZzEVK5lYEYZab--n4PHuOeORXnaiA,1820837
|
41
|
+
ipyaudio-0.1.16.data/data/etc/jupyter/nbconfig/notebook.d/ipyaudio.json,sha256=BmiJxz0zncI7hb8QHtnfAykNxqSXBcVhfbWZxdBRzzw,62
|
42
|
+
ipyaudio-0.1.16.data/data/share/jupyter/labextensions/ipyaudio/install.json,sha256=6bM2k1XqE-DlTYa87T6uNaTy55_-Lf2HlZFSyx5QnjY,177
|
43
|
+
ipyaudio-0.1.16.dist-info/METADATA,sha256=D0GJbOLXOshk6TI4AZuPckIc4XEc3RG-8Mrf0XQjnAY,4926
|
44
|
+
ipyaudio-0.1.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
45
|
+
ipyaudio-0.1.16.dist-info/licenses/LICENSE.txt,sha256=-uZ5GSv8HIaOXcLH77MEBajSXj7X8T5N989WfkUFYKc,1498
|
46
|
+
ipyaudio-0.1.16.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunkipyaudio=self.webpackChunkipyaudio||[]).push([[424],{319:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,a){function r(e){try{l(n.next(e))}catch(e){a(e)}}function o(e){try{l(n.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,o)}l((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RecorderView=t.RecorderModel=void 0;const a=s(i(5364)),r=i(3459),o=i(3983),l=i(1797),c=s(i(8020));i(6378),i(1463);class d extends o.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:d.model_name,_model_module:d.model_module,_model_module_version:d.model_module_version,_view_name:d.view_name,_view_module:d.view_module,_view_module_version:d.view_module_version,chunk:new Uint8Array(0),rate:16e3,end:!1})}}t.RecorderModel=d,d.serializers=Object.assign(Object.assign({},o.DOMWidgetModel.serializers),{chunk:r.simplearray_serialization}),d.model_name="RecorderModel",d.model_module=l.MODULE_NAME,d.model_module_version=l.MODULE_VERSION,d.view_name="RecorderView",d.view_module=l.MODULE_NAME,d.view_module_version=l.MODULE_VERSION;class u extends o.DOMWidgetView{constructor(){super(...arguments),this._chunks=[],this._isFirstChunk=!0,this._isCompleted=!1}_sendChunk(){if(this._chunks.length>0){const e=this._chunks[0];this.model.set("chunk",{array:e,shape:[e.length]}),this.model.save_changes(),this._chunks.shift()}else this._isCompleted&&(this.model.set("completed",!0),this.model.save_changes())}render(){super.render(),this.displayed.then((()=>n(this,void 0,void 0,(function*(){const e=this.model.get("language");this._recorder=c.default.create((0,a.default)({},this.model.get("config"),{language:e}),(0,a.default)({},this.model.get("player_config"),{language:e})),this.el.appendChild(this._recorder.el),this.model.on("msg:custom",(e=>n(this,void 0,void 0,(function*(){var t;const i=3e3+(null!==(t=this._recorder.timeSlice)&&void 0!==t?t:32),n=Date.now();if("chunk_received"===e.msg_type){for(;0===this._chunks.length&&Date.now()-n<i;)yield new Promise((e=>setTimeout(e,32)));this._sendChunk()}})))),this._recorder.onRecordStart((()=>{this._isCompleted=!1,this._isFirstChunk=!0,this.model.set("completed",!1),this.model.set("rate",this._recorder.sampleRate),this.model.save_changes()})),this._recorder.onRecordChunk((e=>n(this,void 0,void 0,(function*(){this._chunks.push(new Uint8Array(yield e.arrayBuffer())),this.model.get("sync")&&this._isFirstChunk&&(this._isFirstChunk=!1,this._sendChunk())})))),this._recorder.onRecordEnd((e=>n(this,void 0,void 0,(function*(){this._isCompleted=!0,this.model.get("sync")||(this.model.set("completed",!0),this.model.save_changes())}))))}))))}}t.RecorderView=u},1144:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},1463:(e,t,i)=>{i.r(t),i.d(t,{default:()=>v});var n=i(5072),s=i.n(n),a=i(7825),r=i.n(a),o=i(7659),l=i.n(o),c=i(5056),d=i.n(c),u=i(540),h=i.n(u),m=i(1113),p=i.n(m),_=i(4930),g={};g.styleTagTransform=p(),g.setAttributes=d(),g.insert=l().bind(null,"head"),g.domAPI=r(),g.insertStyleElement=h(),s()(_.A,g);const v=_.A&&_.A.locals?_.A.locals:void 0},1797:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MODULE_NAME=t.MODULE_VERSION=void 0;const n=i(8330);t.MODULE_VERSION=n.version,t.MODULE_NAME=n.name},2247:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%2833, 37, 41, 0.75%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"},3385:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e"},4274:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e"},4364:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,a){function r(e){try{l(n.next(e))}catch(e){a(e)}}function o(e){try{l(n.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,o)}l((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PlayerView=t.PlayerModel=void 0;const a=s(i(5364)),r=i(3983),o=i(1797),l=s(i(9155));i(6378),i(1463);class c extends r.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:c.model_name,_model_module:c.model_module,_model_module_version:c.model_module_version,_view_name:c.view_name,_view_module:c.view_module,_view_module_version:c.view_module_version})}}t.PlayerModel=c,c.serializers=Object.assign({},r.DOMWidgetModel.serializers),c.model_name="PlayerModel",c.model_module=o.MODULE_NAME,c.model_module_version=o.MODULE_VERSION,c.view_name="PlayerView",c.view_module=o.MODULE_NAME,c.view_module_version=o.MODULE_VERSION;class d extends r.DOMWidgetView{render(){super.render(),this.displayed.then((()=>n(this,void 0,void 0,(function*(){const e={isStreaming:this.model.get("is_streaming"),language:this.model.get("language")};this._player=l.default.create((0,a.default)({},this.model.get("config"),e)),this.el.appendChild(this._player.el),this.model.on("change:audio",(()=>{this._player.sampleRate=this.model.get("rate"),this._player.load(this.model.get("audio"))})),this.model.on("change:is_done",(()=>{this._player.setDone()}))}))))}}t.PlayerView=d},4718:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%23fff%27/%3e%3c/svg%3e"},4930:(e,t,i)=>{i.d(t,{A:()=>o});var n=i(1601),s=i.n(n),a=i(6314),r=i.n(a)()(s());r.push([e.id,".waveform {\n background-color: black;\n cursor: pointer;\n position: relative;\n width: 100%;\n}\n\n.duration, .time {\n background: rgba(0, 0, 0, 0.75);\n color: #DDDD;\n font-size: 11px;\n position: absolute;\n bottom: 0;\n z-index: 11;\n}\n\n.duration {\n right: 0;\n}\n\n.time {\n left: 0;\n}\n",""]);const o=r},5372:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e"},5419:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3e%3c/svg%3e"},5531:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"},5782:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27%2386b7fe%27/%3e%3c/svg%3e"},5932:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3e%3cpath d=%27M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z%27/%3e%3c/svg%3e"},6366:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3e%3cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3e%3c/svg%3e"},6690:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236ea8fe%27%3e%3cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3e%3c/svg%3e"},7115:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23dee2e6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"},7154:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3e%3c/svg%3e"},7210:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27none%27 stroke=%27%23052c65%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3e%3cpath d=%27M2 5L8 11L14 5%27/%3e%3c/svg%3e"},7249:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23000%27%3e%3cpath d=%27M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z%27/%3e%3c/svg%3e"},7326:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27none%27 stroke=%27%23212529%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3e%3cpath d=%27M2 5L8 11L14 5%27/%3e%3c/svg%3e"},7997:(e,t)=>{function i(e){const t=e.numFrames,i=e.numChannels||2,n=e.sampleRate||44100,s=e.isFloat?4:2,a=e.isFloat?3:1,r=i*s,o=n*r,l=t*r,c=new ArrayBuffer(44),d=new DataView(c);let u=0;function h(e){for(let t=0;t<e.length;t++)d.setUint8(u+t,e.charCodeAt(t));u+=e.length}function m(e){d.setUint32(u,e,!0),u+=4}function p(e){d.setUint16(u,e,!0),u+=2}return h("RIFF"),m(l+36),h("WAVE"),h("fmt "),m(16),p(a),p(i),m(n),m(o),p(r),p(8*s),h("data"),m(l),new Uint8Array(c)}function n(e,t){if(!e)return new Uint8Array;let n,s;e instanceof ArrayBuffer?(n=i({isFloat:!1,numChannels:t.numChannels,sampleRate:t.sampleRate,numFrames:e.byteLength/Int16Array.BYTES_PER_ELEMENT}),s=new Uint8Array(e)):(n=i({isFloat:!1,numChannels:e.numberOfChannels,sampleRate:e.sampleRate,numFrames:e.length}),s=new Uint8Array(function(e){const{numberOfChannels:t,length:i}=e,n=new Int16Array(i*t);for(let s=0;s<t;s++){const a=e.getChannelData(s),r=a instanceof Float32Array;for(let e=0;e<i;e++)n[e*t+s]=r?32767*a[e]:a[e]}return n}(e).buffer));const a=new Uint8Array(n.length+s.length);return a.set(n,0),a.set(s,n.length),a}Object.defineProperty(t,"__esModule",{value:!0}),t.createObjectURL=t.formatTime=t.createElement=void 0,t.createElement=(e,t,i="")=>{const n=document.createElement(e);return n.className=t,n.innerHTML=i,n},t.formatTime=e=>`${Math.floor(e/60)}:${("0"+Math.round(e)%60).slice(-2)}`,t.createObjectURL=(e,t={numChannels:1,sampleRate:44100})=>{let i;return i=e instanceof AudioBuffer?n(e,{numChannels:e.numberOfChannels,sampleRate:e.sampleRate}):n(e,t),URL.createObjectURL(new Blob([i],{type:"audio/wav"}))}},8020:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,a){function r(e){try{l(n.next(e))}catch(e){a(e)}}function o(e){try{l(n.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,o)}l((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=s(i(423)),r=s(i(8429)),o=s(i(9155)),l=i(7997);class c{constructor(e,t){this.el=(0,l.createElement)("div","lm-Widget"),this._container=(0,l.createElement)("div","waveform"),this._currentTime=(0,l.createElement)("div","time","0:00"),this._container.append(this._currentTime),this._config=e,this._player=o.default.create(t)}get sampleRate(){return this._wavesurfer.options.sampleRate}get timeSlice(){var e;return null===(e=this._config.recordOptions)||void 0===e?void 0:e.mediaRecorderTimeslice}set sampleRate(e){this._wavesurfer.options.sampleRate=e,this._player.sampleRate=e}createWaveSurfer(){this._wavesurfer=a.default.create(Object.assign(Object.assign({},this._config.options),{container:this._container}))}createRateSelect(){this._rateSelect=(0,l.createElement)("select","form-select-sm d-inline-block me-3 my-3 w-25"),[8e3,16e3,22050,24e3,44100,48e3].forEach((e=>{const t=document.createElement("option");t.value=e.toString(),t.text=`${e} Hz`,16e3===e&&(t.selected=!0),this._rateSelect.appendChild(t)}))}createMicSelect(){this._micSelect=(0,l.createElement)("select","form-select-sm d-inline-block me-3 my-3 w-50"),navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then((e=>{r.default.getAvailableAudioDevices().then((e=>{e.forEach((e=>{const t=document.createElement("option");t.value=e.deviceId,t.text=e.label||e.deviceId,this._micSelect.appendChild(t)}))}))})).catch((e=>{const t="zh"===this._config.language?"访问麦克风失败":"Error accessing the microphone: ";throw new Error(t+e.message)}))}createPauseButton(){this._pauseButton=(0,l.createElement)("button","btn btn-outline-danger me-3 my-3",'<i class="fa fa-pause"></i>'),this._pauseButton.disabled=!0,this._pauseButton.onclick=()=>{this._recorder.isRecording()?(this._recorder.pauseRecording(),this._pauseButton.innerHTML='<i class="fa fa-play"></i>',this._container.style.display="none",this._player.el.style.display="block"):(this._recorder.resumeRecording(),this._pauseButton.innerHTML='<i class="fa fa-pause"></i>',this._container.style.display="block",this._player.el.style.display="none")}}createRecordButton(){this._recordButton=(0,l.createElement)("button","btn btn-danger me-3 my-3",'<i class="fa fa-microphone"></i>'),this._recordButton.onclick=()=>{this._recorder.isRecording()||this._recorder.isPaused()?(this._recorder.stopRecording(),this._container.style.display="none",this._player.el.style.display="block"):(this._wavesurfer.options.normalize=!1,this.sampleRate=parseInt(this._rateSelect.value),this._recorder.startRecording({deviceId:this._micSelect.value}).then((()=>{this._pauseButton.disabled=!1,this._rateSelect.disabled=!0,this._micSelect.disabled=!0,this._pauseButton.innerHTML='<i class="fa fa-pause"></i>',this._recordButton.innerHTML='<i class="fa fa-stop"></i>',this._container.style.display="block",this._player.el.style.display="none"})))}}onRecordStart(e){this._recorder.on("record-start",(()=>{e()}))}onRecordChunk(e){this._recorder.on("record-data-available",(t=>{e(t)}))}onRecordEnd(e){this._recorder.on("record-end",(t=>n(this,void 0,void 0,(function*(){this._player.load(URL.createObjectURL(t)),this._recordButton.disabled=!0,this._pauseButton.disabled=!0,yield e(t),this._recordButton.disabled=!1,this._pauseButton.disabled=!0,this._rateSelect.disabled=!1,this._micSelect.disabled=!1,this._pauseButton.innerHTML='<i class="fa fa-play"></i>',this._recordButton.innerHTML='<i class="fa fa-microphone"></i>'}))))}createRecorder(){this._wavesurfer.toggleInteraction(!1),this._recorder=this._wavesurfer.registerPlugin(r.default.create(this._config.recordOptions)),this.createRateSelect(),this.createMicSelect(),this.createPauseButton(),this.createRecordButton(),this._container.style.display="none",this._player.el.style.display="none",this.el.append(this._recordButton,this._pauseButton,this._rateSelect,this._micSelect,this._container,this._player.el),this._recorder.on("record-pause",(e=>{this._player.load(URL.createObjectURL(e))})),this._recorder.on("record-progress",(e=>{this._currentTime.textContent=(0,l.formatTime)(e/1e3)}))}static create(e,t){const i=new c(e,t);return i.createWaveSurfer(),i.createRecorder(),i}}t.default=c},8078:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(s,a){function r(e){try{l(n.next(e))}catch(e){a(e)}}function o(e){try{l(n.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,o)}l((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.PCMPlayer=void 0;const s=i(7997);class a{constructor(e){this._isDone=!1,this._isPlaying=!0,this._samples=new Int16Array(0),this._allSamples=new Int16Array(0),this._options=Object.assign({channels:1,sampleRate:16e3,flushTime:100,language:"en"},e),this.playButton=(0,s.createElement)("button","btn btn-danger me-3 my-3",'<i class="fa fa-pause"></i>'),this.playButton.onclick=()=>{this._isPlaying=!this._isPlaying,this._isPlaying?this.play():this.pause(),this.playButton.innerHTML=`<i class="fa fa-${this._isPlaying?"pause":"play"}"></i>`},this._interval=window.setInterval(this.flush.bind(this),this._options.flushTime),this._audioCtx=new(window.AudioContext||window.webkitAudioContext),this._gainNode=this._audioCtx.createGain(),this._gainNode.gain.value=1,this._gainNode.connect(this._audioCtx.destination),this._startTime=this._audioCtx.currentTime}set sampleRate(e){this._options.sampleRate=e}setDone(){this._isDone=!0}feed(e){const t=atob(e),i=new ArrayBuffer(t.length),n=new Uint8Array(i);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const s=new Int16Array(i);this._samples=new Int16Array([...this._samples,...s]),this._allSamples=new Int16Array([...this._allSamples,...s])}get url(){return(0,s.createObjectURL)(this._allSamples.buffer,{numChannels:this._options.channels,sampleRate:this._options.sampleRate})}flush(){if(!this._samples.length)return;const e=this._isDone,t=this._audioCtx.createBufferSource(),i=this._samples.length/this._options.channels,n=this._audioCtx.createBuffer(this._options.channels,i,this._options.sampleRate);for(let e=0;e<this._options.channels;e++){const t=n.getChannelData(e);let s=e;for(let e=0;e<i;e++)t[e]=this._samples[s]/32768,s+=this._options.channels}this._startTime=Math.max(this._startTime,this._audioCtx.currentTime),t.buffer=n,t.connect(this._gainNode),t.start(this._startTime),t.onended=()=>{this.playButton.disabled=!!e},this._startTime+=n.duration,this._samples=new Int16Array(0)}play(){return n(this,void 0,void 0,(function*(){yield this._audioCtx.resume()}))}pause(){return n(this,void 0,void 0,(function*(){yield this._audioCtx.suspend()}))}volume(e){this._gainNode.gain.value=e}destroy(){this._interval&&clearInterval(this._interval),this._samples=new Int16Array(0),this._audioCtx.close()}}t.PCMPlayer=a,t.default=a},8330:e=>{e.exports=JSON.parse('{"name":"ipyaudio","version":"0.1.11","description":"A Custom Jupyter Widget Library","keywords":["jupyter","jupyterlab","jupyterlab-extension","widgets"],"files":["lib/**/*.js","dist/*.js","css/*.css"],"homepage":"https://github.com/pengzhendong/ipyaudio","bugs":{"url":"https://github.com/pengzhendong/ipyaudio/issues"},"license":"BSD-3-Clause","author":{"name":"Zhendong Peng","email":"pzd17@tsinghua.org.cn"},"main":"lib/index.js","types":"./lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/pengzhendong/ipyaudio.git"},"scripts":{"build":"jlpm run build:lib && jlpm run build:nbextension && jlpm run build:labextension:dev","build:prod":"jlpm run build:lib && jlpm run build:nbextension && jlpm run build:labextension","build:labextension":"jupyter labextension build .","build:labextension:dev":"jupyter labextension build --development True .","build:lib":"tsc","build:nbextension":"webpack","clean":"jlpm run clean:lib && jlpm run clean:nbextension && jlpm run clean:labextension","clean:lib":"rimraf lib","clean:labextension":"rimraf ipyaudio/labextension","clean:nbextension":"rimraf ipyaudio/nbextension/static/index.js","lint":"eslint . --ext .ts,.tsx --fix","lint:check":"eslint . --ext .ts,.tsx","prepack":"jlpm run build:lib","test":"jest","watch":"npm-run-all -p \\"watch:*\\"","watch:lib":"tsc -w","watch:nbextension":"webpack --watch --mode=development","watch:labextension":"jupyter labextension watch ."},"dependencies":{"@jupyter-widgets/base":"^1.1.10 || ^2 || ^3 || ^4 || ^5 || ^6","bootstrap":"^5.3.3","jupyter-dataserializers":"^3.0.1","lodash.merge":"^4.6.2"},"devDependencies":{"@babel/core":"^7.23.7","@babel/preset-env":"^7.23.8","@jupyter-widgets/base-manager":"^1.0.7","@jupyterlab/builder":"^4.0.11","@lumino/application":"^2.3.0","@lumino/widgets":"^2.3.1","@types/jest":"^29.5.11","@types/webpack-env":"^1.18.4","@typescript-eslint/eslint-plugin":"^6.19.1","@typescript-eslint/parser":"^6.19.1","acorn":"^8.11.3","css-loader":"^6.9.1","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","fs-extra":"^11.2.0","identity-obj-proxy":"^3.0.0","jest":"^29.7.0","mkdirp":"^3.0.1","npm-run-all":"^4.1.5","prettier":"^3.2.4","rimraf":"^5.0.5","source-map-loader":"^5.0.0","style-loader":"^3.3.4","ts-jest":"^29.1.2","ts-loader":"^9.5.1","typescript":"~5.3.3","wavesurfer.js":"^7.9.1","webpack":"^5.90.0","webpack-cli":"^5.1.4"},"devDependenciesComments":{"@jupyterlab/builder":"pinned to the latest JupyterLab 3.x release","@lumino/application":"pinned to the latest Lumino 1.x release","@lumino/widgets":"pinned to the latest Lumino 1.x release"},"jupyterlab":{"extension":"lib/plugin","outputDir":"ipyaudio/labextension/","sharedPackages":{"@jupyter-widgets/base":{"bundled":false,"singleton":true}}},"packageManager":"yarn@4.8.1"}')},8487:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e"},8734:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%273%27 fill=%27rgba%28255, 255, 255, 0.25%29%27/%3e%3c/svg%3e"},9155:function(e,t,i){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(i(423)),a=n(i(980)),r=n(i(8659)),o=n(i(8541)),l=n(i(1427)),c=n(i(3875)),d=n(i(8078)),u=i(7997);class h{constructor(e){this.el=(0,u.createElement)("div","lm-Widget"),this._container=(0,u.createElement)("div","waveform"),this._duration=(0,u.createElement)("div","duration","0:00"),this._currentTime=(0,u.createElement)("div","time","0:00"),this._container.append(this._duration,this._currentTime),this.el.append(this._container),this._config=e}get url(){return this._config.isStreaming?this._pcmPlayer.url:(0,u.createObjectURL)(this._wavesurfer.getDecodedData())}set sampleRate(e){this._config.isStreaming&&(this._pcmPlayer.sampleRate=e),this._wavesurfer.options.sampleRate=e}load(e){this._config.isStreaming?(this._pcmPlayer.feed(e),this._wavesurfer.load(this.url)):this._wavesurfer.load(e)}setDone(){this._pcmPlayer.setDone()}createPCMPlayer(){this._config.isStreaming&&(this._pcmPlayer=new d.default({channels:1,sampleRate:this._config.options.sampleRate}),this.el.append(this._pcmPlayer.playButton))}createDownloadButton(){this._downloadButton=(0,u.createElement)("button","btn btn-success my-3");const e="zh"===this._config.language?"下载":"Download";this._downloadButton.innerHTML=`${e} <i class="fa fa-download"></i>`,this.el.append(this._downloadButton),this._downloadButton.onclick=()=>{const e=document.createElement("a");e.href=this.url,e.download="audio.wav",e.click()}}static createPlugins(e){var t;const i={hover:()=>{var t;return a.default.create(null===(t=e.pluginOptions)||void 0===t?void 0:t.hover)},minimap:()=>{var t,i;return r.default.create(Object.assign(Object.assign({},null===(t=e.pluginOptions)||void 0===t?void 0:t.minimap),{plugins:[a.default.create(Object.assign(Object.assign({},null===(i=e.pluginOptions)||void 0===i?void 0:i.hover),{lineWidth:1}))]}))},spectrogram:()=>{var t;return o.default.create(null===(t=e.pluginOptions)||void 0===t?void 0:t.spectrogram)},timeline:()=>{var t;return l.default.create(null===(t=e.pluginOptions)||void 0===t?void 0:t.timeline)},zoom:()=>{var t;return c.default.create(null===(t=e.pluginOptions)||void 0===t?void 0:t.zoom)}};return Array.from(null!==(t=e.plugins)&&void 0!==t?t:[]).map((e=>{var t;return null===(t=i[e])||void 0===t?void 0:t.call(i)})).filter(Boolean)}createWaveSurfer(){this._wavesurfer=s.default.create(Object.assign(Object.assign({},this._config.options),{container:this._container,plugins:h.createPlugins(this._config)})),this._wavesurfer.on("interaction",(()=>this._wavesurfer.playPause())),this._wavesurfer.on("decode",(e=>this._duration.textContent=(0,u.formatTime)(e))),this._wavesurfer.on("timeupdate",(e=>this._currentTime.textContent=(0,u.formatTime)(e)))}static create(e){const t=new h(e);return t.createWaveSurfer(),t.createPCMPlayer(),t.createDownloadButton(),t}}t.default=h}}]);
|