@internetarchive/radio-player 0.0.3-a4 → 0.0.4-alpha.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.
- package/LICENSE +661 -661
- package/README.md +142 -142
- package/index.d.ts +15 -15
- package/index.js +28 -28
- package/lib/demo/full-text-search-service.d.ts +14 -14
- package/lib/demo/full-text-search-service.js +33 -33
- package/lib/demo/radio-player-controller.d.ts +41 -41
- package/lib/demo/radio-player-controller.js +199 -199
- package/lib/src/assets/img/left.d.ts +2 -2
- package/lib/src/assets/img/left.js +15 -15
- package/lib/src/assets/img/right.d.ts +2 -2
- package/lib/src/assets/img/right.js +15 -15
- package/lib/src/models/music-zone.d.ts +12 -12
- package/lib/src/models/music-zone.js +15 -15
- package/lib/src/models/radio-player-config.d.ts +26 -26
- package/lib/src/models/radio-player-config.js +27 -27
- package/lib/src/radio-player.d.ts +589 -589
- package/lib/src/radio-player.js +1338 -1338
- package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend.d.ts +82 -82
- package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend.js +107 -107
- package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response.d.ts +48 -48
- package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response.js +58 -58
- package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.d.ts +16 -16
- package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.js +1 -1
- package/lib/src/search-handler/search-backends/local-search-backend/local-search-backend.d.ts +27 -27
- package/lib/src/search-handler/search-backends/local-search-backend/local-search-backend.js +42 -42
- package/lib/src/search-handler/search-backends/search-backend-interface.d.ts +9 -9
- package/lib/src/search-handler/search-backends/search-backend-interface.js +1 -1
- package/lib/src/search-handler/search-handler-interface.d.ts +17 -17
- package/lib/src/search-handler/search-handler-interface.js +1 -1
- package/lib/src/search-handler/search-handler.d.ts +83 -83
- package/lib/src/search-handler/search-handler.js +177 -177
- package/lib/src/search-handler/search-helper.d.ts +12 -12
- package/lib/src/search-handler/search-helper.js +22 -22
- package/lib/src/search-handler/search-models.d.ts +45 -45
- package/lib/src/search-handler/search-models.js +49 -49
- package/lib/src/search-handler/transcript-index-interface.d.ts +38 -38
- package/lib/src/search-handler/transcript-index-interface.js +1 -1
- package/lib/src/search-handler/transcript-index.d.ts +53 -53
- package/lib/src/search-handler/transcript-index.js +80 -80
- package/lib/src/search-results-switcher.d.ts +58 -58
- package/lib/src/search-results-switcher.js +133 -133
- package/package.json +93 -93
- package/src/assets/img/left.ts +17 -17
- package/src/assets/img/right.ts +17 -17
- package/src/models/music-zone.ts +17 -17
- package/src/models/radio-player-config.ts +47 -47
- package/src/radio-player.ts +1402 -1402
- package/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend.ts +140 -140
- package/src/search-handler/search-backends/full-text-search-backend/full-text-search-response.ts +110 -110
- package/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.ts +17 -17
- package/src/search-handler/search-backends/local-search-backend/local-search-backend.ts +50 -50
- package/src/search-handler/search-backends/search-backend-interface.ts +10 -10
- package/src/search-handler/search-handler-interface.ts +18 -18
- package/src/search-handler/search-handler.ts +217 -217
- package/src/search-handler/search-helper.ts +25 -25
- package/src/search-handler/search-models.ts +69 -69
- package/src/search-handler/transcript-index-interface.ts +42 -42
- package/src/search-handler/transcript-index.ts +93 -93
- package/src/search-results-switcher.ts +131 -131
package/README.md
CHANGED
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
# \<radio-player>
|
|
2
|
-
|
|
3
|
-
A Radio Player that displays closed captioning and allows searching.
|
|
4
|
-
|
|
5
|
-

