@fluentui-react-native/menu 1.4.28 → 1.4.30
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/CHANGELOG.json +79 -1
- package/CHANGELOG.md +26 -2
- package/SPEC.md +46 -0
- package/lib/Menu/Menu.d.ts +4 -0
- package/lib/Menu/Menu.d.ts.map +1 -0
- package/lib/Menu/Menu.js +35 -0
- package/lib/Menu/Menu.js.map +1 -0
- package/lib/Menu/Menu.types.d.ts +40 -0
- package/lib/Menu/Menu.types.d.ts.map +1 -0
- package/lib/Menu/Menu.types.js +2 -0
- package/lib/Menu/Menu.types.js.map +1 -0
- package/lib/Menu/index.d.ts +6 -0
- package/lib/Menu/index.d.ts.map +1 -0
- package/lib/Menu/index.js +5 -0
- package/lib/Menu/index.js.map +1 -0
- package/lib/Menu/useMenu.d.ts +3 -0
- package/lib/Menu/useMenu.d.ts.map +1 -0
- package/lib/Menu/useMenu.js +76 -0
- package/lib/Menu/useMenu.js.map +1 -0
- package/lib/Menu/useMenuContextValue.d.ts +4 -0
- package/lib/Menu/useMenuContextValue.d.ts.map +1 -0
- package/lib/Menu/useMenuContextValue.js +8 -0
- package/lib/Menu/useMenuContextValue.js.map +1 -0
- package/lib/MenuDivider/MenuDivider.d.ts +2 -0
- package/lib/MenuDivider/MenuDivider.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDivider.js +15 -0
- package/lib/MenuDivider/MenuDivider.js.map +1 -0
- package/lib/MenuDivider/MenuDivider.styling.d.ts +4 -0
- package/lib/MenuDivider/MenuDivider.styling.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDivider.styling.js +19 -0
- package/lib/MenuDivider/MenuDivider.styling.js.map +1 -0
- package/lib/MenuDivider/MenuDivider.types.d.ts +21 -0
- package/lib/MenuDivider/MenuDivider.types.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDivider.types.js +2 -0
- package/lib/MenuDivider/MenuDivider.types.js.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.d.ts +5 -0
- package/lib/MenuDivider/MenuDividerTokens.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.js +7 -0
- package/lib/MenuDivider/MenuDividerTokens.js.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.d.ts +5 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.js +7 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.d.ts +5 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.js +7 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -0
- package/lib/MenuDivider/index.d.ts +4 -0
- package/lib/MenuDivider/index.d.ts.map +1 -0
- package/lib/MenuDivider/index.js +3 -0
- package/lib/MenuDivider/index.js.map +1 -0
- package/lib/MenuItem/MenuItem.d.ts +7 -0
- package/lib/MenuItem/MenuItem.d.ts.map +1 -0
- package/lib/MenuItem/MenuItem.js +58 -0
- package/lib/MenuItem/MenuItem.js.map +1 -0
- package/lib/MenuItem/MenuItem.styling.d.ts +5 -0
- package/lib/MenuItem/MenuItem.styling.d.ts.map +1 -0
- package/lib/MenuItem/MenuItem.styling.js +50 -0
- package/lib/MenuItem/MenuItem.styling.js.map +1 -0
- package/lib/MenuItem/MenuItem.types.d.ts +98 -0
- package/lib/MenuItem/MenuItem.types.d.ts.map +1 -0
- package/lib/MenuItem/MenuItem.types.js +2 -0
- package/lib/MenuItem/MenuItem.types.js.map +1 -0
- package/lib/MenuItem/MenuItemTokens.d.ts +5 -0
- package/lib/MenuItem/MenuItemTokens.d.ts.map +1 -0
- package/lib/MenuItem/MenuItemTokens.js +39 -0
- package/lib/MenuItem/MenuItemTokens.js.map +1 -0
- package/lib/MenuItem/MenuItemTokens.macos.d.ts +5 -0
- package/lib/MenuItem/MenuItemTokens.macos.d.ts.map +1 -0
- package/lib/MenuItem/MenuItemTokens.macos.js +34 -0
- package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -0
- package/lib/MenuItem/MenuItemTokens.win32.d.ts +5 -0
- package/lib/MenuItem/MenuItemTokens.win32.d.ts.map +1 -0
- package/lib/MenuItem/MenuItemTokens.win32.js +40 -0
- package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -0
- package/lib/MenuItem/index.d.ts +5 -0
- package/lib/MenuItem/index.d.ts.map +1 -0
- package/lib/MenuItem/index.js +4 -0
- package/lib/MenuItem/index.js.map +1 -0
- package/lib/MenuItem/useMenuItem.d.ts +7 -0
- package/lib/MenuItem/useMenuItem.d.ts.map +1 -0
- package/lib/MenuItem/useMenuItem.js +74 -0
- package/lib/MenuItem/useMenuItem.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +7 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js +37 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +40 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +66 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +51 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +49 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +52 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -0
- package/lib/MenuItemCheckbox/index.d.ts +5 -0
- package/lib/MenuItemCheckbox/index.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/index.js +4 -0
- package/lib/MenuItemCheckbox/index.js.map +1 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +13 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +85 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
- package/lib/MenuItemRadio/MenuItemRadio.d.ts +4 -0
- package/lib/MenuItemRadio/MenuItemRadio.d.ts.map +1 -0
- package/lib/MenuItemRadio/MenuItemRadio.js +12 -0
- package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -0
- package/lib/MenuItemRadio/index.d.ts +3 -0
- package/lib/MenuItemRadio/index.d.ts.map +1 -0
- package/lib/MenuItemRadio/index.js +3 -0
- package/lib/MenuItemRadio/index.js.map +1 -0
- package/lib/MenuItemRadio/useMenuItemRadio.d.ts +3 -0
- package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -0
- package/lib/MenuItemRadio/useMenuItemRadio.js +30 -0
- package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -0
- package/lib/MenuList/MenuList.d.ts +4 -0
- package/lib/MenuList/MenuList.d.ts.map +1 -0
- package/lib/MenuList/MenuList.js +68 -0
- package/lib/MenuList/MenuList.js.map +1 -0
- package/lib/MenuList/MenuList.styling.d.ts +5 -0
- package/lib/MenuList/MenuList.styling.d.ts.map +1 -0
- package/lib/MenuList/MenuList.styling.js +17 -0
- package/lib/MenuList/MenuList.styling.js.map +1 -0
- package/lib/MenuList/MenuList.types.d.ts +77 -0
- package/lib/MenuList/MenuList.types.d.ts.map +1 -0
- package/lib/MenuList/MenuList.types.js +2 -0
- package/lib/MenuList/MenuList.types.js.map +1 -0
- package/lib/MenuList/MenuListTokens.d.ts +5 -0
- package/lib/MenuList/MenuListTokens.d.ts.map +1 -0
- package/lib/MenuList/MenuListTokens.js +9 -0
- package/lib/MenuList/MenuListTokens.js.map +1 -0
- package/lib/MenuList/MenuListTokens.macos.d.ts +5 -0
- package/lib/MenuList/MenuListTokens.macos.d.ts.map +1 -0
- package/lib/MenuList/MenuListTokens.macos.js +7 -0
- package/lib/MenuList/MenuListTokens.macos.js.map +1 -0
- package/lib/MenuList/MenuListTokens.win32.d.ts +5 -0
- package/lib/MenuList/MenuListTokens.win32.d.ts.map +1 -0
- package/lib/MenuList/MenuListTokens.win32.js +12 -0
- package/lib/MenuList/MenuListTokens.win32.js.map +1 -0
- package/lib/MenuList/index.d.ts +6 -0
- package/lib/MenuList/index.d.ts.map +1 -0
- package/lib/MenuList/index.js +5 -0
- package/lib/MenuList/index.js.map +1 -0
- package/lib/MenuList/useMenuList.d.ts +3 -0
- package/lib/MenuList/useMenuList.d.ts.map +1 -0
- package/lib/MenuList/useMenuList.js +109 -0
- package/lib/MenuList/useMenuList.js.map +1 -0
- package/lib/MenuList/useMenuListContextValue.d.ts +4 -0
- package/lib/MenuList/useMenuListContextValue.d.ts.map +1 -0
- package/lib/MenuList/useMenuListContextValue.js +5 -0
- package/lib/MenuList/useMenuListContextValue.js.map +1 -0
- package/lib/MenuPopover/MenuPopover.d.ts +4 -0
- package/lib/MenuPopover/MenuPopover.d.ts.map +1 -0
- package/lib/MenuPopover/MenuPopover.js +44 -0
- package/lib/MenuPopover/MenuPopover.js.map +1 -0
- package/lib/MenuPopover/MenuPopover.types.d.ts +10 -0
- package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -0
- package/lib/MenuPopover/MenuPopover.types.js +2 -0
- package/lib/MenuPopover/MenuPopover.types.js.map +1 -0
- package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -0
- package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -0
- package/lib/MenuPopover/MenuPopoverTokens.js +4 -0
- package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -0
- package/lib/MenuPopover/index.d.ts +5 -0
- package/lib/MenuPopover/index.d.ts.map +1 -0
- package/lib/MenuPopover/index.js +4 -0
- package/lib/MenuPopover/index.js.map +1 -0
- package/lib/MenuPopover/useMenuPopover.d.ts +3 -0
- package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -0
- package/lib/MenuPopover/useMenuPopover.js +92 -0
- package/lib/MenuPopover/useMenuPopover.js.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.d.ts +5 -0
- package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.js +20 -0
- package/lib/MenuTrigger/MenuTrigger.js.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.types.d.ts +28 -0
- package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.types.js +2 -0
- package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -0
- package/lib/MenuTrigger/index.d.ts +5 -0
- package/lib/MenuTrigger/index.d.ts.map +1 -0
- package/lib/MenuTrigger/index.js +4 -0
- package/lib/MenuTrigger/index.js.map +1 -0
- package/lib/MenuTrigger/useMenuTrigger.d.ts +3 -0
- package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -0
- package/lib/MenuTrigger/useMenuTrigger.js +79 -0
- package/lib/MenuTrigger/useMenuTrigger.js.map +1 -0
- package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
- package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
- package/lib/MenuTrigger/useMergeRefs.js +36 -0
- package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
- package/lib/__tests__/Menu.test.d.ts +2 -0
- package/lib/__tests__/Menu.test.d.ts.map +1 -0
- package/lib/__tests__/Menu.test.js +145 -0
- package/lib/__tests__/Menu.test.js.map +1 -0
- package/lib/consts.d.ts +2 -0
- package/lib/consts.d.ts.map +1 -0
- package/lib/consts.js +6 -0
- package/lib/consts.js.map +1 -0
- package/lib/context/index.d.ts +4 -0
- package/lib/context/index.d.ts.map +1 -0
- package/lib/context/index.js +4 -0
- package/lib/context/index.js.map +1 -0
- package/lib/context/menuContext.d.ts +16 -0
- package/lib/context/menuContext.d.ts.map +1 -0
- package/lib/context/menuContext.js +20 -0
- package/lib/context/menuContext.js.map +1 -0
- package/lib/context/menuListContext.d.ts +14 -0
- package/lib/context/menuListContext.d.ts.map +1 -0
- package/lib/context/menuListContext.js +15 -0
- package/lib/context/menuListContext.js.map +1 -0
- package/lib/context/menuTriggerContext.d.ts +9 -0
- package/lib/context/menuTriggerContext.d.ts.map +1 -0
- package/lib/context/menuTriggerContext.js +9 -0
- package/lib/context/menuTriggerContext.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib-commonjs/MenuItem/MenuItem.types.d.ts +12 -0
- package/lib-commonjs/MenuItem/MenuItem.types.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +6 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuList.types.d.ts +3 -0
- package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/MenuItem/MenuItem.types.ts +14 -0
- package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +8 -0
- package/src/MenuList/MenuList.types.ts +4 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { I18nManager, Platform } from 'react-native';
|
|
3
|
+
import { useMenuContext } from '../context/menuContext';
|
|
4
|
+
var controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'];
|
|
5
|
+
var stopPropagationKeys = ['ArrowUp', 'ArrowDown', 'Tab', 'Home', 'End', 'Escape'];
|
|
6
|
+
export var useMenuPopover = function (props) {
|
|
7
|
+
var context = useMenuContext();
|
|
8
|
+
var setOpen = context.setOpen, triggerRef = context.triggerRef, isControlled = context.isControlled, isSubmenu = context.isSubmenu, openOnHover = context.openOnHover, parentPopoverHoverOutTimer = context.parentPopoverHoverOutTimer, popoverHoverOutTimer = context.popoverHoverOutTimer, setPopoverHoverOutTimer = context.setPopoverHoverOutTimer, shouldFocusOnContainer = context.shouldFocusOnContainer, triggerHoverOutTimer = context.triggerHoverOutTimer;
|
|
9
|
+
var onKeyDownProp = props.onKeyDown, onKeyUpProp = props.onKeyUp;
|
|
10
|
+
var onDismiss = React.useCallback(function () {
|
|
11
|
+
var _a;
|
|
12
|
+
(_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
13
|
+
setOpen(undefined, false /* isOpen */), [setOpen];
|
|
14
|
+
}, [props.onDismiss, setOpen]);
|
|
15
|
+
var dismissBehaviors = isControlled ? controlledDismissBehaviors : undefined;
|
|
16
|
+
var directionalHint = getDirectionalHint(isSubmenu, I18nManager.isRTL);
|
|
17
|
+
// Initial focus behavior differs per platform, Windows platforms move focus
|
|
18
|
+
// automatically onto first element of Callout
|
|
19
|
+
var setInitialFocus = Platform.OS === 'win32' || Platform.OS === 'windows';
|
|
20
|
+
var doNotTakePointerCapture = openOnHover;
|
|
21
|
+
var accessibilityRole = 'menu';
|
|
22
|
+
var onMouseEnter = React.useCallback(function () {
|
|
23
|
+
clearTimeout(triggerHoverOutTimer);
|
|
24
|
+
clearTimeout(popoverHoverOutTimer);
|
|
25
|
+
clearTimeout(parentPopoverHoverOutTimer);
|
|
26
|
+
}, [parentPopoverHoverOutTimer, popoverHoverOutTimer, triggerHoverOutTimer]);
|
|
27
|
+
var onMouseLeave = React.useCallback(function () {
|
|
28
|
+
if (!openOnHover) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
var timer = setTimeout(function () {
|
|
32
|
+
setOpen(undefined, false /* isOpen */);
|
|
33
|
+
}, 500);
|
|
34
|
+
setPopoverHoverOutTimer(timer);
|
|
35
|
+
}, [openOnHover, setOpen, setPopoverHoverOutTimer]);
|
|
36
|
+
var onKeyDown = React.useCallback(function (e) {
|
|
37
|
+
onKeyDownProp && onKeyDownProp(e);
|
|
38
|
+
// Mark key events that move selection as handled.
|
|
39
|
+
// These key events are handled on the native side.
|
|
40
|
+
if (stopPropagationKeys.includes(e.nativeEvent.key)) {
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
}
|
|
43
|
+
}, [onKeyDownProp]);
|
|
44
|
+
var onKeyUp = React.useCallback(function (e) {
|
|
45
|
+
onKeyUpProp && onKeyUpProp(e);
|
|
46
|
+
// Mark key events that move selection as handled.
|
|
47
|
+
// These key events are handled on the native side.
|
|
48
|
+
if (stopPropagationKeys.includes(e.nativeEvent.key)) {
|
|
49
|
+
e.stopPropagation();
|
|
50
|
+
}
|
|
51
|
+
}, [onKeyUpProp]);
|
|
52
|
+
var _a = React.useState(shouldFocusOnContainer), canFocusOnPopover = _a[0], setCanFocusOnPopover = _a[1];
|
|
53
|
+
var onBlur = React.useCallback(function () {
|
|
54
|
+
setCanFocusOnPopover(false);
|
|
55
|
+
}, [setCanFocusOnPopover]);
|
|
56
|
+
React.useEffect(function () {
|
|
57
|
+
return function cleanup() {
|
|
58
|
+
clearTimeout(popoverHoverOutTimer);
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
props: {
|
|
63
|
+
accessibilityRole: accessibilityRole,
|
|
64
|
+
target: triggerRef,
|
|
65
|
+
onDismiss: onDismiss,
|
|
66
|
+
onShow: props.onShow,
|
|
67
|
+
directionalHint: directionalHint,
|
|
68
|
+
dismissBehaviors: dismissBehaviors,
|
|
69
|
+
doNotTakePointerCapture: doNotTakePointerCapture,
|
|
70
|
+
setInitialFocus: setInitialFocus,
|
|
71
|
+
},
|
|
72
|
+
innerView: {
|
|
73
|
+
onMouseEnter: onMouseEnter,
|
|
74
|
+
onMouseLeave: onMouseLeave,
|
|
75
|
+
onKeyDown: onKeyDown,
|
|
76
|
+
onKeyUp: onKeyUp,
|
|
77
|
+
accessible: shouldFocusOnContainer,
|
|
78
|
+
focusable: canFocusOnPopover,
|
|
79
|
+
onBlur: onBlur,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
var getDirectionalHint = function (isSubmenu, isRtl) {
|
|
84
|
+
if (!isSubmenu) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (isRtl) {
|
|
88
|
+
return 'leftTopEdge';
|
|
89
|
+
}
|
|
90
|
+
return 'rightTopEdge';
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=useMenuPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAejE,CAAC;AAGF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { menuTriggerName } from './MenuTrigger.types';
|
|
3
|
+
import { useMenuTrigger } from './useMenuTrigger';
|
|
4
|
+
import { MenuTriggerProvider } from '../context/menuTriggerContext';
|
|
5
|
+
export var MenuTrigger = function (props) {
|
|
6
|
+
if (__DEV__) {
|
|
7
|
+
if (!React.Children.only(props.children)) {
|
|
8
|
+
console.warn('Only expecting one child for MenuTrigger');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
var menuTrigger = useMenuTrigger(props.children.props);
|
|
12
|
+
// In order to properly support accessibility without erasing props set on the
|
|
13
|
+
// child component which may affect accessibility, we need to modify the
|
|
14
|
+
// state in the inner render so we can access the child component and its props.
|
|
15
|
+
var revised = React.cloneElement(props.children, menuTrigger.props);
|
|
16
|
+
return React.createElement(MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
|
|
17
|
+
};
|
|
18
|
+
MenuTrigger.displayName = menuTriggerName;
|
|
19
|
+
export default MenuTrigger;
|
|
20
|
+
//# sourceMappingURL=MenuTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,IAAM,WAAW,GAA8C,UAAC,KAAuB;IAC5F,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;SAC1D;KACF;IAED,IAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEzD,8EAA8E;IAC9E,wEAAwE;IACxE,gFAAgF;IAChF,IAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,oBAAC,mBAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;AAC7F,CAAC,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
|
|
3
|
+
export declare const menuTriggerName = "MenuTrigger";
|
|
4
|
+
/**
|
|
5
|
+
* Represents single react element (or null), which is the
|
|
6
|
+
* type of the child of MenuTrigger. Notably this excludes string, number,
|
|
7
|
+
* and array of elements as children, which MenuTrigger doesn't support.
|
|
8
|
+
*/
|
|
9
|
+
type SingleReactElement = React.ReactElement | null;
|
|
10
|
+
export interface MenuTriggerProps {
|
|
11
|
+
children?: SingleReactElement;
|
|
12
|
+
}
|
|
13
|
+
export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
|
|
14
|
+
/**
|
|
15
|
+
* A RefObject to refer to the trigger component.
|
|
16
|
+
*/
|
|
17
|
+
componentRef?: React.RefObject<React.Component>;
|
|
18
|
+
/**
|
|
19
|
+
* A callback to call on button click event
|
|
20
|
+
*/
|
|
21
|
+
onClick?: (e: InteractionEvent) => void;
|
|
22
|
+
}
|
|
23
|
+
export interface MenuTriggerState {
|
|
24
|
+
props: MenuTriggerChildProps;
|
|
25
|
+
hasSubmenu: boolean;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=MenuTrigger.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAEzG,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;IACpF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MenuTrigger } from './MenuTrigger';
|
|
2
|
+
export { menuTriggerName } from './MenuTrigger.types';
|
|
3
|
+
export type { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
4
|
+
export { useMenuTrigger } from './useMenuTrigger';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MenuTrigger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUnF,eAAO,MAAM,cAAc,eAAgB,qBAAqB,KAAG,gBAgHlE,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import { useMergedRefs } from './useMergeRefs';
|
|
5
|
+
import { hoverDelayDefault } from '../consts';
|
|
6
|
+
import { useMenuContext } from '../context/menuContext';
|
|
7
|
+
var baseAccessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
|
|
8
|
+
var expandedState = { expanded: true };
|
|
9
|
+
var collapsedState = { expanded: false };
|
|
10
|
+
export var useMenuTrigger = function (childProps) {
|
|
11
|
+
var context = useMenuContext();
|
|
12
|
+
var _a = context.hoverDelay, hoverDelay = _a === void 0 ? hoverDelayDefault : _a, open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
|
|
13
|
+
var childAccessibilityActions = childProps.accessibilityActions, childAccessibilityState = childProps.accessibilityState, childOnAccessibilityAction = childProps.onAccessibilityAction, childOnClick = childProps.onClick, childOnHoverIn = childProps.onHoverIn, childOnHoverOut = childProps.onHoverOut, childComponentRef = childProps.componentRef;
|
|
14
|
+
var accessibilityActions = React.useMemo(function () {
|
|
15
|
+
if (childAccessibilityActions) {
|
|
16
|
+
return __spreadArray(__spreadArray([], baseAccessibilityActions, true), childAccessibilityActions, true);
|
|
17
|
+
}
|
|
18
|
+
return baseAccessibilityActions;
|
|
19
|
+
}, [childAccessibilityActions]);
|
|
20
|
+
var accessibilityState = React.useMemo(function () {
|
|
21
|
+
var baseState = open ? expandedState : collapsedState;
|
|
22
|
+
if (childAccessibilityState) {
|
|
23
|
+
return __assign(__assign({}, baseState), childAccessibilityState);
|
|
24
|
+
}
|
|
25
|
+
return baseState;
|
|
26
|
+
}, [childAccessibilityState, open]);
|
|
27
|
+
var onAccessibilityAction = React.useCallback(function (e) {
|
|
28
|
+
if (Platform.OS === 'win32') {
|
|
29
|
+
switch (e.nativeEvent.actionName) {
|
|
30
|
+
case 'Expand':
|
|
31
|
+
setOpen(e, true /* isOpen */);
|
|
32
|
+
break;
|
|
33
|
+
case 'Collapse':
|
|
34
|
+
setOpen(e, false /* isOpen */);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
childOnAccessibilityAction && childOnAccessibilityAction(e);
|
|
39
|
+
}, [childOnAccessibilityAction, setOpen]);
|
|
40
|
+
var onHoverIn = React.useCallback(function (e) {
|
|
41
|
+
if (openOnHover) {
|
|
42
|
+
clearTimeout(popoverHoverOutTimer);
|
|
43
|
+
clearTimeout(triggerHoverOutTimer);
|
|
44
|
+
e.persist();
|
|
45
|
+
setTimeout(function () {
|
|
46
|
+
setOpen(e, true /* isOpen */);
|
|
47
|
+
}, hoverDelay);
|
|
48
|
+
}
|
|
49
|
+
childOnHoverIn && childOnHoverIn(e);
|
|
50
|
+
}, [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
|
|
51
|
+
var onHoverOut = React.useCallback(function (e) {
|
|
52
|
+
if (openOnHover) {
|
|
53
|
+
e.persist();
|
|
54
|
+
var timer = setTimeout(function () {
|
|
55
|
+
setOpen(e, false /* isOpen */);
|
|
56
|
+
}, hoverDelay);
|
|
57
|
+
setTriggerHoverOutTimer(timer);
|
|
58
|
+
}
|
|
59
|
+
childOnHoverOut && childOnHoverOut(e);
|
|
60
|
+
}, [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
|
|
61
|
+
var onClick = React.useCallback(function (e) {
|
|
62
|
+
setOpen(e, !open);
|
|
63
|
+
childOnClick && childOnClick(e);
|
|
64
|
+
}, [childOnClick, open, setOpen]);
|
|
65
|
+
var ref = useMergedRefs(triggerRef, childComponentRef);
|
|
66
|
+
return {
|
|
67
|
+
props: {
|
|
68
|
+
onClick: onClick,
|
|
69
|
+
onHoverIn: onHoverIn,
|
|
70
|
+
onHoverOut: onHoverOut,
|
|
71
|
+
componentRef: ref,
|
|
72
|
+
accessibilityState: accessibilityState,
|
|
73
|
+
accessibilityActions: accessibilityActions,
|
|
74
|
+
onAccessibilityAction: onAccessibilityAction,
|
|
75
|
+
},
|
|
76
|
+
hasSubmenu: context.isSubmenu,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=useMenuTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copied from @fluentui/react-utilities
|
|
3
|
+
*
|
|
4
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
5
|
+
* we can pull in @fluentui/react-utilities package
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* A Ref function which can be treated like a ref object in that it has an attached
|
|
10
|
+
* current property, which will be updated as the ref is evaluated.
|
|
11
|
+
*/
|
|
12
|
+
export type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
|
|
13
|
+
/**
|
|
14
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
15
|
+
* updates all provided refs
|
|
16
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
17
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T>;
|
|
20
|
+
//# sourceMappingURL=useMergeRefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRefs.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAoB5F"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copied from @fluentui/react-utilities
|
|
3
|
+
*
|
|
4
|
+
* Keeping the file local to Menu for now while looking into whether
|
|
5
|
+
* we can pull in @fluentui/react-utilities package
|
|
6
|
+
*/
|
|
7
|
+
import { __spreadArray } from "tslib";
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
/**
|
|
10
|
+
* React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
|
|
11
|
+
* updates all provided refs
|
|
12
|
+
* @param refs - Refs to collectively update with one ref value.
|
|
13
|
+
* @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
|
|
14
|
+
*/
|
|
15
|
+
export function useMergedRefs() {
|
|
16
|
+
var refs = [];
|
|
17
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
18
|
+
refs[_i] = arguments[_i];
|
|
19
|
+
}
|
|
20
|
+
var mergedCallback = React.useCallback(function (value) {
|
|
21
|
+
// Update the "current" prop hanging on the function.
|
|
22
|
+
mergedCallback.current = value;
|
|
23
|
+
for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {
|
|
24
|
+
var ref = refs_1[_i];
|
|
25
|
+
if (typeof ref === 'function') {
|
|
26
|
+
ref(value);
|
|
27
|
+
}
|
|
28
|
+
else if (ref) {
|
|
29
|
+
// work around the immutability of the React.Ref type
|
|
30
|
+
ref.current = value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}, __spreadArray([], refs, true));
|
|
34
|
+
return mergedCallback;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=useMergeRefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAAI,cAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,yBAAqC;;IACpE,IAAM,cAAc,GAAyB,KAAK,CAAC,WAAW,CAC5D,UAAC,KAAQ;QACP,qDAAqD;QACpD,cAAuD,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzE,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACZ,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;iBAAM,IAAI,GAAG,EAAE;gBACd,qDAAqD;gBACpD,GAA4C,CAAC,OAAO,GAAG,KAAK,CAAC;aAC/D;SACF;IACH,CAAC,oBAEG,IAAI,QAC0B,CAAC;IAErC,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ButtonV1 as Button } from '@fluentui-react-native/button';
|
|
3
|
+
import { checkReRender } from '@fluentui-react-native/test-tools';
|
|
4
|
+
import * as renderer from 'react-test-renderer';
|
|
5
|
+
import { Menu } from '../Menu/Menu';
|
|
6
|
+
import { MenuDivider } from '../MenuDivider/MenuDivider';
|
|
7
|
+
import { MenuItem } from '../MenuItem/MenuItem';
|
|
8
|
+
import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
|
|
9
|
+
import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
|
|
10
|
+
import { MenuList } from '../MenuList/MenuList';
|
|
11
|
+
import MenuPopover from '../MenuPopover/MenuPopover';
|
|
12
|
+
import MenuTrigger from '../MenuTrigger/MenuTrigger';
|
|
13
|
+
describe('Menu component tests', function () {
|
|
14
|
+
it('Menu default', function () {
|
|
15
|
+
var tree = renderer
|
|
16
|
+
.create(React.createElement(Menu, null,
|
|
17
|
+
React.createElement(MenuTrigger, null,
|
|
18
|
+
React.createElement(Button, null, "Default")),
|
|
19
|
+
React.createElement(MenuPopover, null,
|
|
20
|
+
React.createElement(MenuList, null,
|
|
21
|
+
React.createElement(MenuItem, null, "Option 1")))))
|
|
22
|
+
.toJSON();
|
|
23
|
+
expect(tree).toMatchSnapshot();
|
|
24
|
+
});
|
|
25
|
+
it('Menu open', function () {
|
|
26
|
+
var tree = renderer
|
|
27
|
+
.create(React.createElement(Menu, { open: true },
|
|
28
|
+
React.createElement(MenuTrigger, null,
|
|
29
|
+
React.createElement(Button, null, "Open")),
|
|
30
|
+
React.createElement(MenuPopover, null,
|
|
31
|
+
React.createElement(MenuList, null,
|
|
32
|
+
React.createElement(MenuItem, null, "Option 1")))))
|
|
33
|
+
.toJSON();
|
|
34
|
+
expect(tree).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
it('Menu defaultOpen', function () {
|
|
37
|
+
var tree = renderer
|
|
38
|
+
.create(React.createElement(Menu, { defaultOpen: true },
|
|
39
|
+
React.createElement(MenuTrigger, null,
|
|
40
|
+
React.createElement(Button, null, "Open")),
|
|
41
|
+
React.createElement(MenuPopover, null,
|
|
42
|
+
React.createElement(MenuList, null,
|
|
43
|
+
React.createElement(MenuItem, null, "Option 1"),
|
|
44
|
+
React.createElement(MenuItem, { disabled: true }, "Option 2")))))
|
|
45
|
+
.toJSON();
|
|
46
|
+
expect(tree).toMatchSnapshot();
|
|
47
|
+
});
|
|
48
|
+
it('Menu open checkbox and divider', function () {
|
|
49
|
+
var tree = renderer
|
|
50
|
+
.create(React.createElement(Menu, { open: true },
|
|
51
|
+
React.createElement(MenuTrigger, null,
|
|
52
|
+
React.createElement(Button, null, "Open")),
|
|
53
|
+
React.createElement(MenuPopover, null,
|
|
54
|
+
React.createElement(MenuList, null,
|
|
55
|
+
React.createElement(MenuItemCheckbox, { name: "Option 1" }, "Option 1"),
|
|
56
|
+
React.createElement(MenuDivider, null),
|
|
57
|
+
React.createElement(MenuItemCheckbox, { disabled: true, name: "Option 2" }, "Option 2")))))
|
|
58
|
+
.toJSON();
|
|
59
|
+
expect(tree).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
it('Menu open radio', function () {
|
|
62
|
+
var tree = renderer
|
|
63
|
+
.create(React.createElement(Menu, { open: true },
|
|
64
|
+
React.createElement(MenuTrigger, null,
|
|
65
|
+
React.createElement(Button, null, "Open")),
|
|
66
|
+
React.createElement(MenuPopover, null,
|
|
67
|
+
React.createElement(MenuList, null,
|
|
68
|
+
React.createElement(MenuItemRadio, { name: "Option 1" }, "Option 1"),
|
|
69
|
+
React.createElement(MenuItemRadio, { name: "Option 2" }, "Option 2")))))
|
|
70
|
+
.toJSON();
|
|
71
|
+
expect(tree).toMatchSnapshot();
|
|
72
|
+
});
|
|
73
|
+
it('Menu open checkbox defaultChecked', function () {
|
|
74
|
+
var tree = renderer
|
|
75
|
+
.create(React.createElement(Menu, { open: true, defaultChecked: ['Option 1'] },
|
|
76
|
+
React.createElement(MenuTrigger, null,
|
|
77
|
+
React.createElement(Button, null, "Open")),
|
|
78
|
+
React.createElement(MenuPopover, null,
|
|
79
|
+
React.createElement(MenuList, null,
|
|
80
|
+
React.createElement(MenuItemCheckbox, { name: "Option 1" }, "Option 1"),
|
|
81
|
+
React.createElement(MenuDivider, null),
|
|
82
|
+
React.createElement(MenuItemCheckbox, { name: "Option 2" }, "Option 2")))))
|
|
83
|
+
.toJSON();
|
|
84
|
+
expect(tree).toMatchSnapshot();
|
|
85
|
+
});
|
|
86
|
+
it('Menu open checkbox checked', function () {
|
|
87
|
+
var tree = renderer
|
|
88
|
+
.create(React.createElement(Menu, { open: true, checked: ['Option 1'] },
|
|
89
|
+
React.createElement(MenuTrigger, null,
|
|
90
|
+
React.createElement(Button, null, "Open")),
|
|
91
|
+
React.createElement(MenuPopover, null,
|
|
92
|
+
React.createElement(MenuList, null,
|
|
93
|
+
React.createElement(MenuItemCheckbox, { name: "Option 1" }, "Option 1"),
|
|
94
|
+
React.createElement(MenuDivider, null),
|
|
95
|
+
React.createElement(MenuItemCheckbox, { name: "Option 2" }, "Option 2")))))
|
|
96
|
+
.toJSON();
|
|
97
|
+
expect(tree).toMatchSnapshot();
|
|
98
|
+
});
|
|
99
|
+
it('Menu submenu', function () {
|
|
100
|
+
var tree = renderer
|
|
101
|
+
.create(React.createElement(Menu, { open: true },
|
|
102
|
+
React.createElement(MenuTrigger, null,
|
|
103
|
+
React.createElement(Button, null, "Default")),
|
|
104
|
+
React.createElement(MenuPopover, null,
|
|
105
|
+
React.createElement(MenuList, null,
|
|
106
|
+
React.createElement(MenuItem, null, "Option 1"),
|
|
107
|
+
React.createElement(Menu, null,
|
|
108
|
+
React.createElement(MenuTrigger, null,
|
|
109
|
+
React.createElement(MenuItem, null, "Option 2")),
|
|
110
|
+
React.createElement(MenuPopover, null,
|
|
111
|
+
React.createElement(MenuList, null,
|
|
112
|
+
React.createElement(MenuItem, null, "Option 1"))))))))
|
|
113
|
+
.toJSON();
|
|
114
|
+
expect(tree).toMatchSnapshot();
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
describe('Menu rerender tests', function () {
|
|
118
|
+
it('Menu re-renders correctly', function () {
|
|
119
|
+
checkReRender(function () { return (React.createElement(Menu, { open: true },
|
|
120
|
+
React.createElement(MenuTrigger, null,
|
|
121
|
+
React.createElement(Button, null, "Rerender twice")),
|
|
122
|
+
React.createElement(MenuPopover, null,
|
|
123
|
+
React.createElement(MenuList, null,
|
|
124
|
+
React.createElement(MenuItem, null, "Option 1"))))); }, 3);
|
|
125
|
+
});
|
|
126
|
+
it('Menu re-renders correctly with style', function () {
|
|
127
|
+
var style = { backgroundColor: 'black' };
|
|
128
|
+
checkReRender(function () { return (React.createElement(Menu, null,
|
|
129
|
+
React.createElement(MenuTrigger, null,
|
|
130
|
+
React.createElement(Button, { style: style }, "Rerender twice")),
|
|
131
|
+
React.createElement(MenuPopover, null,
|
|
132
|
+
React.createElement(MenuList, null,
|
|
133
|
+
React.createElement(MenuItem, null, "Option 1"))))); }, 3);
|
|
134
|
+
});
|
|
135
|
+
it('Menu re-renders correctly with accessibilityAction', function () {
|
|
136
|
+
var action = [{ name: 'Expand' }];
|
|
137
|
+
checkReRender(function () { return (React.createElement(Menu, null,
|
|
138
|
+
React.createElement(MenuTrigger, null,
|
|
139
|
+
React.createElement(Button, null, "Rerender twice")),
|
|
140
|
+
React.createElement(MenuPopover, null,
|
|
141
|
+
React.createElement(MenuList, null,
|
|
142
|
+
React.createElement(MenuItem, { accessibilityActions: action }, "Option 1"))))); }, 3);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=Menu.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
|
package/lib/consts.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAG5B,CAAC"}
|
package/lib/consts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,IAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { MenuContextValue, MenuContext, MenuProvider, useMenuContext } from './menuContext';
|
|
2
|
+
export { MenuListContextValue, MenuListContext, MenuListProvider, useMenuListContext } from './menuListContext';
|
|
3
|
+
export { MenuTriggerContext, MenuTriggerProvider, useMenuTriggerContext } from './menuTriggerContext';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { MenuContext, MenuProvider, useMenuContext } from './menuContext';
|
|
2
|
+
export { MenuListContext, MenuListProvider, useMenuListContext } from './menuListContext';
|
|
3
|
+
export { MenuTriggerContext, MenuTriggerProvider, useMenuTriggerContext } from './menuTriggerContext';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAwB,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import type { MenuState } from '../Menu/Menu.types';
|
|
4
|
+
/**
|
|
5
|
+
* Context shared between Menu and its child components
|
|
6
|
+
*/
|
|
7
|
+
export interface MenuContextValue extends MenuState {
|
|
8
|
+
popoverHoverOutTimer?: NodeJS.Timeout;
|
|
9
|
+
triggerHoverOutTimer?: NodeJS.Timeout;
|
|
10
|
+
setPopoverHoverOutTimer?: (timer: NodeJS.Timeout) => void;
|
|
11
|
+
setTriggerHoverOutTimer?: (timer: NodeJS.Timeout) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const MenuContext: React.Context<MenuContextValue>;
|
|
14
|
+
export declare const MenuProvider: React.Provider<MenuContextValue>;
|
|
15
|
+
export declare const useMenuContext: () => MenuContextValue;
|
|
16
|
+
//# sourceMappingURL=menuContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuContext.d.ts","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACtC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;IAC1D,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,WAAW,iCAetB,CAAC;AAEH,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,cAAc,wBAAsC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export var MenuContext = React.createContext({
|
|
3
|
+
isControlled: false,
|
|
4
|
+
checked: [],
|
|
5
|
+
defaultChecked: [],
|
|
6
|
+
hasCheckmarks: false,
|
|
7
|
+
hasIcons: false,
|
|
8
|
+
hasTooltips: false,
|
|
9
|
+
isSubmenu: false,
|
|
10
|
+
open: false,
|
|
11
|
+
onCheckedChange: function () { return false; },
|
|
12
|
+
setOpen: function () { return false; },
|
|
13
|
+
shouldFocusOnContainer: undefined,
|
|
14
|
+
triggerRef: null,
|
|
15
|
+
hasMaxHeight: false,
|
|
16
|
+
hasMaxWidth: false,
|
|
17
|
+
});
|
|
18
|
+
export var MenuProvider = MenuContext.Provider;
|
|
19
|
+
export var useMenuContext = function () { return React.useContext(MenuContext); };
|
|
20
|
+
//# sourceMappingURL=menuContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuContext.js","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,MAAM,CAAC,IAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAmB;IAC/D,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,OAAO,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACpB,sBAAsB,EAAE,SAAS;IACjC,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;AACjD,MAAM,CAAC,IAAM,cAAc,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAA7B,CAA6B,CAAC"}
|