@composy/keyboard-core 0.0.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/README.md +37 -0
- package/dist/index.js +3605 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +1 -0
- package/es/icons.d.ts +58 -0
- package/es/icons.d.ts.map +1 -0
- package/es/icons.js +34 -0
- package/es/icons.js.map +1 -0
- package/es/index.d.ts +12 -0
- package/es/index.d.ts.map +1 -0
- package/es/index.js +36 -0
- package/es/layouts/amount.d.ts +14 -0
- package/es/layouts/amount.d.ts.map +1 -0
- package/es/layouts/amount.js +175 -0
- package/es/layouts/amount.js.map +1 -0
- package/es/layouts/bankcard.d.ts +15 -0
- package/es/layouts/bankcard.d.ts.map +1 -0
- package/es/layouts/bankcard.js +99 -0
- package/es/layouts/bankcard.js.map +1 -0
- package/es/layouts/email.d.ts +11 -0
- package/es/layouts/email.d.ts.map +1 -0
- package/es/layouts/email.js +126 -0
- package/es/layouts/email.js.map +1 -0
- package/es/layouts/idcard.d.ts +16 -0
- package/es/layouts/idcard.d.ts.map +1 -0
- package/es/layouts/idcard.js +99 -0
- package/es/layouts/idcard.js.map +1 -0
- package/es/layouts/index.d.ts +54 -0
- package/es/layouts/index.d.ts.map +1 -0
- package/es/layouts/index.js +78 -0
- package/es/layouts/index.js.map +1 -0
- package/es/layouts/license-plate.d.ts +35 -0
- package/es/layouts/license-plate.d.ts.map +1 -0
- package/es/layouts/license-plate.js +290 -0
- package/es/layouts/license-plate.js.map +1 -0
- package/es/layouts/number.d.ts +14 -0
- package/es/layouts/number.d.ts.map +1 -0
- package/es/layouts/number.js +168 -0
- package/es/layouts/number.js.map +1 -0
- package/es/layouts/phone.d.ts +15 -0
- package/es/layouts/phone.d.ts.map +1 -0
- package/es/layouts/phone.js +175 -0
- package/es/layouts/phone.js.map +1 -0
- package/es/layouts/punct.d.ts +7 -0
- package/es/layouts/punct.d.ts.map +1 -0
- package/es/layouts/punct.js +112 -0
- package/es/layouts/punct.js.map +1 -0
- package/es/layouts/qwerty.d.ts +10 -0
- package/es/layouts/qwerty.d.ts.map +1 -0
- package/es/layouts/qwerty.js +116 -0
- package/es/layouts/qwerty.js.map +1 -0
- package/es/layouts/search.d.ts +7 -0
- package/es/layouts/search.d.ts.map +1 -0
- package/es/layouts/search.js +101 -0
- package/es/layouts/search.js.map +1 -0
- package/es/layouts/symbol.d.ts +14 -0
- package/es/layouts/symbol.d.ts.map +1 -0
- package/es/layouts/symbol.js +194 -0
- package/es/layouts/symbol.js.map +1 -0
- package/es/layouts/url.d.ts +7 -0
- package/es/layouts/url.d.ts.map +1 -0
- package/es/layouts/url.js +99 -0
- package/es/layouts/url.js.map +1 -0
- package/es/layouts/verifycode.d.ts +15 -0
- package/es/layouts/verifycode.d.ts.map +1 -0
- package/es/layouts/verifycode.js +100 -0
- package/es/layouts/verifycode.js.map +1 -0
- package/es/managers/index.d.ts +8 -0
- package/es/managers/index.d.ts.map +1 -0
- package/es/managers/index.js +14 -0
- package/es/managers/keyboard-manager.d.ts +130 -0
- package/es/managers/keyboard-manager.d.ts.map +1 -0
- package/es/managers/keyboard-manager.js +374 -0
- package/es/managers/keyboard-manager.js.map +1 -0
- package/es/managers/keyboard-renderer.d.ts +115 -0
- package/es/managers/keyboard-renderer.d.ts.map +1 -0
- package/es/managers/keyboard-renderer.js +283 -0
- package/es/managers/keyboard-renderer.js.map +1 -0
- package/es/managers/position-manager.d.ts +72 -0
- package/es/managers/position-manager.d.ts.map +1 -0
- package/es/managers/position-manager.js +199 -0
- package/es/managers/position-manager.js.map +1 -0
- package/es/themes/index.d.ts +70 -0
- package/es/themes/index.d.ts.map +1 -0
- package/es/themes/index.js +99 -0
- package/es/themes/index.js.map +1 -0
- package/es/themes/presets.d.ts +39 -0
- package/es/themes/presets.d.ts.map +1 -0
- package/es/themes/presets.js +207 -0
- package/es/themes/presets.js.map +1 -0
- package/es/themes/types.d.ts +118 -0
- package/es/themes/types.d.ts.map +1 -0
- package/es/themes/types.js +10 -0
- package/es/types/index.d.ts +7 -0
- package/es/types/index.d.ts.map +1 -0
- package/es/types/index.js +10 -0
- package/es/types/keyboard.d.ts +253 -0
- package/es/types/keyboard.d.ts.map +1 -0
- package/es/types/keyboard.js +10 -0
- package/es/types/position.d.ts +139 -0
- package/es/types/position.d.ts.map +1 -0
- package/es/types/position.js +10 -0
- package/es/utils/device.d.ts +45 -0
- package/es/utils/device.d.ts.map +1 -0
- package/es/utils/device.js +111 -0
- package/es/utils/device.js.map +1 -0
- package/es/utils/dom.d.ts +69 -0
- package/es/utils/dom.d.ts.map +1 -0
- package/es/utils/dom.js +134 -0
- package/es/utils/dom.js.map +1 -0
- package/es/utils/event-emitter.d.ts +52 -0
- package/es/utils/event-emitter.d.ts.map +1 -0
- package/es/utils/event-emitter.js +99 -0
- package/es/utils/event-emitter.js.map +1 -0
- package/es/utils/formatters.d.ts +51 -0
- package/es/utils/formatters.d.ts.map +1 -0
- package/es/utils/formatters.js +57 -0
- package/es/utils/formatters.js.map +1 -0
- package/es/utils/index.d.ts +10 -0
- package/es/utils/index.d.ts.map +1 -0
- package/es/utils/index.js +16 -0
- package/es/utils/random.d.ts +71 -0
- package/es/utils/random.d.ts.map +1 -0
- package/es/utils/random.js +292 -0
- package/es/utils/random.js.map +1 -0
- package/esm/icons.d.ts +58 -0
- package/esm/icons.d.ts.map +1 -0
- package/esm/icons.js +34 -0
- package/esm/icons.js.map +1 -0
- package/esm/index.d.ts +12 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +37 -0
- package/esm/layouts/amount.d.ts +14 -0
- package/esm/layouts/amount.d.ts.map +1 -0
- package/esm/layouts/amount.js +175 -0
- package/esm/layouts/amount.js.map +1 -0
- package/esm/layouts/bankcard.d.ts +15 -0
- package/esm/layouts/bankcard.d.ts.map +1 -0
- package/esm/layouts/bankcard.js +99 -0
- package/esm/layouts/bankcard.js.map +1 -0
- package/esm/layouts/email.d.ts +11 -0
- package/esm/layouts/email.d.ts.map +1 -0
- package/esm/layouts/email.js +126 -0
- package/esm/layouts/email.js.map +1 -0
- package/esm/layouts/idcard.d.ts +16 -0
- package/esm/layouts/idcard.d.ts.map +1 -0
- package/esm/layouts/idcard.js +99 -0
- package/esm/layouts/idcard.js.map +1 -0
- package/esm/layouts/index.d.ts +54 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +78 -0
- package/esm/layouts/index.js.map +1 -0
- package/esm/layouts/license-plate.d.ts +35 -0
- package/esm/layouts/license-plate.d.ts.map +1 -0
- package/esm/layouts/license-plate.js +290 -0
- package/esm/layouts/license-plate.js.map +1 -0
- package/esm/layouts/number.d.ts +14 -0
- package/esm/layouts/number.d.ts.map +1 -0
- package/esm/layouts/number.js +168 -0
- package/esm/layouts/number.js.map +1 -0
- package/esm/layouts/phone.d.ts +15 -0
- package/esm/layouts/phone.d.ts.map +1 -0
- package/esm/layouts/phone.js +175 -0
- package/esm/layouts/phone.js.map +1 -0
- package/esm/layouts/punct.d.ts +7 -0
- package/esm/layouts/punct.d.ts.map +1 -0
- package/esm/layouts/punct.js +112 -0
- package/esm/layouts/punct.js.map +1 -0
- package/esm/layouts/qwerty.d.ts +10 -0
- package/esm/layouts/qwerty.d.ts.map +1 -0
- package/esm/layouts/qwerty.js +116 -0
- package/esm/layouts/qwerty.js.map +1 -0
- package/esm/layouts/search.d.ts +7 -0
- package/esm/layouts/search.d.ts.map +1 -0
- package/esm/layouts/search.js +101 -0
- package/esm/layouts/search.js.map +1 -0
- package/esm/layouts/symbol.d.ts +14 -0
- package/esm/layouts/symbol.d.ts.map +1 -0
- package/esm/layouts/symbol.js +194 -0
- package/esm/layouts/symbol.js.map +1 -0
- package/esm/layouts/url.d.ts +7 -0
- package/esm/layouts/url.d.ts.map +1 -0
- package/esm/layouts/url.js +99 -0
- package/esm/layouts/url.js.map +1 -0
- package/esm/layouts/verifycode.d.ts +15 -0
- package/esm/layouts/verifycode.d.ts.map +1 -0
- package/esm/layouts/verifycode.js +100 -0
- package/esm/layouts/verifycode.js.map +1 -0
- package/esm/managers/index.d.ts +8 -0
- package/esm/managers/index.d.ts.map +1 -0
- package/esm/managers/index.js +14 -0
- package/esm/managers/keyboard-manager.d.ts +130 -0
- package/esm/managers/keyboard-manager.d.ts.map +1 -0
- package/esm/managers/keyboard-manager.js +374 -0
- package/esm/managers/keyboard-manager.js.map +1 -0
- package/esm/managers/keyboard-renderer.d.ts +115 -0
- package/esm/managers/keyboard-renderer.d.ts.map +1 -0
- package/esm/managers/keyboard-renderer.js +283 -0
- package/esm/managers/keyboard-renderer.js.map +1 -0
- package/esm/managers/position-manager.d.ts +72 -0
- package/esm/managers/position-manager.d.ts.map +1 -0
- package/esm/managers/position-manager.js +199 -0
- package/esm/managers/position-manager.js.map +1 -0
- package/esm/themes/index.d.ts +70 -0
- package/esm/themes/index.d.ts.map +1 -0
- package/esm/themes/index.js +99 -0
- package/esm/themes/index.js.map +1 -0
- package/esm/themes/presets.d.ts +39 -0
- package/esm/themes/presets.d.ts.map +1 -0
- package/esm/themes/presets.js +207 -0
- package/esm/themes/presets.js.map +1 -0
- package/esm/themes/types.d.ts +118 -0
- package/esm/themes/types.d.ts.map +1 -0
- package/esm/themes/types.js +10 -0
- package/esm/types/index.d.ts +7 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +10 -0
- package/esm/types/keyboard.d.ts +253 -0
- package/esm/types/keyboard.d.ts.map +1 -0
- package/esm/types/keyboard.js +10 -0
- package/esm/types/position.d.ts +139 -0
- package/esm/types/position.d.ts.map +1 -0
- package/esm/types/position.js +10 -0
- package/esm/utils/device.d.ts +45 -0
- package/esm/utils/device.d.ts.map +1 -0
- package/esm/utils/device.js +111 -0
- package/esm/utils/device.js.map +1 -0
- package/esm/utils/dom.d.ts +69 -0
- package/esm/utils/dom.d.ts.map +1 -0
- package/esm/utils/dom.js +134 -0
- package/esm/utils/dom.js.map +1 -0
- package/esm/utils/event-emitter.d.ts +52 -0
- package/esm/utils/event-emitter.d.ts.map +1 -0
- package/esm/utils/event-emitter.js +99 -0
- package/esm/utils/event-emitter.js.map +1 -0
- package/esm/utils/formatters.d.ts +51 -0
- package/esm/utils/formatters.d.ts.map +1 -0
- package/esm/utils/formatters.js +57 -0
- package/esm/utils/formatters.js.map +1 -0
- package/esm/utils/index.d.ts +10 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +16 -0
- package/esm/utils/random.d.ts +71 -0
- package/esm/utils/random.d.ts.map +1 -0
- package/esm/utils/random.js +292 -0
- package/esm/utils/random.js.map +1 -0
- package/lib/icons.cjs +44 -0
- package/lib/icons.cjs.map +1 -0
- package/lib/icons.d.ts +58 -0
- package/lib/index.cjs +141 -0
- package/lib/index.d.ts +12 -0
- package/lib/layouts/amount.cjs +177 -0
- package/lib/layouts/amount.cjs.map +1 -0
- package/lib/layouts/amount.d.ts +14 -0
- package/lib/layouts/bankcard.cjs +100 -0
- package/lib/layouts/bankcard.cjs.map +1 -0
- package/lib/layouts/bankcard.d.ts +15 -0
- package/lib/layouts/email.cjs +128 -0
- package/lib/layouts/email.cjs.map +1 -0
- package/lib/layouts/email.d.ts +11 -0
- package/lib/layouts/idcard.cjs +100 -0
- package/lib/layouts/idcard.cjs.map +1 -0
- package/lib/layouts/idcard.d.ts +16 -0
- package/lib/layouts/index.cjs +107 -0
- package/lib/layouts/index.cjs.map +1 -0
- package/lib/layouts/index.d.ts +54 -0
- package/lib/layouts/license-plate.cjs +296 -0
- package/lib/layouts/license-plate.cjs.map +1 -0
- package/lib/layouts/license-plate.d.ts +35 -0
- package/lib/layouts/number.cjs +170 -0
- package/lib/layouts/number.cjs.map +1 -0
- package/lib/layouts/number.d.ts +14 -0
- package/lib/layouts/phone.cjs +177 -0
- package/lib/layouts/phone.cjs.map +1 -0
- package/lib/layouts/phone.d.ts +15 -0
- package/lib/layouts/punct.cjs +113 -0
- package/lib/layouts/punct.cjs.map +1 -0
- package/lib/layouts/punct.d.ts +7 -0
- package/lib/layouts/qwerty.cjs +117 -0
- package/lib/layouts/qwerty.cjs.map +1 -0
- package/lib/layouts/qwerty.d.ts +10 -0
- package/lib/layouts/search.cjs +102 -0
- package/lib/layouts/search.cjs.map +1 -0
- package/lib/layouts/search.d.ts +7 -0
- package/lib/layouts/symbol.cjs +196 -0
- package/lib/layouts/symbol.cjs.map +1 -0
- package/lib/layouts/symbol.d.ts +14 -0
- package/lib/layouts/url.cjs +100 -0
- package/lib/layouts/url.cjs.map +1 -0
- package/lib/layouts/url.d.ts +7 -0
- package/lib/layouts/verifycode.cjs +101 -0
- package/lib/layouts/verifycode.cjs.map +1 -0
- package/lib/layouts/verifycode.d.ts +15 -0
- package/lib/managers/index.cjs +20 -0
- package/lib/managers/index.d.ts +8 -0
- package/lib/managers/keyboard-manager.cjs +376 -0
- package/lib/managers/keyboard-manager.cjs.map +1 -0
- package/lib/managers/keyboard-manager.d.ts +130 -0
- package/lib/managers/keyboard-renderer.cjs +285 -0
- package/lib/managers/keyboard-renderer.cjs.map +1 -0
- package/lib/managers/keyboard-renderer.d.ts +115 -0
- package/lib/managers/position-manager.cjs +201 -0
- package/lib/managers/position-manager.cjs.map +1 -0
- package/lib/managers/position-manager.d.ts +72 -0
- package/lib/package.json +3 -0
- package/lib/themes/index.cjs +117 -0
- package/lib/themes/index.cjs.map +1 -0
- package/lib/themes/index.d.ts +70 -0
- package/lib/themes/presets.cjs +214 -0
- package/lib/themes/presets.cjs.map +1 -0
- package/lib/themes/presets.d.ts +39 -0
- package/lib/themes/types.cjs +11 -0
- package/lib/themes/types.d.ts +118 -0
- package/lib/types/index.cjs +11 -0
- package/lib/types/index.d.ts +7 -0
- package/lib/types/keyboard.cjs +11 -0
- package/lib/types/keyboard.d.ts +253 -0
- package/lib/types/position.cjs +11 -0
- package/lib/types/position.d.ts +139 -0
- package/lib/utils/device.cjs +120 -0
- package/lib/utils/device.cjs.map +1 -0
- package/lib/utils/device.d.ts +45 -0
- package/lib/utils/dom.cjs +148 -0
- package/lib/utils/dom.cjs.map +1 -0
- package/lib/utils/dom.d.ts +69 -0
- package/lib/utils/event-emitter.cjs +100 -0
- package/lib/utils/event-emitter.cjs.map +1 -0
- package/lib/utils/event-emitter.d.ts +52 -0
- package/lib/utils/formatters.cjs +66 -0
- package/lib/utils/formatters.cjs.map +1 -0
- package/lib/utils/formatters.d.ts +51 -0
- package/lib/utils/index.cjs +58 -0
- package/lib/utils/index.d.ts +10 -0
- package/lib/utils/random.cjs +301 -0
- package/lib/utils/random.cjs.map +1 -0
- package/lib/utils/random.d.ts +71 -0
- package/package.json +121 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/keyboard-core v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:33:29 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
import { ICON_DELETE, ICON_SHIFT } from "../icons.js";
|
|
11
|
+
//#region src/layouts/url.ts
|
|
12
|
+
function createCharKey(char) {
|
|
13
|
+
return {
|
|
14
|
+
id: `url-char-${char.toLowerCase()}`,
|
|
15
|
+
type: "char",
|
|
16
|
+
label: {
|
|
17
|
+
lower: char.toLowerCase(),
|
|
18
|
+
upper: char.toUpperCase()
|
|
19
|
+
},
|
|
20
|
+
value: {
|
|
21
|
+
lower: char.toLowerCase(),
|
|
22
|
+
upper: char.toUpperCase()
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function snippet(label, width) {
|
|
27
|
+
return {
|
|
28
|
+
id: `url-snippet-${label.replace(/[^a-z0-9]/gi, "") || label.split("").map((c) => c.charCodeAt(0)).join("")}`,
|
|
29
|
+
type: "char",
|
|
30
|
+
label,
|
|
31
|
+
value: label,
|
|
32
|
+
width,
|
|
33
|
+
className: "key-snippet"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const urlLayout = {
|
|
37
|
+
type: "url",
|
|
38
|
+
name: "网址键盘",
|
|
39
|
+
supportShift: true,
|
|
40
|
+
defaultUpperCase: false,
|
|
41
|
+
switchable: ["symbol", "number"],
|
|
42
|
+
rows: [
|
|
43
|
+
{ keys: "qwertyuiop".split("").map(createCharKey) },
|
|
44
|
+
{ keys: "asdfghjkl".split("").map(createCharKey) },
|
|
45
|
+
{ keys: [
|
|
46
|
+
{
|
|
47
|
+
id: "shift",
|
|
48
|
+
type: "shift",
|
|
49
|
+
icon: ICON_SHIFT,
|
|
50
|
+
label: "",
|
|
51
|
+
width: 1.5,
|
|
52
|
+
className: "key-shift"
|
|
53
|
+
},
|
|
54
|
+
..."zxcvbnm".split("").map(createCharKey),
|
|
55
|
+
{
|
|
56
|
+
id: "backspace",
|
|
57
|
+
type: "backspace",
|
|
58
|
+
icon: ICON_DELETE,
|
|
59
|
+
label: "",
|
|
60
|
+
width: 1.5,
|
|
61
|
+
className: "key-backspace"
|
|
62
|
+
}
|
|
63
|
+
] },
|
|
64
|
+
{ keys: [
|
|
65
|
+
{
|
|
66
|
+
id: "switch-number",
|
|
67
|
+
type: "tab",
|
|
68
|
+
label: "123",
|
|
69
|
+
width: 1.2,
|
|
70
|
+
className: "key-switch",
|
|
71
|
+
data: { targetType: "number" }
|
|
72
|
+
},
|
|
73
|
+
snippet("/", .8),
|
|
74
|
+
snippet(".", .8),
|
|
75
|
+
snippet("-", .8),
|
|
76
|
+
snippet(".com", 1.5),
|
|
77
|
+
snippet(".cn", 1.2),
|
|
78
|
+
{
|
|
79
|
+
id: "space",
|
|
80
|
+
type: "space",
|
|
81
|
+
label: "",
|
|
82
|
+
value: " ",
|
|
83
|
+
width: 1.5,
|
|
84
|
+
className: "key-space"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "url-go",
|
|
88
|
+
type: "done",
|
|
89
|
+
label: "前往",
|
|
90
|
+
width: 1.5,
|
|
91
|
+
className: "key-done"
|
|
92
|
+
}
|
|
93
|
+
] }
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
export { urlLayout };
|
|
98
|
+
/*! End of @composy/keyboard-core | Powered by @composy/builder */
|
|
99
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","names":[],"sources":["../../src/layouts/url.ts"],"sourcesContent":["/**\n * URL/链接键盘布局\n * @module layouts/url\n */\n\n// 导入键盘配置和按键定义的类型\nimport type { KeyboardConfig, KeyDefinition } from '../types'\n// 导入删除和Shift图标资源\nimport { ICON_DELETE, ICON_SHIFT } from '../icons'\n\n/**\n * 创建字符按键(支持大小写)\n * @param char - 字符,用于生成大小写标签和值\n * @returns 返回一个按键定义对象\n */\nfunction createCharKey(char: string): KeyDefinition {\n return {\n id: `url-char-${char.toLowerCase()}`, // 按键唯一标识,格式为 url-char-x\n type: 'char', // 按键类型为字符键\n label: { lower: char.toLowerCase(), upper: char.toUpperCase() }, // 显示标签:小写/大写\n value: { lower: char.toLowerCase(), upper: char.toUpperCase() }, // 输出值:小写/大写\n }\n}\n\n/**\n * 创建快捷片段按键\n * 用于URL键盘中常用的符号和域名后缀\n * @param label - 按键显示文本\n * @param width - 可选,按键宽度倍数\n * @returns 返回一个片段按键定义对象\n */\nfunction snippet(label: string, width?: number): KeyDefinition {\n // 生成唯一 ID:用 label 的字符编码(去除非法字符后拼接)\n const idSuffix = label.replace(/[^a-z0-9]/gi, '') || label.split('').map(c => c.charCodeAt(0)).join('')\n return {\n id: `url-snippet-${idSuffix}`, // 按键唯一标识,格式为 url-snippet-xxx\n type: 'char', // 按键类型为字符键\n label, // 显示文本\n value: label, // 输出值与显示文本相同\n width, // 按键宽度倍数\n className: 'key-snippet', // 自定义CSS类名,用于样式控制\n }\n}\n\n// 导出URL键盘布局配置\nexport const urlLayout: KeyboardConfig = {\n type: 'url', // 布局类型标识为 url\n name: '网址键盘', // 布局显示名称\n supportShift: true, // 支持Shift切换大小写\n defaultUpperCase: false, // 默认为小写状态\n switchable: ['symbol', 'number'], // 可切换到符号键盘和数字键盘\n rows: [\n // QWERTY 第一行:q w e r t y u i o p\n {\n keys: 'qwertyuiop'.split('').map(createCharKey), // 将字符串拆分为字符数组,逐个创建按键\n },\n // QWERTY 第二行:a s d f g h j k l\n {\n keys: 'asdfghjkl'.split('').map(createCharKey), // 将字符串拆分为字符数组,逐个创建按键\n },\n // QWERTY 第三行 + Shift + 退格\n {\n keys: [\n {\n id: 'shift', // Shift键标识\n type: 'shift', // 按键类型为Shift\n icon: ICON_SHIFT, // 使用Shift图标\n label: '', // 无文字标签,仅显示图标\n width: 1.5, // 宽度为1.5倍\n className: 'key-shift', // CSS类名\n },\n ...'zxcvbnm'.split('').map(createCharKey), // 展开第三行字母 z x c v b n m 的按键定义\n {\n id: 'backspace', // 退格键标识\n type: 'backspace', // 按键类型为退格\n icon: ICON_DELETE, // 使用删除图标\n label: '', // 无文字标签,仅显示图标\n width: 1.5, // 宽度为1.5倍\n className: 'key-backspace', // CSS类名\n },\n ],\n },\n // 底部行:切换 + 符号 + 域名后缀 + 前往\n {\n keys: [\n { id: 'switch-number', type: 'tab', label: '123', width: 1.2, className: 'key-switch', data: { targetType: 'number' } }, // 切换到数字键盘\n snippet('/', 0.8), // 斜杠快捷键,宽度0.8倍\n snippet('.', 0.8), // 点号快捷键,宽度0.8倍\n snippet('-', 0.8), // 横杠快捷键,宽度0.8倍\n snippet('.com', 1.5), // .com域名后缀快捷键,宽度1.5倍\n snippet('.cn', 1.2), // .cn域名后缀快捷键,宽度1.2倍\n { id: 'space', type: 'space', label: '', value: ' ', width: 1.5, className: 'key-space' }, // 空格键,宽度1.5倍\n { id: 'url-go', type: 'done', label: '前往', width: 1.5, className: 'key-done' }, // 前往/完成按钮,宽度1.5倍\n ],\n },\n ],\n}\n"],"mappings":";;;;;;;;;;;AAeA,SAAS,cAAc,MAA6B;CAClD,OAAO;EACL,IAAI,YAAY,KAAK,YAAY;EACjC,MAAM;EACN,OAAO;GAAE,OAAO,KAAK,YAAY;GAAG,OAAO,KAAK,YAAY;EAAE;EAC9D,OAAO;GAAE,OAAO,KAAK,YAAY;GAAG,OAAO,KAAK,YAAY;EAAE;CAChE;AACF;AASA,SAAS,QAAQ,OAAe,OAA+B;CAG7D,OAAO;EACL,IAAI,eAFW,MAAM,QAAQ,eAAe,EAAE,KAAK,MAAM,MAAM,EAAE,CAAA,CAAE,KAAI,MAAK,EAAE,WAAW,CAAC,CAAC,CAAA,CAAE,KAAK,EAAE;EAGpG,MAAM;EACN;EACA,OAAO;EACP;EACA,WAAW;CACb;AACF;AAGO,MAAM,YAA4B;CACvC,MAAM;CACN,MAAM;CACN,cAAc;CACd,kBAAkB;CAClB,YAAY,CAAC,UAAU,QAAQ;CAC/B,MAAM;EAEJ,EACE,MAAM,aAAa,MAAM,EAAE,CAAA,CAAE,IAAI,aAAa,EAChD;EAEA,EACE,MAAM,YAAY,MAAM,EAAE,CAAA,CAAE,IAAI,aAAa,EAC/C;EAEA,EACE,MAAM;GACJ;IACE,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,WAAW;GACb;GACA,GAAG,UAAU,MAAM,EAAE,CAAA,CAAE,IAAI,aAAa;GACxC;IACE,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,WAAW;GACb;EACF,EACF;EAEA,EACE,MAAM;GACJ;IAAE,IAAI;IAAiB,MAAM;IAAO,OAAO;IAAO,OAAO;IAAK,WAAW;IAAc,MAAM,EAAE,YAAY,SAAS;GAAE;GACtH,QAAQ,KAAK,EAAG;GAChB,QAAQ,KAAK,EAAG;GAChB,QAAQ,KAAK,EAAG;GAChB,QAAQ,QAAQ,GAAG;GACnB,QAAQ,OAAO,GAAG;GAClB;IAAE,IAAI;IAAS,MAAM;IAAS,OAAO;IAAI,OAAO;IAAK,OAAO;IAAK,WAAW;GAAY;GACxF;IAAE,IAAI;IAAU,MAAM;IAAQ,OAAO;IAAM,OAAO;IAAK,WAAW;GAAW;EAC/E,EACF;CACF;AACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 验证码键盘布局
|
|
3
|
+
* @module layouts/verifycode
|
|
4
|
+
*/
|
|
5
|
+
import type { KeyboardConfig } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* 验证码键盘配置 - 4x4布局(与其他数字键盘一致)
|
|
8
|
+
* 布局结构:
|
|
9
|
+
* 第1行: 1 2 3 [退格]
|
|
10
|
+
* 第2行: 4 5 6 [清除]
|
|
11
|
+
* 第3行: 7 8 9 [关闭]
|
|
12
|
+
* 第4行: [空] 0 [确定(占2格)]
|
|
13
|
+
*/
|
|
14
|
+
export declare const verifycodeLayout: KeyboardConfig;
|
|
15
|
+
//# sourceMappingURL=verifycode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifycode.d.ts","sourceRoot":"","sources":["../../src/layouts/verifycode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,UAAU,CAAA;AAmB7D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,cA+E9B,CAAA"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/keyboard-core v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:33:29 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
import { ICON_CLEAR, ICON_DELETE } from "../icons.js";
|
|
11
|
+
//#region src/layouts/verifycode.ts
|
|
12
|
+
function createNumberKey(num) {
|
|
13
|
+
return {
|
|
14
|
+
id: `verify-${num}`,
|
|
15
|
+
type: "char",
|
|
16
|
+
label: num,
|
|
17
|
+
value: num,
|
|
18
|
+
className: "key-num"
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const verifycodeLayout = {
|
|
22
|
+
type: "verifycode",
|
|
23
|
+
name: "验证码键盘",
|
|
24
|
+
supportShift: false,
|
|
25
|
+
rows: [
|
|
26
|
+
{
|
|
27
|
+
className: "numpad-row",
|
|
28
|
+
keys: [
|
|
29
|
+
createNumberKey("1"),
|
|
30
|
+
createNumberKey("2"),
|
|
31
|
+
createNumberKey("3"),
|
|
32
|
+
{
|
|
33
|
+
id: "backspace",
|
|
34
|
+
type: "backspace",
|
|
35
|
+
icon: ICON_DELETE,
|
|
36
|
+
label: "",
|
|
37
|
+
className: "key-numpad-fn"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
className: "numpad-row",
|
|
43
|
+
keys: [
|
|
44
|
+
createNumberKey("4"),
|
|
45
|
+
createNumberKey("5"),
|
|
46
|
+
createNumberKey("6"),
|
|
47
|
+
{
|
|
48
|
+
id: "clear",
|
|
49
|
+
type: "clear",
|
|
50
|
+
icon: ICON_CLEAR,
|
|
51
|
+
label: "",
|
|
52
|
+
className: "key-numpad-fn"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
className: "numpad-row",
|
|
58
|
+
keys: [
|
|
59
|
+
createNumberKey("7"),
|
|
60
|
+
createNumberKey("8"),
|
|
61
|
+
createNumberKey("9"),
|
|
62
|
+
{
|
|
63
|
+
id: "close",
|
|
64
|
+
type: "close",
|
|
65
|
+
label: "关闭",
|
|
66
|
+
className: "key-numpad-fn"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
className: "numpad-row",
|
|
72
|
+
keys: [
|
|
73
|
+
{
|
|
74
|
+
id: "empty",
|
|
75
|
+
type: "char",
|
|
76
|
+
label: "",
|
|
77
|
+
value: "",
|
|
78
|
+
disabled: true,
|
|
79
|
+
className: "key-numpad-empty"
|
|
80
|
+
},
|
|
81
|
+
createNumberKey("0"),
|
|
82
|
+
{
|
|
83
|
+
id: "done",
|
|
84
|
+
type: "done",
|
|
85
|
+
label: "确定",
|
|
86
|
+
width: 2,
|
|
87
|
+
className: "key-numpad-done"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
data: {
|
|
93
|
+
maxLength: 6,
|
|
94
|
+
inputType: "verifycode"
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
//#endregion
|
|
98
|
+
export { verifycodeLayout };
|
|
99
|
+
/*! End of @composy/keyboard-core | Powered by @composy/builder */
|
|
100
|
+
//# sourceMappingURL=verifycode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifycode.js","names":[],"sources":["../../src/layouts/verifycode.ts"],"sourcesContent":["/**\n * 验证码键盘布局\n * @module layouts/verifycode\n */\n\n// 从类型定义文件中导入 KeyboardConfig(键盘配置)和 KeyDefinition(按键定义)类型\nimport type { KeyboardConfig, KeyDefinition } from '../types'\n// 从图标模块中导入删除键图标和清除键图标\nimport { ICON_DELETE, ICON_CLEAR } from '../icons'\n\n/**\n * 创建数字按键\n * @param num - 数字字符串(如 '0'-'9')\n * @returns 返回一个按键定义对象\n */\nfunction createNumberKey(num: string): KeyDefinition {\n return {\n id: `verify-${num}`, // 按键唯一标识符,格式为 verify-数字\n type: 'char', // 按键类型为字符键\n label: num, // 按键上显示的文本\n value: num, // 按键按下后输出的值\n className: 'key-num', // 按键的 CSS 类名,用于样式定制\n }\n}\n\n/**\n * 验证码键盘配置 - 4x4布局(与其他数字键盘一致)\n * 布局结构:\n * 第1行: 1 2 3 [退格]\n * 第2行: 4 5 6 [清除]\n * 第3行: 7 8 9 [关闭]\n * 第4行: [空] 0 [确定(占2格)]\n */\nexport const verifycodeLayout: KeyboardConfig = {\n type: 'verifycode', // 键盘类型标识\n name: '验证码键盘', // 键盘的显示名称\n supportShift: false, // 不支持 Shift 切换(纯数字键盘无需切换)\n rows: [ // 键盘的行数组\n // ---- 第1行 ----\n {\n className: 'numpad-row', // 行的 CSS 类名\n keys: [ // 该行包含的按键数组\n createNumberKey('1'), // 数字键 1\n createNumberKey('2'), // 数字键 2\n createNumberKey('3'), // 数字键 3\n {\n id: 'backspace', // 退格键的唯一标识\n type: 'backspace', // 按键类型为退格,删除最后一个字符\n icon: ICON_DELETE, // 使用删除图标作为显示内容\n label: '', // 无文本标签(由图标替代)\n className: 'key-numpad-fn', // 功能键的 CSS 类名\n },\n ],\n },\n // ---- 第2行 ----\n {\n className: 'numpad-row', // 行的 CSS 类名\n keys: [\n createNumberKey('4'), // 数字键 4\n createNumberKey('5'), // 数字键 5\n createNumberKey('6'), // 数字键 6\n {\n id: 'clear', // 清除键的唯一标识\n type: 'clear', // 按键类型为清除,清空所有输入\n icon: ICON_CLEAR, // 使用清除图标作为显示内容\n label: '', // 无文本标签\n className: 'key-numpad-fn', // 功能键的 CSS 类名\n },\n ],\n },\n // ---- 第3行 ----\n {\n className: 'numpad-row', // 行的 CSS 类名\n keys: [\n createNumberKey('7'), // 数字键 7\n createNumberKey('8'), // 数字键 8\n createNumberKey('9'), // 数字键 9\n {\n id: 'close', // 关闭键的唯一标识\n type: 'close', // 按键类型为关闭,收起键盘\n label: '关闭', // 按钮上显示的文本\n className: 'key-numpad-fn', // 功能键的 CSS 类名\n },\n ],\n },\n // ---- 第4行 ----\n {\n className: 'numpad-row', // 行的 CSS 类名\n keys: [\n {\n id: 'empty', // 占位空键的唯一标识\n type: 'char', // 类型为字符键(但被禁用)\n label: '', // 无显示文本\n value: '', // 无输出值\n disabled: true, // 禁用状态,不可点击\n className: 'key-numpad-empty', // 空占位键的 CSS 类名\n },\n createNumberKey('0'), // 数字键 0\n {\n id: 'done', // 确定键的唯一标识\n type: 'done', // 按键类型为确定,完成输入\n label: '确定', // 按钮上显示的文本\n width: 2, // 占据 2 个键的宽度\n className: 'key-numpad-done', // 确定键的 CSS 类名\n },\n ],\n },\n ],\n data: { // 键盘的附加数据\n maxLength: 6, // 验证码最大输入长度为 6 位\n inputType: 'verifycode', // 输入类型标识,用于外部判断\n },\n}\n"],"mappings":";;;;;;;;;;;AAeA,SAAS,gBAAgB,KAA4B;CACnD,OAAO;EACL,IAAI,UAAU;EACd,MAAM;EACN,OAAO;EACP,OAAO;EACP,WAAW;CACb;AACF;AAUO,MAAM,mBAAmC;CAC9C,MAAM;CACN,MAAM;CACN,cAAc;CACd,MAAM;EAEJ;GACE,WAAW;GACX,MAAM;IACJ,gBAAgB,GAAG;IACnB,gBAAgB,GAAG;IACnB,gBAAgB,GAAG;IACnB;KACE,IAAI;KACJ,MAAM;KACN,MAAM;KACN,OAAO;KACP,WAAW;IACb;GACF;EACF;EAEA;GACE,WAAW;GACX,MAAM;IACJ,gBAAgB,GAAG;IACnB,gBAAgB,GAAG;IACnB,gBAAgB,GAAG;IACnB;KACE,IAAI;KACJ,MAAM;KACN,MAAM;KACN,OAAO;KACP,WAAW;IACb;GACF;EACF;EAEA;GACE,WAAW;GACX,MAAM;IACJ,gBAAgB,GAAG;IACnB,gBAAgB,GAAG;IACnB,gBAAgB,GAAG;IACnB;KACE,IAAI;KACJ,MAAM;KACN,OAAO;KACP,WAAW;IACb;GACF;EACF;EAEA;GACE,WAAW;GACX,MAAM;IACJ;KACE,IAAI;KACJ,MAAM;KACN,OAAO;KACP,OAAO;KACP,UAAU;KACV,WAAW;IACb;IACA,gBAAgB,GAAG;IACnB;KACE,IAAI;KACJ,MAAM;KACN,OAAO;KACP,OAAO;KACP,WAAW;IACb;GACF;EACF;CACF;CACA,MAAM;EACJ,WAAW;EACX,WAAW;CACb;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ***********************************
|
|
3
|
+
* @composy/keyboard-core v0.0.1 *
|
|
4
|
+
* Built with rollup *
|
|
5
|
+
* Build time: 2024-08-17 11:33:29 *
|
|
6
|
+
* Build mode: production *
|
|
7
|
+
* Minified: No *
|
|
8
|
+
* ***********************************
|
|
9
|
+
*/
|
|
10
|
+
import { KeyboardManager, createKeyboardManager } from "./keyboard-manager.js";
|
|
11
|
+
import { PositionManager, createPositionManager } from "./position-manager.js";
|
|
12
|
+
import { KeyboardRenderer, createKeyboardRenderer } from "./keyboard-renderer.js";
|
|
13
|
+
export { KeyboardManager, KeyboardRenderer, PositionManager, createKeyboardManager, createKeyboardRenderer, createPositionManager };
|
|
14
|
+
/*! End of @composy/keyboard-core | Powered by @composy/builder */
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 键盘管理器
|
|
3
|
+
* @module managers/keyboard-manager
|
|
4
|
+
*/
|
|
5
|
+
import type { KeyboardConfig, KeyboardEventMap, KeyboardOptions, KeyboardState, KeyboardType, KeyDefinition } from '../types';
|
|
6
|
+
import { EventEmitter } from '../utils/event-emitter';
|
|
7
|
+
/**
|
|
8
|
+
* 键盘管理器类
|
|
9
|
+
* 处理键盘状态管理、输入处理等核心逻辑
|
|
10
|
+
*/
|
|
11
|
+
export declare class KeyboardManager extends EventEmitter<KeyboardEventMap> {
|
|
12
|
+
/** 配置选项 */
|
|
13
|
+
private options;
|
|
14
|
+
/** 当前状态 */
|
|
15
|
+
private state;
|
|
16
|
+
/** 当前布局配置 */
|
|
17
|
+
private currentLayout;
|
|
18
|
+
constructor(options?: KeyboardOptions);
|
|
19
|
+
/**
|
|
20
|
+
* 获取当前状态
|
|
21
|
+
*/
|
|
22
|
+
getState(): Readonly<KeyboardState>;
|
|
23
|
+
/**
|
|
24
|
+
* 获取当前布局配置
|
|
25
|
+
*/
|
|
26
|
+
getLayout(): KeyboardConfig | null;
|
|
27
|
+
/**
|
|
28
|
+
* 获取配置选项
|
|
29
|
+
*/
|
|
30
|
+
getOptions(): Readonly<Required<KeyboardOptions>>;
|
|
31
|
+
/**
|
|
32
|
+
* 加载键盘布局
|
|
33
|
+
*/
|
|
34
|
+
private loadLayout;
|
|
35
|
+
/**
|
|
36
|
+
* 显示键盘
|
|
37
|
+
*/
|
|
38
|
+
show(inputElement?: HTMLInputElement | HTMLTextAreaElement): void;
|
|
39
|
+
/**
|
|
40
|
+
* 隐藏键盘
|
|
41
|
+
*/
|
|
42
|
+
hide(): void;
|
|
43
|
+
/**
|
|
44
|
+
* 切换键盘显示/隐藏
|
|
45
|
+
*/
|
|
46
|
+
toggle(inputElement?: HTMLInputElement | HTMLTextAreaElement): void;
|
|
47
|
+
/**
|
|
48
|
+
* 切换键盘类型
|
|
49
|
+
*/
|
|
50
|
+
switchType(type: KeyboardType | string): void;
|
|
51
|
+
/**
|
|
52
|
+
* 切换大小写
|
|
53
|
+
*/
|
|
54
|
+
toggleShift(): void;
|
|
55
|
+
/**
|
|
56
|
+
* 设置大小写状态
|
|
57
|
+
*/
|
|
58
|
+
setShift(isUpperCase: boolean): void;
|
|
59
|
+
/**
|
|
60
|
+
* 处理按键
|
|
61
|
+
*/
|
|
62
|
+
handleKey(key: KeyDefinition): void;
|
|
63
|
+
/**
|
|
64
|
+
* 处理字符输入
|
|
65
|
+
*/
|
|
66
|
+
private handleCharKey;
|
|
67
|
+
/**
|
|
68
|
+
* 处理退格
|
|
69
|
+
*/
|
|
70
|
+
private handleBackspace;
|
|
71
|
+
/**
|
|
72
|
+
* 车牌号智能切换逻辑
|
|
73
|
+
* 根据当前值长度自动切换键盘布局
|
|
74
|
+
* 只有 2 种布局:省份键盘(第1位)和 字母+数字混合键盘(第2-8位)
|
|
75
|
+
*/
|
|
76
|
+
private autoSwitchLicensePlate;
|
|
77
|
+
/**
|
|
78
|
+
* 处理清空
|
|
79
|
+
*/
|
|
80
|
+
private handleClear;
|
|
81
|
+
/**
|
|
82
|
+
* 处理确认
|
|
83
|
+
*/
|
|
84
|
+
private handleConfirm;
|
|
85
|
+
/**
|
|
86
|
+
* 处理切换键盘
|
|
87
|
+
*/
|
|
88
|
+
private handleTab;
|
|
89
|
+
/**
|
|
90
|
+
* 获取按键的实际输出值
|
|
91
|
+
*/
|
|
92
|
+
private getKeyValue;
|
|
93
|
+
/**
|
|
94
|
+
* 获取按键的显示文本
|
|
95
|
+
*/
|
|
96
|
+
getKeyLabel(key: KeyDefinition): string;
|
|
97
|
+
/**
|
|
98
|
+
* 设置值
|
|
99
|
+
*/
|
|
100
|
+
setValue(value: string): void;
|
|
101
|
+
/**
|
|
102
|
+
* 追加值(在光标位置插入文本)
|
|
103
|
+
*/
|
|
104
|
+
appendValue(text: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* 设置最大长度
|
|
107
|
+
*/
|
|
108
|
+
setMaxLength(maxLength?: number): void;
|
|
109
|
+
/**
|
|
110
|
+
* 绑定输入框
|
|
111
|
+
*/
|
|
112
|
+
bindInput(input: HTMLInputElement | HTMLTextAreaElement): void;
|
|
113
|
+
/**
|
|
114
|
+
* 解绑输入框
|
|
115
|
+
*/
|
|
116
|
+
unbindInput(): void;
|
|
117
|
+
/**
|
|
118
|
+
* 发送状态变化事件
|
|
119
|
+
*/
|
|
120
|
+
private emitStateChange;
|
|
121
|
+
/**
|
|
122
|
+
* 销毁
|
|
123
|
+
*/
|
|
124
|
+
destroy(): void;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 创建键盘管理器实例
|
|
128
|
+
*/
|
|
129
|
+
export declare function createKeyboardManager(options?: KeyboardOptions): KeyboardManager;
|
|
130
|
+
//# sourceMappingURL=keyboard-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard-manager.d.ts","sourceRoot":"","sources":["../../src/managers/keyboard-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAuBrD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACjE,WAAW;IACX,OAAO,CAAC,OAAO,CAA2B;IAE1C,WAAW;IACX,OAAO,CAAC,KAAK,CAAe;IAE5B,aAAa;IACb,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,GAAE,eAAoB;IA2BzC;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IAInC;;OAEG;IACH,SAAS,IAAI,cAAc,GAAG,IAAI;IAIlC;;OAEG;IACH,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAIjD;;OAEG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,IAAI;IAgBjE;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,IAAI;IASnE;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAY7C;;OAEG;IACH,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IASpC;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAsCnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM;IAUvC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAe7B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA6B/B;;OAEG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtC;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,IAAI;IAO9D;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe,CAEhF"}
|