@fluentui/react-menu 0.0.0-nightly-20230317-1454.1 → 0.0.0-nightly-20230322-0439.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.swcrc +2 -11
- package/CHANGELOG.json +116 -23
- package/CHANGELOG.md +36 -14
- package/lib/Menu.js +1 -1
- package/lib/MenuDivider.js +1 -1
- package/lib/MenuGroup.js +1 -1
- package/lib/MenuGroupHeader.js +1 -1
- package/lib/MenuItem.js +1 -1
- package/lib/MenuItemCheckbox.js +1 -1
- package/lib/MenuItemRadio.js +1 -1
- package/lib/MenuList.js +1 -1
- package/lib/MenuPopover.js +1 -1
- package/lib/MenuSplitGroup.js +1 -1
- package/lib/MenuTrigger.js +1 -1
- package/lib/components/Menu/Menu.js +5 -5
- package/lib/components/Menu/Menu.types.js +1 -1
- package/lib/components/Menu/index.js +5 -5
- package/lib/components/Menu/renderMenu.js +2 -2
- package/lib/components/Menu/useMenu.js +35 -28
- package/lib/components/Menu/useMenu.js.map +1 -1
- package/lib/components/MenuDivider/MenuDivider.js +6 -6
- package/lib/components/MenuDivider/index.js +5 -5
- package/lib/components/MenuDivider/renderMenuDivider.js +2 -2
- package/lib/components/MenuDivider/useMenuDivider.js +6 -6
- package/lib/components/MenuDivider/useMenuDividerStyles.js +3 -3
- package/lib/components/MenuGroup/MenuGroup.js +7 -7
- package/lib/components/MenuGroup/index.js +6 -6
- package/lib/components/MenuGroup/renderMenuGroup.js +3 -3
- package/lib/components/MenuGroup/useMenuGroup.js +7 -7
- package/lib/components/MenuGroup/useMenuGroupContextValues.js +1 -1
- package/lib/components/MenuGroup/useMenuGroupStyles.js +2 -2
- package/lib/components/MenuGroupHeader/MenuGroupHeader.js +6 -6
- package/lib/components/MenuGroupHeader/index.js +5 -5
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +2 -2
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +5 -5
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +3 -3
- package/lib/components/MenuItem/MenuItem.js +6 -6
- package/lib/components/MenuItem/index.js +5 -5
- package/lib/components/MenuItem/renderMenuItem.js +2 -2
- package/lib/components/MenuItem/useCharacterSearch.js +6 -5
- package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
- package/lib/components/MenuItem/useMenuItem.js +27 -24
- package/lib/components/MenuItem/useMenuItem.js.map +1 -1
- package/lib/components/MenuItem/useMenuItemStyles.js +26 -13
- package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -1
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +6 -6
- package/lib/components/MenuItemCheckbox/index.js +5 -5
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +2 -2
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +12 -10
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +8 -8
- package/lib/components/MenuItemRadio/MenuItemRadio.js +6 -6
- package/lib/components/MenuItemRadio/index.js +5 -5
- package/lib/components/MenuItemRadio/renderMenuItemRadio.js +2 -2
- package/lib/components/MenuItemRadio/useMenuItemRadio.js +12 -10
- package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +8 -8
- package/lib/components/MenuList/MenuList.js +7 -7
- package/lib/components/MenuList/MenuList.types.js +1 -1
- package/lib/components/MenuList/index.js +6 -6
- package/lib/components/MenuList/renderMenuList.js +3 -3
- package/lib/components/MenuList/useMenuList.js +24 -19
- package/lib/components/MenuList/useMenuList.js.map +1 -1
- package/lib/components/MenuList/useMenuListStyles.js +2 -2
- package/lib/components/MenuPopover/MenuPopover.js +6 -6
- package/lib/components/MenuPopover/index.js +5 -5
- package/lib/components/MenuPopover/renderMenuPopover.js +3 -3
- package/lib/components/MenuPopover/useMenuPopover.js +21 -19
- package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/components/MenuPopover/useMenuPopoverStyles.js +3 -3
- package/lib/components/MenuSplitGroup/MenuSplitGroup.js +6 -6
- package/lib/components/MenuSplitGroup/index.js +5 -5
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +2 -2
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +13 -12
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +4 -4
- package/lib/components/MenuTrigger/MenuTrigger.js +4 -4
- package/lib/components/MenuTrigger/MenuTrigger.types.js +1 -1
- package/lib/components/MenuTrigger/index.js +4 -4
- package/lib/components/MenuTrigger/renderMenuTrigger.js +2 -2
- package/lib/components/MenuTrigger/useMenuTrigger.js +29 -29
- package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/components/index.js +2 -2
- package/lib/contexts/menuContext.js +3 -3
- package/lib/contexts/menuGroupContext.js +4 -3
- package/lib/contexts/menuGroupContext.js.map +1 -1
- package/lib/contexts/menuListContext.js +2 -2
- package/lib/contexts/menuTriggerContext.js +3 -2
- package/lib/contexts/menuTriggerContext.js.map +1 -1
- package/lib/index.js +16 -16
- package/lib/selectable/index.js +2 -2
- package/lib/selectable/types.js +1 -1
- package/lib/selectable/useCheckmarkStyles.js +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/useIsSubmenu.js +3 -3
- package/lib/utils/useOnMenuEnter.js +6 -5
- package/lib/utils/useOnMenuEnter.js.map +1 -1
- package/lib-commonjs/Menu.js.map +1 -1
- package/lib-commonjs/MenuDivider.js.map +1 -1
- package/lib-commonjs/MenuGroup.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/MenuItem.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuList.js.map +1 -1
- package/lib-commonjs/MenuPopover.js.map +1 -1
- package/lib-commonjs/MenuSplitGroup.js.map +1 -1
- package/lib-commonjs/MenuTrigger.js.map +1 -1
- package/lib-commonjs/components/Menu/Menu.js +1 -1
- package/lib-commonjs/components/Menu/Menu.js.map +1 -1
- package/lib-commonjs/components/Menu/Menu.types.js.map +1 -1
- package/lib-commonjs/components/Menu/index.js.map +1 -1
- package/lib-commonjs/components/Menu/renderMenu.js.map +1 -1
- package/lib-commonjs/components/Menu/useMenu.js +31 -25
- package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/MenuDivider.js +1 -1
- package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/index.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js +4 -4
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/MenuGroup.js +1 -1
- package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/index.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js +5 -5
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +1 -1
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +2 -2
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItem/MenuItem.js +1 -1
- package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/index.js.map +1 -1
- package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js +4 -3
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useMenuItem.js +17 -14
- package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +38 -8
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +7 -5
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +5 -5
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +1 -1
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +7 -5
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +5 -5
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
- package/lib-commonjs/components/MenuList/MenuList.js +1 -1
- package/lib-commonjs/components/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -1
- package/lib-commonjs/components/MenuList/index.js.map +1 -1
- package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuList.js +20 -15
- package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuListStyles.js +1 -1
- package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/MenuPopover.js +1 -1
- package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/index.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js +14 -12
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +1 -1
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +8 -7
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +2 -2
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/index.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +21 -21
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/components/index.js.map +1 -1
- package/lib-commonjs/contexts/menuContext.js +1 -1
- package/lib-commonjs/contexts/menuContext.js.map +1 -1
- package/lib-commonjs/contexts/menuGroupContext.js +3 -2
- package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
- package/lib-commonjs/contexts/menuListContext.js.map +1 -1
- package/lib-commonjs/contexts/menuTriggerContext.js +2 -1
- package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/selectable/index.js.map +1 -1
- package/lib-commonjs/selectable/types.js.map +1 -1
- package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -1
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/useIsSubmenu.js.map +1 -1
- package/lib-commonjs/utils/useOnMenuEnter.js +3 -2
- package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -1
- package/package.json +13 -12
|
@@ -16,15 +16,16 @@ const useMenuItemCheckbox_unstable = (props, ref)=>{
|
|
|
16
16
|
const toggleCheckbox = (0, _menuListContext.useMenuListContext_unstable)((context)=>context.toggleCheckbox);
|
|
17
17
|
const { name , value } = props;
|
|
18
18
|
const checked = (0, _menuListContext.useMenuListContext_unstable)((context)=>{
|
|
19
|
-
|
|
19
|
+
var _context_checkedValues;
|
|
20
|
+
const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];
|
|
20
21
|
return checkedItems.indexOf(value) !== -1;
|
|
21
22
|
});
|
|
22
23
|
const state = {
|
|
23
24
|
...(0, _useMenuItem.useMenuItem_unstable)({
|
|
24
|
-
role:
|
|
25
|
+
role: 'menuitemcheckbox',
|
|
25
26
|
persistOnClick: true,
|
|
26
27
|
...props,
|
|
27
|
-
|
|
28
|
+
'aria-checked': checked,
|
|
28
29
|
checkmark: (0, _reactUtilities.resolveShorthand)(props.checkmark, {
|
|
29
30
|
defaultProps: {
|
|
30
31
|
children: /*#__PURE__*/ _react.createElement(_reactIcons.Checkmark16Filled, null)
|
|
@@ -32,8 +33,9 @@ const useMenuItemCheckbox_unstable = (props, ref)=>{
|
|
|
32
33
|
required: true
|
|
33
34
|
}),
|
|
34
35
|
onClick: (e)=>{
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
var _props_onClick;
|
|
37
|
+
toggleCheckbox === null || toggleCheckbox === void 0 ? void 0 : toggleCheckbox(e, name, value, checked);
|
|
38
|
+
(_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);
|
|
37
39
|
}
|
|
38
40
|
}, ref),
|
|
39
41
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemCheckbox/useMenuItemCheckbox.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemCheckbox/useMenuItemCheckbox.js"],"sourcesContent":["import * as React from 'react';\nimport { resolveShorthand } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\n/** Returns the props and state required to render the component */\nexport const useMenuItemCheckbox_unstable = (props, ref) => {\n const toggleCheckbox = useMenuListContext_unstable(context => context.toggleCheckbox);\n const {\n name,\n value\n } = props;\n const checked = useMenuListContext_unstable(context => {\n var _context_checkedValues;\n const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];\n return checkedItems.indexOf(value) !== -1;\n });\n const state = {\n ...useMenuItem_unstable({\n role: 'menuitemcheckbox',\n persistOnClick: true,\n ...props,\n 'aria-checked': checked,\n checkmark: resolveShorthand(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/React.createElement(Checkmark16Filled, null)\n },\n required: true\n }),\n onClick: e => {\n var _props_onClick;\n toggleCheckbox === null || toggleCheckbox === void 0 ? void 0 : toggleCheckbox(e, name, value, checked);\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);\n }\n }, ref),\n name,\n value,\n checked\n };\n return state;\n};\n//# sourceMappingURL=useMenuItemCheckbox.js.map"],"names":["useMenuItemCheckbox_unstable","props","ref","toggleCheckbox","useMenuListContext_unstable","context","name","value","checked","_context_checkedValues","checkedItems","checkedValues","indexOf","state","useMenuItem_unstable","role","persistOnClick","checkmark","resolveShorthand","defaultProps","children","React","createElement","Checkmark16Filled","required","onClick","e","_props_onClick","call"],"mappings":";;;;+BAMaA;;aAAAA;;;6DANU;gCACU;4BACC;iCACU;6BACP;AAE9B,MAAMA,+BAA+B,CAACC,OAAOC,MAAQ;IAC1D,MAAMC,iBAAiBC,IAAAA,4CAA2B,EAACC,CAAAA,UAAWA,QAAQF,cAAc;IACpF,MAAM,EACJG,KAAI,EACJC,MAAK,EACN,GAAGN;IACJ,MAAMO,UAAUJ,IAAAA,4CAA2B,EAACC,CAAAA,UAAW;QACrD,IAAII;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBJ,QAAQM,aAAa,AAAD,MAAO,IAAI,IAAIF,2BAA2B,KAAK,IAAI,KAAK,IAAIA,sBAAsB,CAACH,KAAK,AAAD,KAAM,EAAE;QACnK,OAAOI,aAAaE,OAAO,CAACL,WAAW,CAAC;IAC1C;IACA,MAAMM,QAAQ;QACZ,GAAGC,IAAAA,iCAAoB,EAAC;YACtBC,MAAM;YACNC,gBAAgB,IAAI;YACpB,GAAGf,KAAK;YACR,gBAAgBO;YAChBS,WAAWC,IAAAA,gCAAgB,EAACjB,MAAMgB,SAAS,EAAE;gBAC3CE,cAAc;oBACZC,UAAU,WAAW,GAAEC,OAAMC,aAAa,CAACC,6BAAiB,EAAE,IAAI;gBACpE;gBACAC,UAAU,IAAI;YAChB;YACAC,SAASC,CAAAA,IAAK;gBACZ,IAAIC;gBACJxB,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeuB,GAAGpB,MAAMC,OAAOC,QAAQ;gBACtGmB,CAAAA,iBAAiB1B,MAAMwB,OAAO,AAAD,MAAO,IAAI,IAAIE,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeC,IAAI,CAAC3B,OAAOyB,EAAE;YACjH;QACF,GAAGxB,IAAI;QACPI;QACAC;QACAC;IACF;IACA,OAAOK;AACT,GACA,+CAA+C"}
|
|
@@ -16,11 +16,11 @@ const _react = require("@griffel/react");
|
|
|
16
16
|
const _index = require("../../selectable/index");
|
|
17
17
|
const _useMenuItemStyles = require("../MenuItem/useMenuItemStyles");
|
|
18
18
|
const menuItemCheckboxClassNames = {
|
|
19
|
-
root:
|
|
20
|
-
icon:
|
|
21
|
-
checkmark:
|
|
22
|
-
content:
|
|
23
|
-
secondaryContent:
|
|
19
|
+
root: 'fui-MenuItemCheckbox',
|
|
20
|
+
icon: 'fui-MenuItemCheckbox__icon',
|
|
21
|
+
checkmark: 'fui-MenuItemCheckbox__checkmark',
|
|
22
|
+
content: 'fui-MenuItemCheckbox__content',
|
|
23
|
+
secondaryContent: 'fui-MenuItemCheckbox__secondaryContent'
|
|
24
24
|
};
|
|
25
25
|
const useMenuItemCheckboxStyles_unstable = (state)=>{
|
|
26
26
|
state.root.className = (0, _react.mergeClasses)(menuItemCheckboxClassNames.root, state.root.className);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js"],"sourcesContent":["import { mergeClasses } from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js"],"sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles';\nexport const menuItemCheckboxClassNames = {\n root: 'fui-MenuItemCheckbox',\n icon: 'fui-MenuItemCheckbox__icon',\n checkmark: 'fui-MenuItemCheckbox__checkmark',\n content: 'fui-MenuItemCheckbox__content',\n secondaryContent: 'fui-MenuItemCheckbox__secondaryContent'\n};\nexport const useMenuItemCheckboxStyles_unstable = state => {\n state.root.className = mergeClasses(menuItemCheckboxClassNames.root, state.root.className);\n if (state.content) {\n state.content.className = mergeClasses(menuItemCheckboxClassNames.content, state.content.className);\n }\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(menuItemCheckboxClassNames.secondaryContent, state.secondaryContent.className);\n }\n if (state.icon) {\n state.icon.className = mergeClasses(menuItemCheckboxClassNames.icon, state.icon.className);\n }\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(menuItemCheckboxClassNames.checkmark, state.checkmark.className);\n }\n useMenuItemStyles_unstable(state);\n useCheckmarkStyles_unstable(state);\n};\n//# sourceMappingURL=useMenuItemCheckboxStyles.js.map"],"names":["menuItemCheckboxClassNames","useMenuItemCheckboxStyles_unstable","root","icon","checkmark","content","secondaryContent","state","className","mergeClasses","useMenuItemStyles_unstable","useCheckmarkStyles_unstable"],"mappings":";;;;;;;;;;;IAGaA,0BAA0B,MAA1BA;IAOAC,kCAAkC,MAAlCA;;uBAVgB;uBACe;mCACD;AACpC,MAAMD,6BAA6B;IACxCE,MAAM;IACNC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,kBAAkB;AACpB;AACO,MAAML,qCAAqCM,CAAAA,QAAS;IACzDA,MAAML,IAAI,CAACM,SAAS,GAAGC,IAAAA,mBAAY,EAACT,2BAA2BE,IAAI,EAAEK,MAAML,IAAI,CAACM,SAAS;IACzF,IAAID,MAAMF,OAAO,EAAE;QACjBE,MAAMF,OAAO,CAACG,SAAS,GAAGC,IAAAA,mBAAY,EAACT,2BAA2BK,OAAO,EAAEE,MAAMF,OAAO,CAACG,SAAS;IACpG,CAAC;IACD,IAAID,MAAMD,gBAAgB,EAAE;QAC1BC,MAAMD,gBAAgB,CAACE,SAAS,GAAGC,IAAAA,mBAAY,EAACT,2BAA2BM,gBAAgB,EAAEC,MAAMD,gBAAgB,CAACE,SAAS;IAC/H,CAAC;IACD,IAAID,MAAMJ,IAAI,EAAE;QACdI,MAAMJ,IAAI,CAACK,SAAS,GAAGC,IAAAA,mBAAY,EAACT,2BAA2BG,IAAI,EAAEI,MAAMJ,IAAI,CAACK,SAAS;IAC3F,CAAC;IACD,IAAID,MAAMH,SAAS,EAAE;QACnBG,MAAMH,SAAS,CAACI,SAAS,GAAGC,IAAAA,mBAAY,EAACT,2BAA2BI,SAAS,EAAEG,MAAMH,SAAS,CAACI,SAAS;IAC1G,CAAC;IACDE,IAAAA,6CAA0B,EAACH;IAC3BI,IAAAA,kCAA2B,EAACJ;AAC9B,GACA,qDAAqD"}
|
|
@@ -19,6 +19,6 @@ const MenuItemRadio = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
|
|
|
19
19
|
useCustomStyles(state);
|
|
20
20
|
return (0, _renderMenuItemRadio.renderMenuItemRadio_unstable)(state);
|
|
21
21
|
});
|
|
22
|
-
MenuItemRadio.displayName =
|
|
22
|
+
MenuItemRadio.displayName = 'MenuItemRadio'; //# sourceMappingURL=MenuItemRadio.js.map
|
|
23
23
|
|
|
24
24
|
//# sourceMappingURL=MenuItemRadio.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemRadio/MenuItemRadio.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemRadio/MenuItemRadio.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuItemRadio_unstable } from './useMenuItemRadio';\nimport { renderMenuItemRadio_unstable } from './renderMenuItemRadio';\nimport { useMenuItemRadioStyles_unstable } from './useMenuItemRadioStyles';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Define a styled MenuItemRadio, using the `useMenuItemRadio_unstable` hook.\n */\nexport const MenuItemRadio = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useMenuItemRadio_unstable(props, ref);\n useMenuItemRadioStyles_unstable(state);\n const {\n useMenuItemRadioStyles_unstable: useCustomStyles\n } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n return renderMenuItemRadio_unstable(state);\n});\nMenuItemRadio.displayName = 'MenuItemRadio';\n//# sourceMappingURL=MenuItemRadio.js.map"],"names":["MenuItemRadio","React","forwardRef","props","ref","state","useMenuItemRadio_unstable","useMenuItemRadioStyles_unstable","useCustomStyles","useCustomStyleHooks_unstable","renderMenuItemRadio_unstable","displayName"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;kCACmB;qCACG;wCACG;qCACH;AAItC,MAAMA,gBAAgB,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACzE,MAAMC,QAAQC,IAAAA,2CAAyB,EAACH,OAAOC;IAC/CG,IAAAA,uDAA+B,EAACF;IAChC,MAAM,EACJE,iCAAiCC,gBAAe,EACjD,GAAGC,IAAAA,iDAA4B;IAChCD,gBAAgBH;IAChB,OAAOK,IAAAA,iDAA4B,EAACL;AACtC;AACAL,cAAcW,WAAW,GAAG,iBAC5B,yCAAyC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemRadio/index.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemRadio/index.js"],"sourcesContent":["export * from './MenuItemRadio.types';\nexport * from './MenuItemRadio';\nexport * from './renderMenuItemRadio';\nexport * from './useMenuItemRadio';\nexport * from './useMenuItemRadioStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemRadio/renderMenuItemRadio.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemRadio/renderMenuItemRadio.js"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\n/**\n * Redefine the render function to add slots. Reuse the menuitemradio structure but add\n * slots to children.\n */\nexport const renderMenuItemRadio_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n return /*#__PURE__*/React.createElement(slots.root, slotProps.root, slots.checkmark && /*#__PURE__*/React.createElement(slots.checkmark, slotProps.checkmark), slots.icon && /*#__PURE__*/React.createElement(slots.icon, slotProps.icon), slots.content && /*#__PURE__*/React.createElement(slots.content, slotProps.content), slots.secondaryContent && /*#__PURE__*/React.createElement(slots.secondaryContent, slotProps.secondaryContent));\n};\n//# sourceMappingURL=renderMenuItemRadio.js.map"],"names":["renderMenuItemRadio_unstable","state","slots","slotProps","getSlots","React","createElement","root","checkmark","icon","content","secondaryContent"],"mappings":";;;;+BAMaA;;aAAAA;;;6DANU;gCACE;AAKlB,MAAMA,+BAA+BC,CAAAA,QAAS;IACnD,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACH;IACb,OAAO,WAAW,GAAEI,OAAMC,aAAa,CAACJ,MAAMK,IAAI,EAAEJ,UAAUI,IAAI,EAAEL,MAAMM,SAAS,IAAI,WAAW,GAAEH,OAAMC,aAAa,CAACJ,MAAMM,SAAS,EAAEL,UAAUK,SAAS,GAAGN,MAAMO,IAAI,IAAI,WAAW,GAAEJ,OAAMC,aAAa,CAACJ,MAAMO,IAAI,EAAEN,UAAUM,IAAI,GAAGP,MAAMQ,OAAO,IAAI,WAAW,GAAEL,OAAMC,aAAa,CAACJ,MAAMQ,OAAO,EAAEP,UAAUO,OAAO,GAAGR,MAAMS,gBAAgB,IAAI,WAAW,GAAEN,OAAMC,aAAa,CAACJ,MAAMS,gBAAgB,EAAER,UAAUQ,gBAAgB;AAC/a,GACA,+CAA+C"}
|
|
@@ -15,15 +15,16 @@ const _useMenuItem = require("../MenuItem/useMenuItem");
|
|
|
15
15
|
const useMenuItemRadio_unstable = (props, ref)=>{
|
|
16
16
|
const { name , value } = props;
|
|
17
17
|
const checked = (0, _menuListContext.useMenuListContext_unstable)((context)=>{
|
|
18
|
-
|
|
18
|
+
var _context_checkedValues;
|
|
19
|
+
const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];
|
|
19
20
|
return checkedItems.indexOf(value) !== -1;
|
|
20
21
|
});
|
|
21
22
|
const selectRadio = (0, _menuListContext.useMenuListContext_unstable)((context)=>context.selectRadio);
|
|
22
23
|
return {
|
|
23
24
|
...(0, _useMenuItem.useMenuItem_unstable)({
|
|
24
25
|
...props,
|
|
25
|
-
role:
|
|
26
|
-
|
|
26
|
+
role: 'menuitemradio',
|
|
27
|
+
'aria-checked': checked,
|
|
27
28
|
checkmark: (0, _reactUtilities.resolveShorthand)(props.checkmark, {
|
|
28
29
|
defaultProps: {
|
|
29
30
|
children: /*#__PURE__*/ _react.createElement(_reactIcons.Checkmark16Filled, null)
|
|
@@ -31,8 +32,9 @@ const useMenuItemRadio_unstable = (props, ref)=>{
|
|
|
31
32
|
required: true
|
|
32
33
|
}),
|
|
33
34
|
onClick: (e)=>{
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
var _props_onClick;
|
|
36
|
+
selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, name, value, checked);
|
|
37
|
+
(_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);
|
|
36
38
|
}
|
|
37
39
|
}, ref),
|
|
38
40
|
checked,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemRadio/useMenuItemRadio.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemRadio/useMenuItemRadio.js"],"sourcesContent":["import * as React from 'react';\nimport { resolveShorthand } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\n/**\n * Given user props, returns state and render function for a MenuItemRadio.\n */\nexport const useMenuItemRadio_unstable = (props, ref) => {\n const {\n name,\n value\n } = props;\n const checked = useMenuListContext_unstable(context => {\n var _context_checkedValues;\n const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];\n return checkedItems.indexOf(value) !== -1;\n });\n const selectRadio = useMenuListContext_unstable(context => context.selectRadio);\n return {\n ...useMenuItem_unstable({\n ...props,\n role: 'menuitemradio',\n 'aria-checked': checked,\n checkmark: resolveShorthand(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/React.createElement(Checkmark16Filled, null)\n },\n required: true\n }),\n onClick: e => {\n var _props_onClick;\n selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, name, value, checked);\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);\n }\n }, ref),\n checked,\n name,\n value\n };\n};\n//# sourceMappingURL=useMenuItemRadio.js.map"],"names":["useMenuItemRadio_unstable","props","ref","name","value","checked","useMenuListContext_unstable","context","_context_checkedValues","checkedItems","checkedValues","indexOf","selectRadio","useMenuItem_unstable","role","checkmark","resolveShorthand","defaultProps","children","React","createElement","Checkmark16Filled","required","onClick","e","_props_onClick","call"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;gCACU;4BACC;iCACU;6BACP;AAI9B,MAAMA,4BAA4B,CAACC,OAAOC,MAAQ;IACvD,MAAM,EACJC,KAAI,EACJC,MAAK,EACN,GAAGH;IACJ,MAAMI,UAAUC,IAAAA,4CAA2B,EAACC,CAAAA,UAAW;QACrD,IAAIC;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBD,QAAQG,aAAa,AAAD,MAAO,IAAI,IAAIF,2BAA2B,KAAK,IAAI,KAAK,IAAIA,sBAAsB,CAACL,KAAK,AAAD,KAAM,EAAE;QACnK,OAAOM,aAAaE,OAAO,CAACP,WAAW,CAAC;IAC1C;IACA,MAAMQ,cAAcN,IAAAA,4CAA2B,EAACC,CAAAA,UAAWA,QAAQK,WAAW;IAC9E,OAAO;QACL,GAAGC,IAAAA,iCAAoB,EAAC;YACtB,GAAGZ,KAAK;YACRa,MAAM;YACN,gBAAgBT;YAChBU,WAAWC,IAAAA,gCAAgB,EAACf,MAAMc,SAAS,EAAE;gBAC3CE,cAAc;oBACZC,UAAU,WAAW,GAAEC,OAAMC,aAAa,CAACC,6BAAiB,EAAE,IAAI;gBACpE;gBACAC,UAAU,IAAI;YAChB;YACAC,SAASC,CAAAA,IAAK;gBACZ,IAAIC;gBACJb,gBAAgB,IAAI,IAAIA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYY,GAAGrB,MAAMC,OAAOC,QAAQ;gBAC7FoB,CAAAA,iBAAiBxB,MAAMsB,OAAO,AAAD,MAAO,IAAI,IAAIE,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeC,IAAI,CAACzB,OAAOuB,EAAE;YACjH;QACF,GAAGtB,IAAI;QACPG;QACAF;QACAC;IACF;AACF,GACA,4CAA4C"}
|
|
@@ -16,11 +16,11 @@ const _react = require("@griffel/react");
|
|
|
16
16
|
const _index = require("../../selectable/index");
|
|
17
17
|
const _useMenuItemStyles = require("../MenuItem/useMenuItemStyles");
|
|
18
18
|
const menuItemRadioClassNames = {
|
|
19
|
-
root:
|
|
20
|
-
icon:
|
|
21
|
-
checkmark:
|
|
22
|
-
content:
|
|
23
|
-
secondaryContent:
|
|
19
|
+
root: 'fui-MenuItemRadio',
|
|
20
|
+
icon: 'fui-MenuItemRadio__icon',
|
|
21
|
+
checkmark: 'fui-MenuItemRadio__checkmark',
|
|
22
|
+
content: 'fui-MenuItemRadio__content',
|
|
23
|
+
secondaryContent: 'fui-MenuItemRadio__secondaryContent'
|
|
24
24
|
};
|
|
25
25
|
const useMenuItemRadioStyles_unstable = (state)=>{
|
|
26
26
|
state.root.className = (0, _react.mergeClasses)(menuItemRadioClassNames.root, state.root.className);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuItemRadio/useMenuItemRadioStyles.js"],"sourcesContent":["import { mergeClasses } from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuItemRadio/useMenuItemRadioStyles.js"],"sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles';\nexport const menuItemRadioClassNames = {\n root: 'fui-MenuItemRadio',\n icon: 'fui-MenuItemRadio__icon',\n checkmark: 'fui-MenuItemRadio__checkmark',\n content: 'fui-MenuItemRadio__content',\n secondaryContent: 'fui-MenuItemRadio__secondaryContent'\n};\nexport const useMenuItemRadioStyles_unstable = state => {\n state.root.className = mergeClasses(menuItemRadioClassNames.root, state.root.className);\n if (state.content) {\n state.content.className = mergeClasses(menuItemRadioClassNames.content, state.content.className);\n }\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(menuItemRadioClassNames.secondaryContent, state.secondaryContent.className);\n }\n if (state.icon) {\n state.icon.className = mergeClasses(menuItemRadioClassNames.icon, state.icon.className);\n }\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(menuItemRadioClassNames.checkmark, state.checkmark.className);\n }\n useMenuItemStyles_unstable(state);\n useCheckmarkStyles_unstable(state);\n};\n//# sourceMappingURL=useMenuItemRadioStyles.js.map"],"names":["menuItemRadioClassNames","useMenuItemRadioStyles_unstable","root","icon","checkmark","content","secondaryContent","state","className","mergeClasses","useMenuItemStyles_unstable","useCheckmarkStyles_unstable"],"mappings":";;;;;;;;;;;IAGaA,uBAAuB,MAAvBA;IAOAC,+BAA+B,MAA/BA;;uBAVgB;uBACe;mCACD;AACpC,MAAMD,0BAA0B;IACrCE,MAAM;IACNC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,kBAAkB;AACpB;AACO,MAAML,kCAAkCM,CAAAA,QAAS;IACtDA,MAAML,IAAI,CAACM,SAAS,GAAGC,IAAAA,mBAAY,EAACT,wBAAwBE,IAAI,EAAEK,MAAML,IAAI,CAACM,SAAS;IACtF,IAAID,MAAMF,OAAO,EAAE;QACjBE,MAAMF,OAAO,CAACG,SAAS,GAAGC,IAAAA,mBAAY,EAACT,wBAAwBK,OAAO,EAAEE,MAAMF,OAAO,CAACG,SAAS;IACjG,CAAC;IACD,IAAID,MAAMD,gBAAgB,EAAE;QAC1BC,MAAMD,gBAAgB,CAACE,SAAS,GAAGC,IAAAA,mBAAY,EAACT,wBAAwBM,gBAAgB,EAAEC,MAAMD,gBAAgB,CAACE,SAAS;IAC5H,CAAC;IACD,IAAID,MAAMJ,IAAI,EAAE;QACdI,MAAMJ,IAAI,CAACK,SAAS,GAAGC,IAAAA,mBAAY,EAACT,wBAAwBG,IAAI,EAAEI,MAAMJ,IAAI,CAACK,SAAS;IACxF,CAAC;IACD,IAAID,MAAMH,SAAS,EAAE;QACnBG,MAAMH,SAAS,CAACI,SAAS,GAAGC,IAAAA,mBAAY,EAACT,wBAAwBI,SAAS,EAAEG,MAAMH,SAAS,CAACI,SAAS;IACvG,CAAC;IACDE,IAAAA,6CAA0B,EAACH;IAC3BI,IAAAA,kCAA2B,EAACJ;AAC9B,GACA,kDAAkD"}
|
|
@@ -21,6 +21,6 @@ const MenuList = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
|
|
|
21
21
|
useCustomStyles(state);
|
|
22
22
|
return (0, _renderMenuList.renderMenuList_unstable)(state, contextValues);
|
|
23
23
|
});
|
|
24
|
-
MenuList.displayName =
|
|
24
|
+
MenuList.displayName = 'MenuList'; //# sourceMappingURL=MenuList.js.map
|
|
25
25
|
|
|
26
26
|
//# sourceMappingURL=MenuList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuList/MenuList.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuList/MenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuList_unstable } from './useMenuList';\nimport { renderMenuList_unstable } from './renderMenuList';\nimport { useMenuListContextValues_unstable } from './useMenuListContextValues';\nimport { useMenuListStyles_unstable } from './useMenuListStyles';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Define a styled MenuList, using the `useMenuList_unstable` hook.\n */\nexport const MenuList = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useMenuList_unstable(props, ref);\n const contextValues = useMenuListContextValues_unstable(state);\n useMenuListStyles_unstable(state);\n const {\n useMenuListStyles_unstable: useCustomStyles\n } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n return renderMenuList_unstable(state, contextValues);\n});\nMenuList.displayName = 'MenuList';\n//# sourceMappingURL=MenuList.js.map"],"names":["MenuList","React","forwardRef","props","ref","state","useMenuList_unstable","contextValues","useMenuListContextValues_unstable","useMenuListStyles_unstable","useCustomStyles","useCustomStyleHooks_unstable","renderMenuList_unstable","displayName"],"mappings":";;;;+BASaA;;aAAAA;;;6DATU;6BACc;gCACG;0CACU;mCACP;qCACE;AAItC,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACpE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1C,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACH;IACxDI,IAAAA,6CAA0B,EAACJ;IAC3B,MAAM,EACJI,4BAA4BC,gBAAe,EAC5C,GAAGC,IAAAA,iDAA4B;IAChCD,gBAAgBL;IAChB,OAAOO,IAAAA,uCAAuB,EAACP,OAAOE;AACxC;AACAP,SAASa,WAAW,GAAG,YACvB,oCAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuList/MenuList.types.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuList/MenuList.types.js"],"sourcesContent":["import * as React from 'react';\n//# sourceMappingURL=MenuList.types.js.map"],"names":[],"mappings":";;;;;6DAAuB;CACvB,0CAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuList/index.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuList/index.js"],"sourcesContent":["export * from './MenuList';\nexport * from './MenuList.types';\nexport * from './renderMenuList';\nexport * from './useMenuList';\nexport * from './useMenuListStyles';\nexport * from './useMenuListContextValues';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuList/renderMenuList.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuList/renderMenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderMenuList_unstable = (state, contextValues) => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n return /*#__PURE__*/React.createElement(MenuListProvider, {\n value: contextValues.menuList\n }, /*#__PURE__*/React.createElement(slots.root, slotProps.root));\n};\n//# sourceMappingURL=renderMenuList.js.map"],"names":["renderMenuList_unstable","state","contextValues","slots","slotProps","getSlots","React","createElement","MenuListProvider","value","menuList","root"],"mappings":";;;;+BAMaA;;aAAAA;;;6DANU;gCACE;iCACQ;AAI1B,MAAMA,0BAA0B,CAACC,OAAOC,gBAAkB;IAC/D,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACJ;IACb,OAAO,WAAW,GAAEK,OAAMC,aAAa,CAACC,iCAAgB,EAAE;QACxDC,OAAOP,cAAcQ,QAAQ;IAC/B,GAAG,WAAW,GAAEJ,OAAMC,aAAa,CAACJ,MAAMQ,IAAI,EAAEP,UAAUO,IAAI;AAChE,GACA,0CAA0C"}
|
|
@@ -25,25 +25,28 @@ const useMenuList_unstable = (props, ref)=>{
|
|
|
25
25
|
if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
|
|
26
26
|
// TODO throw warnings in development safely
|
|
27
27
|
// eslint-disable-next-line no-console
|
|
28
|
-
console.warn(
|
|
28
|
+
console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
|
|
29
29
|
}
|
|
30
30
|
const innerRef = _react.useRef(null);
|
|
31
31
|
const setFocusByFirstCharacter = _react.useCallback((e, itemEl)=>{
|
|
32
32
|
// TODO use some kind of children registration to reduce dependency on DOM roles
|
|
33
33
|
const acceptedRoles = [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
'menuitem',
|
|
35
|
+
'menuitemcheckbox',
|
|
36
|
+
'menuitemradio'
|
|
37
37
|
];
|
|
38
38
|
if (!innerRef.current) {
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
const menuItems = findAllFocusable(innerRef.current, (el)=>el.hasAttribute(
|
|
41
|
+
const menuItems = findAllFocusable(innerRef.current, (el)=>el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
|
|
42
42
|
let startIndex = menuItems.indexOf(itemEl) + 1;
|
|
43
43
|
if (startIndex === menuItems.length) {
|
|
44
44
|
startIndex = 0;
|
|
45
45
|
}
|
|
46
|
-
const firstChars = menuItems.map((menuItem)=>
|
|
46
|
+
const firstChars = menuItems.map((menuItem)=>{
|
|
47
|
+
var _menuItem_textContent;
|
|
48
|
+
return (_menuItem_textContent = menuItem.textContent) === null || _menuItem_textContent === void 0 ? void 0 : _menuItem_textContent.charAt(0).toLowerCase();
|
|
49
|
+
});
|
|
47
50
|
const char = e.key.toLowerCase();
|
|
48
51
|
const getIndexFirstChars = (start, firstChar)=>{
|
|
49
52
|
for(let i = start; i < firstChars.length; i++){
|
|
@@ -66,14 +69,16 @@ const useMenuList_unstable = (props, ref)=>{
|
|
|
66
69
|
}, [
|
|
67
70
|
findAllFocusable
|
|
68
71
|
]);
|
|
72
|
+
var _props_checkedValues;
|
|
69
73
|
const [checkedValues, setCheckedValues] = (0, _reactUtilities.useControllableState)({
|
|
70
|
-
state: props.checkedValues
|
|
74
|
+
state: (_props_checkedValues = props.checkedValues) !== null && _props_checkedValues !== void 0 ? _props_checkedValues : hasMenuContext ? menuContext.checkedValues : undefined,
|
|
71
75
|
defaultState: props.defaultCheckedValues,
|
|
72
76
|
initialState: {}
|
|
73
77
|
});
|
|
74
|
-
|
|
78
|
+
var _props_onCheckedValueChange;
|
|
79
|
+
const handleCheckedValueChange = (_props_onCheckedValueChange = props.onCheckedValueChange) !== null && _props_onCheckedValueChange !== void 0 ? _props_onCheckedValueChange : hasMenuContext ? menuContext.onCheckedValueChange : undefined;
|
|
75
80
|
const toggleCheckbox = (0, _reactUtilities.useEventCallback)((e, name, value, checked)=>{
|
|
76
|
-
const checkedItems = checkedValues
|
|
81
|
+
const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
|
|
77
82
|
const newCheckedItems = [
|
|
78
83
|
...checkedItems
|
|
79
84
|
];
|
|
@@ -82,7 +87,7 @@ const useMenuList_unstable = (props, ref)=>{
|
|
|
82
87
|
} else {
|
|
83
88
|
newCheckedItems.push(value);
|
|
84
89
|
}
|
|
85
|
-
handleCheckedValueChange
|
|
90
|
+
handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
|
|
86
91
|
name,
|
|
87
92
|
checkedItems: newCheckedItems
|
|
88
93
|
});
|
|
@@ -99,19 +104,19 @@ const useMenuList_unstable = (props, ref)=>{
|
|
|
99
104
|
...s,
|
|
100
105
|
[name]: newCheckedItems
|
|
101
106
|
}));
|
|
102
|
-
handleCheckedValueChange
|
|
107
|
+
handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
|
|
103
108
|
name,
|
|
104
109
|
checkedItems: newCheckedItems
|
|
105
110
|
});
|
|
106
111
|
});
|
|
107
112
|
return {
|
|
108
113
|
components: {
|
|
109
|
-
root:
|
|
114
|
+
root: 'div'
|
|
110
115
|
},
|
|
111
|
-
root: (0, _reactUtilities.getNativeElementProps)(
|
|
116
|
+
root: (0, _reactUtilities.getNativeElementProps)('div', {
|
|
112
117
|
ref: (0, _reactUtilities.useMergedRefs)(ref, innerRef),
|
|
113
|
-
role:
|
|
114
|
-
|
|
118
|
+
role: 'menu',
|
|
119
|
+
'aria-labelledby': menuContext.triggerId,
|
|
115
120
|
...focusAttributes,
|
|
116
121
|
...props
|
|
117
122
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuList/useMenuList.js"],"sourcesContent":["import * as React from \"react\";\nimport { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } from \"@fluentui/react-utilities\";\nimport { useArrowNavigationGroup, useFocusFinders } from \"@fluentui/react-tabster\";\nimport { useHasParentContext } from \"@fluentui/react-context-selector\";\nimport { useMenuContext_unstable } from \"../../contexts/menuContext\";\nimport { MenuContext } from \"../../contexts/menuContext\";\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props, ref) => {\n const {\n findAllFocusable\n } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n ignoreDefaultKeydown: {\n Tab: hasMenuContext\n }\n });\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn(\"You are using both MenuList and Menu props, we recommend you to use Menu props when available\");\n }\n const innerRef = React.useRef(null);\n const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = [\"menuitem\", \"menuitemcheckbox\", \"menuitemradio\"];\n if (!innerRef.current) {\n return;\n }\n const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute(\"role\") && acceptedRoles.indexOf(el.getAttribute(\"role\")) !== -1);\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = e.key.toLowerCase();\n const getIndexFirstChars = (start, firstChar) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n }, [findAllFocusable]);\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n const handleCheckedValueChange = props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);\n const toggleCheckbox = useEventCallback((e, name, value, checked) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n handleCheckedValueChange?.(e, {\n name,\n checkedItems: newCheckedItems\n });\n setCheckedValues(s => ({\n ...s,\n [name]: newCheckedItems\n }));\n });\n const selectRadio = useEventCallback((e, name, value) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({\n ...s,\n [name]: newCheckedItems\n }));\n handleCheckedValueChange?.(e, {\n name,\n checkedItems: newCheckedItems\n });\n });\n return {\n components: {\n root: \"div\"\n },\n root: getNativeElementProps(\"div\", {\n ref: useMergedRefs(ref, innerRef),\n role: \"menu\",\n \"aria-labelledby\": menuContext.triggerId,\n ...focusAttributes,\n ...props\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox\n };\n};\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks\n };\n};\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val]) {\n isUsingPropsAndContext = true;\n }\n }\n return hasMenuContext && isUsingPropsAndContext;\n};\n//# sourceMappingURL=useMenuList.js.map"],"names":["useMenuList_unstable","props","ref","findAllFocusable","useFocusFinders","menuContext","useMenuContextSelectors","hasMenuContext","useHasParentContext","MenuContext","focusAttributes","useArrowNavigationGroup","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","React","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","checkedValues","setCheckedValues","useControllableState","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","useEventCallback","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","getNativeElementProps","useMergedRefs","role","triggerId","hasIcons","hasCheckmarks","useMenuContext_unstable","context","contextValue","isUsingPropsAndContext","val"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuList/useMenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props, ref) => {\n const {\n findAllFocusable\n } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n ignoreDefaultKeydown: {\n Tab: hasMenuContext\n }\n });\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n const innerRef = React.useRef(null);\n const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n const firstChars = menuItems.map(menuItem => {\n var _menuItem_textContent;\n return (_menuItem_textContent = menuItem.textContent) === null || _menuItem_textContent === void 0 ? void 0 : _menuItem_textContent.charAt(0).toLowerCase();\n });\n const char = e.key.toLowerCase();\n const getIndexFirstChars = (start, firstChar) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n }, [findAllFocusable]);\n var _props_checkedValues;\n const [checkedValues, setCheckedValues] = useControllableState({\n state: (_props_checkedValues = props.checkedValues) !== null && _props_checkedValues !== void 0 ? _props_checkedValues : hasMenuContext ? menuContext.checkedValues : undefined,\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n var _props_onCheckedValueChange;\n const handleCheckedValueChange = (_props_onCheckedValueChange = props.onCheckedValueChange) !== null && _props_onCheckedValueChange !== void 0 ? _props_onCheckedValueChange : hasMenuContext ? menuContext.onCheckedValueChange : undefined;\n const toggleCheckbox = useEventCallback((e, name, value, checked) => {\n const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n setCheckedValues(s => ({\n ...s,\n [name]: newCheckedItems\n }));\n });\n const selectRadio = useEventCallback((e, name, value) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({\n ...s,\n [name]: newCheckedItems\n }));\n handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n });\n return {\n components: {\n root: 'div'\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox\n };\n};\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks\n };\n};\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val]) {\n isUsingPropsAndContext = true;\n }\n }\n return hasMenuContext && isUsingPropsAndContext;\n};\n//# sourceMappingURL=useMenuList.js.map"],"names":["useMenuList_unstable","props","ref","findAllFocusable","useFocusFinders","menuContext","useMenuContextSelectors","hasMenuContext","useHasParentContext","MenuContext","focusAttributes","useArrowNavigationGroup","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","React","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","_menuItem_textContent","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","_props_checkedValues","checkedValues","setCheckedValues","useControllableState","state","undefined","defaultState","defaultCheckedValues","initialState","_props_onCheckedValueChange","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","useEventCallback","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","getNativeElementProps","useMergedRefs","role","triggerId","hasIcons","hasCheckmarks","useMenuContext_unstable","context","contextValue","isUsingPropsAndContext","val"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuList/useMenuListStyles.js"],"sourcesContent":["import { mergeClasses, __styles, shorthands } from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuList/useMenuListStyles.js"],"sourcesContent":["import { mergeClasses, __styles, shorthands } from '@griffel/react';\nexport const menuListClassNames = {\n root: 'fui-MenuList'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n i8kkvl: \"f16mnhsx\",\n Belr9w4: \"fbi42co\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}\", \".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}\", \".fbi42co{row-gap:2px;}\"]\n});\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuListStyles.js.map"],"names":["menuListClassNames","useMenuListStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","d","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IACaA,kBAAkB,MAAlBA;IAgBAC,0BAA0B,MAA1BA;;uBAjBsC;AAC5C,MAAMD,qBAAqB;IAChCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAA6F;QAAqD;KAAyB;AACzQ;AAIO,MAAMR,6BAA6BS,CAAAA,QAAS;IACjD,MAAMC,SAASR;IACfO,MAAMR,IAAI,CAACU,SAAS,GAAGC,IAAAA,mBAAY,EAACb,mBAAmBE,IAAI,EAAES,OAAOT,IAAI,EAAEQ,MAAMR,IAAI,CAACU,SAAS;IAC9F,OAAOF;AACT,GACA,6CAA6C"}
|
|
@@ -19,6 +19,6 @@ const MenuPopover = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
|
|
|
19
19
|
useCustomStyles(state);
|
|
20
20
|
return (0, _renderMenuPopover.renderMenuPopover_unstable)(state);
|
|
21
21
|
});
|
|
22
|
-
MenuPopover.displayName =
|
|
22
|
+
MenuPopover.displayName = 'MenuPopover'; //# sourceMappingURL=MenuPopover.js.map
|
|
23
23
|
|
|
24
24
|
//# sourceMappingURL=MenuPopover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuPopover/MenuPopover.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuPopover/MenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n useMenuPopoverStyles_unstable(state);\n const {\n useMenuPopoverStyles_unstable: useCustomStyles\n } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n return renderMenuPopover_unstable(state);\n});\nMenuPopover.displayName = 'MenuPopover';\n//# sourceMappingURL=MenuPopover.js.map"],"names":["MenuPopover","React","forwardRef","props","ref","state","useMenuPopover_unstable","useMenuPopoverStyles_unstable","useCustomStyles","useCustomStyleHooks_unstable","renderMenuPopover_unstable","displayName"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;gCACiB;sCACM;mCACH;qCACE;AAItC,MAAMA,cAAc,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACvE,MAAMC,QAAQC,IAAAA,uCAAuB,EAACH,OAAOC;IAC7CG,IAAAA,mDAA6B,EAACF;IAC9B,MAAM,EACJE,+BAA+BC,gBAAe,EAC/C,GAAGC,IAAAA,iDAA4B;IAChCD,gBAAgBH;IAChB,OAAOK,IAAAA,6CAA0B,EAACL;AACpC;AACAL,YAAYW,WAAW,GAAG,eAC1B,uCAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuPopover/index.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuPopover/index.js"],"sourcesContent":["export * from './MenuPopover';\nexport * from './MenuPopover.types';\nexport * from './renderMenuPopover';\nexport * from './useMenuPopover';\nexport * from './useMenuPopoverStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuPopover/renderMenuPopover.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuPopover/renderMenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { Portal } from '@fluentui/react-portal';\n/**\n * Render the final JSX of MenuPopover\n */\nexport const renderMenuPopover_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n if (state.inline) {\n return /*#__PURE__*/React.createElement(slots.root, slotProps.root);\n }\n return /*#__PURE__*/React.createElement(Portal, {\n mountNode: state.mountNode\n }, /*#__PURE__*/React.createElement(slots.root, slotProps.root));\n};\n//# sourceMappingURL=renderMenuPopover.js.map"],"names":["renderMenuPopover_unstable","state","slots","slotProps","getSlots","inline","React","createElement","root","Portal","mountNode"],"mappings":";;;;+BAMaA;;aAAAA;;;6DANU;gCACE;6BACF;AAIhB,MAAMA,6BAA6BC,CAAAA,QAAS;IACjD,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACH;IACb,IAAIA,MAAMI,MAAM,EAAE;QAChB,OAAO,WAAW,GAAEC,OAAMC,aAAa,CAACL,MAAMM,IAAI,EAAEL,UAAUK,IAAI;IACpE,CAAC;IACD,OAAO,WAAW,GAAEF,OAAMC,aAAa,CAACE,mBAAM,EAAE;QAC9CC,WAAWT,MAAMS,SAAS;IAC5B,GAAG,WAAW,GAAEJ,OAAMC,aAAa,CAACL,MAAMM,IAAI,EAAEL,UAAUK,IAAI;AAChE,GACA,6CAA6C"}
|
|
@@ -23,7 +23,7 @@ const useMenuPopover_unstable = (props, ref)=>{
|
|
|
23
23
|
const canDispatchCustomEventRef = _react.useRef(true);
|
|
24
24
|
const throttleDispatchTimerRef = _react.useRef(0);
|
|
25
25
|
const { dir } = (0, _reactSharedContexts.useFluent_unstable)();
|
|
26
|
-
const CloseArrowKey = dir ===
|
|
26
|
+
const CloseArrowKey = dir === 'ltr' ? _keyboardKeys.ArrowLeft : _keyboardKeys.ArrowRight;
|
|
27
27
|
// use DOM listener since react events propagate up the react tree
|
|
28
28
|
// no need to do `contains` logic as menus are all positioned in different portals
|
|
29
29
|
const mouseOverListenerCallbackRef = _react.useCallback((node)=>{
|
|
@@ -31,7 +31,7 @@ const useMenuPopover_unstable = (props, ref)=>{
|
|
|
31
31
|
// Dispatches the custom menu mouse enter event with throttling
|
|
32
32
|
// Needs to trigger on mouseover to support keyboard + mouse together
|
|
33
33
|
// i.e. keyboard opens submenus while cursor is still on the parent
|
|
34
|
-
node.addEventListener(
|
|
34
|
+
node.addEventListener('mouseover', (e)=>{
|
|
35
35
|
if (canDispatchCustomEventRef.current) {
|
|
36
36
|
canDispatchCustomEventRef.current = false;
|
|
37
37
|
(0, _index.dispatchMenuEnterEvent)(popoverRef.current, e);
|
|
@@ -48,10 +48,11 @@ const useMenuPopover_unstable = (props, ref)=>{
|
|
|
48
48
|
_react.useEffect(()=>{
|
|
49
49
|
()=>clearTimeout(throttleDispatchTimerRef.current);
|
|
50
50
|
}, []);
|
|
51
|
-
|
|
51
|
+
var _useMenuContext_unstable;
|
|
52
|
+
const inline = (_useMenuContext_unstable = (0, _menuContext.useMenuContext_unstable)((context)=>context.inline)) !== null && _useMenuContext_unstable !== void 0 ? _useMenuContext_unstable : false;
|
|
52
53
|
const mountNode = (0, _menuContext.useMenuContext_unstable)((context)=>context.mountNode);
|
|
53
|
-
const rootProps = (0, _reactUtilities.getNativeElementProps)(
|
|
54
|
-
role:
|
|
54
|
+
const rootProps = (0, _reactUtilities.getNativeElementProps)('div', {
|
|
55
|
+
role: 'presentation',
|
|
55
56
|
...props,
|
|
56
57
|
ref: (0, _reactUtilities.useMergedRefs)(ref, popoverRef, mouseOverListenerCallbackRef)
|
|
57
58
|
});
|
|
@@ -61,20 +62,21 @@ const useMenuPopover_unstable = (props, ref)=>{
|
|
|
61
62
|
setOpen(event, {
|
|
62
63
|
open: true,
|
|
63
64
|
keyboard: false,
|
|
64
|
-
type:
|
|
65
|
+
type: 'menuPopoverMouseEnter',
|
|
65
66
|
event
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
|
-
onMouseEnterOriginal
|
|
69
|
+
onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);
|
|
69
70
|
});
|
|
70
71
|
rootProps.onKeyDown = (0, _reactUtilities.useEventCallback)((event)=>{
|
|
71
72
|
const key = event.key;
|
|
72
73
|
if (key === _keyboardKeys.Escape || isSubmenu && key === CloseArrowKey) {
|
|
73
|
-
|
|
74
|
+
var _popoverRef_current;
|
|
75
|
+
if (open && ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(event.target))) {
|
|
74
76
|
setOpen(event, {
|
|
75
77
|
open: false,
|
|
76
78
|
keyboard: true,
|
|
77
|
-
type:
|
|
79
|
+
type: 'menuPopoverKeyDown',
|
|
78
80
|
event
|
|
79
81
|
});
|
|
80
82
|
// stop propagation to avoid conflicting with other elements that listen for `Escape`
|
|
@@ -86,17 +88,17 @@ const useMenuPopover_unstable = (props, ref)=>{
|
|
|
86
88
|
setOpen(event, {
|
|
87
89
|
open: false,
|
|
88
90
|
keyboard: true,
|
|
89
|
-
type:
|
|
91
|
+
type: 'menuPopoverKeyDown',
|
|
90
92
|
event
|
|
91
93
|
});
|
|
92
94
|
}
|
|
93
|
-
onKeyDownOriginal
|
|
95
|
+
onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);
|
|
94
96
|
});
|
|
95
97
|
return {
|
|
96
98
|
inline,
|
|
97
99
|
mountNode,
|
|
98
100
|
components: {
|
|
99
|
-
root:
|
|
101
|
+
root: 'div'
|
|
100
102
|
},
|
|
101
103
|
root: rootProps
|
|
102
104
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuPopover/useMenuPopover.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuPopover/useMenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { dispatchMenuEnterEvent } from '../../utils/index';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopover_unstable = (props, ref) => {\n const popoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const isSubmenu = useIsSubmenu();\n const canDispatchCustomEventRef = React.useRef(true);\n const throttleDispatchTimerRef = React.useRef(0);\n const {\n dir\n } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback(node => {\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', e => {\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current, e);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore #16889 Node setTimeout type leaking\n throttleDispatchTimerRef.current = setTimeout(() => canDispatchCustomEventRef.current = true, 250);\n }\n });\n }\n }, [popoverRef, throttleDispatchTimerRef]);\n React.useEffect(() => {\n () => clearTimeout(throttleDispatchTimerRef.current);\n }, []);\n var _useMenuContext_unstable;\n const inline = (_useMenuContext_unstable = useMenuContext_unstable(context => context.inline)) !== null && _useMenuContext_unstable !== void 0 ? _useMenuContext_unstable : false;\n const mountNode = useMenuContext_unstable(context => context.mountNode);\n const rootProps = getNativeElementProps('div', {\n role: 'presentation',\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)\n });\n const {\n onMouseEnter: onMouseEnterOriginal,\n onKeyDown: onKeyDownOriginal\n } = rootProps;\n rootProps.onMouseEnter = useEventCallback(event => {\n if (openOnHover) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuPopoverMouseEnter',\n event\n });\n }\n onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);\n });\n rootProps.onKeyDown = useEventCallback(event => {\n const key = event.key;\n if (key === Escape || isSubmenu && key === CloseArrowKey) {\n var _popoverRef_current;\n if (open && ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(event.target))) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover and Tooltip\n event.stopPropagation();\n }\n }\n if (key === Tab) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n }\n onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);\n });\n return {\n inline,\n mountNode,\n components: {\n root: 'div'\n },\n root: rootProps\n };\n};\n//# sourceMappingURL=useMenuPopover.js.map"],"names":["useMenuPopover_unstable","props","ref","popoverRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","openOnHover","isSubmenu","useIsSubmenu","canDispatchCustomEventRef","React","useRef","throttleDispatchTimerRef","dir","useFluent","CloseArrowKey","ArrowLeft","ArrowRight","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","dispatchMenuEnterEvent","setTimeout","useEffect","clearTimeout","_useMenuContext_unstable","inline","mountNode","rootProps","getNativeElementProps","role","useMergedRefs","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","useEventCallback","event","keyboard","type","key","Escape","_popoverRef_current","contains","target","stopPropagation","Tab","components","root"],"mappings":"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"}
|