import { KeyCodeEvent } from '../types/key-code-events.js' import { keyCodesWithEvents } from './with-events.js' type SPECIAL_CHARACTERS = Pick< KeyCodeEvent, 'keyCode' | 'shiftKey' | 'altKey' > export const specialCharacters: Record = { '"': { keyCode: 222, shiftKey: true }, '>': { keyCode: 190, shiftKey: true }, '?': { keyCode: 191, shiftKey: true }, '!': { keyCode: 49, shiftKey: true }, '#': { keyCode: 51, shiftKey: true }, '%': { keyCode: 53, shiftKey: true }, '(': { keyCode: 57, shiftKey: true }, '^': { keyCode: 73, altKey: true }, '@': { keyCode: 50, shiftKey: true }, '&': { keyCode: 55, shiftKey: true }, '}': { keyCode: 221, shiftKey: true }, '{': { keyCode: 219, shiftKey: true }, '±': { keyCode: 187, shiftKey: true }, '§': { keyCode: 54, shiftKey: true }, '¡': { keyCode: 49, altKey: true }, '²': { keyCode: 50, altKey: true }, '³': { keyCode: 51, altKey: true }, '¤': { keyCode: 52, altKey: true }, '€': { keyCode: 53, altKey: true }, '¼': { keyCode: 54, altKey: true }, '½': { keyCode: 55, altKey: true }, '¾': { keyCode: 56, altKey: true }, '‘': { keyCode: 57, altKey: true }, '’': { keyCode: 48, altKey: true }, '¥': { keyCode: 89, altKey: true }, '×': { keyCode: 187, altKey: true }, ä: { keyCode: 81, altKey: true }, å: { keyCode: 87, altKey: true }, é: { keyCode: 69, altKey: true }, '®': { keyCode: 82, altKey: true }, þ: { keyCode: 84, altKey: true }, ü: { keyCode: 89, altKey: true }, ú: { keyCode: 85, altKey: true }, í: { keyCode: 73, altKey: true }, ó: { keyCode: 79, altKey: true }, ö: { keyCode: 80, altKey: true }, '«': { keyCode: 219, altKey: true }, '»': { keyCode: 221, altKey: true }, á: { keyCode: 65, altKey: true }, ß: { keyCode: 83, altKey: true }, ð: { keyCode: 68, altKey: true }, ø: { keyCode: 76, altKey: true }, '¶': { keyCode: 186, altKey: true }, '´': { keyCode: 222, altKey: true }, '¬': { keyCode: 220, altKey: true }, æ: { keyCode: 90, altKey: true }, '©': { keyCode: 67, altKey: true }, ñ: { keyCode: 78, altKey: true }, µ: { keyCode: 77, altKey: true }, ç: { keyCode: 188, altKey: true }, '¿': { keyCode: 191, altKey: true }, Ω: { keyCode: 90, altKey: true }, '≈': { keyCode: 88, altKey: true }, œ: { keyCode: 81, altKey: true }, Σ: { keyCode: 87, altKey: true }, '†': { keyCode: 84, altKey: true }, '¨': { keyCode: 85, altKey: true }, π: { keyCode: 80, altKey: true }, ƒ: { keyCode: 70, altKey: true }, '˙': { keyCode: 72, altKey: true }, '∆': { keyCode: 74, altKey: true }, '°': { keyCode: 75, altKey: true }, '√': { keyCode: 86, altKey: true }, '∫': { keyCode: 66, altKey: true }, '~': { keyCode: 78, altKey: true }, '™': { keyCode: 50, altKey: true }, '£': { keyCode: 51, altKey: true }, '¢': { keyCode: 52, altKey: true }, '∞': { keyCode: 53, altKey: true }, '…': { keyCode: 186, altKey: true }, '•': { keyCode: 56, altKey: true }, º: { keyCode: 48, altKey: true }, '–': { keyCode: 189, altKey: true }, '≠': { keyCode: 187, altKey: true }, '≤': { keyCode: 190, altKey: true }, '≥': { keyCode: 188, altKey: true }, '÷': { keyCode: 191, altKey: true }, '”': { keyCode: 219, altKey: true }, ª: { keyCode: 57, altKey: true }, '˚': { keyCode: 72, altKey: true }, '∂': { keyCode: 68, altKey: true }, '∑': { keyCode: 87, altKey: true }, '“': { keyCode: 219, altKey: true }, _: { keyCode: 189, shiftKey: true } } export const specialCharactersKeyCodeEvents: KeyCodeEvent[] = Object.entries( specialCharacters ).map(([key, keyCodeEvent]) => { return { ...keyCodesWithEvents[keyCodeEvent.keyCode], ...keyCodeEvent, key, unicode: key, } })