ctrl-fx 0.0.1 → 0.1.0

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 (145) hide show
  1. package/dist/clipboard.d.ts +7 -0
  2. package/dist/clipboard.d.ts.map +1 -0
  3. package/dist/clipboard.js +3 -0
  4. package/dist/db/effects.d.ts +78 -0
  5. package/dist/db/effects.d.ts.map +1 -0
  6. package/dist/db/effects.js +98 -0
  7. package/dist/db/errors.d.ts +21 -0
  8. package/dist/db/errors.d.ts.map +1 -0
  9. package/dist/db/errors.js +13 -0
  10. package/dist/db/index.d.ts +32 -0
  11. package/dist/db/index.d.ts.map +1 -0
  12. package/dist/db/index.js +19 -0
  13. package/dist/db/keypath.d.ts +40 -0
  14. package/dist/db/keypath.d.ts.map +1 -0
  15. package/dist/db/keypath.js +20 -0
  16. package/dist/db/setup.d.ts +83 -0
  17. package/dist/db/setup.d.ts.map +1 -0
  18. package/dist/db/setup.js +100 -0
  19. package/dist/db/testdb.d.ts +19 -0
  20. package/dist/db/testdb.d.ts.map +1 -0
  21. package/dist/db/testdb.js +34 -0
  22. package/dist/dom/attrs.d.ts +67 -0
  23. package/dist/dom/attrs.d.ts.map +1 -0
  24. package/dist/dom/attrs.js +154 -0
  25. package/dist/dom/components.d.ts +43 -0
  26. package/dist/dom/components.d.ts.map +1 -0
  27. package/dist/dom/components.js +86 -0
  28. package/dist/dom/elems.d.ts +121 -0
  29. package/dist/dom/elems.d.ts.map +1 -0
  30. package/dist/dom/elems.js +52 -0
  31. package/dist/dom/events.d.ts +232 -0
  32. package/dist/dom/events.d.ts.map +1 -0
  33. package/dist/dom/events.js +289 -0
  34. package/dist/dom/index.d.ts +248 -0
  35. package/dist/dom/index.d.ts.map +1 -0
  36. package/dist/dom/index.js +266 -0
  37. package/dist/dom/nodeid.d.ts +9 -0
  38. package/dist/dom/nodeid.d.ts.map +1 -0
  39. package/dist/dom/nodeid.js +27 -0
  40. package/dist/dom/svg.d.ts +23 -0
  41. package/dist/dom/svg.d.ts.map +1 -0
  42. package/dist/dom/svg.js +1 -0
  43. package/dist/dom/views.d.ts +60 -0
  44. package/dist/dom/views.d.ts.map +1 -0
  45. package/dist/dom/views.js +154 -0
  46. package/dist/effects.d.ts +580 -0
  47. package/dist/effects.d.ts.map +1 -0
  48. package/dist/effects.js +1556 -0
  49. package/dist/index.d.ts +41 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +78 -0
  52. package/dist/internal/clipboard.d.ts +5 -0
  53. package/dist/internal/clipboard.d.ts.map +1 -0
  54. package/dist/internal/clipboard.js +33 -0
  55. package/dist/internal/cmpmgr.d.ts +46 -0
  56. package/dist/internal/cmpmgr.d.ts.map +1 -0
  57. package/dist/internal/cmpmgr.js +561 -0
  58. package/dist/internal/dbmgr.d.ts +11 -0
  59. package/dist/internal/dbmgr.d.ts.map +1 -0
  60. package/dist/internal/dbmgr.js +200 -0
  61. package/dist/internal/dominterpreter.d.ts +5 -0
  62. package/dist/internal/dominterpreter.d.ts.map +1 -0
  63. package/dist/internal/dominterpreter.js +337 -0
  64. package/dist/internal/eventmgr.d.ts +41 -0
  65. package/dist/internal/eventmgr.d.ts.map +1 -0
  66. package/dist/internal/eventmgr.js +696 -0
  67. package/dist/internal/index.d.ts +19 -0
  68. package/dist/internal/index.d.ts.map +1 -0
  69. package/dist/internal/index.js +38 -0
  70. package/dist/internal/interpreter.d.ts +10 -0
  71. package/dist/internal/interpreter.d.ts.map +1 -0
  72. package/dist/internal/interpreter.js +1 -0
  73. package/dist/internal/locutils.d.ts +4 -0
  74. package/dist/internal/locutils.d.ts.map +1 -0
  75. package/dist/internal/locutils.js +22 -0
  76. package/dist/internal/net.d.ts +4 -0
  77. package/dist/internal/net.d.ts.map +1 -0
  78. package/dist/internal/net.js +64 -0
  79. package/dist/internal/realdom.d.ts +249 -0
  80. package/dist/internal/realdom.d.ts.map +1 -0
  81. package/dist/internal/realdom.js +1 -0
  82. package/dist/internal/styleregistry.d.ts +6 -0
  83. package/dist/internal/styleregistry.d.ts.map +1 -0
  84. package/dist/internal/styleregistry.js +18 -0
  85. package/dist/internal/taskreg.d.ts +9 -0
  86. package/dist/internal/taskreg.d.ts.map +1 -0
  87. package/dist/internal/taskreg.js +28 -0
  88. package/dist/internal/testing.d.ts +12 -0
  89. package/dist/internal/testing.d.ts.map +1 -0
  90. package/dist/internal/testing.js +974 -0
  91. package/dist/internal/testinginterpreter.d.ts +10 -0
  92. package/dist/internal/testinginterpreter.d.ts.map +1 -0
  93. package/dist/internal/testinginterpreter.js +646 -0
  94. package/dist/internal/vdom.d.ts +93 -0
  95. package/dist/internal/vdom.d.ts.map +1 -0
  96. package/dist/internal/vdom.js +470 -0
  97. package/dist/json/index.d.ts +5 -0
  98. package/dist/json/index.d.ts.map +1 -0
  99. package/dist/json/index.js +2 -0
  100. package/dist/json/validation.d.ts +28 -0
  101. package/dist/json/validation.d.ts.map +1 -0
  102. package/dist/json/validation.js +8 -0
  103. package/dist/net/fragment.d.ts +10 -0
  104. package/dist/net/fragment.d.ts.map +1 -0
  105. package/dist/net/fragment.js +27 -0
  106. package/dist/net/index.d.ts +42 -0
  107. package/dist/net/index.d.ts.map +1 -0
  108. package/dist/net/index.js +60 -0
  109. package/dist/net/location.d.ts +21 -0
  110. package/dist/net/location.d.ts.map +1 -0
  111. package/dist/net/location.js +41 -0
  112. package/dist/net/path.d.ts +12 -0
  113. package/dist/net/path.d.ts.map +1 -0
  114. package/dist/net/path.js +29 -0
  115. package/dist/net/queryparam.d.ts +10 -0
  116. package/dist/net/queryparam.d.ts.map +1 -0
  117. package/dist/net/queryparam.js +34 -0
  118. package/dist/router.d.ts +40 -0
  119. package/dist/router.d.ts.map +1 -0
  120. package/dist/router.js +77 -0
  121. package/dist/scroll.d.ts +7 -0
  122. package/dist/scroll.d.ts.map +1 -0
  123. package/dist/scroll.js +3 -0
  124. package/dist/testing.d.ts +248 -0
  125. package/dist/testing.d.ts.map +1 -0
  126. package/dist/testing.js +159 -0
  127. package/dist/utils/apply.d.ts +9 -0
  128. package/dist/utils/apply.d.ts.map +1 -0
  129. package/dist/utils/apply.js +10 -0
  130. package/dist/utils/index.d.ts +22 -0
  131. package/dist/utils/index.d.ts.map +1 -0
  132. package/dist/utils/index.js +138 -0
  133. package/dist/utils/lens.d.ts +18 -0
  134. package/dist/utils/lens.d.ts.map +1 -0
  135. package/dist/utils/lens.js +27 -0
  136. package/dist/utils/match.d.ts +17 -0
  137. package/dist/utils/match.d.ts.map +1 -0
  138. package/dist/utils/match.js +28 -0
  139. package/dist/utils/result.d.ts +47 -0
  140. package/dist/utils/result.d.ts.map +1 -0
  141. package/dist/utils/result.js +97 -0
  142. package/dist/webcomponent.d.ts +15 -0
  143. package/dist/webcomponent.d.ts.map +1 -0
  144. package/dist/webcomponent.js +43 -0
  145. package/package.json +1 -1
