1 define([], function () {
4 angular.module('app.yangman').service('YangmanDesignService', YangmanDesignService);
6 YangmanDesignService.$inject = ['$timeout'];
8 function YangmanDesignService($timeout){
11 disableMdMenuItem: disableMdMenuItem,
12 enableMdMenuItem: enableMdMenuItem,
13 hideMainMenu: hideMainMenu,
14 setDraggableLeftPanel: setDraggableLeftPanel,
15 setJsonSplitter: setJsonSplitter,
16 setModuleDetailHeight: setModuleDetailHeight,
23 * Get button dom element from mdMenuItem ng-click $event
26 function getButtElemFromMdMenuItemEvent(event) {
27 var elemSelAttempt = angular.element(event.toElement.parentElement).find('.md-button'),
30 // if mdMenuItem was clicked, it should contain only one button
31 if (elemSelAttempt.length === 1) {
32 result = elemSelAttempt[0];
34 // if span or icon inside button was clicked, button element should be its parent
35 else if (elemSelAttempt.length === 0) {
36 result = angular.element(event.toElement.parentElement)[0];
39 if (result.nodeName === 'BUTTON') {
48 * Disable md menu item on which was clicked in event
49 * Use to prevent accidentally doubleclicking or enterhitting
50 * @param event - $event object from ng-click
52 function disableMdMenuItem(event) {
53 var buttElem = getButtElemFromMdMenuItemEvent(event);
55 buttElem.disabled = true;
61 * Disable md menu item on which was clicked in event
62 * Use to prevent accidentally doubleclicking or enterhitting
63 * @param event - $event object from ng-click
65 function enableMdMenuItem(event) {
66 var buttElem = getButtElemFromMdMenuItemEvent(event);
68 buttElem.disabled = false;
76 function hideMainMenu(){
77 $('#wrapper').addClass('toggled');
81 * Sets Draggable Left Side
84 function setDraggableLeftPanel(){
85 if (localStorage.getItem('yangman__left-panel-width') !== null) {
86 $('#left-panel').width(localStorage.getItem('yangman__left-panel-width'));
89 $('.ym-resizable-e').resizable({
92 stop: function(event, ui) {
93 if (typeof(Storage) !== 'undefined') {
94 localStorage.setItem('yangman__left-panel-width', ui.size.width);
98 setModuleDetailHeight();
103 function setJsonSplitter(cbk){
104 $timeout(function () {
105 $('.ym-resizable-s').resizable({
108 stop: function(event, ui) {
116 * Set module detail height
117 * .yangmanModule__module-detail .tabs
119 function setModuleDetailHeight() {
120 var height = 'calc(100% - ' + $('.yangmanModule__module-detail h4').outerHeight(true) + 'px)';
121 $('.yangmanModule__module-detail .tabs').css({ height: height });