@micromag/core 0.3.251 → 0.3.252

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/hooks.js CHANGED
@@ -6,8 +6,8 @@ import isString from 'lodash/isString';
6
6
  import dayjs from 'dayjs';
7
7
  import { EventsManager, MediasParser, StoryParser, ThemeParser } from '@micromag/core';
8
8
  import { createUseEvent, getMediaFilesAsArray } from '@micromag/core/utils';
9
- import { useDrag } from '@use-gesture/react';
10
9
  import { useSpring, useSprings } from '@react-spring/core';
10
+ import { useDrag } from '@use-gesture/react';
11
11
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import { useForm as useForm$1 } from '@folklore/forms';
13
13
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
@@ -193,41 +193,22 @@ var useFormattedTime = function useFormattedTime() {
193
193
  }, [now, showNow, timeGap, format]);
194
194
  };
195
195
 
196
- var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;
197
- var useDocumentEvent = createUseEvent(eventsManager$1);
198
-
199
- var getValueFromSpring = function getValueFromSpring(s) {
200
- var _ref = s || {},
201
- _ref$value = _ref.value,
202
- v = _ref$value === void 0 ? null : _ref$value;
203
-
204
- var _ref2 = v || {},
205
- p = _ref2.progress;
206
-
207
- return p;
196
+ var useDebounced = function useDebounced(handler, watchedValue) {
197
+ var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;
198
+ useEffect(function () {
199
+ var timeoutHandler = setTimeout(function () {
200
+ if (handler !== null) {
201
+ handler(watchedValue);
202
+ }
203
+ }, delay);
204
+ return function () {
205
+ clearTimeout(timeoutHandler);
206
+ };
207
+ }, [watchedValue, delay]);
208
208
  };
209
209
 
210
- function useSpringValue(wantedProgress, immediate, params) {
211
- var _useState = useState(wantedProgress),
212
- _useState2 = _slicedToArray(_useState, 2),
213
- progress = _useState2[0],
214
- setProgress = _useState2[1];
215
-
216
- var onChange = useCallback(function (spring) {
217
- return setProgress(getValueFromSpring(spring));
218
- }, [setProgress]);
219
- useSpring(_objectSpread({
220
- progress: wantedProgress,
221
- onChange: onChange,
222
- immediate: immediate
223
- }, params)); // useEffect(() => {
224
- // if (wantedProgress !== null) {
225
- // api.start({ progress: wantedProgress, immediate, ...params });
226
- // }
227
- // }, [wantedProgress, immediate, params, api]);
228
-
229
- return immediate ? wantedProgress : progress;
230
- }
210
+ var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;
211
+ var useDocumentEvent = createUseEvent(eventsManager$1);
231
212
 
232
213
  function useDragProgress() {
233
214
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
@@ -246,21 +227,28 @@ function useDragProgress() {
246
227
  springParams = _ref$springParams === void 0 ? undefined : _ref$springParams,
247
228
  _ref$dragOptions = _ref.dragOptions,
248
229
  dragOptions = _ref$dragOptions === void 0 ? {
249
- filterTaps: true,
250
- preventDefault: true
230
+ filterTaps: true
251
231
  } : _ref$dragOptions;
252
232
 
253
233
  var refDragging = useRef(false);
234
+ var refProgress = useRef(wantedProgress);
254
235
 
255
- var _useState = useState({
256
- dragging: false,
257
- progress: wantedProgress
258
- }),
236
+ var _useState = useState(false),
259
237
  _useState2 = _slicedToArray(_useState, 2),
260
- _useState2$ = _useState2[0],
261
- dragging = _useState2$.dragging,
262
- progress = _useState2$.progress,
263
- setDragState = _useState2[1];
238
+ dragging = _useState2[0],
239
+ setDragging = _useState2[1];
240
+
241
+ var spring = useCallback(function () {
242
+ return _objectSpread({
243
+ progress: wantedProgress,
244
+ immediate: dragging || disabled
245
+ }, springParams);
246
+ }, []);
247
+
248
+ var _useSpring = useSpring(spring),
249
+ _useSpring2 = _slicedToArray(_useSpring, 2),
250
+ progress = _useSpring2[0].progress,
251
+ api = _useSpring2[1];
264
252
 
265
253
  var onDrag = useCallback(function (gestureState) {
266
254
  if (disabled) {
@@ -281,29 +269,35 @@ function useDragProgress() {
281
269
 
282
270
  var newProgress = computeProgress(gestureState);
283
271
  refDragging.current = active;
284
- setDragState({
285
- dragging: active,
286
- progress: newProgress
272
+ refProgress.current = newProgress;
273
+
274
+ if (active !== dragging) {
275
+ setDragging(active);
276
+ }
277
+
278
+ api.start({
279
+ progress: newProgress,
280
+ immediate: active
287
281
  });
288
282
 
289
283
  if (onProgress !== null) {
290
284
  onProgress(newProgress, gestureState);
291
285
  }
292
- }, [setDragState, disabled, onTap, computeProgress, setDragState, onProgress]);
286
+ }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
293
287
  var bind = useDrag(onDrag, dragOptions);
294
- var springedProgress = useSpringValue(progress, dragging || disabled, springParams);
295
288
  useEffect(function () {
296
- if (wantedProgress !== progress && !refDragging.current) {
297
- setDragState({
298
- dragging: refDragging.current,
299
- progress: wantedProgress
289
+ if (!refDragging.current && wantedProgress !== refProgress.current) {
290
+ refProgress.current = wantedProgress;
291
+ api.start({
292
+ progress: wantedProgress,
293
+ immediate: false
300
294
  });
301
295
  }
302
296
  }, [wantedProgress]);
303
297
  return {
304
298
  bind: bind,
305
299
  dragging: dragging,
306
- progress: springedProgress
300
+ progress: progress
307
301
  };
308
302
  }
309
303
 
@@ -1489,16 +1483,17 @@ function useMediaProgress(media) {
1489
1483
  var _useState = useState(!disabled),
1490
1484
  _useState2 = _slicedToArray(_useState, 2),
1491
1485
  playing = _useState2[0],
1492
- setPlaying = _useState2[1];
1486
+ setPlaying = _useState2[1]; // const currentTime = useMediaCurrentTime(media, {
1487
+ // disabled: disabled || !playing,
1488
+ // ...props,
1489
+ // });
1490
+
1493
1491
 
1494
- var currentTime = useMediaCurrentTime(media, _objectSpread({
1495
- disabled: disabled || !playing
1496
- }, props));
1497
1492
  var duration = useMediaDuration(media, _objectSpread({
1498
1493
  disabled: disabled || !playing
1499
1494
  }, props));
1500
1495
 
1501
- var _useState3 = useState(currentTime > 0 && duration > 0 ? currentTime / duration : 0),
1496
+ var _useState3 = useState(media !== null && (media.currentTime || 0) > 0 && duration > 0 ? media.currentTime / duration : 0),
1502
1497
  _useState4 = _slicedToArray(_useState3, 2),
1503
1498
  progress = _useState4[0],
1504
1499
  setProgress = _useState4[1];
@@ -1533,8 +1528,8 @@ function useMediaProgress(media) {
1533
1528
 
1534
1529
  media.addEventListener('play', onResume);
1535
1530
  media.addEventListener('seeked', onResume);
1536
- media.addEventListener('playing', onResume);
1537
- media.addEventListener('timeupdate', onResume);
1531
+ media.addEventListener('playing', onResume); // media.addEventListener('timeupdate', onResume);
1532
+
1538
1533
  media.addEventListener('pause', onPause);
1539
1534
  media.addEventListener('ended', onPause);
1540
1535
  media.addEventListener('waiting', onPause);
@@ -1549,8 +1544,8 @@ function useMediaProgress(media) {
1549
1544
  return function () {
1550
1545
  media.removeEventListener('play', onResume);
1551
1546
  media.removeEventListener('seeked', onResume);
1552
- media.removeEventListener('playing', onResume);
1553
- media.removeEventListener('timeupdate', onResume);
1547
+ media.removeEventListener('playing', onResume); // media.removeEventListener('timeupdate', onResume);
1548
+
1554
1549
  media.removeEventListener('pause', onPause);
1555
1550
  media.removeEventListener('ended', onPause);
1556
1551
  media.removeEventListener('waiting', onPause);
@@ -1559,11 +1554,7 @@ function useMediaProgress(media) {
1559
1554
  };
1560
1555
  }, [media, updateProgress, setPlaying, playing]);
1561
1556
  useEffect(function () {
1562
- if (media === null) {
1563
- return function () {};
1564
- }
1565
-
1566
- if (!playing || disabled) {
1557
+ if (media === null || !playing || disabled) {
1567
1558
  return function () {};
1568
1559
  }
1569
1560
 
@@ -2012,6 +2003,34 @@ var useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {
2012
2003
  return useScreenSize(_objectSpread(_objectSpread({}, opts), windowSize));
2013
2004
  };
2014
2005
 
2006
+ var getValueFromSpring = function getValueFromSpring(s) {
2007
+ var _ref = s || {},
2008
+ _ref$value = _ref.value,
2009
+ v = _ref$value === void 0 ? null : _ref$value;
2010
+
2011
+ var _ref2 = v || {},
2012
+ p = _ref2.progress;
2013
+
2014
+ return p;
2015
+ };
2016
+
2017
+ function useSpringValue(wantedProgress, immediate, params) {
2018
+ var _useState = useState(wantedProgress),
2019
+ _useState2 = _slicedToArray(_useState, 2),
2020
+ progress = _useState2[0],
2021
+ setProgress = _useState2[1];
2022
+
2023
+ var onChange = useCallback(function (spring) {
2024
+ return setProgress(getValueFromSpring(spring));
2025
+ }, [setProgress]);
2026
+ useSpring(_objectSpread({
2027
+ progress: wantedProgress,
2028
+ onChange: onChange,
2029
+ immediate: immediate
2030
+ }, params));
2031
+ return immediate ? wantedProgress : progress;
2032
+ }
2033
+
2015
2034
  var useSwipe = function useSwipe() {
2016
2035
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
2017
2036
  _ref$width = _ref.width,
@@ -2333,4 +2352,4 @@ var useTrackMedia = function useTrackMedia() {
2333
2352
  var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;
2334
2353
  var useWindowEvent = createUseEvent(eventsManager);
2335
2354
 
2336
- export { getObserver, useActivityDetector, useAnimationFrame, useDimensionObserver, useDocumentEvent, useDragProgress, useForm, useFormTransition, useFormattedDate, useFormattedTime, useFullscreen, useIntersectionObserver, useIsVisible, useLoadedFonts, useLongPress, useMediaApi, useMediaCurrentTime, useMediaDuration, useMediaLoad, useMediaProgress, useMediaReady, useMediaThumbnail, useMediaWaveform, useMediasParser, useObserver, useParsedStory, useProgressSteps, useResizeObserver, useScreenSizeFromElement, useScreenSizeFromWindow, useSpringValue, useSwipe, useThemeParser, useTrackEvent, useTrackMedia, useTrackScreenEvent, useTrackScreenMedia, useTrackScreenView, useWindowEvent };
2355
+ export { getObserver, useActivityDetector, useAnimationFrame, useDebounced as useDebounce, useDimensionObserver, useDocumentEvent, useDragProgress, useForm, useFormTransition, useFormattedDate, useFormattedTime, useFullscreen, useIntersectionObserver, useIsVisible, useLoadedFonts, useLongPress, useMediaApi, useMediaCurrentTime, useMediaDuration, useMediaLoad, useMediaProgress, useMediaReady, useMediaThumbnail, useMediaWaveform, useMediasParser, useObserver, useParsedStory, useProgressSteps, useResizeObserver, useScreenSizeFromElement, useScreenSizeFromWindow, useSpringValue, useSwipe, useThemeParser, useTrackEvent, useTrackMedia, useTrackScreenEvent, useTrackScreenMedia, useTrackScreenView, useWindowEvent };
package/es/utils.js CHANGED
@@ -931,6 +931,22 @@ var getStyleFromMargin = function getStyleFromMargin(value) {
931
931
  } : null);
932
932
  };
933
933
 
934
+ var possibleMimes = ['video/webm', 'video/mp4', 'video/ogg'];
935
+ var supportedMimes = null;
936
+
937
+ function getVideoSupportedMimes() {
938
+ var mimes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : possibleMimes;
939
+
940
+ if (supportedMimes === null) {
941
+ var video = document.createElement('video');
942
+ supportedMimes = mimes.filter(function (mime) {
943
+ return video.canPlayType(mime) !== '';
944
+ });
945
+ }
946
+
947
+ return supportedMimes;
948
+ }
949
+
934
950
  var getLayoutParts = function getLayoutParts() {
935
951
  var layout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
936
952
 
@@ -1093,4 +1109,4 @@ var getContrastingColor = function getContrastingColor(backgroundColor) {
1093
1109
  return tinycolor(color).spin(30).toString();
1094
1110
  };
1095
1111
 
1096
- export { convertStyleToString, copyToClipboard, createNullableOnChange, createUseEvent, easings, getColorAsString, getComponentFromName, getContrastingColor, getDeviceScreens, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getSecondsFromTime, getShadowCoords, getStyleFromBorder, getStyleFromBox, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, schemaId, setValue as setFieldValue, slug, unique, validateFields };
1112
+ export { convertStyleToString, copyToClipboard, createNullableOnChange, createUseEvent, easings, getColorAsString, getComponentFromName, getContrastingColor, getDeviceScreens, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getSecondsFromTime, getShadowCoords, getStyleFromBorder, getStyleFromBox, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, getVideoSupportedMimes, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, schemaId, setValue as setFieldValue, slug, unique, validateFields };
package/lib/components.js CHANGED
@@ -3675,6 +3675,7 @@ var propTypes$9 = {
3675
3675
  screen: core.PropTypes.storyComponent.isRequired,
3676
3676
  renderContext: core.PropTypes.renderContext,
3677
3677
  screenState: PropTypes__default["default"].string,
3678
+ index: PropTypes__default["default"].number,
3678
3679
  active: PropTypes__default["default"].bool,
3679
3680
  current: PropTypes__default["default"].bool,
3680
3681
  component: PropTypes__default["default"].node,
@@ -3686,6 +3687,7 @@ var defaultProps$9 = {
3686
3687
  active: true,
3687
3688
  renderContext: null,
3688
3689
  screenState: null,
3690
+ index: null,
3689
3691
  current: false,
3690
3692
  component: null,
3691
3693
  components: null,
@@ -3697,6 +3699,7 @@ var Screen = function Screen(_ref) {
3697
3699
  var screen = _ref.screen,
3698
3700
  renderContext = _ref.renderContext,
3699
3701
  screenState = _ref.screenState,
3702
+ index = _ref.index,
3700
3703
  active = _ref.active,
3701
3704
  current = _ref.current,
3702
3705
  components = _ref.components,
@@ -3710,7 +3713,8 @@ var Screen = function Screen(_ref) {
3710
3713
 
3711
3714
  var CustomScreenComponent = components !== null ? utils.getComponentFromName(type, components) || null : null;
3712
3715
  var ContextScreenComponent = contexts.useScreenComponent(type);
3713
- var ScreenComponent = CustomScreenComponent || ContextScreenComponent;
3716
+ var ScreenComponent = CustomScreenComponent || ContextScreenComponent; // Comment
3717
+
3714
3718
  return /*#__PURE__*/React__default["default"].createElement(contexts.ScreenProvider, {
3715
3719
  data: screen,
3716
3720
  renderContext: renderContext,
@@ -3718,6 +3722,7 @@ var Screen = function Screen(_ref) {
3718
3722
  }, ScreenComponent !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
3719
3723
  className: classNames__default["default"]([styles$8.container, _defineProperty__default["default"]({}, className, className !== null)])
3720
3724
  }, /*#__PURE__*/React__default["default"].createElement(ScreenComponent, Object.assign({}, screen, {
3725
+ index: index,
3721
3726
  active: active,
3722
3727
  current: current,
3723
3728
  mediaRef: mediaRef