38 lines
1.8 KiB
JavaScript
38 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "devtoolsCallback", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return devtoolsCallback;
|
|
}
|
|
});
|
|
const _reactutilities = require("@fluentui/react-utilities");
|
|
const _listScrollParents = require("./listScrollParents");
|
|
const _fromFloatingUIPlacement = require("./fromFloatingUIPlacement");
|
|
const devtoolsCallback = (options)=>(middlewareState)=>{
|
|
const { elements: { floating, reference } } = middlewareState;
|
|
const scrollParentsSet = new Set();
|
|
if ((0, _reactutilities.isHTMLElement)(reference)) {
|
|
(0, _listScrollParents.listScrollParents)(reference).forEach((scrollParent)=>scrollParentsSet.add(scrollParent));
|
|
}
|
|
(0, _listScrollParents.listScrollParents)(floating).forEach((scrollParent)=>scrollParentsSet.add(scrollParent));
|
|
const flipBoundaries = Array.isArray(options.flipBoundary) ? options.flipBoundary : (0, _reactutilities.isHTMLElement)(options.flipBoundary) ? [
|
|
options.flipBoundary
|
|
] : [];
|
|
const overflowBoundaries = Array.isArray(options.overflowBoundary) ? options.overflowBoundary : (0, _reactutilities.isHTMLElement)(options.overflowBoundary) ? [
|
|
options.overflowBoundary
|
|
] : [];
|
|
return {
|
|
type: 'FluentUIMiddleware',
|
|
middlewareState,
|
|
options,
|
|
initialPlacement: (0, _fromFloatingUIPlacement.fromFloatingUIPlacement)(middlewareState.initialPlacement),
|
|
placement: (0, _fromFloatingUIPlacement.fromFloatingUIPlacement)(middlewareState.placement),
|
|
flipBoundaries,
|
|
overflowBoundaries,
|
|
scrollParents: Array.from(scrollParentsSet)
|
|
};
|
|
};
|