| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import coreModule from 'app/core/core_module';
- import appEvents from 'app/core/app_events';
- export function pageScrollbar() {
- return {
- restrict: 'A',
- link: (scope, elem, attrs) => {
- let lastPos = 0;
- appEvents.on(
- 'dash-scroll',
- evt => {
- if (evt.restore) {
- elem[0].scrollTop = lastPos;
- return;
- }
- lastPos = elem[0].scrollTop;
- if (evt.animate) {
- elem.animate({ scrollTop: evt.pos }, 500);
- } else {
- elem[0].scrollTop = evt.pos;
- }
- },
- scope
- );
- scope.$on('$routeChangeSuccess', () => {
- lastPos = 0;
- elem[0].scrollTop = 0;
- // Focus page to enable scrolling by keyboard
- elem[0].focus({ preventScroll: true });
- });
- elem[0].tabIndex = -1;
- // Focus page to enable scrolling by keyboard
- elem[0].focus({ preventScroll: true });
- },
- };
- }
- coreModule.directive('pageScrollbar', pageScrollbar);
|