@@ -0,0 +1,232 @@
1
+ import type { Dimensions } from '..';
2
+ import { type Effect } from '../effects';
3
+ import type { InternalLocation } from '../net/location';
4
+ export declare const eventTypes: readonly ["blur", "change", "click", "dblclick", "focus", "keydown", "keyup", "mouseenter", "mouseleave", "mousemove", "scroll", "scrollend", "submit", "textinput", "touchstart", "touchmove", "touchend", "touchcancel", "wheel"];
5
+ export type EventType = (typeof eventTypes)[number];
6
+ /** Current value and cursor position of a text input, passed to `onTextInput` handlers. */
7
+ export type TextState = {
8
+ value: string;
9
+ selectionStart: number | null;
10
+ selectionEnd: number | null;
11
+ };
12
+ export type TextInputListener<State, Event> = {
13
+ _type: 'textinput';
14
+ effect: (textState: TextState) => Effect<State, Event, EventListenerResult>;
15
+ options: EventOptions;
16
+ };
17
+ /** Key name and code from a keyboard event, passed to `onKeyDown`/`onKeyUp` handlers. */
18
+ export type KeyData = {
19
+ key: string;
20
+ code: string;
21
+ };
22
+ export type KeyDownListener<State, Event> = {
23
+ _type: 'keydown';
24
+ effect: (key: KeyData) => Effect<State, Event, EventListenerResult>;
25
+ options: EventOptions;
26
+ };
27
+ export type KeyUpListener<State, Event> = {
28
+ _type: 'keyup';
29
+ effect: (key: KeyData) => Effect<State, Event, EventListenerResult>;
30
+ options: EventOptions;
31
+ };
32
+ /** Touch-point coordinates from a touch event, passed to `onTouchStart`/`onTouchMove`/`onTouchEnd` handlers. */
33
+ export type TouchData = {
34
+ clientX: number;
35
+ clientY: number;
36
+ pageX: number;
37
+ pageY: number;
38
+ };
39
+ export type TouchStartListener<State, Event> = {
40
+ _type: 'touchstart';
41
+ effect: (touches: readonly TouchData[]) => Effect<State, Event, EventListenerResult>;
42
+ options: EventOptions;
43
+ };
44
+ export type TouchMoveListener<State, Event> = {
45
+ _type: 'touchmove';
46
+ effect: (touches: readonly TouchData[]) => Effect<State, Event, EventListenerResult>;
47
+ options: EventOptions;
48
+ };
49
+ export type TouchCancelListener<State, Event> = {
50
+ _type: 'touchcancel';
51
+ effect: (touches: readonly TouchData[]) => Effect<State, Event, EventListenerResult>;
52
+ options: EventOptions;
53
+ };
54
+ export type TouchEndListener<State, Event> = {
55
+ _type: 'touchend';
56
+ effect: (touches: readonly TouchData[]) => Effect<State, Event, EventListenerResult>;
57
+ options: EventOptions;
58
+ };
59
+ /** Options forwarded to `addEventListener`. */
60
+ export type EventOptions = {
61
+ capture?: boolean;
62
+ passive?: boolean;
63
+ };
64
+ /** Browser event modifiers an event handler can request. Return from a handler to call `preventDefault` or `stopPropagation`. */
65
+ export type EventActions = {
66
+ stopPropagation?: boolean;
67
+ preventDefault?: boolean;
68
+ };
69
+ /** Return type of event handlers: `void` or an `EventActions` object to modify browser behavior. */
70
+ export type EventListenerResult = void | EventActions;
71
+ export type BlurListener<State, Event> = {
72
+ _type: 'blur';
73
+ effect: Effect<State, Event, EventListenerResult>;
74
+ options: EventOptions;
75
+ };
76
+ /** Current value and checked state of a form element, passed to `onChange` handlers. */
77
+ export type ChangeData = {
78
+ value: string;
79
+ checked: boolean;
80
+ };
81
+ export type ChangeListener<State, Event> = {
82
+ _type: 'change';
83
+ effect: (data: ChangeData) => Effect<State, Event, EventListenerResult>;
84
+ options: EventOptions;
85
+ };
86
+ export type ClickListener<State, Event> = {
87
+ _type: 'click';
88
+ effect: Effect<State, Event, EventListenerResult>;
89
+ options: EventOptions;
90
+ };
91
+ export type DblClickListener<State, Event> = {
92
+ _type: 'dblclick';
93
+ effect: Effect<State, Event, EventListenerResult>;
94
+ options: EventOptions;
95
+ };
96
+ /** Mouse position and movement delta, passed to `onMouseMove` handlers. */
97
+ export type MouseMoveData = {
98
+ clientX: number;
99
+ clientY: number;
100
+ pageX: number;
101
+ pageY: number;
102
+ movementX: number;
103
+ movementY: number;
104
+ };
105
+ export type MouseMoveListener<State, Event> = {
106
+ _type: 'mousemove';
107
+ effect: (data: MouseMoveData) => Effect<State, Event, EventListenerResult>;
108
+ options: EventOptions;
109
+ };
110
+ /** Scroll deltas from a wheel event, passed to `onWheel` handlers. */
111
+ export type WheelData = {
112
+ deltaX: number;
113
+ deltaY: number;
114
+ deltaZ: number;
115
+ deltaMode: number;
116
+ };
117
+ export type WheelListener<State, Event> = {
118
+ _type: 'wheel';
119
+ effect: (data: WheelData) => Effect<State, Event, EventListenerResult>;
120
+ options: EventOptions;
121
+ };
122
+ export type FocusListener<State, Event> = {
123
+ _type: 'focus';
124
+ effect: Effect<State, Event, EventListenerResult>;
125
+ options: EventOptions;
126
+ };
127
+ export type MouseEnterListener<State, Event> = {
128
+ _type: 'mouseenter';
129
+ effect: Effect<State, Event, EventListenerResult>;
130
+ options: EventOptions;
131
+ };
132
+ export type MouseLeaveListener<State, Event> = {
133
+ _type: 'mouseleave';
134
+ effect: Effect<State, Event, EventListenerResult>;
135
+ options: EventOptions;
136
+ };
137
+ /** Scroll offset of the element, passed to `onScroll`/`onScrollEnd` handlers. */
138
+ export type ScrollData = {
139
+ scrollTop: number;
140
+ scrollLeft: number;
141
+ };
142
+ export type ScrollListener<State, Event> = {
143
+ _type: 'scroll';
144
+ effect: (data: ScrollData) => Effect<State, Event, EventListenerResult>;
145
+ options: EventOptions;
146
+ };
147
+ export type ScrollEndListener<State, Event> = {
148
+ _type: 'scrollend';
149
+ effect: (data: ScrollData) => Effect<State, Event, EventListenerResult>;
150
+ options: EventOptions;
151
+ };
152
+ export type SubmitListener<State, Event> = {
153
+ _type: 'submit';
154
+ effect: Effect<State, Event, EventListenerResult>;
155
+ options: EventOptions;
156
+ };
157
+ export type SupportsEvents<State, Event> = {
158
+ readonly eventListeners: readonly EventListener<State, Event>[];
159
+ };
160
+ export type CustomEventListener<State, Event> = {
161
+ _type: 'custom';
162
+ eventName: string;
163
+ effect: (detail: unknown) => Effect<State, Event, EventListenerResult>;
164
+ options: EventOptions;
165
+ };
166
+ export type EventListener<State, Event> = BlurListener<State, Event> | ChangeListener<State, Event> | ClickListener<State, Event> | CustomEventListener<State, Event> | SubmitListener<State, Event> | DblClickListener<State, Event> | FocusListener<State, Event> | KeyDownListener<State, Event> | KeyUpListener<State, Event> | MouseEnterListener<State, Event> | MouseLeaveListener<State, Event> | MouseMoveListener<State, Event> | ScrollListener<State, Event> | ScrollEndListener<State, Event> | TextInputListener<State, Event> | TouchCancelListener<State, Event> | TouchEndListener<State, Event> | TouchMoveListener<State, Event> | TouchStartListener<State, Event> | WheelListener<State, Event>;
167
+ export declare function eventSupport<State, Event, Elem extends SupportsEvents<State, Event>>(): {
168
+ onTouchStart(this: Elem, effect: (touchData: readonly TouchData[]) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
169
+ onTouchMove(this: Elem, effect: (touchData: readonly TouchData[]) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
170
+ onTouchEnd(this: Elem, effect: (touchData: readonly TouchData[]) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
171
+ onTouchCancel(this: Elem, effect: (touchData: readonly TouchData[]) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
172
+ onTextInput(this: Elem, effect: (textState: TextState) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
173
+ onWheel(this: Elem, effect: (data: WheelData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
174
+ onSubmit(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
175
+ onScroll(this: Elem, effect: (data: ScrollData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
176
+ onScrollEnd(this: Elem, effect: (data: ScrollData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
177
+ onMouseMove(this: Elem, effect: (data: MouseMoveData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
178
+ onMouseEnter(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
179
+ onMouseLeave(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
180
+ onDblClick(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
181
+ onKeyDown(this: Elem, effect: (key: KeyData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
182
+ onKeyUp(this: Elem, effect: (key: KeyData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
183
+ onEvent(this: Elem, eventName: string, effect: (detail: unknown) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
184
+ onClick(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
185
+ onChange(this: Elem, effect: (data: ChangeData) => Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
186
+ onFocus(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
187
+ onBlur(this: Elem, effect: Effect<State, Event, EventListenerResult>, options?: EventOptions): Elem;
188
+ };
189
+ /** Wraps `effect` and instructs the runtime to call `event.preventDefault()` after it runs. */
190
+ export declare function preventDefault<State, Event>(effect: Effect<State, Event, void>): Effect<State, Event, EventActions>;
191
+ /** Wraps `effect` and instructs the runtime to call `event.stopPropagation()` after it runs. */
192
+ export declare function stopPropagation<State, Event>(effect: Effect<State, Event, void>): Effect<State, Event, EventActions>;
193
+ /** Wraps `effect` and instructs the runtime to call both `event.stopPropagation()` and `event.preventDefault()`. */
194
+ export declare function stopPropagationAndPreventDefault<State, Event>(effect: Effect<State, Event, void>): Effect<State, Event, EventActions>;
195
+ export type ResizeListener<State, Event> = {
196
+ _type: 'resize';
197
+ onChange: (dimensions: Dimensions) => Effect<State, Event, void>;
198
+ options: EventOptions;
199
+ };
200
+ export type PopStateListener<State, Event> = {
201
+ _type: 'popstate';
202
+ onChange: (location: InternalLocation) => Effect<State, Event, void>;
203
+ options: EventOptions;
204
+ };
205
+ export type LocationChangeListener<State, Event> = {
206
+ _type: 'locationchange';
207
+ onChange: (location: InternalLocation) => Effect<State, Event, void>;
208
+ options: EventOptions;
209
+ };
210
+ export type VisibilityChangeListener<State, Event> = {
211
+ _type: 'visibilitychange';
212
+ onChange: (state: 'visible' | 'hidden') => Effect<State, Event, void>;
213
+ options: EventOptions;
214
+ };
215
+ export type OnlineListener<State, Event> = {
216
+ _type: 'online';
217
+ effect: Effect<State, Event, void>;
218
+ options: EventOptions;
219
+ };
220
+ export type OfflineListener<State, Event> = {
221
+ _type: 'offline';
222
+ effect: Effect<State, Event, void>;
223
+ options: EventOptions;
224
+ };
225
+ export type ContainerListener<State, Event> = ResizeListener<State, Event> | PopStateListener<State, Event> | LocationChangeListener<State, Event> | KeyDownListener<State, Event> | KeyUpListener<State, Event> | VisibilityChangeListener<State, Event> | OnlineListener<State, Event> | OfflineListener<State, Event>;
226
+ export declare const windowContainerEventTypes: readonly ["resize", "popstate", "locationchange", "online", "offline"];
227
+ export declare const documentContainerEventTypes: readonly ["keydown", "keyup", "visibilitychange"];
228
+ export declare const containerEventTypes: ("keydown" | "keyup" | "resize" | "popstate" | "locationchange" | "visibilitychange" | "online" | "offline")[];
229
+ export type WindowContainerEventType = (typeof windowContainerEventTypes)[number];
230
+ export type DocumentContainerEventType = (typeof documentContainerEventTypes)[number];
231
+ export type ContainerEventType = WindowContainerEventType | DocumentContainerEventType;
232
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/dom/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,289 @@
1
+ import { async } from '../effects';
2
+ export const eventTypes = [
3
+ 'blur',
4
+ 'change',
5
+ 'click',
6
+ 'dblclick',
7
+ 'focus',
8
+ 'keydown',
9
+ 'keyup',
10
+ 'mouseenter',
11
+ 'mouseleave',
12
+ 'mousemove',
13
+ 'scroll',
14
+ 'scrollend',
15
+ 'submit',
16
+ 'textinput',
17
+ 'touchstart',
18
+ 'touchmove',
19
+ 'touchend',
20
+ 'touchcancel',
21
+ 'wheel',
22
+ ];
23
+ export function eventSupport() {
24
+ return {
25
+ ...blurFocusSupport(),
26
+ ...changeSupport(),
27
+ ...clickSupport(),
28
+ ...customEventSupport(),
29
+ ...keySupport(),
30
+ ...dblClickSupport(),
31
+ ...mouseSupport(),
32
+ ...mouseMoveSupport(),
33
+ ...scrollSupport(),
34
+ ...submitSupport(),
35
+ ...wheelSupport(),
36
+ ...textInputSupport(),
37
+ ...touchSupport(),
38
+ };
39
+ }
40
+ function customEventSupport() {
41
+ return {
42
+ onEvent(eventName, effect, options) {
43
+ return {
44
+ ...this,
45
+ eventListeners: [
46
+ ...this.eventListeners,
47
+ { _type: 'custom', eventName, effect, options: options || {} },
48
+ ],
49
+ };
50
+ },
51
+ };
52
+ }
53
+ function blurFocusSupport() {
54
+ return {
55
+ onFocus(effect, options) {
56
+ return {
57
+ ...this,
58
+ eventListeners: [
59
+ ...this.eventListeners,
60
+ { _type: 'focus', effect, options: options || {} },
61
+ ],
62
+ };
63
+ },
64
+ onBlur(effect, options) {
65
+ return {
66
+ ...this,
67
+ eventListeners: [
68
+ ...this.eventListeners,
69
+ { _type: 'blur', effect, options: options || {} },
70
+ ],
71
+ };
72
+ },
73
+ };
74
+ }
75
+ function changeSupport() {
76
+ return {
77
+ onChange(effect, options) {
78
+ return {
79
+ ...this,
80
+ eventListeners: [
81
+ ...this.eventListeners,
82
+ { _type: 'change', effect, options: options || {} },
83
+ ],
84
+ };
85
+ },
86
+ };
87
+ }
88
+ function clickSupport() {
89
+ return {
90
+ onClick(effect, options) {
91
+ return {
92
+ ...this,
93
+ eventListeners: [
94
+ ...this.eventListeners,
95
+ { _type: 'click', effect, options: options || {} },
96
+ ],
97
+ };
98
+ },
99
+ };
100
+ }
101
+ function dblClickSupport() {
102
+ return {
103
+ onDblClick(effect, options) {
104
+ return {
105
+ ...this,
106
+ eventListeners: [
107
+ ...this.eventListeners,
108
+ { _type: 'dblclick', effect, options: options || {} },
109
+ ],
110
+ };
111
+ },
112
+ };
113
+ }
114
+ function mouseMoveSupport() {
115
+ return {
116
+ onMouseMove(effect, options) {
117
+ return {
118
+ ...this,
119
+ eventListeners: [
120
+ ...this.eventListeners,
121
+ { _type: 'mousemove', effect, options: options || {} },
122
+ ],
123
+ };
124
+ },
125
+ };
126
+ }
127
+ function wheelSupport() {
128
+ return {
129
+ onWheel(effect, options) {
130
+ return {
131
+ ...this,
132
+ eventListeners: [
133
+ ...this.eventListeners,
134
+ { _type: 'wheel', effect, options: options || {} },
135
+ ],
136
+ };
137
+ },
138
+ };
139
+ }
140
+ function mouseSupport() {
141
+ return {
142
+ onMouseEnter(effect, options) {
143
+ return {
144
+ ...this,
145
+ eventListeners: [
146
+ ...this.eventListeners,
147
+ { _type: 'mouseenter', effect, options: options || {} },
148
+ ],
149
+ };
150
+ },
151
+ onMouseLeave(effect, options) {
152
+ return {
153
+ ...this,
154
+ eventListeners: [
155
+ ...this.eventListeners,
156
+ { _type: 'mouseleave', effect, options: options || {} },
157
+ ],
158
+ };
159
+ },
160
+ };
161
+ }
162
+ function submitSupport() {
163
+ return {
164
+ onSubmit(effect, options) {
165
+ return {
166
+ ...this,
167
+ eventListeners: [
168
+ ...this.eventListeners,
169
+ { _type: 'submit', effect, options: options || {} },
170
+ ],
171
+ };
172
+ },
173
+ };
174
+ }
175
+ function scrollSupport() {
176
+ return {
177
+ onScroll(effect, options) {
178
+ return {
179
+ ...this,
180
+ eventListeners: [
181
+ ...this.eventListeners,
182
+ { _type: 'scroll', effect, options: options || {} },
183
+ ],
184
+ };
185
+ },
186
+ onScrollEnd(effect, options) {
187
+ return {
188
+ ...this,
189
+ eventListeners: [
190
+ ...this.eventListeners,
191
+ { _type: 'scrollend', effect, options: options || {} },
192
+ ],
193
+ };
194
+ },
195
+ };
196
+ }
197
+ function touchSupport() {
198
+ return {
199
+ onTouchStart(effect, options) {
200
+ return {
201
+ ...this,
202
+ eventListeners: [
203
+ ...this.eventListeners,
204
+ { _type: 'touchstart', effect, options: options || {} },
205
+ ],
206
+ };
207
+ },
208
+ onTouchMove(effect, options) {
209
+ return {
210
+ ...this,
211
+ eventListeners: [
212
+ ...this.eventListeners,
213
+ { _type: 'touchmove', effect, options: options || {} },
214
+ ],
215
+ };
216
+ },
217
+ onTouchEnd(effect, options) {
218
+ return {
219
+ ...this,
220
+ eventListeners: [
221
+ ...this.eventListeners,
222
+ { _type: 'touchend', effect, options: options || {} },
223
+ ],
224
+ };
225
+ },
226
+ onTouchCancel(effect, options) {
227
+ return {
228
+ ...this,
229
+ eventListeners: [
230
+ ...this.eventListeners,
231
+ { _type: 'touchcancel', effect, options: options || {} },
232
+ ],
233
+ };
234
+ },
235
+ };
236
+ }
237
+ function keySupport() {
238
+ return {
239
+ onKeyDown(effect, options) {
240
+ return {
241
+ ...this,
242
+ eventListeners: [
243
+ ...this.eventListeners,
244
+ { _type: 'keydown', effect, options: options || {} },
245
+ ],
246
+ };
247
+ },
248
+ onKeyUp(effect, options) {
249
+ return {
250
+ ...this,
251
+ eventListeners: [
252
+ ...this.eventListeners,
253
+ { _type: 'keyup', effect, options: options || {} },
254
+ ],
255
+ };
256
+ },
257
+ };
258
+ }
259
+ function textInputSupport() {
260
+ return {
261
+ onTextInput(effect, options) {
262
+ return {
263
+ ...this,
264
+ eventListeners: [
265
+ ...this.eventListeners,
266
+ { _type: 'textinput', effect, options: options || {} },
267
+ ],
268
+ };
269
+ },
270
+ };
271
+ }
272
+ /** Wraps `effect` and instructs the runtime to call `event.preventDefault()` after it runs. */
273
+ export function preventDefault(effect) {
274
+ return async(effect, 0).as({ preventDefault: true });
275
+ }
276
+ /** Wraps `effect` and instructs the runtime to call `event.stopPropagation()` after it runs. */
277
+ export function stopPropagation(effect) {
278
+ return async(effect, 0).as({ stopPropagation: true });
279
+ }
280
+ /** Wraps `effect` and instructs the runtime to call both `event.stopPropagation()` and `event.preventDefault()`. */
281
+ export function stopPropagationAndPreventDefault(effect) {
282
+ return async(effect, 0).as({ stopPropagation: true, preventDefault: true });
283
+ }
284
+ export const windowContainerEventTypes = ['resize', 'popstate', 'locationchange', 'online', 'offline'];
285
+ export const documentContainerEventTypes = ['keydown', 'keyup', 'visibilitychange'];
286
+ export const containerEventTypes = [
287
+ ...windowContainerEventTypes,
288
+ ...documentContainerEventTypes,
289
+ ];