outline-controller.js 1018 B

123456789101112131415161718192021222324252627282930313233
  1. import App from '../../../base'
  2. import OutlinePane from '../components/outline-pane'
  3. import { react2angular } from 'react2angular'
  4. App.controller('OutlineController', function($scope, ide, eventTracking) {
  5. $scope.isTexFile = false
  6. $scope.outline = []
  7. $scope.eventTracking = eventTracking
  8. $scope.$on('outline-manager:outline-changed', onOutlineChange)
  9. function onOutlineChange(e, outlineInfo) {
  10. $scope.$applyAsync(() => {
  11. $scope.isTexFile = outlineInfo.isTexFile
  12. $scope.outline = outlineInfo.outline
  13. $scope.highlightedLine = outlineInfo.highlightedLine
  14. })
  15. }
  16. $scope.jumpToLine = (lineNo, syncToPdf) => {
  17. ide.outlineManager.jumpToLine(lineNo, syncToPdf)
  18. eventTracking.sendMB('outline-jump-to-line')
  19. }
  20. $scope.onToggle = isOpen => {
  21. $scope.$applyAsync(() => {
  22. $scope.$emit('outline-toggled', isOpen)
  23. })
  24. }
  25. })
  26. // Wrap React component as Angular component. Only needed for "top-level" component
  27. App.component('outlinePane', react2angular(OutlinePane))