speechrecorderng 3.6.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/action/action.mjs +73 -0
- package/{esm2020 → esm2022}/lib/audio/array_audio_buffer.mjs +163 -163
- package/{esm2020 → esm2022}/lib/audio/array_audio_buffer_input_stream.mjs +85 -85
- package/{esm2020 → esm2022}/lib/audio/array_audio_buffer_random_access_stream.mjs +15 -15
- package/esm2022/lib/audio/audio_data_holder.mjs +264 -0
- package/{esm2020 → esm2022}/lib/audio/audio_display.mjs +93 -93
- package/{esm2020 → esm2022}/lib/audio/audio_player.mjs +213 -213
- package/esm2022/lib/audio/capture/capture.mjs +855 -0
- package/esm2022/lib/audio/context.mjs +79 -0
- package/{esm2020 → esm2022}/lib/audio/dsp/level_measure.mjs +515 -515
- package/{esm2020 → esm2022}/lib/audio/format.mjs +16 -16
- package/esm2022/lib/audio/impl/wavformat.mjs +6 -0
- package/{esm2020 → esm2022}/lib/audio/impl/wavreader.mjs +133 -133
- package/esm2022/lib/audio/impl/wavwriter.mjs +105 -0
- package/esm2022/lib/audio/inddb_audio_buffer.mjs +508 -0
- package/{esm2020 → esm2022}/lib/audio/io/stream.mjs +58 -58
- package/esm2022/lib/audio/net_audio_buffer.mjs +293 -0
- package/{esm2020 → esm2022}/lib/audio/persistor.mjs +80 -80
- package/{esm2020 → esm2022}/lib/audio/playback/array_audio_buffer_source_node.mjs +125 -125
- package/esm2022/lib/audio/playback/audio_source_node.mjs +18 -0
- package/esm2022/lib/audio/playback/audio_source_worklet_module_loader.mjs +167 -0
- package/{esm2020 → esm2022}/lib/audio/playback/inddb_audio_buffer_source_node.mjs +166 -166
- package/{esm2020 → esm2022}/lib/audio/playback/net_audio_buffer_source_node.mjs +217 -217
- package/esm2022/lib/audio/playback/player.mjs +402 -0
- package/esm2022/lib/audio/ui/audio_canvas_layer_comp.mjs +347 -0
- package/{esm2020 → esm2022}/lib/audio/ui/audio_display_control.mjs +65 -65
- package/{esm2020 → esm2022}/lib/audio/ui/audio_display_scroll_pane.mjs +139 -139
- package/{esm2020 → esm2022}/lib/audio/ui/audiosignal.mjs +524 -524
- package/{esm2020 → esm2022}/lib/audio/ui/common.mjs +18 -18
- package/esm2022/lib/audio/ui/container.mjs +414 -0
- package/{esm2020 → esm2022}/lib/audio/ui/livelevel.mjs +352 -352
- package/esm2022/lib/audio/ui/scroll_pane_horizontal.mjs +11 -0
- package/esm2022/lib/audio/ui/sonagram.mjs +900 -0
- package/esm2022/lib/db/inddb.mjs +120 -0
- package/esm2022/lib/dsp/utils.mjs +48 -0
- package/{esm2020 → esm2022}/lib/io/BinaryReader.mjs +84 -84
- package/esm2022/lib/io/BinaryWriter.mjs +74 -0
- package/{esm2020 → esm2022}/lib/io/stream.mjs +258 -258
- package/{esm2020 → esm2022}/lib/math/2d/geometry.mjs +27 -27
- package/esm2022/lib/math/complex.mjs +58 -0
- package/{esm2020 → esm2022}/lib/math/dft.mjs +195 -195
- package/{esm2020 → esm2022}/lib/media/utils.mjs +13 -13
- package/esm2022/lib/net/uploader.mjs +367 -0
- package/{esm2020 → esm2022}/lib/recorder_component.mjs +64 -64
- package/esm2022/lib/speechrecorder/project/project.mjs +49 -0
- package/esm2022/lib/speechrecorder/project/project.service.mjs +64 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/recording.mjs +123 -123
- package/esm2022/lib/speechrecorder/recordings/basic_recording.service.mjs +218 -0
- package/esm2022/lib/speechrecorder/recordings/recordings.service.mjs +1014 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/script/script.mjs +114 -114
- package/{esm2020 → esm2022}/lib/speechrecorder/script/script.service.mjs +47 -47
- package/esm2022/lib/speechrecorder/session/audiorecorder.mjs +1179 -0
- package/esm2022/lib/speechrecorder/session/basicrecorder.mjs +668 -0
- package/esm2022/lib/speechrecorder/session/controlpanel.mjs +416 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/session/item.mjs +29 -29
- package/{esm2020 → esm2022}/lib/speechrecorder/session/progress.mjs +69 -69
- package/{esm2020 → esm2022}/lib/speechrecorder/session/prompting.mjs +571 -571
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recorder_combi_pane.mjs +65 -65
- package/esm2022/lib/speechrecorder/session/recording_file_cache.mjs +195 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recording_list.mjs +103 -103
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +63 -63
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +51 -51
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +104 -104
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +381 -381
- package/{esm2020 → esm2022}/lib/speechrecorder/session/recordingfile/recording-file.mjs +67 -67
- package/esm2022/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +288 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/session/session.mjs +1 -1
- package/esm2022/lib/speechrecorder/session/session.service.mjs +69 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/session/session_finished_dialog.mjs +29 -29
- package/esm2022/lib/speechrecorder/session/sessionmanager.mjs +1386 -0
- package/{esm2020 → esm2022}/lib/speechrecorder/session/warning_bar.mjs +28 -28
- package/{esm2020 → esm2022}/lib/speechrecorder/spruploader.mjs +22 -22
- package/{esm2020 → esm2022}/lib/speechrecorder/startstopsignal/startstopsignal.mjs +1 -1
- package/esm2022/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +57 -0
- package/{esm2020 → esm2022}/lib/speechrecorderng.component.mjs +388 -388
- package/{esm2020 → esm2022}/lib/speechrecorderng.module.mjs +100 -100
- package/{esm2020 → esm2022}/lib/spr.config.mjs +26 -26
- package/{esm2020 → esm2022}/lib/spr.module.version.mjs +2 -2
- package/{esm2020 → esm2022}/lib/ui/canvas_layer_comp.mjs +38 -38
- package/{esm2020 → esm2022}/lib/ui/message_dialog.mjs +30 -30
- package/esm2022/lib/ui/recordingitem_display.mjs +253 -0
- package/{esm2020 → esm2022}/lib/ui/responsive_component.mjs +24 -24
- package/{esm2020 → esm2022}/lib/utils/scrollIntoViewToBottom.mjs +23 -23
- package/esm2022/lib/utils/ua-parser.mjs +190 -0
- package/esm2022/lib/utils/utils.mjs +105 -0
- package/esm2022/lib/utils/wake_lock.mjs +114 -0
- package/{esm2020 → esm2022}/lib/utils/wake_lock_media.mjs +1 -1
- package/{esm2020 → esm2022}/public-api.mjs +33 -33
- package/{esm2020 → esm2022}/speechrecorderng.mjs +4 -4
- package/{fesm2020 → fesm2022}/speechrecorderng.mjs +16518 -16454
- package/fesm2022/speechrecorderng.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/action/action.d.ts +27 -27
- package/lib/audio/array_audio_buffer.d.ts +31 -31
- package/lib/audio/array_audio_buffer_input_stream.d.ts +14 -14
- package/lib/audio/array_audio_buffer_random_access_stream.d.ts +9 -9
- package/lib/audio/audio_data_holder.d.ts +84 -84
- package/lib/audio/audio_display.d.ts +36 -36
- package/lib/audio/audio_player.d.ts +47 -47
- package/lib/audio/capture/capture.d.ts +67 -67
- package/lib/audio/context.d.ts +6 -6
- package/lib/audio/dsp/level_measure.d.ts +60 -60
- package/lib/audio/format.d.ts +11 -11
- package/lib/audio/impl/wavformat.d.ts +5 -5
- package/lib/audio/impl/wavreader.d.ts +16 -16
- package/lib/audio/impl/wavwriter.d.ts +13 -13
- package/lib/audio/inddb_audio_buffer.d.ts +68 -68
- package/lib/audio/io/stream.d.ts +28 -28
- package/lib/audio/net_audio_buffer.d.ts +57 -57
- package/lib/audio/persistor.d.ts +29 -29
- package/lib/audio/playback/array_audio_buffer_source_node.d.ts +18 -18
- package/lib/audio/playback/audio_source_node.d.ts +10 -10
- package/lib/audio/playback/audio_source_worklet_module_loader.d.ts +4 -4
- package/lib/audio/playback/inddb_audio_buffer_source_node.d.ts +21 -21
- package/lib/audio/playback/net_audio_buffer_source_node.d.ts +27 -27
- package/lib/audio/playback/player.d.ts +65 -65
- package/lib/audio/ui/audio_canvas_layer_comp.d.ts +68 -68
- package/lib/audio/ui/audio_display_control.d.ts +25 -25
- package/lib/audio/ui/audio_display_scroll_pane.d.ts +26 -26
- package/lib/audio/ui/audiosignal.d.ts +30 -30
- package/lib/audio/ui/common.d.ts +11 -11
- package/lib/audio/ui/container.d.ts +63 -63
- package/lib/audio/ui/livelevel.d.ts +60 -60
- package/lib/audio/ui/scroll_pane_horizontal.d.ts +5 -5
- package/lib/audio/ui/sonagram.d.ts +37 -37
- package/lib/db/inddb.d.ts +21 -21
- package/lib/dsp/utils.d.ts +19 -19
- package/lib/io/BinaryReader.d.ts +18 -18
- package/lib/io/BinaryWriter.d.ts +15 -15
- package/lib/io/stream.d.ts +59 -59
- package/lib/math/2d/geometry.d.ts +18 -18
- package/lib/math/complex.d.ts +17 -17
- package/lib/math/dft.d.ts +22 -22
- package/lib/media/utils.d.ts +3 -3
- package/lib/net/uploader.d.ts +81 -81
- package/lib/recorder_component.d.ts +16 -16
- package/lib/speechrecorder/project/project.d.ts +59 -59
- package/lib/speechrecorder/project/project.service.d.ts +21 -21
- package/lib/speechrecorder/recording.d.ts +51 -51
- package/lib/speechrecorder/recordings/basic_recording.service.d.ts +27 -27
- package/lib/speechrecorder/recordings/recordings.service.d.ts +48 -48
- package/lib/speechrecorder/script/script.d.ts +80 -79
- package/lib/speechrecorder/script/script.service.d.ts +16 -16
- package/lib/speechrecorder/session/audiorecorder.d.ts +122 -122
- package/lib/speechrecorder/session/basicrecorder.d.ts +139 -139
- package/lib/speechrecorder/session/controlpanel.d.ts +109 -107
- package/lib/speechrecorder/session/item.d.ts +12 -12
- package/lib/speechrecorder/session/progress.d.ts +17 -17
- package/lib/speechrecorder/session/prompting.d.ts +121 -121
- package/lib/speechrecorder/session/recorder_combi_pane.d.ts +32 -32
- package/lib/speechrecorder/session/recording_file_cache.d.ts +33 -33
- package/lib/speechrecorder/session/recording_list.d.ts +24 -24
- package/lib/speechrecorder/session/recordingfile/recording-file-meta.component.d.ts +15 -15
- package/lib/speechrecorder/session/recordingfile/recording-file-navi.component.d.ts +20 -20
- package/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.d.ts +31 -31
- package/lib/speechrecorder/session/recordingfile/recording-file-view.component.d.ts +55 -55
- package/lib/speechrecorder/session/recordingfile/recording-file.d.ts +7 -7
- package/lib/speechrecorder/session/recordingfile/recordingfile-service.d.ts +24 -24
- package/lib/speechrecorder/session/session.d.ts +15 -15
- package/lib/speechrecorder/session/session.service.d.ts +20 -20
- package/lib/speechrecorder/session/session_finished_dialog.d.ts +10 -10
- package/lib/speechrecorder/session/sessionmanager.d.ts +129 -123
- package/lib/speechrecorder/session/warning_bar.d.ts +8 -8
- package/lib/speechrecorder/spruploader.d.ts +11 -11
- package/lib/speechrecorder/startstopsignal/startstopsignal.d.ts +10 -10
- package/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.d.ts +11 -11
- package/lib/speechrecorderng.component.d.ts +61 -61
- package/lib/speechrecorderng.module.d.ts +56 -56
- package/lib/spr.config.d.ts +17 -17
- package/lib/spr.module.version.d.ts +1 -1
- package/lib/ui/canvas_layer_comp.d.ts +13 -13
- package/lib/ui/message_dialog.d.ts +10 -10
- package/lib/ui/recordingitem_display.d.ts +84 -84
- package/lib/ui/responsive_component.d.ts +9 -9
- package/lib/utils/scrollIntoViewToBottom.d.ts +9 -9
- package/lib/utils/ua-parser.d.ts +43 -43
- package/lib/utils/utils.d.ts +19 -19
- package/lib/utils/wake_lock.d.ts +23 -23
- package/lib/utils/wake_lock_media.d.ts +1 -1
- package/package.json +17 -23
- package/public-api.d.ts +33 -33
- package/esm2020/lib/action/action.mjs +0 -73
- package/esm2020/lib/audio/audio_data_holder.mjs +0 -264
- package/esm2020/lib/audio/capture/capture.mjs +0 -855
- package/esm2020/lib/audio/context.mjs +0 -79
- package/esm2020/lib/audio/impl/wavformat.mjs +0 -6
- package/esm2020/lib/audio/impl/wavwriter.mjs +0 -105
- package/esm2020/lib/audio/inddb_audio_buffer.mjs +0 -508
- package/esm2020/lib/audio/net_audio_buffer.mjs +0 -293
- package/esm2020/lib/audio/playback/audio_source_node.mjs +0 -18
- package/esm2020/lib/audio/playback/audio_source_worklet_module_loader.mjs +0 -167
- package/esm2020/lib/audio/playback/player.mjs +0 -402
- package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +0 -347
- package/esm2020/lib/audio/ui/container.mjs +0 -414
- package/esm2020/lib/audio/ui/scroll_pane_horizontal.mjs +0 -11
- package/esm2020/lib/audio/ui/sonagram.mjs +0 -900
- package/esm2020/lib/db/inddb.mjs +0 -120
- package/esm2020/lib/dsp/utils.mjs +0 -48
- package/esm2020/lib/io/BinaryWriter.mjs +0 -74
- package/esm2020/lib/math/complex.mjs +0 -58
- package/esm2020/lib/net/uploader.mjs +0 -367
- package/esm2020/lib/speechrecorder/project/project.mjs +0 -49
- package/esm2020/lib/speechrecorder/project/project.service.mjs +0 -64
- package/esm2020/lib/speechrecorder/recordings/basic_recording.service.mjs +0 -216
- package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +0 -1014
- package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +0 -1179
- package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +0 -666
- package/esm2020/lib/speechrecorder/session/controlpanel.mjs +0 -409
- package/esm2020/lib/speechrecorder/session/recording_file_cache.mjs +0 -195
- package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +0 -288
- package/esm2020/lib/speechrecorder/session/session.service.mjs +0 -69
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +0 -1333
- package/esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +0 -57
- package/esm2020/lib/ui/recordingitem_display.mjs +0 -253
- package/esm2020/lib/utils/ua-parser.mjs +0 -190
- package/esm2020/lib/utils/utils.mjs +0 -105
- package/esm2020/lib/utils/wake_lock.mjs +0 -114
- package/fesm2015/speechrecorderng.mjs +0 -17708
- package/fesm2015/speechrecorderng.mjs.map +0 -1
- package/fesm2020/speechrecorderng.mjs.map +0 -1
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
export class PromptDocUtil {
|
|
2
|
-
static toPlainTextString(promptDoc) {
|
|
3
|
-
let pt = "";
|
|
4
|
-
let b = promptDoc.body;
|
|
5
|
-
if (b != null) {
|
|
6
|
-
let blks = b.blocks;
|
|
7
|
-
if (blks) {
|
|
8
|
-
for (let bli = 0; bli < blks.length; bli++) {
|
|
9
|
-
let blk = blks[bli];
|
|
10
|
-
let txts = blk.texts;
|
|
11
|
-
for (let ti = 0; ti < txts.length; ti++) {
|
|
12
|
-
let txtEl = txts[ti];
|
|
13
|
-
let txt = txtEl.text;
|
|
14
|
-
if (txtEl.type === 'font') {
|
|
15
|
-
if (typeof txt === 'string') {
|
|
16
|
-
pt = pt.concat(txt);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
let subTxtEl = txt;
|
|
20
|
-
let subTxt = subTxtEl.text;
|
|
21
|
-
if (typeof subTxt === 'string') {
|
|
22
|
-
pt = pt.concat(subTxt);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
else if (typeof txt === 'string') {
|
|
27
|
-
pt = pt.concat(txt);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return pt;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export class MediaitemUtil {
|
|
37
|
-
static toPlainTextString(mediaitem) {
|
|
38
|
-
let txt = mediaitem.text;
|
|
39
|
-
let pd = mediaitem.promptDoc;
|
|
40
|
-
if (txt == null) {
|
|
41
|
-
let pt = null;
|
|
42
|
-
if (pd != null) {
|
|
43
|
-
pt = PromptDocUtil.toPlainTextString(pd);
|
|
44
|
-
}
|
|
45
|
-
return pt;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return txt;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
static description(mi) {
|
|
52
|
-
let description = "";
|
|
53
|
-
if (mi.alt != null) {
|
|
54
|
-
description = description.concat(mi.alt);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
let src = mi.src;
|
|
58
|
-
let mimeType = mi.mimetype;
|
|
59
|
-
if (!mimeType) {
|
|
60
|
-
mimeType = 'text/plain';
|
|
61
|
-
}
|
|
62
|
-
if (mimeType.startsWith("image")) {
|
|
63
|
-
description = description.concat("IMAGE: ");
|
|
64
|
-
}
|
|
65
|
-
else if (mimeType.startsWith("audio")) {
|
|
66
|
-
description = description.concat("AUDIO: ");
|
|
67
|
-
}
|
|
68
|
-
else if (mimeType.startsWith("video")) {
|
|
69
|
-
description = description.concat("VIDEO: ");
|
|
70
|
-
}
|
|
71
|
-
let promptText = MediaitemUtil.toPlainTextString(mi);
|
|
72
|
-
if (promptText != null) {
|
|
73
|
-
description = description.concat(promptText);
|
|
74
|
-
}
|
|
75
|
-
else if (src != null) {
|
|
76
|
-
let srcPn;
|
|
77
|
-
try {
|
|
78
|
-
let srcUrl = new URL(src);
|
|
79
|
-
srcPn = srcUrl.pathname;
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
srcPn = src;
|
|
83
|
-
}
|
|
84
|
-
// Get filename without extension
|
|
85
|
-
let srcFnM = srcPn.match(/([^\/]*)$/);
|
|
86
|
-
if (srcFnM && srcFnM.length == 2) {
|
|
87
|
-
let srcFn = srcFnM[1];
|
|
88
|
-
let srcFnNm = srcFn.replace(/[\.][^\.]*/, '');
|
|
89
|
-
description = description.concat(srcFnNm);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return description;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
export class PromptitemUtil {
|
|
97
|
-
static toPlainTextString(promptItem) {
|
|
98
|
-
let mis = promptItem.mediaitems;
|
|
99
|
-
let description = "";
|
|
100
|
-
if (mis) {
|
|
101
|
-
let misSize = mis.length;
|
|
102
|
-
for (let i = 0; i < misSize; i++) {
|
|
103
|
-
let mi = mis[i];
|
|
104
|
-
description = description.concat(MediaitemUtil.description(mi));
|
|
105
|
-
if (i + 1 < misSize) {
|
|
106
|
-
// not last item
|
|
107
|
-
description = description.concat(", ");
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return description;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3NjcmlwdC9zY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUZBLE1BQU0sT0FBTyxhQUFhO0lBRXhCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFtQjtRQUMxQyxJQUFJLEVBQUUsR0FBQyxFQUFFLENBQUM7UUFDVixJQUFJLENBQUMsR0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUcsQ0FBQyxJQUFFLElBQUksRUFBRTtZQUNWLElBQUksSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFDakIsSUFBRyxJQUFJLEVBQUU7Z0JBQ1AsS0FBSSxJQUFJLEdBQUcsR0FBQyxDQUFDLEVBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLEVBQUM7b0JBQ2xDLElBQUksR0FBRyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEIsSUFBSSxJQUFJLEdBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDbkIsS0FBSSxJQUFJLEVBQUUsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsRUFBRSxFQUFFLEVBQUM7d0JBQzdCLElBQUksS0FBSyxHQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDbkIsSUFBSSxHQUFHLEdBQUUsS0FBSyxDQUFDLElBQUksQ0FBQzt3QkFDdEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBQzs0QkFDeEIsSUFBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUM7Z0NBQ3pCLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFTLEdBQUcsQ0FBQyxDQUFDOzZCQUM3QjtpQ0FBSTtnQ0FDSCxJQUFJLFFBQVEsR0FBTyxHQUFHLENB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Q3BCLElBQUksT0FBTyxHQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMzQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0M7YUFDRjtTQUNGO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFDekIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFVBQXNCO1FBRTdDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDaEMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksR0FBRyxFQUFFO1lBRVAsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRTtvQkFDbkIsZ0JBQWdCO29CQUNoQixXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSBcIk1BTlVBTFwiIHwgXCJBVVRPUFJPR1JFU1NcIiB8IFwiQVVUT1JFQ09SRElOR1wiO1xyXG5leHBvcnQgdHlwZSBQcm9tcHRQaGFzZSA9IFwiSURMRVwiIHwgXCJQUkVSRUNPUkRJTkdcIiB8IFwiUFJFUkVDT1JESU5HT05MWVwiIHwgXCJSRUNPUkRJTkdcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE9yZGVyID0gJ1NFUVVFTlRJQUwnIHwgJ1JBTkRPTScgfCAnUkFORE9NSVpFRCc7XHJcblxyXG5leHBvcnQgdHlwZSBEZWNvcmF0aW9uID0ndW5kZXJsaW5lJ1xyXG5leHBvcnQgdHlwZSBTdHlsZSA9J2l0YWxpYycgfCAnbm9ybWFsJ1xyXG5leHBvcnQgdHlwZSBGb250V2VpZ2h0PSdub3JtYWwnIHwgJ2JvbGQnXHJcbmV4cG9ydCB0eXBlIEJsb2NrVHlwZT0ncCc7XHJcbmV4cG9ydCB0eXBlIFRleHRUeXBlPSd0ZXh0JyB8ICdmb250JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVjaW5zdHJ1Y3Rpb25ze1xyXG4gIHJlY2luc3RydWN0aW9uczpzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGV4dCB7XHJcbiAgdHlwZTogVGV4dFR5cGUsXHJcbiAgY29sb3I/IDogc3RyaW5nLFxyXG4gIGRlY29yYXRpb24/IDogRGVjb3JhdGlvbixcclxuICBzaXplPzogc3RyaW5nLFxyXG4gIHdlaWdodD86IEZvbnRXZWlnaHQsXHJcbiAgc3R5bGU/OiBTdHlsZSxcclxuICB0ZXh0IDogc3RyaW5nIHwgVGV4dDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCbG9jayB7XHJcbiAgdHlwZTogQmxvY2tUeXBlLFxyXG4gIHRleHRzOiBBcnJheTxUZXh0PlxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQm9keXtcclxuICBibG9ja3M/OiBBcnJheTxCbG9jaz4sXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0RG9je1xyXG4gIGJvZHk/OiBCb2R5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVkaWFpdGVtIHtcclxuICB0ZXh0Pzogc3RyaW5nLFxyXG4gIHNyYz86IHN0cmluZyxcclxuICBwcm9tcHREb2M/OiBQcm9tcHREb2MsXHJcbiAgbWltZXR5cGU/OnN0cmluZyxcclxuICBkZWZhdWx0VmlydHVhbFZpZXdCb3g/OlZpcnR1YWxWaWV3Qm94LFxyXG4gIGFsdD86c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0SXRlbSB7XHJcbiAgdHlwZT86c3RyaW5nO1xyXG4gIGl0ZW1jb2RlPzogc3RyaW5nLFxyXG4gIHByZXJlY2RlbGF5PzogbnVtYmVyLFxyXG4gIHByZXJlY29yZGluZz86IG51bWJlcixcclxuICByZWNkdXJhdGlvbj86IG51bWJlcixcclxuICBwb3N0cmVjb3JkaW5nPzogbnVtYmVyLFxyXG4gIHBvc3RyZWNkZWxheT86IG51bWJlcixcclxuICByZWNpbnN0cnVjdGlvbnM/OiBSZWNpbnN0cnVjdGlvbnMsXHJcbiAgbWVkaWFpdGVtczogQXJyYXk8TWVkaWFpdGVtPlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIHtcclxuICBvcmRlcj86T3JkZXI7XHJcbiAgcHJvbXB0SXRlbXM6IEFycmF5PFByb21wdEl0ZW0+O1xyXG4gIF9zaHVmZmxlZFByb21wdEl0ZW1zOiBBcnJheTxQcm9tcHRJdGVtPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWN0aW9uIHtcclxuICBtb2RlOiBNb2RlO1xyXG4gIHByb21wdHBoYXNlOiBQcm9tcHRQaGFzZTtcclxuICBvcmRlcj86IE9yZGVyO1xyXG4gIHRyYWluaW5nOiBib29sZWFuO1xyXG4gIGdyb3VwczogQXJyYXk8R3JvdXA+O1xyXG4gIF9zaHVmZmxlZEdyb3VwczogQXJyYXk8R3JvdXA+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxWaWV3Qm94e1xyXG4gIGhlaWdodDpudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0IHtcclxuICB2aXJ0dWFsVmlld0JveD86VmlydHVhbFZpZXdCb3g7XHJcbiAgc2VjdGlvbnM6IEFycmF5PFNlY3Rpb24+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvbXB0RG9jVXRpbHtcclxuXHJcbiAgc3RhdGljIHRvUGxhaW5UZXh0U3RyaW5nKHByb21wdERvYzpQcm9tcHREb2MpOnN0cmluZ3tcclxuICAgIGxldCBwdD1cIlwiO1xyXG4gICAgbGV0IGI9cHJvbXB0RG9jLmJvZHk7XHJcbiAgICBpZihiIT1udWxsKSB7XHJcbiAgICAgIGxldCBibGtzPWIuYmxvY2tzXHJcbiAgICAgIGlmKGJsa3MpIHtcclxuICAgICAgICBmb3IobGV0IGJsaT0wO2JsaTxibGtzLmxlbmd0aDtibGkrKyl7XHJcbiAgICAgICAgICBsZXQgYmxrPWJsa3NbYmxpXTtcclxuICAgICAgICAgIGxldCB0eHRzPWJsay50ZXh0cztcclxuICAgICAgICAgIGZvcihsZXQgdGk9MDt0aTx0eHRzLmxlbmd0aDt0aSsrKXtcclxuICAgICAgICAgICAgICBsZXQgdHh0RWw9dHh0c1t0aV07XHJcbiAgICAgICAgICAgICAgbGV0IHR4dCA9dHh0RWwudGV4dDtcclxuICAgICAgICAgICAgaWYoIHR4dEVsLnR5cGUgPT09ICdmb250Jyl7XHJcbiAgICAgICAgICAgICAgaWYodHlwZW9mIHR4dCA9PT0gJ3N0cmluZycpe1xyXG4gICAgICAgICAgICAgICAgcHQgPSBwdC5jb25jYXQoPHN0cmluZz50eHQpO1xyXG4gICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgbGV0IHN1YlR4dEVsPTxUZXh0PnR4dDtcclxuICAgICAgICAgICAgICAgIGxldCBzdWJUeHQ9c3ViVHh0RWwudGV4dDtcclxuICAgICAgICAgICAgICAgIGlmKHR5cGVvZiBzdWJUeHQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHB0PXB0LmNvbmNhdChzdWJUeHQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWVsc2UgaWYodHlwZW9mIHR4dCA9PT0gJ3N0cmluZycpe1xyXG4gICAgICAgICAgICAgIHB0ID0gcHQuY29uY2F0KDxzdHJpbmc+dHh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHB0O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1lZGlhaXRlbVV0aWwge1xyXG4gIHN0YXRpYyB0b1BsYWluVGV4dFN0cmluZyhtZWRpYWl0ZW06IE1lZGlhaXRlbSk6IHN0cmluZ3xudWxsIHtcclxuXHJcbiAgICBsZXQgdHh0ID0gbWVkaWFpdGVtLnRleHQ7XHJcbiAgICBsZXQgcGQgPSBtZWRpYWl0ZW0ucHJvbXB0RG9jO1xyXG4gICAgaWYgKHR4dCA9PSBudWxsKSB7XHJcbiAgICAgIGxldCBwdCA9IG51bGw7XHJcbiAgICAgIGlmIChwZCAhPSBudWxsKSB7XHJcbiAgICAgICAgcHQgPSBQcm9tcHREb2NVdGlsLnRvUGxhaW5UZXh0U3RyaW5nKHBkKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHh0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRlc2NyaXB0aW9uKG1pOiBNZWRpYWl0ZW0pOiBzdHJpbmcge1xyXG4gICAgbGV0IGRlc2NyaXB0aW9uID0gXCJcIjtcclxuXHJcbiAgICBpZiAobWkuYWx0ICE9IG51bGwpIHtcclxuICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5jb25jYXQobWkuYWx0KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHNyYyA9IG1pLnNyYztcclxuICAgICAgbGV0IG1pbWVUeXBlID0gbWkubWltZXR5cGU7XHJcbiAgICAgIGlmICghbWltZVR5cGUpIHtcclxuICAgICAgICBtaW1lVHlwZSA9ICd0ZXh0L3BsYWluJztcclxuICAgICAgfVxyXG4gICAgICBpZiAobWltZVR5cGUuc3RhcnRzV2l0aChcImltYWdlXCIpKSB7XHJcbiAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5jb25jYXQoXCJJTUFHRTogXCIpO1xyXG4gICAgICB9IGVsc2UgaWYgKG1pbWVUeXBlLnN0YXJ0c1dpdGgoXCJhdWRpb1wiKSkge1xyXG4gICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uY29uY2F0KFwiQVVESU86IFwiKTtcclxuICAgICAgfSBlbHNlIGlmIChtaW1lVHlwZS5zdGFydHNXaXRoKFwidmlkZW9cIikpIHtcclxuICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmNvbmNhdChcIlZJREVPOiBcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHByb21wdFRleHQgPSBNZWRpYWl0ZW1VdGlsLnRvUGxhaW5UZXh0U3RyaW5nKG1pKTtcclxuICAgICAgaWYgKHByb21wdFRleHQgIT0gbnVsbCkge1xyXG4gICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uY29uY2F0KHByb21wdFRleHQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHNyYyAhPSBudWxsKSB7XHJcbiAgICAgICAgbGV0IHNyY1BuO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBsZXQgc3JjVXJsID0gbmV3IFVSTChzcmMpO1xyXG4gICAgICAgICAgc3JjUG49c3JjVXJsLnBhdGhuYW1lO1xyXG4gICAgICAgIH1jYXRjaHtcclxuICAgICAgICAgIHNyY1BuPXNyYztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEdldCBmaWxlbmFtZSB3aXRob3V0IGV4dGVuc2lvblxyXG4gICAgICAgIGxldCBzcmNGbk09c3JjUG4ubWF0Y2goLyhbXlxcL10qKSQvKTtcclxuICAgICAgICBpZihzcmNGbk0gJiYgc3JjRm5NLmxlbmd0aD09Mil7XHJcbiAgICAgICAgICBsZXQgc3JjRm49c3JjRm5NWzFdO1xyXG4gICAgICAgICAgbGV0IHNyY0ZuTm09c3JjRm4ucmVwbGFjZSgvW1xcLl1bXlxcLl0qLywnJyk7XHJcbiAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmNvbmNhdChzcmNGbk5tKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkZXNjcmlwdGlvbjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRpdGVtVXRpbCB7XHJcbiAgc3RhdGljIHRvUGxhaW5UZXh0U3RyaW5nKHByb21wdEl0ZW06IFByb21wdEl0ZW0pOiBzdHJpbmcge1xyXG5cclxuICAgIGxldCBtaXMgPSBwcm9tcHRJdGVtLm1lZGlhaXRlbXM7XHJcbiAgICBsZXQgZGVzY3JpcHRpb24gPSBcIlwiO1xyXG4gICAgaWYgKG1pcykge1xyXG5cclxuICAgICAgbGV0IG1pc1NpemUgPSBtaXMubGVuZ3RoO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pc1NpemU7IGkrKykge1xyXG4gICAgICAgIGxldCBtaSA9IG1pc1tpXTtcclxuICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmNvbmNhdChNZWRpYWl0ZW1VdGlsLmRlc2NyaXB0aW9uKG1pKSk7XHJcbiAgICAgICAgaWYgKGkgKyAxIDwgbWlzU2l6ZSkge1xyXG4gICAgICAgICAgLy8gbm90IGxhc3QgaXRlbVxyXG4gICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5jb25jYXQoXCIsIFwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkZXNjcmlwdGlvbjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
1
|
+
export class PromptDocUtil {
|
|
2
|
+
static toPlainTextString(promptDoc) {
|
|
3
|
+
let pt = "";
|
|
4
|
+
let b = promptDoc.body;
|
|
5
|
+
if (b != null) {
|
|
6
|
+
let blks = b.blocks;
|
|
7
|
+
if (blks) {
|
|
8
|
+
for (let bli = 0; bli < blks.length; bli++) {
|
|
9
|
+
let blk = blks[bli];
|
|
10
|
+
let txts = blk.texts;
|
|
11
|
+
for (let ti = 0; ti < txts.length; ti++) {
|
|
12
|
+
let txtEl = txts[ti];
|
|
13
|
+
let txt = txtEl.text;
|
|
14
|
+
if (txtEl.type === 'font') {
|
|
15
|
+
if (typeof txt === 'string') {
|
|
16
|
+
pt = pt.concat(txt);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
let subTxtEl = txt;
|
|
20
|
+
let subTxt = subTxtEl.text;
|
|
21
|
+
if (typeof subTxt === 'string') {
|
|
22
|
+
pt = pt.concat(subTxt);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (typeof txt === 'string') {
|
|
27
|
+
pt = pt.concat(txt);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return pt;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class MediaitemUtil {
|
|
37
|
+
static toPlainTextString(mediaitem) {
|
|
38
|
+
let txt = mediaitem.text;
|
|
39
|
+
let pd = mediaitem.promptDoc;
|
|
40
|
+
if (txt == null) {
|
|
41
|
+
let pt = null;
|
|
42
|
+
if (pd != null) {
|
|
43
|
+
pt = PromptDocUtil.toPlainTextString(pd);
|
|
44
|
+
}
|
|
45
|
+
return pt;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return txt;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
static description(mi) {
|
|
52
|
+
let description = "";
|
|
53
|
+
if (mi.alt != null) {
|
|
54
|
+
description = description.concat(mi.alt);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
let src = mi.src;
|
|
58
|
+
let mimeType = mi.mimetype;
|
|
59
|
+
if (!mimeType) {
|
|
60
|
+
mimeType = 'text/plain';
|
|
61
|
+
}
|
|
62
|
+
if (mimeType.startsWith("image")) {
|
|
63
|
+
description = description.concat("IMAGE: ");
|
|
64
|
+
}
|
|
65
|
+
else if (mimeType.startsWith("audio")) {
|
|
66
|
+
description = description.concat("AUDIO: ");
|
|
67
|
+
}
|
|
68
|
+
else if (mimeType.startsWith("video")) {
|
|
69
|
+
description = description.concat("VIDEO: ");
|
|
70
|
+
}
|
|
71
|
+
let promptText = MediaitemUtil.toPlainTextString(mi);
|
|
72
|
+
if (promptText != null) {
|
|
73
|
+
description = description.concat(promptText);
|
|
74
|
+
}
|
|
75
|
+
else if (src != null) {
|
|
76
|
+
let srcPn;
|
|
77
|
+
try {
|
|
78
|
+
let srcUrl = new URL(src);
|
|
79
|
+
srcPn = srcUrl.pathname;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
srcPn = src;
|
|
83
|
+
}
|
|
84
|
+
// Get filename without extension
|
|
85
|
+
let srcFnM = srcPn.match(/([^\/]*)$/);
|
|
86
|
+
if (srcFnM && srcFnM.length == 2) {
|
|
87
|
+
let srcFn = srcFnM[1];
|
|
88
|
+
let srcFnNm = srcFn.replace(/[\.][^\.]*/, '');
|
|
89
|
+
description = description.concat(srcFnNm);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return description;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export class PromptitemUtil {
|
|
97
|
+
static toPlainTextString(promptItem) {
|
|
98
|
+
let mis = promptItem.mediaitems;
|
|
99
|
+
let description = "";
|
|
100
|
+
if (mis) {
|
|
101
|
+
let misSize = mis.length;
|
|
102
|
+
for (let i = 0; i < misSize; i++) {
|
|
103
|
+
let mi = mis[i];
|
|
104
|
+
description = description.concat(MediaitemUtil.description(mi));
|
|
105
|
+
if (i + 1 < misSize) {
|
|
106
|
+
// not last item
|
|
107
|
+
description = description.concat(", ");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return description;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3NjcmlwdC9zY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0ZBLE1BQU0sT0FBTyxhQUFhO0lBRXhCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFtQjtRQUMxQyxJQUFJLEVBQUUsR0FBQyxFQUFFLENBQUM7UUFDVixJQUFJLENBQUMsR0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUcsQ0FBQyxJQUFFLElBQUksRUFBRTtZQUNWLElBQUksSUFBSSxHQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFDakIsSUFBRyxJQUFJLEVBQUU7Z0JBQ1AsS0FBSSxJQUFJLEdBQUcsR0FBQyxDQUFDLEVBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsR0FBRyxFQUFFLEVBQUM7b0JBQ2xDLElBQUksR0FBRyxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEIsSUFBSSxJQUFJLEdBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDbkIsS0FBSSxJQUFJLEVBQUUsR0FBQyxDQUFDLEVBQUMsRUFBRSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsRUFBRSxFQUFFLEVBQUM7d0JBQzdCLElBQUksS0FBSyxHQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDbkIsSUFBSSxHQUFHLEdBQUUsS0FBSyxDQUFDLElBQUksQ0FBQzt3QkFDdEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBQzs0QkFDeEIsSUFBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUM7Z0NBQ3pCLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFTLEdBQUcsQ0FBQyxDQUFDOzZCQUM3QjtpQ0FBSTtnQ0FDSCxJQUFJLFFBQVEsR0FBTyxHQUFHLENB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Q3BCLElBQUksT0FBTyxHQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMzQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0M7YUFDRjtTQUNGO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFDekIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFVBQXNCO1FBRTdDLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDaEMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksR0FBRyxFQUFFO1lBRVAsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRTtvQkFDbkIsZ0JBQWdCO29CQUNoQixXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSBcIk1BTlVBTFwiIHwgXCJBVVRPUFJPR1JFU1NcIiB8IFwiQVVUT1JFQ09SRElOR1wiO1xyXG5leHBvcnQgdHlwZSBQcm9tcHRQaGFzZSA9IFwiSURMRVwiIHwgXCJQUkVSRUNPUkRJTkdcIiB8IFwiUFJFUkVDT1JESU5HT05MWVwiIHwgXCJSRUNPUkRJTkdcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE9yZGVyID0gJ1NFUVVFTlRJQUwnIHwgJ1JBTkRPTScgfCAnUkFORE9NSVpFRCc7XHJcblxyXG5leHBvcnQgdHlwZSBEZWNvcmF0aW9uID0ndW5kZXJsaW5lJ1xyXG5leHBvcnQgdHlwZSBTdHlsZSA9J2l0YWxpYycgfCAnbm9ybWFsJ1xyXG5leHBvcnQgdHlwZSBGb250V2VpZ2h0PSdub3JtYWwnIHwgJ2JvbGQnXHJcbmV4cG9ydCB0eXBlIEJsb2NrVHlwZT0ncCc7XHJcbmV4cG9ydCB0eXBlIFRleHRUeXBlPSd0ZXh0JyB8ICdmb250JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVjaW5zdHJ1Y3Rpb25ze1xyXG4gIHJlY2luc3RydWN0aW9uczpzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGV4dCB7XHJcbiAgdHlwZTogVGV4dFR5cGUsXHJcbiAgY29sb3I/IDogc3RyaW5nLFxyXG4gIGRlY29yYXRpb24/IDogRGVjb3JhdGlvbixcclxuICBzaXplPzogc3RyaW5nLFxyXG4gIHdlaWdodD86IEZvbnRXZWlnaHQsXHJcbiAgc3R5bGU/OiBTdHlsZSxcclxuICB0ZXh0IDogc3RyaW5nIHwgVGV4dDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCbG9jayB7XHJcbiAgdHlwZTogQmxvY2tUeXBlLFxyXG4gIHRleHRzOiBBcnJheTxUZXh0PlxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQm9keXtcclxuICBibG9ja3M/OiBBcnJheTxCbG9jaz4sXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0RG9je1xyXG4gIGJvZHk/OiBCb2R5XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVkaWFpdGVtIHtcclxuICB0ZXh0Pzogc3RyaW5nLFxyXG4gIHNyYz86IHN0cmluZyxcclxuICBwcm9tcHREb2M/OiBQcm9tcHREb2MsXHJcbiAgbWltZXR5cGU/OnN0cmluZyxcclxuICBkZWZhdWx0VmlydHVhbFZpZXdCb3g/OlZpcnR1YWxWaWV3Qm94LFxyXG4gIGFsdD86c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0SXRlbSB7XHJcbiAgdHlwZT86c3RyaW5nO1xyXG4gIGl0ZW1jb2RlPzogc3RyaW5nLFxyXG4gIHByZXJlY2RlbGF5PzogbnVtYmVyLFxyXG4gIHByZXJlY29yZGluZz86IG51bWJlcixcclxuICByZWNkdXJhdGlvbj86IG51bWJlcixcclxuICBkdXJhdGlvbj86bnVtYmVyLFxyXG4gIHBvc3RyZWNvcmRpbmc/OiBudW1iZXIsXHJcbiAgcG9zdHJlY2RlbGF5PzogbnVtYmVyLFxyXG4gIHJlY2luc3RydWN0aW9ucz86IFJlY2luc3RydWN0aW9ucyxcclxuICBtZWRpYWl0ZW1zOiBBcnJheTxNZWRpYWl0ZW0+XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xyXG4gIG9yZGVyPzpPcmRlcjtcclxuICBwcm9tcHRJdGVtczogQXJyYXk8UHJvbXB0SXRlbT47XHJcbiAgX3NodWZmbGVkUHJvbXB0SXRlbXM6IEFycmF5PFByb21wdEl0ZW0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlY3Rpb24ge1xyXG4gIG1vZGU6IE1vZGU7XHJcbiAgcHJvbXB0cGhhc2U6IFByb21wdFBoYXNlO1xyXG4gIG9yZGVyPzogT3JkZXI7XHJcbiAgdHJhaW5pbmc6IGJvb2xlYW47XHJcbiAgZ3JvdXBzOiBBcnJheTxHcm91cD47XHJcbiAgX3NodWZmbGVkR3JvdXBzOiBBcnJheTxHcm91cD47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbFZpZXdCb3h7XHJcbiAgaGVpZ2h0Om51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHQge1xyXG4gIHZpcnR1YWxWaWV3Qm94PzpWaXJ0dWFsVmlld0JveDtcclxuICBzZWN0aW9uczogQXJyYXk8U2VjdGlvbj47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHREb2NVdGlse1xyXG5cclxuICBzdGF0aWMgdG9QbGFpblRleHRTdHJpbmcocHJvbXB0RG9jOlByb21wdERvYyk6c3RyaW5ne1xyXG4gICAgbGV0IHB0PVwiXCI7XHJcbiAgICBsZXQgYj1wcm9tcHREb2MuYm9keTtcclxuICAgIGlmKGIhPW51bGwpIHtcclxuICAgICAgbGV0IGJsa3M9Yi5ibG9ja3NcclxuICAgICAgaWYoYmxrcykge1xyXG4gICAgICAgIGZvcihsZXQgYmxpPTA7YmxpPGJsa3MubGVuZ3RoO2JsaSsrKXtcclxuICAgICAgICAgIGxldCBibGs9Ymxrc1tibGldO1xyXG4gICAgICAgICAgbGV0IHR4dHM9YmxrLnRleHRzO1xyXG4gICAgICAgICAgZm9yKGxldCB0aT0wO3RpPHR4dHMubGVuZ3RoO3RpKyspe1xyXG4gICAgICAgICAgICAgIGxldCB0eHRFbD10eHRzW3RpXTtcclxuICAgICAgICAgICAgICBsZXQgdHh0ID10eHRFbC50ZXh0O1xyXG4gICAgICAgICAgICBpZiggdHh0RWwudHlwZSA9PT0gJ2ZvbnQnKXtcclxuICAgICAgICAgICAgICBpZih0eXBlb2YgdHh0ID09PSAnc3RyaW5nJyl7XHJcbiAgICAgICAgICAgICAgICBwdCA9IHB0LmNvbmNhdCg8c3RyaW5nPnR4dCk7XHJcbiAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3ViVHh0RWw9PFRleHQ+dHh0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHN1YlR4dD1zdWJUeHRFbC50ZXh0O1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZW9mIHN1YlR4dCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgcHQ9cHQuY29uY2F0KHN1YlR4dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZSBpZih0eXBlb2YgdHh0ID09PSAnc3RyaW5nJyl7XHJcbiAgICAgICAgICAgICAgcHQgPSBwdC5jb25jYXQoPHN0cmluZz50eHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWVkaWFpdGVtVXRpbCB7XHJcbiAgc3RhdGljIHRvUGxhaW5UZXh0U3RyaW5nKG1lZGlhaXRlbTogTWVkaWFpdGVtKTogc3RyaW5nfG51bGwge1xyXG5cclxuICAgIGxldCB0eHQgPSBtZWRpYWl0ZW0udGV4dDtcclxuICAgIGxldCBwZCA9IG1lZGlhaXRlbS5wcm9tcHREb2M7XHJcbiAgICBpZiAodHh0ID09IG51bGwpIHtcclxuICAgICAgbGV0IHB0ID0gbnVsbDtcclxuICAgICAgaWYgKHBkICE9IG51bGwpIHtcclxuICAgICAgICBwdCA9IFByb21wdERvY1V0aWwudG9QbGFpblRleHRTdHJpbmcocGQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0eHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGVzY3JpcHRpb24obWk6IE1lZGlhaXRlbSk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGVzY3JpcHRpb24gPSBcIlwiO1xyXG5cclxuICAgIGlmIChtaS5hbHQgIT0gbnVsbCkge1xyXG4gICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmNvbmNhdChtaS5hbHQpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgc3JjID0gbWkuc3JjO1xyXG4gICAgICBsZXQgbWltZVR5cGUgPSBtaS5taW1ldHlwZTtcclxuICAgICAgaWYgKCFtaW1lVHlwZSkge1xyXG4gICAgICAgIG1pbWVUeXBlID0gJ3RleHQvcGxhaW4nO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChtaW1lVHlwZS5zdGFydHNXaXRoKFwiaW1hZ2VcIikpIHtcclxuICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmNvbmNhdChcIklNQUdFOiBcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAobWltZVR5cGUuc3RhcnRzV2l0aChcImF1ZGlvXCIpKSB7XHJcbiAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5jb25jYXQoXCJBVURJTzogXCIpO1xyXG4gICAgICB9IGVsc2UgaWYgKG1pbWVUeXBlLnN0YXJ0c1dpdGgoXCJ2aWRlb1wiKSkge1xyXG4gICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uY29uY2F0KFwiVklERU86IFwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgcHJvbXB0VGV4dCA9IE1lZGlhaXRlbVV0aWwudG9QbGFpblRleHRTdHJpbmcobWkpO1xyXG4gICAgICBpZiAocHJvbXB0VGV4dCAhPSBudWxsKSB7XHJcbiAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5jb25jYXQocHJvbXB0VGV4dCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3JjICE9IG51bGwpIHtcclxuICAgICAgICBsZXQgc3JjUG47XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGxldCBzcmNVcmwgPSBuZXcgVVJMKHNyYyk7XHJcbiAgICAgICAgICBzcmNQbj1zcmNVcmwucGF0aG5hbWU7XHJcbiAgICAgICAgfWNhdGNoe1xyXG4gICAgICAgICAgc3JjUG49c3JjO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gR2V0IGZpbGVuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uXHJcbiAgICAgICAgbGV0IHNyY0ZuTT1zcmNQbi5tYXRjaCgvKFteXFwvXSopJC8pO1xyXG4gICAgICAgIGlmKHNyY0ZuTSAmJiBzcmNGbk0ubGVuZ3RoPT0yKXtcclxuICAgICAgICAgIGxldCBzcmNGbj1zcmNGbk1bMV07XHJcbiAgICAgICAgICBsZXQgc3JjRm5ObT1zcmNGbi5yZXBsYWNlKC9bXFwuXVteXFwuXSovLCcnKTtcclxuICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uY29uY2F0KHNyY0ZuTm0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb21wdGl0ZW1VdGlsIHtcclxuICBzdGF0aWMgdG9QbGFpblRleHRTdHJpbmcocHJvbXB0SXRlbTogUHJvbXB0SXRlbSk6IHN0cmluZyB7XHJcblxyXG4gICAgbGV0IG1pcyA9IHByb21wdEl0ZW0ubWVkaWFpdGVtcztcclxuICAgIGxldCBkZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICBpZiAobWlzKSB7XHJcblxyXG4gICAgICBsZXQgbWlzU2l6ZSA9IG1pcy5sZW5ndGg7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWlzU2l6ZTsgaSsrKSB7XHJcbiAgICAgICAgbGV0IG1pID0gbWlzW2ldO1xyXG4gICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uY29uY2F0KE1lZGlhaXRlbVV0aWwuZGVzY3JpcHRpb24obWkpKTtcclxuICAgICAgICBpZiAoaSArIDEgPCBtaXNTaXplKSB7XHJcbiAgICAgICAgICAvLyBub3QgbGFzdCBpdGVtXHJcbiAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLmNvbmNhdChcIiwgXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Created by klausj on 17.06.2017.
|
|
3
|
-
*/
|
|
4
|
-
import { Inject, Injectable } from '@angular/core';
|
|
5
|
-
import { ApiType, SPEECHRECORDER_CONFIG } from "../../spr.config";
|
|
6
|
-
import { UUID } from "../../utils/utils";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
import * as i2 from "../../spr.config";
|
|
10
|
-
export const SCRIPT_API_CTX = 'script';
|
|
11
|
-
export class ScriptService {
|
|
12
|
-
constructor(http, config) {
|
|
13
|
-
this.http = http;
|
|
14
|
-
this.config = config;
|
|
15
|
-
this.withCredentials = false;
|
|
16
|
-
let apiEndPoint = '';
|
|
17
|
-
if (config && config.apiEndPoint) {
|
|
18
|
-
apiEndPoint = config.apiEndPoint;
|
|
19
|
-
}
|
|
20
|
-
if (apiEndPoint !== '') {
|
|
21
|
-
apiEndPoint = apiEndPoint + '/';
|
|
22
|
-
}
|
|
23
|
-
if (config != null && config.withCredentials != null) {
|
|
24
|
-
this.withCredentials = config.withCredentials;
|
|
25
|
-
}
|
|
26
|
-
this.scriptCtxUrl = apiEndPoint + SCRIPT_API_CTX;
|
|
27
|
-
}
|
|
28
|
-
scriptObservable(id) {
|
|
29
|
-
let encScriptId = encodeURIComponent(id);
|
|
30
|
-
let scriptUrl = this.scriptCtxUrl + '/' + encScriptId;
|
|
31
|
-
if (this.config && this.config.apiType === ApiType.FILES) {
|
|
32
|
-
// for development and demo
|
|
33
|
-
// append UUID to make request URL unique to avoid localhost server caching
|
|
34
|
-
scriptUrl = scriptUrl + '.json?requestUUID=' + UUID.generate();
|
|
35
|
-
}
|
|
36
|
-
return this.http.get(scriptUrl, { withCredentials: this.withCredentials });
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
-
type: Injectable
|
|
43
|
-
}], ctorParameters:
|
|
44
|
-
type: Inject,
|
|
45
|
-
args: [SPEECHRECORDER_CONFIG]
|
|
46
|
-
}] }]
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* Created by klausj on 17.06.2017.
|
|
3
|
+
*/
|
|
4
|
+
import { Inject, Injectable } from '@angular/core';
|
|
5
|
+
import { ApiType, SPEECHRECORDER_CONFIG } from "../../spr.config";
|
|
6
|
+
import { UUID } from "../../utils/utils";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "../../spr.config";
|
|
10
|
+
export const SCRIPT_API_CTX = 'script';
|
|
11
|
+
export class ScriptService {
|
|
12
|
+
constructor(http, config) {
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.withCredentials = false;
|
|
16
|
+
let apiEndPoint = '';
|
|
17
|
+
if (config && config.apiEndPoint) {
|
|
18
|
+
apiEndPoint = config.apiEndPoint;
|
|
19
|
+
}
|
|
20
|
+
if (apiEndPoint !== '') {
|
|
21
|
+
apiEndPoint = apiEndPoint + '/';
|
|
22
|
+
}
|
|
23
|
+
if (config != null && config.withCredentials != null) {
|
|
24
|
+
this.withCredentials = config.withCredentials;
|
|
25
|
+
}
|
|
26
|
+
this.scriptCtxUrl = apiEndPoint + SCRIPT_API_CTX;
|
|
27
|
+
}
|
|
28
|
+
scriptObservable(id) {
|
|
29
|
+
let encScriptId = encodeURIComponent(id);
|
|
30
|
+
let scriptUrl = this.scriptCtxUrl + '/' + encScriptId;
|
|
31
|
+
if (this.config && this.config.apiType === ApiType.FILES) {
|
|
32
|
+
// for development and demo
|
|
33
|
+
// append UUID to make request URL unique to avoid localhost server caching
|
|
34
|
+
scriptUrl = scriptUrl + '.json?requestUUID=' + UUID.generate();
|
|
35
|
+
}
|
|
36
|
+
return this.http.get(scriptUrl, { withCredentials: this.withCredentials });
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ScriptService, deps: [{ token: i1.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ScriptService }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ScriptService, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.SpeechRecorderConfig, decorators: [{
|
|
44
|
+
type: Inject,
|
|
45
|
+
args: [SPEECHRECORDER_CONFIG]
|
|
46
|
+
}] }] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2NyaXB0L3NjcmlwdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFJdkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFDLFFBQVEsQ0FBQTtBQUdwQyxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFvQixJQUFlLEVBQXdDLE1BQTRCO1FBQW5GLFNBQUksR0FBSixJQUFJLENBQVc7UUFBd0MsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFGdEYsb0JBQWUsR0FBUyxLQUFLLENBQUM7UUFJN0MsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBRXBCLElBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDL0IsV0FBVyxHQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7U0FDaEM7UUFDRCxJQUFHLFdBQVcsS0FBSyxFQUFFLEVBQUM7WUFDcEIsV0FBVyxHQUFDLFdBQVcsR0FBQyxHQUFHLENBQUE7U0FDNUI7UUFDRCxJQUFHLE1BQU0sSUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBRSxJQUFJLEVBQUM7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLEdBQUcsY0FBYyxDQUFDO0lBQ25ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFrQjtRQUNqQyxJQUFJLFdBQVcsR0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDeEQsMkJBQTJCO1lBQzNCLDJFQUEyRTtZQUMzRSxTQUFTLEdBQUcsU0FBUyxHQUFHLG9CQUFvQixHQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5RDtRQUNELE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsU0FBUyxFQUFDLEVBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFBO0lBRWxGLENBQUM7OEdBOUJTLGFBQWEsNENBSW9CLHFCQUFxQjtrSEFKdEQsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVTs7MEJBSzRCLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENyZWF0ZWQgYnkga2xhdXNqIG9uIDE3LjA2LjIwMTcuXHJcbiAqL1xyXG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7QXBpVHlwZSwgU1BFRUNIUkVDT1JERVJfQ09ORklHLCBTcGVlY2hSZWNvcmRlckNvbmZpZ30gZnJvbSBcIi4uLy4uL3Nwci5jb25maWdcIjtcclxuaW1wb3J0IHtTY3JpcHR9IGZyb20gXCIuL3NjcmlwdFwiO1xyXG5pbXBvcnQge1VVSUR9IGZyb20gXCIuLi8uLi91dGlscy91dGlsc1wiO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFNDUklQVF9BUElfQ1RYPSdzY3JpcHQnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTY3JpcHRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHNjcmlwdEN0eFVybDpzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB3aXRoQ3JlZGVudGlhbHM6Ym9vbGVhbj1mYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOkh0dHBDbGllbnQsQEluamVjdChTUEVFQ0hSRUNPUkRFUl9DT05GSUcpIHByaXZhdGUgY29uZmlnPzpTcGVlY2hSZWNvcmRlckNvbmZpZykge1xyXG5cclxuICAgIGxldCBhcGlFbmRQb2ludCA9ICcnXHJcblxyXG4gICAgaWYoY29uZmlnICYmIGNvbmZpZy5hcGlFbmRQb2ludCkge1xyXG4gICAgICBhcGlFbmRQb2ludD1jb25maWcuYXBpRW5kUG9pbnQ7XHJcbiAgICB9XHJcbiAgICBpZihhcGlFbmRQb2ludCAhPT0gJycpe1xyXG4gICAgICBhcGlFbmRQb2ludD1hcGlFbmRQb2ludCsnLydcclxuICAgIH1cclxuICAgIGlmKGNvbmZpZyE9bnVsbCAmJiBjb25maWcud2l0aENyZWRlbnRpYWxzIT1udWxsKXtcclxuICAgICAgdGhpcy53aXRoQ3JlZGVudGlhbHM9Y29uZmlnLndpdGhDcmVkZW50aWFscztcclxuICAgIH1cclxuICAgIHRoaXMuc2NyaXB0Q3R4VXJsID0gYXBpRW5kUG9pbnQgKyBTQ1JJUFRfQVBJX0NUWDtcclxuICB9XHJcblxyXG4gIHNjcmlwdE9ic2VydmFibGUoaWQ6c3RyaW5nIHwgbnVtYmVyKTpPYnNlcnZhYmxlPFNjcmlwdD57XHJcbiAgICBsZXQgZW5jU2NyaXB0SWQ9ZW5jb2RlVVJJQ29tcG9uZW50KGlkKTtcclxuICAgIGxldCBzY3JpcHRVcmwgPSB0aGlzLnNjcmlwdEN0eFVybCArICcvJyArIGVuY1NjcmlwdElkO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmFwaVR5cGUgPT09IEFwaVR5cGUuRklMRVMpIHtcclxuICAgICAgLy8gZm9yIGRldmVsb3BtZW50IGFuZCBkZW1vXHJcbiAgICAgIC8vIGFwcGVuZCBVVUlEIHRvIG1ha2UgcmVxdWVzdCBVUkwgdW5pcXVlIHRvIGF2b2lkIGxvY2FsaG9zdCBzZXJ2ZXIgY2FjaGluZ1xyXG4gICAgICBzY3JpcHRVcmwgPSBzY3JpcHRVcmwgKyAnLmpzb24/cmVxdWVzdFVVSUQ9JytVVUlELmdlbmVyYXRlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIHRoaXMuaHR0cC5nZXQ8U2NyaXB0PihzY3JpcHRVcmwse3dpdGhDcmVkZW50aWFsczogdGhpcy53aXRoQ3JlZGVudGlhbHMgfSlcclxuXHJcbiAgIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuIl19
|