@panneau/core 3.0.162 → 3.0.169

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/contexts.js CHANGED
@@ -843,15 +843,18 @@ var ModalProvider = function ModalProvider(_ref) {
843
843
  var modalsRef = useRef(modals);
844
844
  var register = useCallback(function (id) {
845
845
  var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
846
- var currentModals = modalsRef.current;
846
+ var _modalsRef$current = modalsRef.current,
847
+ currentModals = _modalsRef$current === void 0 ? [] : _modalsRef$current;
847
848
  var newModals = [].concat(_toConsumableArray(currentModals), [_objectSpread({
848
849
  id: id
849
850
  }, data)]);
850
851
  setModals(newModals);
851
852
  modalsRef.current = newModals;
852
853
  }, [modals, setModals]);
853
- var unregister = useCallback(function (id) {
854
- var currentModals = modalsRef.current;
854
+ var unregister = useCallback(function () {
855
+ var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
856
+ var _modalsRef$current2 = modalsRef.current,
857
+ currentModals = _modalsRef$current2 === void 0 ? [] : _modalsRef$current2;
855
858
  var foundIndex = currentModals.findIndex(function (_ref2) {
856
859
  var modalId = _ref2.id;
857
860
  return modalId === id;
@@ -865,15 +868,32 @@ var ModalProvider = function ModalProvider(_ref) {
865
868
  modalsRef.current = newModals;
866
869
  }
867
870
  }, [modals, setModals]);
871
+ var closeLastModal = useCallback(function () {
872
+ var _modalsRef$current3 = modalsRef.current,
873
+ currentModals = _modalsRef$current3 === void 0 ? [] : _modalsRef$current3;
874
+ var lastModal = currentModals.pop() || null;
875
+ if (lastModal !== null) {
876
+ var _ref4 = lastModal || {},
877
+ _ref4$id = _ref4.id,
878
+ lastModalId = _ref4$id === void 0 ? null : _ref4$id;
879
+ var newModals = currentModals.filter(function (_ref5) {
880
+ var modalId = _ref5.id;
881
+ return modalId !== lastModalId;
882
+ });
883
+ setModals(newModals);
884
+ modalsRef.current = newModals;
885
+ }
886
+ }, [modals, setModals]);
868
887
  var value = useMemo(function () {
869
888
  return {
870
889
  modals: modals,
871
890
  container: container,
872
891
  setContainer: setContainer,
873
892
  register: register,
874
- unregister: unregister
893
+ unregister: unregister,
894
+ closeLastModal: closeLastModal
875
895
  };
876
- }, [modals, container, setContainer, register, unregister]);
896
+ }, [modals, container, setContainer, register, unregister, closeLastModal]);
877
897
  return /*#__PURE__*/React.createElement(ModalContext.Provider, {
878
898
  value: value
879
899
  }, children);
package/es/hooks.js CHANGED
@@ -821,6 +821,38 @@ var useItemSelection = function useItemSelection(_ref) {
821
821
  };
822
822
  var useItemSelection$1 = useItemSelection;
823
823
 
824
+ var KEYCODES = {
825
+ ARROW_LEFT: 37,
826
+ ARROW_UP: 38,
827
+ ARROW_RIGHT: 39,
828
+ ARROW_DOWN: 40,
829
+ ESCAPE: 27,
830
+ SPACE: 32
831
+ };
832
+ var useKeyboardKeys = function useKeyboardKeys() {
833
+ var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
834
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
835
+ _ref$eventName = _ref.eventName,
836
+ eventName = _ref$eventName === void 0 ? 'keydown' : _ref$eventName;
837
+ var keysNames = Object.keys(keys);
838
+ var keysListeners = keysNames.map(function (key) {
839
+ return keys[key];
840
+ });
841
+ useEffect(function () {
842
+ var onKeyDown = function onKeyDown(e) {
843
+ var keyCode = e.keyCode;
844
+ if (typeof keys[keyCode] !== 'undefined') {
845
+ keys[keyCode](e);
846
+ }
847
+ };
848
+ document.addEventListener(eventName, onKeyDown);
849
+ return function () {
850
+ document.removeEventListener(eventName, onKeyDown);
851
+ };
852
+ }, [].concat(keysNames, _toConsumableArray(keysListeners), [eventName]));
853
+ };
854
+ var useKeyboardKeys$1 = useKeyboardKeys;
855
+
824
856
  var fontsMap = {
825
857
  loading: [],
826
858
  active: []
@@ -1373,4 +1405,4 @@ var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) :
1373
1405
  var useWindowEvent = createUseEvent(eventsManager);
1374
1406
  var useWindowEvent$1 = useWindowEvent;
1375
1407
 
1376
- export { getObserver, useActions$1 as useActions, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible, useItemSelection$1 as useItemSelection, useLoadedFonts$1 as useLoadedFonts, useMediaApi$1 as useMediaApi, useMediasParser$1 as useMediasParser, useObserver, useQuery$1 as useQuery, useResizeObserver, useResourceTypeName$1 as useResourceTypeName, useResourceUrlGenerator$1 as useResourceUrlGenerator, useScreenSizeFromElement, useScreenSizeFromWindow, useWindowEvent$1 as useWindowEvent };
1408
+ export { KEYCODES, getObserver, useActions$1 as useActions, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible, useItemSelection$1 as useItemSelection, useKeyboardKeys$1 as useKeyboardKeys, useLoadedFonts$1 as useLoadedFonts, useMediaApi$1 as useMediaApi, useMediasParser$1 as useMediasParser, useObserver, useQuery$1 as useQuery, useResizeObserver, useResourceTypeName$1 as useResourceTypeName, useResourceUrlGenerator$1 as useResourceUrlGenerator, useScreenSizeFromElement, useScreenSizeFromWindow, useWindowEvent$1 as useWindowEvent };
package/lib/contexts.js CHANGED
@@ -864,15 +864,18 @@ var ModalProvider = function ModalProvider(_ref) {
864
864
  var modalsRef = React.useRef(modals);
865
865
  var register = React.useCallback(function (id) {
866
866
  var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
867
- var currentModals = modalsRef.current;
867
+ var _modalsRef$current = modalsRef.current,
868
+ currentModals = _modalsRef$current === void 0 ? [] : _modalsRef$current;
868
869
  var newModals = [].concat(_toConsumableArray(currentModals), [_objectSpread({
869
870
  id: id
870
871
  }, data)]);
871
872
  setModals(newModals);
872
873
  modalsRef.current = newModals;
873
874
  }, [modals, setModals]);
874
- var unregister = React.useCallback(function (id) {
875
- var currentModals = modalsRef.current;
875
+ var unregister = React.useCallback(function () {
876
+ var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
877
+ var _modalsRef$current2 = modalsRef.current,
878
+ currentModals = _modalsRef$current2 === void 0 ? [] : _modalsRef$current2;
876
879
  var foundIndex = currentModals.findIndex(function (_ref2) {
877
880
  var modalId = _ref2.id;
878
881
  return modalId === id;
@@ -886,15 +889,32 @@ var ModalProvider = function ModalProvider(_ref) {
886
889
  modalsRef.current = newModals;
887
890
  }
888
891
  }, [modals, setModals]);
892
+ var closeLastModal = React.useCallback(function () {
893
+ var _modalsRef$current3 = modalsRef.current,
894
+ currentModals = _modalsRef$current3 === void 0 ? [] : _modalsRef$current3;
895
+ var lastModal = currentModals.pop() || null;
896
+ if (lastModal !== null) {
897
+ var _ref4 = lastModal || {},
898
+ _ref4$id = _ref4.id,
899
+ lastModalId = _ref4$id === void 0 ? null : _ref4$id;
900
+ var newModals = currentModals.filter(function (_ref5) {
901
+ var modalId = _ref5.id;
902
+ return modalId !== lastModalId;
903
+ });
904
+ setModals(newModals);
905
+ modalsRef.current = newModals;
906
+ }
907
+ }, [modals, setModals]);
889
908
  var value = React.useMemo(function () {
890
909
  return {
891
910
  modals: modals,
892
911
  container: container,
893
912
  setContainer: setContainer,
894
913
  register: register,
895
- unregister: unregister
914
+ unregister: unregister,
915
+ closeLastModal: closeLastModal
896
916
  };
897
- }, [modals, container, setContainer, register, unregister]);
917
+ }, [modals, container, setContainer, register, unregister, closeLastModal]);
898
918
  return /*#__PURE__*/React.createElement(ModalContext.Provider, {
899
919
  value: value
900
920
  }, children);
@@ -1098,11 +1118,13 @@ var ResourceProvider = function ResourceProvider(_ref) {
1098
1118
  ResourceProvider.propTypes = propTypes$2;
1099
1119
  ResourceProvider.defaultProps = defaultProps$2;
1100
1120
 
1101
- // React.useInsertionEffect is not available in React <18
1102
1121
  var useEffect = React__namespace.useEffect,
1103
1122
  useLayoutEffect = React__namespace.useLayoutEffect,
1104
- useRef = React__namespace.useRef,
1105
- useBuiltinInsertionEffect = React__namespace.useInsertionEffect;
1123
+ useRef = React__namespace.useRef;
1124
+
1125
+ // React.useInsertionEffect is not available in React <18
1126
+ // This hack fixes a transpilation issue on some apps
1127
+ var useBuiltinInsertionEffect = React__namespace['useInsertion' + 'Effect'];
1106
1128
 
1107
1129
  // Copied from:
1108
1130
  // https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js
package/lib/hooks.js CHANGED
@@ -823,6 +823,38 @@ var useItemSelection = function useItemSelection(_ref) {
823
823
  };
824
824
  var useItemSelection$1 = useItemSelection;
825
825
 
826
+ var KEYCODES = {
827
+ ARROW_LEFT: 37,
828
+ ARROW_UP: 38,
829
+ ARROW_RIGHT: 39,
830
+ ARROW_DOWN: 40,
831
+ ESCAPE: 27,
832
+ SPACE: 32
833
+ };
834
+ var useKeyboardKeys = function useKeyboardKeys() {
835
+ var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
836
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
837
+ _ref$eventName = _ref.eventName,
838
+ eventName = _ref$eventName === void 0 ? 'keydown' : _ref$eventName;
839
+ var keysNames = Object.keys(keys);
840
+ var keysListeners = keysNames.map(function (key) {
841
+ return keys[key];
842
+ });
843
+ react.useEffect(function () {
844
+ var onKeyDown = function onKeyDown(e) {
845
+ var keyCode = e.keyCode;
846
+ if (typeof keys[keyCode] !== 'undefined') {
847
+ keys[keyCode](e);
848
+ }
849
+ };
850
+ document.addEventListener(eventName, onKeyDown);
851
+ return function () {
852
+ document.removeEventListener(eventName, onKeyDown);
853
+ };
854
+ }, [].concat(keysNames, _toConsumableArray(keysListeners), [eventName]));
855
+ };
856
+ var useKeyboardKeys$1 = useKeyboardKeys;
857
+
826
858
  var fontsMap = {
827
859
  loading: [],
828
860
  active: []
@@ -1375,6 +1407,7 @@ var eventsManager = typeof window !== 'undefined' ? new core.EventsManager(windo
1375
1407
  var useWindowEvent = utils.createUseEvent(eventsManager);
1376
1408
  var useWindowEvent$1 = useWindowEvent;
1377
1409
 
1410
+ exports.KEYCODES = KEYCODES;
1378
1411
  exports.getObserver = getObserver;
1379
1412
  exports.useActions = useActions$1;
1380
1413
  exports.useAnimationFrame = useAnimationFrame$1;
@@ -1385,6 +1418,7 @@ exports.useFormattedTime = useFormattedTime;
1385
1418
  exports.useIntersectionObserver = useIntersectionObserver;
1386
1419
  exports.useIsVisible = useIsVisible$1;
1387
1420
  exports.useItemSelection = useItemSelection$1;
1421
+ exports.useKeyboardKeys = useKeyboardKeys$1;
1388
1422
  exports.useLoadedFonts = useLoadedFonts$1;
1389
1423
  exports.useMediaApi = useMediaApi$1;
1390
1424
  exports.useMediasParser = useMediasParser$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/core",
3
- "version": "3.0.162",
3
+ "version": "3.0.169",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -106,10 +106,10 @@
106
106
  "tinycolor2": "^1.4.2",
107
107
  "webfontloader": "^1.6.28",
108
108
  "wolfy87-eventemitter": "^5.2.9",
109
- "wouter": "^3.1.0"
109
+ "wouter": "^3.1.2"
110
110
  },
111
111
  "publishConfig": {
112
112
  "access": "public"
113
113
  },
114
- "gitHead": "82936217c80643ad52d9b425a7a8c374d6264d8e"
114
+ "gitHead": "a8f4fe4f0b0593485d40e97542c32742242919d4"
115
115
  }