UNPKG

2.31 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2export function toModifierMap(modifiers) {
3 var result = {};
4
5 if (!Array.isArray(modifiers)) {
6 return modifiers || result;
7 } // eslint-disable-next-line no-unused-expressions
8
9
10 modifiers == null ? void 0 : modifiers.forEach(function (m) {
11 result[m.name] = m;
12 });
13 return result;
14}
15export function toModifierArray(map) {
16 if (map === void 0) {
17 map = {};
18 }
19
20 if (Array.isArray(map)) return map;
21 return Object.keys(map).map(function (k) {
22 map[k].name = k;
23 return map[k];
24 });
25}
26export default function mergeOptionsWithPopperConfig(_ref) {
27 var _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;
28
29 var enabled = _ref.enabled,
30 enableEvents = _ref.enableEvents,
31 placement = _ref.placement,
32 flip = _ref.flip,
33 offset = _ref.offset,
34 fixed = _ref.fixed,
35 containerPadding = _ref.containerPadding,
36 arrowElement = _ref.arrowElement,
37 _ref$popperConfig = _ref.popperConfig,
38 popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig;
39 var modifiers = toModifierMap(popperConfig.modifiers);
40 return _extends({}, popperConfig, {
41 placement: placement,
42 enabled: enabled,
43 strategy: fixed ? 'fixed' : popperConfig.strategy,
44 modifiers: toModifierArray(_extends({}, modifiers, {
45 eventListeners: {
46 enabled: enableEvents
47 },
48 preventOverflow: _extends({}, modifiers.preventOverflow, {
49 options: containerPadding ? _extends({
50 padding: containerPadding
51 }, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options
52 }),
53 offset: {
54 options: _extends({
55 offset: offset
56 }, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)
57 },
58 arrow: _extends({}, modifiers.arrow, {
59 enabled: !!arrowElement,
60 options: _extends({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {
61 element: arrowElement
62 })
63 }),
64 flip: _extends({
65 enabled: !!flip
66 }, modifiers.flip)
67 }))
68 });
69}
\No newline at end of file