@blueprintjs/core
Version:
Core styles & components
84 lines (82 loc) • 10 kB
JavaScript
/*
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
;
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
var react_1 = require("react");
var React = require("react");
var common_1 = require("../../common");
var hotkey_1 = require("./hotkey");
var hotkey_2 = require("./hotkey");
exports.Hotkey = hotkey_2.Hotkey;
var keyCombo_1 = require("./keyCombo");
exports.KeyCombo = keyCombo_1.KeyCombo;
var hotkeysTarget_1 = require("./hotkeysTarget");
exports.HotkeysTarget = hotkeysTarget_1.HotkeysTarget;
var hotkeyParser_1 = require("./hotkeyParser");
exports.comboMatches = hotkeyParser_1.comboMatches;
exports.getKeyCombo = hotkeyParser_1.getKeyCombo;
exports.getKeyComboString = hotkeyParser_1.getKeyComboString;
exports.parseKeyCombo = hotkeyParser_1.parseKeyCombo;
var hotkeysDialog_1 = require("./hotkeysDialog");
exports.hideHotkeysDialog = hotkeysDialog_1.hideHotkeysDialog;
exports.setHotkeysDialogProps = hotkeysDialog_1.setHotkeysDialogProps;
var Hotkeys = (function (_super) {
__extends(Hotkeys, _super);
function Hotkeys() {
_super.apply(this, arguments);
}
Hotkeys.prototype.render = function () {
var hotkeys = react_1.Children.map(this.props.children, function (child) { return child.props; });
// sort by group label alphabetically, globals first
hotkeys.sort(function (a, b) {
if (a.global) {
return b.global ? 0 : -1;
}
if (b.global) {
return 1;
}
return a.group.localeCompare(b.group);
});
var lastGroup = null;
var elems = [];
for (var _i = 0, hotkeys_1 = hotkeys; _i < hotkeys_1.length; _i++) {
var hotkey = hotkeys_1[_i];
var groupLabel = hotkey.group;
if (groupLabel !== lastGroup) {
elems.push(React.createElement("h4", {key: "group-" + elems.length, className: "pt-hotkey-group"}, groupLabel));
lastGroup = groupLabel;
}
elems.push(React.createElement(hotkey_1.Hotkey, __assign({key: elems.length}, hotkey)));
}
return React.createElement("div", {className: "pt-hotkey-column"}, elems);
};
Hotkeys.prototype.validateProps = function (props) {
react_1.Children.forEach(props.children, function (child) {
if (typeof child !== "object" || !hotkey_1.Hotkey.isInstance(child)) {
throw new Error("Hotkeys only accepts <Hotkey> children");
}
});
};
Hotkeys.defaultProps = {
tabIndex: 0,
};
return Hotkeys;
}(common_1.AbstractComponent));
exports.Hotkeys = Hotkeys;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL2hvdGtleXMvaG90a2V5cy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7OztBQUVILHNCQUF1QyxPQUFPLENBQUMsQ0FBQTtBQUMvQyxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQUMvQix1QkFBMEMsY0FBYyxDQUFDLENBQUE7QUFFekQsdUJBQXFDLFVBQVUsQ0FBQyxDQUFBO0FBRWhELHVCQUFxQyxVQUFVLENBQUM7QUFBdkMsaUNBQXVDO0FBQ2hELHlCQUF5QyxZQUFZLENBQUM7QUFBN0MsdUNBQTZDO0FBQ3RELDhCQUE4QyxpQkFBaUIsQ0FBQztBQUF2RCxzREFBdUQ7QUFDaEUsNkJBQXVGLGdCQUFnQixDQUFDO0FBQXBGLG1EQUFZO0FBQUUsaURBQVc7QUFBRSw2REFBaUI7QUFBRSxxREFBc0M7QUFDeEcsOEJBQThFLGlCQUFpQixDQUFDO0FBQWxFLDhEQUFpQjtBQUFFLHNFQUErQztBQWNoRztJQUE2QiwyQkFBb0M7SUFBakU7UUFBNkIsOEJBQW9DO0lBb0NqRSxDQUFDO0lBL0JVLHdCQUFNLEdBQWI7UUFDSSxJQUFNLE9BQU8sR0FBRyxnQkFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFDLEtBQWlDLElBQUssT0FBQSxLQUFLLENBQUMsS0FBSyxFQUFYLENBQVcsQ0FBQyxDQUFDO1FBRXRHLG9EQUFvRDtRQUNwRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsR0FBRyxJQUFjLENBQUM7UUFDL0IsSUFBTSxLQUFLLEdBQUcsRUFBbUIsQ0FBQztRQUNsQyxHQUFHLENBQUMsQ0FBaUIsVUFBTyxFQUFQLG1CQUFPLEVBQVAscUJBQU8sRUFBUCxJQUFPLENBQUM7WUFBeEIsSUFBTSxNQUFNLGdCQUFBO1lBQ2IsSUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNoQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBQyxFQUFFLElBQUMsR0FBRyxFQUFFLFdBQVMsS0FBSyxDQUFDLE1BQVMsRUFBQyxTQUFTLEVBQUMsaUJBQWlCLEdBQUUsVUFBVyxDQUFLLENBQUMsQ0FBQztnQkFDNUYsU0FBUyxHQUFHLFVBQVUsQ0FBQztZQUMzQixDQUFDO1lBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBQyxlQUFNLFlBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFPLEdBQUssTUFBTSxFQUFJLENBQUMsQ0FBQztTQUN6RDtRQUVELE1BQU0sQ0FBQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLGtCQUFrQixHQUFFLEtBQU0sQ0FBTSxDQUFDO0lBQzNELENBQUM7SUFFUywrQkFBYSxHQUF2QixVQUF3QixLQUFvRDtRQUN4RSxnQkFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQUMsS0FBSztZQUNuQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxlQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQzlELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFsQ2Esb0JBQVksR0FBRztRQUN6QixRQUFRLEVBQUUsQ0FBQztLQUNkLENBQUM7SUFpQ04sY0FBQztBQUFELENBcENBLEFBb0NDLENBcEM0QiwwQkFBaUIsR0FvQzdDO0FBcENZLGVBQU8sVUFvQ25CLENBQUEiLCJmaWxlIjoiY29tcG9uZW50cy9ob3RrZXlzL2hvdGtleXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCB7IENoaWxkcmVuLCBSZWFjdEVsZW1lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQsIElQcm9wcyB9IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuaW1wb3J0IHsgSG90a2V5LCBJSG90a2V5UHJvcHMgfSBmcm9tIFwiLi9ob3RrZXlcIjtcblxuZXhwb3J0IHsgSG90a2V5LCBJSG90a2V5UHJvcHMgfSBmcm9tIFwiLi9ob3RrZXlcIjtcbmV4cG9ydCB7IEtleUNvbWJvLCBJS2V5Q29tYm9Qcm9wcyB9IGZyb20gXCIuL2tleUNvbWJvXCI7XG5leHBvcnQgeyBIb3RrZXlzVGFyZ2V0LCBJSG90a2V5c1RhcmdldCB9IGZyb20gXCIuL2hvdGtleXNUYXJnZXRcIjtcbmV4cG9ydCB7IElLZXlDb21ibywgY29tYm9NYXRjaGVzLCBnZXRLZXlDb21ibywgZ2V0S2V5Q29tYm9TdHJpbmcsIHBhcnNlS2V5Q29tYm8gfSBmcm9tIFwiLi9ob3RrZXlQYXJzZXJcIjtcbmV4cG9ydCB7IElIb3RrZXlzRGlhbG9nUHJvcHMsIGhpZGVIb3RrZXlzRGlhbG9nLCBzZXRIb3RrZXlzRGlhbG9nUHJvcHMgfSBmcm9tIFwiLi9ob3RrZXlzRGlhbG9nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhvdGtleXNQcm9wcyBleHRlbmRzIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogSW4gb3JkZXIgdG8gbWFrZSBsb2NhbCBob3RrZXlzIHdvcmsgb24gZWxlbWVudHMgdGhhdCBhcmUgbm90IG5vcm1hbGx5XG4gICAgICogZm9jdXNhYmxlLCBzdWNoIGFzIGA8ZGl2PmBzIG9yIGA8c3Bhbj5gcywgd2UgYWRkIGEgYHRhYkluZGV4YCBhdHRyaWJ1dGVcbiAgICAgKiB0byB0aGUgaG90a2V5IHRhcmdldCwgd2hpY2ggbWFrZXMgaXQgZm9jdXNhYmxlLiBCeSBkZWZhdWx0LCB3ZSB1c2UgYDBgLFxuICAgICAqIGJ1dCB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgdmFsdWUgdG8gY2hhbmdlIHRoZSB0YWIgbmF2aWdhdGlvbiBiZWhhdmlvclxuICAgICAqIG9mIHRoZSBjb21wb25lbnQuIFlvdSBtYXkgZXZlbiBzZXQgdGhpcyB2YWx1ZSB0byBgbnVsbGAsIHdoaWNoIHdpbGwgb21pdFxuICAgICAqIHRoZSB0YWJJbmRleCBmcm9tIHRoZSBjb21wb25lbnQgZGVjb3JhdGVkIGJ5IGBIb3RrZXlzVGFyZ2V0YC5cbiAgICAgKi9cbiAgICB0YWJJbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEhvdGtleXMgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudDxJSG90a2V5c1Byb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICB0YWJJbmRleDogMCxcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgaG90a2V5cyA9IENoaWxkcmVuLm1hcCh0aGlzLnByb3BzLmNoaWxkcmVuLCAoY2hpbGQ6IFJlYWN0RWxlbWVudDxJSG90a2V5UHJvcHM+KSA9PiBjaGlsZC5wcm9wcyk7XG5cbiAgICAgICAgLy8gc29ydCBieSBncm91cCBsYWJlbCBhbHBoYWJldGljYWxseSwgZ2xvYmFscyBmaXJzdFxuICAgICAgICBob3RrZXlzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGlmIChhLmdsb2JhbCkgeyByZXR1cm4gYi5nbG9iYWwgPyAwIDogLTE7IH1cbiAgICAgICAgICAgIGlmIChiLmdsb2JhbCkgeyByZXR1cm4gMTsgfVxuICAgICAgICAgICAgcmV0dXJuIGEuZ3JvdXAubG9jYWxlQ29tcGFyZShiLmdyb3VwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGxhc3RHcm91cCA9IG51bGwgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCBlbGVtcyA9IFtdIGFzIEpTWC5FbGVtZW50W107XG4gICAgICAgIGZvciAoY29uc3QgaG90a2V5IG9mIGhvdGtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwTGFiZWwgPSBob3RrZXkuZ3JvdXA7XG4gICAgICAgICAgICBpZiAoZ3JvdXBMYWJlbCAhPT0gbGFzdEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgZWxlbXMucHVzaCg8aDQga2V5PXtgZ3JvdXAtJHtlbGVtcy5sZW5ndGh9YH0gY2xhc3NOYW1lPVwicHQtaG90a2V5LWdyb3VwXCI+e2dyb3VwTGFiZWx9PC9oND4pO1xuICAgICAgICAgICAgICAgIGxhc3RHcm91cCA9IGdyb3VwTGFiZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGVtcy5wdXNoKDxIb3RrZXkga2V5PXtlbGVtcy5sZW5ndGh9IHsuLi5ob3RrZXl9IC8+KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInB0LWhvdGtleS1jb2x1bW5cIj57ZWxlbXN9PC9kaXY+O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWxpZGF0ZVByb3BzKHByb3BzOiBJSG90a2V5c1Byb3BzICYgeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgICAgICAgQ2hpbGRyZW4uZm9yRWFjaChwcm9wcy5jaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkICE9PSBcIm9iamVjdFwiIHx8ICFIb3RrZXkuaXNJbnN0YW5jZShjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJIb3RrZXlzIG9ubHkgYWNjZXB0cyA8SG90a2V5PiBjaGlsZHJlblwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9