UNPKG

1.61 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.transitionKeysContain = exports.transitionKeysAreEqual = void 0;
4var Utilities_1 = require("../../Utilities");
5/**
6 * Tests for equality between two IKeytipTransitionKeys.
7 *
8 * @param key1 - First IKeytipTransitionKey.
9 * @param key2 - Second IKeytipTransitionKey.
10 * @returns T/F if the transition keys are equal.
11 */
12function transitionKeysAreEqual(key1, key2) {
13 if (key1.key !== key2.key) {
14 return false;
15 }
16 var mod1 = key1.modifierKeys;
17 var mod2 = key2.modifierKeys;
18 if ((!mod1 && mod2) || (mod1 && !mod2)) {
19 // Not equal if one modifier is defined and the other isn't
20 return false;
21 }
22 if (mod1 && mod2) {
23 if (mod1.length !== mod2.length) {
24 return false;
25 }
26 // Sort both arrays
27 mod1 = mod1.sort();
28 mod2 = mod2.sort();
29 for (var i = 0; i < mod1.length; i++) {
30 if (mod1[i] !== mod2[i]) {
31 return false;
32 }
33 }
34 }
35 return true;
36}
37exports.transitionKeysAreEqual = transitionKeysAreEqual;
38/**
39 * Tests if 'key' is present in 'keys'.
40 *
41 * @param keys - Array of IKeytipTransitionKey.
42 * @param key - IKeytipTransitionKey to find in 'keys'.
43 * @returns T/F if 'keys' contains 'key'.
44 */
45function transitionKeysContain(keys, key) {
46 return !!Utilities_1.find(keys, function (transitionKey) {
47 return transitionKeysAreEqual(transitionKey, key);
48 });
49}
50exports.transitionKeysContain = transitionKeysContain;
51//# sourceMappingURL=IKeytipTransitionKey.js.map
\No newline at end of file