parseKeyDef.js 644 B

123456789101112131415161718192021
  1. import '../utils/dataTransfer/Clipboard.js';
  2. import { readNextDescriptor } from '../utils/keyDef/readNextDescriptor.js';
  3. function parseKeyDef(pointerMap, keys) {
  4. const defs = [];
  5. do {
  6. const { descriptor, consumedLength, releasePrevious, releaseSelf = true } = readNextDescriptor(keys, 'pointer');
  7. const keyDef = pointerMap.find((p)=>p.name === descriptor);
  8. if (keyDef) {
  9. defs.push({
  10. keyDef,
  11. releasePrevious,
  12. releaseSelf
  13. });
  14. }
  15. keys = keys.slice(consumedLength);
  16. }while (keys)
  17. return defs;
  18. }
  19. export { parseKeyDef };