@micromag/core 0.3.769 → 0.3.779

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,
@@ -3742,7 +3743,7 @@ var defaultProps$9 = {
3742
3743
  className: null,
3743
3744
  mediaRef: null
3744
3745
  };
3745
- var Screen = function Screen(_ref) {
3746
+ var Screen$1 = function Screen(_ref) {
3746
3747
  var screen = _ref.screen,
3747
3748
  renderContext = _ref.renderContext,
3748
3749
  screenState = _ref.screenState,
@@ -3776,9 +3777,9 @@ var Screen = function Screen(_ref) {
3776
3777
  className: className
3777
3778
  }, component));
3778
3779
  };
3779
- Screen.propTypes = propTypes$9;
3780
- Screen.defaultProps = defaultProps$9;
3781
- var Screen$1 = /*#__PURE__*/React.memo(Screen);
3780
+ Screen$1.propTypes = propTypes$9;
3781
+ Screen$1.defaultProps = defaultProps$9;
3782
+ var Screen = /*#__PURE__*/React.memo(Screen$1);
3782
3783
 
3783
3784
  var styles$7 = {"screen":"micromag-core-screens-screen-placeholder-screen"};
3784
3785
 
@@ -3809,7 +3810,7 @@ var ScreenPlaceholder = function ScreenPlaceholder(_ref) {
3809
3810
  withSize = _ref.withSize,
3810
3811
  className = _ref.className,
3811
3812
  props = _objectWithoutProperties(_ref, _excluded$1);
3812
- var screenElement = /*#__PURE__*/React.createElement(Screen$1, Object.assign({
3813
+ var screenElement = /*#__PURE__*/React.createElement(Screen, Object.assign({
3813
3814
  screen: screen,
3814
3815
  renderContext: "placeholder",
3815
3816
  screenState: screenState,
@@ -3862,7 +3863,7 @@ var ScreenPreview = function ScreenPreview(_ref) {
3862
3863
  fit = _ref.fit,
3863
3864
  hidden = _ref.hidden,
3864
3865
  props = _objectWithoutProperties(_ref, _excluded);
3865
- var screenElement = /*#__PURE__*/React.createElement(Screen$1, Object.assign({
3866
+ var screenElement = /*#__PURE__*/React.createElement(Screen, Object.assign({
3866
3867
  screen: screen,
3867
3868
  renderContext: "preview",
3868
3869
  screenState: screenState,
@@ -4093,7 +4094,7 @@ var Screens = function Screens(_ref) {
4093
4094
  className: classNames([styles$1.container, _defineProperty({}, className, className)])
4094
4095
  }, screens.map(function (screen) {
4095
4096
  var id = screen.id;
4096
- return /*#__PURE__*/React.createElement(Screen$1, {
4097
+ return /*#__PURE__*/React.createElement(Screen, {
4097
4098
  key: "screen-".concat(id),
4098
4099
  screen: screen,
4099
4100
  className: classNames([styles$1.screen, _defineProperty({}, styles$1.visible, screenId === id)])
@@ -4427,4 +4428,4 @@ var LinkStyle = function LinkStyle(_ref) {
4427
4428
  LinkStyle.propTypes = propTypes;
4428
4429
  LinkStyle.defaultProps = defaultProps;
4429
4430
 
4430
- export { ArrowIcon, BackButton, Breadcrumb, Button$1 as Button, Buttons, Card, ClearButton, Close, CloseIcon, CollapsablePanel, Date$1 as Date, Detector, Dropdown as DropdownMenu, ElementComponent as Element, Empty, FieldForm, FontFaces, Form, FormPanel, FullscreenIcon, HighlightStyle, Label, Link, LinkIcon, LinkStyle, Media, _Menu as Menu, Meta, Modal, ModalDialog, ModalPortal, Modals, MuteIcon, Navbar, PaginationMenu as Pagination, Panel, PanelPortal, Panels, PauseIcon, AdFrame as PlaceholderAdFrame, AdImage as PlaceholderAdImage, Audio as PlaceholderAudio, Button as PlaceholderButton, Image as PlaceholderImage, Line as PlaceholderLine, Map as PlaceholderMap, MapPath as PlaceholderMapPath, Quote as PlaceholderQuote, ShortText as PlaceholderShortText, Subtitle as PlaceholderSubtitle, TextPlaceholder as PlaceholderText, Timeline as PlaceholderTimeline, Title$1 as PlaceholderTitle, Video as PlaceholderVideo, Video360 as PlaceholderVideo360, VideoLoop as PlaceholderVideoLoop, PlayIcon, Screen$1 as Screen, ScreenElement, Placeholder as ScreenPlaceholder, Preview as ScreenPreview, ScreenSizer, Screens, Slideshow, Spinner, TabsMenu as Tabs, Transitions, TransitionsStagger, UnmuteIcon };
4431
+ export { ArrowIcon, BackButton, Breadcrumb, Button$1 as Button, Buttons, Card, ClearButton, Close, CloseIcon, CollapsablePanel, Date$1 as Date, Detector, Dropdown as DropdownMenu, ElementComponent as Element, Empty, FieldForm, FontFaces, Form, FormPanel, FullscreenIcon, HighlightStyle, Label, Link, LinkIcon, LinkStyle, Media, _Menu as Menu, Meta, Modal, ModalDialog, ModalPortal, Modals, MuteIcon, Navbar, PaginationMenu as Pagination, Panel, PanelPortal, Panels, PauseIcon, AdFrame as PlaceholderAdFrame, AdImage as PlaceholderAdImage, Audio as PlaceholderAudio, Button as PlaceholderButton, Image as PlaceholderImage, Line as PlaceholderLine, Map as PlaceholderMap, MapPath as PlaceholderMapPath, Quote as PlaceholderQuote, ShortText as PlaceholderShortText, Subtitle as PlaceholderSubtitle, TextPlaceholder as PlaceholderText, Timeline as PlaceholderTimeline, Title$1 as PlaceholderTitle, Video as PlaceholderVideo, Video360 as PlaceholderVideo360, VideoLoop as PlaceholderVideoLoop, PlayIcon, Screen, ScreenElement, Placeholder as ScreenPlaceholder, Preview as ScreenPreview, ScreenSizer, Screens, Slideshow, Spinner, TabsMenu as Tabs, Transitions, TransitionsStagger, UnmuteIcon };
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,
@@ -1200,6 +1201,26 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1200
1201
  useEffect(function () {
1201
1202
  setControlsSuggestPlay(false);
1202
1203
  }, [media, setControlsSuggestPlay]);
1204
+
1205
+ // Handle media ended
1206
+ var _useState15 = useState(false),
1207
+ _useState16 = _slicedToArray(_useState15, 2),
1208
+ completed = _useState16[0],
1209
+ setCompleted = _useState16[1];
1210
+ var onMediaCompleted = useCallback(function () {
1211
+ return setCompleted(true);
1212
+ }, [setCompleted]);
1213
+ useEffect(function () {
1214
+ if (media !== null) {
1215
+ media.addEventListener('ended', onMediaCompleted);
1216
+ }
1217
+ return function () {
1218
+ if (media !== null) {
1219
+ media.removeEventListener('ended', onMediaCompleted);
1220
+ }
1221
+ setCompleted(false);
1222
+ };
1223
+ }, [media, onMediaCompleted, setCompleted]);
1203
1224
  var showControls = useCallback(function () {
1204
1225
  return setControlsVisible(true);
1205
1226
  }, [setControlsVisible]);
@@ -1228,6 +1249,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1228
1249
  return {
1229
1250
  muted: muted,
1230
1251
  playing: playing && !paused,
1252
+ completed: completed,
1231
1253
  controls: controls,
1232
1254
  controlsSuggestPlay: controlsSuggestPlay,
1233
1255
  controlsVisible: controlsVisible,
@@ -1246,7 +1268,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1246
1268
  setMedia: setMedia,
1247
1269
  setCurrentQualityLevel: finalSetCurrentQualityLevel
1248
1270
  };
1249
- }, [muted, playing, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1271
+ }, [muted, playing, completed, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1250
1272
  return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
1251
1273
  value: value
1252
1274
  }, children);
package/es/hooks.js CHANGED
@@ -272,7 +272,7 @@ function useDragProgress() {
272
272
  }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
273
273
  var bind = useGesture({
274
274
  onDrag: onDrag,
275
- onPointerDown: onPointerDown
275
+ onPointerDown: onPointerDown !== null ? onPointerDown : function () {}
276
276
  }, {
277
277
  drag: dragOptions
278
278
  });
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,
@@ -1200,6 +1201,26 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1200
1201
  React.useEffect(function () {
1201
1202
  setControlsSuggestPlay(false);
1202
1203
  }, [media, setControlsSuggestPlay]);
1204
+
1205
+ // Handle media ended
1206
+ var _useState15 = React.useState(false),
1207
+ _useState16 = _slicedToArray(_useState15, 2),
1208
+ completed = _useState16[0],
1209
+ setCompleted = _useState16[1];
1210
+ var onMediaCompleted = React.useCallback(function () {
1211
+ return setCompleted(true);
1212
+ }, [setCompleted]);
1213
+ React.useEffect(function () {
1214
+ if (media !== null) {
1215
+ media.addEventListener('ended', onMediaCompleted);
1216
+ }
1217
+ return function () {
1218
+ if (media !== null) {
1219
+ media.removeEventListener('ended', onMediaCompleted);
1220
+ }
1221
+ setCompleted(false);
1222
+ };
1223
+ }, [media, onMediaCompleted, setCompleted]);
1203
1224
  var showControls = React.useCallback(function () {
1204
1225
  return setControlsVisible(true);
1205
1226
  }, [setControlsVisible]);
@@ -1228,6 +1249,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1228
1249
  return {
1229
1250
  muted: muted,
1230
1251
  playing: playing && !paused,
1252
+ completed: completed,
1231
1253
  controls: controls,
1232
1254
  controlsSuggestPlay: controlsSuggestPlay,
1233
1255
  controlsVisible: controlsVisible,
@@ -1246,7 +1268,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
1246
1268
  setMedia: setMedia,
1247
1269
  setCurrentQualityLevel: finalSetCurrentQualityLevel
1248
1270
  };
1249
- }, [muted, playing, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1271
+ }, [muted, playing, completed, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, currentQualityLevel, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia, setCurrentQualityLevel]);
1250
1272
  return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
1251
1273
  value: value
1252
1274
  }, children);
package/lib/hooks.js CHANGED
@@ -274,7 +274,7 @@ function useDragProgress() {
274
274
  }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
275
275
  var bind = react$1.useGesture({
276
276
  onDrag: onDrag,
277
- onPointerDown: onPointerDown
277
+ onPointerDown: onPointerDown !== null ? onPointerDown : function () {}
278
278
  }, {
279
279
  drag: dragOptions
280
280
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/core",
3
- "version": "0.3.769",
3
+ "version": "0.3.779",
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": "5cc7b8fc6d58ba77100060a9d9a4a3f87f835559"
168
168
  }