@blueprintjs/core
Version:
Core styles & components
57 lines (55 loc) • 6.6 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 React = require("react");
var hotkeyParser_1 = require("./hotkeyParser");
var KeyIcons = {
alt: "pt-icon-key-option",
ctrl: "pt-icon-key-control",
delete: "pt-icon-key-delete",
down: "pt-icon-arrow-down",
enter: "pt-icon-key-enter",
left: "pt-icon-arrow-left",
meta: "pt-icon-key-command",
right: "pt-icon-arrow-right",
shift: "pt-icon-key-shift",
up: "pt-icon-arrow-up",
};
var KeyCombo = (function (_super) {
__extends(KeyCombo, _super);
function KeyCombo() {
_super.apply(this, arguments);
}
KeyCombo.prototype.render = function () {
var keys = hotkeyParser_1.normalizeKeyCombo(this.props.combo);
var components = [];
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var icon = KeyIcons[key];
if (icon != null) {
components.push(React.createElement("kbd", {className: "pt-key pt-modifier-key", key: "key-" + i},
React.createElement("span", {className: "pt-icon-standard " + icon}),
key));
}
else {
if (key.length === 1) {
key = key.toUpperCase();
}
components.push(React.createElement("kbd", {className: "pt-key", key: "key-" + i}, key));
}
}
return React.createElement("div", {className: "pt-key-combo"}, components);
};
return KeyCombo;
}(React.Component));
exports.KeyCombo = KeyCombo;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL2hvdGtleXMva2V5Q29tYm8udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7O0FBRUgsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFDL0IsNkJBQWtDLGdCQUFnQixDQUFDLENBQUE7QUFFbkQsSUFBTSxRQUFRLEdBQUc7SUFDYixHQUFHLEVBQUUsb0JBQW9CO0lBQ3pCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLEtBQUssRUFBRSxtQkFBbUI7SUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsS0FBSyxFQUFFLG1CQUFtQjtJQUMxQixFQUFFLEVBQUUsa0JBQWtCO0NBQ0UsQ0FBQztBQU03QjtJQUE4Qiw0QkFBbUM7SUFBakU7UUFBOEIsOEJBQW1DO0lBdUJqRSxDQUFDO0lBdEJVLHlCQUFNLEdBQWI7UUFDSSxJQUFNLElBQUksR0FBRyxnQ0FBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQU0sVUFBVSxHQUFHLEVBQW1CLENBQUM7UUFDdkMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDZixVQUFVLENBQUMsSUFBSSxDQUNYLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMsd0JBQXdCLEVBQUMsR0FBRyxFQUFFLFNBQU8sQ0FBSTtvQkFDcEQscUJBQUMsSUFBSSxJQUFDLFNBQVMsRUFBRSxzQkFBb0IsSUFBTyxFQUFHO29CQUM5QyxHQUFJLENBQ0gsQ0FDVCxDQUFDO1lBQ04sQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbkIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQztnQkFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBRSxTQUFPLENBQUksR0FBRSxHQUFJLENBQU0sQ0FBQyxDQUFDO1lBQzFFLENBQUM7UUFDTCxDQUFDO1FBQ0QsTUFBTSxDQUFDLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMsY0FBYyxHQUFFLFVBQVcsQ0FBTSxDQUFDO0lBQzVELENBQUM7SUFDTCxlQUFDO0FBQUQsQ0F2QkEsQUF1QkMsQ0F2QjZCLEtBQUssQ0FBQyxTQUFTLEdBdUI1QztBQXZCWSxnQkFBUSxXQXVCcEIsQ0FBQSIsImZpbGUiOiJjb21wb25lbnRzL2hvdGtleXMva2V5Q29tYm8uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUtleUNvbWJvIH0gZnJvbSBcIi4vaG90a2V5UGFyc2VyXCI7XG5cbmNvbnN0IEtleUljb25zID0ge1xuICAgIGFsdDogXCJwdC1pY29uLWtleS1vcHRpb25cIixcbiAgICBjdHJsOiBcInB0LWljb24ta2V5LWNvbnRyb2xcIixcbiAgICBkZWxldGU6IFwicHQtaWNvbi1rZXktZGVsZXRlXCIsXG4gICAgZG93bjogXCJwdC1pY29uLWFycm93LWRvd25cIixcbiAgICBlbnRlcjogXCJwdC1pY29uLWtleS1lbnRlclwiLFxuICAgIGxlZnQ6IFwicHQtaWNvbi1hcnJvdy1sZWZ0XCIsXG4gICAgbWV0YTogXCJwdC1pY29uLWtleS1jb21tYW5kXCIsXG4gICAgcmlnaHQ6IFwicHQtaWNvbi1hcnJvdy1yaWdodFwiLFxuICAgIHNoaWZ0OiBcInB0LWljb24ta2V5LXNoaWZ0XCIsXG4gICAgdXA6IFwicHQtaWNvbi1hcnJvdy11cFwiLFxufSBhcyB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcblxuZXhwb3J0IGludGVyZmFjZSBJS2V5Q29tYm9Qcm9wcyB7XG4gICAgY29tYm86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEtleUNvbWJvIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElLZXlDb21ib1Byb3BzLCB7fT4ge1xuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBub3JtYWxpemVLZXlDb21ibyh0aGlzLnByb3BzLmNvbWJvKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IFtdIGFzIEpTWC5FbGVtZW50W107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGtleSA9IGtleXNbaV07XG4gICAgICAgICAgICBjb25zdCBpY29uID0gS2V5SWNvbnNba2V5XTtcbiAgICAgICAgICAgIGlmIChpY29uICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIDxrYmQgY2xhc3NOYW1lPVwicHQta2V5IHB0LW1vZGlmaWVyLWtleVwiIGtleT17YGtleS0ke2l9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BwdC1pY29uLXN0YW5kYXJkICR7aWNvbn1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2tleX1cbiAgICAgICAgICAgICAgICAgICAgPC9rYmQ+LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGtleSA9IGtleS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goPGtiZCBjbGFzc05hbWU9XCJwdC1rZXlcIiBrZXk9e2BrZXktJHtpfWB9PntrZXl9PC9rYmQ+KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJwdC1rZXktY29tYm9cIj57Y29tcG9uZW50c308L2Rpdj47XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9