@sankhyalabs/core 5.11.6 → 5.12.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/classes/JSUtils.md +30 -3
- package/.docs/classes/KeyboardManager.md +233 -0
- package/.docs/classes/StringUtils.md +76 -1
- package/.docs/modules.md +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/JSUtils.d.ts +9 -0
- package/dist/utils/JSUtils.js +20 -0
- package/dist/utils/JSUtils.js.map +1 -1
- package/dist/utils/KeyboardManager/constants/meta-keys.d.ts +2 -0
- package/dist/utils/KeyboardManager/constants/meta-keys.js +7 -0
- package/dist/utils/KeyboardManager/constants/meta-keys.js.map +1 -0
- package/dist/utils/KeyboardManager/index.d.ts +69 -0
- package/dist/utils/KeyboardManager/index.js +156 -0
- package/dist/utils/KeyboardManager/index.js.map +1 -0
- package/dist/utils/KeyboardManager/interface.d.ts +20 -0
- package/dist/utils/KeyboardManager/interface.js +2 -0
- package/dist/utils/KeyboardManager/interface.js.map +1 -0
- package/dist/utils/KeyboardManager/keyCodes/android.d.ts +2 -0
- package/dist/utils/KeyboardManager/keyCodes/android.js +83 -0
- package/dist/utils/KeyboardManager/keyCodes/android.js.map +1 -0
- package/dist/utils/KeyboardManager/keyCodes/dead.d.ts +16 -0
- package/dist/utils/KeyboardManager/keyCodes/dead.js +14 -0
- package/dist/utils/KeyboardManager/keyCodes/dead.js.map +1 -0
- package/dist/utils/KeyboardManager/keyCodes/index.d.ts +1 -0
- package/dist/utils/KeyboardManager/keyCodes/index.js +11 -0
- package/dist/utils/KeyboardManager/keyCodes/index.js.map +1 -0
- package/dist/utils/KeyboardManager/keyCodes/meta.d.ts +16 -0
- package/dist/utils/KeyboardManager/keyCodes/meta.js +18 -0
- package/dist/utils/KeyboardManager/keyCodes/meta.js.map +1 -0
- package/dist/utils/KeyboardManager/keyCodes/special-characters.d.ts +5 -0
- package/dist/utils/KeyboardManager/keyCodes/special-characters.js +91 -0
- package/dist/utils/KeyboardManager/keyCodes/special-characters.js.map +1 -0
- package/dist/utils/KeyboardManager/keyCodes/with-events.d.ts +2 -0
- package/dist/utils/KeyboardManager/keyCodes/with-events.js +1691 -0
- package/dist/utils/KeyboardManager/keyCodes/with-events.js.map +1 -0
- package/dist/utils/KeyboardManager/types/key-code-events.d.ts +15 -0
- package/dist/utils/KeyboardManager/types/key-code-events.js +2 -0
- package/dist/utils/KeyboardManager/types/key-code-events.js.map +1 -0
- package/dist/utils/KeyboardManager/types/meta-keys.d.ts +1 -0
- package/dist/utils/KeyboardManager/types/meta-keys.js +2 -0
- package/dist/utils/KeyboardManager/types/meta-keys.js.map +1 -0
- package/dist/utils/StringUtils.d.ts +21 -0
- package/dist/utils/StringUtils.js +30 -0
- package/dist/utils/StringUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +3 -1
- package/src/utils/JSUtils.ts +33 -9
- package/src/utils/KeyboardManager/constants/meta-keys.ts +8 -0
- package/src/utils/KeyboardManager/index.ts +208 -0
- package/src/utils/KeyboardManager/interface.ts +23 -0
- package/src/utils/KeyboardManager/keyCodes/android.ts +84 -0
- package/src/utils/KeyboardManager/keyCodes/dead.ts +19 -0
- package/src/utils/KeyboardManager/keyCodes/index.ts +11 -0
- package/src/utils/KeyboardManager/keyCodes/meta.ts +31 -0
- package/src/utils/KeyboardManager/keyCodes/special-characters.ts +105 -0
- package/src/utils/KeyboardManager/keyCodes/with-events.ts +1692 -0
- package/src/utils/KeyboardManager/types/key-code-events.ts +15 -0
- package/src/utils/KeyboardManager/types/meta-keys.ts +1 -0
- package/src/utils/StringUtils.ts +72 -38
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { JSUtils } from "../JSUtils.js";
|
|
2
|
+
import { StringUtils } from "../StringUtils.js";
|
|
3
|
+
import { META_KEYS } from "./constants/meta-keys.js";
|
|
4
|
+
import { keyCodeEventValues } from "./keyCodes/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* `KeyboardManager` é reponsável por gerenciar eventos de teclado.
|
|
7
|
+
*/
|
|
8
|
+
export class KeyboardManager {
|
|
9
|
+
/**
|
|
10
|
+
* Construtor para a classe Keyboard.
|
|
11
|
+
*
|
|
12
|
+
* @param {IKeyboardOptions} options - opções para o gerenciamento de eventos de teclado.
|
|
13
|
+
*/
|
|
14
|
+
constructor(options) {
|
|
15
|
+
this._mappedElements = {};
|
|
16
|
+
this._options = Object.assign({ type: 'keydown', propagate: false, element: document.body, debounceTime: 0 }, options);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Associa um evento de teclado com uma função
|
|
20
|
+
*
|
|
21
|
+
* @param {string} keyMap - Chave de mapeamento de teclado.
|
|
22
|
+
* @param {VoidFunction} callback - Função a ser executada quando o evento de teclado for disparado.
|
|
23
|
+
* @param {IKeyboardOptions} [options] - Configurações dos eventos de teclado.
|
|
24
|
+
* @return {KeyboardManager} O objeto `KeyboardManager`
|
|
25
|
+
*/
|
|
26
|
+
bind(keyMap, callback, options) {
|
|
27
|
+
var _a;
|
|
28
|
+
if ((_a = this._mappedElements) === null || _a === void 0 ? void 0 : _a[keyMap]) {
|
|
29
|
+
throw new Error("Event already exists.");
|
|
30
|
+
}
|
|
31
|
+
const bindOptions = Object.assign(Object.assign({}, this._options), options);
|
|
32
|
+
const debounceFunction = JSUtils.debounceLeading(this.handleListenerEvent, bindOptions.debounceTime, this)
|
|
33
|
+
.bind(this, keyMap, callback, bindOptions.propagate);
|
|
34
|
+
this._mappedElements = Object.assign(Object.assign({}, this._mappedElements), { [keyMap]: {
|
|
35
|
+
callback: debounceFunction,
|
|
36
|
+
options: bindOptions
|
|
37
|
+
} });
|
|
38
|
+
bindOptions.element.addEventListener(bindOptions.type, debounceFunction);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Remove um evento de teclado
|
|
43
|
+
*
|
|
44
|
+
* @param {string} keyMap - Chave de mapeamento de teclado.
|
|
45
|
+
* @return {KeyboardManager} - O objeto `KeyboardManager`
|
|
46
|
+
*/
|
|
47
|
+
unbind(keyMap) {
|
|
48
|
+
var _a;
|
|
49
|
+
const unbindElement = (_a = this._mappedElements) === null || _a === void 0 ? void 0 : _a[keyMap];
|
|
50
|
+
if (!unbindElement) {
|
|
51
|
+
throw new Error("KeyMap not exists.");
|
|
52
|
+
}
|
|
53
|
+
delete this._mappedElements[keyMap];
|
|
54
|
+
const { callback, options: { element, type } } = unbindElement;
|
|
55
|
+
element.removeEventListener(type, callback);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Obtém as chaves mapeadas.
|
|
60
|
+
*
|
|
61
|
+
* @return {Array<IGetMappedKeys>} chaves mapeadas com descrições
|
|
62
|
+
*/
|
|
63
|
+
get mappedKeys() {
|
|
64
|
+
return Object.entries(this._mappedElements).map(([key, value]) => ({
|
|
65
|
+
[key]: value.options.description || key
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Executa uma função quando um evento de teclado for disparado
|
|
70
|
+
*
|
|
71
|
+
* @param {string} keyMap - Chave de mapeamento de teclado
|
|
72
|
+
* @param {VoidFunction} callback - Função a ser executada
|
|
73
|
+
* @param {boolean} propagate - Se o evento de teclado deve ser propagado
|
|
74
|
+
* @param {KeyboardEvent} event - O evento de teclado
|
|
75
|
+
*/
|
|
76
|
+
handleListenerEvent(keyMap, callback, propagate, event) {
|
|
77
|
+
const { isKeyApplied, modifiedList } = this.keyAppliedWithModifiers(keyMap, event.keyCode);
|
|
78
|
+
if (isKeyApplied && this.checkModifiersIsApplied(event, modifiedList)) {
|
|
79
|
+
this.verifyAndStopPropagation(event, propagate);
|
|
80
|
+
(callback || (() => { }))();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Verifica se um evento de teclado foi disparado
|
|
85
|
+
*
|
|
86
|
+
* @param {string} keyMap - Chave de mapeamento de teclado
|
|
87
|
+
* @param {number} pressedKeyCode - Código do evento de teclado pressionado
|
|
88
|
+
* @return {IKeyAppliedResponse} Retorna se o evento de teclado foi disparado e as teclas modificadoras aplicadas ao evento
|
|
89
|
+
*/
|
|
90
|
+
keyAppliedWithModifiers(keyMap, pressedKeyCode) {
|
|
91
|
+
const keys = keyMap.split("+");
|
|
92
|
+
let isKeyApplied = false;
|
|
93
|
+
const modifiedList = [];
|
|
94
|
+
for (let key of keys) {
|
|
95
|
+
key = key.trim();
|
|
96
|
+
if (META_KEYS.includes(key.toLowerCase())) {
|
|
97
|
+
modifiedList.push(key);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const pressedKey = keyCodeEventValues.reduce((acc, { key: checkKey, keyCode }) => {
|
|
101
|
+
if (checkKey == key || checkKey == StringUtils.getOppositeCase(key)) {
|
|
102
|
+
acc.push(keyCode);
|
|
103
|
+
}
|
|
104
|
+
return acc;
|
|
105
|
+
}, []);
|
|
106
|
+
if (pressedKey.includes(pressedKeyCode)) {
|
|
107
|
+
isKeyApplied = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return { isKeyApplied, modifiedList };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Verifica se todas as teclas modificadoras foram aplicadas ao evento
|
|
114
|
+
*
|
|
115
|
+
* @param {KeyboardEvent} event - O evento de teclado
|
|
116
|
+
* @param {Array<string>} modifiedList - As teclas modificadoras
|
|
117
|
+
* @return {boolean} Retorna se todas as teclas modificadoras foram aplicadas
|
|
118
|
+
*/
|
|
119
|
+
checkModifiersIsApplied(event, modifiedList) {
|
|
120
|
+
const eventModifiers = {
|
|
121
|
+
shift: event.shiftKey,
|
|
122
|
+
ctrl: event.ctrlKey,
|
|
123
|
+
alt: event.altKey,
|
|
124
|
+
meta: event.metaKey,
|
|
125
|
+
};
|
|
126
|
+
if (modifiedList.length === 0) {
|
|
127
|
+
return !(eventModifiers.shift ||
|
|
128
|
+
eventModifiers.ctrl ||
|
|
129
|
+
eventModifiers.alt ||
|
|
130
|
+
eventModifiers.meta);
|
|
131
|
+
}
|
|
132
|
+
let hasAllModifiedApplied = true;
|
|
133
|
+
for (const modifier of modifiedList) {
|
|
134
|
+
if (!eventModifiers[modifier]) {
|
|
135
|
+
hasAllModifiedApplied = false;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return hasAllModifiedApplied;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Verifica e impede que o evento de teclado seja propagado
|
|
143
|
+
*
|
|
144
|
+
* @param {KeyboardEvent} event - O evento de teclado
|
|
145
|
+
* @param {boolean} propagate - Se o evento de teclado deve ser propagado
|
|
146
|
+
* @return {void}
|
|
147
|
+
*/
|
|
148
|
+
verifyAndStopPropagation(event, propagate) {
|
|
149
|
+
var _a, _b;
|
|
150
|
+
if (!propagate) {
|
|
151
|
+
(_a = event === null || event === void 0 ? void 0 : event.preventDefault) === null || _a === void 0 ? void 0 : _a.call(event);
|
|
152
|
+
(_b = event === null || event === void 0 ? void 0 : event.stopPropagation) === null || _b === void 0 ? void 0 : _b.call(event);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/KeyboardManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,OAAO,eAAe;IAIzB;;;;OAIG;IACH,YAAY,OAAmC;QAPvC,oBAAe,GAAgC,EAAE,CAAC;QAQvD,IAAI,CAAC,QAAQ,mBACV,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,QAAQ,CAAC,IAAI,EACtB,YAAY,EAAE,CAAC,IACZ,OAAO,CACZ,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,IAAI,CAAC,MAAc,EAAE,QAAsB,EAAE,OAAmC;;QACpF,IAAI,MAAA,IAAI,CAAC,eAAe,0CAAG,MAAM,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC3C;QAED,MAAM,WAAW,mCACX,IAAI,CAAC,QAAQ,GACb,OAAO,CACZ,CAAA;QAED,MAAM,gBAAgB,GAAiB,OAAO,CAAC,eAAe,CACxD,IAAI,CAAC,mBAAmB,EACxB,WAAW,CAAC,YAAY,EACxB,IAAI,CACN;aACA,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,eAAe,mCACd,IAAI,CAAC,eAAe,KACvB,CAAC,MAAM,CAAC,EAAE;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,OAAO,EAAE,WAAW;aACtB,GACH,CAAA;QAED,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,MAAc;;QACzB,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,eAAe,0CAAG,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,EACH,QAAQ,EACR,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAC5B,GAAG,aAAa,CAAC;QAElB,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,IAAW,UAAU;QAClB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAC5C,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG;SACzC,CAAC,CACJ,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CAAC,MAAc,EAAE,QAAsB,EAAE,SAAkB,EAAE,KAAoB;QACzG,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAE3F,IAAI,YAAY,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;YACpE,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7B;IACJ,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,MAAc,EAAE,cAAsB;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YACnB,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,IAAK,SAA2B,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE;gBAC3D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,SAAS;aACX;YAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CACzC,CAAC,GAAkB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;gBAChD,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;oBAClE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACpB;gBAED,OAAO,GAAG,CAAC;YACd,CAAC,EAAE,EAAE,CAAC,CAAC;YAEV,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBACtC,YAAY,GAAG,IAAI,CAAC;aACtB;SACH;QAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,KAAoB,EAAE,YAA2B;QAC9E,MAAM,cAAc,GAA4B;YAC7C,KAAK,EAAE,KAAK,CAAC,QAAQ;YACrB,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,GAAG,EAAE,KAAK,CAAC,MAAM;YACjB,IAAI,EAAE,KAAK,CAAC,OAAO;SACrB,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,CAAC,CACL,cAAc,CAAC,KAAK;gBACpB,cAAc,CAAC,IAAI;gBACnB,cAAc,CAAC,GAAG;gBAClB,cAAc,CAAC,IAAI,CACrB,CAAC;SACJ;QAED,IAAI,qBAAqB,GAAG,IAAI,CAAC;QAEjC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAC5B,qBAAqB,GAAG,KAAK,CAAC;gBAC9B,MAAM;aACR;SACH;QAED,OAAO,qBAAqB,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACK,wBAAwB,CAAC,KAAoB,EAAE,SAAkB;;QACtE,IAAI,CAAC,SAAS,EAAE;YACb,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,qDAAI,CAAC;YAC1B,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,qDAAI,CAAC;SAC7B;IACJ,CAAC;CACH"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface IKeyboardOptions {
|
|
2
|
+
type: 'keydown' | 'keyup';
|
|
3
|
+
propagate: boolean;
|
|
4
|
+
element: HTMLElement | Document;
|
|
5
|
+
debounceTime: number;
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface IKeyboardMappedKeysElements {
|
|
9
|
+
[key: string]: {
|
|
10
|
+
callback: VoidFunction;
|
|
11
|
+
options: IKeyboardOptions;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface IKeyAppliedResponse {
|
|
15
|
+
isKeyApplied: boolean;
|
|
16
|
+
modifiedList: Array<string>;
|
|
17
|
+
}
|
|
18
|
+
export interface IGetMappedKeys {
|
|
19
|
+
[key: string]: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/utils/KeyboardManager/interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export const androidSpecificKeyCodes = {
|
|
2
|
+
169: {
|
|
3
|
+
key: '©',
|
|
4
|
+
keyCode: 169,
|
|
5
|
+
which: 169,
|
|
6
|
+
code: 'Copyright',
|
|
7
|
+
location: 0,
|
|
8
|
+
description: 'Copyright sign'
|
|
9
|
+
},
|
|
10
|
+
174: {
|
|
11
|
+
key: '®',
|
|
12
|
+
keyCode: 174,
|
|
13
|
+
which: 174,
|
|
14
|
+
code: 'Registered ',
|
|
15
|
+
location: 0,
|
|
16
|
+
description: 'Registered sign'
|
|
17
|
+
},
|
|
18
|
+
40: {
|
|
19
|
+
key: '(',
|
|
20
|
+
keyCode: 40,
|
|
21
|
+
which: 40,
|
|
22
|
+
code: 'Left parenthesis',
|
|
23
|
+
location: 0,
|
|
24
|
+
description: 'Left parenthesis'
|
|
25
|
+
},
|
|
26
|
+
41: {
|
|
27
|
+
key: ')',
|
|
28
|
+
keyCode: 41,
|
|
29
|
+
which: 41,
|
|
30
|
+
code: 'Right parenthesis',
|
|
31
|
+
location: 0,
|
|
32
|
+
description: 'Right parenthesis'
|
|
33
|
+
},
|
|
34
|
+
42: {
|
|
35
|
+
key: '*',
|
|
36
|
+
keyCode: 42,
|
|
37
|
+
which: 42,
|
|
38
|
+
code: 'asterisk',
|
|
39
|
+
location: 0,
|
|
40
|
+
description: 'asterisk'
|
|
41
|
+
},
|
|
42
|
+
43: {
|
|
43
|
+
key: '+',
|
|
44
|
+
keyCode: 43,
|
|
45
|
+
which: 43,
|
|
46
|
+
code: 'Plus',
|
|
47
|
+
location: 0,
|
|
48
|
+
description: 'plus'
|
|
49
|
+
},
|
|
50
|
+
44: {
|
|
51
|
+
key: ',',
|
|
52
|
+
keyCode: 45,
|
|
53
|
+
which: 45,
|
|
54
|
+
code: 'Comma',
|
|
55
|
+
location: 0,
|
|
56
|
+
description: 'comma'
|
|
57
|
+
},
|
|
58
|
+
45: {
|
|
59
|
+
key: '-',
|
|
60
|
+
keyCode: 45,
|
|
61
|
+
which: 45,
|
|
62
|
+
code: 'Minus',
|
|
63
|
+
location: 0,
|
|
64
|
+
description: 'minus'
|
|
65
|
+
},
|
|
66
|
+
46: {
|
|
67
|
+
key: '.',
|
|
68
|
+
keyCode: 46,
|
|
69
|
+
which: 46,
|
|
70
|
+
code: 'Period',
|
|
71
|
+
location: 0,
|
|
72
|
+
description: 'period'
|
|
73
|
+
},
|
|
74
|
+
47: {
|
|
75
|
+
key: '/',
|
|
76
|
+
keyCode: 47,
|
|
77
|
+
which: 47,
|
|
78
|
+
code: 'Slash',
|
|
79
|
+
location: 0,
|
|
80
|
+
description: 'slash'
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android.js","sourceRoot":"","sources":["../../../../src/utils/KeyboardManager/keyCodes/android.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAiC;IACnE,GAAG,EAAE;QACH,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,gBAAgB;KAC9B;IACD,GAAG,EAAE;QACH,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,iBAAiB;KAC/B;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,kBAAkB;KAChC;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,mBAAmB;KACjC;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,UAAU;KACxB;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,MAAM;KACpB;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,OAAO;KACrB;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,OAAO;KACrB;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,QAAQ;KACtB;IACD,EAAE,EAAE;QACF,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,OAAO;KACrB;CACF,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const deadKeyCodeEvents: {
|
|
2
|
+
key: string;
|
|
3
|
+
keyCode: number;
|
|
4
|
+
which: number;
|
|
5
|
+
code?: string | undefined;
|
|
6
|
+
location?: number | undefined;
|
|
7
|
+
description?: string | undefined;
|
|
8
|
+
unicode?: string | undefined;
|
|
9
|
+
altKey?: boolean | undefined;
|
|
10
|
+
ctrlKey?: boolean | undefined;
|
|
11
|
+
metaKey?: boolean | undefined;
|
|
12
|
+
shiftKey?: boolean | undefined;
|
|
13
|
+
repeat?: boolean | undefined;
|
|
14
|
+
path?: string | undefined;
|
|
15
|
+
}[];
|
|
16
|
+
export declare const deadKeyCodeEventValues: import("../types/key-code-events.js").KeyCodeEvent[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { keyCodesWithEvents } from './with-events.js';
|
|
2
|
+
export const deadKeyCodeEvents = [
|
|
3
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[69]), { key: 'Dead' }),
|
|
4
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[85]), { key: 'Dead' }),
|
|
5
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[73]), { key: 'Dead' }),
|
|
6
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[192]), { key: 'Dead', code: 'IntlBackslash' }),
|
|
7
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[78]), { key: 'Dead' })
|
|
8
|
+
];
|
|
9
|
+
export const deadKeyCodeEventValues = [
|
|
10
|
+
...deadKeyCodeEvents,
|
|
11
|
+
keyCodesWithEvents[161],
|
|
12
|
+
keyCodesWithEvents[229]
|
|
13
|
+
];
|
|
14
|
+
//# sourceMappingURL=dead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead.js","sourceRoot":"","sources":["../../../../src/utils/KeyboardManager/keyCodes/dead.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,CAAC,MAAM,iBAAiB,GAAG;oCAC1B,kBAAkB,CAAC,EAAE,CAAC,KAAE,GAAG,EAAE,MAAM;oCACnC,kBAAkB,CAAC,EAAE,CAAC,KAAE,GAAG,EAAE,MAAM;oCACnC,kBAAkB,CAAC,EAAE,CAAC,KAAE,GAAG,EAAE,MAAM;oCAEnC,kBAAkB,CAAC,GAAG,CAAC,KAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,eAAe;oCAElB,kBAAkB,CAAC,EAAE,CAAC,KAAE,GAAG,EAAE,MAAM;CACzC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,iBAAiB;IACpB,kBAAkB,CAAC,GAAG,CAAC;IACvB,kBAAkB,CAAC,GAAG,CAAC;CACxB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const keyCodeEventValues: import("../types/key-code-events.js").KeyCodeEvent[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { deadKeyCodeEvents } from './dead.js';
|
|
2
|
+
import { rightMetaKeyCodeEvents } from './meta.js';
|
|
3
|
+
import { specialCharactersKeyCodeEvents } from './special-characters.js';
|
|
4
|
+
import { keyCodesWithEvents } from './with-events.js';
|
|
5
|
+
export const keyCodeEventValues = [
|
|
6
|
+
...Object.values(keyCodesWithEvents),
|
|
7
|
+
...rightMetaKeyCodeEvents,
|
|
8
|
+
...deadKeyCodeEvents,
|
|
9
|
+
...specialCharactersKeyCodeEvents
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/KeyboardManager/keyCodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;IACpC,GAAG,sBAAsB;IACzB,GAAG,iBAAiB;IACpB,GAAG,8BAA8B;CAClC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const rightMetaKeyCodeEvents: {
|
|
2
|
+
location: number;
|
|
3
|
+
code: string;
|
|
4
|
+
key: string;
|
|
5
|
+
keyCode: number;
|
|
6
|
+
which: number;
|
|
7
|
+
description?: string | undefined;
|
|
8
|
+
unicode?: string | undefined;
|
|
9
|
+
altKey?: boolean | undefined;
|
|
10
|
+
ctrlKey?: boolean | undefined;
|
|
11
|
+
metaKey?: boolean | undefined;
|
|
12
|
+
shiftKey?: boolean | undefined;
|
|
13
|
+
repeat?: boolean | undefined;
|
|
14
|
+
path?: string | undefined;
|
|
15
|
+
}[];
|
|
16
|
+
export declare const metaKeyCodeEvents: import("../types/key-code-events.js").KeyCodeEvent[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { keyCodesWithEvents } from './with-events.js';
|
|
2
|
+
export const rightMetaKeyCodeEvents = [
|
|
3
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[16]), { location: 2, code: 'ShiftRight' }),
|
|
4
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[17]), { location: 2, code: 'ControlRight' }),
|
|
5
|
+
Object.assign(Object.assign({}, keyCodesWithEvents[18]), { location: 2, code: 'AltRight' })
|
|
6
|
+
];
|
|
7
|
+
export const metaKeyCodeEvents = [
|
|
8
|
+
keyCodesWithEvents[16],
|
|
9
|
+
keyCodesWithEvents[17],
|
|
10
|
+
keyCodesWithEvents[18],
|
|
11
|
+
keyCodesWithEvents[91],
|
|
12
|
+
keyCodesWithEvents[92],
|
|
13
|
+
keyCodesWithEvents[93],
|
|
14
|
+
keyCodesWithEvents[224],
|
|
15
|
+
keyCodesWithEvents[225],
|
|
16
|
+
...rightMetaKeyCodeEvents
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/utils/KeyboardManager/keyCodes/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG;oCAE/B,kBAAkB,CAAC,EAAE,CAAC,KACzB,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,YAAY;oCAGf,kBAAkB,CAAC,EAAE,CAAC,KACzB,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,cAAc;oCAGjB,kBAAkB,CAAC,EAAE,CAAC,KACzB,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,UAAU;CAEnB,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,kBAAkB,CAAC,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC;IACtB,kBAAkB,CAAC,GAAG,CAAC;IACvB,kBAAkB,CAAC,GAAG,CAAC;IACvB,GAAG,sBAAsB;CAC1B,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { KeyCodeEvent } from '../types/key-code-events.js';
|
|
2
|
+
type SPECIAL_CHARACTERS = Pick<KeyCodeEvent, 'keyCode' | 'shiftKey' | 'altKey'>;
|
|
3
|
+
export declare const specialCharacters: Record<string, SPECIAL_CHARACTERS>;
|
|
4
|
+
export declare const specialCharactersKeyCodeEvents: KeyCodeEvent[];
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { keyCodesWithEvents } from './with-events.js';
|
|
2
|
+
export const specialCharacters = {
|
|
3
|
+
'"': { keyCode: 222, shiftKey: true },
|
|
4
|
+
'>': { keyCode: 190, shiftKey: true },
|
|
5
|
+
'?': { keyCode: 191, shiftKey: true },
|
|
6
|
+
'!': { keyCode: 49, shiftKey: true },
|
|
7
|
+
'#': { keyCode: 51, shiftKey: true },
|
|
8
|
+
'%': { keyCode: 53, shiftKey: true },
|
|
9
|
+
'(': { keyCode: 57, shiftKey: true },
|
|
10
|
+
'^': { keyCode: 73, altKey: true },
|
|
11
|
+
'@': { keyCode: 50, shiftKey: true },
|
|
12
|
+
'&': { keyCode: 55, shiftKey: true },
|
|
13
|
+
'}': { keyCode: 221, shiftKey: true },
|
|
14
|
+
'{': { keyCode: 219, shiftKey: true },
|
|
15
|
+
'±': { keyCode: 187, shiftKey: true },
|
|
16
|
+
'§': { keyCode: 54, shiftKey: true },
|
|
17
|
+
'¡': { keyCode: 49, altKey: true },
|
|
18
|
+
'²': { keyCode: 50, altKey: true },
|
|
19
|
+
'³': { keyCode: 51, altKey: true },
|
|
20
|
+
'¤': { keyCode: 52, altKey: true },
|
|
21
|
+
'€': { keyCode: 53, altKey: true },
|
|
22
|
+
'¼': { keyCode: 54, altKey: true },
|
|
23
|
+
'½': { keyCode: 55, altKey: true },
|
|
24
|
+
'¾': { keyCode: 56, altKey: true },
|
|
25
|
+
'‘': { keyCode: 57, altKey: true },
|
|
26
|
+
'’': { keyCode: 48, altKey: true },
|
|
27
|
+
'¥': { keyCode: 89, altKey: true },
|
|
28
|
+
'×': { keyCode: 187, altKey: true },
|
|
29
|
+
ä: { keyCode: 81, altKey: true },
|
|
30
|
+
å: { keyCode: 87, altKey: true },
|
|
31
|
+
é: { keyCode: 69, altKey: true },
|
|
32
|
+
'®': { keyCode: 82, altKey: true },
|
|
33
|
+
þ: { keyCode: 84, altKey: true },
|
|
34
|
+
ü: { keyCode: 89, altKey: true },
|
|
35
|
+
ú: { keyCode: 85, altKey: true },
|
|
36
|
+
í: { keyCode: 73, altKey: true },
|
|
37
|
+
ó: { keyCode: 79, altKey: true },
|
|
38
|
+
ö: { keyCode: 80, altKey: true },
|
|
39
|
+
'«': { keyCode: 219, altKey: true },
|
|
40
|
+
'»': { keyCode: 221, altKey: true },
|
|
41
|
+
á: { keyCode: 65, altKey: true },
|
|
42
|
+
ß: { keyCode: 83, altKey: true },
|
|
43
|
+
ð: { keyCode: 68, altKey: true },
|
|
44
|
+
ø: { keyCode: 76, altKey: true },
|
|
45
|
+
'¶': { keyCode: 186, altKey: true },
|
|
46
|
+
'´': { keyCode: 222, altKey: true },
|
|
47
|
+
'¬': { keyCode: 220, altKey: true },
|
|
48
|
+
æ: { keyCode: 90, altKey: true },
|
|
49
|
+
'©': { keyCode: 67, altKey: true },
|
|
50
|
+
ñ: { keyCode: 78, altKey: true },
|
|
51
|
+
µ: { keyCode: 77, altKey: true },
|
|
52
|
+
ç: { keyCode: 188, altKey: true },
|
|
53
|
+
'¿': { keyCode: 191, altKey: true },
|
|
54
|
+
Ω: { keyCode: 90, altKey: true },
|
|
55
|
+
'≈': { keyCode: 88, altKey: true },
|
|
56
|
+
œ: { keyCode: 81, altKey: true },
|
|
57
|
+
Σ: { keyCode: 87, altKey: true },
|
|
58
|
+
'†': { keyCode: 84, altKey: true },
|
|
59
|
+
'¨': { keyCode: 85, altKey: true },
|
|
60
|
+
π: { keyCode: 80, altKey: true },
|
|
61
|
+
ƒ: { keyCode: 70, altKey: true },
|
|
62
|
+
'˙': { keyCode: 72, altKey: true },
|
|
63
|
+
'∆': { keyCode: 74, altKey: true },
|
|
64
|
+
'°': { keyCode: 75, altKey: true },
|
|
65
|
+
'√': { keyCode: 86, altKey: true },
|
|
66
|
+
'∫': { keyCode: 66, altKey: true },
|
|
67
|
+
'~': { keyCode: 78, altKey: true },
|
|
68
|
+
'™': { keyCode: 50, altKey: true },
|
|
69
|
+
'£': { keyCode: 51, altKey: true },
|
|
70
|
+
'¢': { keyCode: 52, altKey: true },
|
|
71
|
+
'∞': { keyCode: 53, altKey: true },
|
|
72
|
+
'…': { keyCode: 186, altKey: true },
|
|
73
|
+
'•': { keyCode: 56, altKey: true },
|
|
74
|
+
º: { keyCode: 48, altKey: true },
|
|
75
|
+
'–': { keyCode: 189, altKey: true },
|
|
76
|
+
'≠': { keyCode: 187, altKey: true },
|
|
77
|
+
'≤': { keyCode: 190, altKey: true },
|
|
78
|
+
'≥': { keyCode: 188, altKey: true },
|
|
79
|
+
'÷': { keyCode: 191, altKey: true },
|
|
80
|
+
'”': { keyCode: 219, altKey: true },
|
|
81
|
+
ª: { keyCode: 57, altKey: true },
|
|
82
|
+
'˚': { keyCode: 72, altKey: true },
|
|
83
|
+
'∂': { keyCode: 68, altKey: true },
|
|
84
|
+
'∑': { keyCode: 87, altKey: true },
|
|
85
|
+
'“': { keyCode: 219, altKey: true },
|
|
86
|
+
_: { keyCode: 189, shiftKey: true }
|
|
87
|
+
};
|
|
88
|
+
export const specialCharactersKeyCodeEvents = Object.entries(specialCharacters).map(([key, keyCodeEvent]) => {
|
|
89
|
+
return Object.assign(Object.assign(Object.assign({}, keyCodesWithEvents[keyCodeEvent.keyCode]), keyCodeEvent), { key, unicode: key });
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=special-characters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"special-characters.js","sourceRoot":"","sources":["../../../../src/utils/KeyboardManager/keyCodes/special-characters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAOrD,MAAM,CAAC,MAAM,iBAAiB,GAAuC;IACnE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACnC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;CACpC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAmB,MAAM,CAAC,OAAO,CAC1E,iBAAiB,CAClB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE;IAC5B,qDACK,kBAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,GACxC,YAAY,KACf,GAAG,EACH,OAAO,EAAE,GAAG,IACb;AACH,CAAC,CAAC,CAAA"}
|