GoScrobble/web/node_modules/react-overlays/cjs/mergeOptionsWithPopperConfig.js

81 lines
2.6 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.toModifierMap = toModifierMap;
exports.toModifierArray = toModifierArray;
exports["default"] = mergeOptionsWithPopperConfig;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
function toModifierMap(modifiers) {
var result = {};
if (!Array.isArray(modifiers)) {
return modifiers || result;
} // eslint-disable-next-line no-unused-expressions
modifiers == null ? void 0 : modifiers.forEach(function (m) {
result[m.name] = m;
});
return result;
}
function toModifierArray(map) {
if (map === void 0) {
map = {};
}
if (Array.isArray(map)) return map;
return Object.keys(map).map(function (k) {
map[k].name = k;
return map[k];
});
}
function mergeOptionsWithPopperConfig(_ref) {
var _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;
var enabled = _ref.enabled,
enableEvents = _ref.enableEvents,
placement = _ref.placement,
flip = _ref.flip,
offset = _ref.offset,
fixed = _ref.fixed,
containerPadding = _ref.containerPadding,
arrowElement = _ref.arrowElement,
_ref$popperConfig = _ref.popperConfig,
popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig;
var modifiers = toModifierMap(popperConfig.modifiers);
return (0, _extends2["default"])({}, popperConfig, {
placement: placement,
enabled: enabled,
strategy: fixed ? 'fixed' : popperConfig.strategy,
modifiers: toModifierArray((0, _extends2["default"])({}, modifiers, {
eventListeners: {
enabled: enableEvents
},
preventOverflow: (0, _extends2["default"])({}, modifiers.preventOverflow, {
options: containerPadding ? (0, _extends2["default"])({
padding: containerPadding
}, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options
}),
offset: {
options: (0, _extends2["default"])({
offset: offset
}, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)
},
arrow: (0, _extends2["default"])({}, modifiers.arrow, {
enabled: !!arrowElement,
options: (0, _extends2["default"])({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {
element: arrowElement
})
}),
flip: (0, _extends2["default"])({
enabled: !!flip
}, modifiers.flip)
}))
});
}