@micromag/core 0.3.769 → 0.3.781

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/es/components.js CHANGED
@@ -3631,6 +3631,7 @@ var ScreenSizer = function ScreenSizer(_ref) {
3631
3631
  className = _ref.className,
3632
3632
  children = _ref.children;
3633
3633
  var hasSize = width !== null || height !== null;
3634
+ //
3634
3635
  var _useDimensionObserver = useDimensionObserver(),
3635
3636
  refContainer = _useDimensionObserver.ref,
3636
3637
  _useDimensionObserver2 = _useDimensionObserver.width,
package/es/contexts.js CHANGED
@@ -1078,6 +1078,7 @@ var defaultControlsThemeValue = {
1078
1078
  var defaultValue$1 = {
1079
1079
  playing: false,
1080
1080
  paused: false,
1081
+ completed: false,
1081
1082
  muted: true,
1082
1083
  controls: false,
1083
1084
  controlsSuggestPlay: false,
@@ -1100,21 +1101,26 @@ var PlaybackContext = /*#__PURE__*/React.createContext(_objectSpread(_objectSpre
1100
1101
  var usePlaybackContext = function usePlaybackContext() {
1101
1102
  return useContext(PlaybackContext);
1102
1103
  };
1103
- var usePlaybackMediaRef = function usePlaybackMediaRef(active) {
1104
+ var usePlaybackMediaRef = function usePlaybackMediaRef() {
1105
+ var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1106
+ var background = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1104
1107
  var _usePlaybackContext = usePlaybackContext(),
1105
- setMedia = _usePlaybackContext.setMedia;
1108
+ setMedia = _usePlaybackContext.setMedia,
1109
+ setIsBackground = _usePlaybackContext.setIsBackground;
1106
1110
  var mediaRef = useRef(null);
1107
1111
  useEffect(function () {
1108
1112
  if (!active) {
1109
1113
  return function () {};
1110
1114
  }
1115
+ setIsBackground(background);
1111
1116
  if (mediaRef.current !== null) {
1112
1117
  setMedia(mediaRef.current);
1113
1118
  }
1114
1119
  return function () {
1115
1120
  setMedia(null);
1121
+ setIsBackground(false);
1116
1122
  };
1117
- }, [setMedia, active]);
1123
+ }, [setMedia, setIsBackground, active, background]);
1118
1124
  return mediaRef;
1119
1125
  };
1120
1126
  var propTypes$5 = {
@@ -1155,26 +1161,30 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1155
1161
  _useState6 = _slicedToArray(_useState5, 2),
1156
1162
  media = _useState6[0],
1157
1163
  setMedia = _useState6[1];
1158
- var _useState7 = useState(initialControls),
1164
+ var _useState7 = useState(false),
1159
1165
  _useState8 = _slicedToArray(_useState7, 2),
1160
- controls = _useState8[0],
1161
- setControls = _useState8[1];
1162
- var _useState9 = useState(initialControlsSuggestPlay),
1166
+ isBackground = _useState8[0],
1167
+ setIsBackground = _useState8[1];
1168
+ var _useState9 = useState(initialControls),
1163
1169
  _useState0 = _slicedToArray(_useState9, 2),
1164
- controlsSuggestPlay = _useState0[0],
1165
- setControlsSuggestPlay = _useState0[1];
1166
- var _useState1 = useState(initialControlsVisible),
1170
+ controls = _useState0[0],
1171
+ setControls = _useState0[1];
1172
+ var _useState1 = useState(initialControlsSuggestPlay),
1167
1173
  _useState10 = _slicedToArray(_useState1, 2),
1168
- controlsVisible = _useState10[0],
1169
- setControlsVisible = _useState10[1];
1170
- var _useState11 = useState(initialControlsTheme),
1174
+ controlsSuggestPlay = _useState10[0],
1175
+ setControlsSuggestPlay = _useState10[1];
1176
+ var _useState11 = useState(initialControlsVisible),
1171
1177
  _useState12 = _slicedToArray(_useState11, 2),
1172
- controlsTheme = _useState12[0],
1173
- setControlsTheme = _useState12[1];
1174
- var _useState13 = useState(initialCurrentQualityLevel),
1178
+ controlsVisible = _useState12[0],
1179
+ setControlsVisible = _useState12[1];
1180
+ var _useState13 = useState(initialControlsTheme),
1175
1181
  _useState14 = _slicedToArray(_useState13, 2),
1176
- currentQualityLevel = _useState14[0],
1177
- setCurrentQualityLevel = _useState14[1];
1182
+ controlsTheme = _useState14[0],
1183
+ setControlsTheme = _useState14[1];
1184
+ var _useState15 = useState(initialCurrentQualityLevel),
1185
+ _useState16 = _slicedToArray(_useState15, 2),
1186
+ currentQualityLevel = _useState16[0],
1187
+ setCurrentQualityLevel = _useState16[1];
1178
1188
  var finalSetControls = useCallback(function (newControls) {
1179
1189
  if (newControls) {
1180
1190
  setControls(true);
@@ -1200,6 +1210,26 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1200
1210
  useEffect(function () {
1201
1211
  setControlsSuggestPlay(false);
1202
1212
  }, [media, setControlsSuggestPlay]);
1213
+
1214
+ // Handle media ended
1215
+ var _useState17 = useState(false),
1216
+ _useState18 = _slicedToArray(_useState17, 2),
1217
+ completed = _useState18[0],
1218
+ setCompleted = _useState18[1];
1219
+ var onMediaCompleted = useCallback(function () {
1220
+ return setCompleted(true);
1221
+ }, [setCompleted]);
1222
+ useEffect(function () {
1223
+ if (media !== null) {
1224
+ media.addEventListener('ended', onMediaCompleted);
1225
+ }
1226
+ return function () {
1227
+ if (media !== null) {
1228
+ media.removeEventListener('ended', onMediaCompleted);
1229
+ }
1230
+ setCompleted(false);
1231
+ };
1232
+ }, [media, onMediaCompleted, setCompleted]);
1203
1233
  var showControls = useCallback(function () {
1204
1234
  return setControlsVisible(true);
1205
1235
  }, [setControlsVisible]);
@@ -1228,6 +1258,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1228
1258
  return {
1229
1259
  muted: muted,
1230
1260
  playing: playing && !paused,
1261
+ completed: completed,
1231
1262
  controls: controls,
1232
1263
  controlsSuggestPlay: controlsSuggestPlay,
1233
1264
  controlsVisible: controlsVisible,
@@ -1236,6 +1267,8 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1236
1267
  controlsTheme: controlsTheme,
1237
1268
  currentQualityLevel: currentQualityLevel,
1238
1269
  setMuted: setMuted,
1270
+ setIsBackground: setIsBackground,
1271
+ isBackground: isBackground,
1239
1272
  setPlaying: finalSetPlaying,
1240
1273
  setControls: finalSetControls,
1241
1274
  setControlsSuggestPlay: setControlsSuggestPlay,
@@ -1246,7 +1279,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1246
1279
  setMedia: setMedia,
1247
1280
  setCurrentQualityLevel: finalSetCurrentQualityLevel
1248
1281
  };
1249
- }, [muted, playing, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1282
+ }, [muted, playing, completed, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, setIsBackground, isBackground, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1250
1283
  return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
1251
1284
  value: value
1252
1285
  }, children);
package/es/hooks.js CHANGED
@@ -203,6 +203,8 @@ function useDragProgress() {
203
203
  onProgress = _ref$onProgress === void 0 ? null : _ref$onProgress,
204
204
  _ref$onPointerDown = _ref.onPointerDown,
205
205
  onPointerDown = _ref$onPointerDown === void 0 ? null : _ref$onPointerDown,
206
+ _ref$onScroll = _ref.onScroll,
207
+ onScroll = _ref$onScroll === void 0 ? null : _ref$onScroll,
206
208
  _ref$springParams = _ref.springParams,
207
209
  springParams = _ref$springParams === void 0 ? undefined : _ref$springParams,
208
210
  _ref$dragOptions = _ref.dragOptions,
@@ -272,7 +274,8 @@ function useDragProgress() {
272
274
  }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
273
275
  var bind = useGesture({
274
276
  onDrag: onDrag,
275
- onPointerDown: onPointerDown
277
+ onPointerDown: onPointerDown !== null ? onPointerDown : function () {},
278
+ onScroll: onScroll !== null ? onScroll : function () {}
276
279
  }, {
277
280
  drag: dragOptions
278
281
  });
package/lib/components.js CHANGED
@@ -3633,6 +3633,7 @@ var ScreenSizer = function ScreenSizer(_ref) {
3633
3633
  className = _ref.className,
3634
3634
  children = _ref.children;
3635
3635
  var hasSize = width !== null || height !== null;
3636
+ //
3636
3637
  var _useDimensionObserver = hooks.useDimensionObserver(),
3637
3638
  refContainer = _useDimensionObserver.ref,
3638
3639
  _useDimensionObserver2 = _useDimensionObserver.width,
package/lib/contexts.js CHANGED
@@ -1078,6 +1078,7 @@ var defaultControlsThemeValue = {
1078
1078
  var defaultValue$1 = {
1079
1079
  playing: false,
1080
1080
  paused: false,
1081
+ completed: false,
1081
1082
  muted: true,
1082
1083
  controls: false,
1083
1084
  controlsSuggestPlay: false,
@@ -1100,21 +1101,26 @@ var PlaybackContext = /*#__PURE__*/React.createContext(_objectSpread(_objectSpre
1100
1101
  var usePlaybackContext = function usePlaybackContext() {
1101
1102
  return React.useContext(PlaybackContext);
1102
1103
  };
1103
- var usePlaybackMediaRef = function usePlaybackMediaRef(active) {
1104
+ var usePlaybackMediaRef = function usePlaybackMediaRef() {
1105
+ var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1106
+ var background = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1104
1107
  var _usePlaybackContext = usePlaybackContext(),
1105
- setMedia = _usePlaybackContext.setMedia;
1108
+ setMedia = _usePlaybackContext.setMedia,
1109
+ setIsBackground = _usePlaybackContext.setIsBackground;
1106
1110
  var mediaRef = React.useRef(null);
1107
1111
  React.useEffect(function () {
1108
1112
  if (!active) {
1109
1113
  return function () {};
1110
1114
  }
1115
+ setIsBackground(background);
1111
1116
  if (mediaRef.current !== null) {
1112
1117
  setMedia(mediaRef.current);
1113
1118
  }
1114
1119
  return function () {
1115
1120
  setMedia(null);
1121
+ setIsBackground(false);
1116
1122
  };
1117
- }, [setMedia, active]);
1123
+ }, [setMedia, setIsBackground, active, background]);
1118
1124
  return mediaRef;
1119
1125
  };
1120
1126
  var propTypes$5 = {
@@ -1155,26 +1161,30 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1155
1161
  _useState6 = _slicedToArray(_useState5, 2),
1156
1162
  media = _useState6[0],
1157
1163
  setMedia = _useState6[1];
1158
- var _useState7 = React.useState(initialControls),
1164
+ var _useState7 = React.useState(false),
1159
1165
  _useState8 = _slicedToArray(_useState7, 2),
1160
- controls = _useState8[0],
1161
- setControls = _useState8[1];
1162
- var _useState9 = React.useState(initialControlsSuggestPlay),
1166
+ isBackground = _useState8[0],
1167
+ setIsBackground = _useState8[1];
1168
+ var _useState9 = React.useState(initialControls),
1163
1169
  _useState0 = _slicedToArray(_useState9, 2),
1164
- controlsSuggestPlay = _useState0[0],
1165
- setControlsSuggestPlay = _useState0[1];
1166
- var _useState1 = React.useState(initialControlsVisible),
1170
+ controls = _useState0[0],
1171
+ setControls = _useState0[1];
1172
+ var _useState1 = React.useState(initialControlsSuggestPlay),
1167
1173
  _useState10 = _slicedToArray(_useState1, 2),
1168
- controlsVisible = _useState10[0],
1169
- setControlsVisible = _useState10[1];
1170
- var _useState11 = React.useState(initialControlsTheme),
1174
+ controlsSuggestPlay = _useState10[0],
1175
+ setControlsSuggestPlay = _useState10[1];
1176
+ var _useState11 = React.useState(initialControlsVisible),
1171
1177
  _useState12 = _slicedToArray(_useState11, 2),
1172
- controlsTheme = _useState12[0],
1173
- setControlsTheme = _useState12[1];
1174
- var _useState13 = React.useState(initialCurrentQualityLevel),
1178
+ controlsVisible = _useState12[0],
1179
+ setControlsVisible = _useState12[1];
1180
+ var _useState13 = React.useState(initialControlsTheme),
1175
1181
  _useState14 = _slicedToArray(_useState13, 2),
1176
- currentQualityLevel = _useState14[0],
1177
- setCurrentQualityLevel = _useState14[1];
1182
+ controlsTheme = _useState14[0],
1183
+ setControlsTheme = _useState14[1];
1184
+ var _useState15 = React.useState(initialCurrentQualityLevel),
1185
+ _useState16 = _slicedToArray(_useState15, 2),
1186
+ currentQualityLevel = _useState16[0],
1187
+ setCurrentQualityLevel = _useState16[1];
1178
1188
  var finalSetControls = React.useCallback(function (newControls) {
1179
1189
  if (newControls) {
1180
1190
  setControls(true);
@@ -1200,6 +1210,26 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1200
1210
  React.useEffect(function () {
1201
1211
  setControlsSuggestPlay(false);
1202
1212
  }, [media, setControlsSuggestPlay]);
1213
+
1214
+ // Handle media ended
1215
+ var _useState17 = React.useState(false),
1216
+ _useState18 = _slicedToArray(_useState17, 2),
1217
+ completed = _useState18[0],
1218
+ setCompleted = _useState18[1];
1219
+ var onMediaCompleted = React.useCallback(function () {
1220
+ return setCompleted(true);
1221
+ }, [setCompleted]);
1222
+ React.useEffect(function () {
1223
+ if (media !== null) {
1224
+ media.addEventListener('ended', onMediaCompleted);
1225
+ }
1226
+ return function () {
1227
+ if (media !== null) {
1228
+ media.removeEventListener('ended', onMediaCompleted);
1229
+ }
1230
+ setCompleted(false);
1231
+ };
1232
+ }, [media, onMediaCompleted, setCompleted]);
1203
1233
  var showControls = React.useCallback(function () {
1204
1234
  return setControlsVisible(true);
1205
1235
  }, [setControlsVisible]);
@@ -1228,6 +1258,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1228
1258
  return {
1229
1259
  muted: muted,
1230
1260
  playing: playing && !paused,
1261
+ completed: completed,
1231
1262
  controls: controls,
1232
1263
  controlsSuggestPlay: controlsSuggestPlay,
1233
1264
  controlsVisible: controlsVisible,
@@ -1236,6 +1267,8 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1236
1267
  controlsTheme: controlsTheme,
1237
1268
  currentQualityLevel: currentQualityLevel,
1238
1269
  setMuted: setMuted,
1270
+ setIsBackground: setIsBackground,
1271
+ isBackground: isBackground,
1239
1272
  setPlaying: finalSetPlaying,
1240
1273
  setControls: finalSetControls,
1241
1274
  setControlsSuggestPlay: setControlsSuggestPlay,
@@ -1246,7 +1279,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1246
1279
  setMedia: setMedia,
1247
1280
  setCurrentQualityLevel: finalSetCurrentQualityLevel
1248
1281
  };
1249
- }, [muted, playing, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1282
+ }, [muted, playing, completed, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, setIsBackground, isBackground, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1250
1283
  return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
1251
1284
  value: value
1252
1285
  }, children);
package/lib/hooks.js CHANGED
@@ -205,6 +205,8 @@ function useDragProgress() {
205
205
  onProgress = _ref$onProgress === void 0 ? null : _ref$onProgress,
206
206
  _ref$onPointerDown = _ref.onPointerDown,
207
207
  onPointerDown = _ref$onPointerDown === void 0 ? null : _ref$onPointerDown,
208
+ _ref$onScroll = _ref.onScroll,
209
+ onScroll = _ref$onScroll === void 0 ? null : _ref$onScroll,
208
210
  _ref$springParams = _ref.springParams,
209
211
  springParams = _ref$springParams === void 0 ? undefined : _ref$springParams,
210
212
  _ref$dragOptions = _ref.dragOptions,
@@ -274,7 +276,8 @@ function useDragProgress() {
274
276
  }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
275
277
  var bind = react$1.useGesture({
276
278
  onDrag: onDrag,
277
- onPointerDown: onPointerDown
279
+ onPointerDown: onPointerDown !== null ? onPointerDown : function () {},
280
+ onScroll: onScroll !== null ? onScroll : function () {}
278
281
  }, {
279
282
  drag: dragOptions
280
283
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/core",
3
- "version": "0.3.769",
3
+ "version": "0.3.781",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -164,5 +164,5 @@
164
164
  "access": "public",
165
165
  "registry": "https://registry.npmjs.org/"
166
166
  },
167
- "gitHead": "a009106ec28c6e34288f0b3292f1bc6826812dd0"
167
+ "gitHead": "95e03bd48803c170ef4efbc5bd204a0c83563c11"
168
168
  }