@micromag/core 0.2.409 → 0.3.1

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/contexts.js CHANGED
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
6
- var React = require('react');
7
- var PropTypes = require('prop-types');
8
6
  var isString = require('lodash/isString');
7
+ var PropTypes = require('prop-types');
8
+ var React = require('react');
9
9
  var core = require('@micromag/core');
10
10
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
11
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
12
12
  var uniqBy = require('lodash/uniqBy');
13
13
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
14
- var isObject = require('lodash/isObject');
15
14
  var fetch = require('@folklore/fetch');
15
+ var isObject = require('lodash/isObject');
16
16
  var services = require('@folklore/services');
17
17
  var utils = require('@micromag/core/utils');
18
18
  var reactRouter = require('react-router');
@@ -20,6 +20,7 @@ var reactIntl = require('react-intl');
20
20
  var tracking = require('@folklore/tracking');
21
21
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
22
22
  var uuid = require('uuid');
23
+ var EventEmitter = require('wolfy87-eventemitter');
23
24
 
24
25
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
26
 
@@ -42,15 +43,16 @@ function _interopNamespace(e) {
42
43
  }
43
44
 
44
45
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
45
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
46
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
47
46
  var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
47
+ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
48
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
48
49
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
49
50
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
50
51
  var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
51
52
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
52
53
  var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
53
54
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
55
+ var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
54
56
 
55
57
  var MODALS_NAMESPACE = 'modals';
56
58
  var FIELDS_NAMESPACE = 'fields';
@@ -355,7 +357,8 @@ var EditorProvider = function EditorProvider(_ref2) {
355
357
  }, [parser]);
