dash_class.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import _ from 'lodash';
  2. import coreModule from '../core_module';
  3. /** @ngInject */
  4. function dashClass($timeout) {
  5. return {
  6. link: ($scope, elem) => {
  7. $scope.ctrl.dashboard.events.on('view-mode-changed', panel => {
  8. console.log('view-mode-changed', panel.fullscreen);
  9. if (panel.fullscreen) {
  10. elem.addClass('panel-in-fullscreen');
  11. } else {
  12. $timeout(() => {
  13. elem.removeClass('panel-in-fullscreen');
  14. });
  15. }
  16. });
  17. elem.toggleClass('panel-in-fullscreen', $scope.ctrl.dashboard.meta.fullscreen === true);
  18. $scope.$watch('ctrl.dashboardViewState.state.editview', newValue => {
  19. if (newValue) {
  20. elem.toggleClass('dashboard-page--settings-opening', _.isString(newValue));
  21. setTimeout(() => {
  22. elem.toggleClass('dashboard-page--settings-open', _.isString(newValue));
  23. }, 10);
  24. } else {
  25. elem.removeClass('dashboard-page--settings-opening');
  26. elem.removeClass('dashboard-page--settings-open');
  27. }
  28. });
  29. },
  30. };
  31. }
  32. coreModule.directive('dashClass', dashClass);