office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
53 lines • 1.87 kB
JavaScript
import { find } from '../../Utilities';
export var KeytipTransitionModifier;
(function (KeytipTransitionModifier) {
KeytipTransitionModifier[KeytipTransitionModifier["shift"] = 16] = "shift";
KeytipTransitionModifier[KeytipTransitionModifier["ctrl"] = 17] = "ctrl";
KeytipTransitionModifier[KeytipTransitionModifier["alt"] = 18] = "alt";
KeytipTransitionModifier[KeytipTransitionModifier["meta"] = 91] = "meta";
})(KeytipTransitionModifier || (KeytipTransitionModifier = {}));
/**
* Tests for equality between two IKeytipTransitionKeys.
*
* @param key1 - First IKeytipTransitionKey.
* @param key2 - Second IKeytipTransitionKey.
* @returns {boolean} T/F if the transition keys are equal.
*/
export function transitionKeysAreEqual(key1, key2) {
if (key1.key !== key2.key) {
return false;
}
var mod1 = key1.modifierKeys;
var mod2 = key2.modifierKeys;
if ((!mod1 && mod2) || (mod1 && !mod2)) {
// Not equal if one modifier is defined and the other isn't
return false;
}
if (mod1 && mod2) {
if (mod1.length !== mod2.length) {
return false;
}
// Sort both arrays
mod1 = mod1.sort();
mod2 = mod2.sort();
for (var i = 0; i < mod1.length; i++) {
if (mod1[i] !== mod2[i]) {
return false;
}
}
}
return true;
}
/**
* Tests if 'key' is present in 'keys'.
*
* @param keys - Array of IKeytipTransitionKey.
* @param key - IKeytipTransitionKey to find in 'keys'.
* @returns {boolean} T/F if 'keys' contains 'key'.
*/
export function transitionKeysContain(keys, key) {
return !!find(keys, function (transitionKey) {
return transitionKeysAreEqual(transitionKey, key);
});
}
//# sourceMappingURL=IKeytipTransitionKey.js.map