@fluentui-react-native/menu 0.12.0 → 0.14.0

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.
Files changed (111) hide show
  1. package/CHANGELOG.json +46 -1
  2. package/CHANGELOG.md +26 -2
  3. package/jest.config.js +2 -0
  4. package/lib/Menu/Menu.types.d.ts +2 -0
  5. package/lib/Menu/Menu.types.d.ts.map +1 -1
  6. package/lib/Menu/useMenu.d.ts.map +1 -1
  7. package/lib/Menu/useMenu.js +8 -3
  8. package/lib/Menu/useMenu.js.map +1 -1
  9. package/lib/Menu/useMenuContextValue.d.ts.map +1 -1
  10. package/lib/Menu/useMenuContextValue.js +4 -1
  11. package/lib/Menu/useMenuContextValue.js.map +1 -1
  12. package/lib/MenuItem/MenuItem.js +1 -1
  13. package/lib/MenuItem/MenuItem.js.map +1 -1
  14. package/lib/MenuItem/useMenuItem.d.ts.map +1 -1
  15. package/lib/MenuItem/useMenuItem.js +34 -6
  16. package/lib/MenuItem/useMenuItem.js.map +1 -1
  17. package/lib/MenuItemCheckbox/MenuItemCheckbox.js +1 -1
  18. package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  19. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
  20. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +12 -8
  21. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  22. package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -1
  23. package/lib/MenuItemRadio/useMenuItemRadio.js +5 -3
  24. package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  25. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
  26. package/lib/MenuPopover/MenuPopover.js +7 -3
  27. package/lib/MenuPopover/MenuPopover.js.map +1 -1
  28. package/lib/MenuPopover/MenuPopover.types.d.ts +4 -10
  29. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  30. package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -1
  31. package/lib/MenuPopover/useMenuPopover.js +35 -8
  32. package/lib/MenuPopover/useMenuPopover.js.map +1 -1
  33. package/lib/MenuTrigger/MenuTrigger.js +8 -8
  34. package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
  35. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  36. package/lib/MenuTrigger/useMenuTrigger.js +21 -20
  37. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
  38. package/lib/__tests__/Menu.test.d.ts +2 -0
  39. package/lib/__tests__/Menu.test.d.ts.map +1 -0
  40. package/lib/__tests__/Menu.test.js +145 -0
  41. package/lib/__tests__/Menu.test.js.map +1 -0
  42. package/lib/consts.d.ts +3 -0
  43. package/lib/consts.d.ts.map +1 -0
  44. package/lib/consts.js +7 -0
  45. package/lib/consts.js.map +1 -0
  46. package/lib/context/menuContext.d.ts +10 -4
  47. package/lib/context/menuContext.d.ts.map +1 -1
  48. package/lib/context/menuContext.js.map +1 -1
  49. package/lib-commonjs/Menu/Menu.types.d.ts +2 -0
  50. package/lib-commonjs/Menu/Menu.types.d.ts.map +1 -1
  51. package/lib-commonjs/Menu/useMenu.d.ts.map +1 -1
  52. package/lib-commonjs/Menu/useMenu.js +8 -3
  53. package/lib-commonjs/Menu/useMenu.js.map +1 -1
  54. package/lib-commonjs/Menu/useMenuContextValue.d.ts.map +1 -1
  55. package/lib-commonjs/Menu/useMenuContextValue.js +4 -1
  56. package/lib-commonjs/Menu/useMenuContextValue.js.map +1 -1
  57. package/lib-commonjs/MenuItem/MenuItem.js +1 -1
  58. package/lib-commonjs/MenuItem/MenuItem.js.map +1 -1
  59. package/lib-commonjs/MenuItem/useMenuItem.d.ts.map +1 -1
  60. package/lib-commonjs/MenuItem/useMenuItem.js +32 -4
  61. package/lib-commonjs/MenuItem/useMenuItem.js.map +1 -1
  62. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +1 -1
  63. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  64. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
  65. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +12 -8
  66. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  67. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -1
  68. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +5 -3
  69. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  70. package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
  71. package/lib-commonjs/MenuPopover/MenuPopover.js +5 -2
  72. package/lib-commonjs/MenuPopover/MenuPopover.js.map +1 -1
  73. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts +4 -10
  74. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  75. package/lib-commonjs/MenuPopover/useMenuPopover.d.ts.map +1 -1
  76. package/lib-commonjs/MenuPopover/useMenuPopover.js +35 -8
  77. package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
  78. package/lib-commonjs/MenuTrigger/MenuTrigger.js +8 -8
  79. package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
  80. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  81. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +21 -20
  82. package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
  83. package/lib-commonjs/__tests__/Menu.test.d.ts +2 -0
  84. package/lib-commonjs/__tests__/Menu.test.d.ts.map +1 -0
  85. package/lib-commonjs/__tests__/Menu.test.js +148 -0
  86. package/lib-commonjs/__tests__/Menu.test.js.map +1 -0
  87. package/lib-commonjs/consts.d.ts +3 -0
  88. package/lib-commonjs/consts.d.ts.map +1 -0
  89. package/lib-commonjs/consts.js +10 -0
  90. package/lib-commonjs/consts.js.map +1 -0
  91. package/lib-commonjs/context/menuContext.d.ts +10 -4
  92. package/lib-commonjs/context/menuContext.d.ts.map +1 -1
  93. package/lib-commonjs/context/menuContext.js.map +1 -1
  94. package/package.json +3 -1
  95. package/src/Menu/Menu.types.ts +1 -0
  96. package/src/Menu/useMenu.ts +9 -2
  97. package/src/Menu/useMenuContextValue.ts +4 -1
  98. package/src/MenuItem/MenuItem.tsx +1 -1
  99. package/src/MenuItem/useMenuItem.ts +48 -8
  100. package/src/MenuItemCheckbox/MenuItemCheckbox.tsx +1 -1
  101. package/src/MenuItemCheckbox/useMenuItemCheckbox.ts +12 -8
  102. package/src/MenuItemRadio/useMenuItemRadio.ts +5 -3
  103. package/src/MenuPopover/MenuPopover.tsx +7 -14
  104. package/src/MenuPopover/MenuPopover.types.ts +4 -9
  105. package/src/MenuPopover/useMenuPopover.ts +48 -8
  106. package/src/MenuTrigger/MenuTrigger.tsx +9 -9
  107. package/src/MenuTrigger/useMenuTrigger.ts +36 -26
  108. package/src/__tests__/Menu.test.tsx +235 -0
  109. package/src/__tests__/__snapshots__/Menu.test.tsx.snap +2098 -0
  110. package/src/consts.ts +8 -0
  111. package/src/context/menuContext.ts +6 -1
