@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/lib/hooks.js CHANGED
@@ -10,8 +10,8 @@ var isString = require('lodash/isString');
10
10
  var dayjs = require('dayjs');
11
11
  var core = require('@micromag/core');
12
12
  var utils = require('@micromag/core/utils');
13
- var react$1 = require('@use-gesture/react');
14
13
  var core$1 = require('@react-spring/core');
14
+ var react$1 = require('@use-gesture/react');
15
15
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
16
16
  var forms = require('@folklore/forms');
17
17
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
@@ -231,41 +231,22 @@ var useFormattedTime = function useFormattedTime() {
231
231
  }, [now, showNow, timeGap, format]);
232
232
  };
233
233
 
234
- var eventsManager$1 = typeof document !== 'undefined' ? new core.EventsManager(document) : null;
235
- var useDocumentEvent = utils.createUseEvent(eventsManager$1);
236
-
237
- var getValueFromSpring = function getValueFromSpring(s) {
238
- var _ref = s || {},
239
- _ref$value = _ref.value,
240
- v = _ref$value === void 0 ? null : _ref$value;
241
-
242
- var _ref2 = v || {},
243
- p = _ref2.progress;
244
-
245
- return p;
234
+ var useDebounced = function useDebounced(handler, watchedValue) {
235
+ var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;
236
+ react.useEffect(function () {
237
+ var timeoutHandler = setTimeout(function () {
238
+ if (handler !== null) {
239
+ handler(watchedValue);
240
+ }
241
+ }, delay);
242
+ return function () {
243
+ clearTimeout(timeoutHandler);
244
+ };
245
+ }, [watchedValue, delay]);
246
246
  };
247
247
 
248
- function useSpringValue(wantedProgress, immediate, params) {
249
- var _useState = react.useState(wantedProgress),
250
- _useState2 = _slicedToArray__default["default"](_useState, 2),
251
- progress = _useState2[0],
252
- setProgress = _useState2[1];
253
-
254
- var onChange = react.useCallback(function (spring) {
255
- return setProgress(getValueFromSpring(spring));
256
- }, [setProgress]);
257
- core$1.useSpring(_objectSpread__default["default"]({
258
- progress: wantedProgress,
259
- onChange: onChange,
260
- immediate: immediate
261
- }, params)); // useEffect(() => {
262
- // if (wantedProgress !== null) {
263
- // api.start({ progress: wantedProgress, immediate, ...params });
264
- // }
265
- // }, [wantedProgress, immediate, params, api]);
266
-
267
- return immediate ? wantedProgress : progress;
268
- }
248
+ var eventsManager$1 = typeof document !== 'undefined' ? new core.EventsManager(document) : null;
249
+ var useDocumentEvent = utils.createUseEvent(eventsManager$1);
269
250
 
270
251
  function useDragProgress() {
271
252
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
@@ -284,21 +265,28 @@ function useDragProgress() {
284
265
  springParams = _ref$springParams === void 0 ? undefined : _ref$springParams,
285
266
  _ref$dragOptions = _ref.dragOptions,
286
267
  dragOptions = _ref$dragOptions === void 0 ? {
287
- filterTaps: true,
288
- preventDefault: true
268
+ filterTaps: true
289
269
  } : _ref$dragOptions;
290
270
 
291
271
  var refDragging = react.useRef(false);
272
+ var refProgress = react.useRef(wantedProgress);
292
273
 
293
- var _useState = react.useState({
294
- dragging: false,
295
- progress: wantedProgress
296
- }),
274
+ var _useState = react.useState(false),
297
275
  _useState2 = _slicedToArray__default["default"](_useState, 2),
298
- _useState2$ = _useState2[0],
299
- dragging = _useState2$.dragging,
300
- progress = _useState2$.progress,
301
- setDragState = _useState2[1];
276
+ dragging = _useState2[0],
277
+ setDragging = _useState2[1];
278
+
279
+ var spring = react.useCallback(function () {
280
+ return _objectSpread__default["default"]({
281
+ progress: wantedProgress,
282
+ immediate: dragging || disabled
283
+ }, springParams);
284
+ }, []);
285
+
286
+ var _useSpring = core$1.useSpring(spring),
287
+ _useSpring2 = _slicedToArray__default["default"](_useSpring, 2),
288
+ progress = _useSpring2[0].progress,
289
+ api = _useSpring2[1];
302
290
 
303
291
  var onDrag = react.useCallback(function (gestureState) {
304
292
  if (disabled) {
@@ -319,29 +307,35 @@ function useDragProgress() {
319
307
 
320
308
  var newProgress = computeProgress(gestureState);
321
309
  refDragging.current = active;
322
- setDragState({
323
- dragging: active,
324
- progress: newProgress
310
+ refProgress.current = newProgress;
311
+
312
+ if (active !== dragging) {
313
+ setDragging(active);
314
+ }
315
+
316
+ api.start({
317
+ progress: newProgress,
318
+ immediate: active
325
319
  });
326
320
 
327
321
  if (onProgress !== null) {
328
322
  onProgress(newProgress, gestureState);
329
323
  }
330
- }, [setDragState, disabled, onTap, computeProgress, setDragState, onProgress]);
324
+ }, [setDragging, disabled, onTap, computeProgress, dragging, onProgress]);
331
325
  var bind = react$1.useDrag(onDrag, dragOptions);
332
- var springedProgress = useSpringValue(progress, dragging || disabled, springParams);
333
326
  react.useEffect(function () {
334
- if (wantedProgress !== progress && !refDragging.current) {
335
- setDragState({
336
- dragging: refDragging.current,
337
- progress: wantedProgress
327
+ if (!refDragging.current && wantedProgress !== refProgress.current) {
328
+ refProgress.current = wantedProgress;
329
+ api.start({
330
+ progress: wantedProgress,
331
+ immediate: false
338
332
  });
339
333
  }
340
334
  }, [wantedProgress]);
341
335
  return {
342
336
  bind: bind,
343
337
  dragging: dragging,
344
- progress: springedProgress
338
+ progress: progress
345
339
  };
346
340
  }
347
341
 
@@ -1527,16 +1521,17 @@ function useMediaProgress(media) {
1527
1521
  var _useState = react.useState(!disabled),
1528
1522
  _useState2 = _slicedToArray__default["default"](_useState, 2),
1529
1523
  playing = _useState2[0],
1530
- setPlaying = _useState2[1];
1524
+ setPlaying = _useState2[1]; // const currentTime = useMediaCurrentTime(media, {
1525
+ // disabled: disabled || !playing,
1526
+ // ...props,
1527
+ // });
1528
+
1531
1529
 
1532
- var currentTime = useMediaCurrentTime(media, _objectSpread__default["default"]({
1533
- disabled: disabled || !playing
1534
- }, props));
1535
1530
  var duration = useMediaDuration(media, _objectSpread__default["default"]({
1536
1531
  disabled: disabled || !playing
1537
1532
  }, props));
1538
1533
 
1539
- var _useState3 = react.useState(currentTime > 0 && duration > 0 ? currentTime / duration : 0),
1534
+ var _useState3 = react.useState(media !== null && (media.currentTime || 0) > 0 && duration > 0 ? media.currentTime / duration : 0),
1540
1535
  _useState4 = _slicedToArray__default["default"](_useState3, 2),
1541
1536
  progress = _useState4[0],
1542
1537
  setProgress = _useState4[1];
@@ -1571,8 +1566,8 @@ function useMediaProgress(media) {
1571
1566
 
1572
1567
  media.addEventListener('play', onResume);
1573
1568
  media.addEventListener('seeked', onResume);
1574
- media.addEventListener('playing', onResume);
1575
- media.addEventListener('timeupdate', onResume);
1569
+ media.addEventListener('playing', onResume); // media.addEventListener('timeupdate', onResume);
1570
+
1576
1571
  media.addEventListener('pause', onPause);
1577
1572
  media.addEventListener('ended', onPause);
1578
1573
  media.addEventListener('waiting', onPause);
@@ -1587,8 +1582,8 @@ function useMediaProgress(media) {
1587
1582
  return function () {
1588
1583
  media.removeEventListener('play', onResume);
1589
1584
  media.removeEventListener('seeked', onResume);
1590
- media.removeEventListener('playing', onResume);
1591
- media.removeEventListener('timeupdate', onResume);
1585
+ media.removeEventListener('playing', onResume); // media.removeEventListener('timeupdate', onResume);
1586
+
1592
1587
  media.removeEventListener('pause', onPause);
1593
1588
  media.removeEventListener('ended', onPause);
1594
1589
  media.removeEventListener('waiting', onPause);
@@ -1597,11 +1592,7 @@ function useMediaProgress(media) {
1597
1592
  };
1598
1593
  }, [media, updateProgress, setPlaying, playing]);
1599
1594
  react.useEffect(function () {
1600
- if (media === null) {
1601
- return function () {};
1602
- }
1603
-
1604
- if (!playing || disabled) {
1595
+ if (media === null || !playing || disabled) {
1605
1596
  return function () {};
1606
1597
  }
1607
1598
 
@@ -2050,6 +2041,34 @@ var useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {
2050
2041
  return useScreenSize(_objectSpread__default["default"](_objectSpread__default["default"]({}, opts), windowSize));
2051
2042
  };
2052
2043
 
2044
+ var getValueFromSpring = function getValueFromSpring(s) {
2045
+ var _ref = s || {},
2046
+ _ref$value = _ref.value,
2047
+ v = _ref$value === void 0 ? null : _ref$value;
2048
+
2049
+ var _ref2 = v || {},
2050
+ p = _ref2.progress;
2051
+
2052
+ return p;
2053
+ };
2054
+
2055
+ function useSpringValue(wantedProgress, immediate, params) {
2056
+ var _useState = react.useState(wantedProgress),
2057
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2058
+ progress = _useState2[0],
2059
+ setProgress = _useState2[1];
2060
+
2061
+ var onChange = react.useCallback(function (spring) {
2062
+ return setProgress(getValueFromSpring(spring));
2063
+ }, [setProgress]);
2064
+ core$1.useSpring(_objectSpread__default["default"]({
2065
+ progress: wantedProgress,
2066
+ onChange: onChange,
2067
+ immediate: immediate
2068
+ }, params));
2069
+ return immediate ? wantedProgress : progress;
2070
+ }
2071
+
2053
2072
  var useSwipe = function useSwipe() {
2054
2073
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
2055
2074
  _ref$width = _ref.width,
@@ -2374,6 +2393,7 @@ var useWindowEvent = utils.createUseEvent(eventsManager);
2374
2393
  exports.getObserver = getObserver;
2375
2394
  exports.useActivityDetector = useActivityDetector;
2376
2395
  exports.useAnimationFrame = useAnimationFrame;
2396
+ exports.useDebounce = useDebounced;
2377
2397
  exports.useDimensionObserver = useDimensionObserver;
2378
2398
  exports.useDocumentEvent = useDocumentEvent;
2379
2399
  exports.useDragProgress = useDragProgress;
package/lib/utils.js CHANGED
@@ -950,6 +950,22 @@ var getStyleFromMargin = function getStyleFromMargin(value) {
950
950
  } : null);
951
951
  };
952
952
 
953
+ var possibleMimes = ['video/webm', 'video/mp4', 'video/ogg'];
954
+ var supportedMimes = null;
955
+
956
+ function getVideoSupportedMimes() {
957
+ var mimes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : possibleMimes;
958
+
959
+ if (supportedMimes === null) {
960
+ var video = document.createElement('video');
961
+ supportedMimes = mimes.filter(function (mime) {
962
+ return video.canPlayType(mime) !== '';
963
+ });
964
+ }
965
+
966
+ return supportedMimes;
967
+ }
968
+
953
969
  var getLayoutParts = function getLayoutParts() {
954
970
  var layout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
955
971
 
@@ -1152,6 +1168,7 @@ exports.getStyleFromImage = getStyleFromImage;
1152
1168
  exports.getStyleFromLink = getStyleFromLink;
1153
1169
  exports.getStyleFromMargin = getStyleFromMargin;
1154
1170
  exports.getStyleFromText = getStyleFromText;
1171
+ exports.getVideoSupportedMimes = getVideoSupportedMimes;
1155
1172
  exports.isImageFilled = isImageFilled;
1156
1173
  exports.isIos = isIos;
1157
1174
  exports.isLabelFilled = isTextFilled$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/core",
3
- "version": "0.3.251",
3
+ "version": "0.3.252",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -133,5 +133,5 @@
133
133
  "publishConfig": {
134
134
  "access": "public"
135
135
  },
136
- "gitHead": "3b6fb00baaa7f3ab90684a88cbe4c30929b6b27d"
136
+ "gitHead": "67a8b8144a40086a6dfd98c9eb8c4b6b8ebb05b0"
137
137
  }