Outlook_Addin_LLM/node_modules/@fluentui/react-breadcrumb/lib-commonjs/utils/partitionBreadcrumbItems.js

44 lines
1.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "partitionBreadcrumbItems", {
enumerable: true,
get: function() {
return partitionBreadcrumbItems;
}
});
const DEFAULT_OVERFLOW_INDEX = 1;
const DEFAULT_MAX_DISPLAYED_ITEMS = 6;
const partitionBreadcrumbItems = (options)=>{
let startDisplayedItems;
let overflowItems;
let endDisplayedItems;
const { items = [] } = options;
const itemsCount = items.length;
const maxDisplayedItems = getMaxDisplayedItems(options.maxDisplayedItems);
var _options_overflowIndex;
let overflowIndex = (_options_overflowIndex = options.overflowIndex) !== null && _options_overflowIndex !== void 0 ? _options_overflowIndex : DEFAULT_OVERFLOW_INDEX;
startDisplayedItems = items.slice(0, overflowIndex);
const numberItemsToHide = itemsCount - maxDisplayedItems;
if (numberItemsToHide > 0) {
overflowIndex = overflowIndex >= maxDisplayedItems ? maxDisplayedItems - 1 : overflowIndex;
const menuLastItemIdx = overflowIndex + numberItemsToHide;
startDisplayedItems = startDisplayedItems.slice(0, overflowIndex);
overflowItems = items.slice(overflowIndex, menuLastItemIdx);
if (menuLastItemIdx < itemsCount) {
endDisplayedItems = items.slice(menuLastItemIdx, itemsCount);
}
} else if (overflowIndex < itemsCount) {
endDisplayedItems = items.slice(overflowIndex, itemsCount);
}
return {
startDisplayedItems,
overflowItems,
endDisplayedItems
};
};
function getMaxDisplayedItems(maxDisplayedItems) {
return maxDisplayedItems && maxDisplayedItems >= 0 ? maxDisplayedItems : DEFAULT_MAX_DISPLAYED_ITEMS;
}