UNPKG

3.9 kBJavaScriptView Raw
1import "core-js/modules/es.object.to-string.js";
2import "core-js/modules/es.promise.js";
3import "regenerator-runtime/runtime.js";
4
5function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
6
7function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8
9import { ADDON_ID } from './constants';
10
11var getCurrentViewportIndex = function getCurrentViewportIndex(viewportsKeys, current) {
12 return viewportsKeys.indexOf(current);
13};
14
15var getNextViewport = function getNextViewport(viewportsKeys, current) {
16 var currentViewportIndex = getCurrentViewportIndex(viewportsKeys, current);
17 return currentViewportIndex === viewportsKeys.length - 1 ? viewportsKeys[0] : viewportsKeys[currentViewportIndex + 1];
18};
19
20var getPreviousViewport = function getPreviousViewport(viewportsKeys, current) {
21 var currentViewportIndex = getCurrentViewportIndex(viewportsKeys, current);
22 return currentViewportIndex < 1 ? viewportsKeys[viewportsKeys.length - 1] : viewportsKeys[currentViewportIndex - 1];
23};
24
25export var registerShortcuts = /*#__PURE__*/function () {
26 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(api, setState, viewportsKeys) {
27 return regeneratorRuntime.wrap(function _callee$(_context) {
28 while (1) {
29 switch (_context.prev = _context.next) {
30 case 0:
31 _context.next = 2;
32 return api.setAddonShortcut(ADDON_ID, {
33 label: 'Previous viewport',
34 defaultShortcut: ['shift', 'V'],
35 actionName: 'previous',
36 action: function action() {
37 var _api$getAddonState = api.getAddonState(ADDON_ID),
38 selected = _api$getAddonState.selected,
39 isRotated = _api$getAddonState.isRotated;
40
41 setState({
42 selected: getPreviousViewport(viewportsKeys, selected),
43 isRotated: isRotated
44 });
45 }
46 });
47
48 case 2:
49 _context.next = 4;
50 return api.setAddonShortcut(ADDON_ID, {
51 label: 'Next viewport',
52 defaultShortcut: ['V'],
53 actionName: 'next',
54 action: function action() {
55 var _api$getAddonState2 = api.getAddonState(ADDON_ID),
56 selected = _api$getAddonState2.selected,
57 isRotated = _api$getAddonState2.isRotated;
58
59 setState({
60 selected: getNextViewport(viewportsKeys, selected),
61 isRotated: isRotated
62 });
63 }
64 });
65
66 case 4:
67 _context.next = 6;
68 return api.setAddonShortcut(ADDON_ID, {
69 label: 'Reset viewport',
70 defaultShortcut: ['alt', 'V'],
71 actionName: 'reset',
72 action: function action() {
73 var _api$getAddonState3 = api.getAddonState(ADDON_ID),
74 isRotated = _api$getAddonState3.isRotated;
75
76 setState({
77 selected: 'reset',
78 isRotated: isRotated
79 });
80 }
81 });
82
83 case 6:
84 case "end":
85 return _context.stop();
86 }
87 }
88 }, _callee);
89 }));
90
91 return function registerShortcuts(_x, _x2, _x3) {
92 return _ref.apply(this, arguments);
93 };
94}();
\No newline at end of file