|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
```bash
|
|
9
|
-
yarn add @internetarchive/radio-player
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Usage
|
|
13
|
-
```js
|
|
14
|
-
// radio-player.js
|
|
15
|
-
import RadioPlayer from '@internetarchive/radio-player';
|
|
16
|
-
export default RadioPlayer;
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
```html
|
|
20
|
-
<!-- index.html -->
|
|
21
|
-
<script type="module">
|
|
22
|
-
import './radio-player.js';
|
|
23
|
-
</script>
|
|
24
|
-
|
|
25
|
-
<style>
|
|
26
|
-
radio-player {
|
|
27
|
-
line-height: 1.5rem;
|
|
28
|
-
color: white;
|
|
29
|
-
|
|
30
|
-
--timeColor: white;
|
|
31
|
-
--timeColumnWidth: 3rem;
|
|
32
|
-
--transcriptHeight: 200px;
|
|
33
|
-
|
|
34
|
-
--autoScrollButtonFontColor: black;
|
|
35
|
-
--autoScrollButtonBackgroundColor: white;
|
|
36
|
-
|
|
37
|
-
--normalTextColor: gray;
|
|
38
|
-
--activeTextColor: white;
|
|
39
|
-
--searchResultInactiveBorderColor: gray;
|
|
40
|
-
--searchResultActiveBorderColor: green;
|
|
41
|
-
|
|
42
|
-
--trackColor: black;
|
|
43
|
-
--trackBorder: 1px solid white;
|
|
44
|
-
}
|
|
45
|
-
</style>
|
|
46
|
-
|
|
47
|
-
<radio-player></radio-player>
|
|
48
|
-
|
|
49
|
-
<script>
|
|
50
|
-
// Configure the radio player
|
|
51
|
-
|
|
52
|
-
const radioPlayer = document.querySelector('radio-player');
|
|
53
|
-
|
|
54
|
-
radioPlayer.addEventListener('searchRequested', e => {
|
|
55
|
-
console.log('Search requested', e.detail.searchTerm);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
radioPlayer.addEventListener('searchCleared', e => {
|
|
59
|
-
console.log('Search cleared');
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
radioPlayer.addEventListener('playbackPaused', e => {
|
|
63
|
-
console.log('Playback paused');
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
radioPlayer.addEventListener('playbackStarted', e => {
|
|
67
|
-
console.log('Playback started');
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
radioPlayer.addEventListener('currentTimeChanged', e => {
|
|
71
|
-
console.log('Current time changed', e.detail.currentTime);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
radioPlayer.addEventListener('timeChangedFromScrub', e => {
|
|
75
|
-
console.log('New time', e.detail.newTime);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
radioPlayer.addEventListener('transcriptEntrySelected', e => {
|
|
79
|
-
console.log('New time', e.detail.newTime);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
radioPlayer.addEventListener('canplay', e => {
|
|
83
|
-
console.log('Media can play');
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
const quickSearchTerms = [];
|
|
87
|
-
|
|
88
|
-
const audioSource = new AudioSource(
|
|
89
|
-
'https://ia803005.us.archive.org/30/items/BBC_Radio_2_20190502_180000/BBC_Radio_2_20190502_180000.mp3',
|
|
90
|
-
'audio/mpeg',
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
const radioConfig = new RadioPlayerConfig(
|
|
94
|
-
'Voice of America',
|
|
95
|
-
'7:00pm',
|
|
96
|
-
'./logo.jpg',
|
|
97
|
-
'./waveform.png',
|
|
98
|
-
[audioSource],
|
|
99
|
-
quickSearchTerms,
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
const transcriptEntries: TranscriptEntryConfig[] = [...];
|
|
103
|
-
|
|
104
|
-
const transcriptConfig = new TranscriptConfig(transcriptEntries);
|
|
105
|
-
|
|
106
|
-
radioPlayer.config = radioConfig;
|
|
107
|
-
radioPlayer.transcriptConfig = transcriptConfig
|
|
108
|
-
</script>
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
# Development
|
|
113
|
-
|
|
114
|
-
## Prerequisite
|
|
115
|
-
```bash
|
|
116
|
-
yarn install
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Start Development Server
|
|
120
|
-
```bash
|
|
121
|
-
yarn start // start development server and typescript compiler
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Testing
|
|
125
|
-
```bash
|
|
126
|
-
yarn test
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## Testing via browserstack
|
|
130
|
-
```bash
|
|
131
|
-
yarn test:bs
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Demoing using storybook
|
|
135
|
-
```bash
|
|
136
|
-
yarn storybook
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Linting
|
|
140
|
-
```bash
|
|
141
|
-
yarn lint
|
|
142
|
-
```
|
|
1
|
+
# \<radio-player>
|
|
2
|
+
|
|
3
|
+
A Radio Player that displays closed captioning and allows searching.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
```bash
|
|
9
|
+
yarn add @internetarchive/radio-player
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
```js
|
|
14
|
+
// radio-player.js
|
|
15
|
+
import RadioPlayer from '@internetarchive/radio-player';
|
|
16
|
+
export default RadioPlayer;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<!-- index.html -->
|
|
21
|
+
<script type="module">
|
|
22
|
+
import './radio-player.js';
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<style>
|
|
26
|
+
radio-player {
|
|
27
|
+
line-height: 1.5rem;
|
|
28
|
+
color: white;
|
|
29
|
+
|
|
30
|
+
--timeColor: white;
|
|
31
|
+
--timeColumnWidth: 3rem;
|
|
32
|
+
--transcriptHeight: 200px;
|
|
33
|
+
|
|
34
|
+
--autoScrollButtonFontColor: black;
|
|
35
|
+
--autoScrollButtonBackgroundColor: white;
|
|
36
|
+
|
|
37
|
+
--normalTextColor: gray;
|
|
38
|
+
--activeTextColor: white;
|
|
39
|
+
--searchResultInactiveBorderColor: gray;
|
|
40
|
+
--searchResultActiveBorderColor: green;
|
|
41
|
+
|
|
42
|
+
--trackColor: black;
|
|
43
|
+
--trackBorder: 1px solid white;
|
|
44
|
+
}
|
|
45
|
+
</style>
|
|
46
|
+
|
|
47
|
+
<radio-player></radio-player>
|
|
48
|
+
|
|
49
|
+
<script>
|
|
50
|
+
// Configure the radio player
|
|
51
|
+
|
|
52
|
+
const radioPlayer = document.querySelector('radio-player');
|
|
53
|
+
|
|
54
|
+
radioPlayer.addEventListener('searchRequested', e => {
|
|
55
|
+
console.log('Search requested', e.detail.searchTerm);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
radioPlayer.addEventListener('searchCleared', e => {
|
|
59
|
+
console.log('Search cleared');
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
radioPlayer.addEventListener('playbackPaused', e => {
|
|
63
|
+
console.log('Playback paused');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
radioPlayer.addEventListener('playbackStarted', e => {
|
|
67
|
+
console.log('Playback started');
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
radioPlayer.addEventListener('currentTimeChanged', e => {
|
|
71
|
+
console.log('Current time changed', e.detail.currentTime);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
radioPlayer.addEventListener('timeChangedFromScrub', e => {
|
|
75
|
+
console.log('New time', e.detail.newTime);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
radioPlayer.addEventListener('transcriptEntrySelected', e => {
|
|
79
|
+
console.log('New time', e.detail.newTime);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
radioPlayer.addEventListener('canplay', e => {
|
|
83
|
+
console.log('Media can play');
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
const quickSearchTerms = [];
|
|
87
|
+
|
|
88
|
+
const audioSource = new AudioSource(
|
|
89
|
+
'https://ia803005.us.archive.org/30/items/BBC_Radio_2_20190502_180000/BBC_Radio_2_20190502_180000.mp3',
|
|
90
|
+
'audio/mpeg',
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
const radioConfig = new RadioPlayerConfig(
|
|
94
|
+
'Voice of America',
|
|
95
|
+
'7:00pm',
|
|
96
|
+
'./logo.jpg',
|
|
97
|
+
'./waveform.png',
|
|
98
|
+
[audioSource],
|
|
99
|
+
quickSearchTerms,
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
const transcriptEntries: TranscriptEntryConfig[] = [...];
|
|
103
|
+
|
|
104
|
+
const transcriptConfig = new TranscriptConfig(transcriptEntries);
|
|
105
|
+
|
|
106
|
+
radioPlayer.config = radioConfig;
|
|
107
|
+
radioPlayer.transcriptConfig = transcriptConfig
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
# Development
|
|
113
|
+
|
|
114
|
+
## Prerequisite
|
|
115
|
+
```bash
|
|
116
|
+
yarn install
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Start Development Server
|
|
120
|
+
```bash
|
|
121
|
+
yarn start // start development server and typescript compiler
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Testing
|
|
125
|
+
```bash
|
|
126
|
+
yarn test
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Testing via browserstack
|
|
130
|
+
```bash
|
|
131
|
+
yarn test:bs
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Demoing using storybook
|
|
135
|
+
```bash
|
|
136
|
+
yarn storybook
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Linting
|
|
140
|
+
```bash
|
|
141
|
+
yarn lint
|
|
142
|
+
```
|
package/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import RadioPlayer from './lib/src/radio-player.d';
|
|
2
|
-
import SearchResultsSwitcher from './lib/src/search-results-switcher.d';
|
|
3
|
-
import MusicZone from './lib/src/models/music-zone.d';
|
|
4
|
-
import RadioPlayerConfig from './lib/src/models/radio-player-config.d';
|
|
5
|
-
import { FullTextSearchServiceInterface } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.d';
|
|
6
|
-
import { SearchBackendInterface } from './lib/src/search-handler/search-backends/search-backend-interface.d';
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
RadioPlayer,
|
|
10
|
-
SearchResultsSwitcher,
|
|
11
|
-
MusicZone,
|
|
12
|
-
RadioPlayerConfig,
|
|
13
|
-
FullTextSearchServiceInterface,
|
|
14
|
-
SearchBackendInterface
|
|
15
|
-
};
|
|
1
|
+
import RadioPlayer from './lib/src/radio-player.d';
|
|
2
|
+
import SearchResultsSwitcher from './lib/src/search-results-switcher.d';
|
|
3
|
+
import MusicZone from './lib/src/models/music-zone.d';
|
|
4
|
+
import RadioPlayerConfig from './lib/src/models/radio-player-config.d';
|
|
5
|
+
import { FullTextSearchServiceInterface } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.d';
|
|
6
|
+
import { SearchBackendInterface } from './lib/src/search-handler/search-backends/search-backend-interface.d';
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
RadioPlayer,
|
|
10
|
+
SearchResultsSwitcher,
|
|
11
|
+
MusicZone,
|
|
12
|
+
RadioPlayerConfig,
|
|
13
|
+
FullTextSearchServiceInterface,
|
|
14
|
+
SearchBackendInterface
|
|
15
|
+
};
|
package/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
TranscriptConfig,
|
|
3
|
-
TranscriptEntryConfig
|
|
4
|
-
} from '@internetarchive/transcript-view';
|
|
5
|
-
import { AudioSource } from '@internetarchive/audio-element';
|
|
6
|
-
|
|
7
|
-
import RadioPlayer from './lib/src/radio-player';
|
|
8
|
-
import RadioPlayerConfig from './lib/src/models/radio-player-config';
|
|
9
|
-
import { SearchHandler } from './lib/src/search-handler/search-handler';
|
|
10
|
-
import { LocalSearchBackend } from './lib/src/search-handler/search-backends/local-search-backend/local-search-backend';
|
|
11
|
-
import { FullTextSearchBackend } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend';
|
|
12
|
-
import { TranscriptIndex } from './lib/src/search-handler/transcript-index';
|
|
13
|
-
import { FullTextSearchResponse } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
14
|
-
import { FullTextSearchResponseDoc } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
15
|
-
|
|
16
|
-
export {
|
|
17
|
-
RadioPlayer,
|
|
18
|
-
RadioPlayerConfig,
|
|
19
|
-
TranscriptConfig,
|
|
20
|
-
TranscriptEntryConfig,
|
|
21
|
-
AudioSource,
|
|
22
|
-
SearchHandler,
|
|
23
|
-
LocalSearchBackend,
|
|
24
|
-
FullTextSearchBackend,
|
|
25
|
-
TranscriptIndex,
|
|
26
|
-
FullTextSearchResponse,
|
|
27
|
-
FullTextSearchResponseDoc
|
|
28
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
TranscriptConfig,
|
|
3
|
+
TranscriptEntryConfig
|
|
4
|
+
} from '@internetarchive/transcript-view';
|
|
5
|
+
import { AudioSource } from '@internetarchive/audio-element';
|
|
6
|
+
|
|
7
|
+
import RadioPlayer from './lib/src/radio-player';
|
|
8
|
+
import RadioPlayerConfig from './lib/src/models/radio-player-config';
|
|
9
|
+
import { SearchHandler } from './lib/src/search-handler/search-handler';
|
|
10
|
+
import { LocalSearchBackend } from './lib/src/search-handler/search-backends/local-search-backend/local-search-backend';
|
|
11
|
+
import { FullTextSearchBackend } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend';
|
|
12
|
+
import { TranscriptIndex } from './lib/src/search-handler/transcript-index';
|
|
13
|
+
import { FullTextSearchResponse } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
14
|
+
import { FullTextSearchResponseDoc } from './lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
RadioPlayer,
|
|
18
|
+
RadioPlayerConfig,
|
|
19
|
+
TranscriptConfig,
|
|
20
|
+
TranscriptEntryConfig,
|
|
21
|
+
AudioSource,
|
|
22
|
+
SearchHandler,
|
|
23
|
+
LocalSearchBackend,
|
|
24
|
+
FullTextSearchBackend,
|
|
25
|
+
TranscriptIndex,
|
|
26
|
+
FullTextSearchResponse,
|
|
27
|
+
FullTextSearchResponseDoc
|
|
28
|
+
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { FullTextSearchServiceInterface } from '../src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface';
|
|
2
|
-
import { FullTextSearchResponse } from '../src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
3
|
-
/**
|
|
4
|
-
* An example FullTextSearchService that fetches data from the backend and
|
|
5
|
-
* returns a Promise<FullTextSearch> response.
|
|
6
|
-
*/
|
|
7
|
-
export declare class FullTextSearchService implements FullTextSearchServiceInterface {
|
|
8
|
-
private itemId;
|
|
9
|
-
private baseUrl;
|
|
10
|
-
private searchServicePath;
|
|
11
|
-
constructor(itemId: string, baseUrl: string, searchServicePath: string);
|
|
12
|
-
/** @inheritdoc */
|
|
13
|
-
searchRequested(query: string): Promise<FullTextSearchResponse>;
|
|
14
|
-
}
|
|
1
|
+
import { FullTextSearchServiceInterface } from '../src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface';
|
|
2
|
+
import { FullTextSearchResponse } from '../src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
3
|
+
/**
|
|
4
|
+
* An example FullTextSearchService that fetches data from the backend and
|
|
5
|
+
* returns a Promise<FullTextSearch> response.
|
|
6
|
+
*/
|
|
7
|
+
export declare class FullTextSearchService implements FullTextSearchServiceInterface {
|
|
8
|
+
private itemId;
|
|
9
|
+
private baseUrl;
|
|
10
|
+
private searchServicePath;
|
|
11
|
+
constructor(itemId: string, baseUrl: string, searchServicePath: string);
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
searchRequested(query: string): Promise<FullTextSearchResponse>;
|
|
14
|
+
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { FullTextSearchResponse } from '../src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
11
|
-
/**
|
|
12
|
-
* An example FullTextSearchService that fetches data from the backend and
|
|
13
|
-
* returns a Promise<FullTextSearch> response.
|
|
14
|
-
*/
|
|
15
|
-
export class FullTextSearchService {
|
|
16
|
-
constructor(itemId, baseUrl, searchServicePath) {
|
|
17
|
-
this.itemId = itemId;
|
|
18
|
-
this.baseUrl = baseUrl;
|
|
19
|
-
this.searchServicePath = searchServicePath;
|
|
20
|
-
}
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
searchRequested(query) {
|
|
23
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const searchUrl = `${this.baseUrl}${this.searchServicePath}`;
|
|
25
|
-
const queryParams = `?q=${query}&identifier=${this.itemId}&number_of_fragments=1000&scope=all`;
|
|
26
|
-
const url = `${searchUrl}${queryParams}`;
|
|
27
|
-
const rawResponse = yield fetch(url);
|
|
28
|
-
const jsonResponse = yield rawResponse.json();
|
|
29
|
-
const modeledResponse = new FullTextSearchResponse(jsonResponse);
|
|
30
|
-
return new Promise(resolve => resolve(modeledResponse));
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { FullTextSearchResponse } from '../src/search-handler/search-backends/full-text-search-backend/full-text-search-response';
|
|
11
|
+
/**
|
|
12
|
+
* An example FullTextSearchService that fetches data from the backend and
|
|
13
|
+
* returns a Promise<FullTextSearch> response.
|
|
14
|
+
*/
|
|
15
|
+
export class FullTextSearchService {
|
|
16
|
+
constructor(itemId, baseUrl, searchServicePath) {
|
|
17
|
+
this.itemId = itemId;
|
|
18
|
+
this.baseUrl = baseUrl;
|
|
19
|
+
this.searchServicePath = searchServicePath;
|
|
20
|
+
}
|
|
21
|
+
/** @inheritdoc */
|
|
22
|
+
searchRequested(query) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const searchUrl = `${this.baseUrl}${this.searchServicePath}`;
|
|
25
|
+
const queryParams = `?q=${query}&identifier=${this.itemId}&number_of_fragments=1000&scope=all`;
|
|
26
|
+
const url = `${searchUrl}${queryParams}`;
|
|
27
|
+
const rawResponse = yield fetch(url);
|
|
28
|
+
const jsonResponse = yield rawResponse.json();
|
|
29
|
+
const modeledResponse = new FullTextSearchResponse(jsonResponse);
|
|
30
|
+
return new Promise(resolve => resolve(modeledResponse));
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=full-text-search-service.js.map
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { LitElement, TemplateResult, PropertyValues } from 'lit';
|
|
2
|
-
import { TranscriptConfig } from '@internetarchive/transcript-view';
|
|
3
|
-
import '../src/radio-player';
|
|
4
|
-
import RadioPlayerConfig from '../src/models/radio-player-config';
|
|
5
|
-
import { SearchHandlerInterface } from '../src/search-handler/search-handler-interface';
|
|
6
|
-
export default class RadioPlayerController extends LitElement {
|
|
7
|
-
radioPlayerConfig: RadioPlayerConfig | undefined;
|
|
8
|
-
transcriptConfig: TranscriptConfig | undefined;
|
|
9
|
-
itemId: string | undefined;
|
|
10
|
-
/**
|
|
11
|
-
* The Search Handler
|
|
12
|
-
*
|
|
13
|
-
* @type {(SearchHandlerInterface | undefined)}
|
|
14
|
-
* @memberof RadioPlayer
|
|
15
|
-
*/
|
|
16
|
-
searchHandler: SearchHandlerInterface | undefined;
|
|
17
|
-
private startPlaybackAt;
|
|
18
|
-
private currentTime;
|
|
19
|
-
private fileName;
|
|
20
|
-
private baseUrl;
|
|
21
|
-
private searchServicePath;
|
|
22
|
-
private searchBackend;
|
|
23
|
-
private searchService;
|
|
24
|
-
render(): TemplateResult;
|
|
25
|
-
loadItemMetadata(): Promise<any>;
|
|
26
|
-
fetchTranscript(): Promise<any>;
|
|
27
|
-
setup(): Promise<any>;
|
|
28
|
-
handleMetadataResponse(response: any): void;
|
|
29
|
-
private get radioPlayer();
|
|
30
|
-
firstUpdated(): void;
|
|
31
|
-
updated(changedProperties: PropertyValues): void;
|
|
32
|
-
private setupSearchHandler;
|
|
33
|
-
private canplay;
|
|
34
|
-
private searchTermChanged;
|
|
35
|
-
private currentTimeChanged;
|
|
36
|
-
private playbackPaused;
|
|
37
|
-
private timeChangedFromScrub;
|
|
38
|
-
private transcriptEntrySelected;
|
|
39
|
-
private updateStartTimeQueryParam;
|
|
40
|
-
private updateSearchQueryParam;
|
|
41
|
-
}
|
|
1
|
+
import { LitElement, TemplateResult, PropertyValues } from 'lit';
|
|
2
|
+
import { TranscriptConfig } from '@internetarchive/transcript-view';
|
|
3
|
+
import '../src/radio-player';
|
|
4
|
+
import RadioPlayerConfig from '../src/models/radio-player-config';
|
|
5
|
+
import { SearchHandlerInterface } from '../src/search-handler/search-handler-interface';
|
|
6
|
+
export default class RadioPlayerController extends LitElement {
|
|
7
|
+
radioPlayerConfig: RadioPlayerConfig | undefined;
|
|
8
|
+
transcriptConfig: TranscriptConfig | undefined;
|
|
9
|
+
itemId: string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* The Search Handler
|
|
12
|
+
*
|
|
13
|
+
* @type {(SearchHandlerInterface | undefined)}
|
|
14
|
+
* @memberof RadioPlayer
|
|
15
|
+
*/
|
|
16
|
+
searchHandler: SearchHandlerInterface | undefined;
|
|
17
|
+
private startPlaybackAt;
|
|
18
|
+
private currentTime;
|
|
19
|
+
private fileName;
|
|
20
|
+
private baseUrl;
|
|
21
|
+
private searchServicePath;
|
|
22
|
+
private searchBackend;
|
|
23
|
+
private searchService;
|
|
24
|
+
render(): TemplateResult;
|
|
25
|
+
loadItemMetadata(): Promise<any>;
|
|
26
|
+
fetchTranscript(): Promise<any>;
|
|
27
|
+
setup(): Promise<any>;
|
|
28
|
+
handleMetadataResponse(response: any): void;
|
|
29
|
+
private get radioPlayer();
|
|
30
|
+
firstUpdated(): void;
|
|
31
|
+
updated(changedProperties: PropertyValues): void;
|
|
32
|
+
private setupSearchHandler;
|
|
33
|
+
private canplay;
|
|
34
|
+
private searchTermChanged;
|
|
35
|
+
private currentTimeChanged;
|
|
36
|
+
private playbackPaused;
|
|
37
|
+
private timeChangedFromScrub;
|
|
38
|
+
private transcriptEntrySelected;
|
|
39
|
+
private updateStartTimeQueryParam;
|
|
40
|
+
private updateSearchQueryParam;
|
|
41
|
+
}
|