create-mendix-widget-gleam 2.0.13 → 2.0.15

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.
Files changed (205) hide show
  1. package/README.md +3 -2
  2. package/package.json +5 -1
  3. package/src/index.mjs +22 -7
  4. package/src/templates/readme_md.mjs +6 -6
  5. package/template/docs/glendix_guide.md +204 -1
  6. package/template/gleam.toml +1 -1
  7. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache +0 -0
  8. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_inline +0 -0
  9. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_meta +0 -0
  10. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache +0 -0
  11. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_inline +0 -0
  12. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_meta +0 -0
  13. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache +0 -0
  14. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_inline +0 -0
  15. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_meta +0 -0
  16. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache +0 -0
  17. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_inline +0 -0
  18. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_meta +0 -0
  19. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache +0 -0
  20. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_inline +0 -0
  21. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_meta +0 -0
  22. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache +0 -0
  23. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_inline +0 -0
  24. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_meta +0 -0
  25. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache +0 -0
  26. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_inline +0 -0
  27. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_meta +0 -0
  28. package/tui/build/dev/javascript/etch/etch/command.mjs +479 -0
  29. package/tui/build/dev/javascript/etch/etch/cursor.mjs +164 -0
  30. package/tui/build/dev/javascript/etch/etch/event.mjs +2399 -0
  31. package/tui/build/dev/javascript/etch/etch/internal/consts.mjs +3 -0
  32. package/tui/build/dev/javascript/etch/etch/stdout.mjs +375 -0
  33. package/tui/build/dev/javascript/etch/etch/style.mjs +741 -0
  34. package/tui/build/dev/javascript/etch/etch/terminal.mjs +137 -0
  35. package/tui/build/dev/javascript/etch/gleam.mjs +1 -0
  36. package/tui/build/dev/javascript/etch/input/event_ffi.erl +73 -0
  37. package/tui/build/dev/javascript/etch/input/input_ffi.mjs +192 -0
  38. package/tui/build/dev/javascript/etch/input/signal_handler.erl +33 -0
  39. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.erl +22 -0
  40. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.mjs +37 -0
  41. package/tui/build/dev/javascript/etch/terminal/tty_state.erl +29 -0
  42. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache +0 -0
  43. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_inline +0 -0
  44. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_meta +0 -0
  45. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache +0 -0
  46. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_inline +0 -0
  47. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta +0 -0
  48. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache +0 -0
  49. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_inline +0 -0
  50. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta +0 -0
  51. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache +0 -0
  52. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_inline +0 -0
  53. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta +0 -0
  54. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache +0 -0
  55. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_inline +0 -0
  56. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_meta +0 -0
  57. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache +0 -0
  58. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_inline +0 -0
  59. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta +0 -0
  60. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache +0 -0
  61. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_inline +0 -0
  62. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_meta +0 -0
  63. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/application.mjs +38 -0
  64. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/atom.mjs +2 -0
  65. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/charlist.mjs +1 -0
  66. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/node.mjs +12 -0
  67. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/port.mjs +1 -0
  68. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/process.mjs +161 -0
  69. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/reference.mjs +1 -0
  70. package/tui/build/dev/javascript/gleam_erlang/gleam.mjs +1 -0
  71. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@application.erl +43 -0
  72. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@atom.erl +94 -0
  73. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@charlist.erl +42 -0
  74. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@node.erl +80 -0
  75. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@port.erl +8 -0
  76. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@process.erl +868 -0
  77. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@reference.erl +21 -0
  78. package/tui/build/dev/javascript/gleam_erlang/gleam_erlang_ffi.erl +164 -0
  79. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache +0 -0
  80. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_inline +0 -0
  81. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_meta +0 -0
  82. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache +0 -0
  83. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_inline +0 -0
  84. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_meta +0 -0
  85. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache +0 -0
  86. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_inline +0 -0
  87. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_meta +0 -0
  88. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/array.mjs +24 -0
  89. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/promise.mjs +105 -0
  90. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/symbol.mjs +7 -0
  91. package/tui/build/dev/javascript/gleam_javascript/gleam.mjs +1 -0
  92. package/tui/build/dev/javascript/gleam_javascript/gleam_javascript_ffi.mjs +133 -0
  93. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
  94. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
  95. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
  96. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
  97. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
  98. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
  99. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
  100. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
  101. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
  102. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
  103. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
  104. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
  105. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
  106. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
  107. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
  108. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
  109. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
  110. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
  111. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
  112. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
  113. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
  114. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
  115. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
  116. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
  117. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
  118. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
  119. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
  120. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
  121. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
  122. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
  123. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
  124. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
  125. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
  126. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
  127. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
  128. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
  129. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
  130. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
  131. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
  132. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
  133. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
  134. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
  135. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
  136. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
  137. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
  138. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
  139. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
  140. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
  141. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
  142. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
  143. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
  144. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
  145. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
  146. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
  147. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
  148. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
  149. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
  150. package/tui/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
  151. package/tui/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +286 -0
  152. package/tui/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +295 -0
  153. package/tui/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
  154. package/tui/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +455 -0
  155. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +993 -0
  156. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
  157. package/tui/build/dev/javascript/gleam_stdlib/gleam/float.mjs +528 -0
  158. package/tui/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
  159. package/tui/build/dev/javascript/gleam_stdlib/gleam/int.mjs +764 -0
  160. package/tui/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
  161. package/tui/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3063 -0
  162. package/tui/build/dev/javascript/gleam_stdlib/gleam/option.mjs +386 -0
  163. package/tui/build/dev/javascript/gleam_stdlib/gleam/order.mjs +166 -0
  164. package/tui/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +96 -0
  165. package/tui/build/dev/javascript/gleam_stdlib/gleam/result.mjs +448 -0
  166. package/tui/build/dev/javascript/gleam_stdlib/gleam/set.mjs +413 -0
  167. package/tui/build/dev/javascript/gleam_stdlib/gleam/string.mjs +695 -0
  168. package/tui/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +128 -0
  169. package/tui/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1151 -0
  170. package/tui/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
  171. package/tui/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
  172. package/tui/build/dev/javascript/gleam_stdlib/gleam@bool.erl +334 -0
  173. package/tui/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
  174. package/tui/build/dev/javascript/gleam_stdlib/gleam@dict.erl +513 -0
  175. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +105 -0
  176. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1114 -0
  177. package/tui/build/dev/javascript/gleam_stdlib/gleam@float.erl +711 -0
  178. package/tui/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
  179. package/tui/build/dev/javascript/gleam_stdlib/gleam@int.erl +972 -0
  180. package/tui/build/dev/javascript/gleam_stdlib/gleam@io.erl +76 -0
  181. package/tui/build/dev/javascript/gleam_stdlib/gleam@list.erl +2735 -0
  182. package/tui/build/dev/javascript/gleam_stdlib/gleam@option.erl +381 -0
  183. package/tui/build/dev/javascript/gleam_stdlib/gleam@order.erl +188 -0
  184. package/tui/build/dev/javascript/gleam_stdlib/gleam@pair.erl +104 -0
  185. package/tui/build/dev/javascript/gleam_stdlib/gleam@result.erl +500 -0
  186. package/tui/build/dev/javascript/gleam_stdlib/gleam@set.erl +430 -0
  187. package/tui/build/dev/javascript/gleam_stdlib/gleam@string.erl +964 -0
  188. package/tui/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +202 -0
  189. package/tui/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1042 -0
  190. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +534 -0
  191. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1133 -0
  192. package/tui/build/dev/javascript/gleam_version +1 -0
  193. package/tui/build/dev/javascript/prelude.mjs +1575 -0
  194. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache +0 -0
  195. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_inline +0 -0
  196. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_meta +0 -0
  197. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_warnings +0 -0
  198. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache +0 -0
  199. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_inline +0 -0
  200. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_meta +0 -0
  201. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_warnings +0 -0
  202. package/tui/build/dev/javascript/tui/gleam.mjs +1 -0
  203. package/tui/build/dev/javascript/tui/tui/prompt.mjs +521 -0
  204. package/tui/build/dev/javascript/tui/tui.mjs +334 -0
  205. package/tui/build/dev/javascript/tui/tui_ffi.mjs +32 -0
