137 lines
5.2 KiB
JavaScript
137 lines
5.2 KiB
JavaScript
'use client';
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
useAvatarGroupPopoverBase_unstable: function() {
|
|
return useAvatarGroupPopoverBase_unstable;
|
|
},
|
|
useAvatarGroupPopover_unstable: function() {
|
|
return useAvatarGroupPopover_unstable;
|
|
}
|
|
});
|
|
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
const _AvatarGroupContext = require("../../contexts/AvatarGroupContext");
|
|
const _useAvatarGroup = require("../AvatarGroup/useAvatarGroup");
|
|
const _reactutilities = require("@fluentui/react-utilities");
|
|
const _reacticons = require("@fluentui/react-icons");
|
|
const _reactpopover = require("@fluentui/react-popover");
|
|
const _reacttooltip = require("@fluentui/react-tooltip");
|
|
const useAvatarGroupPopover_unstable = (props)=>{
|
|
var _useAvatarGroupContext_unstable;
|
|
const size = (_useAvatarGroupContext_unstable = (0, _AvatarGroupContext.useAvatarGroupContext_unstable)((ctx)=>ctx.size)) !== null && _useAvatarGroupContext_unstable !== void 0 ? _useAvatarGroupContext_unstable : _useAvatarGroup.defaultAvatarGroupSize;
|
|
const layout = (0, _AvatarGroupContext.useAvatarGroupContext_unstable)((ctx)=>ctx.layout);
|
|
const { indicator = size < 24 ? 'icon' : 'count', ...baseProps } = props;
|
|
const state = useAvatarGroupPopoverBase_unstable({
|
|
indicator,
|
|
...baseProps
|
|
});
|
|
if (layout === 'pie') {
|
|
state.triggerButton.children = null;
|
|
} else if (indicator === 'icon') {
|
|
state.triggerButton.children = /*#__PURE__*/ _react.createElement(_reacticons.MoreHorizontalRegular, null);
|
|
}
|
|
return {
|
|
size,
|
|
...state,
|
|
components: {
|
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
...state.components,
|
|
root: _reactpopover.Popover,
|
|
popoverSurface: _reactpopover.PopoverSurface,
|
|
tooltip: _reacttooltip.Tooltip
|
|
},
|
|
root: _reactutilities.slot.always(state.root, {
|
|
elementType: _reactpopover.Popover
|
|
}),
|
|
popoverSurface: _reactutilities.slot.always(props.popoverSurface, {
|
|
defaultProps: state.popoverSurface,
|
|
elementType: _reactpopover.PopoverSurface
|
|
}),
|
|
tooltip: _reactutilities.slot.always(props.tooltip, {
|
|
defaultProps: state.tooltip,
|
|
elementType: _reacttooltip.Tooltip
|
|
})
|
|
};
|
|
};
|
|
const useAvatarGroupPopoverBase_unstable = (props)=>{
|
|
const layout = (0, _AvatarGroupContext.useAvatarGroupContext_unstable)((ctx)=>ctx.layout);
|
|
const { indicator = 'count', count = _react.Children.count(props.children), children, ...restOfProps } = props;
|
|
const [popoverOpen, setPopoverOpen] = (0, _reactutilities.useControllableState)({
|
|
state: props.open,
|
|
defaultState: props.defaultOpen,
|
|
initialState: false
|
|
});
|
|
const handleOnPopoverChange = (e, data)=>{
|
|
var _restOfProps_onOpenChange;
|
|
(_restOfProps_onOpenChange = restOfProps.onOpenChange) === null || _restOfProps_onOpenChange === void 0 ? void 0 : _restOfProps_onOpenChange.call(restOfProps, e, data);
|
|
setPopoverOpen(data.open);
|
|
};
|
|
let triggerButtonChildren;
|
|
if (layout === 'pie') {
|
|
triggerButtonChildren = null;
|
|
} else if (indicator === 'count') {
|
|
triggerButtonChildren = count > 99 ? '99+' : `+${count}`;
|
|
}
|
|
return {
|
|
count,
|
|
indicator,
|
|
layout,
|
|
popoverOpen,
|
|
components: {
|
|
root: _reactpopover.Popover,
|
|
triggerButton: 'button',
|
|
content: 'ul',
|
|
popoverSurface: _reactpopover.PopoverSurface,
|
|
tooltip: _reacttooltip.Tooltip
|
|
},
|
|
root: _reactutilities.slot.always({
|
|
// Popover expects a child for its children. The children are added in the renderAvatarGroupPopover.
|
|
children: /*#__PURE__*/ _react.createElement(_react.Fragment, null),
|
|
size: 'small',
|
|
trapFocus: true,
|
|
...restOfProps,
|
|
open: popoverOpen,
|
|
onOpenChange: handleOnPopoverChange
|
|
}, {
|
|
elementType: 'div'
|
|
}),
|
|
triggerButton: _reactutilities.slot.always(props.triggerButton, {
|
|
defaultProps: {
|
|
children: triggerButtonChildren,
|
|
type: 'button'
|
|
},
|
|
elementType: 'button'
|
|
}),
|
|
content: _reactutilities.slot.always(props.content, {
|
|
defaultProps: {
|
|
children,
|
|
role: 'list'
|
|
},
|
|
elementType: 'ul'
|
|
}),
|
|
popoverSurface: _reactutilities.slot.always(props.popoverSurface, {
|
|
defaultProps: {
|
|
'aria-label': 'Overflow',
|
|
tabIndex: 0
|
|
},
|
|
elementType: 'div'
|
|
}),
|
|
tooltip: _reactutilities.slot.always(props.tooltip, {
|
|
defaultProps: {
|
|
content: 'View more people.',
|
|
relationship: 'label'
|
|
},
|
|
elementType: 'div'
|
|
})
|
|
};
|
|
};
|