ipyaudio 0.1.18__py3-none-any.whl → 0.1.19__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.
Files changed (39) hide show
  1. ipyaudio/_frontend.py +1 -1
  2. ipyaudio/_version.py +1 -1
  3. ipyaudio/labextension/package.json +4 -5
  4. ipyaudio/labextension/static/270.2fc99f3c3c95e06d614a.js +1 -0
  5. ipyaudio/labextension/static/627.315cb148cc156382df50.js +2 -0
  6. ipyaudio/labextension/static/627.315cb148cc156382df50.js.LICENSE.txt +5 -0
  7. ipyaudio/nbextension/index.js +1 -1
  8. ipyaudio/nbextension/index.js.LICENSE.txt +6 -0
  9. ipyaudio/nbextension/index.js.map +1 -1
  10. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/package.json +4 -5
  11. ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/270.2fc99f3c3c95e06d614a.js +1 -0
  12. ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/627.315cb148cc156382df50.js +2 -0
  13. ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/627.315cb148cc156382df50.js.LICENSE.txt +5 -0
  14. ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/index.js +3 -0
  15. ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/index.js.LICENSE.txt +12 -0
  16. ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/index.js.map +1 -0
  17. {ipyaudio-0.1.18.dist-info → ipyaudio-0.1.19.dist-info}/METADATA +10 -55
  18. ipyaudio-0.1.19.dist-info/RECORD +48 -0
  19. ipyaudio/labextension/static/270.b6e7f47d313701fe1e56.js +0 -1
  20. ipyaudio/labextension/static/58.1d71425dd409ae479079.js +0 -1
  21. ipyaudio/labextension/static/remoteEntry.186d475d092749deda54.js +0 -1
  22. ipyaudio-0.1.18.data/data/share/jupyter/labextensions/ipyaudio/static/270.b6e7f47d313701fe1e56.js +0 -1
  23. ipyaudio-0.1.18.data/data/share/jupyter/labextensions/ipyaudio/static/58.1d71425dd409ae479079.js +0 -1
  24. ipyaudio-0.1.18.data/data/share/jupyter/labextensions/ipyaudio/static/remoteEntry.186d475d092749deda54.js +0 -1
  25. ipyaudio-0.1.18.data/data/share/jupyter/nbextensions/ipyaudio/index.js +0 -3
  26. ipyaudio-0.1.18.data/data/share/jupyter/nbextensions/ipyaudio/index.js.LICENSE.txt +0 -6
  27. ipyaudio-0.1.18.data/data/share/jupyter/nbextensions/ipyaudio/index.js.map +0 -1
  28. ipyaudio-0.1.18.dist-info/RECORD +0 -48
  29. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/etc/jupyter/nbconfig/notebook.d/ipyaudio.json +0 -0
  30. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/install.json +0 -0
  31. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/static/122.3700f0454aee82938e32.js +0 -0
  32. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/static/509.a9d6860fe38ae60aa71f.js +0 -0
  33. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js +0 -0
  34. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js.LICENSE.txt +0 -0
  35. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/static/style.js +0 -0
  36. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/labextensions/ipyaudio/static/third-party-licenses.json +0 -0
  37. {ipyaudio-0.1.18.data → ipyaudio-0.1.19.data}/data/share/jupyter/nbextensions/ipyaudio/extension.js +0 -0
  38. {ipyaudio-0.1.18.dist-info → ipyaudio-0.1.19.dist-info}/WHEEL +0 -0
  39. {ipyaudio-0.1.18.dist-info → ipyaudio-0.1.19.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.18
3
+ Version: 0.1.19
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>
@@ -65,68 +65,23 @@ 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
+ <div align="center">
69
+
68
70
  # ipyaudio
69
71
 
70
72
  [![Build Status](https://travis-ci.org/pengzhendong/ipyaudio.svg?branch=master)](https://travis-ci.org/pengzhendong/ipyaudio)
71
73
  [![codecov](https://codecov.io/gh/pengzhendong/ipyaudio/branch/master/graph/badge.svg)](https://codecov.io/gh/pengzhendong/ipyaudio)
74
+ [![PyPI Downloads](https://static.pepy.tech/badge/ipyaudio)](https://pepy.tech/projects/ipyaudio)
75
+ [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
72
76
 
73
- A Custom Jupyter Widget Library
74
-
75
- ## Installation
76
-
77
- ```bash
78
- pip install ipyaudio
79
- ```
80
-
81
- ## Development Installation
82
-
83
- Create a dev environment:
84
-
85
- ```bash
86
- conda create -n ipyaudio-dev -c conda-forge nodejs python jupyterlab
87
- conda activate ipyaudio-dev
88
- ```
89
-
90
- Install the python. This will also build the TS package.
91
-
92
- ```bash
93
- pip install -e ".[test, examples]"
94
- ```
95
-
96
- When developing your extensions, you need to manually enable your extensions with the
97
- lab frontend.
98
-
99
- ```bash
100
- jupyter labextension develop --overwrite .
101
- jlpm run build
102
- ```
103
-
104
- ### How to see your changes
105
-
106
- #### Typescript:
77
+ A Jupyter Widget for Web Audio Playing and Recording.
107
78
 
108
- If you use JupyterLab to develop then you can watch the source directory and run JupyterLab at the same time in different
109
- terminals to watch for changes in the extension's source and automatically rebuild the widget.
79
+ </div>
110
80
 
111
- ```bash
112
- # Watch the source directory in one terminal, automatically rebuilding when needed
113
- jlpm run watch
114
- # Run JupyterLab in another terminal
115
- jupyter lab
116
- ```
117
-
118
- After a change wait for the build to finish and then refresh your browser and the changes should take effect.
119
-
120
- #### Python:
81
+ <br/>
121
82
 
122
- If you make a change to the python code then you will need to restart the notebook kernel to have it take effect.
123
-
124
- ## Updating the version
125
-
126
- To update the version, install tbump and use it to bump the version.
127
- By default it will also create a tag.
83
+ ## Installation
128
84
 
129
85
  ```bash
130
- pip install tbump
131
- tbump <new-version>
86
+ $ pip install ipyaudio
132
87
  ```
@@ -0,0 +1,48 @@
1
+ ipyaudio/__init__.py,sha256=GO0pZvY1ER8CGSEdSgXyf9byRVCTdshf30EcqflfnGs,1859
2
+ ipyaudio/_frontend.py,sha256=wGdts15tti_so9LBtrZCiwz6LKg8e9i6rP6E4igIkxc,246
3
+ ipyaudio/_version.py,sha256=myqxTPu56USQ_-_M_HShSeXoI3-EKJMGdfyd1-3XBTs,207
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=p0ZBNHTyIDdPXUc5-dl-D6viUYF8BHDyqF9ze5XptIs,3417
12
+ ipyaudio/labextension/static/122.3700f0454aee82938e32.js,sha256=NwDwRUrugpOOMpSrNaUUlDh_VcIo_CsLXqd_Dqv9aBE,1076
13
+ ipyaudio/labextension/static/270.2fc99f3c3c95e06d614a.js,sha256=L8mfPDyV4G1hSgf36-LoBThx31BK21Jx47T5WxPu7NY,27804
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/627.315cb148cc156382df50.js,sha256=LFY8xH3yCFPiBg2cj_AK4AGEad8V3MYpYDv8DcbbOIw,425571
18
+ ipyaudio/labextension/static/627.315cb148cc156382df50.js.LICENSE.txt,sha256=5oK3F4JphnO3LYEM9RXe8SkqkZATOYmxpFpvVGvdaKk,237
19
+ ipyaudio/labextension/static/style.js,sha256=-CQt0ZTPaCTvrRiLcznxflAbfvIKlOVzjOos-muaXQ8,118
20
+ ipyaudio/labextension/static/third-party-licenses.json,sha256=Bf8Xf3Ts5Ei8_w0jbr2SLFIHbju9pTfI-nhy1tfEaZ4,15803
21
+ ipyaudio/nbextension/extension.js,sha256=DuyS9AUV37h3WxspuhDpEPTFCztkEyMWfZ5YjZSaWAg,406
22
+ ipyaudio/nbextension/index.js,sha256=SyRvHZsFuume4qo4M5BIIG6HQOKf3NWejvPqlR8N5Z8,1333087
23
+ ipyaudio/nbextension/index.js.LICENSE.txt,sha256=SM0Gns-yHYrs7f5xup63yzlmb7K5I1gj7WjnbBGuP_E,358
24
+ ipyaudio/nbextension/index.js.map,sha256=X9RRBzUpzcFyzDVbnkMeMXamQHZyL2ArKNRbE48d50E,2169165
25
+ ipyaudio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ ipyaudio/tests/conftest.py,sha256=bvWtEyGyYxzUqTzS3Yb6E6mWOMP12SyVy9AqXvQGGLg,1415
27
+ ipyaudio/tests/test_example.py,sha256=JLdr25MjPjNe5Wj8n7J40U14o5s4JXJpxOU9_VQrN94,278
28
+ ipyaudio/tests/test_nbextension_path.py,sha256=t9Y4IaMOSbTzmtNxMGCldbZRExTah-b-fKwd7_2K2ys,462
29
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/package.json,sha256=p0ZBNHTyIDdPXUc5-dl-D6viUYF8BHDyqF9ze5XptIs,3417
30
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/122.3700f0454aee82938e32.js,sha256=NwDwRUrugpOOMpSrNaUUlDh_VcIo_CsLXqd_Dqv9aBE,1076
31
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/270.2fc99f3c3c95e06d614a.js,sha256=L8mfPDyV4G1hSgf36-LoBThx31BK21Jx47T5WxPu7NY,27804
32
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/509.a9d6860fe38ae60aa71f.js,sha256=qdaGD-OK5gqnH9J8i1LRsAFbaDrRt7vhCDtiyrLU_yE,632
33
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js,sha256=g9sSzxO7BhhC5U9q-cdCAa62fsNS0H55VFy8hMZpgEM,60441
34
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/570.97f2a8196b7f1703e636.js.LICENSE.txt,sha256=Rygqb6FGni17yJNtFnwX6_D9gAlBEE3RUJeUUgjMtQE,120
35
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/627.315cb148cc156382df50.js,sha256=LFY8xH3yCFPiBg2cj_AK4AGEad8V3MYpYDv8DcbbOIw,425571
36
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/627.315cb148cc156382df50.js.LICENSE.txt,sha256=5oK3F4JphnO3LYEM9RXe8SkqkZATOYmxpFpvVGvdaKk,237
37
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/style.js,sha256=-CQt0ZTPaCTvrRiLcznxflAbfvIKlOVzjOos-muaXQ8,118
38
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/static/third-party-licenses.json,sha256=Bf8Xf3Ts5Ei8_w0jbr2SLFIHbju9pTfI-nhy1tfEaZ4,15803
39
+ ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/extension.js,sha256=DuyS9AUV37h3WxspuhDpEPTFCztkEyMWfZ5YjZSaWAg,406
40
+ ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/index.js,sha256=SyRvHZsFuume4qo4M5BIIG6HQOKf3NWejvPqlR8N5Z8,1333087
41
+ ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/index.js.LICENSE.txt,sha256=SM0Gns-yHYrs7f5xup63yzlmb7K5I1gj7WjnbBGuP_E,358
42
+ ipyaudio-0.1.19.data/data/share/jupyter/nbextensions/ipyaudio/index.js.map,sha256=X9RRBzUpzcFyzDVbnkMeMXamQHZyL2ArKNRbE48d50E,2169165
43
+ ipyaudio-0.1.19.data/data/etc/jupyter/nbconfig/notebook.d/ipyaudio.json,sha256=BmiJxz0zncI7hb8QHtnfAykNxqSXBcVhfbWZxdBRzzw,62
44
+ ipyaudio-0.1.19.data/data/share/jupyter/labextensions/ipyaudio/install.json,sha256=6bM2k1XqE-DlTYa87T6uNaTy55_-Lf2HlZFSyx5QnjY,177
45
+ ipyaudio-0.1.19.dist-info/METADATA,sha256=sePRd0R7rdrCFRAwa3b-BisR1dofjW0OaAtdamgrghY,3912
46
+ ipyaudio-0.1.19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
47
+ ipyaudio-0.1.19.dist-info/licenses/LICENSE.txt,sha256=-uZ5GSv8HIaOXcLH77MEBajSXj7X8T5N989WfkUFYKc,1498
48
+ ipyaudio-0.1.19.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkipyaudio=self.webpackChunkipyaudio||[]).push([[270],{311: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 5 6 6 6-6%27/%3e%3c/svg%3e"},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(1136)),u=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 h extends o.DOMWidgetView{constructor(){super(...arguments),this._chunks=new c.default,this._isFirstChunk=!0,this._isCompleted=!1}_sendChunk(){var e;return n(this,void 0,void 0,(function*(){const t=yield this._chunks.dequeue(1e3+(null!==(e=this._recorder.timeSlice)&&void 0!==e?e:20));t.length>0&&(this.model.set("chunk",{array:t,shape:[t.length]}),this.model.save_changes()),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=u.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*(){"chunk_received"===e.msg_type&&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.enqueue(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=h},644: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 0%27/%3e%3c/svg%3e"},1136:function(e,t){var i=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.default=class{constructor(){this.queue=[],this.resolveDequeue=null,this.waitingDequeue=null}mergeAllChunks(){if(0===this.queue.length)return new Uint8Array(0);let e=0;for(const t of this.queue)e+=t.length;const t=new Uint8Array(e);let i=0;for(const e of this.queue)t.set(e,i),i+=e.length;return t}enqueue(e){if(this.queue.push(e),this.resolveDequeue){const e=this.mergeAllChunks();this.resolveDequeue(e),this.queue.length=0,this.resolveDequeue=null,this.waitingDequeue=null}}dequeue(e=0){return i(this,void 0,void 0,(function*(){if(this.queue.length>0){const e=this.mergeAllChunks();return this.queue.length=0,e}if(!this.waitingDequeue&&(this.waitingDequeue=new Promise((e=>{this.resolveDequeue=e})),e>0)){const t=setTimeout((()=>{this.resolveDequeue&&(this.resolveDequeue(new Uint8Array(0)),this.resolveDequeue=null,this.waitingDequeue=null)}),e);this.waitingDequeue.then((()=>{t&&clearTimeout(t)})).catch((()=>{t&&clearTimeout(t)}))}return this.waitingDequeue}))}get length(){return this.queue.length}}},1368: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-.708%27/%3e%3c/svg%3e"},1451: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 5 6 6 6-6%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),u=i.n(c),d=i(540),h=i.n(d),m=i(1113),p=i.n(m),g=i(4930),_={};_.styleTagTransform=p(),_.setAttributes=u(),_.insert=l().bind(null,"head"),_.domAPI=r(),_.insertStyleElement=h(),s()(g.A,_);const v=g.A&&g.A.locals?g.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 u 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=u},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"},4914: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-.708%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"},5967: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.414%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"},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"},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),u=new DataView(c);let d=0;function h(e){for(let t=0;t<e.length;t++)u.setUint8(d+t,e.charCodeAt(t));d+=e.length}function m(e){u.setUint32(d,e,!0),d+=4}function p(e){u.setUint16(d,e,!0),d+=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.16","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"}')},8661: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.1%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)),u=n(i(8078)),d=i(7997);class h{constructor(e){this.el=(0,d.createElement)("div","lm-Widget"),this._container=(0,d.createElement)("div","waveform"),this._duration=(0,d.createElement)("div","duration","0:00"),this._currentTime=(0,d.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,d.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 u.default({channels:1,sampleRate:this._config.options.sampleRate}),this.el.append(this._pcmPlayer.playButton))}createDownloadButton(){this._downloadButton=(0,d.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,d.formatTime)(e))),this._wavesurfer.on("timeupdate",(e=>this._currentTime.textContent=(0,d.formatTime)(e)))}static create(e){const t=new h(e);return t.createWaveSurfer(),t.createPCMPlayer(),t.createDownloadButton(),t}}t.default=h}}]);