!function(e,n){"function"==typeof define&&define.amd?define("ComponentManager",[],n):"object"==typeof exports?module.exports=n():e.ComponentManager=n()}(this,function(){var e={},n=null,t=function(n){n.forEach(function(n){[].slice.call(n.addedNodes).forEach(function(n){n.tagName&&[].slice.call(n.querySelectorAll("[data-component-name]")).sort(function(n,t){return e[n.getAttribute("data-component-name")].priority>e[t.getAttribute("data-component-name")].priority?1:-1}).forEach(function(n){var t=n.getAttribute("data-component-name");e[t]&&e[t].onAdd(n)})}),[].slice.call(n.removedNodes).forEach(function(n){n.tagName&&[].slice.call(n.querySelectorAll("[data-component-name]")).forEach(function(n){var t=n.getAttribute("data-component-name");e[t]&&e[t].onRemove(n)})})})},o=function(n,t,o,a){return!e[n]&&(e[n]={onAdd:t,onRemove:o||function(){},priority:a||100},!0)};return{init:function(){n=new MutationObserver(t),n.observe(document.body,{childList:!0,subtree:!0})},register:o,shutdown:function(){n&&n.disconnect()}}});