@@ -0,0 +1,2399 @@
1
+ import * as $array from "../../gleam_javascript/gleam/javascript/array.mjs";
2
+ import * as $promise from "../../gleam_javascript/gleam/javascript/promise.mjs";
3
+ import * as $int from "../../gleam_stdlib/gleam/int.mjs";
4
+ import * as $list from "../../gleam_stdlib/gleam/list.mjs";
5
+ import * as $option from "../../gleam_stdlib/gleam/option.mjs";
6
+ import { None, Some } from "../../gleam_stdlib/gleam/option.mjs";
7
+ import * as $result from "../../gleam_stdlib/gleam/result.mjs";
8
+ import { try$ } from "../../gleam_stdlib/gleam/result.mjs";
9
+ import * as $string from "../../gleam_stdlib/gleam/string.mjs";
10
+ import * as $consts from "../etch/internal/consts.mjs";
11
+ import { csi } from "../etch/internal/consts.mjs";
12
+ import {
13
+ Ok,
14
+ Error,
15
+ toList,
16
+ Empty as $Empty,
17
+ prepend as listPrepend,
18
+ CustomType as $CustomType,
19
+ makeError,
20
+ } from "../gleam.mjs";
21
+ import {
22
+ get_chars,
23
+ push,
24
+ poll,
25
+ read,
26
+ handle_sigwinch,
27
+ get_cursor_position,
28
+ get_keyboard_enhancement_flags_code,
29
+ } from "../input/input_ffi.mjs";
30
+
31
+ export { get_cursor_position, get_keyboard_enhancement_flags_code, poll, read };
32
+
33
+ const FILEPATH = "src\\etch\\event.gleam";
34
+
35
+ export class FailedToParseEvent extends $CustomType {
36
+ constructor($0) {
37
+ super();
38
+ this[0] = $0;
39
+ }
40
+ }
41
+ export const EventError$FailedToParseEvent = ($0) => new FailedToParseEvent($0);
42
+ export const EventError$isFailedToParseEvent = (value) =>
43
+ value instanceof FailedToParseEvent;
44
+ export const EventError$FailedToParseEvent$0 = (value) => value[0];
45
+
46
+ export class DisambiguateEscapeCode extends $CustomType {}
47
+ export const KeyboardEnhancementFlag$DisambiguateEscapeCode = () =>
48
+ new DisambiguateEscapeCode();
49
+ export const KeyboardEnhancementFlag$isDisambiguateEscapeCode = (value) =>
50
+ value instanceof DisambiguateEscapeCode;
51
+
52
+ export class ReportEventTypes extends $CustomType {}
53
+ export const KeyboardEnhancementFlag$ReportEventTypes = () =>
54
+ new ReportEventTypes();
55
+ export const KeyboardEnhancementFlag$isReportEventTypes = (value) =>
56
+ value instanceof ReportEventTypes;
57
+
58
+ export class ReportAlternateKeys extends $CustomType {}
59
+ export const KeyboardEnhancementFlag$ReportAlternateKeys = () =>
60
+ new ReportAlternateKeys();
61
+ export const KeyboardEnhancementFlag$isReportAlternateKeys = (value) =>
62
+ value instanceof ReportAlternateKeys;
63
+
64
+ export class ReportAllKeysAsEscapeCode extends $CustomType {}
65
+ export const KeyboardEnhancementFlag$ReportAllKeysAsEscapeCode = () =>
66
+ new ReportAllKeysAsEscapeCode();
67
+ export const KeyboardEnhancementFlag$isReportAllKeysAsEscapeCode = (value) =>
68
+ value instanceof ReportAllKeysAsEscapeCode;
69
+
70
+ export class ReportAssociatedText extends $CustomType {}
71
+ export const KeyboardEnhancementFlag$ReportAssociatedText = () =>
72
+ new ReportAssociatedText();
73
+ export const KeyboardEnhancementFlag$isReportAssociatedText = (value) =>
74
+ value instanceof ReportAssociatedText;
75
+
76
+ /**
77
+ * Modifiers.
78
+ */
79
+ export class Modifiers extends $CustomType {
80
+ constructor(shift, alt, control, super$, hyper, meta) {
81
+ super();
82
+ this.shift = shift;
83
+ this.alt = alt;
84
+ this.control = control;
85
+ this.super = super$;
86
+ this.hyper = hyper;
87
+ this.meta = meta;
88
+ }
89
+ }
90
+ export const Modifiers$Modifiers = (shift, alt, control, super$, hyper, meta) =>
91
+ new Modifiers(shift, alt, control, super$, hyper, meta);
92
+ export const Modifiers$isModifiers = (value) => value instanceof Modifiers;
93
+ export const Modifiers$Modifiers$shift = (value) => value.shift;
94
+ export const Modifiers$Modifiers$0 = (value) => value.shift;
95
+ export const Modifiers$Modifiers$alt = (value) => value.alt;
96
+ export const Modifiers$Modifiers$1 = (value) => value.alt;
97
+ export const Modifiers$Modifiers$control = (value) => value.control;
98
+ export const Modifiers$Modifiers$2 = (value) => value.control;
99
+ export const Modifiers$Modifiers$super = (value) => value.super;
100
+ export const Modifiers$Modifiers$3 = (value) => value.super;
101
+ export const Modifiers$Modifiers$hyper = (value) => value.hyper;
102
+ export const Modifiers$Modifiers$4 = (value) => value.hyper;
103
+ export const Modifiers$Modifiers$meta = (value) => value.meta;
104
+ export const Modifiers$Modifiers$5 = (value) => value.meta;
105
+
106
+ export class Left extends $CustomType {}
107
+ export const MouseButton$Left = () => new Left();
108
+ export const MouseButton$isLeft = (value) => value instanceof Left;
109
+
110
+ export class Right extends $CustomType {}
111
+ export const MouseButton$Right = () => new Right();
112
+ export const MouseButton$isRight = (value) => value instanceof Right;
113
+
114
+ export class Middle extends $CustomType {}
115
+ export const MouseButton$Middle = () => new Middle();
116
+ export const MouseButton$isMiddle = (value) => value instanceof Middle;
117
+
118
+ /**
119
+ * Down (pressing).
120
+ */
121
+ export class Down extends $CustomType {
122
+ constructor($0) {
123
+ super();
124
+ this[0] = $0;
125
+ }
126
+ }
127
+ export const MouseEventKind$Down = ($0) => new Down($0);
128
+ export const MouseEventKind$isDown = (value) => value instanceof Down;
129
+ export const MouseEventKind$Down$0 = (value) => value[0];
130
+
131
+ /**
132
+ * Up (releasing).
133
+ */
134
+ export class Up extends $CustomType {
135
+ constructor($0) {
136
+ super();
137
+ this[0] = $0;
138
+ }
139
+ }
140
+ export const MouseEventKind$Up = ($0) => new Up($0);
141
+ export const MouseEventKind$isUp = (value) => value instanceof Up;
142
+ export const MouseEventKind$Up$0 = (value) => value[0];
143
+
144
+ /**
145
+ * Drag (moving cursor while holding a button).
146
+ */
147
+ export class Drag extends $CustomType {
148
+ constructor($0) {
149
+ super();
150
+ this[0] = $0;
151
+ }
152
+ }
153
+ export const MouseEventKind$Drag = ($0) => new Drag($0);
154
+ export const MouseEventKind$isDrag = (value) => value instanceof Drag;
155
+ export const MouseEventKind$Drag$0 = (value) => value[0];
156
+
157
+ export class Moved extends $CustomType {}
158
+ export const MouseEventKind$Moved = () => new Moved();
159
+ export const MouseEventKind$isMoved = (value) => value instanceof Moved;
160
+
161
+ export class ScrollDown extends $CustomType {}
162
+ export const MouseEventKind$ScrollDown = () => new ScrollDown();
163
+ export const MouseEventKind$isScrollDown = (value) =>
164
+ value instanceof ScrollDown;
165
+
166
+ export class ScrollUp extends $CustomType {}
167
+ export const MouseEventKind$ScrollUp = () => new ScrollUp();
168
+ export const MouseEventKind$isScrollUp = (value) => value instanceof ScrollUp;
169
+
170
+ export class ScrollLeft extends $CustomType {}
171
+ export const MouseEventKind$ScrollLeft = () => new ScrollLeft();
172
+ export const MouseEventKind$isScrollLeft = (value) =>
173
+ value instanceof ScrollLeft;
174
+
175
+ export class ScrollRight extends $CustomType {}
176
+ export const MouseEventKind$ScrollRight = () => new ScrollRight();
177
+ export const MouseEventKind$isScrollRight = (value) =>
178
+ value instanceof ScrollRight;
179
+
180
+ /**
181
+ * Mouse event.
182
+ */
183
+ export class MouseEvent extends $CustomType {
184
+ constructor(kind, column, row, modifiers) {
185
+ super();
186
+ this.kind = kind;
187
+ this.column = column;
188
+ this.row = row;
189
+ this.modifiers = modifiers;
190
+ }
191
+ }
192
+ export const MouseEvent$MouseEvent = (kind, column, row, modifiers) =>
193
+ new MouseEvent(kind, column, row, modifiers);
194
+ export const MouseEvent$isMouseEvent = (value) => value instanceof MouseEvent;
195
+ export const MouseEvent$MouseEvent$kind = (value) => value.kind;
196
+ export const MouseEvent$MouseEvent$0 = (value) => value.kind;
197
+ export const MouseEvent$MouseEvent$column = (value) => value.column;
198
+ export const MouseEvent$MouseEvent$1 = (value) => value.column;
199
+ export const MouseEvent$MouseEvent$row = (value) => value.row;
200
+ export const MouseEvent$MouseEvent$2 = (value) => value.row;
201
+ export const MouseEvent$MouseEvent$modifiers = (value) => value.modifiers;
202
+ export const MouseEvent$MouseEvent$3 = (value) => value.modifiers;
203
+
204
+ export class Play extends $CustomType {}
205
+ export const MediaKeyCode$Play = () => new Play();
206
+ export const MediaKeyCode$isPlay = (value) => value instanceof Play;
207
+
208
+ export class Pause extends $CustomType {}
209
+ export const MediaKeyCode$Pause = () => new Pause();
210
+ export const MediaKeyCode$isPause = (value) => value instanceof Pause;
211
+
212
+ export class PlayPause extends $CustomType {}
213
+ export const MediaKeyCode$PlayPause = () => new PlayPause();
214
+ export const MediaKeyCode$isPlayPause = (value) => value instanceof PlayPause;
215
+
216
+ export class Reverse extends $CustomType {}
217
+ export const MediaKeyCode$Reverse = () => new Reverse();
218
+ export const MediaKeyCode$isReverse = (value) => value instanceof Reverse;
219
+
220
+ export class Stop extends $CustomType {}
221
+ export const MediaKeyCode$Stop = () => new Stop();
222
+ export const MediaKeyCode$isStop = (value) => value instanceof Stop;
223
+
224
+ export class FastForward extends $CustomType {}
225
+ export const MediaKeyCode$FastForward = () => new FastForward();
226
+ export const MediaKeyCode$isFastForward = (value) =>
227
+ value instanceof FastForward;
228
+
229
+ export class Rewind extends $CustomType {}
230
+ export const MediaKeyCode$Rewind = () => new Rewind();
231
+ export const MediaKeyCode$isRewind = (value) => value instanceof Rewind;
232
+
233
+ export class TrackNext extends $CustomType {}
234
+ export const MediaKeyCode$TrackNext = () => new TrackNext();
235
+ export const MediaKeyCode$isTrackNext = (value) => value instanceof TrackNext;
236
+
237
+ export class TrackPrevious extends $CustomType {}
238
+ export const MediaKeyCode$TrackPrevious = () => new TrackPrevious();
239
+ export const MediaKeyCode$isTrackPrevious = (value) =>
240
+ value instanceof TrackPrevious;
241
+
242
+ export class Record extends $CustomType {}
243
+ export const MediaKeyCode$Record = () => new Record();
244
+ export const MediaKeyCode$isRecord = (value) => value instanceof Record;
245
+
246
+ export class LowerVolume extends $CustomType {}
247
+ export const MediaKeyCode$LowerVolume = () => new LowerVolume();
248
+ export const MediaKeyCode$isLowerVolume = (value) =>
249
+ value instanceof LowerVolume;
250
+
251
+ export class RaiseVolume extends $CustomType {}
252
+ export const MediaKeyCode$RaiseVolume = () => new RaiseVolume();
253
+ export const MediaKeyCode$isRaiseVolume = (value) =>
254
+ value instanceof RaiseVolume;
255
+
256
+ export class MuteVolume extends $CustomType {}
257
+ export const MediaKeyCode$MuteVolume = () => new MuteVolume();
258
+ export const MediaKeyCode$isMuteVolume = (value) => value instanceof MuteVolume;
259
+
260
+ export class LeftShift extends $CustomType {}
261
+ export const ModifierKeyCode$LeftShift = () => new LeftShift();
262
+ export const ModifierKeyCode$isLeftShift = (value) =>
263
+ value instanceof LeftShift;
264
+
265
+ export class LeftControl extends $CustomType {}
266
+ export const ModifierKeyCode$LeftControl = () => new LeftControl();
267
+ export const ModifierKeyCode$isLeftControl = (value) =>
268
+ value instanceof LeftControl;
269
+
270
+ export class LeftAlt extends $CustomType {}
271
+ export const ModifierKeyCode$LeftAlt = () => new LeftAlt();
272
+ export const ModifierKeyCode$isLeftAlt = (value) => value instanceof LeftAlt;
273
+
274
+ export class LeftSuper extends $CustomType {}
275
+ export const ModifierKeyCode$LeftSuper = () => new LeftSuper();
276
+ export const ModifierKeyCode$isLeftSuper = (value) =>
277
+ value instanceof LeftSuper;
278
+
279
+ export class LeftHyper extends $CustomType {}
280
+ export const ModifierKeyCode$LeftHyper = () => new LeftHyper();
281
+ export const ModifierKeyCode$isLeftHyper = (value) =>
282
+ value instanceof LeftHyper;
283
+
284
+ export class LeftMeta extends $CustomType {}
285
+ export const ModifierKeyCode$LeftMeta = () => new LeftMeta();
286
+ export const ModifierKeyCode$isLeftMeta = (value) => value instanceof LeftMeta;
287
+
288
+ export class RightShift extends $CustomType {}
289
+ export const ModifierKeyCode$RightShift = () => new RightShift();
290
+ export const ModifierKeyCode$isRightShift = (value) =>
291
+ value instanceof RightShift;
292
+
293
+ export class RightControl extends $CustomType {}
294
+ export const ModifierKeyCode$RightControl = () => new RightControl();
295
+ export const ModifierKeyCode$isRightControl = (value) =>
296
+ value instanceof RightControl;
297
+
298
+ export class RightAlt extends $CustomType {}
299
+ export const ModifierKeyCode$RightAlt = () => new RightAlt();
300
+ export const ModifierKeyCode$isRightAlt = (value) => value instanceof RightAlt;
301
+
302
+ export class RightSuper extends $CustomType {}
303
+ export const ModifierKeyCode$RightSuper = () => new RightSuper();
304
+ export const ModifierKeyCode$isRightSuper = (value) =>
305
+ value instanceof RightSuper;
306
+
307
+ export class RightHyper extends $CustomType {}
308
+ export const ModifierKeyCode$RightHyper = () => new RightHyper();
309
+ export const ModifierKeyCode$isRightHyper = (value) =>
310
+ value instanceof RightHyper;
311
+
312
+ export class RightMeta extends $CustomType {}
313
+ export const ModifierKeyCode$RightMeta = () => new RightMeta();
314
+ export const ModifierKeyCode$isRightMeta = (value) =>
315
+ value instanceof RightMeta;
316
+
317
+ export class IsoLevel3Shift extends $CustomType {}
318
+ export const ModifierKeyCode$IsoLevel3Shift = () => new IsoLevel3Shift();
319
+ export const ModifierKeyCode$isIsoLevel3Shift = (value) =>
320
+ value instanceof IsoLevel3Shift;
321
+
322
+ export class IsoLevel5Shift extends $CustomType {}
323
+ export const ModifierKeyCode$IsoLevel5Shift = () => new IsoLevel5Shift();
324
+ export const ModifierKeyCode$isIsoLevel5Shift = (value) =>
325
+ value instanceof IsoLevel5Shift;
326
+
327
+ export class Char extends $CustomType {
328
+ constructor($0) {
329
+ super();
330
+ this[0] = $0;
331
+ }
332
+ }
333
+ export const KeyCode$Char = ($0) => new Char($0);
334
+ export const KeyCode$isChar = (value) => value instanceof Char;
335
+ export const KeyCode$Char$0 = (value) => value[0];
336
+
337
+ export class UpArrow extends $CustomType {}
338
+ export const KeyCode$UpArrow = () => new UpArrow();
339
+ export const KeyCode$isUpArrow = (value) => value instanceof UpArrow;
340
+
341
+ export class LeftArrow extends $CustomType {}
342
+ export const KeyCode$LeftArrow = () => new LeftArrow();
343
+ export const KeyCode$isLeftArrow = (value) => value instanceof LeftArrow;
344
+
345
+ export class DownArrow extends $CustomType {}
346
+ export const KeyCode$DownArrow = () => new DownArrow();
347
+ export const KeyCode$isDownArrow = (value) => value instanceof DownArrow;
348
+
349
+ export class RightArrow extends $CustomType {}
350
+ export const KeyCode$RightArrow = () => new RightArrow();
351
+ export const KeyCode$isRightArrow = (value) => value instanceof RightArrow;
352
+
353
+ export class Home extends $CustomType {}
354
+ export const KeyCode$Home = () => new Home();
355
+ export const KeyCode$isHome = (value) => value instanceof Home;
356
+
357
+ export class End extends $CustomType {}
358
+ export const KeyCode$End = () => new End();
359
+ export const KeyCode$isEnd = (value) => value instanceof End;
360
+
361
+ export class PageDown extends $CustomType {}
362
+ export const KeyCode$PageDown = () => new PageDown();
363
+ export const KeyCode$isPageDown = (value) => value instanceof PageDown;
364
+
365
+ export class Insert extends $CustomType {}
366
+ export const KeyCode$Insert = () => new Insert();
367
+ export const KeyCode$isInsert = (value) => value instanceof Insert;
368
+
369
+ export class Delete extends $CustomType {}
370
+ export const KeyCode$Delete = () => new Delete();
371
+ export const KeyCode$isDelete = (value) => value instanceof Delete;
372
+
373
+ export class PageUp extends $CustomType {}
374
+ export const KeyCode$PageUp = () => new PageUp();
375
+ export const KeyCode$isPageUp = (value) => value instanceof PageUp;
376
+
377
+ export class KeypadBegin extends $CustomType {}
378
+ export const KeyCode$KeypadBegin = () => new KeypadBegin();
379
+ export const KeyCode$isKeypadBegin = (value) => value instanceof KeypadBegin;
380
+
381
+ export class Enter extends $CustomType {}
382
+ export const KeyCode$Enter = () => new Enter();
383
+ export const KeyCode$isEnter = (value) => value instanceof Enter;
384
+
385
+ export class Backspace extends $CustomType {}
386
+ export const KeyCode$Backspace = () => new Backspace();
387
+ export const KeyCode$isBackspace = (value) => value instanceof Backspace;
388
+
389
+ export class Esc extends $CustomType {}
390
+ export const KeyCode$Esc = () => new Esc();
391
+ export const KeyCode$isEsc = (value) => value instanceof Esc;
392
+
393
+ export class Media extends $CustomType {
394
+ constructor($0) {
395
+ super();
396
+ this[0] = $0;
397
+ }
398
+ }
399
+ export const KeyCode$Media = ($0) => new Media($0);
400
+ export const KeyCode$isMedia = (value) => value instanceof Media;
401
+ export const KeyCode$Media$0 = (value) => value[0];
402
+
403
+ export class Modifier extends $CustomType {
404
+ constructor($0) {
405
+ super();
406
+ this[0] = $0;
407
+ }
408
+ }
409
+ export const KeyCode$Modifier = ($0) => new Modifier($0);
410
+ export const KeyCode$isModifier = (value) => value instanceof Modifier;
411
+ export const KeyCode$Modifier$0 = (value) => value[0];
412
+
413
+ export class F extends $CustomType {
414
+ constructor(n) {
415
+ super();
416
+ this.n = n;
417
+ }
418
+ }
419
+ export const KeyCode$F = (n) => new F(n);
420
+ export const KeyCode$isF = (value) => value instanceof F;
421
+ export const KeyCode$F$n = (value) => value.n;
422
+ export const KeyCode$F$0 = (value) => value.n;
423
+
424
+ export class CapsLock extends $CustomType {}
425
+ export const KeyCode$CapsLock = () => new CapsLock();
426
+ export const KeyCode$isCapsLock = (value) => value instanceof CapsLock;
427
+
428
+ export class ScrollLock extends $CustomType {}
429
+ export const KeyCode$ScrollLock = () => new ScrollLock();
430
+ export const KeyCode$isScrollLock = (value) => value instanceof ScrollLock;
431
+
432
+ export class NumLock extends $CustomType {}
433
+ export const KeyCode$NumLock = () => new NumLock();
434
+ export const KeyCode$isNumLock = (value) => value instanceof NumLock;
435
+
436
+ export class PrintScreen extends $CustomType {}
437
+ export const KeyCode$PrintScreen = () => new PrintScreen();
438
+ export const KeyCode$isPrintScreen = (value) => value instanceof PrintScreen;
439
+
440
+ export class PauseKeyCode extends $CustomType {}
441
+ export const KeyCode$PauseKeyCode = () => new PauseKeyCode();
442
+ export const KeyCode$isPauseKeyCode = (value) => value instanceof PauseKeyCode;
443
+
444
+ export class Tab extends $CustomType {}
445
+ export const KeyCode$Tab = () => new Tab();
446
+ export const KeyCode$isTab = (value) => value instanceof Tab;
447
+
448
+ export class Backtab extends $CustomType {}
449
+ export const KeyCode$Backtab = () => new Backtab();
450
+ export const KeyCode$isBacktab = (value) => value instanceof Backtab;
451
+
452
+ export class Menu extends $CustomType {}
453
+ export const KeyCode$Menu = () => new Menu();
454
+ export const KeyCode$isMenu = (value) => value instanceof Menu;
455
+
456
+ export class Press extends $CustomType {}
457
+ export const KeyEventKind$Press = () => new Press();
458
+ export const KeyEventKind$isPress = (value) => value instanceof Press;
459
+
460
+ export class Repeat extends $CustomType {}
461
+ export const KeyEventKind$Repeat = () => new Repeat();
462
+ export const KeyEventKind$isRepeat = (value) => value instanceof Repeat;
463
+
464
+ export class Release extends $CustomType {}
465
+ export const KeyEventKind$Release = () => new Release();
466
+ export const KeyEventKind$isRelease = (value) => value instanceof Release;
467
+
468
+ export class KeyEventState extends $CustomType {
469
+ constructor(keypad, capslock, numlock) {
470
+ super();
471
+ this.keypad = keypad;
472
+ this.capslock = capslock;
473
+ this.numlock = numlock;
474
+ }
475
+ }
476
+ export const KeyEventState$KeyEventState = (keypad, capslock, numlock) =>
477
+ new KeyEventState(keypad, capslock, numlock);
478
+ export const KeyEventState$isKeyEventState = (value) =>
479
+ value instanceof KeyEventState;
480
+ export const KeyEventState$KeyEventState$keypad = (value) => value.keypad;
481
+ export const KeyEventState$KeyEventState$0 = (value) => value.keypad;
482
+ export const KeyEventState$KeyEventState$capslock = (value) => value.capslock;
483
+ export const KeyEventState$KeyEventState$1 = (value) => value.capslock;
484
+ export const KeyEventState$KeyEventState$numlock = (value) => value.numlock;
485
+ export const KeyEventState$KeyEventState$2 = (value) => value.numlock;
486
+
487
+ export class KeyEvent extends $CustomType {
488
+ constructor(code, modifiers, kind, state, text) {
489
+ super();
490
+ this.code = code;
491
+ this.modifiers = modifiers;
492
+ this.kind = kind;
493
+ this.state = state;
494
+ this.text = text;
495
+ }
496
+ }
497
+ export const KeyEvent$KeyEvent = (code, modifiers, kind, state, text) =>
498
+ new KeyEvent(code, modifiers, kind, state, text);
499
+ export const KeyEvent$isKeyEvent = (value) => value instanceof KeyEvent;
500
+ export const KeyEvent$KeyEvent$code = (value) => value.code;
501
+ export const KeyEvent$KeyEvent$0 = (value) => value.code;
502
+ export const KeyEvent$KeyEvent$modifiers = (value) => value.modifiers;
503
+ export const KeyEvent$KeyEvent$1 = (value) => value.modifiers;
504
+ export const KeyEvent$KeyEvent$kind = (value) => value.kind;
505
+ export const KeyEvent$KeyEvent$2 = (value) => value.kind;
506
+ export const KeyEvent$KeyEvent$state = (value) => value.state;
507
+ export const KeyEvent$KeyEvent$3 = (value) => value.state;
508
+ export const KeyEvent$KeyEvent$text = (value) => value.text;
509
+ export const KeyEvent$KeyEvent$4 = (value) => value.text;
510
+
511
+ export class FocusGained extends $CustomType {}
512
+ export const Event$FocusGained = () => new FocusGained();
513
+ export const Event$isFocusGained = (value) => value instanceof FocusGained;
514
+
515
+ export class FocusLost extends $CustomType {}
516
+ export const Event$FocusLost = () => new FocusLost();
517
+ export const Event$isFocusLost = (value) => value instanceof FocusLost;
518
+
519
+ export class Key extends $CustomType {
520
+ constructor($0) {
521
+ super();
522
+ this[0] = $0;
523
+ }
524
+ }
525
+ export const Event$Key = ($0) => new Key($0);
526
+ export const Event$isKey = (value) => value instanceof Key;
527
+ export const Event$Key$0 = (value) => value[0];
528
+
529
+ export class Mouse extends $CustomType {
530
+ constructor($0) {
531
+ super();
532
+ this[0] = $0;
533
+ }
534
+ }
535
+ export const Event$Mouse = ($0) => new Mouse($0);
536
+ export const Event$isMouse = (value) => value instanceof Mouse;
537
+ export const Event$Mouse$0 = (value) => value[0];
538
+
539
+ export class Resize extends $CustomType {
540
+ constructor($0, $1) {
541
+ super();
542
+ this[0] = $0;
543
+ this[1] = $1;
544
+ }
545
+ }
546
+ export const Event$Resize = ($0, $1) => new Resize($0, $1);
547
+ export const Event$isResize = (value) => value instanceof Resize;
548
+ export const Event$Resize$0 = (value) => value[0];
549
+ export const Event$Resize$1 = (value) => value[1];
550
+
551
+ function push_events(loop$events) {
552
+ while (true) {
553
+ let events = loop$events;
554
+ if (events instanceof $Empty) {
555
+ return undefined;
556
+ } else {
557
+ let e = events.head;
558
+ let rest = events.tail;
559
+ push(e);
560
+ loop$events = rest;
561
+ }
562
+ }
563
+ }
564
+
565
+ function char_to_key_code(char) {
566
+ if (char === "\r") {
567
+ return new Enter();
568
+ } else if (char === "\n") {
569
+ return new Enter();
570
+ } else if (char === "\u{001b}") {
571
+ return new Esc();
572
+ } else if (char === "\u{007f}") {
573
+ return new Backspace();
574
+ } else if (char === "\u{0008}") {
575
+ return new Backspace();
576
+ } else if (char === "\t") {
577
+ return new Tab();
578
+ } else {
579
+ return new Char(char);
580
+ }
581
+ }
582
+
583
+ function default_key_event(key_code) {
584
+ return new KeyEvent(
585
+ key_code,
586
+ new Modifiers(false, false, false, false, false, false),
587
+ new Press(),
588
+ new KeyEventState(false, false, false),
589
+ "",
590
+ );
591
+ }
592
+
593
+ /**
594
+ * Convert [`KeyCode`](event.html#KeyCode) to a string.
595
+ */
596
+ export function to_string(key_code) {
597
+ if (key_code instanceof Char) {
598
+ let s = key_code[0];
599
+ return s;
600
+ } else if (key_code instanceof UpArrow) {
601
+ return "up arrow";
602
+ } else if (key_code instanceof LeftArrow) {
603
+ return "left arrow";
604
+ } else if (key_code instanceof DownArrow) {
605
+ return "down arrow";
606
+ } else if (key_code instanceof RightArrow) {
607
+ return "right arrow";
608
+ } else if (key_code instanceof Home) {
609
+ return "home";
610
+ } else if (key_code instanceof End) {
611
+ return "end";
612
+ } else if (key_code instanceof PageDown) {
613
+ return "page down";
614
+ } else if (key_code instanceof Insert) {
615
+ return "insert";
616
+ } else if (key_code instanceof Delete) {
617
+ return "delete";
618
+ } else if (key_code instanceof PageUp) {
619
+ return "page up";
620
+ } else if (key_code instanceof KeypadBegin) {
621
+ return "keypad begin";
622
+ } else if (key_code instanceof Enter) {
623
+ return "enter";
624
+ } else if (key_code instanceof Backspace) {
625
+ return "backspace";
626
+ } else if (key_code instanceof Esc) {
627
+ return "escape";
628
+ } else if (key_code instanceof Media) {
629
+ let m = key_code[0];
630
+ if (m instanceof Play) {
631
+ return "play";
632
+ } else if (m instanceof Pause) {
633
+ return "pause";
634
+ } else if (m instanceof PlayPause) {
635
+ return "play-pause";
636
+ } else if (m instanceof Reverse) {
637
+ return "reverse";
638
+ } else if (m instanceof Stop) {
639
+ return "stop";
640
+ } else if (m instanceof FastForward) {
641
+ return "fast forward";
642
+ } else if (m instanceof Rewind) {
643
+ return "rewind";
644
+ } else if (m instanceof TrackNext) {
645
+ return "track next";
646
+ } else if (m instanceof TrackPrevious) {
647
+ return "track previous";
648
+ } else if (m instanceof Record) {
649
+ return "record";
650
+ } else if (m instanceof LowerVolume) {
651
+ return "lower volume";
652
+ } else if (m instanceof RaiseVolume) {
653
+ return "raise volume";
654
+ } else {
655
+ return "mute volume";
656
+ }
657
+ } else if (key_code instanceof Modifier) {
658
+ let m = key_code[0];
659
+ if (m instanceof LeftShift) {
660
+ return "left shift";
661
+ } else if (m instanceof LeftControl) {
662
+ return "left control";
663
+ } else if (m instanceof LeftAlt) {
664
+ return "left alt";
665
+ } else if (m instanceof LeftSuper) {
666
+ return "left super";
667
+ } else if (m instanceof LeftHyper) {
668
+ return "left hyper";
669
+ } else if (m instanceof LeftMeta) {
670
+ return "left meta";
671
+ } else if (m instanceof RightShift) {
672
+ return "right shift";
673
+ } else if (m instanceof RightControl) {
674
+ return "right control";
675
+ } else if (m instanceof RightAlt) {
676
+ return "right alt";
677
+ } else if (m instanceof RightSuper) {
678
+ return "right super";
679
+ } else if (m instanceof RightHyper) {
680
+ return "right hyper";
681
+ } else if (m instanceof RightMeta) {
682
+ return "right meta";
683
+ } else if (m instanceof IsoLevel3Shift) {
684
+ return "iso level-3 shift";
685
+ } else {
686
+ return "iso level-5 shift";
687
+ }
688
+ } else if (key_code instanceof F) {
689
+ let n = key_code.n;
690
+ return "F" + $int.to_string(n);
691
+ } else if (key_code instanceof CapsLock) {
692
+ return "capslock";
693
+ } else if (key_code instanceof ScrollLock) {
694
+ return "scroll lock";
695
+ } else if (key_code instanceof NumLock) {
696
+ return "num lock";
697
+ } else if (key_code instanceof PrintScreen) {
698
+ return "print screen";
699
+ } else if (key_code instanceof PauseKeyCode) {
700
+ return "pause";
701
+ } else if (key_code instanceof Tab) {
702
+ return "tab";
703
+ } else if (key_code instanceof Backtab) {
704
+ return "backtab";
705
+ } else {
706
+ return "menu";
707
+ }
708
+ }
709
+
710
+ export function parse_cursor_position(s) {
711
+ let code = $string.drop_end(s, 1);
712
+ let split = $string.split(code, ";");
713
+ let _block;
714
+ if (split instanceof $Empty) {
715
+ _block = new Error(
716
+ new FailedToParseEvent("Failed to parse cursor position"),
717
+ );
718
+ } else {
719
+ let $ = split.tail;
720
+ if ($ instanceof $Empty) {
721
+ _block = new Error(
722
+ new FailedToParseEvent("Failed to parse cursor position"),
723
+ );
724
+ } else {
725
+ let $1 = $.tail;
726
+ if ($1 instanceof $Empty) {
727
+ let x = split.head;
728
+ let y = $.head;
729
+ _block = new Ok([x, y]);
730
+ } else {
731
+ _block = new Error(
732
+ new FailedToParseEvent("Failed to parse cursor position"),
733
+ );
734
+ }
735
+ }
736
+ }
737
+ let res = _block;
738
+ return try$(
739
+ res,
740
+ (_use0) => {
741
+ let x;
742
+ let y;
743
+ x = _use0[0];
744
+ y = _use0[1];
745
+ let _block$1;
746
+ let _pipe = $int.parse(x);
747
+ _block$1 = $result.unwrap(_pipe, 0);
748
+ let x$1 = _block$1;
749
+ let _block$2;
750
+ let _pipe$1 = $int.parse(y);
751
+ _block$2 = $result.unwrap(_pipe$1, 0);
752
+ let y$1 = _block$2;
753
+ return new Ok([x$1, y$1]);
754
+ },
755
+ );
756
+ }
757
+
758
+ export function translate_functional_key_code(code) {
759
+ let _block;
760
+ if (code === "57399") {
761
+ _block = new Some(new Char("0"));
762
+ } else if (code === "57400") {
763
+ _block = new Some(new Char("1"));
764
+ } else if (code === "57401") {
765
+ _block = new Some(new Char("2"));
766
+ } else if (code === "57402") {
767
+ _block = new Some(new Char("3"));
768
+ } else if (code === "57403") {
769
+ _block = new Some(new Char("4"));
770
+ } else if (code === "57404") {
771
+ _block = new Some(new Char("5"));
772
+ } else if (code === "57405") {
773
+ _block = new Some(new Char("6"));
774
+ } else if (code === "57406") {
775
+ _block = new Some(new Char("7"));
776
+ } else if (code === "57407") {
777
+ _block = new Some(new Char("8"));
778
+ } else if (code === "57408") {
779
+ _block = new Some(new Char("9"));
780
+ } else if (code === "57409") {
781
+ _block = new Some(new Char("."));
782
+ } else if (code === "57410") {
783
+ _block = new Some(new Char("/"));
784
+ } else if (code === "57411") {
785
+ _block = new Some(new Char("*"));
786
+ } else if (code === "57412") {
787
+ _block = new Some(new Char("-"));
788
+ } else if (code === "57413") {
789
+ _block = new Some(new Char("+"));
790
+ } else if (code === "57414") {
791
+ _block = new Some(new Enter());
792
+ } else if (code === "57415") {
793
+ _block = new Some(new Char("="));
794
+ } else if (code === "57416") {
795
+ _block = new Some(new Char(","));
796
+ } else if (code === "57417") {
797
+ _block = new Some(new LeftArrow());
798
+ } else if (code === "57418") {
799
+ _block = new Some(new RightArrow());
800
+ } else if (code === "57419") {
801
+ _block = new Some(new UpArrow());
802
+ } else if (code === "57420") {
803
+ _block = new Some(new DownArrow());
804
+ } else if (code === "57421") {
805
+ _block = new Some(new PageUp());
806
+ } else if (code === "57422") {
807
+ _block = new Some(new PageDown());
808
+ } else if (code === "57423") {
809
+ _block = new Some(new Home());
810
+ } else if (code === "57424") {
811
+ _block = new Some(new End());
812
+ } else if (code === "57425") {
813
+ _block = new Some(new Insert());
814
+ } else if (code === "57426") {
815
+ _block = new Some(new Delete());
816
+ } else if (code === "57427") {
817
+ _block = new Some(new KeypadBegin());
818
+ } else {
819
+ _block = new None();
820
+ }
821
+ let keycode = _block;
822
+ if (keycode instanceof Some) {
823
+ let c = keycode[0];
824
+ return new Some([c, new KeyEventState(false, false, true)]);
825
+ } else {
826
+ let _block$1;
827
+ if (code === "57358") {
828
+ _block$1 = new Some(new CapsLock());
829
+ } else if (code === "57359") {
830
+ _block$1 = new Some(new ScrollLock());
831
+ } else if (code === "57360") {
832
+ _block$1 = new Some(new NumLock());
833
+ } else if (code === "57361") {
834
+ _block$1 = new Some(new PrintScreen());
835
+ } else if (code === "57362") {
836
+ _block$1 = new Some(new PauseKeyCode());
837
+ } else if (code === "57363") {
838
+ _block$1 = new Some(new Menu());
839
+ } else if (code === "57376") {
840
+ _block$1 = new Some(new F(13));
841
+ } else if (code === "57377") {
842
+ _block$1 = new Some(new F(14));
843
+ } else if (code === "57378") {
844
+ _block$1 = new Some(new F(15));
845
+ } else if (code === "57379") {
846
+ _block$1 = new Some(new F(16));
847
+ } else if (code === "57380") {
848
+ _block$1 = new Some(new F(17));
849
+ } else if (code === "57381") {
850
+ _block$1 = new Some(new F(18));
851
+ } else if (code === "57382") {
852
+ _block$1 = new Some(new F(19));
853
+ } else if (code === "57383") {
854
+ _block$1 = new Some(new F(20));
855
+ } else if (code === "57384") {
856
+ _block$1 = new Some(new F(21));
857
+ } else if (code === "57385") {
858
+ _block$1 = new Some(new F(22));
859
+ } else if (code === "57386") {
860
+ _block$1 = new Some(new F(23));
861
+ } else if (code === "57387") {
862
+ _block$1 = new Some(new F(24));
863
+ } else if (code === "57388") {
864
+ _block$1 = new Some(new F(25));
865
+ } else if (code === "57389") {
866
+ _block$1 = new Some(new F(26));
867
+ } else if (code === "57390") {
868
+ _block$1 = new Some(new F(27));
869
+ } else if (code === "57391") {
870
+ _block$1 = new Some(new F(28));
871
+ } else if (code === "57392") {
872
+ _block$1 = new Some(new F(29));
873
+ } else if (code === "57393") {
874
+ _block$1 = new Some(new F(30));
875
+ } else if (code === "57394") {
876
+ _block$1 = new Some(new F(31));
877
+ } else if (code === "57395") {
878
+ _block$1 = new Some(new F(32));
879
+ } else if (code === "57396") {
880
+ _block$1 = new Some(new F(33));
881
+ } else if (code === "57397") {
882
+ _block$1 = new Some(new F(34));
883
+ } else if (code === "57398") {
884
+ _block$1 = new Some(new F(35));
885
+ } else if (code === "57428") {
886
+ _block$1 = new Some(new Media(new Play()));
887
+ } else if (code === "57429") {
888
+ _block$1 = new Some(new Media(new Pause()));
889
+ } else if (code === "57430") {
890
+ _block$1 = new Some(new Media(new PlayPause()));
891
+ } else if (code === "57431") {
892
+ _block$1 = new Some(new Media(new Reverse()));
893
+ } else if (code === "57432") {
894
+ _block$1 = new Some(new Media(new Stop()));
895
+ } else if (code === "57433") {
896
+ _block$1 = new Some(new Media(new FastForward()));
897
+ } else if (code === "57434") {
898
+ _block$1 = new Some(new Media(new Rewind()));
899
+ } else if (code === "57435") {
900
+ _block$1 = new Some(new Media(new TrackNext()));
901
+ } else if (code === "57436") {
902
+ _block$1 = new Some(new Media(new TrackPrevious()));
903
+ } else if (code === "57437") {
904
+ _block$1 = new Some(new Media(new Record()));
905
+ } else if (code === "57438") {
906
+ _block$1 = new Some(new Media(new LowerVolume()));
907
+ } else if (code === "57439") {
908
+ _block$1 = new Some(new Media(new RaiseVolume()));
909
+ } else if (code === "57440") {
910
+ _block$1 = new Some(new Media(new MuteVolume()));
911
+ } else if (code === "57441") {
912
+ _block$1 = new Some(new Modifier(new LeftShift()));
913
+ } else if (code === "57442") {
914
+ _block$1 = new Some(new Modifier(new LeftControl()));
915
+ } else if (code === "57443") {
916
+ _block$1 = new Some(new Modifier(new LeftAlt()));
917
+ } else if (code === "57444") {
918
+ _block$1 = new Some(new Modifier(new LeftSuper()));
919
+ } else if (code === "57445") {
920
+ _block$1 = new Some(new Modifier(new LeftHyper()));
921
+ } else if (code === "57446") {
922
+ _block$1 = new Some(new Modifier(new LeftMeta()));
923
+ } else if (code === "57447") {
924
+ _block$1 = new Some(new Modifier(new RightShift()));
925
+ } else if (code === "57448") {
926
+ _block$1 = new Some(new Modifier(new RightControl()));
927
+ } else if (code === "57449") {
928
+ _block$1 = new Some(new Modifier(new RightAlt()));
929
+ } else if (code === "57450") {
930
+ _block$1 = new Some(new Modifier(new RightSuper()));
931
+ } else if (code === "57451") {
932
+ _block$1 = new Some(new Modifier(new RightHyper()));
933
+ } else if (code === "57452") {
934
+ _block$1 = new Some(new Modifier(new RightMeta()));
935
+ } else if (code === "57453") {
936
+ _block$1 = new Some(new Modifier(new IsoLevel3Shift()));
937
+ } else if (code === "57454") {
938
+ _block$1 = new Some(new Modifier(new IsoLevel5Shift()));
939
+ } else {
940
+ _block$1 = new None();
941
+ }
942
+ let keycode$1 = _block$1;
943
+ if (keycode$1 instanceof Some) {
944
+ let c = keycode$1[0];
945
+ return new Some([c, new KeyEventState(false, false, false)]);
946
+ } else {
947
+ return keycode$1;
948
+ }
949
+ }
950
+ }
951
+
952
+ export function parse_modifier_to_state(modifier_mask) {
953
+ let state = new KeyEventState(false, false, false);
954
+ let _block;
955
+ let $ = modifier_mask - 1;
956
+ let n = $;
957
+ if (n < 0) {
958
+ _block = 0;
959
+ } else {
960
+ _block = $;
961
+ }
962
+ let mask = _block;
963
+ let _block$1;
964
+ let $1 = $int.bitwise_and(mask, 64) !== 0;
965
+ if ($1) {
966
+ _block$1 = new KeyEventState(state.keypad, true, state.numlock);
967
+ } else {
968
+ _block$1 = state;
969
+ }
970
+ let state$1 = _block$1;
971
+ let _block$2;
972
+ let $2 = $int.bitwise_and(mask, 128) !== 0;
973
+ if ($2) {
974
+ _block$2 = new KeyEventState(state$1.keypad, state$1.capslock, true);
975
+ } else {
976
+ _block$2 = state$1;
977
+ }
978
+ let state$2 = _block$2;
979
+ return state$2;
980
+ }
981
+
982
+ export function starts_with_number(s) {
983
+ let _pipe = $string.first(s);
984
+ let _pipe$1 = $result.unwrap(_pipe, "");
985
+ let _pipe$2 = $int.parse(_pipe$1);
986
+ return $result.is_ok(_pipe$2);
987
+ }
988
+
989
+ export function parse_keyboard_enhancement_flags(code) {
990
+ let _block;
991
+ let _pipe = $string.drop_end(code, 1);
992
+ let _pipe$1 = $int.parse(_pipe);
993
+ _block = $result.unwrap(_pipe$1, 0);
994
+ let code$1 = _block;
995
+ let list = toList([]);
996
+ let _block$1;
997
+ let $ = $int.bitwise_and(code$1, 1) !== 0;
998
+ if ($) {
999
+ _block$1 = listPrepend(new DisambiguateEscapeCode(), list);
1000
+ } else {
1001
+ _block$1 = list;
1002
+ }
1003
+ let list$1 = _block$1;
1004
+ let _block$2;
1005
+ let $1 = $int.bitwise_and(code$1, 2) !== 0;
1006
+ if ($1) {
1007
+ _block$2 = listPrepend(new ReportEventTypes(), list$1);
1008
+ } else {
1009
+ _block$2 = list$1;
1010
+ }
1011
+ let list$2 = _block$2;
1012
+ let _block$3;
1013
+ let $2 = $int.bitwise_and(code$1, 4) !== 0;
1014
+ if ($2) {
1015
+ _block$3 = listPrepend(new ReportAlternateKeys(), list$2);
1016
+ } else {
1017
+ _block$3 = list$2;
1018
+ }
1019
+ let list$3 = _block$3;
1020
+ let _block$4;
1021
+ let $3 = $int.bitwise_and(code$1, 8) !== 0;
1022
+ if ($3) {
1023
+ _block$4 = listPrepend(new ReportAllKeysAsEscapeCode(), list$3);
1024
+ } else {
1025
+ _block$4 = list$3;
1026
+ }
1027
+ let list$4 = _block$4;
1028
+ let _block$5;
1029
+ let $4 = $int.bitwise_and(code$1, 16) !== 0;
1030
+ if ($4) {
1031
+ _block$5 = listPrepend(new ReportAssociatedText(), list$4);
1032
+ } else {
1033
+ _block$5 = list$4;
1034
+ }
1035
+ let list$5 = _block$5;
1036
+ return list$5;
1037
+ }
1038
+
1039
+ export function get_keyboard_enhancement_flags() {
1040
+ return $promise.await$(
1041
+ get_keyboard_enhancement_flags_code(),
1042
+ (flags) => {
1043
+ let _block;
1044
+ if (flags instanceof Ok) {
1045
+ let code = flags[0];
1046
+ _block = new Ok(parse_keyboard_enhancement_flags(code));
1047
+ } else {
1048
+ _block = new Error(
1049
+ new FailedToParseEvent("Could not get enhancment flags"),
1050
+ );
1051
+ }
1052
+ let res = _block;
1053
+ return $promise.resolve(res);
1054
+ },
1055
+ );
1056
+ }
1057
+
1058
+ export function parse_kind(kind) {
1059
+ if (kind === 1) {
1060
+ return new Press();
1061
+ } else if (kind === 2) {
1062
+ return new Repeat();
1063
+ } else if (kind === 3) {
1064
+ return new Release();
1065
+ } else {
1066
+ return new Press();
1067
+ }
1068
+ }
1069
+
1070
+ export function parse_modifier_and_kind(code) {
1071
+ let split = $string.split(code, ":");
1072
+ if (split instanceof $Empty) {
1073
+ return new Error(new FailedToParseEvent("Failed to parse modifiers"));
1074
+ } else {
1075
+ let $ = split.tail;
1076
+ if ($ instanceof $Empty) {
1077
+ let modifier_mask = split.head;
1078
+ let _block;
1079
+ let _pipe = $int.parse(modifier_mask);
1080
+ _block = $result.unwrap(_pipe, 0);
1081
+ let modifier_mask$1 = _block;
1082
+ return new Ok([modifier_mask$1, 0]);
1083
+ } else {
1084
+ let $1 = $.tail;
1085
+ if ($1 instanceof $Empty) {
1086
+ let modifier_mask = split.head;
1087
+ let kind_mask = $.head;
1088
+ let _block;
1089
+ let _pipe = $int.parse(modifier_mask);
1090
+ _block = $result.unwrap(_pipe, 0);
1091
+ let modifier_mask$1 = _block;
1092
+ let _block$1;
1093
+ let _pipe$1 = $int.parse(kind_mask);
1094
+ _block$1 = $result.unwrap(_pipe$1, 0);
1095
+ let kind_mask$1 = _block$1;
1096
+ return new Ok([modifier_mask$1, kind_mask$1]);
1097
+ } else {
1098
+ return new Error(new FailedToParseEvent("Failed to parse modifiers"));
1099
+ }
1100
+ }
1101
+ }
1102
+ }
1103
+
1104
+ /**
1105
+ * Enables mouse capture.
1106
+ * It is prefered not to use this directly. See [`EnableMouseCapture`](command.html#EnableMouseCapture).
1107
+ */
1108
+ export function enable_mouse_capture() {
1109
+ return ((((((((csi + "?1000h") + csi) + "?1002h") + csi) + "?1003h") + csi) + "?1015h") + csi) + "?1006h";
1110
+ }
1111
+
1112
+ /**
1113
+ * Disables mouse capture.
1114
+ * It is prefered not to use this directly. See [`DisableMouseCapture`](command.html#DisableMouseCapture).
1115
+ */
1116
+ export function disable_mouse_capture() {
1117
+ return ((((((((csi + "?1000l") + csi) + "?1002l") + csi) + "?1003l") + csi) + "?1015l") + csi) + "?1006l";
1118
+ }
1119
+
1120
+ export function parse_cb(code) {
1121
+ let _block;
1122
+ let _pipe = $int.parse(code);
1123
+ _block = $result.unwrap(_pipe, 0);
1124
+ let code$1 = _block;
1125
+ let _block$1;
1126
+ let _pipe$1 = $int.bitwise_and(code$1, 0b0011);
1127
+ _block$1 = $int.bitwise_or(
1128
+ _pipe$1,
1129
+ (() => {
1130
+ let _pipe$2 = $int.bitwise_and(code$1, 0b1100_0000);
1131
+ return $int.bitwise_shift_right(_pipe$2, 4);
1132
+ })(),
1133
+ );
1134
+ let button_number = _block$1;
1135
+ let dragging = $int.bitwise_and(code$1, 0b10_0000) === 0b10_0000;
1136
+ let modifiers = new Modifiers(
1137
+ $int.bitwise_and(code$1, 4) !== 0,
1138
+ $int.bitwise_and(code$1, 8) !== 0,
1139
+ $int.bitwise_and(code$1, 16) !== 0,
1140
+ $int.bitwise_and(code$1, 32) !== 0,
1141
+ $int.bitwise_and(code$1, 64) !== 0,
1142
+ $int.bitwise_and(code$1, 128) !== 0,
1143
+ );
1144
+ let _block$2;
1145
+ if (button_number === 0) {
1146
+ _block$2 = new Left();
1147
+ } else if (button_number === 1) {
1148
+ _block$2 = new Middle();
1149
+ } else {
1150
+ _block$2 = new Right();
1151
+ }
1152
+ let button = _block$2;
1153
+ let _block$3;
1154
+ if (dragging) {
1155
+ if (button_number === 0) {
1156
+ _block$3 = new Ok(new Drag(new Left()));
1157
+ } else if (button_number === 1) {
1158
+ _block$3 = new Ok(new Drag(new Middle()));
1159
+ } else if (button_number === 2) {
1160
+ _block$3 = new Ok(new Drag(new Right()));
1161
+ } else {
1162
+ let c = button_number;
1163
+ if (((c === 3) || (c === 4)) || (c === 5)) {
1164
+ _block$3 = new Ok(new Moved());
1165
+ } else {
1166
+ _block$3 = new Ok(new Drag(button));
1167
+ }
1168
+ }
1169
+ } else if (button_number === 0) {
1170
+ _block$3 = new Ok(new Down(new Left()));
1171
+ } else if (button_number === 1) {
1172
+ _block$3 = new Ok(new Down(new Middle()));
1173
+ } else if (button_number === 2) {
1174
+ _block$3 = new Ok(new Down(new Right()));
1175
+ } else if (button_number === 3) {
1176
+ _block$3 = new Ok(new Up(new Left()));
1177
+ } else if (button_number === 4) {
1178
+ _block$3 = new Ok(new ScrollUp());
1179
+ } else if (button_number === 5) {
1180
+ _block$3 = new Ok(new ScrollDown());
1181
+ } else if (button_number === 6) {
1182
+ _block$3 = new Ok(new ScrollLeft());
1183
+ } else if (button_number === 7) {
1184
+ _block$3 = new Ok(new ScrollRight());
1185
+ } else {
1186
+ _block$3 = new Error(
1187
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1188
+ );
1189
+ }
1190
+ let res = _block$3;
1191
+ return try$(res, (kind) => { return new Ok([modifiers, kind]); });
1192
+ }
1193
+
1194
+ export function parse_rxvt_mouse(s) {
1195
+ let s$1 = $string.drop_end(s, 1);
1196
+ let split = $string.split(s$1, ";");
1197
+ let _block;
1198
+ if (split instanceof $Empty) {
1199
+ _block = new Error(new FailedToParseEvent("Failed to parse sgr mouse code"));
1200
+ } else {
1201
+ let $ = split.tail;
1202
+ if ($ instanceof $Empty) {
1203
+ _block = new Error(
1204
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1205
+ );
1206
+ } else {
1207
+ let $1 = $.tail;
1208
+ if ($1 instanceof $Empty) {
1209
+ _block = new Error(
1210
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1211
+ );
1212
+ } else {
1213
+ let $2 = $1.tail;
1214
+ if ($2 instanceof $Empty) {
1215
+ let code = split.head;
1216
+ let column = $.head;
1217
+ let row = $1.head;
1218
+ _block = new Ok([code, column, row]);
1219
+ } else {
1220
+ _block = new Error(
1221
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1222
+ );
1223
+ }
1224
+ }
1225
+ }
1226
+ }
1227
+ let res = _block;
1228
+ return try$(
1229
+ res,
1230
+ (_use0) => {
1231
+ let code;
1232
+ let column;
1233
+ let row;
1234
+ code = _use0[0];
1235
+ column = _use0[1];
1236
+ row = _use0[2];
1237
+ let _block$1;
1238
+ let _pipe = $int.parse(column);
1239
+ _block$1 = $result.unwrap(_pipe, 0);
1240
+ let column$1 = _block$1;
1241
+ let _block$2;
1242
+ let _pipe$1 = $int.parse(row);
1243
+ _block$2 = $result.unwrap(_pipe$1, 0);
1244
+ let row$1 = _block$2;
1245
+ return try$(
1246
+ parse_cb(code),
1247
+ (_use0) => {
1248
+ let modifiers;
1249
+ let kind;
1250
+ modifiers = _use0[0];
1251
+ kind = _use0[1];
1252
+ return new Ok(
1253
+ new Mouse(new MouseEvent(kind, column$1 - 1, row$1 - 1, modifiers)),
1254
+ );
1255
+ },
1256
+ );
1257
+ },
1258
+ );
1259
+ }
1260
+
1261
+ export function parse_normal_mouse(code) {
1262
+ let _block;
1263
+ let $ = $string.to_graphemes(code);
1264
+ if ($ instanceof $Empty) {
1265
+ _block = new Error(
1266
+ new FailedToParseEvent("Failed to parse normal mouse code"),
1267
+ );
1268
+ } else {
1269
+ let $1 = $.tail;
1270
+ if ($1 instanceof $Empty) {
1271
+ _block = new Error(
1272
+ new FailedToParseEvent("Failed to parse normal mouse code"),
1273
+ );
1274
+ } else {
1275
+ let $2 = $1.tail;
1276
+ if ($2 instanceof $Empty) {
1277
+ _block = new Error(
1278
+ new FailedToParseEvent("Failed to parse normal mouse code"),
1279
+ );
1280
+ } else {
1281
+ let $3 = $2.tail;
1282
+ if ($3 instanceof $Empty) {
1283
+ let cb = $.head;
1284
+ let cx = $1.head;
1285
+ let cy = $2.head;
1286
+ _block = new Ok([cb, cx, cy]);
1287
+ } else {
1288
+ _block = new Error(
1289
+ new FailedToParseEvent("Failed to parse normal mouse code"),
1290
+ );
1291
+ }
1292
+ }
1293
+ }
1294
+ }
1295
+ let res = _block;
1296
+ return try$(
1297
+ res,
1298
+ (_use0) => {
1299
+ let cb;
1300
+ let cx;
1301
+ let cy;
1302
+ cb = _use0[0];
1303
+ cx = _use0[1];
1304
+ cy = _use0[2];
1305
+ let _block$1;
1306
+ let _pipe = $int.parse(cx);
1307
+ _block$1 = $result.unwrap(_pipe, 0);
1308
+ let column = _block$1;
1309
+ let _block$2;
1310
+ let _pipe$1 = $int.parse(cy);
1311
+ _block$2 = $result.unwrap(_pipe$1, 0);
1312
+ let row = _block$2;
1313
+ return try$(
1314
+ parse_cb(cb),
1315
+ (_use0) => {
1316
+ let modifiers;
1317
+ let kind;
1318
+ modifiers = _use0[0];
1319
+ kind = _use0[1];
1320
+ return new Ok(
1321
+ new Mouse(new MouseEvent(kind, column - 1, row - 1, modifiers)),
1322
+ );
1323
+ },
1324
+ );
1325
+ },
1326
+ );
1327
+ }
1328
+
1329
+ export function parse_sgr_mouse(s) {
1330
+ let split = $string.split(s, ";");
1331
+ let _block;
1332
+ if (split instanceof $Empty) {
1333
+ _block = new Error(new FailedToParseEvent("Failed to parse sgr mouse code"));
1334
+ } else {
1335
+ let $ = split.tail;
1336
+ if ($ instanceof $Empty) {
1337
+ _block = new Error(
1338
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1339
+ );
1340
+ } else {
1341
+ let $1 = $.tail;
1342
+ if ($1 instanceof $Empty) {
1343
+ _block = new Error(
1344
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1345
+ );
1346
+ } else {
1347
+ let $2 = $1.tail;
1348
+ if ($2 instanceof $Empty) {
1349
+ let code = split.head;
1350
+ let column = $.head;
1351
+ let row = $1.head;
1352
+ _block = new Ok([code, column, row]);
1353
+ } else {
1354
+ _block = new Error(
1355
+ new FailedToParseEvent("Failed to parse sgr mouse code"),
1356
+ );
1357
+ }
1358
+ }
1359
+ }
1360
+ }
1361
+ let res = _block;
1362
+ return try$(
1363
+ res,
1364
+ (_use0) => {
1365
+ let code;
1366
+ let column;
1367
+ let row;
1368
+ code = _use0[0];
1369
+ column = _use0[1];
1370
+ row = _use0[2];
1371
+ let _block$1;
1372
+ let _pipe = $int.parse(column);
1373
+ _block$1 = $result.unwrap(_pipe, 0);
1374
+ let column$1 = _block$1;
1375
+ let is_release = $string.ends_with(row, "m");
1376
+ let _block$2;
1377
+ let _pipe$1 = $string.drop_end(row, 1);
1378
+ let _pipe$2 = $int.parse(_pipe$1);
1379
+ _block$2 = $result.unwrap(_pipe$2, 0);
1380
+ let row$1 = _block$2;
1381
+ return try$(
1382
+ parse_cb(code),
1383
+ (_use0) => {
1384
+ let modifiers;
1385
+ let kind;
1386
+ modifiers = _use0[0];
1387
+ kind = _use0[1];
1388
+ let _block$3;
1389
+ if (is_release) {
1390
+ if (kind instanceof Down) {
1391
+ let b = kind[0];
1392
+ _block$3 = new Up(b);
1393
+ } else {
1394
+ _block$3 = kind;
1395
+ }
1396
+ } else {
1397
+ _block$3 = kind;
1398
+ }
1399
+ let kind$1 = _block$3;
1400
+ return new Ok(
1401
+ new Mouse(
1402
+ new MouseEvent(kind$1, column$1 - 1, row$1 - 1, modifiers),
1403
+ ),
1404
+ );
1405
+ },
1406
+ );
1407
+ },
1408
+ );
1409
+ }
1410
+
1411
+ export function parse_modifiers(code) {
1412
+ let _block;
1413
+ let $ = code - 1;
1414
+ let x = $;
1415
+ if (x < 0) {
1416
+ _block = 0;
1417
+ } else {
1418
+ _block = $;
1419
+ }
1420
+ let mask = _block;
1421
+ return new Modifiers(
1422
+ $int.bitwise_and(mask, 1) !== 0,
1423
+ $int.bitwise_and(mask, 2) !== 0,
1424
+ $int.bitwise_and(mask, 4) !== 0,
1425
+ $int.bitwise_and(mask, 8) !== 0,
1426
+ $int.bitwise_and(mask, 16) !== 0,
1427
+ $int.bitwise_and(mask, 32) !== 0,
1428
+ );
1429
+ }
1430
+
1431
+ export function parse_u_encoded_key_code(code) {
1432
+ let code$1 = $string.drop_end(code, 1);
1433
+ let split = $string.split(code$1, ";");
1434
+ let _block;
1435
+ if (split instanceof $Empty) {
1436
+ _block = new Error(
1437
+ new FailedToParseEvent("Failed to parse u encoded code (CSI <..> u)"),
1438
+ );
1439
+ } else {
1440
+ let $ = split.tail;
1441
+ if ($ instanceof $Empty) {
1442
+ let code$2 = split.head;
1443
+ _block = new Ok([code$2, "0", new None()]);
1444
+ } else {
1445
+ let $1 = $.tail;
1446
+ if ($1 instanceof $Empty) {
1447
+ let code$2 = split.head;
1448
+ let modifiers = $.head;
1449
+ _block = new Ok([code$2, modifiers, new None()]);
1450
+ } else {
1451
+ let $2 = $1.tail;
1452
+ if ($2 instanceof $Empty) {
1453
+ let code$2 = split.head;
1454
+ let modifiers = $.head;
1455
+ let text = $1.head;
1456
+ _block = new Ok([code$2, modifiers, new Some(text)]);
1457
+ } else {
1458
+ _block = new Error(
1459
+ new FailedToParseEvent(
1460
+ "Failed to parse u encoded code (CSI <..> u)",
1461
+ ),
1462
+ );
1463
+ }
1464
+ }
1465
+ }
1466
+ }
1467
+ let res = _block;
1468
+ return try$(
1469
+ res,
1470
+ (_use0) => {
1471
+ let code$2;
1472
+ let modifiers;
1473
+ let text;
1474
+ code$2 = _use0[0];
1475
+ modifiers = _use0[1];
1476
+ text = _use0[2];
1477
+ let _block$1;
1478
+ if (text instanceof Some) {
1479
+ let text$1 = text[0];
1480
+ let _block$2;
1481
+ let _pipe = $int.parse(text$1);
1482
+ let _pipe$1 = $result.unwrap(_pipe, 0);
1483
+ _block$2 = $string.utf_codepoint(_pipe$1);
1484
+ let $ = _block$2;
1485
+ let text$2;
1486
+ if ($ instanceof Ok) {
1487
+ text$2 = $[0];
1488
+ } else {
1489
+ throw makeError(
1490
+ "let_assert",
1491
+ FILEPATH,
1492
+ "etch/event",
1493
+ 552,
1494
+ "parse_u_encoded_key_code",
1495
+ "Pattern match failed, no pattern matched the value.",
1496
+ {
1497
+ value: $,
1498
+ start: 13512,
1499
+ end: 13619,
1500
+ pattern_start: 13523,
1501
+ pattern_end: 13531
1502
+ }
1503
+ )
1504
+ }
1505
+ _block$1 = $string.from_utf_codepoints(toList([text$2]));
1506
+ } else {
1507
+ _block$1 = "";
1508
+ }
1509
+ let text$1 = _block$1;
1510
+ let code_parts = $string.split(code$2, ":");
1511
+ let _block$2;
1512
+ if (code_parts instanceof $Empty) {
1513
+ _block$2 = new Error(
1514
+ new FailedToParseEvent("Failed to parse u encoded code"),
1515
+ );
1516
+ } else {
1517
+ let $ = code_parts.tail;
1518
+ if ($ instanceof $Empty) {
1519
+ let unicode = code_parts.head;
1520
+ _block$2 = new Ok([unicode, new None(), new None()]);
1521
+ } else {
1522
+ let $1 = $.tail;
1523
+ if ($1 instanceof $Empty) {
1524
+ let unicode = code_parts.head;
1525
+ let alternate_code = $.head;
1526
+ _block$2 = new Ok([unicode, new Some(alternate_code), new None()]);
1527
+ } else {
1528
+ let $2 = $1.tail;
1529
+ if ($2 instanceof $Empty) {
1530
+ let unicode = code_parts.head;
1531
+ let alternate_code = $.head;
1532
+ let base_layout_key = $1.head;
1533
+ _block$2 = new Ok(
1534
+ [unicode, new Some(alternate_code), new Some(base_layout_key)],
1535
+ );
1536
+ } else {
1537
+ _block$2 = new Error(
1538
+ new FailedToParseEvent("Failed to parse u encoded code"),
1539
+ );
1540
+ }
1541
+ }
1542
+ }
1543
+ }
1544
+ let res$1 = _block$2;
1545
+ return try$(
1546
+ res$1,
1547
+ (_use0) => {
1548
+ let code$3;
1549
+ let alternate_code;
1550
+ code$3 = _use0[0];
1551
+ alternate_code = _use0[1];
1552
+ return try$(
1553
+ parse_modifier_and_kind(modifiers),
1554
+ (_use0) => {
1555
+ let modifier_mask;
1556
+ let kind_mask;
1557
+ modifier_mask = _use0[0];
1558
+ kind_mask = _use0[1];
1559
+ let $ = [
1560
+ parse_modifiers(modifier_mask),
1561
+ parse_kind(kind_mask),
1562
+ parse_modifier_to_state(modifier_mask),
1563
+ ];
1564
+ let modifiers$1;
1565
+ let kind;
1566
+ let state_from_modifier;
1567
+ modifiers$1 = $[0];
1568
+ kind = $[1];
1569
+ state_from_modifier = $[2];
1570
+ let _block$3;
1571
+ let $2 = translate_functional_key_code(code$3);
1572
+ if ($2 instanceof Some) {
1573
+ let keycode = $2[0][0];
1574
+ let state = $2[0][1];
1575
+ _block$3 = [keycode, state];
1576
+ } else {
1577
+ let _block$4;
1578
+ let _pipe = $int.parse(code$3);
1579
+ let _pipe$1 = $result.unwrap(_pipe, 0);
1580
+ _block$4 = $string.utf_codepoint(_pipe$1);
1581
+ let $3 = _block$4;
1582
+ let c;
1583
+ if ($3 instanceof Ok) {
1584
+ c = $3[0];
1585
+ } else {
1586
+ throw makeError(
1587
+ "let_assert",
1588
+ FILEPATH,
1589
+ "etch/event",
1590
+ 582,
1591
+ "parse_u_encoded_key_code",
1592
+ "Pattern match failed, no pattern matched the value.",
1593
+ {
1594
+ value: $3,
1595
+ start: 14526,
1596
+ end: 14630,
1597
+ pattern_start: 14537,
1598
+ pattern_end: 14542
1599
+ }
1600
+ )
1601
+ }
1602
+ let c$1 = $string.from_utf_codepoints(toList([c]));
1603
+ let _block$5;
1604
+ if (c$1 === "\r") {
1605
+ _block$5 = new Enter();
1606
+ } else if (c$1 === "\n") {
1607
+ _block$5 = new Enter();
1608
+ } else if (c$1 === "\u{001b}") {
1609
+ _block$5 = new Esc();
1610
+ } else if (c$1 === "\u{007f}") {
1611
+ _block$5 = new Backspace();
1612
+ } else if (c$1 === "\u{0008}") {
1613
+ _block$5 = new Backspace();
1614
+ } else if (c$1 === "\t") {
1615
+ if (modifiers$1.shift) {
1616
+ _block$5 = new Backtab();
1617
+ } else {
1618
+ _block$5 = new Tab();
1619
+ }
1620
+ } else {
1621
+ let c$2 = c$1;
1622
+ _block$5 = new Char(c$2);
1623
+ }
1624
+ let keycode = _block$5;
1625
+ _block$3 = [keycode, new KeyEventState(false, false, false)];
1626
+ }
1627
+ let $1 = _block$3;
1628
+ let keycode;
1629
+ let state_from_keycode;
1630
+ keycode = $1[0];
1631
+ state_from_keycode = $1[1];
1632
+ let _block$4;
1633
+ if (keycode instanceof Modifier) {
1634
+ let x = keycode[0];
1635
+ if ((x instanceof LeftAlt) || (x instanceof RightAlt)) {
1636
+ _block$4 = new Modifiers(
1637
+ modifiers$1.shift,
1638
+ true,
1639
+ modifiers$1.control,
1640
+ modifiers$1.super,
1641
+ modifiers$1.hyper,
1642
+ modifiers$1.meta,
1643
+ );
1644
+ } else {
1645
+ let x = keycode[0];
1646
+ if ((x instanceof LeftShift) || (x instanceof RightShift)) {
1647
+ _block$4 = new Modifiers(
1648
+ true,
1649
+ modifiers$1.alt,
1650
+ modifiers$1.control,
1651
+ modifiers$1.super,
1652
+ modifiers$1.hyper,
1653
+ modifiers$1.meta,
1654
+ );
1655
+ } else {
1656
+ let x = keycode[0];
1657
+ if (
1658
+ (x instanceof LeftControl) || (x instanceof RightControl)
1659
+ ) {
1660
+ _block$4 = new Modifiers(
1661
+ modifiers$1.shift,
1662
+ modifiers$1.alt,
1663
+ true,
1664
+ modifiers$1.super,
1665
+ modifiers$1.hyper,
1666
+ modifiers$1.meta,
1667
+ );
1668
+ } else {
1669
+ let x = keycode[0];
1670
+ if ((x instanceof LeftSuper) || (x instanceof RightSuper)) {
1671
+ _block$4 = new Modifiers(
1672
+ modifiers$1.shift,
1673
+ modifiers$1.alt,
1674
+ modifiers$1.control,
1675
+ true,
1676
+ modifiers$1.hyper,
1677
+ modifiers$1.meta,
1678
+ );
1679
+ } else {
1680
+ let x = keycode[0];
1681
+ if (
1682
+ (x instanceof LeftHyper) || (x instanceof RightHyper)
1683
+ ) {
1684
+ _block$4 = new Modifiers(
1685
+ modifiers$1.shift,
1686
+ modifiers$1.alt,
1687
+ modifiers$1.control,
1688
+ modifiers$1.super,
1689
+ true,
1690
+ modifiers$1.meta,
1691
+ );
1692
+ } else {
1693
+ let x = keycode[0];
1694
+ if (
1695
+ (x instanceof LeftMeta) || (x instanceof RightMeta)
1696
+ ) {
1697
+ _block$4 = new Modifiers(
1698
+ modifiers$1.shift,
1699
+ modifiers$1.alt,
1700
+ modifiers$1.control,
1701
+ modifiers$1.super,
1702
+ modifiers$1.hyper,
1703
+ true,
1704
+ );
1705
+ } else {
1706
+ _block$4 = modifiers$1;
1707
+ }
1708
+ }
1709
+ }
1710
+ }
1711
+ }
1712
+ }
1713
+ } else {
1714
+ _block$4 = modifiers$1;
1715
+ }
1716
+ let modifiers$2 = _block$4;
1717
+ let _block$5;
1718
+ let $3 = modifiers$2.shift;
1719
+ if ($3) {
1720
+ if (alternate_code instanceof Some) {
1721
+ let c = alternate_code[0];
1722
+ let _block$6;
1723
+ let _pipe = $int.parse(c);
1724
+ let _pipe$1 = $result.unwrap(_pipe, 0);
1725
+ _block$6 = $string.utf_codepoint(_pipe$1);
1726
+ let $4 = _block$6;
1727
+ let c$1;
1728
+ if ($4 instanceof Ok) {
1729
+ c$1 = $4[0];
1730
+ } else {
1731
+ throw makeError(
1732
+ "let_assert",
1733
+ FILEPATH,
1734
+ "etch/event",
1735
+ 622,
1736
+ "parse_u_encoded_key_code",
1737
+ "Pattern match failed, no pattern matched the value.",
1738
+ {
1739
+ value: $4,
1740
+ start: 15769,
1741
+ end: 15882,
1742
+ pattern_start: 15780,
1743
+ pattern_end: 15785
1744
+ }
1745
+ )
1746
+ }
1747
+ let c$2 = $string.from_utf_codepoints(toList([c$1]));
1748
+ _block$5 = new Char(c$2);
1749
+ } else {
1750
+ _block$5 = keycode;
1751
+ }
1752
+ } else {
1753
+ _block$5 = keycode;
1754
+ }
1755
+ let keycode$1 = _block$5;
1756
+ let state = new KeyEventState(
1757
+ state_from_modifier.keypad || state_from_keycode.keypad,
1758
+ state_from_modifier.capslock || state_from_keycode.capslock,
1759
+ state_from_modifier.numlock || state_from_keycode.numlock,
1760
+ );
1761
+ return new Ok(
1762
+ new Key(
1763
+ new KeyEvent(keycode$1, modifiers$2, kind, state, text$1),
1764
+ ),
1765
+ );
1766
+ },
1767
+ );
1768
+ },
1769
+ );
1770
+ },
1771
+ );
1772
+ }
1773
+
1774
+ export function parse_special_key_code(code) {
1775
+ let code$1 = $string.drop_end(code, 1);
1776
+ let split = $string.split(code$1, ";");
1777
+ let _block;
1778
+ if (split instanceof $Empty) {
1779
+ _block = new Error(
1780
+ new FailedToParseEvent("Failed to parse special key code (CSI <..> ~)"),
1781
+ );
1782
+ } else {
1783
+ let $ = split.tail;
1784
+ if ($ instanceof $Empty) {
1785
+ let key = split.head;
1786
+ _block = new Ok([key, "0"]);
1787
+ } else {
1788
+ let $1 = $.tail;
1789
+ if ($1 instanceof $Empty) {
1790
+ let key = split.head;
1791
+ let modifier = $.head;
1792
+ _block = new Ok([key, modifier]);
1793
+ } else {
1794
+ _block = new Error(
1795
+ new FailedToParseEvent(
1796
+ "Failed to parse special key code (CSI <..> ~)",
1797
+ ),
1798
+ );
1799
+ }
1800
+ }
1801
+ }
1802
+ let res = _block;
1803
+ return try$(
1804
+ res,
1805
+ (_use0) => {
1806
+ let key;
1807
+ let modifier;
1808
+ key = _use0[0];
1809
+ modifier = _use0[1];
1810
+ return try$(
1811
+ parse_modifier_and_kind(modifier),
1812
+ (_use0) => {
1813
+ let modifier_mask;
1814
+ let kind_mask;
1815
+ modifier_mask = _use0[0];
1816
+ kind_mask = _use0[1];
1817
+ let $ = [
1818
+ parse_modifiers(modifier_mask),
1819
+ parse_kind(kind_mask),
1820
+ parse_modifier_to_state(modifier_mask),
1821
+ ];
1822
+ let modifiers;
1823
+ let kind;
1824
+ let state;
1825
+ modifiers = $[0];
1826
+ kind = $[1];
1827
+ state = $[2];
1828
+ let _block$1;
1829
+ let _pipe = $int.parse(key);
1830
+ _block$1 = $result.unwrap(_pipe, 1);
1831
+ let key$1 = _block$1;
1832
+ let _block$2;
1833
+ if (key$1 === 1) {
1834
+ _block$2 = new Ok(new Home());
1835
+ } else if (key$1 === 7) {
1836
+ _block$2 = new Ok(new Home());
1837
+ } else if (key$1 === 2) {
1838
+ _block$2 = new Ok(new Insert());
1839
+ } else if (key$1 === 3) {
1840
+ _block$2 = new Ok(new Delete());
1841
+ } else if (key$1 === 4) {
1842
+ _block$2 = new Ok(new End());
1843
+ } else if (key$1 === 8) {
1844
+ _block$2 = new Ok(new End());
1845
+ } else if (key$1 === 5) {
1846
+ _block$2 = new Ok(new PageUp());
1847
+ } else if (key$1 === 6) {
1848
+ _block$2 = new Ok(new PageDown());
1849
+ } else {
1850
+ let k = key$1;
1851
+ let k$1 = k;
1852
+ if ((k$1 >= 11) && (k$1 <= 15)) {
1853
+ _block$2 = new Ok(new F(k$1 - 10));
1854
+ } else {
1855
+ let k$1 = k;
1856
+ if ((k$1 >= 17) && (k$1 <= 21)) {
1857
+ _block$2 = new Ok(new F(k$1 - 11));
1858
+ } else {
1859
+ let k$1 = k;
1860
+ if ((k$1 >= 23) && (k$1 <= 26)) {
1861
+ _block$2 = new Ok(new F(k$1 - 12));
1862
+ } else if (k === 28) {
1863
+ _block$2 = new Ok(new F(k - 15));
1864
+ } else if (k === 29) {
1865
+ _block$2 = new Ok(new F(k - 15));
1866
+ } else {
1867
+ let k$1 = k;
1868
+ if ((k$1 >= 31) && (k$1 <= 34)) {
1869
+ _block$2 = new Ok(new F(k$1 - 17));
1870
+ } else {
1871
+ _block$2 = new Error(
1872
+ new FailedToParseEvent(
1873
+ "Failed to parse special key code (CSI <..> ~)",
1874
+ ),
1875
+ );
1876
+ }
1877
+ }
1878
+ }
1879
+ }
1880
+ }
1881
+ let key$2 = _block$2;
1882
+ return try$(
1883
+ key$2,
1884
+ (key) => {
1885
+ return new Ok(
1886
+ new Key(new KeyEvent(key, modifiers, kind, state, "")),
1887
+ );
1888
+ },
1889
+ );
1890
+ },
1891
+ );
1892
+ },
1893
+ );
1894
+ }
1895
+
1896
+ export function parse_modifier_key_code(code) {
1897
+ let _block;
1898
+ let _pipe = $string.last(code);
1899
+ _block = $result.unwrap(_pipe, "fallback");
1900
+ let key = _block;
1901
+ let code$1 = $string.drop_end(code, 1);
1902
+ let split = $string.split(code$1, ";");
1903
+ let _block$1;
1904
+ if (split instanceof $Empty) {
1905
+ _block$1 = new Error(
1906
+ new FailedToParseEvent("Failed to parse special key code (CSI <..> ~)"),
1907
+ );
1908
+ } else {
1909
+ let $ = split.tail;
1910
+ if ($ instanceof $Empty) {
1911
+ _block$1 = new Error(
1912
+ new FailedToParseEvent("Failed to parse special key code (CSI <..> ~)"),
1913
+ );
1914
+ } else {
1915
+ let $1 = $.tail;
1916
+ if ($1 instanceof $Empty) {
1917
+ let modifiers = $.head;
1918
+ _block$1 = new Ok(modifiers);
1919
+ } else {
1920
+ _block$1 = new Error(
1921
+ new FailedToParseEvent(
1922
+ "Failed to parse special key code (CSI <..> ~)",
1923
+ ),
1924
+ );
1925
+ }
1926
+ }
1927
+ }
1928
+ let res = _block$1;
1929
+ return try$(
1930
+ res,
1931
+ (modifiers) => {
1932
+ return try$(
1933
+ parse_modifier_and_kind(modifiers),
1934
+ (_use0) => {
1935
+ let modifier_mask;
1936
+ let kind_mask;
1937
+ modifier_mask = _use0[0];
1938
+ kind_mask = _use0[1];
1939
+ let $ = [parse_modifiers(modifier_mask), parse_kind(kind_mask)];
1940
+ let modifiers$1;
1941
+ let kind;
1942
+ modifiers$1 = $[0];
1943
+ kind = $[1];
1944
+ let _block$2;
1945
+ if (key === "A") {
1946
+ _block$2 = new Ok(new UpArrow());
1947
+ } else if (key === "B") {
1948
+ _block$2 = new Ok(new DownArrow());
1949
+ } else if (key === "C") {
1950
+ _block$2 = new Ok(new RightArrow());
1951
+ } else if (key === "D") {
1952
+ _block$2 = new Ok(new LeftArrow());
1953
+ } else if (key === "F") {
1954
+ _block$2 = new Ok(new End());
1955
+ } else if (key === "H") {
1956
+ _block$2 = new Ok(new Home());
1957
+ } else if (key === "P") {
1958
+ _block$2 = new Ok(new F(1));
1959
+ } else if (key === "Q") {
1960
+ _block$2 = new Ok(new F(2));
1961
+ } else if (key === "R") {
1962
+ _block$2 = new Ok(new F(3));
1963
+ } else if (key === "S") {
1964
+ _block$2 = new Ok(new F(4));
1965
+ } else {
1966
+ _block$2 = new Error(
1967
+ new FailedToParseEvent("Failed to parse modifier key code"),
1968
+ );
1969
+ }
1970
+ let res$1 = _block$2;
1971
+ return try$(
1972
+ res$1,
1973
+ (key) => {
1974
+ return new Ok(
1975
+ new Key(
1976
+ new KeyEvent(
1977
+ key,
1978
+ modifiers$1,
1979
+ kind,
1980
+ new KeyEventState(false, false, false),
1981
+ "",
1982
+ ),
1983
+ ),
1984
+ );
1985
+ },
1986
+ );
1987
+ },
1988
+ );
1989
+ },
1990
+ );
1991
+ }
1992
+
1993
+ export function handle_escape_code(s) {
1994
+ if (s === "A") {
1995
+ return new Ok(new Key(default_key_event(new UpArrow())));
1996
+ } else if (s === "B") {
1997
+ return new Ok(new Key(default_key_event(new DownArrow())));
1998
+ } else if (s === "C") {
1999
+ return new Ok(new Key(default_key_event(new RightArrow())));
2000
+ } else if (s === "D") {
2001
+ return new Ok(new Key(default_key_event(new LeftArrow())));
2002
+ } else if (s === "H") {
2003
+ return new Ok(new Key(default_key_event(new Home())));
2004
+ } else if (s === "F") {
2005
+ return new Ok(new Key(default_key_event(new End())));
2006
+ } else if (s === "O") {
2007
+ return new Ok(new FocusLost());
2008
+ } else if (s === "I") {
2009
+ return new Ok(new FocusGained());
2010
+ } else if (s.startsWith("M")) {
2011
+ let code = s.slice(1);
2012
+ return parse_normal_mouse(code);
2013
+ } else if (s.startsWith("<")) {
2014
+ let code = s.slice(1);
2015
+ return parse_sgr_mouse(code);
2016
+ } else if (s.startsWith(";")) {
2017
+ let code = s.slice(1);
2018
+ return parse_modifier_key_code(code);
2019
+ } else if (s === "P") {
2020
+ return new Ok(new Key(default_key_event(new F(1))));
2021
+ } else if (s === "Q") {
2022
+ return new Ok(new Key(default_key_event(new F(2))));
2023
+ } else if (s === "S") {
2024
+ return new Ok(new Key(default_key_event(new F(4))));
2025
+ } else if (s.startsWith("?")) {
2026
+ return new Error(new FailedToParseEvent("Failed to parse escape code"));
2027
+ } else {
2028
+ let s$1 = s;
2029
+ let $ = starts_with_number(s$1);
2030
+ if ($) {
2031
+ let $1 = $string.last(s$1);
2032
+ if ($1 instanceof Ok) {
2033
+ let $2 = $1[0];
2034
+ if ($2 === "M") {
2035
+ return parse_rxvt_mouse(s$1);
2036
+ } else if ($2 === "~") {
2037
+ return parse_special_key_code(s$1);
2038
+ } else if ($2 === "u") {
2039
+ return parse_u_encoded_key_code(s$1);
2040
+ } else {
2041
+ let l = $2;
2042
+ if (l !== "R") {
2043
+ return parse_modifier_key_code(s$1);
2044
+ } else {
2045
+ return new Error(
2046
+ new FailedToParseEvent("Unsupported numbered escape code"),
2047
+ );
2048
+ }
2049
+ }
2050
+ } else {
2051
+ return new Error(
2052
+ new FailedToParseEvent("Unsupported numbered escape code"),
2053
+ );
2054
+ }
2055
+ } else {
2056
+ return new Error(new FailedToParseEvent("Failed to parse escape code"));
2057
+ }
2058
+ }
2059
+ }
2060
+
2061
+ export function parse_events(
2062
+ loop$str,
2063
+ loop$esc_acc,
2064
+ loop$list_acc,
2065
+ loop$in_escape_sequence
2066
+ ) {
2067
+ while (true) {
2068
+ let str = loop$str;
2069
+ let esc_acc = loop$esc_acc;
2070
+ let list_acc = loop$list_acc;
2071
+ let in_escape_sequence = loop$in_escape_sequence;
2072
+ if (str instanceof $Empty) {
2073
+ return $list.reverse(list_acc);
2074
+ } else if (in_escape_sequence) {
2075
+ let $ = str.tail;
2076
+ if ($ instanceof $Empty) {
2077
+ let c = str.head;
2078
+ let rest = $;
2079
+ let _block;
2080
+ let _pipe = $string.to_utf_codepoints(c);
2081
+ _block = $list.first(_pipe);
2082
+ let $1 = _block;
2083
+ let x;
2084
+ if ($1 instanceof Ok) {
2085
+ x = $1[0];
2086
+ } else {
2087
+ throw makeError(
2088
+ "let_assert",
2089
+ FILEPATH,
2090
+ "etch/event",
2091
+ 346,
2092
+ "parse_events",
2093
+ "Pattern match failed, no pattern matched the value.",
2094
+ {
2095
+ value: $1,
2096
+ start: 7366,
2097
+ end: 7428,
2098
+ pattern_start: 7377,
2099
+ pattern_end: 7382
2100
+ }
2101
+ )
2102
+ }
2103
+ let x$1 = $string.utf_codepoint_to_int(x);
2104
+ let x$2 = x$1;
2105
+ if ((x$2 >= 64) && (x$2 <= 126)) {
2106
+ let event = handle_escape_code(esc_acc + c);
2107
+ let list_acc$1 = listPrepend(event, list_acc);
2108
+ loop$str = rest;
2109
+ loop$esc_acc = "";
2110
+ loop$list_acc = list_acc$1;
2111
+ loop$in_escape_sequence = false;
2112
+ } else {
2113
+ loop$str = rest;
2114
+ loop$esc_acc = esc_acc + c;
2115
+ loop$list_acc = list_acc;
2116
+ loop$in_escape_sequence = true;
2117
+ }
2118
+ } else {
2119
+ let $1 = str.head;
2120
+ if ($1 === "\u{001b}") {
2121
+ let $2 = $.head;
2122
+ if ($2 === "[") {
2123
+ let rest = $.tail;
2124
+ let list_acc$1 = listPrepend(
2125
+ new Error(new FailedToParseEvent("Unterminated escape sequence")),
2126
+ list_acc,
2127
+ );
2128
+ loop$str = rest;
2129
+ loop$esc_acc = "";
2130
+ loop$list_acc = list_acc$1;
2131
+ loop$in_escape_sequence = true;
2132
+ } else {
2133
+ let c = $1;
2134
+ let rest = $;
2135
+ let _block;
2136
+ let _pipe = $string.to_utf_codepoints(c);
2137
+ _block = $list.first(_pipe);
2138
+ let $3 = _block;
2139
+ let x;
2140
+ if ($3 instanceof Ok) {
2141
+ x = $3[0];
2142
+ } else {
2143
+ throw makeError(
2144
+ "let_assert",
2145
+ FILEPATH,
2146
+ "etch/event",
2147
+ 346,
2148
+ "parse_events",
2149
+ "Pattern match failed, no pattern matched the value.",
2150
+ {
2151
+ value: $3,
2152
+ start: 7366,
2153
+ end: 7428,
2154
+ pattern_start: 7377,
2155
+ pattern_end: 7382
2156
+ }
2157
+ )
2158
+ }
2159
+ let x$1 = $string.utf_codepoint_to_int(x);
2160
+ let x$2 = x$1;
2161
+ if ((x$2 >= 64) && (x$2 <= 126)) {
2162
+ let event = handle_escape_code(esc_acc + c);
2163
+ let list_acc$1 = listPrepend(event, list_acc);
2164
+ loop$str = rest;
2165
+ loop$esc_acc = "";
2166
+ loop$list_acc = list_acc$1;
2167
+ loop$in_escape_sequence = false;
2168
+ } else {
2169
+ loop$str = rest;
2170
+ loop$esc_acc = esc_acc + c;
2171
+ loop$list_acc = list_acc;
2172
+ loop$in_escape_sequence = true;
2173
+ }
2174
+ }
2175
+ } else {
2176
+ let c = $1;
2177
+ let rest = $;
2178
+ let _block;
2179
+ let _pipe = $string.to_utf_codepoints(c);
2180
+ _block = $list.first(_pipe);
2181
+ let $2 = _block;
2182
+ let x;
2183
+ if ($2 instanceof Ok) {
2184
+ x = $2[0];
2185
+ } else {
2186
+ throw makeError(
2187
+ "let_assert",
2188
+ FILEPATH,
2189
+ "etch/event",
2190
+ 346,
2191
+ "parse_events",
2192
+ "Pattern match failed, no pattern matched the value.",
2193
+ {
2194
+ value: $2,
2195
+ start: 7366,
2196
+ end: 7428,
2197
+ pattern_start: 7377,
2198
+ pattern_end: 7382
2199
+ }
2200
+ )
2201
+ }
2202
+ let x$1 = $string.utf_codepoint_to_int(x);
2203
+ let x$2 = x$1;
2204
+ if ((x$2 >= 64) && (x$2 <= 126)) {
2205
+ let event = handle_escape_code(esc_acc + c);
2206
+ let list_acc$1 = listPrepend(event, list_acc);
2207
+ loop$str = rest;
2208
+ loop$esc_acc = "";
2209
+ loop$list_acc = list_acc$1;
2210
+ loop$in_escape_sequence = false;
2211
+ } else {
2212
+ loop$str = rest;
2213
+ loop$esc_acc = esc_acc + c;
2214
+ loop$list_acc = list_acc;
2215
+ loop$in_escape_sequence = true;
2216
+ }
2217
+ }
2218
+ }
2219
+ } else {
2220
+ let $ = str.tail;
2221
+ if ($ instanceof $Empty) {
2222
+ let s = str.head;
2223
+ let rest = $;
2224
+ let list_acc$1 = listPrepend(
2225
+ new Ok(new Key(default_key_event(char_to_key_code(s)))),
2226
+ list_acc,
2227
+ );
2228
+ loop$str = rest;
2229
+ loop$esc_acc = esc_acc + s;
2230
+ loop$list_acc = list_acc$1;
2231
+ loop$in_escape_sequence = false;
2232
+ } else {
2233
+ let $1 = str.head;
2234
+ if ($1 === "\u{001b}") {
2235
+ let $2 = $.head;
2236
+ if ($2 === "[") {
2237
+ let rest = $.tail;
2238
+ loop$str = rest;
2239
+ loop$esc_acc = "";
2240
+ loop$list_acc = list_acc;
2241
+ loop$in_escape_sequence = true;
2242
+ } else {
2243
+ let s = $1;
2244
+ let rest = $;
2245
+ let list_acc$1 = listPrepend(
2246
+ new Ok(new Key(default_key_event(char_to_key_code(s)))),
2247
+ list_acc,
2248
+ );
2249
+ loop$str = rest;
2250
+ loop$esc_acc = esc_acc + s;
2251
+ loop$list_acc = list_acc$1;
2252
+ loop$in_escape_sequence = false;
2253
+ }
2254
+ } else {
2255
+ let s = $1;
2256
+ let rest = $;
2257
+ let list_acc$1 = listPrepend(
2258
+ new Ok(new Key(default_key_event(char_to_key_code(s)))),
2259
+ list_acc,
2260
+ );
2261
+ loop$str = rest;
2262
+ loop$esc_acc = esc_acc + s;
2263
+ loop$list_acc = list_acc$1;
2264
+ loop$in_escape_sequence = false;
2265
+ }
2266
+ }
2267
+ }
2268
+ }
2269
+ }
2270
+
2271
+ function input_loop() {
2272
+ return $promise.await$(
2273
+ get_chars("", 1024),
2274
+ (bytes) => {
2275
+ let _block;
2276
+ let _pipe = $array.to_list(bytes);
2277
+ _block = $list.map(
2278
+ _pipe,
2279
+ (n) => {
2280
+ let _block$1;
2281
+ let _pipe$1 = $string.utf_codepoint(n);
2282
+ _block$1 = $result.lazy_unwrap(
2283
+ _pipe$1,
2284
+ () => {
2285
+ let $ = $string.utf_codepoint(65);
2286
+ let fallback;
2287
+ if ($ instanceof Ok) {
2288
+ fallback = $[0];
2289
+ } else {
2290
+ throw makeError(
2291
+ "let_assert",
2292
+ FILEPATH,
2293
+ "etch/event",
2294
+ 306,
2295
+ "input_loop",
2296
+ "Pattern match failed, no pattern matched the value.",
2297
+ {
2298
+ value: $,
2299
+ start: 6435,
2300
+ end: 6485,
2301
+ pattern_start: 6446,
2302
+ pattern_end: 6458
2303
+ }
2304
+ )
2305
+ }
2306
+ return fallback;
2307
+ },
2308
+ );
2309
+ let code = _block$1;
2310
+ return $string.from_utf_codepoints(toList([code]));
2311
+ },
2312
+ );
2313
+ let bytes$1 = _block;
2314
+ let events = parse_events(bytes$1, "", toList([]), false);
2315
+ push_events(events);
2316
+ return input_loop();
2317
+ },
2318
+ );
2319
+ }
2320
+
2321
+ /**
2322
+ * Initializes the event server responsible for listening for events.
2323
+ *
2324
+ * This function must be called after [`terminal.enter_raw()`](terminal.html#enter_raw)
2325
+ * to ensure proper event handling.
2326
+ * Initializes the event server responsible for listening for events.
2327
+ *
2328
+ * This function must be called after [`terminal.enter_raw()`](terminal.html#enter_raw)
2329
+ * to ensure proper event handling.
2330
+ */
2331
+ export function init_event_server() {
2332
+ handle_sigwinch();
2333
+ return input_loop();
2334
+ }
2335
+
2336
+ /**
2337
+ * Enables focus change.
2338
+ * It is prefered not to use this directly. See [`EnableFocusChange`](command.html#EnableFocusChange).
2339
+ */
2340
+ export function enable_focus_change() {
2341
+ return csi + "?1004h";
2342
+ }
2343
+
2344
+ /**
2345
+ * Disables focus change.
2346
+ * It is prefered not to use this directly. See [`DisableFocusChange`](command.html#DisableFocusChange).
2347
+ */
2348
+ export function disable_focus_change() {
2349
+ return csi + "?1004l";
2350
+ }
2351
+
2352
+ function push_keyboard_enhancement_flags_inner(loop$flags, loop$acc) {
2353
+ while (true) {
2354
+ let flags = loop$flags;
2355
+ let acc = loop$acc;
2356
+ if (flags instanceof $Empty) {
2357
+ return ((csi + ">") + $int.to_string(acc)) + "u";
2358
+ } else {
2359
+ let $ = flags.head;
2360
+ if ($ instanceof DisambiguateEscapeCode) {
2361
+ let rest = flags.tail;
2362
+ loop$flags = rest;
2363
+ loop$acc = acc + 1;
2364
+ } else if ($ instanceof ReportEventTypes) {
2365
+ let rest = flags.tail;
2366
+ loop$flags = rest;
2367
+ loop$acc = acc + 2;
2368
+ } else if ($ instanceof ReportAlternateKeys) {
2369
+ let rest = flags.tail;
2370
+ loop$flags = rest;
2371
+ loop$acc = acc + 4;
2372
+ } else if ($ instanceof ReportAllKeysAsEscapeCode) {
2373
+ let rest = flags.tail;
2374
+ loop$flags = rest;
2375
+ loop$acc = acc + 8;
2376
+ } else {
2377
+ let rest = flags.tail;
2378
+ loop$flags = rest;
2379
+ loop$acc = acc + 16;
2380
+ }
2381
+ }
2382
+ }
2383
+ }
2384
+
2385
+ /**
2386
+ * Pushes keyboard enhancement flags.
2387
+ * It is prefered not to use this directly. See [`PushKeyboardEnhancementFlags`](command.html#PushKeyboardEnhancementFlags).
2388
+ */
2389
+ export function push_keyboard_enhancement_flags(flags) {
2390
+ return push_keyboard_enhancement_flags_inner(flags, 0);
2391
+ }
2392
+
2393
+ /**
2394
+ * Pops keyboard enhancement flags.
2395
+ * It is prefered not to use this directly. See [`PopKeyboardEnhancementFlags`](command.html#PopKeyboardEnhancementFlags).
2396
+ */
2397
+ export function pop_keyboard_enhancement_flags() {
2398
+ return csi + "<1u";
2399
+ }