///
import $ from 'jquery';
import angular from 'angular';
import {coreModule} from 'app/core/core';
var template = `
{{ctrl.panel.title | interpolateTemplateVars:this}}
{{ctrl.timeInfo}}
`;
function renderMenuItem(item, ctrl) {
let html = '';
let listItemClass = '';
if (item.divider) {
return '
';
}
if (item.submenu) {
listItemClass = 'dropdown-submenu';
}
html += ``;
html += `${item.text}`;
if (item.shortcut) {
html += ``;
}
html += ``;
if (item.submenu) {
html += '';
}
html += ``;
return html;
}
function createMenuTemplate(ctrl) {
let html = '';
for (let item of ctrl.getMenu()) {
html += renderMenuItem(item, ctrl);
}
return html;
}
/** @ngInject **/
function panelHeader($compile) {
return {
restrict: 'E',
template: template,
link: function(scope, elem, attrs) {
let menuElem = elem.find('.panel-menu');
let menuScope;
elem.click(function(evt) {
const targetClass = evt.target.className;
// remove existing scope
if (menuScope) {
menuScope.$destroy();
}
menuScope = scope.$new();
let menuHtml = createMenuTemplate(scope.ctrl);
console.log(menuHtml);
menuElem.html(menuHtml);
$compile(menuElem)(menuScope);
if (targetClass === 'panel-title-text drag-handle' || targetClass === 'panel-title drag-handle') {
evt.stopPropagation();
elem.find('[data-toggle=dropdown]').dropdown('toggle');
}
});
}
};
}
coreModule.directive('panelHeader', panelHeader);