@micromag/core 0.3.251 → 0.3.262

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
@@ -657,6 +657,38 @@ function getShadowCoords(angle, distance) {
657
657
  };
658
658
  }
659
659
 
660
+ // import isObject from 'lodash/isObject';
661
+ function getJustifyContent(horizontal) {
662
+ if (horizontal === 'left') return 'flex-start';
663
+ if (horizontal === 'middle') return 'center';
664
+ if (horizontal === 'right') return 'flex-end';
665
+ return null;
666
+ }
667
+
668
+ function getAlignItems(vertical) {
669
+ if (vertical === 'top') return 'flex-start';
670
+ if (vertical === 'middle') return 'center';
671
+ if (vertical === 'bottom') return 'flex-end';
672
+ return null;
673
+ }
674
+
675
+ var getStyleFromAlignment = function getStyleFromAlignment(value) {
676
+ if (value === null) {
677
+ return null;
678
+ }
679
+
680
+ var _value$horizontal = value.horizontal,
681
+ horizontal = _value$horizontal === void 0 ? null : _value$horizontal,
682
+ _value$vertical = value.vertical,
683
+ vertical = _value$vertical === void 0 ? null : _value$vertical;
684
+ var justifyContent = getJustifyContent(horizontal);
685
+ var alignItems = getAlignItems(vertical);
686
+ return {
687
+ justifyContent: justifyContent,
688
+ alignItems: alignItems
689
+ };
690
+ };
691
+
660
692
  var getStyleFromColor = function getStyleFromColor() {
661
693
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
662
694
  var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'backgroundColor';
@@ -950,6 +982,22 @@ var getStyleFromMargin = function getStyleFromMargin(value) {
950
982
  } : null);
951
983
  };
952
984
 
985
+ var possibleMimes = ['video/webm', 'video/mp4', 'video/ogg'];
986
+ var supportedMimes = null;
987
+
988
+ function getVideoSupportedMimes() {
989
+ var mimes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : possibleMimes;
990
+
991
+ if (supportedMimes === null) {
992
+ var video = document.createElement('video');
993
+ supportedMimes = mimes.filter(function (mime) {
994
+ return video.canPlayType(mime) !== '';
995
+ });
996
+ }
997
+
998
+ return supportedMimes;
999
+ }
1000
+
953
1001
  var getLayoutParts = function getLayoutParts() {
954
1002
  var layout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
955
1003
 
@@ -1143,6 +1191,7 @@ exports.getOptimalImageUrl = getOptimalImageUrl;
1143
1191
  exports.getScreenExtraField = getScreenExtraField;
1144
1192
  exports.getSecondsFromTime = getSecondsFromTime;
1145
1193
  exports.getShadowCoords = getShadowCoords;
1194
+ exports.getStyleFromAlignment = getStyleFromAlignment;
1146
1195
  exports.getStyleFromBorder = getStyleFromBorder;
1147
1196
  exports.getStyleFromBox = getStyleFromBox;
1148
1197
  exports.getStyleFromColor = getStyleFromColor;
@@ -1152,6 +1201,7 @@ exports.getStyleFromImage = getStyleFromImage;
1152
1201
  exports.getStyleFromLink = getStyleFromLink;
1153
1202
  exports.getStyleFromMargin = getStyleFromMargin;
1154
1203
  exports.getStyleFromText = getStyleFromText;
1204
+ exports.getVideoSupportedMimes = getVideoSupportedMimes;
1155
1205
  exports.isImageFilled = isImageFilled;
1156
1206
  exports.isIos = isIos;
1157
1207
  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.262",
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": "2299eaeb150cfdd14b4da321bf9089ab1e6383c2"
137
137
  }