356
358
  var getColors = React.useCallback(function () {
357
359
  return parse(story);
358
- }, [parse, story]);
360
+ }, [parse, story]); // eslint-disable-next-line react/jsx-no-constructed-context-values
361
+
359
362
  return /*#__PURE__*/React__default["default"].createElement(EditorContext.Provider, {
360
363
  value: {
361
364
  getColors: getColors
@@ -410,10 +413,13 @@ var GoogleKeysProvider = function GoogleKeysProvider(_ref) {
410
413
  var _useGoogleKeys = useGoogleKeys(),
411
414
  previousApiKey = _useGoogleKeys.apiKey;
412
415
 
413
- return /*#__PURE__*/React__default["default"].createElement(GoogleKeysContext.Provider, {
414
- value: {
416
+ var value = React.useMemo(function () {
417
+ return {
415
418
  apiKey: apiKey || previousApiKey
416
- }
419
+ };
420
+ }, [apiKey, previousApiKey]);
421
+ return /*#__PURE__*/React__default["default"].createElement(GoogleKeysContext.Provider, {
422
+ value: value
417
423
  }, children);
418
424
  };
419
425
  GoogleKeysProvider.propTypes = propTypes$c;
@@ -744,14 +750,17 @@ var ModalsProvider = function ModalsProvider(_ref2) {
744
750
  modalsRef.current = newModals;
745
751
  }
746
752
  }, [modals, setModals]);
747
- return /*#__PURE__*/React__default["default"].createElement(ModalsContext.Provider, {
748
- value: {
753
+ var value = React.useMemo(function () {
754
+ return {
749
755
  modals: modals,
750
756
  container: container,
751
757
  setContainer: setContainer,
752
758
  register: register,
753
759
  unregister: unregister
754
- }
760
+ };
761
+ }, [modals, container, setContainer, register, unregister]);
762
+ return /*#__PURE__*/React__default["default"].createElement(ModalsContext.Provider, {
763
+ value: value
755
764
  }, children);
756
765
  };
757
766
  ModalsProvider.propTypes = propTypes$8;
@@ -832,14 +841,17 @@ var PanelsProvider = function PanelsProvider(_ref2) {
832
841
  panelsRef.current = newPanels;
833
842
  }
834
843
  }, [panels, setPanels]);
835
- return /*#__PURE__*/React__default["default"].createElement(PanelsContext.Provider, {
836
- value: {
844
+ var value = React.useMemo(function () {
845
+ return {
837
846
  panels: panels,
838
847
  setContainer: setContainer,
839
848
  container: container,
840
849
  register: register,
841
850
  unregister: unregister
842
- }
851
+ };
852
+ }, [panels, setContainer, container, register, unregister]);
853
+ return /*#__PURE__*/React__default["default"].createElement(PanelsContext.Provider, {
854
+ value: value
843
855
  }, children);
844
856
  };
845
857
  PanelsProvider.propTypes = propTypes$7;
@@ -911,11 +923,14 @@ var RoutesProvider = function RoutesProvider(_ref2) {
911
923
  var routes = _ref2.routes,
912
924
  basePath = _ref2.basePath,
913
925
  children = _ref2.children;
914
- return /*#__PURE__*/React__default["default"].createElement(RoutesContext.Provider, {
915
- value: {
926
+ var value = React.useMemo(function () {
927
+ return {
916
928
  routes: routes,
917
929
  basePath: basePath
918
- }
930
+ };
931
+ }, []);
932
+ return /*#__PURE__*/React__default["default"].createElement(RoutesContext.Provider, {
933
+ value: value
919
934
  }, children);
920
935
  };
921
936
  RoutesProvider.propTypes = propTypes$6;
@@ -972,48 +987,61 @@ var useScreenRenderContext = function useScreenRenderContext() {
972
987
  isCapture: isCapture
973
988
  };
974
989
  };
990
+ var useScreenState = function useScreenState() {
991
+ var _ref5 = useScreen() || {},
992
+ screenState = _ref5.screenState;
993
+
994
+ return screenState;
995
+ };
975
996
  var propTypes$5 = {
976
997
  children: PropTypes__default["default"].node.isRequired,
977
998
  data: core.PropTypes.screen,
978
999
  definition: core.PropTypes.screenDefinition,
979
- renderContext: core.PropTypes.renderContext
1000
+ renderContext: core.PropTypes.renderContext,
1001
+ screenState: PropTypes__default["default"].string
980
1002
  };
981
1003
  var defaultProps$5 = {
982
1004
  data: null,
983
1005
  definition: null,
984
- renderContext: null
985
- };
986
- var ScreenProvider = function ScreenProvider(_ref5) {
987
- var data = _ref5.data,
988
- definition = _ref5.definition,
989
- renderContext = _ref5.renderContext,
990
- children = _ref5.children;
991
-
992
- var _ref6 = useScreen() || {},
993
- _ref6$data = _ref6.data,
994
- previousData = _ref6$data === void 0 ? null : _ref6$data,
995
- _ref6$definition = _ref6.definition,
996
- previousDefinition = _ref6$definition === void 0 ? null : _ref6$definition,
997
- _ref6$renderContext = _ref6.renderContext,
998
- previousContext = _ref6$renderContext === void 0 ? null : _ref6$renderContext;
1006
+ renderContext: null,
1007
+ screenState: null
1008
+ };
1009
+ var ScreenProvider = function ScreenProvider(_ref6) {
1010
+ var data = _ref6.data,
1011
+ definition = _ref6.definition,
1012
+ renderContext = _ref6.renderContext,
1013
+ screenState = _ref6.screenState,
1014
+ children = _ref6.children;
1015
+
1016
+ var _ref7 = useScreen() || {},
1017
+ _ref7$data = _ref7.data,
1018
+ previousData = _ref7$data === void 0 ? null : _ref7$data,
1019
+ _ref7$definition = _ref7.definition,
1020
+ previousDefinition = _ref7$definition === void 0 ? null : _ref7$definition,
1021
+ _ref7$renderContext = _ref7.renderContext,
1022
+ previousContext = _ref7$renderContext === void 0 ? null : _ref7$renderContext,
1023
+ _ref7$screenState = _ref7.screenState,
1024
+ previousScreenState = _ref7$screenState === void 0 ? null : _ref7$screenState;
999
1025
 
1000
1026
  var finalData = data || previousData || null;
1001
1027
 
1002
- var _ref7 = finalData || {},
1003
- _ref7$type = _ref7.type,
1004
- type = _ref7$type === void 0 ? null : _ref7$type;
1028
+ var _ref8 = finalData || {},
1029
+ _ref8$type = _ref8.type,
1030
+ type = _ref8$type === void 0 ? null : _ref8$type;
1005
1031
 
1006
1032
  var screensManager = useScreensManager();
1007
1033
  var contextDefinition = screensManager !== null ? screensManager.getDefinition(type) : null;
1008
1034
  var finalDefinition = definition || contextDefinition || previousDefinition;
1009
1035
  var finalRenderContext = renderContext || previousContext || 'view';
1036
+ var finalScreenState = screenState || previousScreenState || null;
1010
1037
  var value = React.useMemo(function () {
1011
1038
  return {
1012
1039
  data: finalData,
1013
1040
  definition: finalDefinition,
1014
- renderContext: finalRenderContext
1041
+ renderContext: finalRenderContext,
1042
+ screenState: finalScreenState
1015
1043
  };
1016
- }, [finalData, finalDefinition, finalRenderContext]);
1044
+ }, [finalData, finalDefinition, finalRenderContext, finalScreenState]);
1017
1045
  return /*#__PURE__*/React__default["default"].createElement(ScreenContext.Provider, {
1018
1046
  value: value
1019
1047
  }, children);
@@ -1191,70 +1219,6 @@ var _excluded$2 = ["default"];
1191
1219
 
1192
1220
  var packagesCache$1 = {};
1193
1221
  var defaultPackagesMap$1 = {
1194
- transloadit: null,
1195
- // Disabled for compatibility reasons
1196
- tus: function tus() {
1197
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@uppy/tus')); });
1198
- },
1199
- xhr: function xhr() {
1200
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@uppy/xhr-upload')); });
1201
- }
1202
- };
1203
-
1204
- var useUppyTransport = function useUppyTransport(transport) {
1205
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1206
- _ref$packagesMap = _ref.packagesMap,
1207
- packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;
1208
-
1209
- // transport
1210
- var _useState = React.useState({
1211
- "package": packagesCache$1[transport] || null
1212
- }),
1213
- _useState2 = _slicedToArray__default["default"](_useState, 2),
1214
- loadedPackage = _useState2[0]["package"],
1215
- setLoadedPackage = _useState2[1];
1216
-
1217
- var packageLoader = packagesMap[transport] || null;
1218
- React.useEffect(function () {
1219
- var canceled = false;
1220
-
1221
- if (loadedPackage !== null || packageLoader === null) {
1222
- return function () {
1223
- canceled = true;
1224
- };
1225
- }
1226
-
1227
- packageLoader().then(function (_ref2) {
1228
- var pack = _ref2["default"],
1229
- others = _objectWithoutProperties__default["default"](_ref2, _excluded$2);
1230
-
1231
- var dep = Object.keys(others).reduce(function (map, key) {
1232
- map[key] = others[key]; // eslint-disable-line no-param-reassign
1233
-
1234
- return map;
1235
- }, pack);
1236
- packagesCache$1[transport] = dep;
1237
-
1238
- if (!canceled) {
1239
- setLoadedPackage({
1240
- "package": dep
1241
- });
1242
- }
1243
- });
1244
- return function () {
1245
- canceled = true;
1246
- };
1247
- }, [packageLoader, loadedPackage, setLoadedPackage]);
1248
- return loadedPackage;
1249
- };
1250
-
1251
- var _excluded$1 = ["default"];
1252
- /**
1253
- * Locale loader
1254
- */
1255
-
1256
- var packagesCache = {};
1257
- var defaultPackagesMap = {
1258
1222
  webcam: function webcam() {
1259
1223
  return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@uppy/webcam')); });
1260
1224
  },
@@ -1275,12 +1239,12 @@ var defaultPackagesMap = {
1275
1239
  var useUppySources = function useUppySources(sources) {
1276
1240
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1277
1241
  _ref$packagesMap = _ref.packagesMap,
1278
- packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;
1242
+ packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;
1279
1243
 
1280
1244
  // transport
1281
1245
  var _useState = React.useState({
1282
1246
  packages: sources.reduce(function (map, source) {
1283
- var sourcePackage = packagesCache[source] || null;
1247
+ var sourcePackage = packagesCache$1[source] || null;
1284
1248
 
1285
1249
  if (sourcePackage === null) {
1286
1250
  return map;
@@ -1322,7 +1286,7 @@ var useUppySources = function useUppySources(sources) {
1322
1286
  var newLoadedPackages = sourcesToLoad.reduce(function (map, source, index) {
1323
1287
  var _packagesLoaded$index = packagesLoaded[index],
1324
1288
  pack = _packagesLoaded$index["default"],
1325
- others = _objectWithoutProperties__default["default"](_packagesLoaded$index, _excluded$1);
1289
+ others = _objectWithoutProperties__default["default"](_packagesLoaded$index, _excluded$2);
1326
1290
 
1327
1291
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, map), {}, _defineProperty__default["default"]({}, source, Object.keys(others).reduce(function (otherMap, key) {
1328
1292
  otherMap[key] = others[key]; // eslint-disable-line no-param-reassign
@@ -1330,7 +1294,7 @@ var useUppySources = function useUppySources(sources) {
1330
1294
  return otherMap;
1331
1295
  }, pack)));
1332
1296
  }, {});
1333
- packagesCache = _objectSpread__default["default"](_objectSpread__default["default"]({}, packagesCache), newLoadedPackages);
1297
+ packagesCache$1 = _objectSpread__default["default"](_objectSpread__default["default"]({}, packagesCache$1), newLoadedPackages);
1334
1298
 
1335
1299
  if (!canceled) {
1336
1300
  setLoadedPackages({
@@ -1345,6 +1309,70 @@ var useUppySources = function useUppySources(sources) {
1345
1309
  return sourcesToLoad.length === 0 ? loadedPackages : null;
1346
1310
  };
1347
1311
 
1312
+ var _excluded$1 = ["default"];
1313
+ /**
1314
+ * Locale loader
1315
+ */
1316
+
1317
+ var packagesCache = {};
1318
+ var defaultPackagesMap = {
1319
+ transloadit: null,
1320
+ // Disabled for compatibility reasons
1321
+ tus: function tus() {
1322
+ return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@uppy/tus')); });
1323
+ },
1324
+ xhr: function xhr() {
1325
+ return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@uppy/xhr-upload')); });
1326
+ }
1327
+ };
1328
+
1329
+ var useUppyTransport = function useUppyTransport(transport) {
1330
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1331
+ _ref$packagesMap = _ref.packagesMap,
1332
+ packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;
1333
+
1334
+ // transport
1335
+ var _useState = React.useState({
1336
+ "package": packagesCache[transport] || null
1337
+ }),
1338
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1339
+ loadedPackage = _useState2[0]["package"],
1340
+ setLoadedPackage = _useState2[1];
1341
+
1342
+ var packageLoader = packagesMap[transport] || null;
1343
+ React.useEffect(function () {
1344
+ var canceled = false;
1345
+
1346
+ if (loadedPackage !== null || packageLoader === null) {
1347
+ return function () {
1348
+ canceled = true;
1349
+ };
1350
+ }
1351
+
1352
+ packageLoader().then(function (_ref2) {
1353
+ var pack = _ref2["default"],
1354
+ others = _objectWithoutProperties__default["default"](_ref2, _excluded$1);
1355
+
1356
+ var dep = Object.keys(others).reduce(function (map, key) {
1357
+ map[key] = others[key]; // eslint-disable-line no-param-reassign
1358
+
1359
+ return map;
1360
+ }, pack);
1361
+ packagesCache[transport] = dep;
1362
+
1363
+ if (!canceled) {
1364
+ setLoadedPackage({
1365
+ "package": dep
1366
+ });
1367
+ }
1368
+ });
1369
+ return function () {
1370
+ canceled = true;
1371
+ };
1372
+ }, [packageLoader, loadedPackage, setLoadedPackage]);
1373
+ return loadedPackage;
1374
+ };
1375
+
1348
1376
  var convertToMedia = function convertToMedia(it) {
1349
1377
  // console.log('upload', it);
1350
1378
  var type = it.data.type.split('/')[0];
@@ -1627,8 +1655,8 @@ var UppyProvider = function UppyProvider(_ref5) {
1627
1655
  return newUppy;
1628
1656
  };
1629
1657
  }, [Uppy, uppyLocale, uppyTransport, uppySources, transport, sources, transloadit, companion, tus, xhr]);
1630
- return /*#__PURE__*/React__default["default"].createElement(UppyContext.Provider, {
1631
- value: {
1658
+ var value = React.useMemo(function () {
1659
+ return {
1632
1660
  transport: transport,
1633
1661
  locale: locale,
1634
1662
  sources: sources,
@@ -1641,7 +1669,10 @@ var UppyProvider = function UppyProvider(_ref5) {
1641
1669
  uppySources: uppySources,
1642
1670
  uppyLocale: uppyLocale,
1643
1671
  buildUppy: buildUppy
1644
- }
1672
+ };
1673
+ }, [transport, locale, sources, transloadit, companion, tus, xhr, Uppy, uppyTransport, uppySources, uppyLocale, buildUppy]);
1674
+ return /*#__PURE__*/React__default["default"].createElement(UppyContext.Provider, {
1675
+ value: value
1645
1676
  }, children);
1646
1677
  };
1647
1678
  UppyProvider.propTypes = propTypes$2;
@@ -1689,42 +1720,89 @@ var UserInteractionProvider = function UserInteractionProvider(_ref) {
1689
1720
  document.removeEventListener('pointerup', set);
1690
1721
  };
1691
1722
  }, [userInteracted, setUserInteracted]);
1692
- return /*#__PURE__*/React__default["default"].createElement(UserInteractionContext.Provider, {
1693
- value: {
1723
+ var value = React.useMemo(function () {
1724
+ return {
1694
1725
  userInteracted: userInteracted,
1695
1726
  setUserInteracted: setUserInteracted
1696
- }
1727
+ };
1728
+ }, [userInteracted, setUserInteracted]);
1729
+ return /*#__PURE__*/React__default["default"].createElement(UserInteractionContext.Provider, {
1730
+ value: value
1697
1731
  }, children);
1698
1732
  };
1699
1733
  UserInteractionProvider.propTypes = propTypes$1;
1700
1734
  UserInteractionProvider.defaultProps = defaultProps$1;
1701
1735
 
1702
1736
  var defaultValue = {
1737
+ events: new EventEmitter__default["default"](),
1703
1738
  menuVisible: false,
1704
- menuSize: 0
1739
+ menuSize: 0,
1740
+ disableInteraction: null,
1741
+ enableInteraction: null
1705
1742
  };
1706
1743
  var ViewerContext = /*#__PURE__*/React__default["default"].createContext(defaultValue);
1707
1744
  var useViewer = function useViewer() {
1708
1745
  return React.useContext(ViewerContext);
1709
1746
  };
1747
+ var useViewerNavigation = function useViewerNavigation() {
1748
+ var _useViewer = useViewer(),
1749
+ gotoNextScreen = _useViewer.gotoNextScreen,
1750
+ gotoPreviousScreen = _useViewer.gotoPreviousScreen;
1751
+
1752
+ return {
1753
+ gotoNextScreen: gotoNextScreen,
1754
+ gotoPreviousScreen: gotoPreviousScreen
1755
+ };
1756
+ };
1757
+ var useViewerEvents = function useViewerEvents() {
1758
+ var _useViewer2 = useViewer(),
1759
+ events = _useViewer2.events;
1760
+
1761
+ return events;
1762
+ };
1763
+ var useViewerInteraction = function useViewerInteraction() {
1764
+ var _useViewer3 = useViewer(),
1765
+ disableInteraction = _useViewer3.disableInteraction,
1766
+ enableInteraction = _useViewer3.enableInteraction;
1767
+
1768
+ return {
1769
+ disableInteraction: disableInteraction,
1770
+ enableInteraction: enableInteraction
1771
+ };
1772
+ };
1710
1773
  var propTypes = {
1711
1774
  children: PropTypes__default["default"].node.isRequired,
1775
+ events: PropTypes__default["default"].instanceOf(EventEmitter__default["default"]),
1712
1776
  menuVisible: PropTypes__default["default"].bool,
1713
- menuSize: PropTypes__default["default"].number
1777
+ menuSize: PropTypes__default["default"].number,
1778
+ gotoNextScreen: PropTypes__default["default"].func.isRequired,
1779
+ gotoPreviousScreen: PropTypes__default["default"].func.isRequired,
1780
+ disableInteraction: PropTypes__default["default"].func,
1781
+ enableInteraction: PropTypes__default["default"].func
1714
1782
  };
1715
1783
 
1716
1784
  var defaultProps = _objectSpread__default["default"]({}, defaultValue);
1717
1785
 
1718
1786
  var ViewerProvider = function ViewerProvider(_ref) {
1719
1787
  var children = _ref.children,
1788
+ events = _ref.events,
1720
1789
  menuVisible = _ref.menuVisible,
1721
- menuSize = _ref.menuSize;
1790
+ menuSize = _ref.menuSize,
1791
+ gotoNextScreen = _ref.gotoNextScreen,
1792
+ gotoPreviousScreen = _ref.gotoPreviousScreen,
1793
+ disableInteraction = _ref.disableInteraction,
1794
+ enableInteraction = _ref.enableInteraction;
1722
1795
  var value = React.useMemo(function () {
1723
1796
  return {
1797
+ events: events,
1724
1798
  menuVisible: menuVisible,
1725
- menuSize: menuSize
1799
+ menuSize: menuSize,
1800
+ gotoNextScreen: gotoNextScreen,
1801
+ gotoPreviousScreen: gotoPreviousScreen,
1802
+ disableInteraction: disableInteraction,
1803
+ enableInteraction: enableInteraction
1726
1804
  };
1727
- }, [menuVisible, menuSize]);
1805
+ }, [events, menuVisible, menuSize, gotoNextScreen, gotoPreviousScreen, disableInteraction, enableInteraction]);
1728
1806
  return /*#__PURE__*/React__default["default"].createElement(ViewerContext.Provider, {
1729
1807
  value: value
1730
1808
  }, children);
@@ -1814,6 +1892,7 @@ exports.useScreenData = useScreenData;
1814
1892
  exports.useScreenDefinition = useScreenDefinition;
1815
1893
  exports.useScreenRenderContext = useScreenRenderContext;
1816
1894
  exports.useScreenSize = useScreenSize;
1895
+ exports.useScreenState = useScreenState;
1817
1896
  exports.useScreensComponents = useScreensComponents;
1818
1897
  exports.useScreensComponentsManager = useScreensComponentsManager;
1819
1898
  exports.useScreensManager = useScreensManager;
@@ -1824,6 +1903,9 @@ exports.useUppy = useUppy;
1824
1903
  exports.useUrlGenerator = useUrlGenerator;
1825
1904
  exports.useUserInteracted = useUserInteracted;
1826
1905
  exports.useViewer = useViewer;
1906
+ exports.useViewerEvents = useViewerEvents;
1907
+ exports.useViewerInteraction = useViewerInteraction;
1908
+ exports.useViewerNavigation = useViewerNavigation;
1827
1909
  exports.withGoogleApiClient = withGoogleApiClient;
1828
1910
  exports.withGoogleMapsClient = withGoogleMapsClient;
1829
1911
  exports.withModals = withModals;
package/lib/hooks.js CHANGED
@@ -1111,33 +1111,32 @@ var useScreenSize = function useScreenSize(_ref) {
1111
1111
  mediaType = _ref$mediaType === void 0 ? 'screen' : _ref$mediaType,
1112
1112
  _ref$media = _ref.media,
1113
1113
  providedMedia = _ref$media === void 0 ? null : _ref$media;
1114
- // Get media
1115
- var media = react.useMemo(function () {
1116
- return providedMedia !== null ? providedMedia : {
1114
+ var screenSize = react.useMemo(function () {
1115
+ var media = providedMedia !== null ? providedMedia : {
1117
1116
  type: mediaType,
1118
1117
  width: "".concat(width, "px"),
1119
1118
  height: "".concat(height, "px")
1120
1119
  };
1121
- }, [providedMedia, mediaType, width, height]); // Get matching screens
1122
1120
 
1123
- var matchingScreens = react.useMemo(function () {
1124
- return _toConsumableArray__default["default"](screens).reverse().filter(function (_ref2) {
1121
+ var matchingScreens = _toConsumableArray__default["default"](screens).reverse().filter(function (_ref2) {
1125
1122
  var _ref2$mediaQuery = _ref2.mediaQuery,
1126
1123
  mediaQuery = _ref2$mediaQuery === void 0 ? null : _ref2$mediaQuery;
1127
1124
  return mediaQuery === null || cssMediaquery.match(mediaQuery, media);
1128
1125
  });
1129
- }, [screens, media]);
1130
- return {
1131
- screen: matchingScreens.length > 0 ? matchingScreens[0].name : null,
1132
- screens: _toConsumableArray__default["default"](matchingScreens).reverse().map(function (_ref3) {
1133
- var name = _ref3.name;
1134
- return name;
1135
- }),
1136
- width: width,
1137
- height: height,
1138
- landscape: landscape,
1139
- menuOverScreen: menuOverScreen
1140
- };
1126
+
1127
+ return {
1128
+ screen: matchingScreens.length > 0 ? matchingScreens[0].name : null,
1129
+ screens: _toConsumableArray__default["default"](matchingScreens).reverse().map(function (_ref3) {
1130
+ var name = _ref3.name;
1131
+ return name;
1132
+ }),
1133
+ width: width,
1134
+ height: height,
1135
+ landscape: landscape,
1136
+ menuOverScreen: menuOverScreen
1137
+ };
1138
+ }, [screens, providedMedia, mediaType, width, height, landscape, menuOverScreen]);
1139
+ return screenSize;
1141
1140
  };
1142
1141
 
1143
1142
  var useScreenSizeFromElement = function useScreenSizeFromElement() {
@@ -1160,28 +1159,31 @@ var useScreenSizeFromElement = function useScreenSizeFromElement() {
1160
1159
 
1161
1160
  var fullWidth = width !== null ? width : calculatedWidth;
1162
1161
  var fullHeight = height !== null ? height : calculatedHeight;
1163
- var landscape = fullHeight > 0 && fullWidth > fullHeight;
1164
1162
 
1165
1163
  var _ref6 = opts || {},
1166
1164
  _ref6$withoutMaxSize = _ref6.withoutMaxSize,
1167
1165
  withoutMaxSize = _ref6$withoutMaxSize === void 0 ? false : _ref6$withoutMaxSize,
1168
- _ref6$desktopHeightTh = _ref6.desktopHeightThreshold,
1169
- desktopHeightThreshold = _ref6$desktopHeightTh === void 0 ? 600 : _ref6$desktopHeightTh,
1170
- _ref6$desktopHeightRa = _ref6.desktopHeightRatio,
1171
- desktopHeightRatio = _ref6$desktopHeightRa === void 0 ? 3 / 4 : _ref6$desktopHeightRa,
1166
+ _ref6$landscapeMinHei = _ref6.landscapeMinHeight,
1167
+ landscapeMinHeight = _ref6$landscapeMinHei === void 0 ? 600 : _ref6$landscapeMinHei,
1168
+ _ref6$landscapeHeight = _ref6.landscapeHeightRatio,
1169
+ landscapeHeightRatio = _ref6$landscapeHeight === void 0 ? 3 / 4 : _ref6$landscapeHeight,
1172
1170
  _ref6$screenRatio = _ref6.screenRatio,
1173
- screenRatio = _ref6$screenRatio === void 0 ? 2 / 3 : _ref6$screenRatio;
1171
+ screenRatio = _ref6$screenRatio === void 0 ? 360 / 480 : _ref6$screenRatio,
1172
+ _ref6$landscapeMinRat = _ref6.landscapeMinRatio,
1173
+ landscapeMinRatio = _ref6$landscapeMinRat === void 0 ? 3 / 4 : _ref6$landscapeMinRat;
1174
1174
 
1175
+ var elementRatio = fullWidth / fullHeight;
1176
+ var landscape = fullHeight > 0 && elementRatio > (landscapeMinRatio || screenRatio);
1175
1177
  var landscapeWithMaxSize = landscape && !withoutMaxSize;
1176
1178
  var finalWidth = fullWidth;
1177
1179
  var finalHeight = fullHeight;
1178
1180
  var menuOverScreen = !landscape;
1179
1181
 
1180
1182
  if (landscapeWithMaxSize) {
1181
- if (fullHeight < desktopHeightThreshold) {
1183
+ if (fullHeight < landscapeMinHeight) {
1182
1184
  menuOverScreen = true;
1183
1185
  } else {
1184
- finalHeight = Math.round(fullHeight * desktopHeightRatio);
1186
+ finalHeight = Math.round(fullHeight * landscapeHeightRatio);
1185
1187
  }
1186
1188
 
1187
1189
  finalWidth = Math.round(finalHeight * screenRatio);