UNPKG

2.8 kBSource Map (JSON)View Raw
1{"version":3,"file":"IKeytipTransitionKey.js","sourceRoot":"../src/","sources":["utilities/keytips/IKeytipTransitionKey.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AAajD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,IAA0B,EAAE,IAA0B;IAC3F,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;IAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;IAE7B,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;QACtC,2DAA2D;QAC3D,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,IAAI,IAAI,EAAE;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,mBAAmB;QACnB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAC;aACd;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA7BD,wDA6BC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAA4B,EAAE,GAAyB;IAC3F,OAAO,CAAC,CAAC,gBAAI,CAAC,IAAI,EAAE,UAAC,aAAmC;QACtD,OAAO,sBAAsB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,sDAIC","sourcesContent":["import { find, KeyCodes } from '../../Utilities';\n\nexport type KeytipTransitionModifier =\n | typeof KeyCodes.shift\n | typeof KeyCodes.ctrl\n | typeof KeyCodes.alt\n | typeof KeyCodes.leftWindow;\n\nexport interface IKeytipTransitionKey {\n key: string;\n modifierKeys?: KeytipTransitionModifier[];\n}\n\n/**\n * Tests for equality between two IKeytipTransitionKeys.\n *\n * @param key1 - First IKeytipTransitionKey.\n * @param key2 - Second IKeytipTransitionKey.\n * @returns T/F if the transition keys are equal.\n */\nexport function transitionKeysAreEqual(key1: IKeytipTransitionKey, key2: IKeytipTransitionKey): boolean {\n if (key1.key !== key2.key) {\n return false;\n }\n\n let mod1 = key1.modifierKeys;\n let mod2 = key2.modifierKeys;\n\n if ((!mod1 && mod2) || (mod1 && !mod2)) {\n // Not equal if one modifier is defined and the other isn't\n return false;\n }\n\n if (mod1 && mod2) {\n if (mod1.length !== mod2.length) {\n return false;\n }\n\n // Sort both arrays\n mod1 = mod1.sort();\n mod2 = mod2.sort();\n for (let i = 0; i < mod1.length; i++) {\n if (mod1[i] !== mod2[i]) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Tests if 'key' is present in 'keys'.\n *\n * @param keys - Array of IKeytipTransitionKey.\n * @param key - IKeytipTransitionKey to find in 'keys'.\n * @returns T/F if 'keys' contains 'key'.\n */\nexport function transitionKeysContain(keys: IKeytipTransitionKey[], key: IKeytipTransitionKey): boolean {\n return !!find(keys, (transitionKey: IKeytipTransitionKey) => {\n return transitionKeysAreEqual(transitionKey, key);\n });\n}\n"]}
\No newline at end of file