1 | import _extends from "@babel/runtime/helpers/esm/extends";
|
2 | export function toModifierMap(modifiers) {
|
3 | var result = {};
|
4 |
|
5 | if (!Array.isArray(modifiers)) {
|
6 | return modifiers || result;
|
7 | }
|
8 |
|
9 |
|
10 | modifiers == null ? void 0 : modifiers.forEach(function (m) {
|
11 | result[m.name] = m;
|
12 | });
|
13 | return result;
|
14 | }
|
15 | export 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 | }
|
26 | export 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 |