@popmenu/audio-player 0.126.3 → 0.127.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 (25) hide show
  1. package/build/cjs/components/AudioPlayer/AudioPlayerProps.d.ts +1 -1
  2. package/build/cjs/components/AudioPlayer/index.d.ts +1 -1
  3. package/build/cjs/components/AudioPlayer/util/types.d.ts +1 -1
  4. package/build/cjs/components/index.d.ts +2 -1
  5. package/build/cjs/index.js +82 -157
  6. package/build/cjs/index.js.map +1 -1
  7. package/build/esm/components/AudioPlayer/AudioPlayer.js +40 -34
  8. package/build/esm/components/AudioPlayer/AudioPlayer.js.map +1 -1
  9. package/build/esm/components/AudioPlayer/AudioPlayerProps.d.ts +1 -1
  10. package/build/esm/components/AudioPlayer/index.d.ts +1 -1
  11. package/build/esm/components/AudioPlayer/util/audioPlayerReducer.js +10 -13
  12. package/build/esm/components/AudioPlayer/util/audioPlayerReducer.js.map +1 -1
  13. package/build/esm/components/AudioPlayer/util/formatTime.js +10 -9
  14. package/build/esm/components/AudioPlayer/util/formatTime.js.map +1 -1
  15. package/build/esm/components/AudioPlayer/util/setupAudioRef.js +20 -22
  16. package/build/esm/components/AudioPlayer/util/setupAudioRef.js.map +1 -1
  17. package/build/esm/components/AudioPlayer/util/types.d.ts +1 -1
  18. package/build/esm/components/AudioPlayer/util/useVolumeIcon.js +2 -2
  19. package/build/esm/components/AudioPlayer/util/useVolumeIcon.js.map +1 -1
  20. package/build/esm/components/index.d.ts +2 -1
  21. package/package.json +4 -4
  22. package/build/esm/_virtual/index.js +0 -4
  23. package/build/esm/_virtual/index.js.map +0 -1
  24. package/build/esm/node_modules/classnames/index.js +0 -81
  25. package/build/esm/node_modules/classnames/index.js.map +0 -1
