Outlook_Addin_LLM/node_modules/@fluentui/react-overflow/lib-commonjs/components/Overflow.js

66 lines
2.8 KiB
JavaScript
Raw Normal View History

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Overflow", {
enumerable: true,
get: function() {
return Overflow;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _react1 = require("@griffel/react");
const _reactutilities = require("@fluentui/react-utilities");
const _overflowContext = require("../overflowContext");
const _useOverflowContainer = require("../useOverflowContainer");
const _useOverflowStylesstyles = require("./useOverflowStyles.styles");
const Overflow = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const styles = (0, _useOverflowStylesstyles.useOverflowStyles)();
const { children, minimumVisible, overflowAxis = 'horizontal', overflowDirection, padding } = props;
const [overflowState, setOverflowState] = _react.useState({
hasOverflow: false,
itemVisibility: {},
groupVisibility: {}
});
// useOverflowContainer wraps this method in a useEventCallback.
const update = (data)=>{
const { visibleItems, invisibleItems, groupVisibility } = data;
const itemVisibility = {};
visibleItems.forEach((item)=>{
itemVisibility[item.id] = true;
});
invisibleItems.forEach((x)=>itemVisibility[x.id] = false);
setOverflowState(()=>{
return {
hasOverflow: data.invisibleItems.length > 0,
itemVisibility,
groupVisibility
};
});
};
const { containerRef, registerItem, updateOverflow, registerOverflowMenu, registerDivider } = (0, _useOverflowContainer.useOverflowContainer)(update, {
overflowDirection,
overflowAxis,
padding,
minimumVisible,
onUpdateItemVisibility: _useOverflowContainer.updateVisibilityAttribute
});
const child = (0, _reactutilities.getTriggerChild)(children);
const clonedChild = (0, _reactutilities.applyTriggerPropsToChildren)(children, {
ref: (0, _reactutilities.useMergedRefs)(containerRef, ref, child === null || child === void 0 ? void 0 : child.ref),
className: (0, _react1.mergeClasses)('fui-Overflow', styles.overflowMenu, styles.overflowingItems, children.props.className)
});
return /*#__PURE__*/ _react.createElement(_overflowContext.OverflowContext.Provider, {
value: {
itemVisibility: overflowState.itemVisibility,
groupVisibility: overflowState.groupVisibility,
hasOverflow: overflowState.hasOverflow,
registerItem,
updateOverflow,
registerOverflowMenu,
registerDivider
}
}, clonedChild);
});