mgJsComponentHandler.addDefaultComponent('mg-dropdawn-btn-wrapper', { template : '#t-mg-dropdawn-btn-wrapper', props: [ 'component_id', 'component_namespace', 'component_index' ], data : function() { return { dropOpen: false }; }, created: function () { }, methods: { toogleDropdawn: function(event) { var self = this; self.dropOpen = !self.dropOpen; }, hideDrop :function(event){ var self = this; self.dropOpen = false; self.$nextTick(function() { var clickedEl = document.elementFromPoint(event.clientX, event.clientY); if (!$(clickedEl).hasClass('mg-drop-target-btn') && $(clickedEl).parents('.mg-drop-target-btn').length === 0) { $(clickedEl).click(); } }); }, notHideDrop: function(event){ event.preventDefault(); event.stopPropagation(); var self = this; self.dropOpen = true; }, loadModal: function(event, targetId, namespace, index){ mgPageControler.vueLoader.loadModal(event, targetId, typeof namespace !== 'undefined' ? namespace : getItemNamespace(targetId), typeof index !== 'undefined' ? index : getItemIndex(targetId)); }, makeCustomAction : function(functionName, params, event, namespace, index) { mgPageControler.vueLoader.makeCustomAction(functionName, params, event, namespace, index); }, redirect : function (event, params, targetBlank) { mgPageControler.vueLoader.redirect(event, params, targetBlank); } } });