mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-25 17:57:41 +00:00
feat(developer): make shared constants tree-shakable
In order to avoid embedding unused tables of constants into KeymanWeb, we need to make their declarations pure. https://esbuild.github.io/api/#tree-shaking-and-side-effects
This commit is contained in:
parent
ce5a5bb2f1
commit
56cdf428ea
2 changed files with 45 additions and 37 deletions
|
|
@ -45,44 +45,54 @@ export const ModifierKeyConstants = {
|
|||
* corresponding NOT__FLAG are set.
|
||||
*/
|
||||
export enum ModifierKeyConstant {
|
||||
LCTRLFLAG = ModifierKeyConstants.LCTRLFLAG,
|
||||
RCTRLFLAG = ModifierKeyConstants.RCTRLFLAG,
|
||||
LALTFLAG = ModifierKeyConstants.LALTFLAG,
|
||||
RALTFLAG = ModifierKeyConstants.RALTFLAG,
|
||||
K_SHIFTFLAG = ModifierKeyConstants.K_SHIFTFLAG,
|
||||
K_CTRLFLAG = ModifierKeyConstants.K_CTRLFLAG,
|
||||
K_ALTFLAG = ModifierKeyConstants.K_ALTFLAG,
|
||||
K_METAFLAG = ModifierKeyConstants.K_METAFLAG,
|
||||
CAPITALFLAG = ModifierKeyConstants.CAPITALFLAG,
|
||||
NOTCAPITALFLAG = ModifierKeyConstants.NOTCAPITALFLAG,
|
||||
NUMLOCKFLAG = ModifierKeyConstants.NUMLOCKFLAG,
|
||||
NOTNUMLOCKFLAG = ModifierKeyConstants.NOTNUMLOCKFLAG,
|
||||
SCROLLFLAG = ModifierKeyConstants.SCROLLFLAG,
|
||||
NOTSCROLLFLAG = ModifierKeyConstants.NOTSCROLLFLAG,
|
||||
ISVIRTUALKEY = ModifierKeyConstants.ISVIRTUALKEY,
|
||||
VIRTUALCHARKEY = ModifierKeyConstants.VIRTUALCHARKEY,
|
||||
NO_MODIFIER = 0,
|
||||
LCTRLFLAG = 0x0001, // Left Control flag
|
||||
RCTRLFLAG = 0x0002, // Right Control flag
|
||||
LALTFLAG = 0x0004, // Left Alt flag
|
||||
RALTFLAG = 0x0008, // Right Alt flag
|
||||
K_SHIFTFLAG = 0x0010, // Either shift flag
|
||||
K_CTRLFLAG = 0x0020, // Either ctrl flag
|
||||
K_ALTFLAG = 0x0040, // Either alt flag
|
||||
K_METAFLAG = 0x0080, // Either Meta-key flag (tentative). Not usable in keyboard rules;
|
||||
// Used internally (currently, only by KMW) to ensure Meta-key
|
||||
// shortcuts safely bypass rules
|
||||
// Meta key = Command key on macOS, Windows key on Windows/Linux
|
||||
CAPITALFLAG = 0x0100, // Caps lock on
|
||||
NOTCAPITALFLAG = 0x0200, // Caps lock NOT on
|
||||
NUMLOCKFLAG = 0x0400, // Num lock on
|
||||
NOTNUMLOCKFLAG = 0x0800, // Num lock NOT on
|
||||
SCROLLFLAG = 0x1000, // Scroll lock on
|
||||
NOTSCROLLFLAG = 0x2000, // Scroll lock NOT on
|
||||
ISVIRTUALKEY = 0x4000, // It is a Virtual Key Sequence
|
||||
VIRTUALCHARKEY = 0x8000, // Keyman 6.0: Virtual Key Cap Sequence NOT YET
|
||||
};
|
||||
|
||||
export const LDML_MODIFIER_TO_KVK_MODIFIER = new Map<ModifierKeyConstant, VisualKeyboardShiftState>();
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.LCTRLFLAG, VisualKeyboardShiftState.KVKS_LCTRL);
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.RCTRLFLAG, VisualKeyboardShiftState.KVKS_RCTRL);
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.LALTFLAG, VisualKeyboardShiftState.KVKS_LALT);
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.RALTFLAG, VisualKeyboardShiftState.KVKS_RALT);
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.K_SHIFTFLAG, VisualKeyboardShiftState.KVKS_SHIFT);
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.K_CTRLFLAG, VisualKeyboardShiftState.KVKS_CTRL);
|
||||
LDML_MODIFIER_TO_KVK_MODIFIER.set(ModifierKeyConstants.K_ALTFLAG, VisualKeyboardShiftState.KVKS_ALT);
|
||||
export const LDML_MODIFIER_TO_KVK_MODIFIER = /* @__PURE__ */ (() => {
|
||||
const m = new Map<ModifierKeyConstant, VisualKeyboardShiftState>();
|
||||
m.set(ModifierKeyConstants.LCTRLFLAG, VisualKeyboardShiftState.KVKS_LCTRL);
|
||||
m.set(ModifierKeyConstants.RCTRLFLAG, VisualKeyboardShiftState.KVKS_RCTRL);
|
||||
m.set(ModifierKeyConstants.LALTFLAG, VisualKeyboardShiftState.KVKS_LALT);
|
||||
m.set(ModifierKeyConstants.RALTFLAG, VisualKeyboardShiftState.KVKS_RALT);
|
||||
m.set(ModifierKeyConstants.K_SHIFTFLAG, VisualKeyboardShiftState.KVKS_SHIFT);
|
||||
m.set(ModifierKeyConstants.K_CTRLFLAG, VisualKeyboardShiftState.KVKS_CTRL);
|
||||
m.set(ModifierKeyConstants.K_ALTFLAG, VisualKeyboardShiftState.KVKS_ALT);
|
||||
return m;
|
||||
})();
|
||||
|
||||
export const KVK_MODIFIER_TO_LDML_MODIFIER = new Map<VisualKeyboardShiftState, ModifierKeyConstant>();
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_LCTRL, ModifierKeyConstants.LCTRLFLAG);
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_RCTRL, ModifierKeyConstants.RCTRLFLAG);
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_LALT, ModifierKeyConstants.LALTFLAG);
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_RALT, ModifierKeyConstants.RALTFLAG);
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_SHIFT, ModifierKeyConstants.K_SHIFTFLAG);
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_CTRL, ModifierKeyConstants.K_CTRLFLAG);
|
||||
KVK_MODIFIER_TO_LDML_MODIFIER.set(VisualKeyboardShiftState.KVKS_ALT, ModifierKeyConstants.K_ALTFLAG);
|
||||
export const KVK_MODIFIER_TO_LDML_MODIFIER = /* @__PURE__ */ (() => {
|
||||
const m = new Map<VisualKeyboardShiftState, ModifierKeyConstant>();
|
||||
m.set(VisualKeyboardShiftState.KVKS_LCTRL, ModifierKeyConstants.LCTRLFLAG);
|
||||
m.set(VisualKeyboardShiftState.KVKS_RCTRL, ModifierKeyConstants.RCTRLFLAG);
|
||||
m.set(VisualKeyboardShiftState.KVKS_LALT, ModifierKeyConstants.LALTFLAG);
|
||||
m.set(VisualKeyboardShiftState.KVKS_RALT, ModifierKeyConstants.RALTFLAG);
|
||||
m.set(VisualKeyboardShiftState.KVKS_SHIFT, ModifierKeyConstants.K_SHIFTFLAG);
|
||||
m.set(VisualKeyboardShiftState.KVKS_CTRL, ModifierKeyConstants.K_CTRLFLAG);
|
||||
m.set(VisualKeyboardShiftState.KVKS_ALT, ModifierKeyConstants.K_ALTFLAG);
|
||||
return m;
|
||||
})();
|
||||
|
||||
export function translateLdmlModifiersToVisualKeyboardShift(modifiers: ModifierKeyConstant): VisualKeyboardShiftState {
|
||||
if(modifiers == 0) {
|
||||
if(modifiers == ModifierKeyConstant.NO_MODIFIER) {
|
||||
return VisualKeyboardShiftState.KVKS_NORMAL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -141,10 +141,8 @@ export const USVirtualKeyCodes = {
|
|||
K_TABFWD:50012
|
||||
};
|
||||
|
||||
const k = USVirtualKeyCodes;
|
||||
|
||||
/** Map a CLDR scancode to a US VKey ala USVirtualKeyCodes */
|
||||
export const CLDRScanToUSVirtualKeyCodes = {
|
||||
export const CLDRScanToUSVirtualKeyCodes = /* @__PURE__ */ ((k) => ({
|
||||
0x02: k.K_1,
|
||||
0x03: k.K_2,
|
||||
0x04: k.K_3,
|
||||
|
|
@ -202,7 +200,7 @@ export const CLDRScanToUSVirtualKeyCodes = {
|
|||
0x73: k.K_oC1,
|
||||
0x7D: k.K_oE2, // << Same as 0x56; found on jis
|
||||
|
||||
};
|
||||
}))(USVirtualKeyCodes);
|
||||
|
||||
export type KeyMap = number[][];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue