cnhis-design-vue 3.3.1-release.4 → 3.3.2-beta.1

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 (213) hide show
  1. package/README.md +87 -87
  2. package/es/components/audio-sdk/index.d.ts +57 -6
  3. package/es/components/audio-sdk/index.js +1 -0
  4. package/es/components/audio-sdk/src/Index.vue.d.ts +55 -6
  5. package/es/components/audio-sdk/src/Index.vue2.js +12 -4
  6. package/es/components/audio-sdk/src/audioSDK.d.ts +4 -4
  7. package/es/components/audio-sdk/src/audioSDK.js +23 -9
  8. package/es/components/audio-sdk/src/components/recording-modal.vue.d.ts +27 -3
  9. package/es/components/audio-sdk/src/components/recording.vue.d.ts +27 -3
  10. package/es/components/audio-sdk/src/components/recording.vue2.js +14 -6
  11. package/es/components/audio-sdk/src/constants/index.d.ts +1 -0
  12. package/es/components/audio-sdk/src/constants/index.js +3 -0
  13. package/es/components/audio-sdk/src/utils/recorder/fft.d.ts +4 -0
  14. package/es/components/audio-sdk/src/utils/recorder/fft.js +75 -0
  15. package/es/components/audio-sdk/src/utils/recorder/index.d.ts +3 -0
  16. package/es/components/audio-sdk/src/utils/recorder/index.js +12 -0
  17. package/es/components/audio-sdk/src/utils/recorder/mp3-engine.d.ts +4 -0
  18. package/es/components/audio-sdk/src/utils/recorder/mp3-engine.js +12435 -0
  19. package/es/components/audio-sdk/src/utils/recorder/mp3.d.ts +4 -0
  20. package/es/components/audio-sdk/src/utils/recorder/mp3.js +343 -0
  21. package/es/components/audio-sdk/src/utils/recorder/recorder.d.ts +4 -0
  22. package/es/components/audio-sdk/src/utils/recorder/recorder.js +1324 -0
  23. package/es/components/audio-sdk/src/utils/recorder/wave.d.ts +4 -0
  24. package/es/components/audio-sdk/src/utils/recorder/wave.js +258 -0
  25. package/es/components/audio-sdk/src/utils/recordingModal.js +13 -2
  26. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  27. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  28. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  29. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  30. package/es/components/callback/src/components/render/popupMaps.d.ts +17 -1
  31. package/es/components/card-render/index.d.ts +4 -4
  32. package/es/components/card-render/src/CardRender.vue.d.ts +4 -4
  33. package/es/components/card-render/src/components/index.d.ts +23 -23
  34. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  35. package/es/components/fabric-chart/src/hooks/useCumputedPoint.js +12 -6
  36. package/es/components/field-editor/index.d.ts +4 -0
  37. package/es/components/field-editor/src/FieldEditor.vue.d.ts +4 -0
  38. package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
  39. package/es/components/field-set/src/FieldFilter.vue.d.ts +1 -1
  40. package/es/components/field-set/src/FieldSet.vue.d.ts +1 -1
  41. package/es/components/field-set/src/components/table-row.vue.d.ts +1 -1
  42. package/es/components/form-config/index.d.ts +80 -5
  43. package/es/components/form-config/src/FormConfig.vue.d.ts +80 -5
  44. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +4 -0
  45. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +57 -4
  46. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +16 -1
  47. package/es/components/form-config/src/constants/index.d.ts +2 -1
  48. package/es/components/form-config/src/constants/index.js +1 -0
  49. package/es/components/form-config/src/hooks/useConfigurationField.js +19 -1
  50. package/es/components/form-config/src/hooks/useLocale.d.ts +1 -0
  51. package/es/components/form-config/src/hooks/useLocale.js +1 -0
  52. package/es/components/form-config/src/types/index.d.ts +1 -0
  53. package/es/components/form-render/index.d.ts +4 -0
  54. package/es/components/form-render/src/FormRender.vue.d.ts +4 -0
  55. package/es/components/form-render/src/FormRender.vue2.js +3 -2
  56. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +4 -0
  57. package/es/components/form-render/src/components/renderer/combination/combination.js +1 -1
  58. package/es/components/form-render/src/components/renderer/date.d.ts +2 -2
  59. package/es/components/form-render/src/components/renderer/input.d.ts +16 -4
  60. package/es/components/form-render/src/components/renderer/input.js +39 -7
  61. package/es/components/form-render/src/components/renderer/levelSearchCascader/index.js +3 -0
  62. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +1 -0
  63. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +1 -0
  64. package/es/components/form-render/src/components/renderer/radio_checkbox.js +9 -8
  65. package/es/components/form-render/src/components/renderer/text.js +1 -1
  66. package/es/components/form-render/src/components/renderer/textarea.d.ts +16 -1
  67. package/es/components/form-render/src/components/renderer/textarea.js +36 -8
  68. package/es/components/form-render/src/hooks/useBusinessBinding.js +1 -0
  69. package/es/components/form-render/src/hooks/useComplexOptions.js +3 -2
  70. package/es/components/form-render/src/hooks/useFieldListAdaptor.d.ts +2 -2
  71. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +4 -3
  72. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +2 -0
  73. package/es/components/form-render/src/hooks/useFormField.d.ts +2 -0
  74. package/es/components/form-render/src/hooks/useFormField.js +5 -1
  75. package/es/components/form-render/src/hooks/useFormValidator.js +1 -0
  76. package/es/components/form-render/src/hooks/usePresetScope.js +1 -0
  77. package/es/components/form-render/src/types/fieldItem.d.ts +11 -0
  78. package/es/components/form-render/src/types/index.d.ts +2 -1
  79. package/es/components/form-render/src/utils/index.js +1 -0
  80. package/es/components/form-render/src/utils/schema.js +60 -15
  81. package/es/components/guide/src/renderer.d.ts +2 -2
  82. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  83. package/es/components/iho-table/index.d.ts +13 -1
  84. package/es/components/iho-table/src/IhoTable.vue.d.ts +13 -2
  85. package/es/components/iho-table/src/IhoTable.vue2.js +27 -20
  86. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.d.ts +6 -0
  87. package/es/components/index.css +1 -1
  88. package/es/components/index.d.ts +1 -2
  89. package/es/components/index.js +1 -3
  90. package/es/components/info-header/index.d.ts +13 -0
  91. package/es/components/info-header/src/InfoHeader.vue.d.ts +13 -0
  92. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  93. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  94. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +5 -0
  95. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +4 -0
  96. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  97. package/es/components/select-person/src/SelectPerson.vue2.js +21 -9
  98. package/es/components/shortcut-setter/index.d.ts +16 -1
  99. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +16 -1
  100. package/es/components/table-filter/src/components/render-widget/enums.d.ts +2 -0
  101. package/es/components/table-filter/src/components/render-widget/enums.js +2 -1
  102. package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +8 -0
  103. package/es/components/table-filter/src/components/render-widget/helpers/enums.d.ts +1 -0
  104. package/es/components/table-filter/src/components/render-widget/helpers/enums.js +2 -1
  105. package/es/components/table-filter/src/components/render-widget/helpers/presetValToTimestamp.js +15 -13
  106. package/es/components/table-filter/src/tool/baseOptions.js +3 -0
  107. package/es/env.d.ts +25 -25
  108. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  109. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  110. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  111. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  112. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  113. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  114. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  115. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  116. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  117. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  118. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  119. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  120. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  121. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  122. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  123. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  124. package/es/shared/assets/img/failure.png.js +1 -1
  125. package/es/shared/assets/img/no-permission.png.js +1 -1
  126. package/es/shared/assets/img/nodata.png.js +1 -1
  127. package/es/shared/assets/img/notfound.png.js +1 -1
  128. package/es/shared/assets/img/qr.png.js +1 -1
  129. package/es/shared/assets/img/success.png.js +1 -1
  130. package/es/shared/assets/img/table_style_2.png.js +1 -1
  131. package/es/shared/assets/img/video.png.js +1 -1
  132. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  133. package/es/shared/assets/img/xb_big.png.js +1 -1
  134. package/es/shared/assets/img/xb_small.png.js +1 -1
  135. package/es/shared/components/CancelRadio/CancelRadio.d.ts +7 -0
  136. package/es/shared/components/CancelRadio/CancelRadio.js +6 -6
  137. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  138. package/es/shared/package.json.js +1 -1
  139. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  140. package/es/shared/utils/index.js +3 -2
  141. package/es/shared/utils/tapable/index.d.ts +139 -0
  142. package/package.json +76 -78
  143. package/es/components/ai-chat/index.d.ts +0 -680
  144. package/es/components/ai-chat/index.js +0 -10
  145. package/es/components/ai-chat/src/Index.vue.d.ts +0 -682
  146. package/es/components/ai-chat/src/Index.vue.js +0 -6
  147. package/es/components/ai-chat/src/Index.vue2.js +0 -175
  148. package/es/components/ai-chat/src/api/index.d.ts +0 -8
  149. package/es/components/ai-chat/src/api/index.js +0 -87
  150. package/es/components/ai-chat/src/components/ChatAudio.vue.d.ts +0 -38
  151. package/es/components/ai-chat/src/components/ChatAudio.vue.js +0 -6
  152. package/es/components/ai-chat/src/components/ChatAudio.vue2.js +0 -103
  153. package/es/components/ai-chat/src/components/ChatBI.vue.d.ts +0 -101
  154. package/es/components/ai-chat/src/components/ChatBI.vue.js +0 -6
  155. package/es/components/ai-chat/src/components/ChatBI.vue2.js +0 -73
  156. package/es/components/ai-chat/src/components/ChatCard.d.ts +0 -43
  157. package/es/components/ai-chat/src/components/ChatCard.js +0 -403
  158. package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +0 -203
  159. package/es/components/ai-chat/src/components/ChatFooter.vue.js +0 -6
  160. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +0 -373
  161. package/es/components/ai-chat/src/components/ChatMain.d.ts +0 -2
  162. package/es/components/ai-chat/src/components/ChatMain.js +0 -350
  163. package/es/components/ai-chat/src/components/ChatMainDefault.d.ts +0 -2
  164. package/es/components/ai-chat/src/components/ChatMainDefault.js +0 -278
  165. package/es/components/ai-chat/src/components/ChatPatient.vue.d.ts +0 -59
  166. package/es/components/ai-chat/src/components/ChatPatient.vue.js +0 -6
  167. package/es/components/ai-chat/src/components/ChatPatient.vue2.js +0 -218
  168. package/es/components/ai-chat/src/components/ChatPrompt.vue.d.ts +0 -45
  169. package/es/components/ai-chat/src/components/ChatPrompt.vue.js +0 -6
  170. package/es/components/ai-chat/src/components/ChatPrompt.vue2.js +0 -143
  171. package/es/components/ai-chat/src/components/ChatRight.vue.d.ts +0 -57
  172. package/es/components/ai-chat/src/components/ChatRight.vue.js +0 -6
  173. package/es/components/ai-chat/src/components/ChatRight.vue2.js +0 -190
  174. package/es/components/ai-chat/src/components/card/JsonCard.d.ts +0 -25
  175. package/es/components/ai-chat/src/components/card/JsonCard.js +0 -574
  176. package/es/components/ai-chat/src/components/message-render/CardRender.d.ts +0 -16
  177. package/es/components/ai-chat/src/components/message-render/CardRender.js +0 -80
  178. package/es/components/ai-chat/src/components/message-render/FormRender.d.ts +0 -16
  179. package/es/components/ai-chat/src/components/message-render/FormRender.js +0 -173
  180. package/es/components/ai-chat/src/components/mobile/MobileChatAudio.vue.d.ts +0 -36
  181. package/es/components/ai-chat/src/components/mobile/MobileChatAudio.vue.js +0 -6
  182. package/es/components/ai-chat/src/components/mobile/MobileChatAudio.vue2.js +0 -96
  183. package/es/components/ai-chat/src/components/mobile/MobileChatFooter.vue.d.ts +0 -105
  184. package/es/components/ai-chat/src/components/mobile/MobileChatFooter.vue.js +0 -6
  185. package/es/components/ai-chat/src/components/mobile/MobileChatFooter.vue2.js +0 -260
  186. package/es/components/ai-chat/src/components/svgs/AddIcon.vue.js +0 -18
  187. package/es/components/ai-chat/src/components/svgs/AudioIcon.vue.js +0 -37
  188. package/es/components/ai-chat/src/components/svgs/KeyboardIcon.vue.js +0 -20
  189. package/es/components/ai-chat/src/components/svgs/MicroPhone.vue.js +0 -48
  190. package/es/components/ai-chat/src/hooks/index.d.ts +0 -2
  191. package/es/components/ai-chat/src/hooks/index.js +0 -2
  192. package/es/components/ai-chat/src/hooks/useChartAudioContext.d.ts +0 -18
  193. package/es/components/ai-chat/src/hooks/useChartAudioContext.js +0 -202
  194. package/es/components/ai-chat/src/hooks/useData.d.ts +0 -77
  195. package/es/components/ai-chat/src/hooks/useData.js +0 -289
  196. package/es/components/ai-chat/src/hooks/useFooterContext.d.ts +0 -38
  197. package/es/components/ai-chat/src/hooks/useFooterContext.js +0 -218
  198. package/es/components/ai-chat/src/hooks/useProgram.d.ts +0 -14
  199. package/es/components/ai-chat/src/hooks/useProgram.js +0 -306
  200. package/es/components/ai-chat/src/hooks/useSSE.d.ts +0 -9
  201. package/es/components/ai-chat/src/hooks/useSSE.js +0 -138
  202. package/es/components/ai-chat/src/hooks/useWebsocket.d.ts +0 -4
  203. package/es/components/ai-chat/src/hooks/useWebsocket.js +0 -66
  204. package/es/components/ai-chat/src/types/index.d.ts +0 -45
  205. package/es/components/ai-chat/src/types/index.js +0 -1
  206. package/es/components/ai-chat/src/utils/index.d.ts +0 -7
  207. package/es/components/ai-chat/src/utils/index.js +0 -41
  208. package/es/components/ai-chat/style/index.css +0 -1
  209. package/es/shared/assets/img/ai__avatar.png.js +0 -3
  210. package/es/shared/assets/img/file-emr.png.js +0 -3
  211. package/es/shared/assets/img/file.png.js +0 -3
  212. package/es/shared/assets/img/logo.png.js +0 -3
  213. package/es/shared/assets/img/use.png.js +0 -3
@@ -0,0 +1,4 @@
1
+ import { AnyFn } from '../../../../../cnhis-design-vue/es/shared/types';
2
+
3
+ declare const useMP3: AnyFn;
4
+ export { useMP3 };
@@ -0,0 +1,343 @@
1
+ function useMP3(Recorder) {
2
+ Recorder.prototype.enc_mp3 = {
3
+ stable: true,
4
+ testmsg: "\u91C7\u6837\u7387\u8303\u56F448000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000"
5
+ };
6
+ Recorder.prototype.mp3 = function(res, True, False) {
7
+ var This = this, set = This.set, size = res.length;
8
+ var ctx = This.mp3_start(set);
9
+ if (ctx) {
10
+ This.mp3_encode(ctx, res);
11
+ This.mp3_complete(ctx, True, False, 1);
12
+ return;
13
+ }
14
+ var mp3 = new Recorder.lamejs.Mp3Encoder(1, set.sampleRate, set.bitRate);
15
+ var blockSize = 57600;
16
+ var data = [];
17
+ var idx = 0, mp3Size = 0;
18
+ var run = function() {
19
+ if (idx < size) {
20
+ var buf = mp3.encodeBuffer(res.subarray(idx, idx + blockSize));
21
+ if (buf.length > 0) {
22
+ mp3Size += buf.buffer.byteLength;
23
+ data.push(buf.buffer);
24
+ }
25
+ idx += blockSize;
26
+ setTimeout(run);
27
+ } else {
28
+ var buf = mp3.flush();
29
+ if (buf.length > 0) {
30
+ mp3Size += buf.buffer.byteLength;
31
+ data.push(buf.buffer);
32
+ }
33
+ var meta = mp3TrimFix.fn(data, mp3Size, size, set.sampleRate);
34
+ mp3TrimFixSetMeta(meta, set);
35
+ True(new Blob(data, { type: "audio/mp3" }));
36
+ }
37
+ };
38
+ run();
39
+ };
40
+ var mp3Worker;
41
+ Recorder.BindDestroy("mp3Worker", function() {
42
+ Recorder.CLog("mp3Worker Destroy");
43
+ mp3Worker && mp3Worker.terminate();
44
+ mp3Worker = null;
45
+ });
46
+ Recorder.prototype.mp3_envCheck = function(envInfo, set) {
47
+ var errMsg = "";
48
+ if (set.takeoffEncodeChunk) {
49
+ if (!envInfo.canProcess) {
50
+ errMsg = envInfo.envName + "\u73AF\u5883\u4E0D\u652F\u6301\u5B9E\u65F6\u5904\u7406";
51
+ } else if (!newContext()) {
52
+ errMsg = "\u5F53\u524D\u6D4F\u89C8\u5668\u7248\u672C\u592A\u4F4E\uFF0C\u65E0\u6CD5\u5B9E\u65F6\u5904\u7406";
53
+ }
54
+ }
55
+ return errMsg;
56
+ };
57
+ Recorder.prototype.mp3_start = function(set) {
58
+ return newContext(set);
59
+ };
60
+ var openList = { id: 0 };
61
+ var newContext = function(setOrNull) {
62
+ var worker = mp3Worker;
63
+ try {
64
+ if (!worker) {
65
+ var onmsg = function(e) {
66
+ var ed = e.data;
67
+ var cur = wk_ctxs[ed.id];
68
+ if (ed.action == "init") {
69
+ wk_ctxs[ed.id] = {
70
+ sampleRate: ed.sampleRate,
71
+ bitRate: ed.bitRate,
72
+ takeoff: ed.takeoff,
73
+ mp3Size: 0,
74
+ pcmSize: 0,
75
+ encArr: [],
76
+ encObj: new wk_lame.Mp3Encoder(1, ed.sampleRate, ed.bitRate)
77
+ };
78
+ } else if (!cur) {
79
+ return;
80
+ }
81
+ switch (ed.action) {
82
+ case "stop":
83
+ cur.encObj = null;
84
+ delete wk_ctxs[ed.id];
85
+ break;
86
+ case "encode":
87
+ cur.pcmSize += ed.pcm.length;
88
+ var buf = cur.encObj.encodeBuffer(ed.pcm);
89
+ if (buf.length > 0) {
90
+ if (cur.takeoff) {
91
+ self.postMessage({ action: "takeoff", id: ed.id, chunk: buf });
92
+ } else {
93
+ cur.mp3Size += buf.buffer.byteLength;
94
+ cur.encArr.push(buf.buffer);
95
+ }
96
+ }
97
+ break;
98
+ case "complete":
99
+ var buf = cur.encObj.flush();
100
+ if (buf.length > 0) {
101
+ if (cur.takeoff) {
102
+ self.postMessage({ action: "takeoff", id: ed.id, chunk: buf });
103
+ } else {
104
+ cur.mp3Size += buf.buffer.byteLength;
105
+ cur.encArr.push(buf.buffer);
106
+ }
107
+ }
108
+ var meta = wk_mp3TrimFix.fn(cur.encArr, cur.mp3Size, cur.pcmSize, cur.sampleRate);
109
+ self.postMessage({
110
+ action: ed.action,
111
+ id: ed.id,
112
+ blob: new Blob(cur.encArr, { type: "audio/mp3" }),
113
+ meta
114
+ });
115
+ break;
116
+ }
117
+ };
118
+ var jsCode = ");wk_lame();var wk_ctxs={};self.onmessage=" + onmsg;
119
+ jsCode += ";var wk_mp3TrimFix={rm:" + mp3TrimFix.rm + ",fn:" + mp3TrimFix.fn + "}";
120
+ var lamejsCode = Recorder.lamejs.toString();
121
+ var url = (window.URL || webkitURL).createObjectURL(
122
+ new Blob(["var wk_lame=(", lamejsCode, jsCode], { type: "text/javascript" })
123
+ );
124
+ worker = new Worker(url);
125
+ setTimeout(function() {
126
+ (window.URL || webkitURL).revokeObjectURL(url);
127
+ }, 1e4);
128
+ worker.onmessage = function(e) {
129
+ var data = e.data;
130
+ var ctx2 = openList[data.id];
131
+ if (ctx2) {
132
+ if (data.action == "takeoff") {
133
+ ctx2.set.takeoffEncodeChunk(new Uint8Array(data.chunk.buffer));
134
+ } else {
135
+ ctx2.call && ctx2.call(data);
136
+ ctx2.call = null;
137
+ }
138
+ }
139
+ };
140
+ }
141
+ var ctx = { worker, set: setOrNull, takeoffQueue: [] };
142
+ if (setOrNull) {
143
+ ctx.id = ++openList.id;
144
+ openList[ctx.id] = ctx;
145
+ worker.postMessage({
146
+ action: "init",
147
+ id: ctx.id,
148
+ sampleRate: setOrNull.sampleRate,
149
+ bitRate: setOrNull.bitRate,
150
+ takeoff: !!setOrNull.takeoffEncodeChunk,
151
+ x: new Int16Array(5)
152
+ });
153
+ } else {
154
+ worker.postMessage({
155
+ x: new Int16Array(5)
156
+ });
157
+ }
158
+ mp3Worker = worker;
159
+ return ctx;
160
+ } catch (e) {
161
+ worker && worker.terminate();
162
+ console.error(e);
163
+ return null;
164
+ }
165
+ };
166
+ Recorder.prototype.mp3_stop = function(startCtx) {
167
+ if (startCtx && startCtx.worker) {
168
+ startCtx.worker.postMessage({
169
+ action: "stop",
170
+ id: startCtx.id
171
+ });
172
+ startCtx.worker = null;
173
+ delete openList[startCtx.id];
174
+ var opens = -1;
175
+ for (var k in openList) {
176
+ opens++;
177
+ }
178
+ if (opens) {
179
+ Recorder.CLog("mp3 worker\u5269" + opens + "\u4E2A\u5728\u4E32\u884C\u7B49\u5F85", 3);
180
+ }
181
+ }
182
+ };
183
+ Recorder.prototype.mp3_encode = function(startCtx, pcm) {
184
+ if (startCtx && startCtx.worker) {
185
+ startCtx.worker.postMessage({
186
+ action: "encode",
187
+ id: startCtx.id,
188
+ pcm
189
+ });
190
+ }
191
+ };
192
+ Recorder.prototype.mp3_complete = function(startCtx, True, False, autoStop) {
193
+ var This = this;
194
+ if (startCtx && startCtx.worker) {
195
+ startCtx.call = function(data) {
196
+ mp3TrimFixSetMeta(data.meta, startCtx.set);
197
+ True(data.blob);
198
+ if (autoStop) {
199
+ This.mp3_stop(startCtx);
200
+ }
201
+ };
202
+ startCtx.worker.postMessage({
203
+ action: "complete",
204
+ id: startCtx.id
205
+ });
206
+ } else {
207
+ False("mp3\u7F16\u7801\u5668\u672A\u6253\u5F00");
208
+ }
209
+ };
210
+ Recorder.mp3ReadMeta = function(mp3Buffers, length) {
211
+ var parseInt_ES3 = typeof window == "object" ? window.parseInt : self.parseInt;
212
+ var u8arr0 = new Uint8Array(mp3Buffers[0] || []);
213
+ if (u8arr0.length < 4) {
214
+ return null;
215
+ }
216
+ var byteAt = function(idx2, u8) {
217
+ return ("0000000" + ((u8 || u8arr0)[idx2] || 0).toString(2)).substr(-8);
218
+ };
219
+ var b2 = byteAt(0) + byteAt(1);
220
+ var b4 = byteAt(2) + byteAt(3);
221
+ if (!/^1{11}/.test(b2)) {
222
+ return null;
223
+ }
224
+ var version = { "00": 2.5, 10: 2, 11: 1 }[b2.substr(11, 2)];
225
+ var layer = { "01": 3 }[b2.substr(13, 2)];
226
+ var sampleRate = {
227
+ 1: [44100, 48e3, 32e3],
228
+ 2: [22050, 24e3, 16e3],
229
+ 2.5: [11025, 12e3, 8e3]
230
+ }[version];
231
+ sampleRate && (sampleRate = sampleRate[parseInt_ES3(b4.substr(4, 2), 2)]);
232
+ var bitRate = [
233
+ [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160],
234
+ [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320]
235
+ ][version == 1 ? 1 : 0][parseInt_ES3(b4.substr(0, 4), 2)];
236
+ if (!version || !layer || !bitRate || !sampleRate) {
237
+ return null;
238
+ }
239
+ var duration = Math.round(length * 8 / bitRate);
240
+ var frame = layer == 1 ? 384 : layer == 2 ? 1152 : version == 1 ? 1152 : 576;
241
+ var frameDurationFloat = frame / sampleRate * 1e3;
242
+ var frameSize = Math.floor(frame * bitRate / 8 / sampleRate * 1e3);
243
+ var hasPadding = 0, seek = 0;
244
+ for (var i = 0; i < mp3Buffers.length; i++) {
245
+ var buf = mp3Buffers[i];
246
+ seek += buf.byteLength;
247
+ if (seek >= frameSize + 3) {
248
+ var buf8 = new Uint8Array(buf);
249
+ var idx = buf.byteLength - (seek - (frameSize + 3) + 1);
250
+ var ib4 = byteAt(idx, buf8);
251
+ hasPadding = ib4.charAt(6) == "1";
252
+ break;
253
+ }
254
+ }
255
+ if (hasPadding) {
256
+ frameSize++;
257
+ }
258
+ return {
259
+ version,
260
+ layer,
261
+ sampleRate,
262
+ bitRate,
263
+ duration,
264
+ size: length,
265
+ hasPadding,
266
+ frameSize,
267
+ frameDurationFloat
268
+ };
269
+ };
270
+ var mp3TrimFix = {
271
+ rm: Recorder.mp3ReadMeta,
272
+ fn: function(mp3Buffers, length, pcmLength, pcmSampleRate) {
273
+ var meta = this.rm(mp3Buffers, length);
274
+ if (!meta) {
275
+ return { err: "mp3\u975E\u9884\u5B9A\u683C\u5F0F" };
276
+ }
277
+ var pcmDuration = Math.round(pcmLength / pcmSampleRate * 1e3);
278
+ var num = Math.floor((meta.duration - pcmDuration) / meta.frameDurationFloat);
279
+ if (num > 0) {
280
+ var size = num * meta.frameSize - (meta.hasPadding ? 1 : 0);
281
+ length -= size;
282
+ var arr0 = 0, arrs = [];
283
+ for (var i = 0; i < mp3Buffers.length; i++) {
284
+ var arr = mp3Buffers[i];
285
+ if (size <= 0) {
286
+ break;
287
+ }
288
+ if (size >= arr.byteLength) {
289
+ size -= arr.byteLength;
290
+ arrs.push(arr);
291
+ mp3Buffers.splice(i, 1);
292
+ i--;
293
+ } else {
294
+ mp3Buffers[i] = arr.slice(size);
295
+ arr0 = arr;
296
+ size = 0;
297
+ }
298
+ }
299
+ var checkMeta = this.rm(mp3Buffers, length);
300
+ if (!checkMeta) {
301
+ arr0 && (mp3Buffers[0] = arr0);
302
+ for (var i = 0; i < arrs.length; i++) {
303
+ mp3Buffers.splice(i, 0, arrs[i]);
304
+ }
305
+ meta.err = "fix\u540E\u6570\u636E\u9519\u8BEF\uFF0C\u5DF2\u8FD8\u539F\uFF0C\u9519\u8BEF\u539F\u56E0\u4E0D\u660E";
306
+ }
307
+ var fix = meta.trimFix = {};
308
+ fix.remove = num;
309
+ fix.removeDuration = Math.round(num * meta.frameDurationFloat);
310
+ fix.duration = Math.round(length * 8 / meta.bitRate);
311
+ }
312
+ return meta;
313
+ }
314
+ };
315
+ var mp3TrimFixSetMeta = function(meta, set) {
316
+ var tag = "MP3\u4FE1\u606F ";
317
+ if (meta.sampleRate && meta.sampleRate != set.sampleRate || meta.bitRate && meta.bitRate != set.bitRate) {
318
+ Recorder.CLog(
319
+ tag + "\u548C\u8BBE\u7F6E\u7684\u4E0D\u5339\u914Dset:" + set.bitRate + "kbps " + set.sampleRate + "hz\uFF0C\u5DF2\u66F4\u65B0set:" + meta.bitRate + "kbps " + meta.sampleRate + "hz",
320
+ 3,
321
+ set
322
+ );
323
+ set.sampleRate = meta.sampleRate;
324
+ set.bitRate = meta.bitRate;
325
+ }
326
+ var trimFix = meta.trimFix;
327
+ if (trimFix) {
328
+ tag += "Fix\u79FB\u9664" + trimFix.remove + "\u5E27" + trimFix.removeDuration + "ms -> " + trimFix.duration + "ms";
329
+ if (trimFix.remove > 2) {
330
+ meta.err = (meta.err ? meta.err + ", " : "") + "\u79FB\u9664\u5E27\u6570\u8FC7\u591A";
331
+ }
332
+ } else {
333
+ tag += (meta.duration || "-") + "ms";
334
+ }
335
+ if (meta.err) {
336
+ Recorder.CLog(tag, 1, meta.err, meta);
337
+ } else {
338
+ Recorder.CLog(tag, meta);
339
+ }
340
+ };
341
+ }
342
+
343
+ export { useMP3 };
@@ -0,0 +1,4 @@
1
+ import { AnyFn } from '../../../../../cnhis-design-vue/es/shared/types';
2
+
3
+ declare const Recorder: AnyFn & { FrequencyHistogramView: any };
4
+ export default Recorder;