@@ -1,4 +1,4 @@
1
- declare type AudioPlayerClasses = 'root' | 'playbackToggle' | 'volumeToggle' | 'volumeSlider' | 'playbackSlider' | 'playbackText' | 'lengthText';
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 declare type AudioPlayerEvent = TogglePlaybackEvent | ToggleVolumeControlEvent | SetVolumeEvent | TimeChangeEvent | DurationChangeEvent | ToggleMuteEvent | SetTimeEvent | CanPlayEvent | ResetEvent;
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, AudioPlayerProps } from './AudioPlayer';
1
+ export { AudioPlayer } from './AudioPlayer';
2
+ export type { AudioPlayerProps } from './AudioPlayer';
@@ -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 classnames = {exports: {}};
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
- var initialAudioPlayerState = {
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
- var getPlayback = function (_a) {
129
- var audio = _a.current;
130
- var playback = PLAYBACK_STATES.NONE;
49
+ const getPlayback = ({ current: audio }) => {
50
+ let playback = PLAYBACK_STATES.NONE;
131
51
  if (audio) {
132
- var paused = audio.paused, readyState = audio.readyState;
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
- var audioPlayerReducer = function (state, event) {
146
- var _a, _b, _c;
147
- var audioRef = state.context.audioRef;
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
- (_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.play();
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
- (_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.play();
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
- (_c = audioRef.current) === null || _c === void 0 ? void 0 : _c.pause();
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
- var useVolumeIcon = function (state) {
228
- var volumeIcon = webIcons.VolumeUp;
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
- var appendZero = function (num) { return (num < 10 ? "0" + num : num); };
247
- var formatTime = function (time, remaning) {
248
- if (remaning === void 0) { remaning = false; }
249
- var dateTime = new Date(0, 0, 0, 0, 0, time, 0);
250
- var dateTimeH = appendZero(dateTime.getHours());
251
- var dateTimeM = appendZero(dateTime.getMinutes());
252
- var dateTimeS = appendZero(dateTime.getSeconds());
253
- var minus = remaning ? '-' : '';
254
- return dateTimeH > 0 ? "" + minus + dateTimeH + ":" + dateTimeM + ":" + dateTimeS : "" + minus + dateTimeM + ":" + dateTimeS;
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
- var setupAudioRef = function (config) { return function () {
258
- var _a, _b, _c, _d;
259
- var audioRef = config.audioRef, send = config.send;
260
- var handleDurationChange = function (event) {
261
- var duration = event.target.duration;
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
- var handleTimeUpdate = function (event) {
265
- var currentTime = event.target.currentTime;
266
- send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime: currentTime } });
183
+ const handleTimeUpdate = (event) => {
184
+ const { currentTime } = event.target;
185
+ send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime } });
267
186
  };
268
- var handleCanPlay = function () {
187
+ const handleCanPlay = () => {
269
188
  send({ type: AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY });
270
189
  };
271
- var handleEnded = function () {
190
+ const handleEnded = () => {
272
191
  send({ type: AUDIO_PLAYER_EVENT_TYPES.RESET });
273
192
  };
274
- (_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('durationchange', handleDurationChange);
275
- (_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('timeupdate', handleTimeUpdate);
276
- (_c = audioRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('canplay', handleCanPlay);
277
- (_d = audioRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleEnded);
278
- return function () {
279
- var _a, _b, _c, _d;
280
- (_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('durationchange', handleDurationChange);
281
- (_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('timeupdate', handleTimeUpdate);
282
- (_c = audioRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('canplay', handleCanPlay);
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
- var getPlaybackIcon = function (status) {
288
- var icon;
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
- var AudioPlayer = function (props) {
303
- var _a, _b, _c, _d, _f, _g;
304
- var src = props.src, _h = props.classes, classes = _h === void 0 ? {} : _h;
305
- var volumeRef = React.useRef(null);
306
- var audioRef = React.useRef(null);
307
- var spacing = core.useTheme().spacing;
308
- var _j = React.useState(false), disableRipple = _j[0], setDisableRipple = _j[1];
309
- var _k = React.useReducer(audioPlayerReducer, tslib.__assign(tslib.__assign({}, initialAudioPlayerState), { context: tslib.__assign(tslib.__assign({}, initialAudioPlayerState.context), { audioRef: audioRef }) })), state = _k[0], send = _k[1];
310
- React.useEffect(setupAudioRef({ audioRef: audioRef, send: send }), [audioRef]);
311
- var PlaybackIcon = getPlaybackIcon(state.playback);
312
- var VolumeIcon = React.useMemo(function () { return useVolumeIcon(state); }, [state.context.volume, (_a = state.context.audioRef.current) === null || _a === void 0 ? void 0 : _a.muted]);
313
- var togglePlayback = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK }); };
314
- var toggleVolumeControl = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_VOLUME_CONTROL }); };
315
- var toggleMute = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_MUTE }); };
316
- var setTime = function (_e, time) { return send({ type: AUDIO_PLAYER_EVENT_TYPES.SET_TIME, context: { time: time } }); };
317
- var setVolume = function (_e, volume) { return send({ type: AUDIO_PLAYER_EVENT_TYPES.VOLUME_CHANGE, context: { volume: volume } }); };
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, tslib.__assign({}, (classes.playbackToggle && { classes: { root: classes.playbackToggle } }), { "aria-label": state.context.playbackButtonLabel, disabled: ((_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.networkState) === 2, onClick: togglePlayback }),
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, tslib.__assign({}, (classes.volumeToggle && { classes: { root: classes.volumeToggle } }), { "aria-label": state.context.volumeButtonLabel, ref: volumeRef, onClick: toggleMute, onMouseEnter: toggleVolumeControl, onMouseLeave: toggleVolumeControl, disableRipple: disableRipple }),
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: function (e) { return e.stopPropagation(); }, onMouseEnter: function () { return setDisableRipple(true); }, onMouseLeave: function () { return setDisableRipple(false); }, open: state.volumeControls === VOLUME_CONTROL_STATES.SHOW, anchorEl: function () { return volumeRef.current; }, transition: true, placement: "top", className: classNames([classes.volumeSlider]) }, function (_a) {
326
- var TransitionProps = _a.TransitionProps;
327
- return (React.createElement(core.Grow, tslib.__assign({}, TransitionProps),
328
- React.createElement(commonUi.Paper, { elevation: 1 },
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, tslib.__assign({}, (classes.playbackText && { classes: { root: classes.playbackText } })), formatTime(((_c = state.context.audioRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) || 0))),
335
- React.createElement(core.Slider, tslib.__assign({}, (classes.playbackSlider && { classes: { root: classes.playbackSlider } }), { color: "secondary", value: ((_d = state.context.audioRef.current) === null || _d === void 0 ? void 0 : _d.currentTime) || 0, max: ((_f = state.context.audioRef.current) === null || _f === void 0 ? void 0 : _f.duration) || 1, onChange: setTime, disabled: state.playback === PLAYBACK_STATES.NONE })),
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, tslib.__assign({}, (classes.lengthText && { classes: { root: classes.lengthText } })), formatTime(((_g = state.context.audioRef.current) === null || _g === void 0 ? void 0 : _g.duration) || 0))))));
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;
@@ -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
- var getPlaybackIcon = function (status) {
14
- var icon;
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
- var AudioPlayer = function (props) {
29
- var _a, _b, _c, _d, _f, _g;
30
- var src = props.src, _h = props.classes, classes = _h === void 0 ? {} : _h;
31
- var volumeRef = useRef(null);
32
- var audioRef = useRef(null);
33
- var spacing = useTheme().spacing;
34
- var _j = useState(false), disableRipple = _j[0], setDisableRipple = _j[1];
35
- var _k = useReducer(audioPlayerReducer, __assign(__assign({}, initialAudioPlayerState), { context: __assign(__assign({}, initialAudioPlayerState.context), { audioRef: audioRef }) })), state = _k[0], send = _k[1];
36
- useEffect(setupAudioRef({ audioRef: audioRef, send: send }), [audioRef]);
37
- var PlaybackIcon = getPlaybackIcon(state.playback);
38
- var VolumeIcon = useMemo(function () { return useVolumeIcon(state); }, [state.context.volume, (_a = state.context.audioRef.current) === null || _a === void 0 ? void 0 : _a.muted]);
39
- var togglePlayback = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_PLAYBACK }); };
40
- var toggleVolumeControl = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_VOLUME_CONTROL }); };
41
- var toggleMute = function () { return send({ type: AUDIO_PLAYER_EVENT_TYPES.TOGGLE_MUTE }); };
42
- var setTime = function (_e, time) { return send({ type: AUDIO_PLAYER_EVENT_TYPES.SET_TIME, context: { time: time } }); };
43
- var setVolume = function (_e, volume) { return send({ type: AUDIO_PLAYER_EVENT_TYPES.VOLUME_CHANGE, context: { volume: volume } }); };
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, __assign({}, (classes.playbackToggle && { classes: { root: classes.playbackToggle } }), { "aria-label": state.context.playbackButtonLabel, disabled: ((_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.networkState) === 2, onClick: togglePlayback }),
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, __assign({}, (classes.volumeToggle && { classes: { root: classes.volumeToggle } }), { "aria-label": state.context.volumeButtonLabel, ref: volumeRef, onClick: toggleMute, onMouseEnter: toggleVolumeControl, onMouseLeave: toggleVolumeControl, disableRipple: disableRipple }),
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: function (e) { return e.stopPropagation(); }, onMouseEnter: function () { return setDisableRipple(true); }, onMouseLeave: function () { return setDisableRipple(false); }, open: state.volumeControls === VOLUME_CONTROL_STATES.SHOW, anchorEl: function () { return volumeRef.current; }, transition: true, placement: "top", className: classNames([classes.volumeSlider]) }, function (_a) {
52
- var TransitionProps = _a.TransitionProps;
53
- return (React.createElement(Grow, __assign({}, TransitionProps),
54
- React.createElement(Paper, { elevation: 1 },
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, __assign({}, (classes.playbackText && { classes: { root: classes.playbackText } })), formatTime(((_c = state.context.audioRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) || 0))),
61
- React.createElement(Slider, __assign({}, (classes.playbackSlider && { classes: { root: classes.playbackSlider } }), { color: "secondary", value: ((_d = state.context.audioRef.current) === null || _d === void 0 ? void 0 : _d.currentTime) || 0, max: ((_f = state.context.audioRef.current) === null || _f === void 0 ? void 0 : _f.duration) || 1, onChange: setTime, disabled: state.playback === PLAYBACK_STATES.NONE })),
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, __assign({}, (classes.lengthText && { classes: { root: classes.lengthText } })), formatTime(((_g = state.context.audioRef.current) === null || _g === void 0 ? void 0 : _g.duration) || 0))))));
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
- declare type AudioPlayerClasses = 'root' | 'playbackToggle' | 'volumeToggle' | 'volumeSlider' | 'playbackSlider' | 'playbackText' | 'lengthText';
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
- var initialAudioPlayerState = {
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
- var getPlayback = function (_a) {
14
- var audio = _a.current;
15
- var playback = PLAYBACK_STATES.NONE;
12
+ const getPlayback = ({ current: audio }) => {
13
+ let playback = PLAYBACK_STATES.NONE;
16
14
  if (audio) {
17
- var paused = audio.paused, readyState = audio.readyState;
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
- var audioPlayerReducer = function (state, event) {
31
- var _a, _b, _c;
32
- var audioRef = state.context.audioRef;
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
- (_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.play();
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
- (_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.play();
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
- (_c = audioRef.current) === null || _c === void 0 ? void 0 : _c.pause();
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":"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"}
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
- var appendZero = function (num) { return (num < 10 ? "0" + num : num); };
2
- var formatTime = function (time, remaning) {
3
- if (remaning === void 0) { remaning = false; }
4
- var dateTime = new Date(0, 0, 0, 0, 0, time, 0);
5
- var dateTimeH = appendZero(dateTime.getHours());
6
- var dateTimeM = appendZero(dateTime.getMinutes());
7
- var dateTimeS = appendZero(dateTime.getSeconds());
8
- var minus = remaning ? '-' : '';
9
- return dateTimeH > 0 ? "" + minus + dateTimeH + ":" + dateTimeM + ":" + dateTimeS : "" + minus + dateTimeM + ":" + dateTimeS;
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 dateTimeH > 0 ? `${minus}${dateTimeH}:${dateTimeM}:${dateTimeS}` : `${minus}${dateTimeM}:${dateTimeS}`\n}\n"],"names":[],"mappings":"AAAA,IAAM,UAAU,GAAG,UAAC,GAAW,IAAK,QAAC,GAAG,GAAG,EAAE,GAAG,GAAA,GAAI,GAAK,GAAG,GAAG,EAA3B,EAA4B;AAEnD,IAAA,UAAU,GAAG,UAAC,IAAY,EAAE,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,MAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA;AACvD,IAAA,IAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,IAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACjD,IAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnD,IAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnD,IAAM,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;IAEjC,OAAO,SAAS,GAAG,CAAC,GAAG,EAAA,GAAG,KAAK,GAAG,SAAS,GAAA,GAAA,GAAI,SAAS,GAAI,GAAA,GAAA,SAAW,GAAG,EAAA,GAAG,KAAK,GAAG,SAAS,GAAI,GAAA,GAAA,SAAW;AAC/G;;;;"}
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
- var setupAudioRef = function (config) { return function () {
4
- var _a, _b, _c, _d;
5
- var audioRef = config.audioRef, send = config.send;
6
- var handleDurationChange = function (event) {
7
- var duration = event.target.duration;
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
- var handleTimeUpdate = function (event) {
11
- var currentTime = event.target.currentTime;
12
- send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime: currentTime } });
9
+ const handleTimeUpdate = (event) => {
10
+ const { currentTime } = event.target;
11
+ send({ type: AUDIO_PLAYER_EVENT_TYPES.TIME_CHANGE, context: { currentTime } });
13
12
  };
14
- var handleCanPlay = function () {
13
+ const handleCanPlay = () => {
15
14
  send({ type: AUDIO_PLAYER_EVENT_TYPES.CAN_PLAY });
16
15
  };
17
- var handleEnded = function () {
16
+ const handleEnded = () => {
18
17
  send({ type: AUDIO_PLAYER_EVENT_TYPES.RESET });
19
18
  };
20
- (_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('durationchange', handleDurationChange);
21
- (_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('timeupdate', handleTimeUpdate);
22
- (_c = audioRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('canplay', handleCanPlay);
23
- (_d = audioRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleEnded);
24
- return function () {
25
- var _a, _b, _c, _d;
26
- (_a = audioRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('durationchange', handleDurationChange);
27
- (_b = audioRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('timeupdate', handleTimeUpdate);
28
- (_c = audioRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('canplay', handleCanPlay);
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,IAAA,aAAa,GAAG,UAAC,MAAc,IAAK,OAAA,YAAA;;IACvC,IAAA,QAAQ,GAAW,MAAM,CAAA,QAAjB,EAAE,IAAI,GAAK,MAAM,CAAA,IAAX;IACtB,IAAM,oBAAoB,GAAG,UAAC,KAAY,EAAA;AAChC,QAAA,IAAA,QAAQ,GAAK,KAAK,CAAC,MAAwC,SAAnD;AAChB,QAAA,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAA,QAAA,EAAE,EAAE,CAAC;AACjF,KAAC;IACD,IAAM,gBAAgB,GAAG,UAAC,KAAY,EAAA;AAC5B,QAAA,IAAA,WAAW,GAAK,KAAK,CAAC,MAAwC,YAAnD;AACnB,QAAA,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,WAAW,EAAA,WAAA,EAAE,EAAE,CAAC;AAChF,KAAC;AACD,IAAA,IAAM,aAAa,GAAiB,YAAA;QAClC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,QAAQ,EAAE,CAAC;AACnD,KAAC;AACD,IAAA,IAAM,WAAW,GAAiB,YAAA;QAChC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,CAAC;AAChD,KAAC;IACD,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAC1E,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAClE,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;IAC5D,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;IACxD,OAAO,YAAA;;QACL,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;QAC7E,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACrE,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;QAC/D,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC;AAC7D,KAAC;AACH,CAAC,CAAA;;;;"}
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 declare type AudioPlayerEvent = TogglePlaybackEvent | ToggleVolumeControlEvent | SetVolumeEvent | TimeChangeEvent | DurationChangeEvent | ToggleMuteEvent | SetTimeEvent | CanPlayEvent | ResetEvent;
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
- var useVolumeIcon = function (state) {
4
- var volumeIcon = VolumeUp;
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":";;AAGO,IAAM,aAAa,GAAG,UAAC,KAAuB,EAAA;IACnD,IAAI,UAAU,GAAG,QAAQ;AACzB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;QAC/B,UAAU,GAAG,QAAQ;AACtB;AAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjE,UAAU,GAAG,UAAU;AACxB;AAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,UAAU,GAAG,UAAU;AACxB;AACD,IAAA,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;AACvB;AACF;AACD,IAAA,OAAO,UAAU;AACnB;;;;"}
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, AudioPlayerProps } from './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.126.3",
3
+ "version": "0.127.1",
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
- "react": "17.x",
31
- "react-table": "^7.7.0"
30
+ "classnames": "^2.5.1",
31
+ "react": "17.x"
32
32
  },
33
33
  "sideEffects": false,
34
- "gitHead": "fad12917e894fb081b35141e0de8b95f054ed860"
34
+ "gitHead": "242ebcb202433c083d77f6691b8ca8116900b72e"
35
35
  }
@@ -1,4 +0,0 @@
1
- var classnames = {exports: {}};
2
-
3
- export { classnames as c };
4
- //# sourceMappingURL=index.js.map
@@ -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]}