mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-11-10 17:13:38 +08:00
e7180a86ce
This also allowed to remove all webpack 'externals' overhead.
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
import { KeyState, Magics } from 'Common/Enums';
|
|
|
|
import { popup } from 'Knoin/Knoin';
|
|
import { AbstractViewNext } from 'Knoin/AbstractViewNext';
|
|
|
|
@popup({
|
|
name: 'View/Popup/KeyboardShortcutsHelp',
|
|
templateID: 'PopupsKeyboardShortcutsHelp'
|
|
})
|
|
class KeyboardShortcutsHelpPopupView extends AbstractViewNext {
|
|
constructor() {
|
|
super();
|
|
this.sDefaultKeyScope = KeyState.PopupKeyboardShortcutsHelp;
|
|
}
|
|
|
|
onBuild(dom) {
|
|
var t;
|
|
key(
|
|
'tab, shift+tab, left, right',
|
|
KeyState.PopupKeyboardShortcutsHelp,
|
|
(event, handler)=>{
|
|
// throttle
|
|
if (!t) {
|
|
t = setTimeout(()=>{
|
|
t = 0;
|
|
if (event && handler) {
|
|
const $tabs = dom.find('.nav.nav-tabs > li'),
|
|
isNext = handler && ('tab' === handler.shortcut || 'right' === handler.shortcut);
|
|
|
|
let index = $tabs.index($tabs.filter('.active'));
|
|
if (!isNext && 0 < index) {
|
|
index -= 1;
|
|
} else if (isNext && index < $tabs.length - 1) {
|
|
index += 1;
|
|
} else {
|
|
index = isNext ? 0 : $tabs.length - 1;
|
|
}
|
|
|
|
$tabs
|
|
.eq(index)
|
|
.find('a[data-toggle="tab"]')
|
|
.tab('show');
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}, Magics.Time100ms);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
export { KeyboardShortcutsHelpPopupView, KeyboardShortcutsHelpPopupView as default };
|