@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.
Files changed (60) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +142 -142
  3. package/index.d.ts +15 -15
  4. package/index.js +28 -28
  5. package/lib/demo/full-text-search-service.d.ts +14 -14
  6. package/lib/demo/full-text-search-service.js +33 -33
  7. package/lib/demo/radio-player-controller.d.ts +41 -41
  8. package/lib/demo/radio-player-controller.js +199 -199
  9. package/lib/src/assets/img/left.d.ts +2 -2
  10. package/lib/src/assets/img/left.js +15 -15
  11. package/lib/src/assets/img/right.d.ts +2 -2
  12. package/lib/src/assets/img/right.js +15 -15
  13. package/lib/src/models/music-zone.d.ts +12 -12
  14. package/lib/src/models/music-zone.js +15 -15
  15. package/lib/src/models/radio-player-config.d.ts +26 -26
  16. package/lib/src/models/radio-player-config.js +27 -27
  17. package/lib/src/radio-player.d.ts +589 -589
  18. package/lib/src/radio-player.js +1338 -1338
  19. package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend.d.ts +82 -82
  20. package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend.js +107 -107
  21. package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response.d.ts +48 -48
  22. package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-response.js +58 -58
  23. package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.d.ts +16 -16
  24. package/lib/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.js +1 -1
  25. package/lib/src/search-handler/search-backends/local-search-backend/local-search-backend.d.ts +27 -27
  26. package/lib/src/search-handler/search-backends/local-search-backend/local-search-backend.js +42 -42
  27. package/lib/src/search-handler/search-backends/search-backend-interface.d.ts +9 -9
  28. package/lib/src/search-handler/search-backends/search-backend-interface.js +1 -1
  29. package/lib/src/search-handler/search-handler-interface.d.ts +17 -17
  30. package/lib/src/search-handler/search-handler-interface.js +1 -1
  31. package/lib/src/search-handler/search-handler.d.ts +83 -83
  32. package/lib/src/search-handler/search-handler.js +177 -177
  33. package/lib/src/search-handler/search-helper.d.ts +12 -12
  34. package/lib/src/search-handler/search-helper.js +22 -22
  35. package/lib/src/search-handler/search-models.d.ts +45 -45
  36. package/lib/src/search-handler/search-models.js +49 -49
  37. package/lib/src/search-handler/transcript-index-interface.d.ts +38 -38
  38. package/lib/src/search-handler/transcript-index-interface.js +1 -1
  39. package/lib/src/search-handler/transcript-index.d.ts +53 -53
  40. package/lib/src/search-handler/transcript-index.js +80 -80
  41. package/lib/src/search-results-switcher.d.ts +58 -58
  42. package/lib/src/search-results-switcher.js +133 -133
  43. package/package.json +93 -93
  44. package/src/assets/img/left.ts +17 -17
  45. package/src/assets/img/right.ts +17 -17
  46. package/src/models/music-zone.ts +17 -17
  47. package/src/models/radio-player-config.ts +47 -47
  48. package/src/radio-player.ts +1402 -1402
  49. package/src/search-handler/search-backends/full-text-search-backend/full-text-search-backend.ts +140 -140
  50. package/src/search-handler/search-backends/full-text-search-backend/full-text-search-response.ts +110 -110
  51. package/src/search-handler/search-backends/full-text-search-backend/full-text-search-service-interface.ts +17 -17
  52. package/src/search-handler/search-backends/local-search-backend/local-search-backend.ts +50 -50
  53. package/src/search-handler/search-backends/search-backend-interface.ts +10 -10
  54. package/src/search-handler/search-handler-interface.ts +18 -18
  55. package/src/search-handler/search-handler.ts +217 -217
  56. package/src/search-handler/search-helper.ts +25 -25
  57. package/src/search-handler/search-models.ts +69 -69
  58. package/src/search-handler/transcript-index-interface.ts +42 -42
  59. package/src/search-handler/transcript-index.ts +93 -93
  60. 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
- ![Radio Player](./assets/img/radio-player.png "Radio Player Demo")
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
+ ![Radio Player](./assets/img/radio-player.png "Radio Player Demo")
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
+ }