@@ -1,14 +1,14 @@
1
1
  import { useMenuContext } from '../context/menuContext';
2
2
  import { Platform } from 'react-native';
3
3
  import React from 'react';
4
+ import { delayHover, isCloseOnHoverOutEnabled } from '../consts';
4
5
  var accessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
6
+ var expandedState = { expanded: true };
7
+ var collapsedState = { expanded: false };
5
8
  export var useMenuTrigger = function (_props) {
6
9
  var context = useMenuContext();
7
- var setOpen = context.setOpen;
8
- var open = context.open;
9
- var openOnHover = context.openOnHover;
10
- var triggerRef = context.triggerRef;
11
- var accessibilityState = context.open ? { expanded: true } : { expanded: false };
10
+ var open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
11
+ var accessibilityState = open ? expandedState : collapsedState;
12
12
  var onAccessibilityAction = React.useCallback(function (e) {
13
13
  if (Platform.OS === 'win32') {
14
14
  switch (e.nativeEvent.actionName) {
@@ -21,31 +21,32 @@ export var useMenuTrigger = function (_props) {
21
21
  }
22
22
  }
23
23
  }, [setOpen]);
24
- var delayHover = Platform.select({
25
- macos: 100,
26
- default: 500, // win32
27
- });
28
- var onHoverIn = function (e) {
24
+ var onHoverIn = React.useCallback(function (e) {
29
25
  if (openOnHover) {
30
- setOpen(e, true /* isOpen */);
26
+ clearTimeout(popoverHoverOutTimer);
27
+ clearTimeout(triggerHoverOutTimer);
28
+ setTimeout(function () {
29
+ setOpen(e, true /* isOpen */);
30
+ }, delayHover);
31
31
  }
32
- };
33
- var onHoverOut = function (e) {
32
+ }, [openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
33
+ var onHoverOut = React.useCallback(function (e) {
34
34
  if (openOnHover) {
35
- setOpen(e, false /* isOpen */);
35
+ var timer = setTimeout(function () {
36
+ setOpen(e, false /* isOpen */);
37
+ }, delayHover);
38
+ setTriggerHoverOutTimer(timer);
36
39
  }
37
- };
38
- var onClick = function (e) {
40
+ }, [openOnHover, setOpen, setTriggerHoverOutTimer]);
41
+ var onClick = React.useCallback(function (e) {
39
42
  setOpen(e, !open);
40
- };
43
+ }, [open, setOpen]);
41
44
  return {
42
45
  props: {
43
46
  onClick: onClick,
44
47
  onHoverIn: onHoverIn,
45
- onHoverOut: Platform.OS === 'win32' && onHoverOut,
48
+ onHoverOut: isCloseOnHoverOutEnabled && onHoverOut,
46
49
  componentRef: triggerRef,
47
- delayHoverIn: delayHover,
48
- delayHoverOut: Platform.OS === 'win32' && delayHover,
49
50
  accessibilityState: accessibilityState,
50
51
  accessibilityActions: accessibilityActions,
51
52
  onAccessibilityAction: onAccessibilityAction,
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAqD,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAM,oBAAoB,GACxB,QAAQ,CAAC,EAAE,KAAM,OAAe,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAmC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAqC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE3I,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,MAAwB;IACrD,IAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnF,IAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,UAAC,CAA2B;QAC1B,IAAI,QAAQ,CAAC,EAAE,KAAM,OAAe,EAAE;YACpC,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE;gBAChC,KAAK,QAAQ;oBACX,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,MAAM;gBAER,KAAK,UAAU;oBACb,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC/B,MAAM;aACT;SACF;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,IAAM,SAAS,GAAG,UAAC,CAAmB;QACpC,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,CAAmB;QACrC,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG,UAAC,CAAmB;QAClC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE;YACL,OAAO,SAAA;YACP,SAAS,WAAA;YACT,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAM,OAAe,IAAI,UAAU;YAC1D,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,UAAU;YACxB,aAAa,EAAE,QAAQ,CAAC,EAAE,KAAM,OAAe,IAAI,UAAU;YAC7D,kBAAkB,oBAAA;YAClB,oBAAoB,sBAAA;YACpB,qBAAqB,uBAAA;SACtB;QACD,UAAU,EAAE,OAAO,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Menu.test.d.ts.map
@@ -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 * as renderer from 'react-test-renderer';
3
+ import { Menu } from '../Menu/Menu';
4
+ import { checkReRender } from '@fluentui-react-native/test-tools';
5
+ import MenuTrigger from '../MenuTrigger/MenuTrigger';
6
+ import { ButtonV1 as Button } from '@fluentui-react-native/button';
7
+ import MenuPopover from '../MenuPopover/MenuPopover';
8
+ import { MenuList } from '../MenuList/MenuList';
9
+ import { MenuItem } from '../MenuItem/MenuItem';
10
+ import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
11
+ import { MenuDivider } from '../MenuDivider/MenuDivider';
12
+ import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
13
+ describe('Checkbox 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, { content: "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, { content: "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, { content: "Option 1" }),
44
+ React.createElement(MenuItem, { disabled: true, content: "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, { content: "Option 1", name: "Option 1" }),
56
+ React.createElement(MenuDivider, null),
57
+ React.createElement(MenuItemCheckbox, { disabled: true, content: "Option 2", name: "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, { content: "Option 1", name: "Option 1" }),
69
+ React.createElement(MenuItemRadio, { content: "Option 2", name: "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': true } },
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, { content: "Option 1", name: "Option 1" }),
81
+ React.createElement(MenuDivider, null),
82
+ React.createElement(MenuItemCheckbox, { content: "Option 2", name: "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': true } },
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, { content: "Option 1", name: "Option 1" }),
94
+ React.createElement(MenuDivider, null),
95
+ React.createElement(MenuItemCheckbox, { content: "Option 2", name: "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, { content: "Option 1" }),
107
+ React.createElement(Menu, null,
108
+ React.createElement(MenuTrigger, null,
109
+ React.createElement(MenuItem, { content: "Option 2" })),
110
+ React.createElement(MenuPopover, null,
111
+ React.createElement(MenuList, null,
112
+ React.createElement(MenuItem, { content: "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, { content: "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, { content: "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, content: "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":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,QAAQ,CAAC,0BAA0B,EAAE;IACnC,EAAE,CAAC,cAAc,EAAE;QACjB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI;YACH,oBAAC,WAAW;gBACV,oBAAC,MAAM,kBAAiB,CACZ;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG,CACtB,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,WAAW,EAAE;QACd,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG,CACtB,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE;QACrB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,WAAW;YACf,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG;oBAC/B,oBAAC,QAAQ,IAAC,QAAQ,QAAC,OAAO,EAAC,UAAU,GAAG,CAC/B,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE;QACnC,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,gBAAgB,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG;oBACvD,oBAAC,WAAW,OAAG;oBACf,oBAAC,gBAAgB,IAAC,QAAQ,QAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG,CACvD,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE;QACpB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,aAAa,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG;oBACpD,oBAAC,aAAa,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG,CAC3C,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE;QACtC,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI,QAAC,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7C,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,gBAAgB,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG;oBACvD,oBAAC,WAAW,OAAG;oBACf,oBAAC,gBAAgB,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG,CAC9C,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC/B,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI,QAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YACtC,oBAAC,WAAW;gBACV,oBAAC,MAAM,eAAc,CACT;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,gBAAgB,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG;oBACvD,oBAAC,WAAW,OAAG;oBACf,oBAAC,gBAAgB,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,GAAG,CAC9C,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE;QACjB,IAAM,IAAI,GAAG,QAAQ;aAClB,MAAM,CACL,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,kBAAiB,CACZ;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG;oBAC/B,oBAAC,IAAI;wBACH,oBAAC,WAAW;4BACV,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG,CACnB;wBACd,oBAAC,WAAW;4BACV,oBAAC,QAAQ;gCACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG,CACtB,CACC,CACT,CACE,CACC,CACT,CACR;aACA,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE;QAC9B,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,IAAI,IAAC,IAAI;YACR,oBAAC,WAAW;gBACV,oBAAC,MAAM,yBAAwB,CACnB;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG,CACtB,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,IAAM,KAAK,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QAC3C,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,IAAI;YACH,oBAAC,WAAW;gBACV,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,qBAAyB,CACjC;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,OAAO,EAAC,UAAU,GAAG,CACtB,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE;QACvD,IAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,QAAmC,EAAE,CAAC,CAAC;QAC/D,aAAa,CACX,cAAM,OAAA,CACJ,oBAAC,IAAI;YACH,oBAAC,WAAW;gBACV,oBAAC,MAAM,yBAAwB,CACnB;YACd,oBAAC,WAAW;gBACV,oBAAC,QAAQ;oBACP,oBAAC,QAAQ,IAAC,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAC,UAAU,GAAG,CACpD,CACC,CACT,CACR,EAXK,CAWL,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const delayHover: number;
2
+ export declare const isCloseOnHoverOutEnabled: boolean;
3
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,QAGrB,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAmC,CAAC"}
package/lib/consts.js ADDED
@@ -0,0 +1,7 @@
1
+ import { Platform } from 'react-native';
2
+ export var delayHover = Platform.select({
3
+ macos: 100,
4
+ default: 500, // win32
5
+ });
6
+ export var isCloseOnHoverOutEnabled = Platform.OS === 'win32';
7
+ //# sourceMappingURL=consts.js.map
@@ -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,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,wBAAwB,GAAG,QAAQ,CAAC,EAAE,KAAM,OAAe,CAAC"}
@@ -1,10 +1,16 @@
1
+ /// <reference types="node" />
1
2
  import * as React from 'react';
2
3
  import type { MenuState } from '../Menu/Menu.types';
3
4
  /**
4
5
  * Context shared between Menu and its child components
5
6
  */
6
- export declare type MenuContextValue = MenuState;
7
- export declare const MenuContext: React.Context<MenuState>;
8
- export declare const MenuProvider: React.Provider<MenuState>;
9
- export declare const useMenuContext: () => MenuState;
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;
10
16
  //# sourceMappingURL=menuContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menuContext.d.ts","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;GAEG;AACH,oBAAY,gBAAgB,GAAG,SAAS,CAAC;AAEzC,eAAO,MAAM,WAAW,0BAUtB,CAAC;AAEH,eAAO,MAAM,YAAY,2BAAuB,CAAC;AACjD,eAAO,MAAM,cAAc,iBAAsC,CAAC"}
1
+ {"version":3,"file":"menuContext.d.ts","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/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,iCAUtB,CAAC;AAEH,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,cAAc,wBAAsC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"menuContext.js","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/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,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,OAAO,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACpB,UAAU,EAAE,IAAI;CACjB,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"}
1
+ {"version":3,"file":"menuContext.js","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/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,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,OAAO,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACpB,UAAU,EAAE,IAAI;CACjB,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"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
2
3
  import React from 'react';
3
4
  import type { MenuListProps } from '../MenuList/MenuList.types';
@@ -11,6 +12,7 @@ export interface MenuProps extends MenuListProps {
11
12
  export interface MenuState extends MenuProps {
12
13
  isControlled: boolean;
13
14
  isSubmenu: boolean;
15
+ parentPopoverHoverOutTimer?: NodeJS.Timeout;
14
16
  setOpen: (e: InteractionEvent, isOpen: boolean) => void;
15
17
  triggerRef: React.RefObject<React.Component>;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenu.d.ts","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,OAAO,UAAW,SAAS,KAAG,SAqB1C,CAAC"}
1
+ {"version":3,"file":"useMenu.d.ts","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,OAAO,UAAW,SAAS,KAAG,SA4B1C,CAAC"}
@@ -5,16 +5,21 @@ var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var menuContext_1 = require("../context/menuContext");
7
7
  var useMenu = function (props) {
8
- var triggerRef = react_1.default.useRef(null);
8
+ var triggerRef = react_1.default.useRef();
9
9
  var context = (0, menuContext_1.useMenuContext)();
10
10
  var isSubmenu = context.triggerRef !== null;
11
11
  var isControlled = typeof props.open !== 'undefined';
12
12
  var _a = useMenuOpenState(isControlled, props), open = _a[0], setOpen = _a[1];
13
- // Default behaviot for submenu is to open on hover
13
+ // Default behavior for submenu is to open on hover
14
14
  // the ...props line below will override this behavior for a submenu
15
15
  // or apply openOnHover if passed into a root Menu.
16
16
  var openOnHover = isSubmenu;
17
- return (0, tslib_1.__assign)((0, tslib_1.__assign)({ openOnHover: openOnHover }, props), { open: open, setOpen: setOpen, triggerRef: triggerRef, isSubmenu: isSubmenu, isControlled: isControlled });
17
+ // We need to be able to cancel the timer that gets set on
18
+ // hover out of the parent popover if the parent popover
19
+ // is also set to open/close on hover out. Otherwise
20
+ // the parent menu will close when the timeout passes.
21
+ var parentPopoverHoverOutTimer = isSubmenu ? context.popoverHoverOutTimer : undefined;
22
+ return (0, tslib_1.__assign)((0, tslib_1.__assign)({ openOnHover: openOnHover }, props), { open: open, setOpen: setOpen, triggerRef: triggerRef, isSubmenu: isSubmenu, isControlled: isControlled, parentPopoverHoverOutTimer: parentPopoverHoverOutTimer });
18
23
  };
19
24
  exports.useMenu = useMenu;
20
25
  var useMenuOpenState = function (isControlled, props) {
@@ -1 +1 @@
1
- {"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":";;;;AACA,6DAA0B;AAC1B,sDAAwD;AAGjD,IAAM,OAAO,GAAG,UAAC,KAAgB;IACtC,IAAM,UAAU,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IACjC,IAAM,SAAS,GAAG,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC;IAC9C,IAAM,YAAY,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;IACjD,IAAA,KAAkB,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAtD,IAAI,QAAA,EAAE,OAAO,QAAyC,CAAC;IAE9D,mDAAmD;IACnD,oEAAoE;IACpE,mDAAmD;IACnD,IAAM,WAAW,GAAG,SAAS,CAAC;IAE9B,qDACE,WAAW,aAAA,IACR,KAAK,KACR,IAAI,MAAA,EACJ,OAAO,SAAA,EACP,UAAU,YAAA,EACV,SAAS,WAAA,EACT,YAAY,cAAA,IACZ;AACJ,CAAC,CAAC;AArBW,QAAA,OAAO,WAqBlB;AAEF,IAAM,gBAAgB,GAAG,UAAC,YAAqB,EAAE,KAAgB;IACvD,IAAA,WAAW,GAAyB,KAAK,YAA9B,EAAE,YAAY,GAAW,KAAK,aAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IAClD,IAAM,YAAY,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAA,KAAkC,eAAK,CAAC,QAAQ,CAAU,YAAY,CAAC,EAAtE,YAAY,QAAA,EAAE,eAAe,QAAyC,CAAC;IAE9E,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAEjD,IAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,UAAC,CAAmB,EAAE,MAAe;QACnC,IAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,IAAI,YAAY,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACzB;IACH,CAAC,EACD,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,CAAC,CACrD,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"useMenu.js","sourceRoot":"","sources":["../../src/Menu/useMenu.ts"],"names":[],"mappings":";;;;AACA,6DAA0B;AAC1B,sDAAwD;AAGjD,IAAM,OAAO,GAAG,UAAC,KAAgB;IACtC,IAAM,UAAU,GAAG,eAAK,CAAC,MAAM,EAAE,CAAC;IAClC,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IACjC,IAAM,SAAS,GAAG,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC;IAC9C,IAAM,YAAY,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;IACjD,IAAA,KAAkB,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAtD,IAAI,QAAA,EAAE,OAAO,QAAyC,CAAC;IAE9D,mDAAmD;IACnD,oEAAoE;IACpE,mDAAmD;IACnD,IAAM,WAAW,GAAG,SAAS,CAAC;IAE9B,0DAA0D;IAC1D,wDAAwD;IACxD,oDAAoD;IACpD,sDAAsD;IACtD,IAAM,0BAA0B,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,qDACE,WAAW,aAAA,IACR,KAAK,KACR,IAAI,MAAA,EACJ,OAAO,SAAA,EACP,UAAU,YAAA,EACV,SAAS,WAAA,EACT,YAAY,cAAA,EACZ,0BAA0B,4BAAA,IAC1B;AACJ,CAAC,CAAC;AA5BW,QAAA,OAAO,WA4BlB;AAEF,IAAM,gBAAgB,GAAG,UAAC,YAAqB,EAAE,KAAgB;IACvD,IAAA,WAAW,GAAyB,KAAK,YAA9B,EAAE,YAAY,GAAW,KAAK,aAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IAClD,IAAM,YAAY,GAAG,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAA,KAAkC,eAAK,CAAC,QAAQ,CAAU,YAAY,CAAC,EAAtE,YAAY,QAAA,EAAE,eAAe,QAAyC,CAAC;IAE9E,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAEjD,IAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,UAAC,CAAmB,EAAE,MAAe;QACnC,IAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,IAAI,YAAY,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACzB;IACH,CAAC,EACD,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,CAAC,CACrD,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuContextValue.d.ts","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,mBAAmB,UAAW,SAAS,KAAG,gBAEtD,CAAC"}
1
+ {"version":3,"file":"useMenuContextValue.d.ts","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,mBAAmB,UAAW,SAAS,KAAG,gBAItD,CAAC"}
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMenuContextValue = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ var react_1 = (0, tslib_1.__importDefault)(require("react"));
5
6
  var useMenuContextValue = function (state) {
6
- return (0, tslib_1.__assign)({}, state);
7
+ var _a = react_1.default.useState(), triggerHoverOutTimer = _a[0], setTriggerHoverOutTimer = _a[1];
8
+ var _b = react_1.default.useState(), popoverHoverOutTimer = _b[0], setPopoverHoverOutTimer = _b[1];
9
+ return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, state), { popoverHoverOutTimer: popoverHoverOutTimer, triggerHoverOutTimer: triggerHoverOutTimer, setPopoverHoverOutTimer: setPopoverHoverOutTimer, setTriggerHoverOutTimer: setTriggerHoverOutTimer });
7
10
  };
8
11
  exports.useMenuContextValue = useMenuContextValue;
9
12
  //# sourceMappingURL=useMenuContextValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuContextValue.js","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":";;;;AAGO,IAAM,mBAAmB,GAAG,UAAC,KAAgB;IAClD,iCAAY,KAAK,EAAG;AACtB,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B"}
1
+ {"version":3,"file":"useMenuContextValue.js","sourceRoot":"","sources":["../../src/Menu/useMenuContextValue.ts"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAInB,IAAM,mBAAmB,GAAG,UAAC,KAAgB;IAC5C,IAAA,KAAkD,eAAK,CAAC,QAAQ,EAA8B,EAA7F,oBAAoB,QAAA,EAAE,uBAAuB,QAAgD,CAAC;IAC/F,IAAA,KAAkD,eAAK,CAAC,QAAQ,EAAkB,EAAjF,oBAAoB,QAAA,EAAE,uBAAuB,QAAoC,CAAC;IACzF,uDAAY,KAAK,KAAE,oBAAoB,sBAAA,EAAE,oBAAoB,sBAAA,EAAE,uBAAuB,yBAAA,EAAE,uBAAuB,yBAAA,IAAG;AACpH,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B"}
@@ -17,7 +17,7 @@ exports.MenuItem = (0, framework_1.compose)((0, tslib_1.__assign)((0, tslib_1.__
17
17
  submenuIndicator: react_native_svg_1.SvgXml,
18
18
  }, useRender: function (userProps, useSlots) {
19
19
  var menuItem = (0, useMenuItem_1.useMenuItem)(userProps);
20
- var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
20
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer] || userProps[layer]; });
21
21
  return function (final) {
22
22
  var mergedProps = (0, framework_1.mergeProps)(menuItem.props, final);
23
23
  var chevronXml = react_native_1.I18nManager.isRTL
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAiD;AACjD,qDAA0C;AAC1C,8DAA4F;AAC5F,8EAAgE;AAChE,mDAA6E;AAC7E,6CAA4C;AAC5C,uDAAqD;AAExC,QAAA,QAAQ,GAAG,IAAA,mBAAO,gDAC7B,WAAW,EAAE,6BAAY,IACtB,kCAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,mBAAI;QACf,OAAO,EAAE,wBAAI;QACb,gBAAgB,EAAE,yBAAM;KACzB,EACD,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,UAAC,KAAoB;YAC1B,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,0BAAW,CAAC,KAAK;gBAClC,CAAC,CAAC,+YAGO;gBACT,CAAC,CAAC,+YAGO,CAAC;YAEZ,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;gBACxB,QAAQ,CAAC,aAAa,IAAI,2BAAC,KAAK,CAAC,SAAS,OAAG;gBAC7C,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB;gBAC3E,QAAQ,CAAC,UAAU,IAAI,2BAAC,KAAK,CAAC,gBAAgB,IAAC,GAAG,EAAE,UAAU,GAAI,CACxD,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAiD;AACjD,qDAA0C;AAC1C,8DAA4F;AAC5F,8EAAgE;AAChE,mDAA6E;AAC7E,6CAA4C;AAC5C,uDAAqD;AAExC,QAAA,QAAQ,GAAG,IAAA,mBAAO,gDAC7B,WAAW,EAAE,6BAAY,IACtB,kCAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,mBAAI;QACf,OAAO,EAAE,wBAAI;QACb,gBAAgB,EAAE,yBAAM;KACzB,EACD,SAAS,EAAE,UAAC,SAAwB,EAAE,QAAgC;QACpE,IAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAEjG,OAAO,UAAC,KAAoB;YAC1B,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,0BAAW,CAAC,KAAK;gBAClC,CAAC,CAAC,+YAGO;gBACT,CAAC,CAAC,+YAGO,CAAC;YAEZ,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;gBACxB,QAAQ,CAAC,aAAa,IAAI,2BAAC,KAAK,CAAC,SAAS,OAAG;gBAC7C,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB;gBAC3E,QAAQ,CAAC,UAAU,IAAI,2BAAC,KAAK,CAAC,gBAAgB,IAAC,GAAG,EAAE,UAAU,GAAI,CACxD,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aA2BlD,CAAC"}
1
+ {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aAgElD,CAAC"}
@@ -3,22 +3,50 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMenuItem = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var React = (0, tslib_1.__importStar)(require("react"));
6
+ var react_native_1 = require("react-native");
6
7
  var framework_1 = require("@fluentui-react-native/framework");
7
8
  var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
8
9
  var menuContext_1 = require("../context/menuContext");
9
10
  var menuListContext_1 = require("../context/menuListContext");
10
11
  var menuTriggerContext_1 = require("../context/menuTriggerContext");
12
+ var triggerKeys = [' ', 'Enter'];
13
+ var submenuTriggerKeys = (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], triggerKeys, true), ['ArrowLeft', 'ArrowRight'], false);
11
14
  var useMenuItem = function (props) {
12
15
  // attach the pressable state handlers
13
16
  var defaultComponentRef = React.useRef(null);
14
17
  var onClick = props.onClick, accessibilityState = props.accessibilityState, _a = props.componentRef, componentRef = _a === void 0 ? defaultComponentRef : _a, disabled = props.disabled, rest = (0, tslib_1.__rest)(props, ["onClick", "accessibilityState", "componentRef", "disabled"]);
15
- var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, rest), { disabled: disabled, onPress: onClick }));
16
- var onKeyProps = (0, interactive_hooks_1.useKeyProps)(onClick, ' ', 'Enter');
17
18
  var isTrigger = (0, menuTriggerContext_1.useMenuTriggerContext)();
18
- var hasSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu && isTrigger;
19
+ var isSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu;
20
+ var hasSubmenu = isSubmenu && isTrigger;
21
+ var isInSubmenu = isSubmenu && !isTrigger;
22
+ var setOpen = (0, menuContext_1.useMenuContext)().setOpen;
23
+ var onInvoke = React.useCallback(function (e) {
24
+ if (disabled) {
25
+ return;
26
+ }
27
+ var isRtl = react_native_1.I18nManager.isRTL;
28
+ if ((0, interactive_hooks_1.isKeyPressEvent)(e) &&
29
+ hasSubmenu &&
30
+ ((isRtl && e.nativeEvent.key === 'ArrowRight') || (!isRtl && e.nativeEvent.key === 'ArrowLeft'))) {
31
+ return;
32
+ }
33
+ if ((0, interactive_hooks_1.isKeyPressEvent)(e) &&
34
+ isInSubmenu &&
35
+ ((isRtl && e.nativeEvent.key === 'ArrowLeft') || (!isRtl && e.nativeEvent.key === 'ArrowRight'))) {
36
+ return;
37
+ }
38
+ onClick === null || onClick === void 0 ? void 0 : onClick(e);
39
+ if (!hasSubmenu) {
40
+ setOpen(e, false /*isOpen*/);
41
+ }
42
+ }, [disabled, hasSubmenu, isInSubmenu, onClick, setOpen]);
43
+ var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, rest), { disabled: disabled, onPress: onInvoke }));
44
+ var keys = isSubmenu ? submenuTriggerKeys : triggerKeys;
45
+ // Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
46
+ var onKeyDownProps = interactive_hooks_1.useKeyDownProps.apply(void 0, (0, tslib_1.__spreadArray)([onInvoke], keys, false));
19
47
  var hasCheckmarks = (0, menuListContext_1.useMenuListContext)().hasCheckmarks;
20
48
  return {
21
- props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || props.onClick, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: !disabled, ref: componentRef }), onKeyProps),
49
+ props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || onInvoke, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: true, ref: componentRef }), onKeyDownProps),
22
50
  state: pressable.state,
23
51
  hasSubmenu: hasSubmenu,
24
52
  hasCheckmarks: hasCheckmarks,
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAAuF;AACvF,sDAAwD;AACxD,8DAAgE;AAChE,oEAAsE;AAE/D,IAAM,WAAW,GAAG,UAAC,KAAoB;IAC9C,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,uBAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,IAAA,kCAAc,kDAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,SAAS,GAAG,IAAA,0CAAqB,GAAE,CAAC;IAC1C,IAAM,UAAU,GAAG,IAAA,4BAAc,GAAE,CAAC,SAAS,IAAI,SAAS,CAAC;IAC3D,IAAM,aAAa,GAAG,IAAA,oCAAkB,GAAE,CAAC,aAAa,CAAC;IAEzD,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,UAAU,YAAA;QACV,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,WAAW,eA2BtB;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ exports.MenuItemCheckbox = (0, framework_1.compose)((0, tslib_1.__assign)((0, ts
16
16
  content: experimental_text_1.Text,
17
17
  }, useRender: function (userProps, useSlots) {
18
18
  var menuItem = (0, useMenuItemCheckbox_1.useMenuItemCheckbox)(userProps);
19
- var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
19
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer] || userProps[layer]; });
20
20
  return (0, exports.menuItemFinalRender)(menuItem, Slots);
21
21
  } }));
22
22
  var menuItemFinalRender = function (menuItem, Slots) {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,qDAA0C;AAC1C,8DAAmG;AACnG,8EAAgE;AAChE,mEAMkC;AAClC,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,yBAAM;QACjB,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEI,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;YACzB,2BAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
1
+ {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,qDAA0C;AAC1C,8DAAmG;AACnG,8EAAgE;AAChE,mEAMkC;AAClC,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,yBAAM;QACjB,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAEjG,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEI,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;YACzB,2BAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAclE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBAwDF,CAAC"}
1
+ {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAgBlE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBA0DF,CAAC"}
@@ -9,13 +9,15 @@ var menuListContext_1 = require("../context/menuListContext");
9
9
  var defaultAccessibilityActions = [{ name: 'Toggle' }];
10
10
  var useMenuItemCheckbox = function (props) {
11
11
  var _a;
12
- var name = props.name;
12
+ var disabled = props.disabled, name = props.name;
13
13
  var context = (0, menuListContext_1.useMenuListContext)();
14
14
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
15
15
  var onCheckedChange = context.onCheckedChange;
16
16
  var toggleChecked = React.useCallback(function (e) {
17
- onCheckedChange(e, name, !checked);
18
- }, [checked, name, onCheckedChange]);
17
+ if (!disabled) {
18
+ onCheckedChange(e, name, !checked);
19
+ }
20
+ }, [checked, disabled, name, onCheckedChange]);
19
21
  return (0, exports.useMenuCheckboxInteraction)(props, toggleChecked);
20
22
  };
21
23
  exports.useMenuItemCheckbox = useMenuItemCheckbox;
@@ -48,14 +50,16 @@ var useMenuCheckboxInteraction = function (props, toggleCallback) {
48
50
  var accessibilityActionsProp = accessibilityActions
49
51
  ? (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], defaultAccessibilityActions, true), accessibilityActions, true) : defaultAccessibilityActions;
50
52
  var onAccessibilityActionProp = React.useCallback(function (event) {
51
- if (event.nativeEvent.actionName === 'Toggle') {
52
- toggleCallback(event);
53
+ if (!disabled) {
54
+ if (event.nativeEvent.actionName === 'Toggle') {
55
+ toggleCallback(event);
56
+ }
57
+ onAccessibilityAction && onAccessibilityAction(event);
53
58
  }
54
- onAccessibilityAction && onAccessibilityAction(event);
55
- }, [toggleCallback, onAccessibilityAction]);
59
+ }, [disabled, toggleCallback, onAccessibilityAction]);
56
60
  var state = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.state), { disabled: !!props.disabled, checked: checked });
57
61
  return {
58
- props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: !disabled, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
62
+ props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel || props.content, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: true, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
59
63
  state: state,
60
64
  };
61
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAc/D,CAAC"}
1
+ {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAgB/D,CAAC"}
@@ -7,13 +7,15 @@ var menuListContext_1 = require("../context/menuListContext");
7
7
  var useMenuItemCheckbox_1 = require("../MenuItemCheckbox/useMenuItemCheckbox");
8
8
  var useMenuItemRadio = function (props) {
9
9
  var _a;
10
- var name = props.name;
10
+ var disabled = props.disabled, name = props.name;
11
11
  var context = (0, menuListContext_1.useMenuListContext)();
12
12
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
13
13
  var selectRadio = context.selectRadio;
14
14
  var toggleChecked = React.useCallback(function (e) {
15
- selectRadio(e, name, !checked);
16
- }, [checked, name, selectRadio]);
15
+ if (!disabled) {
16
+ selectRadio(e, name, !checked);
17
+ }
18
+ }, [checked, disabled, name, selectRadio]);
17
19
  return (0, useMenuItemCheckbox_1.useMenuCheckboxInteraction)(props, toggleChecked);
18
20
  };
19
21
  exports.useMenuItemRadio = useMenuItemRadio;
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAE/B,8DAAgE;AAEhE,+EAAqF;AAE9E,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAC7B,CAAC;IAEF,OAAO,IAAA,gDAA0B,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
1
+ {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAE/B,8DAAgE;AAEhE,+EAAqF;AAE9E,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,QAAQ,GAAW,KAAK,SAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IACjC,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,IAAI,CAAC,QAAQ,EAAE;YACb,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;SAChC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CACvC,CAAC;IAEF,OAAO,IAAA,gDAA0B,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AAhBW,QAAA,gBAAgB,oBAgB3B"}