@popmenu/audio-player 0.127.0 → 0.128.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/build/cjs/components/AudioPlayer/AudioPlayerProps.d.ts +1 -1
- package/build/cjs/components/AudioPlayer/index.d.ts +1 -1
- package/build/cjs/components/AudioPlayer/util/types.d.ts +1 -1
- package/build/cjs/components/index.d.ts +2 -1
- package/build/cjs/index.js +82 -157
- package/build/cjs/index.js.map +1 -1
- package/build/esm/components/AudioPlayer/AudioPlayer.js +40 -34
- package/build/esm/components/AudioPlayer/AudioPlayer.js.map +1 -1
- package/build/esm/components/AudioPlayer/AudioPlayerProps.d.ts +1 -1
- package/build/esm/components/AudioPlayer/index.d.ts +1 -1
- package/build/esm/components/AudioPlayer/util/audioPlayerReducer.js +10 -13
- package/build/esm/components/AudioPlayer/util/audioPlayerReducer.js.map +1 -1
- package/build/esm/components/AudioPlayer/util/formatTime.js +10 -9
- package/build/esm/components/AudioPlayer/util/formatTime.js.map +1 -1
- package/build/esm/components/AudioPlayer/util/setupAudioRef.js +20 -22
- package/build/esm/components/AudioPlayer/util/setupAudioRef.js.map +1 -1
- package/build/esm/components/AudioPlayer/util/types.d.ts +1 -1
- package/build/esm/components/AudioPlayer/util/useVolumeIcon.js +2 -2
- package/build/esm/components/AudioPlayer/util/useVolumeIcon.js.map +1 -1
- package/build/esm/components/index.d.ts +2 -1
- package/package.json +4 -4
- package/build/esm/_virtual/index.js +0 -4
- package/build/esm/_virtual/index.js.map +0 -1
- package/build/esm/node_modules/classnames/index.js +0 -81
- package/build/esm/node_modules/classnames/index.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type AudioPlayerClasses = 'root' | 'playbackToggle' | 'volumeToggle' | 'volumeSlider' | 'playbackSlider' | 'playbackText' | 'lengthText';
|
|
2
2
|
export interface AudioPlayerProps {
|
|
3
3
|
/** The URL of the audio to embed. */
|
|
4
4
|
src?: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { AudioPlayer } from './AudioPlayer';
|
|
2
|
-
export { AudioPlayerProps } from './AudioPlayerProps';
|
|
2
|
+
export type { AudioPlayerProps } from './AudioPlayerProps';
|
|
@@ -47,7 +47,7 @@ interface CanPlayEvent {
|
|
|
47
47
|
interface ResetEvent {
|
|
48
48
|
type: AUDIO_PLAYER_EVENT_TYPES.RESET;
|
|
49
49
|
}
|
|
50
|
-
export
|
|
50
|
+
export type AudioPlayerEvent = TogglePlaybackEvent | ToggleVolumeControlEvent | SetVolumeEvent | TimeChangeEvent | DurationChangeEvent | ToggleMuteEvent | SetTimeEvent | CanPlayEvent | ResetEvent;
|
|
51
51
|
export declare enum PLAYBACK_STATES {
|
|
52
52
|
NONE = "NONE",
|
|
53
53
|
PAUSED = "PAUSED",
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { AudioPlayer
|
|
1
|
+
export { AudioPlayer } from './AudioPlayer';
|
|
2
|
+
export type { AudioPlayerProps } from './AudioPlayer';
|
package/build/cjs/index.js
CHANGED
|
@@ -1,89 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib = require('tslib');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var webIcons = require('@popmenu/web-icons');
|
|
6
3
|
var core = require('@material-ui/core');
|
|
7
4
|
var commonUi = require('@popmenu/common-ui');
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
/*!
|
|
12
|
-
Copyright (c) 2018 Jed Watson.
|
|
13
|
-
Licensed under the MIT License (MIT), see
|
|
14
|
-
http://jedwatson.github.io/classnames
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
(function (module) {
|
|
18
|
-
/* global define */
|
|
19
|
-
|
|
20
|
-
(function () {
|
|
21
|
-
|
|
22
|
-
var hasOwn = {}.hasOwnProperty;
|
|
23
|
-
|
|
24
|
-
function classNames () {
|
|
25
|
-
var classes = '';
|
|
26
|
-
|
|
27
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
28
|
-
var arg = arguments[i];
|
|
29
|
-
if (arg) {
|
|
30
|
-
classes = appendClass(classes, parseValue(arg));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return classes;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function parseValue (arg) {
|
|
38
|
-
if (typeof arg === 'string' || typeof arg === 'number') {
|
|
39
|
-
return arg;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (typeof arg !== 'object') {
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (Array.isArray(arg)) {
|
|
47
|
-
return classNames.apply(null, arg);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
|
|
51
|
-
return arg.toString();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
var classes = '';
|
|
55
|
-
|
|
56
|
-
for (var key in arg) {
|
|
57
|
-
if (hasOwn.call(arg, key) && arg[key]) {
|
|
58
|
-
classes = appendClass(classes, key);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return classes;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function appendClass (value, newClass) {
|
|
66
|
-
if (!newClass) {
|
|
67
|
-
return value;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (value) {
|
|
71
|
-
return value + ' ' + newClass;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return value + newClass;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (module.exports) {
|
|
78
|
-
classNames.default = classNames;
|
|
79
|
-
module.exports = classNames;
|
|
80
|
-
} else {
|
|
81
|
-
window.classNames = classNames;
|
|
82
|
-
}
|
|
83
|
-
}());
|
|
84
|
-
}(classnames));
|
|
85
|
-
|
|
86
|
-
var classNames = classnames.exports;
|
|
5
|
+
var webIcons = require('@popmenu/web-icons');
|
|
6
|
+
var classNames = require('classnames');
|
|
7
|
+
var React = require('react');
|
|
87
8
|
|
|
88
9
|
var AUDIO_PLAYER_EVENT_TYPES;
|
|
89
10
|
(function (AUDIO_PLAYER_EVENT_TYPES) {
|
|
@@ -116,7 +37,7 @@ var VOLUME_CONTROL_STATES;
|
|
|
116
37
|
VOLUME_CONTROL_STATES["HIDE"] = "HIDE";
|
|
117
38
|
})(VOLUME_CONTROL_STATES || (VOLUME_CONTROL_STATES = {}));
|
|
118
39
|
|
|
119
|
-
|
|
40
|
+
const initialAudioPlayerState = {
|
|
120
41
|
playback: PLAYBACK_STATES.NONE,
|
|
121
42
|
volumeControls: VOLUME_CONTROL_STATES.HIDE,
|
|
122
43
|
context: {
|
|
@@ -125,11 +46,10 @@ var initialAudioPlayerState = {
|
|
|
125
46
|
volumeButtonLabel: CONTROL_LABELS.MUTE,
|
|
126
47
|
},
|
|
127
48
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
var playback = PLAYBACK_STATES.NONE;
|
|
49
|
+
const getPlayback = ({ current: audio }) => {
|
|
50
|
+
let playback = PLAYBACK_STATES.NONE;
|
|
131
51
|
if (audio) {
|
|
132
|
-
|
|
52
|
+
const { paused, readyState } = audio;
|
|
133
53
|
if (readyState === 0) {
|
|
134
54
|
playback = PLAYBACK_STATES.NONE;
|
|
135
55
|
}
|
|
@@ -142,10 +62,9 @@ var getPlayback = function (_a) {
|
|
|
142
62
|
}
|
|
143
63
|
return playback;
|
|
144
64
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
var nextState = tslib.__assign({}, state);
|
|
65
|
+
const audioPlayerReducer = (state, event) => {
|
|
66
|
+
const { audioRef } = state.context;
|
|
67
|
+
const nextState = { ...state };
|
|
149
68
|
switch (state.playback) {
|
|
150
69
|
case PLAYBACK_STATES.NONE:
|
|
151
70
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY) {
|
|
@@ -154,12 +73,12 @@ var audioPlayerReducer = function (state, event) {
|
|
|
154
73
|
}
|
|
155
74
|
// Required for iOS users. iOS prevents media from being loaded before user interaction.
|
|
156
75
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK) {
|
|
157
|
-
|
|
76
|
+
audioRef.current?.play();
|
|
158
77
|
}
|
|
159
78
|
break;
|
|
160
79
|
case PLAYBACK_STATES.PAUSED:
|
|
161
80
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK) {
|
|
162
|
-
|
|
81
|
+
audioRef.current?.play();
|
|
163
82
|
nextState.playback = getPlayback(audioRef);
|
|
164
83
|
nextState.context.playbackButtonLabel = CONTROL_LABELS.PAUSE;
|
|
165
84
|
return nextState;
|
|
@@ -167,7 +86,7 @@ var audioPlayerReducer = function (state, event) {
|
|
|
167
86
|
break;
|
|
168
87
|
case PLAYBACK_STATES.PLAYING:
|
|
169
88
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK) {
|
|
170
|
-
|
|
89
|
+
audioRef.current?.pause();
|
|
171
90
|
nextState.playback = getPlayback(audioRef);
|
|
172
91
|
nextState.context.playbackButtonLabel = CONTROL_LABELS.PLAY;
|
|
173
92
|
return nextState;
|
|
@@ -224,8 +143,8 @@ var audioPlayerReducer = function (state, event) {
|
|
|
224
143
|
return state;
|
|
225
144
|
};
|
|
226
145
|
|
|
227
|
-
|
|
228
|
-
|
|
146
|
+
const useVolumeIcon = (state) => {
|
|
147
|
+
let volumeIcon = webIcons.VolumeUp;
|
|
229
148
|
if (state.context.volume >= 0.5) {
|
|
230
149
|
volumeIcon = webIcons.VolumeUp;
|
|
231
150
|
}
|
|
@@ -243,49 +162,48 @@ var useVolumeIcon = function (state) {
|
|
|
243
162
|
return volumeIcon;
|
|
244
163
|
};
|
|
245
164
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
165
|
+
const appendZero = (num) => (num < 10 ? `0${num}` : num);
|
|
166
|
+
const formatTime = (time, remaning = false) => {
|
|
167
|
+
const dateTime = new Date(0, 0, 0, 0, 0, time, 0);
|
|
168
|
+
const dateTimeH = appendZero(dateTime.getHours());
|
|
169
|
+
const dateTimeM = appendZero(dateTime.getMinutes());
|
|
170
|
+
const dateTimeS = appendZero(dateTime.getSeconds());
|
|
171
|
+
const minus = remaning ? '-' : '';
|
|
172
|
+
return dateTime.getHours() > 0
|
|
173
|
+
? `${minus}${dateTimeH}:${dateTimeM}:${dateTimeS}`
|
|
174
|
+
: `${minus}${dateTimeM}:${dateTimeS}`;
|
|
255
175
|
};
|
|
256
176
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
send({ type: AUDIO_PLAYER_EVENT_TYPES.DURATION_CHANGE, context: { duration: duration } });
|
|
177
|
+
const setupAudioRef = (config) => () => {
|
|
178
|
+
const { audioRef, send } = config;
|
|
179
|
+
const handleDurationChange = (event) => {
|
|
180
|
+
const { duration } = event.target;
|
|
181
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.DURATION_CHANGE, context: { duration } });
|
|
263
182
|
};
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime
|
|
183
|
+
const handleTimeUpdate = (event) => {
|
|
184
|
+
const { currentTime } = event.target;
|
|
185
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime } });
|
|
267
186
|
};
|
|
268
|
-
|
|
187
|
+
const handleCanPlay = () => {
|
|
269
188
|
send({ type: AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY });
|
|
270
189
|
};
|
|
271
|
-
|
|
190
|
+
const handleEnded = () => {
|
|
272
191
|
send({ type: AUDIO_PLAYER_EVENT_TYPES.RESET });
|
|
273
192
|
};
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
return
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
(_d = audioRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('ended', handleEnded);
|
|
193
|
+
audioRef.current?.addEventListener('durationchange', handleDurationChange);
|
|
194
|
+
audioRef.current?.addEventListener('timeupdate', handleTimeUpdate);
|
|
195
|
+
audioRef.current?.addEventListener('canplay', handleCanPlay);
|
|
196
|
+
audioRef.current?.addEventListener('ended', handleEnded);
|
|
197
|
+
return () => {
|
|
198
|
+
audioRef.current?.removeEventListener('durationchange', handleDurationChange);
|
|
199
|
+
audioRef.current?.removeEventListener('timeupdate', handleTimeUpdate);
|
|
200
|
+
audioRef.current?.removeEventListener('canplay', handleCanPlay);
|
|
201
|
+
audioRef.current?.removeEventListener('ended', handleEnded);
|
|
284
202
|
};
|
|
285
|
-
};
|
|
203
|
+
};
|
|
286
204
|
|
|
287
|
-
|
|
288
|
-
|
|
205
|
+
const getPlaybackIcon = (status) => {
|
|
206
|
+
let icon;
|
|
289
207
|
switch (status) {
|
|
290
208
|
case PLAYBACK_STATES.PAUSED:
|
|
291
209
|
icon = webIcons.Play;
|
|
@@ -299,42 +217,49 @@ var getPlaybackIcon = function (status) {
|
|
|
299
217
|
}
|
|
300
218
|
return icon;
|
|
301
219
|
};
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
220
|
+
const AudioPlayer = (props) => {
|
|
221
|
+
const { src, classes = {} } = props;
|
|
222
|
+
const volumeRef = React.useRef(null);
|
|
223
|
+
const audioRef = React.useRef(null);
|
|
224
|
+
const { spacing } = core.useTheme();
|
|
225
|
+
const [disableRipple, setDisableRipple] = React.useState(false);
|
|
226
|
+
const [state, send] = React.useReducer(audioPlayerReducer, {
|
|
227
|
+
...initialAudioPlayerState,
|
|
228
|
+
context: { ...initialAudioPlayerState.context, audioRef },
|
|
229
|
+
});
|
|
230
|
+
React.useEffect(setupAudioRef({ audioRef, send }), [audioRef]);
|
|
231
|
+
const PlaybackIcon = getPlaybackIcon(state.playback);
|
|
232
|
+
const VolumeIcon = React.useMemo(() => useVolumeIcon(state), [state.context.volume, state.context.audioRef.current?.muted]);
|
|
233
|
+
const togglePlayback = () => send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK });
|
|
234
|
+
const toggleVolumeControl = () => send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_VOLUME_CONTROL });
|
|
235
|
+
const toggleMute = () => send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_MUTE });
|
|
236
|
+
const setTime = (_e, time) => {
|
|
237
|
+
if (Array.isArray(time))
|
|
238
|
+
return;
|
|
239
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.SET_TIME, context: { time } });
|
|
240
|
+
};
|
|
241
|
+
const setVolume = (_e, volume) => {
|
|
242
|
+
if (Array.isArray(volume))
|
|
243
|
+
return;
|
|
244
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.VOLUME_CHANGE, context: { volume } });
|
|
245
|
+
};
|
|
318
246
|
return (React.createElement(commonUi.Box, { display: "flex", alignItems: "center", gridGap: spacing(1), className: classNames([classes.root]) },
|
|
319
247
|
React.createElement("audio", { ref: audioRef, src: src }),
|
|
320
248
|
React.createElement(commonUi.Box, null,
|
|
321
|
-
React.createElement(commonUi.IconButton,
|
|
249
|
+
React.createElement(commonUi.IconButton, { ...(classes.playbackToggle && { classes: { root: classes.playbackToggle } }), "aria-label": state.context.playbackButtonLabel, disabled: audioRef.current?.networkState === 2, onClick: togglePlayback },
|
|
322
250
|
React.createElement(commonUi.Icon, { icon: PlaybackIcon })),
|
|
323
|
-
React.createElement(commonUi.IconButton,
|
|
251
|
+
React.createElement(commonUi.IconButton, { ...(classes.volumeToggle && { classes: { root: classes.volumeToggle } }), "aria-label": state.context.volumeButtonLabel, ref: volumeRef, onClick: toggleMute, onMouseEnter: toggleVolumeControl, onMouseLeave: toggleVolumeControl, disableRipple: disableRipple },
|
|
324
252
|
React.createElement(commonUi.Icon, { icon: VolumeIcon }),
|
|
325
|
-
React.createElement(commonUi.Popper, { onClick:
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
React.createElement(commonUi.Box, { py: 1, height: 80 },
|
|
330
|
-
React.createElement(core.Slider, { color: "secondary", orientation: "vertical", value: state.context.volume, onChange: setVolume, max: 1, step: 0.01 })))));
|
|
331
|
-
}))),
|
|
253
|
+
React.createElement(commonUi.Popper, { onClick: (e) => e.stopPropagation(), onMouseEnter: () => setDisableRipple(true), onMouseLeave: () => setDisableRipple(false), open: state.volumeControls === VOLUME_CONTROL_STATES.SHOW, anchorEl: () => volumeRef.current, transition: true, placement: "top", className: classNames([classes.volumeSlider]) }, ({ TransitionProps }) => (React.createElement(core.Grow, { ...TransitionProps },
|
|
254
|
+
React.createElement(commonUi.Paper, { elevation: 1 },
|
|
255
|
+
React.createElement(commonUi.Box, { py: 1, height: 80 },
|
|
256
|
+
React.createElement(core.Slider, { color: "secondary", orientation: "vertical", value: state.context.volume, onChange: setVolume, max: 1, step: 0.01 })))))))),
|
|
332
257
|
React.createElement(commonUi.Box, { display: "flex", flexGrow: 1, alignItems: "center", gridGap: spacing(1) },
|
|
333
258
|
React.createElement(commonUi.Box, { flexBasis: 60, flexShrink: 0 },
|
|
334
|
-
React.createElement(commonUi.Typography,
|
|
335
|
-
React.createElement(core.Slider,
|
|
259
|
+
React.createElement(commonUi.Typography, { ...(classes.playbackText && { classes: { root: classes.playbackText } }) }, formatTime(state.context.audioRef.current?.currentTime || 0))),
|
|
260
|
+
React.createElement(core.Slider, { ...(classes.playbackSlider && { classes: { root: classes.playbackSlider } }), color: "secondary", value: state.context.audioRef.current?.currentTime || 0, max: state.context.audioRef.current?.duration || 1, onChange: setTime, disabled: state.playback === PLAYBACK_STATES.NONE }),
|
|
336
261
|
React.createElement(commonUi.Box, { flexBasis: 60, flexShrink: 0, textAlign: "end" },
|
|
337
|
-
React.createElement(commonUi.Typography,
|
|
262
|
+
React.createElement(commonUi.Typography, { ...(classes.lengthText && { classes: { root: classes.lengthText } }) }, formatTime(state.context.audioRef.current?.duration || 0))))));
|
|
338
263
|
};
|
|
339
264
|
|
|
340
265
|
exports.AudioPlayer = AudioPlayer;
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/classnames/index.js","../../src/components/AudioPlayer/util/types.ts","../../src/components/AudioPlayer/util/audioPlayerReducer.ts","../../src/components/AudioPlayer/util/useVolumeIcon.ts","../../src/components/AudioPlayer/util/formatTime.ts","../../src/components/AudioPlayer/util/setupAudioRef.ts","../../src/components/AudioPlayer/AudioPlayer.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n",null,null,null,null,null,null],"names":["__assign","EVENT_TYPES","VolumeUp","VolumeDown","VolumeMute","VolumeOff","Play","Pause","useRef","useTheme","useState","useReducer","useEffect","useMemo","EVENTS","Box","IconButton","Icon","Popper","Grow","Paper","Slider","Typography"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/AudioPlayer/util/types.ts","../../src/components/AudioPlayer/util/audioPlayerReducer.ts","../../src/components/AudioPlayer/util/useVolumeIcon.ts","../../src/components/AudioPlayer/util/formatTime.ts","../../src/components/AudioPlayer/util/setupAudioRef.ts","../../src/components/AudioPlayer/AudioPlayer.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["EVENT_TYPES","VolumeUp","VolumeDown","VolumeMute","VolumeOff","Play","Pause","useRef","useTheme","useState","useReducer","useEffect","useMemo","EVENTS","Box","IconButton","Icon","Popper","Grow","Paper","Slider","Typography"],"mappings":"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"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { __assign } from 'tslib';
|
|
2
|
-
import React, { useRef, useState, useReducer, useEffect, useMemo } from 'react';
|
|
3
|
-
import classNames from '../../node_modules/classnames/index.js';
|
|
4
|
-
import { Play, Pause } from '@popmenu/web-icons';
|
|
5
1
|
import { useTheme, Grow, Slider } from '@material-ui/core';
|
|
6
2
|
import { Box, IconButton, Icon, Popper, Paper, Typography } from '@popmenu/common-ui';
|
|
3
|
+
import { Play, Pause } from '@popmenu/web-icons';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import React, { useRef, useState, useReducer, useEffect, useMemo } from 'react';
|
|
7
6
|
import { audioPlayerReducer, initialAudioPlayerState } from './util/audioPlayerReducer.js';
|
|
8
7
|
import { useVolumeIcon } from './util/useVolumeIcon.js';
|
|
9
8
|
import { formatTime } from './util/formatTime.js';
|
|
10
9
|
import { setupAudioRef } from './util/setupAudioRef.js';
|
|
11
10
|
import { VOLUME_CONTROL_STATES, PLAYBACK_STATES, AUDIO_PLAYER_EVENT_TYPES } from './util/types.js';
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const getPlaybackIcon = (status) => {
|
|
13
|
+
let icon;
|
|
15
14
|
switch (status) {
|
|
16
15
|
case PLAYBACK_STATES.PAUSED:
|
|
17
16
|
icon = Play;
|
|
@@ -25,42 +24,49 @@ var getPlaybackIcon = function (status) {
|
|
|
25
24
|
}
|
|
26
25
|
return icon;
|
|
27
26
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
27
|
+
const AudioPlayer = (props) => {
|
|
28
|
+
const { src, classes = {} } = props;
|
|
29
|
+
const volumeRef = useRef(null);
|
|
30
|
+
const audioRef = useRef(null);
|
|
31
|
+
const { spacing } = useTheme();
|
|
32
|
+
const [disableRipple, setDisableRipple] = useState(false);
|
|
33
|
+
const [state, send] = useReducer(audioPlayerReducer, {
|
|
34
|
+
...initialAudioPlayerState,
|
|
35
|
+
context: { ...initialAudioPlayerState.context, audioRef },
|
|
36
|
+
});
|
|
37
|
+
useEffect(setupAudioRef({ audioRef, send }), [audioRef]);
|
|
38
|
+
const PlaybackIcon = getPlaybackIcon(state.playback);
|
|
39
|
+
const VolumeIcon = useMemo(() => useVolumeIcon(state), [state.context.volume, state.context.audioRef.current?.muted]);
|
|
40
|
+
const togglePlayback = () => send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK });
|
|
41
|
+
const toggleVolumeControl = () => send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_VOLUME_CONTROL });
|
|
42
|
+
const toggleMute = () => send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_MUTE });
|
|
43
|
+
const setTime = (_e, time) => {
|
|
44
|
+
if (Array.isArray(time))
|
|
45
|
+
return;
|
|
46
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.SET_TIME, context: { time } });
|
|
47
|
+
};
|
|
48
|
+
const setVolume = (_e, volume) => {
|
|
49
|
+
if (Array.isArray(volume))
|
|
50
|
+
return;
|
|
51
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.VOLUME_CHANGE, context: { volume } });
|
|
52
|
+
};
|
|
44
53
|
return (React.createElement(Box, { display: "flex", alignItems: "center", gridGap: spacing(1), className: classNames([classes.root]) },
|
|
45
54
|
React.createElement("audio", { ref: audioRef, src: src }),
|
|
46
55
|
React.createElement(Box, null,
|
|
47
|
-
React.createElement(IconButton,
|
|
56
|
+
React.createElement(IconButton, { ...(classes.playbackToggle && { classes: { root: classes.playbackToggle } }), "aria-label": state.context.playbackButtonLabel, disabled: audioRef.current?.networkState === 2, onClick: togglePlayback },
|
|
48
57
|
React.createElement(Icon, { icon: PlaybackIcon })),
|
|
49
|
-
React.createElement(IconButton,
|
|
58
|
+
React.createElement(IconButton, { ...(classes.volumeToggle && { classes: { root: classes.volumeToggle } }), "aria-label": state.context.volumeButtonLabel, ref: volumeRef, onClick: toggleMute, onMouseEnter: toggleVolumeControl, onMouseLeave: toggleVolumeControl, disableRipple: disableRipple },
|
|
50
59
|
React.createElement(Icon, { icon: VolumeIcon }),
|
|
51
|
-
React.createElement(Popper, { onClick:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
React.createElement(Box, { py: 1, height: 80 },
|
|
56
|
-
React.createElement(Slider, { color: "secondary", orientation: "vertical", value: state.context.volume, onChange: setVolume, max: 1, step: 0.01 })))));
|
|
57
|
-
}))),
|
|
60
|
+
React.createElement(Popper, { onClick: (e) => e.stopPropagation(), onMouseEnter: () => setDisableRipple(true), onMouseLeave: () => setDisableRipple(false), open: state.volumeControls === VOLUME_CONTROL_STATES.SHOW, anchorEl: () => volumeRef.current, transition: true, placement: "top", className: classNames([classes.volumeSlider]) }, ({ TransitionProps }) => (React.createElement(Grow, { ...TransitionProps },
|
|
61
|
+
React.createElement(Paper, { elevation: 1 },
|
|
62
|
+
React.createElement(Box, { py: 1, height: 80 },
|
|
63
|
+
React.createElement(Slider, { color: "secondary", orientation: "vertical", value: state.context.volume, onChange: setVolume, max: 1, step: 0.01 })))))))),
|
|
58
64
|
React.createElement(Box, { display: "flex", flexGrow: 1, alignItems: "center", gridGap: spacing(1) },
|
|
59
65
|
React.createElement(Box, { flexBasis: 60, flexShrink: 0 },
|
|
60
|
-
React.createElement(Typography,
|
|
61
|
-
React.createElement(Slider,
|
|
66
|
+
React.createElement(Typography, { ...(classes.playbackText && { classes: { root: classes.playbackText } }) }, formatTime(state.context.audioRef.current?.currentTime || 0))),
|
|
67
|
+
React.createElement(Slider, { ...(classes.playbackSlider && { classes: { root: classes.playbackSlider } }), color: "secondary", value: state.context.audioRef.current?.currentTime || 0, max: state.context.audioRef.current?.duration || 1, onChange: setTime, disabled: state.playback === PLAYBACK_STATES.NONE }),
|
|
62
68
|
React.createElement(Box, { flexBasis: 60, flexShrink: 0, textAlign: "end" },
|
|
63
|
-
React.createElement(Typography,
|
|
69
|
+
React.createElement(Typography, { ...(classes.lengthText && { classes: { root: classes.lengthText } }) }, formatTime(state.context.audioRef.current?.duration || 0))))));
|
|
64
70
|
};
|
|
65
71
|
|
|
66
72
|
export { AudioPlayer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioPlayer.js","sources":["../../../../src/components/AudioPlayer/AudioPlayer.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useReducer, useRef, useState } from 'react'\nimport classNames from 'classnames'\nimport { Pause, Play } from '@popmenu/web-icons'\nimport { Grow, Slider, useTheme } from '@material-ui/core'\nimport { Box, Icon, IconButton, Typography, Paper, Popper } from '@popmenu/common-ui'\n\nimport { AudioPlayerProps } from './AudioPlayerProps'\nimport {\n audioPlayerReducer,\n AUDIO_PLAYER_EVENT_TYPES as EVENTS,\n VOLUME_CONTROL_STATES,\n formatTime,\n useVolumeIcon,\n setupAudioRef,\n initialAudioPlayerState,\n PLAYBACK_STATES,\n} from './util'\n\nconst getPlaybackIcon = (status: PLAYBACK_STATES) => {\n let icon\n switch (status) {\n case PLAYBACK_STATES.PAUSED:\n icon = Play\n break\n case PLAYBACK_STATES.PLAYING:\n icon = Pause\n break\n case PLAYBACK_STATES.NONE:\n icon = Play\n break\n default:\n break\n }\n return icon\n}\n\nexport const AudioPlayer: FC<AudioPlayerProps> = (props) => {\n const { src, classes = {} } = props\n const volumeRef = useRef<HTMLButtonElement>(null)\n const audioRef = useRef<HTMLAudioElement>(null)\n const { spacing } = useTheme()\n const [disableRipple, setDisableRipple] = useState(false)\n const [state, send] = useReducer(audioPlayerReducer, {\n ...initialAudioPlayerState,\n context: { ...initialAudioPlayerState.context, audioRef },\n })\n useEffect(setupAudioRef({ audioRef, send }), [audioRef])\n const PlaybackIcon = getPlaybackIcon(state.playback)\n const VolumeIcon = useMemo(() => useVolumeIcon(state), [state.context.volume, state.context.audioRef.current?.muted])\n const togglePlayback = () => send({ type: EVENTS.TOGGLE_PLAYBACK })\n const toggleVolumeControl = () => send({ type: EVENTS.TOGGLE_VOLUME_CONTROL })\n const toggleMute = () => send({ type: EVENTS.TOGGLE_MUTE })\n const setTime = (_e: never, time: number) => send({ type: EVENTS.SET_TIME, context: { time } })\n const setVolume = (_e: never, volume: number) => send({ type: EVENTS.VOLUME_CHANGE, context: { volume } })\n\n return (\n <Box display=\"flex\" alignItems=\"center\" gridGap={spacing(1)} className={classNames([classes.root])}>\n <audio ref={audioRef} src={src} />\n <Box>\n <IconButton\n {...(classes.playbackToggle && { classes: { root: classes.playbackToggle } })}\n aria-label={state.context.playbackButtonLabel}\n disabled={audioRef.current?.networkState === 2}\n onClick={togglePlayback}\n >\n <Icon icon={PlaybackIcon} />\n </IconButton>\n <IconButton\n {...(classes.volumeToggle && { classes: { root: classes.volumeToggle } })}\n aria-label={state.context.volumeButtonLabel}\n ref={volumeRef}\n onClick={toggleMute}\n onMouseEnter={toggleVolumeControl}\n onMouseLeave={toggleVolumeControl}\n disableRipple={disableRipple}\n >\n <Icon icon={VolumeIcon} />\n <Popper\n onClick={(e) => e.stopPropagation()}\n onMouseEnter={() => setDisableRipple(true)}\n onMouseLeave={() => setDisableRipple(false)}\n open={state.volumeControls === VOLUME_CONTROL_STATES.SHOW}\n anchorEl={() => volumeRef.current as HTMLButtonElement}\n transition={true}\n placement=\"top\"\n className={classNames([classes.volumeSlider])}\n >\n {({ TransitionProps }) => (\n <Grow {...TransitionProps}>\n <Paper elevation={1}>\n <Box py={1} height={80}>\n <Slider\n color=\"secondary\"\n orientation=\"vertical\"\n value={state.context.volume}\n onChange={setVolume}\n max={1}\n step={0.01}\n />\n </Box>\n </Paper>\n </Grow>\n )}\n </Popper>\n </IconButton>\n </Box>\n <Box display=\"flex\" flexGrow={1} alignItems=\"center\" gridGap={spacing(1)}>\n <Box flexBasis={60} flexShrink={0}>\n <Typography {...(classes.playbackText && { classes: { root: classes.playbackText } })}>\n {formatTime(state.context.audioRef.current?.currentTime || 0)}\n </Typography>\n </Box>\n <Slider\n {...(classes.playbackSlider && { classes: { root: classes.playbackSlider } })}\n color=\"secondary\"\n value={state.context.audioRef.current?.currentTime || 0}\n max={state.context.audioRef.current?.duration || 1}\n onChange={setTime}\n disabled={state.playback === PLAYBACK_STATES.NONE}\n />\n <Box flexBasis={60} flexShrink={0} textAlign=\"end\">\n <Typography {...(classes.lengthText && { classes: { root: classes.lengthText } })}>\n {formatTime(state.context.audioRef.current?.duration || 0)}\n </Typography>\n </Box>\n </Box>\n </Box>\n )\n}\n"],"names":["EVENTS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AudioPlayer.js","sources":["../../../../src/components/AudioPlayer/AudioPlayer.tsx"],"sourcesContent":["import { Grow, Slider, useTheme } from '@material-ui/core'\nimport { Box, Icon, IconButton, Paper, Popper, Typography } from '@popmenu/common-ui'\nimport { Pause, Play } from '@popmenu/web-icons'\nimport classNames from 'classnames'\nimport React, { ChangeEvent, FC, useEffect, useMemo, useReducer, useRef, useState } from 'react'\n\nimport { AudioPlayerProps } from './AudioPlayerProps'\nimport {\n audioPlayerReducer,\n AUDIO_PLAYER_EVENT_TYPES as EVENTS,\n formatTime,\n initialAudioPlayerState,\n PLAYBACK_STATES,\n setupAudioRef,\n useVolumeIcon,\n VOLUME_CONTROL_STATES,\n} from './util'\n\nconst getPlaybackIcon = (status: PLAYBACK_STATES) => {\n let icon\n switch (status) {\n case PLAYBACK_STATES.PAUSED:\n icon = Play\n break\n case PLAYBACK_STATES.PLAYING:\n icon = Pause\n break\n case PLAYBACK_STATES.NONE:\n icon = Play\n break\n default:\n break\n }\n return icon\n}\n\nexport const AudioPlayer: FC<AudioPlayerProps> = (props) => {\n const { src, classes = {} } = props\n const volumeRef = useRef<HTMLButtonElement>(null)\n const audioRef = useRef<HTMLAudioElement>(null)\n const { spacing } = useTheme()\n const [disableRipple, setDisableRipple] = useState(false)\n const [state, send] = useReducer(audioPlayerReducer, {\n ...initialAudioPlayerState,\n context: { ...initialAudioPlayerState.context, audioRef },\n })\n useEffect(setupAudioRef({ audioRef, send }), [audioRef])\n const PlaybackIcon = getPlaybackIcon(state.playback)\n const VolumeIcon = useMemo(() => useVolumeIcon(state), [state.context.volume, state.context.audioRef.current?.muted])\n const togglePlayback = () => send({ type: EVENTS.TOGGLE_PLAYBACK })\n const toggleVolumeControl = () => send({ type: EVENTS.TOGGLE_VOLUME_CONTROL })\n const toggleMute = () => send({ type: EVENTS.TOGGLE_MUTE })\n const setTime = (_e: ChangeEvent<unknown>, time: number | number[]) => {\n if (Array.isArray(time)) return\n send({ type: EVENTS.SET_TIME, context: { time } })\n }\n const setVolume = (_e: ChangeEvent<unknown>, volume: number | number[]) => {\n if (Array.isArray(volume)) return\n send({ type: EVENTS.VOLUME_CHANGE, context: { volume } })\n }\n\n return (\n <Box display=\"flex\" alignItems=\"center\" gridGap={spacing(1)} className={classNames([classes.root])}>\n <audio ref={audioRef} src={src} />\n <Box>\n <IconButton\n {...(classes.playbackToggle && { classes: { root: classes.playbackToggle } })}\n aria-label={state.context.playbackButtonLabel}\n disabled={audioRef.current?.networkState === 2}\n onClick={togglePlayback}\n >\n <Icon icon={PlaybackIcon} />\n </IconButton>\n <IconButton\n {...(classes.volumeToggle && { classes: { root: classes.volumeToggle } })}\n aria-label={state.context.volumeButtonLabel}\n ref={volumeRef}\n onClick={toggleMute}\n onMouseEnter={toggleVolumeControl}\n onMouseLeave={toggleVolumeControl}\n disableRipple={disableRipple}\n >\n <Icon icon={VolumeIcon} />\n <Popper\n onClick={(e) => e.stopPropagation()}\n onMouseEnter={() => setDisableRipple(true)}\n onMouseLeave={() => setDisableRipple(false)}\n open={state.volumeControls === VOLUME_CONTROL_STATES.SHOW}\n anchorEl={() => volumeRef.current as HTMLButtonElement}\n transition={true}\n placement=\"top\"\n className={classNames([classes.volumeSlider])}\n >\n {({ TransitionProps }) => (\n <Grow {...TransitionProps}>\n <Paper elevation={1}>\n <Box py={1} height={80}>\n <Slider\n color=\"secondary\"\n orientation=\"vertical\"\n value={state.context.volume}\n onChange={setVolume}\n max={1}\n step={0.01}\n />\n </Box>\n </Paper>\n </Grow>\n )}\n </Popper>\n </IconButton>\n </Box>\n <Box display=\"flex\" flexGrow={1} alignItems=\"center\" gridGap={spacing(1)}>\n <Box flexBasis={60} flexShrink={0}>\n <Typography {...(classes.playbackText && { classes: { root: classes.playbackText } })}>\n {formatTime(state.context.audioRef.current?.currentTime || 0)}\n </Typography>\n </Box>\n <Slider\n {...(classes.playbackSlider && { classes: { root: classes.playbackSlider } })}\n color=\"secondary\"\n value={state.context.audioRef.current?.currentTime || 0}\n max={state.context.audioRef.current?.duration || 1}\n onChange={setTime}\n disabled={state.playback === PLAYBACK_STATES.NONE}\n />\n <Box flexBasis={60} flexShrink={0} textAlign=\"end\">\n <Typography {...(classes.lengthText && { classes: { root: classes.lengthText } })}>\n {formatTime(state.context.audioRef.current?.duration || 0)}\n </Typography>\n </Box>\n </Box>\n </Box>\n )\n}\n"],"names":["EVENTS"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
type AudioPlayerClasses = 'root' | 'playbackToggle' | 'volumeToggle' | 'volumeSlider' | 'playbackSlider' | 'playbackText' | 'lengthText';
|
|
2
2
|
export interface AudioPlayerProps {
|
|
3
3
|
/** The URL of the audio to embed. */
|
|
4
4
|
src?: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { AudioPlayer } from './AudioPlayer';
|
|
2
|
-
export { AudioPlayerProps } from './AudioPlayerProps';
|
|
2
|
+
export type { AudioPlayerProps } from './AudioPlayerProps';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { __assign } from 'tslib';
|
|
2
1
|
import { CONTROL_LABELS, VOLUME_CONTROL_STATES, PLAYBACK_STATES, AUDIO_PLAYER_EVENT_TYPES } from './types.js';
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
const initialAudioPlayerState = {
|
|
5
4
|
playback: PLAYBACK_STATES.NONE,
|
|
6
5
|
volumeControls: VOLUME_CONTROL_STATES.HIDE,
|
|
7
6
|
context: {
|
|
@@ -10,11 +9,10 @@ var initialAudioPlayerState = {
|
|
|
10
9
|
volumeButtonLabel: CONTROL_LABELS.MUTE,
|
|
11
10
|
},
|
|
12
11
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var playback = PLAYBACK_STATES.NONE;
|
|
12
|
+
const getPlayback = ({ current: audio }) => {
|
|
13
|
+
let playback = PLAYBACK_STATES.NONE;
|
|
16
14
|
if (audio) {
|
|
17
|
-
|
|
15
|
+
const { paused, readyState } = audio;
|
|
18
16
|
if (readyState === 0) {
|
|
19
17
|
playback = PLAYBACK_STATES.NONE;
|
|
20
18
|
}
|
|
@@ -27,10 +25,9 @@ var getPlayback = function (_a) {
|
|
|
27
25
|
}
|
|
28
26
|
return playback;
|
|
29
27
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
var nextState = __assign({}, state);
|
|
28
|
+
const audioPlayerReducer = (state, event) => {
|
|
29
|
+
const { audioRef } = state.context;
|
|
30
|
+
const nextState = { ...state };
|
|
34
31
|
switch (state.playback) {
|
|
35
32
|
case PLAYBACK_STATES.NONE:
|
|
36
33
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY) {
|
|
@@ -39,12 +36,12 @@ var audioPlayerReducer = function (state, event) {
|
|
|
39
36
|
}
|
|
40
37
|
// Required for iOS users. iOS prevents media from being loaded before user interaction.
|
|
41
38
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK) {
|
|
42
|
-
|
|
39
|
+
audioRef.current?.play();
|
|
43
40
|
}
|
|
44
41
|
break;
|
|
45
42
|
case PLAYBACK_STATES.PAUSED:
|
|
46
43
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK) {
|
|
47
|
-
|
|
44
|
+
audioRef.current?.play();
|
|
48
45
|
nextState.playback = getPlayback(audioRef);
|
|
49
46
|
nextState.context.playbackButtonLabel = CONTROL_LABELS.PAUSE;
|
|
50
47
|
return nextState;
|
|
@@ -52,7 +49,7 @@ var audioPlayerReducer = function (state, event) {
|
|
|
52
49
|
break;
|
|
53
50
|
case PLAYBACK_STATES.PLAYING:
|
|
54
51
|
if (event.type === AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK) {
|
|
55
|
-
|
|
52
|
+
audioRef.current?.pause();
|
|
56
53
|
nextState.playback = getPlayback(audioRef);
|
|
57
54
|
nextState.context.playbackButtonLabel = CONTROL_LABELS.PLAY;
|
|
58
55
|
return nextState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audioPlayerReducer.js","sources":["../../../../../src/components/AudioPlayer/util/audioPlayerReducer.ts"],"sourcesContent":["import { RefObject } from 'react'\nimport {\n AUDIO_PLAYER_EVENT_TYPES as EVENT_TYPES,\n PLAYBACK_STATES,\n CONTROL_LABELS,\n AudioPlayerState,\n AudioPlayerEvent,\n VOLUME_CONTROL_STATES,\n} from './types'\n\nexport const initialAudioPlayerState = {\n playback: PLAYBACK_STATES.NONE,\n volumeControls: VOLUME_CONTROL_STATES.HIDE,\n context: {\n volume: 100,\n playbackButtonLabel: CONTROL_LABELS.PLAY,\n volumeButtonLabel: CONTROL_LABELS.MUTE,\n },\n}\n\nconst getPlayback = ({ current: audio }: RefObject<HTMLAudioElement>): PLAYBACK_STATES => {\n let playback: PLAYBACK_STATES = PLAYBACK_STATES.NONE\n if (audio) {\n const { paused, readyState } = audio\n if (readyState === 0) {\n playback = PLAYBACK_STATES.NONE\n } else if (paused) {\n playback = PLAYBACK_STATES.PAUSED\n } else {\n playback = PLAYBACK_STATES.PLAYING\n }\n }\n return playback\n}\n\nexport const audioPlayerReducer = (state: AudioPlayerState, event: AudioPlayerEvent): AudioPlayerState => {\n const { audioRef } = state.context\n const nextState: AudioPlayerState = { ...state }\n switch (state.playback) {\n case PLAYBACK_STATES.NONE:\n if (event.type === EVENT_TYPES.CAN_PLAY) {\n nextState.playback = getPlayback(audioRef)\n return nextState\n }\n // Required for iOS users. iOS prevents media from being loaded before user interaction.\n if (event.type === EVENT_TYPES.TOGGLE_PLAYBACK) {\n audioRef.current?.play()\n }\n break\n case PLAYBACK_STATES.PAUSED:\n if (event.type === EVENT_TYPES.TOGGLE_PLAYBACK) {\n audioRef.current?.play()\n nextState.playback = getPlayback(audioRef)\n nextState.context.playbackButtonLabel = CONTROL_LABELS.PAUSE\n return nextState\n }\n break\n case PLAYBACK_STATES.PLAYING:\n if (event.type === EVENT_TYPES.TOGGLE_PLAYBACK) {\n audioRef.current?.pause()\n nextState.playback = getPlayback(audioRef)\n nextState.context.playbackButtonLabel = CONTROL_LABELS.PLAY\n return nextState\n }\n if (event.type === EVENT_TYPES.TIME_CHANGE) {\n return nextState\n }\n break\n default:\n }\n switch (state.volumeControls) {\n case VOLUME_CONTROL_STATES.SHOW:\n if (event.type === EVENT_TYPES.TOGGLE_VOLUME_CONTROL) {\n nextState.volumeControls = VOLUME_CONTROL_STATES.HIDE\n return nextState\n }\n if (event.type === EVENT_TYPES.VOLUME_CHANGE) {\n if (nextState.context.volume !== event.context.volume) {\n nextState.context.volume = event.context.volume\n if (audioRef.current) {\n audioRef.current.volume = event.context.volume\n }\n return nextState\n }\n }\n break\n case VOLUME_CONTROL_STATES.HIDE:\n if (event.type === EVENT_TYPES.TOGGLE_VOLUME_CONTROL) {\n nextState.volumeControls = VOLUME_CONTROL_STATES.SHOW\n return nextState\n }\n break\n default:\n break\n }\n switch (event.type) {\n case EVENT_TYPES.TOGGLE_MUTE:\n if (audioRef.current) {\n audioRef.current.muted = !audioRef.current.muted\n return nextState\n }\n break\n case EVENT_TYPES.SET_TIME:\n if (audioRef.current) {\n audioRef.current.currentTime = event.context.time\n return nextState\n }\n break\n case EVENT_TYPES.RESET:\n if (audioRef.current) {\n audioRef.current.currentTime = 0\n nextState.playback = getPlayback(audioRef)\n return nextState\n }\n break\n default:\n break\n }\n return state\n}\n"],"names":["EVENT_TYPES"],"mappings":"
|
|
1
|
+
{"version":3,"file":"audioPlayerReducer.js","sources":["../../../../../src/components/AudioPlayer/util/audioPlayerReducer.ts"],"sourcesContent":["import { RefObject } from 'react'\nimport {\n AUDIO_PLAYER_EVENT_TYPES as EVENT_TYPES,\n PLAYBACK_STATES,\n CONTROL_LABELS,\n AudioPlayerState,\n AudioPlayerEvent,\n VOLUME_CONTROL_STATES,\n} from './types'\n\nexport const initialAudioPlayerState = {\n playback: PLAYBACK_STATES.NONE,\n volumeControls: VOLUME_CONTROL_STATES.HIDE,\n context: {\n volume: 100,\n playbackButtonLabel: CONTROL_LABELS.PLAY,\n volumeButtonLabel: CONTROL_LABELS.MUTE,\n },\n}\n\nconst getPlayback = ({ current: audio }: RefObject<HTMLAudioElement>): PLAYBACK_STATES => {\n let playback: PLAYBACK_STATES = PLAYBACK_STATES.NONE\n if (audio) {\n const { paused, readyState } = audio\n if (readyState === 0) {\n playback = PLAYBACK_STATES.NONE\n } else if (paused) {\n playback = PLAYBACK_STATES.PAUSED\n } else {\n playback = PLAYBACK_STATES.PLAYING\n }\n }\n return playback\n}\n\nexport const audioPlayerReducer = (state: AudioPlayerState, event: AudioPlayerEvent): AudioPlayerState => {\n const { audioRef } = state.context\n const nextState: AudioPlayerState = { ...state }\n switch (state.playback) {\n case PLAYBACK_STATES.NONE:\n if (event.type === EVENT_TYPES.CAN_PLAY) {\n nextState.playback = getPlayback(audioRef)\n return nextState\n }\n // Required for iOS users. iOS prevents media from being loaded before user interaction.\n if (event.type === EVENT_TYPES.TOGGLE_PLAYBACK) {\n audioRef.current?.play()\n }\n break\n case PLAYBACK_STATES.PAUSED:\n if (event.type === EVENT_TYPES.TOGGLE_PLAYBACK) {\n audioRef.current?.play()\n nextState.playback = getPlayback(audioRef)\n nextState.context.playbackButtonLabel = CONTROL_LABELS.PAUSE\n return nextState\n }\n break\n case PLAYBACK_STATES.PLAYING:\n if (event.type === EVENT_TYPES.TOGGLE_PLAYBACK) {\n audioRef.current?.pause()\n nextState.playback = getPlayback(audioRef)\n nextState.context.playbackButtonLabel = CONTROL_LABELS.PLAY\n return nextState\n }\n if (event.type === EVENT_TYPES.TIME_CHANGE) {\n return nextState\n }\n break\n default:\n }\n switch (state.volumeControls) {\n case VOLUME_CONTROL_STATES.SHOW:\n if (event.type === EVENT_TYPES.TOGGLE_VOLUME_CONTROL) {\n nextState.volumeControls = VOLUME_CONTROL_STATES.HIDE\n return nextState\n }\n if (event.type === EVENT_TYPES.VOLUME_CHANGE) {\n if (nextState.context.volume !== event.context.volume) {\n nextState.context.volume = event.context.volume\n if (audioRef.current) {\n audioRef.current.volume = event.context.volume\n }\n return nextState\n }\n }\n break\n case VOLUME_CONTROL_STATES.HIDE:\n if (event.type === EVENT_TYPES.TOGGLE_VOLUME_CONTROL) {\n nextState.volumeControls = VOLUME_CONTROL_STATES.SHOW\n return nextState\n }\n break\n default:\n break\n }\n switch (event.type) {\n case EVENT_TYPES.TOGGLE_MUTE:\n if (audioRef.current) {\n audioRef.current.muted = !audioRef.current.muted\n return nextState\n }\n break\n case EVENT_TYPES.SET_TIME:\n if (audioRef.current) {\n audioRef.current.currentTime = event.context.time\n return nextState\n }\n break\n case EVENT_TYPES.RESET:\n if (audioRef.current) {\n audioRef.current.currentTime = 0\n nextState.playback = getPlayback(audioRef)\n return nextState\n }\n break\n default:\n break\n }\n return state\n}\n"],"names":["EVENT_TYPES"],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
const appendZero = (num) => (num < 10 ? `0${num}` : num);
|
|
2
|
+
const formatTime = (time, remaning = false) => {
|
|
3
|
+
const dateTime = new Date(0, 0, 0, 0, 0, time, 0);
|
|
4
|
+
const dateTimeH = appendZero(dateTime.getHours());
|
|
5
|
+
const dateTimeM = appendZero(dateTime.getMinutes());
|
|
6
|
+
const dateTimeS = appendZero(dateTime.getSeconds());
|
|
7
|
+
const minus = remaning ? '-' : '';
|
|
8
|
+
return dateTime.getHours() > 0
|
|
9
|
+
? `${minus}${dateTimeH}:${dateTimeM}:${dateTimeS}`
|
|
10
|
+
: `${minus}${dateTimeM}:${dateTimeS}`;
|
|
10
11
|
};
|
|
11
12
|
|
|
12
13
|
export { formatTime };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatTime.js","sources":["../../../../../src/components/AudioPlayer/util/formatTime.ts"],"sourcesContent":["const appendZero = (num: number) => (num < 10 ? `0${num}` : num)\n\nexport const formatTime = (time: number, remaning = false): string => {\n const dateTime = new Date(0, 0, 0, 0, 0, time, 0)\n\n const dateTimeH = appendZero(dateTime.getHours())\n const dateTimeM = appendZero(dateTime.getMinutes())\n const dateTimeS = appendZero(dateTime.getSeconds())\n const minus = remaning ? '-' : ''\n\n return
|
|
1
|
+
{"version":3,"file":"formatTime.js","sources":["../../../../../src/components/AudioPlayer/util/formatTime.ts"],"sourcesContent":["const appendZero = (num: number) => (num < 10 ? `0${num}` : num)\n\nexport const formatTime = (time: number, remaning = false): string => {\n const dateTime = new Date(0, 0, 0, 0, 0, time, 0)\n\n const dateTimeH = appendZero(dateTime.getHours())\n const dateTimeM = appendZero(dateTime.getMinutes())\n const dateTimeS = appendZero(dateTime.getSeconds())\n const minus = remaning ? '-' : ''\n\n return dateTime.getHours() > 0\n ? `${minus}${dateTimeH}:${dateTimeM}:${dateTimeS}`\n : `${minus}${dateTimeM}:${dateTimeS}`\n}\n"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,GAAW,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,CAAA,CAAE,GAAG,GAAG,CAAC;AAEnD,MAAA,UAAU,GAAG,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK,KAAY;AACnE,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;AAEjC,IAAA,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG;UACzB,GAAG,KAAK,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,SAAS,CAAI,CAAA,EAAA,SAAS,CAAE;UAChD,GAAG,KAAK,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,SAAS,EAAE;AACzC;;;;"}
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { AUDIO_PLAYER_EVENT_TYPES } from './types.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
send({ type: AUDIO_PLAYER_EVENT_TYPES.DURATION_CHANGE, context: { duration: duration } });
|
|
3
|
+
const setupAudioRef = (config) => () => {
|
|
4
|
+
const { audioRef, send } = config;
|
|
5
|
+
const handleDurationChange = (event) => {
|
|
6
|
+
const { duration } = event.target;
|
|
7
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.DURATION_CHANGE, context: { duration } });
|
|
9
8
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime
|
|
9
|
+
const handleTimeUpdate = (event) => {
|
|
10
|
+
const { currentTime } = event.target;
|
|
11
|
+
send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime } });
|
|
13
12
|
};
|
|
14
|
-
|
|
13
|
+
const handleCanPlay = () => {
|
|
15
14
|
send({ type: AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY });
|
|
16
15
|
};
|
|
17
|
-
|
|
16
|
+
const handleEnded = () => {
|
|
18
17
|
send({ type: AUDIO_PLAYER_EVENT_TYPES.RESET });
|
|
19
18
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
(_d = audioRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('ended', handleEnded);
|
|
19
|
+
audioRef.current?.addEventListener('durationchange', handleDurationChange);
|
|
20
|
+
audioRef.current?.addEventListener('timeupdate', handleTimeUpdate);
|
|
21
|
+
audioRef.current?.addEventListener('canplay', handleCanPlay);
|
|
22
|
+
audioRef.current?.addEventListener('ended', handleEnded);
|
|
23
|
+
return () => {
|
|
24
|
+
audioRef.current?.removeEventListener('durationchange', handleDurationChange);
|
|
25
|
+
audioRef.current?.removeEventListener('timeupdate', handleTimeUpdate);
|
|
26
|
+
audioRef.current?.removeEventListener('canplay', handleCanPlay);
|
|
27
|
+
audioRef.current?.removeEventListener('ended', handleEnded);
|
|
30
28
|
};
|
|
31
|
-
};
|
|
29
|
+
};
|
|
32
30
|
|
|
33
31
|
export { setupAudioRef };
|
|
34
32
|
//# sourceMappingURL=setupAudioRef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupAudioRef.js","sources":["../../../../../src/components/AudioPlayer/util/setupAudioRef.ts"],"sourcesContent":["import { RefObject } from 'react'\nimport { AudioPlayerEvent, AUDIO_PLAYER_EVENT_TYPES } from './types'\n\ninterface Config {\n audioRef: RefObject<HTMLAudioElement>\n send: (event: AudioPlayerEvent) => void\n}\n\ntype EventHandler = (event: Event) => void\n\nexport const setupAudioRef = (config: Config) => (): (() => void) => {\n const { audioRef, send } = config\n const handleDurationChange = (event: Event) => {\n const { duration } = event.target as EventTarget & HTMLMediaElement\n send({ type: AUDIO_PLAYER_EVENT_TYPES.DURATION_CHANGE, context: { duration } })\n }\n const handleTimeUpdate = (event: Event) => {\n const { currentTime } = event.target as EventTarget & BaseAudioContext\n send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime } })\n }\n const handleCanPlay: EventHandler = () => {\n send({ type: AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY })\n }\n const handleEnded: EventHandler = () => {\n send({ type: AUDIO_PLAYER_EVENT_TYPES.RESET })\n }\n audioRef.current?.addEventListener('durationchange', handleDurationChange)\n audioRef.current?.addEventListener('timeupdate', handleTimeUpdate)\n audioRef.current?.addEventListener('canplay', handleCanPlay)\n audioRef.current?.addEventListener('ended', handleEnded)\n return () => {\n audioRef.current?.removeEventListener('durationchange', handleDurationChange)\n audioRef.current?.removeEventListener('timeupdate', handleTimeUpdate)\n audioRef.current?.removeEventListener('canplay', handleCanPlay)\n audioRef.current?.removeEventListener('ended', handleEnded)\n }\n}\n"],"names":[],"mappings":";;AAUa,
|
|
1
|
+
{"version":3,"file":"setupAudioRef.js","sources":["../../../../../src/components/AudioPlayer/util/setupAudioRef.ts"],"sourcesContent":["import { RefObject } from 'react'\nimport { AudioPlayerEvent, AUDIO_PLAYER_EVENT_TYPES } from './types'\n\ninterface Config {\n audioRef: RefObject<HTMLAudioElement>\n send: (event: AudioPlayerEvent) => void\n}\n\ntype EventHandler = (event: Event) => void\n\nexport const setupAudioRef = (config: Config) => (): (() => void) => {\n const { audioRef, send } = config\n const handleDurationChange = (event: Event) => {\n const { duration } = event.target as EventTarget & HTMLMediaElement\n send({ type: AUDIO_PLAYER_EVENT_TYPES.DURATION_CHANGE, context: { duration } })\n }\n const handleTimeUpdate = (event: Event) => {\n const { currentTime } = event.target as EventTarget & BaseAudioContext\n send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime } })\n }\n const handleCanPlay: EventHandler = () => {\n send({ type: AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY })\n }\n const handleEnded: EventHandler = () => {\n send({ type: AUDIO_PLAYER_EVENT_TYPES.RESET })\n }\n audioRef.current?.addEventListener('durationchange', handleDurationChange)\n audioRef.current?.addEventListener('timeupdate', handleTimeUpdate)\n audioRef.current?.addEventListener('canplay', handleCanPlay)\n audioRef.current?.addEventListener('ended', handleEnded)\n return () => {\n audioRef.current?.removeEventListener('durationchange', handleDurationChange)\n audioRef.current?.removeEventListener('timeupdate', handleTimeUpdate)\n audioRef.current?.removeEventListener('canplay', handleCanPlay)\n audioRef.current?.removeEventListener('ended', handleEnded)\n }\n}\n"],"names":[],"mappings":";;AAUa,MAAA,aAAa,GAAG,CAAC,MAAc,KAAK,MAAmB;AAClE,IAAA,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM;AACjC,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAY,KAAI;AAC5C,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAwC;AACnE,QAAA,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;AACjF,KAAC;AACD,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAY,KAAI;AACxC,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,MAAwC;AACtE,QAAA,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC;AAChF,KAAC;IACD,MAAM,aAAa,GAAiB,MAAK;QACvC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AACnD,KAAC;IACD,MAAM,WAAW,GAAiB,MAAK;QACrC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,CAAC;AAChD,KAAC;IACD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAC1E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;AACxD,IAAA,OAAO,MAAK;QACV,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;QAC7E,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACrE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;QAC/D,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC;AAC7D,KAAC;AACH;;;;"}
|
|
@@ -47,7 +47,7 @@ interface CanPlayEvent {
|
|
|
47
47
|
interface ResetEvent {
|
|
48
48
|
type: AUDIO_PLAYER_EVENT_TYPES.RESET;
|
|
49
49
|
}
|
|
50
|
-
export
|
|
50
|
+
export type AudioPlayerEvent = TogglePlaybackEvent | ToggleVolumeControlEvent | SetVolumeEvent | TimeChangeEvent | DurationChangeEvent | ToggleMuteEvent | SetTimeEvent | CanPlayEvent | ResetEvent;
|
|
51
51
|
export declare enum PLAYBACK_STATES {
|
|
52
52
|
NONE = "NONE",
|
|
53
53
|
PAUSED = "PAUSED",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VolumeUp, VolumeDown, VolumeMute, VolumeOff } from '@popmenu/web-icons';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const useVolumeIcon = (state) => {
|
|
4
|
+
let volumeIcon = VolumeUp;
|
|
5
5
|
if (state.context.volume >= 0.5) {
|
|
6
6
|
volumeIcon = VolumeUp;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVolumeIcon.js","sources":["../../../../../src/components/AudioPlayer/util/useVolumeIcon.ts"],"sourcesContent":["import { VolumeDown, VolumeMute, VolumeOff, VolumeUp } from '@popmenu/web-icons'\nimport { AudioPlayerState } from './types'\n\nexport const useVolumeIcon = (state: AudioPlayerState): string => {\n let volumeIcon = VolumeUp\n if (state.context.volume >= 0.5) {\n volumeIcon = VolumeUp\n } else if (state.context.volume < 0.5 && state.context.volume > 0) {\n volumeIcon = VolumeDown\n } else if (state.context.volume === 0) {\n volumeIcon = VolumeMute\n }\n if (state.context.audioRef.current) {\n if (state.context.audioRef.current.muted) {\n volumeIcon = VolumeOff\n }\n }\n return volumeIcon\n}\n"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useVolumeIcon.js","sources":["../../../../../src/components/AudioPlayer/util/useVolumeIcon.ts"],"sourcesContent":["import { VolumeDown, VolumeMute, VolumeOff, VolumeUp } from '@popmenu/web-icons'\nimport { AudioPlayerState } from './types'\n\nexport const useVolumeIcon = (state: AudioPlayerState): string => {\n let volumeIcon = VolumeUp\n if (state.context.volume >= 0.5) {\n volumeIcon = VolumeUp\n } else if (state.context.volume < 0.5 && state.context.volume > 0) {\n volumeIcon = VolumeDown\n } else if (state.context.volume === 0) {\n volumeIcon = VolumeMute\n }\n if (state.context.audioRef.current) {\n if (state.context.audioRef.current.muted) {\n volumeIcon = VolumeOff\n }\n }\n return volumeIcon\n}\n"],"names":[],"mappings":";;AAGa,MAAA,aAAa,GAAG,CAAC,KAAuB,KAAY;IAC/D,IAAI,UAAU,GAAG,QAAQ;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;QAC/B,UAAU,GAAG,QAAQ;;AAChB,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjE,UAAU,GAAG,UAAU;;SAClB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,UAAU,GAAG,UAAU;;IAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;YACxC,UAAU,GAAG,SAAS;;;AAG1B,IAAA,OAAO,UAAU;AACnB;;;;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { AudioPlayer
|
|
1
|
+
export { AudioPlayer } from './AudioPlayer';
|
|
2
|
+
export type { AudioPlayerProps } from './AudioPlayer';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@popmenu/audio-player",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.128.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Popmenu Design System Team",
|
|
6
6
|
"description": "React audio player component for all Popmenu apps on the web.",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"@material-ui/lab": "^4.0.0-alpha.60",
|
|
28
28
|
"@popmenu/common-ui": "^0.125.0",
|
|
29
29
|
"@popmenu/web-icons": "^0.125.0",
|
|
30
|
-
"
|
|
31
|
-
"react
|
|
30
|
+
"classnames": "^2.5.1",
|
|
31
|
+
"react": "17.x"
|
|
32
32
|
},
|
|
33
33
|
"sideEffects": false,
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "10a5cf520116ca9c4ba501072a77e74758f52814"
|
|
35
35
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { c as classnames } from '../../_virtual/index.js';
|
|
2
|
-
|
|
3
|
-
/*!
|
|
4
|
-
Copyright (c) 2018 Jed Watson.
|
|
5
|
-
Licensed under the MIT License (MIT), see
|
|
6
|
-
http://jedwatson.github.io/classnames
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
(function (module) {
|
|
10
|
-
/* global define */
|
|
11
|
-
|
|
12
|
-
(function () {
|
|
13
|
-
|
|
14
|
-
var hasOwn = {}.hasOwnProperty;
|
|
15
|
-
|
|
16
|
-
function classNames () {
|
|
17
|
-
var classes = '';
|
|
18
|
-
|
|
19
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
20
|
-
var arg = arguments[i];
|
|
21
|
-
if (arg) {
|
|
22
|
-
classes = appendClass(classes, parseValue(arg));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return classes;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function parseValue (arg) {
|
|
30
|
-
if (typeof arg === 'string' || typeof arg === 'number') {
|
|
31
|
-
return arg;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (typeof arg !== 'object') {
|
|
35
|
-
return '';
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (Array.isArray(arg)) {
|
|
39
|
-
return classNames.apply(null, arg);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
|
|
43
|
-
return arg.toString();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var classes = '';
|
|
47
|
-
|
|
48
|
-
for (var key in arg) {
|
|
49
|
-
if (hasOwn.call(arg, key) && arg[key]) {
|
|
50
|
-
classes = appendClass(classes, key);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return classes;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function appendClass (value, newClass) {
|
|
58
|
-
if (!newClass) {
|
|
59
|
-
return value;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (value) {
|
|
63
|
-
return value + ' ' + newClass;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return value + newClass;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (module.exports) {
|
|
70
|
-
classNames.default = classNames;
|
|
71
|
-
module.exports = classNames;
|
|
72
|
-
} else {
|
|
73
|
-
window.classNames = classNames;
|
|
74
|
-
}
|
|
75
|
-
}());
|
|
76
|
-
}(classnames));
|
|
77
|
-
|
|
78
|
-
var classNames = classnames.exports;
|
|
79
|
-
|
|
80
|
-
export { classNames as default };
|
|
81
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../node_modules/classnames/index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":[],"mappings":";;;;;;;;;AAKA;;AAEA,CAAC,YAAY;;AAGb,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc;;AAE/B,CAAC,SAAS,UAAU,IAAI;AACxB,EAAE,IAAI,OAAO,GAAG,EAAE;;AAElB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACzB,GAAG,IAAI,GAAG,EAAE;AACZ,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACnD;AACA;;AAEA,EAAE,OAAO,OAAO;AAChB;;AAEA,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE;AAC3B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC1D,GAAG,OAAO,GAAG;AACb;;AAEA,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,GAAG,OAAO,EAAE;AACZ;;AAEA,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC1B,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC;;AAEA,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACxG,GAAG,OAAO,GAAG,CAAC,QAAQ,EAAE;AACxB;;AAEA,EAAE,IAAI,OAAO,GAAG,EAAE;;AAElB,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;AACvC;AACA;;AAEA,EAAE,OAAO,OAAO;AAChB;;AAEA,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;AACxC,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,GAAG,OAAO,KAAK;AACf;AACA;AACA,EAAE,IAAI,KAAK,EAAE;AACb,GAAG,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ;AAChC;AACA;AACA,EAAE,OAAO,KAAK,GAAG,QAAQ;AACzB;;AAEA,CAAC,IAAqC,MAAM,CAAC,OAAO,EAAE;AACtD,EAAE,UAAU,CAAC,OAAO,GAAG,UAAU;AACjC,EAAE,MAAA,CAAA,OAAA,GAAiB,UAAU;AAC7B,EAAE,MAKM;AACR,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU;AAChC;AACA,CAAC,EAAE;;;;;;;","x_google_ignoreList":[0]}
|