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)
|
||
|
};
|
||
|
};
|