diff options
Diffstat (limited to 'popperjs/package/lib/utils/mergeByName.js')
-rw-r--r-- | popperjs/package/lib/utils/mergeByName.js | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/popperjs/package/lib/utils/mergeByName.js b/popperjs/package/lib/utils/mergeByName.js new file mode 100644 index 0000000..35f508a --- /dev/null +++ b/popperjs/package/lib/utils/mergeByName.js @@ -0,0 +1,14 @@ +export default function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); +}
\ No newline at end of file |