@swf2es/player 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/package.json +7 -7
  2. package/dist/audio.d.ts +0 -22
  3. package/dist/audio.d.ts.map +0 -1
  4. package/dist/audio.js +0 -106
  5. package/dist/audio.js.map +0 -1
  6. package/dist/bitmap-filters.d.ts +0 -29
  7. package/dist/bitmap-filters.d.ts.map +0 -1
  8. package/dist/bitmap-filters.js +0 -906
  9. package/dist/bitmap-filters.js.map +0 -1
  10. package/dist/bitmap-ops.d.ts +0 -113
  11. package/dist/bitmap-ops.d.ts.map +0 -1
  12. package/dist/bitmap-ops.js +0 -725
  13. package/dist/bitmap-ops.js.map +0 -1
  14. package/dist/bitmap.d.ts +0 -98
  15. package/dist/bitmap.d.ts.map +0 -1
  16. package/dist/bitmap.js +0 -314
  17. package/dist/bitmap.js.map +0 -1
  18. package/dist/bounds.d.ts +0 -26
  19. package/dist/bounds.d.ts.map +0 -1
  20. package/dist/bounds.js +0 -300
  21. package/dist/bounds.js.map +0 -1
  22. package/dist/color.d.ts +0 -7
  23. package/dist/color.d.ts.map +0 -1
  24. package/dist/color.js +0 -42
  25. package/dist/color.js.map +0 -1
  26. package/dist/display.d.ts +0 -425
  27. package/dist/display.d.ts.map +0 -1
  28. package/dist/display.js +0 -1274
  29. package/dist/display.js.map +0 -1
  30. package/dist/drawing.d.ts +0 -52
  31. package/dist/drawing.d.ts.map +0 -1
  32. package/dist/drawing.js +0 -204
  33. package/dist/drawing.js.map +0 -1
  34. package/dist/filters.d.ts +0 -54
  35. package/dist/filters.d.ts.map +0 -1
  36. package/dist/filters.js +0 -155
  37. package/dist/filters.js.map +0 -1
  38. package/dist/fonts.d.ts +0 -23
  39. package/dist/fonts.d.ts.map +0 -1
  40. package/dist/fonts.js +0 -91
  41. package/dist/fonts.js.map +0 -1
  42. package/dist/geometry.d.ts +0 -21
  43. package/dist/geometry.d.ts.map +0 -1
  44. package/dist/geometry.js +0 -76
  45. package/dist/geometry.js.map +0 -1
  46. package/dist/gradients.d.ts +0 -29
  47. package/dist/gradients.d.ts.map +0 -1
  48. package/dist/gradients.js +0 -116
  49. package/dist/gradients.js.map +0 -1
  50. package/dist/images.d.ts +0 -22
  51. package/dist/images.d.ts.map +0 -1
  52. package/dist/images.js +0 -147
  53. package/dist/images.js.map +0 -1
  54. package/dist/input.d.ts +0 -79
  55. package/dist/input.d.ts.map +0 -1
  56. package/dist/input.js +0 -366
  57. package/dist/input.js.map +0 -1
  58. package/dist/keyboard.d.ts +0 -97
  59. package/dist/keyboard.d.ts.map +0 -1
  60. package/dist/keyboard.js +0 -583
  61. package/dist/keyboard.js.map +0 -1
  62. package/dist/morph.d.ts +0 -17
  63. package/dist/morph.d.ts.map +0 -1
  64. package/dist/morph.js +0 -218
  65. package/dist/morph.js.map +0 -1
  66. package/dist/pixi-blend.d.ts +0 -7
  67. package/dist/pixi-blend.d.ts.map +0 -1
  68. package/dist/pixi-blend.js +0 -253
  69. package/dist/pixi-blend.js.map +0 -1
  70. package/dist/pixi-color.d.ts +0 -54
  71. package/dist/pixi-color.d.ts.map +0 -1
  72. package/dist/pixi-color.js +0 -336
  73. package/dist/pixi-color.js.map +0 -1
  74. package/dist/pixi-filters.d.ts +0 -40
  75. package/dist/pixi-filters.d.ts.map +0 -1
  76. package/dist/pixi-filters.js +0 -953
  77. package/dist/pixi-filters.js.map +0 -1
  78. package/dist/pixi-resolve.d.ts +0 -4
  79. package/dist/pixi-resolve.d.ts.map +0 -1
  80. package/dist/pixi-resolve.js +0 -76
  81. package/dist/pixi-resolve.js.map +0 -1
  82. package/dist/pixi.d.ts +0 -219
  83. package/dist/pixi.d.ts.map +0 -1
  84. package/dist/pixi.js +0 -2169
  85. package/dist/pixi.js.map +0 -1
  86. package/dist/playerglobal/flash/filters/filters.d.ts +0 -26
  87. package/dist/playerglobal/flash/filters/filters.d.ts.map +0 -1
  88. package/dist/playerglobal/flash/filters/filters.js +0 -287
  89. package/dist/playerglobal/flash/filters/filters.js.map +0 -1
  90. package/dist/playerglobal/flash/system/FSCommand.d.ts +0 -4
  91. package/dist/playerglobal/flash/system/FSCommand.d.ts.map +0 -1
  92. package/dist/playerglobal/flash/system/FSCommand.js +0 -18
  93. package/dist/playerglobal/flash/system/FSCommand.js.map +0 -1
  94. package/dist/playerglobal/natives.d.ts +0 -10
  95. package/dist/playerglobal/natives.d.ts.map +0 -1
  96. package/dist/playerglobal/natives.js +0 -53
  97. package/dist/playerglobal/natives.js.map +0 -1
  98. package/dist/png.d.ts +0 -4
  99. package/dist/png.d.ts.map +0 -1
  100. package/dist/png.js +0 -140
  101. package/dist/png.js.map +0 -1
  102. package/dist/render/art.d.ts +0 -148
  103. package/dist/render/art.d.ts.map +0 -1
  104. package/dist/render/art.js +0 -575
  105. package/dist/render/art.js.map +0 -1
  106. package/dist/render/batchers.d.ts +0 -23
  107. package/dist/render/batchers.d.ts.map +0 -1
  108. package/dist/render/batchers.js +0 -52
  109. package/dist/render/batchers.js.map +0 -1
  110. package/dist/render/bitmaps.d.ts +0 -117
  111. package/dist/render/bitmaps.d.ts.map +0 -1
  112. package/dist/render/bitmaps.js +0 -422
  113. package/dist/render/bitmaps.js.map +0 -1
  114. package/dist/render/blend.d.ts +0 -37
  115. package/dist/render/blend.d.ts.map +0 -1
  116. package/dist/render/blend.js +0 -195
  117. package/dist/render/blend.js.map +0 -1
  118. package/dist/render/color.d.ts +0 -111
  119. package/dist/render/color.d.ts.map +0 -1
  120. package/dist/render/color.js +0 -533
  121. package/dist/render/color.js.map +0 -1
  122. package/dist/render/compositing.d.ts +0 -77
  123. package/dist/render/compositing.d.ts.map +0 -1
  124. package/dist/render/compositing.js +0 -188
  125. package/dist/render/compositing.js.map +0 -1
  126. package/dist/render/filters.d.ts +0 -98
  127. package/dist/render/filters.d.ts.map +0 -1
  128. package/dist/render/filters.js +0 -1326
  129. package/dist/render/filters.js.map +0 -1
  130. package/dist/render/hooks.d.ts +0 -4
  131. package/dist/render/hooks.d.ts.map +0 -1
  132. package/dist/render/hooks.js +0 -48
  133. package/dist/render/hooks.js.map +0 -1
  134. package/dist/render/node.d.ts +0 -139
  135. package/dist/render/node.d.ts.map +0 -1
  136. package/dist/render/node.js +0 -59
  137. package/dist/render/node.js.map +0 -1
  138. package/dist/render/patches.d.ts +0 -54
  139. package/dist/render/patches.d.ts.map +0 -1
  140. package/dist/render/patches.js +0 -154
  141. package/dist/render/patches.js.map +0 -1
  142. package/dist/render/planes.d.ts +0 -74
  143. package/dist/render/planes.d.ts.map +0 -1
  144. package/dist/render/planes.js +0 -267
  145. package/dist/render/planes.js.map +0 -1
  146. package/dist/render/pointer.d.ts +0 -5
  147. package/dist/render/pointer.d.ts.map +0 -1
  148. package/dist/render/pointer.js +0 -279
  149. package/dist/render/pointer.js.map +0 -1
  150. package/dist/render/pools.d.ts +0 -122
  151. package/dist/render/pools.d.ts.map +0 -1
  152. package/dist/render/pools.js +0 -238
  153. package/dist/render/pools.js.map +0 -1
  154. package/dist/render/resolve.d.ts +0 -4
  155. package/dist/render/resolve.d.ts.map +0 -1
  156. package/dist/render/resolve.js +0 -76
  157. package/dist/render/resolve.js.map +0 -1
  158. package/dist/render/saffron.d.ts +0 -135
  159. package/dist/render/saffron.d.ts.map +0 -1
  160. package/dist/render/saffron.js +0 -725
  161. package/dist/render/saffron.js.map +0 -1
  162. package/dist/render/settle.d.ts +0 -60
  163. package/dist/render/settle.d.ts.map +0 -1
  164. package/dist/render/settle.js +0 -128
  165. package/dist/render/settle.js.map +0 -1
  166. package/dist/render/shared.d.ts +0 -25
  167. package/dist/render/shared.d.ts.map +0 -1
  168. package/dist/render/shared.js +0 -33
  169. package/dist/render/shared.js.map +0 -1
  170. package/dist/render/snapshot.d.ts +0 -21
  171. package/dist/render/snapshot.d.ts.map +0 -1
  172. package/dist/render/snapshot.js +0 -91
  173. package/dist/render/snapshot.js.map +0 -1
  174. package/dist/render/spares.d.ts +0 -56
  175. package/dist/render/spares.d.ts.map +0 -1
  176. package/dist/render/spares.js +0 -160
  177. package/dist/render/spares.js.map +0 -1
  178. package/dist/render/strokes.d.ts +0 -107
  179. package/dist/render/strokes.d.ts.map +0 -1
  180. package/dist/render/strokes.js +0 -448
  181. package/dist/render/strokes.js.map +0 -1
  182. package/dist/render/table.d.ts +0 -213
  183. package/dist/render/table.d.ts.map +0 -1
  184. package/dist/render/table.js +0 -795
  185. package/dist/render/table.js.map +0 -1
  186. package/dist/render/tessellate.d.ts +0 -89
  187. package/dist/render/tessellate.d.ts.map +0 -1
  188. package/dist/render/tessellate.js +0 -386
  189. package/dist/render/tessellate.js.map +0 -1
  190. package/dist/render/text.d.ts +0 -40
  191. package/dist/render/text.d.ts.map +0 -1
  192. package/dist/render/text.js +0 -309
  193. package/dist/render/text.js.map +0 -1
  194. package/dist/render/three.d.ts +0 -83
  195. package/dist/render/three.d.ts.map +0 -1
  196. package/dist/render/three.js +0 -511
  197. package/dist/render/three.js.map +0 -1
  198. package/dist/render/triangles.d.ts +0 -28
  199. package/dist/render/triangles.d.ts.map +0 -1
  200. package/dist/render/triangles.js +0 -189
  201. package/dist/render/triangles.js.map +0 -1
  202. package/dist/render/view.d.ts +0 -238
  203. package/dist/render/view.d.ts.map +0 -1
  204. package/dist/render/view.js +0 -1173
  205. package/dist/render/view.js.map +0 -1
  206. package/dist/render/worker/bitmaps.d.ts +0 -43
  207. package/dist/render/worker/bitmaps.d.ts.map +0 -1
  208. package/dist/render/worker/bitmaps.js +0 -151
  209. package/dist/render/worker/bitmaps.js.map +0 -1
  210. package/dist/render/worker/drawing.d.ts +0 -21
  211. package/dist/render/worker/drawing.d.ts.map +0 -1
  212. package/dist/render/worker/drawing.js +0 -356
  213. package/dist/render/worker/drawing.js.map +0 -1
  214. package/dist/render/worker/filters.d.ts +0 -7
  215. package/dist/render/worker/filters.d.ts.map +0 -1
  216. package/dist/render/worker/filters.js +0 -125
  217. package/dist/render/worker/filters.js.map +0 -1
  218. package/dist/render/worker/frames.d.ts +0 -32
  219. package/dist/render/worker/frames.d.ts.map +0 -1
  220. package/dist/render/worker/frames.js +0 -124
  221. package/dist/render/worker/frames.js.map +0 -1
  222. package/dist/render/worker/host.d.ts +0 -60
  223. package/dist/render/worker/host.d.ts.map +0 -1
  224. package/dist/render/worker/host.js +0 -297
  225. package/dist/render/worker/host.js.map +0 -1
  226. package/dist/render/worker/libraries.d.ts +0 -36
  227. package/dist/render/worker/libraries.d.ts.map +0 -1
  228. package/dist/render/worker/libraries.js +0 -153
  229. package/dist/render/worker/libraries.js.map +0 -1
  230. package/dist/render/worker/presentation.d.ts +0 -18
  231. package/dist/render/worker/presentation.d.ts.map +0 -1
  232. package/dist/render/worker/presentation.js +0 -47
  233. package/dist/render/worker/presentation.js.map +0 -1
  234. package/dist/render/worker/renderer.d.ts +0 -4
  235. package/dist/render/worker/renderer.d.ts.map +0 -1
  236. package/dist/render/worker/renderer.js +0 -21
  237. package/dist/render/worker/renderer.js.map +0 -1
  238. package/dist/render/worker/scene.d.ts +0 -32
  239. package/dist/render/worker/scene.d.ts.map +0 -1
  240. package/dist/render/worker/scene.js +0 -611
  241. package/dist/render/worker/scene.js.map +0 -1
  242. package/dist/render/worker/text.d.ts +0 -47
  243. package/dist/render/worker/text.d.ts.map +0 -1
  244. package/dist/render/worker/text.js +0 -261
  245. package/dist/render/worker/text.js.map +0 -1
  246. package/dist/render/worker/thread.d.ts +0 -23
  247. package/dist/render/worker/thread.d.ts.map +0 -1
  248. package/dist/render/worker/thread.js +0 -107
  249. package/dist/render/worker/thread.js.map +0 -1
  250. package/dist/render/worker/values.d.ts +0 -18
  251. package/dist/render/worker/values.d.ts.map +0 -1
  252. package/dist/render/worker/values.js +0 -64
  253. package/dist/render/worker/values.js.map +0 -1
  254. package/dist/sha256.d.ts +0 -5
  255. package/dist/sha256.d.ts.map +0 -1
  256. package/dist/sha256.js +0 -96
  257. package/dist/sha256.js.map +0 -1
  258. package/dist/shapes.d.ts +0 -71
  259. package/dist/shapes.d.ts.map +0 -1
  260. package/dist/shapes.js +0 -340
  261. package/dist/shapes.js.map +0 -1
  262. package/dist/static-text.d.ts +0 -33
  263. package/dist/static-text.d.ts.map +0 -1
  264. package/dist/static-text.js +0 -105
  265. package/dist/static-text.js.map +0 -1
  266. package/dist/text-layout.d.ts +0 -66
  267. package/dist/text-layout.d.ts.map +0 -1
  268. package/dist/text-layout.js +0 -315
  269. package/dist/text-layout.js.map +0 -1
  270. package/dist/text.d.ts +0 -67
  271. package/dist/text.d.ts.map +0 -1
  272. package/dist/text.js +0 -383
  273. package/dist/text.js.map +0 -1
  274. package/dist/timeline.d.ts +0 -150
  275. package/dist/timeline.d.ts.map +0 -1
  276. package/dist/timeline.js +0 -266
  277. package/dist/timeline.js.map +0 -1
package/dist/keyboard.js DELETED
@@ -1,583 +0,0 @@
1
- // Keyboard input as Flash takes it, after Ruffle's (focus_tracker.rs,
2
- // edit_text.rs): a key goes to the focused object, or the stage where
3
- // nothing has focus, as a KeyboardEvent that bubbles; a focused input
4
- // TextField then edits its text, a TextEvent first, which a listener may
5
- // cancel, then Event.CHANGE. Focus moves with a click, with Tab, and with
6
- // stage.focus, each move a focusOut and a focusIn; a click's and a Tab's
7
- // first a cancelable mouseFocusChange or keyFocusChange.
8
- import { bounds, toStage } from "./bounds.js";
9
- import { ButtonObject, CONTENT, Container, MovieClip, TextObject, } from "./display.js";
10
- import { apply } from "./geometry.js";
11
- import { dispatchEvent } from "./playerglobal/flash/events/EventDispatcher.js";
12
- import { GUTTER } from "./text-layout.js";
13
- const BACKSPACE = 8;
14
- const TAB = 9;
15
- const ENTER = 13;
16
- const END = 35;
17
- const HOME = 36;
18
- const LEFT = 37;
19
- const UP = 38;
20
- const RIGHT = 39;
21
- const DOWN = 40;
22
- const DELETE = 46;
23
- /** Whether `d` takes typing: an input field. */
24
- const editable = (d) => d instanceof TextObject && d.type === "input";
25
- const fieldsOf = (d) => (d.object ?? {});
26
- /**
27
- * Whether Tab may focus `d` where no script said: an input field, a
28
- * button, and a sprite in button mode, as Flash has it.
29
- */
30
- export function tabEnabledDefault(d) {
31
- if (d instanceof TextObject) {
32
- return d.type === "input";
33
- }
34
- return d instanceof ButtonObject || !!fieldsOf(d).$buttonMode;
35
- }
36
- const tabEnabled = (d) => fieldsOf(d).$tabEnabled ?? tabEnabledDefault(d);
37
- /** Whether `d` is an InteractiveObject's face: a container, a button or a field. */
38
- const isInteractive = (d) => d instanceof ButtonObject || d instanceof TextObject || "children" in d;
39
- /** Whether Tab visits `d`: a field only where it takes typing, a root clip never. */
40
- function tabbable(d, stage) {
41
- if (!d.object || !isInteractive(d)) {
42
- return false;
43
- }
44
- if (d instanceof TextObject) {
45
- return d.type === "input" && tabEnabled(d);
46
- }
47
- return !(d instanceof MovieClip && d.parent === stage) && tabEnabled(d);
48
- }
49
- /** Whether a click focuses `d`: any text field, any object Tab may focus. */
50
- const focusableByMouse = (d) => d instanceof TextObject || tabEnabled(d);
51
- /**
52
- * Move focus to `next`: focusOut on the one that had it, then focusIn on
53
- * it, each naming the other, unless a focusOut listener moved it on; a
54
- * field gains or loses its caret, and the object a hook to give it up by
55
- * when it is taken off the list or hidden.
56
- */
57
- export function setFocus(s, next) {
58
- const previous = s.focus;
59
- if (previous === next) {
60
- return;
61
- }
62
- s.focus = next;
63
- if (previous) {
64
- previous.focusDrop = null;
65
- }
66
- if (next) {
67
- next.focusDrop = (d) => {
68
- if (s.focus === d) {
69
- setFocus(s, null);
70
- }
71
- };
72
- }
73
- for (const d of [previous, next]) {
74
- if (d instanceof TextObject) {
75
- d.focused = d === next;
76
- d.invalidate(CONTENT);
77
- }
78
- }
79
- if (previous) {
80
- focusEvent(s, "focusOut", previous, next, false);
81
- }
82
- if (next && s.focus === next) {
83
- focusEvent(s, "focusIn", next, previous, false);
84
- }
85
- }
86
- /** A FocusEvent on `target`, naming `related`: whether a listener cancelled it. */
87
- function focusEvent(s, type, target, related, cancelable, keyCode = 0) {
88
- if (!target.object) {
89
- return false;
90
- }
91
- const event = s.rt.construct(s.rt.classNamed("flash.events::FocusEvent"), type, true, cancelable, related?.object ?? null, false, keyCode);
92
- dispatchEvent(s, target.object, event);
93
- return !!event.$prevented;
94
- }
95
- /**
96
- * The characters `text` is typed as under `restrict`, as Ruffle parses it
97
- * (EditTextRestrict): null any; empty none; characters and ranges allowed,
98
- * each `^` switching to those disallowed and back, a leading one first
99
- * allowing all; `-` a range, from U+0000 where nothing is before it, its
100
- * first character alone where nothing follows or it runs backwards; `\`
101
- * the next character as itself. A letter it refuses is tried in the other
102
- * case, ASCII only.
103
- */
104
- export function restrictText(restrict, text) {
105
- if (restrict === null) {
106
- return text;
107
- }
108
- const { allowed, disallowed } = parseRestrict(restrict);
109
- const ok = (c) => allowed.some(([a, b]) => c >= a && c <= b) && !disallowed.some(([a, b]) => c >= a && c <= b);
110
- let out = "";
111
- for (const c of text) {
112
- const candidates = [
113
- c,
114
- /[a-z]/.test(c) ? c.toUpperCase() : c,
115
- /[A-Z]/.test(c) ? c.toLowerCase() : c,
116
- ];
117
- const chosen = candidates.find(ok);
118
- if (chosen !== undefined) {
119
- out += chosen;
120
- }
121
- }
122
- return out;
123
- }
124
- function parseRestrict(restrict) {
125
- const allowed = [];
126
- const disallowed = [];
127
- if (restrict === "") {
128
- return { allowed, disallowed };
129
- }
130
- // Tokens: a character, or "-" and "^" unescaped; a trailing "\" is dropped.
131
- const tokens = [];
132
- const chars = [...restrict];
133
- for (let i = 0; i < chars.length; i++) {
134
- const c = chars[i];
135
- if (c === "\\") {
136
- if (i + 1 < chars.length) {
137
- tokens.push(chars[++i]);
138
- }
139
- }
140
- else if (c === "-" || c === "^") {
141
- tokens.push({ op: c });
142
- }
143
- else {
144
- tokens.push(c);
145
- }
146
- }
147
- let current = [];
148
- let last = null;
149
- let allowing = true;
150
- while (tokens.length > 0) {
151
- const t = tokens.shift();
152
- if (typeof t === "string") {
153
- current.push([t, t]);
154
- last = t;
155
- continue;
156
- }
157
- if (t.op === "^") {
158
- if (allowing) {
159
- if (current.length === 0 && allowed.length === 0) {
160
- allowed.push(["\0", "\u{10FFFF}"]);
161
- }
162
- else {
163
- allowed.push(...current);
164
- }
165
- }
166
- else {
167
- disallowed.push(...current);
168
- }
169
- current = [];
170
- allowing = !allowing;
171
- last = null;
172
- continue;
173
- }
174
- let start = "\0";
175
- if (last !== null) {
176
- current.pop();
177
- start = last;
178
- }
179
- let end = start;
180
- if (typeof tokens[0] === "string") {
181
- end = tokens.shift();
182
- }
183
- current.push([start, end > start ? end : start]);
184
- last = null;
185
- }
186
- (allowing ? allowed : disallowed).push(...current);
187
- return { allowed, disallowed };
188
- }
189
- /** The keyboard on the player's display list, independent of a renderer. */
190
- export class KeyboardInput {
191
- stage;
192
- scripting;
193
- /** How many key events it has handled: each may run scripts and change a field. */
194
- handled = 0;
195
- /** The field the pointer was pressed on, where, and by which click, whose selection a drag extends. */
196
- press = null;
197
- constructor(stage, scripting) {
198
- this.stage = stage;
199
- this.scripting = scripting;
200
- }
201
- /**
202
- * A key pressed or let go: whether the SWF used it, a field's edit or
203
- * caret, or Tab moving focus, which a host then keeps from the browser.
204
- */
205
- handle(type, k) {
206
- this.handled++;
207
- const s = this.scripting;
208
- const target = s.focus && onStage(s.focus, this.stage) ? s.focus : this.stage;
209
- if (target.object) {
210
- const event = s.rt.construct(s.rt.classNamed("flash.events::KeyboardEvent"), type === "down" ? "keyDown" : "keyUp", true, false, k.charCode, k.keyCode, k.location ?? 0, !!k.ctrlKey, !!k.altKey, !!k.shiftKey);
211
- dispatchEvent(s, target.object, event);
212
- }
213
- if (type !== "down") {
214
- return false;
215
- }
216
- if (k.keyCode === TAB) {
217
- return this.tab(!!k.shiftKey);
218
- }
219
- if (editable(s.focus) && onStage(s.focus, this.stage)) {
220
- return this.edit(s.focus, k);
221
- }
222
- return false;
223
- }
224
- /**
225
- * A press on `target`, with the point in its own pixels: as Flash, a
226
- * cancelable mouseFocusChange on what has focus, or the stage, then
227
- * focus to the target where a click focuses it, else to nothing; a
228
- * field's caret where it was clicked.
229
- */
230
- pressed(target, localX, localY, clicks = 1) {
231
- const s = this.scripting;
232
- const pressed = target === this.stage ? null : target;
233
- this.press = null;
234
- if (pressed instanceof TextObject && pressed.selectable) {
235
- const position = caretAt(pressed, localX * 20, localY * 20);
236
- this.press = { field: pressed, position, clicks };
237
- const [from, to] = selectionAt(pressed, position, clicks);
238
- pressed.select(from, to);
239
- }
240
- if (pressed === null && !(s.focus && focusableByMouse(s.focus))) {
241
- return;
242
- }
243
- if (pressed === s.focus) {
244
- return;
245
- }
246
- if (focusEvent(s, "mouseFocusChange", s.focus ?? this.stage, pressed, true)) {
247
- return;
248
- }
249
- setFocus(s, pressed && focusableByMouse(pressed) ? pressed : null);
250
- }
251
- /**
252
- * The pointer moved with its button held, the point in the pressed
253
- * field's own pixels: the selection spans from where the press was to
254
- * here, by characters, or by words or lines after a double or triple click.
255
- */
256
- dragged(field, localX, localY) {
257
- const press = this.press;
258
- if (!press || press.field !== field || !field.selectable) {
259
- return;
260
- }
261
- const [startFrom, startTo] = selectionAt(field, press.position, press.clicks);
262
- const [from, to] = selectionAt(field, caretAt(field, localX * 20, localY * 20), press.clicks);
263
- if (from < startFrom) {
264
- field.select(startTo, from);
265
- }
266
- else {
267
- field.select(startFrom, Math.max(to, startTo));
268
- }
269
- }
270
- /**
271
- * Tab: the next object Tab visits, or with Shift the one before, after a
272
- * cancelable keyFocusChange: by tabIndex where any has one, only those
273
- * then, else by where their bounds start on the stage, 6y + x in twips,
274
- * one of each place, as Flash orders them.
275
- */
276
- tab(back) {
277
- const found = [];
278
- const walk = (d) => {
279
- for (const child of d.children ?? []) {
280
- if (!child.visible) {
281
- continue;
282
- }
283
- if (tabbable(child, this.stage)) {
284
- found.push(child);
285
- }
286
- // A SimpleButton's states are not its children to AS3.
287
- if (child instanceof Container &&
288
- !(child instanceof ButtonObject) &&
289
- fieldsOf(child).$tabChildren !== false) {
290
- walk(child);
291
- }
292
- }
293
- };
294
- walk(this.stage);
295
- const indexed = found.filter((d) => (fieldsOf(d).$tabIndex ?? -1) >= 0);
296
- let order;
297
- if (indexed.length > 0) {
298
- order = indexed
299
- .map((d, i) => ({ d, i, key: fieldsOf(d).$tabIndex ?? 0 }))
300
- .sort((a, b) => a.key - b.key || a.i - b.i)
301
- .map((e) => e.d);
302
- }
303
- else {
304
- const keyed = found.map((d, i) => ({ d, i, key: placeKey(d, this.stage) }));
305
- keyed.sort((a, b) => a.key - b.key || a.i - b.i);
306
- order = keyed.filter((e, j) => j === 0 || e.key !== keyed[j - 1].key).map((e) => e.d);
307
- }
308
- if (order.length === 0) {
309
- return false;
310
- }
311
- const s = this.scripting;
312
- const at = s.focus ? order.indexOf(s.focus) : -1;
313
- const n = order.length;
314
- const next = order[at < 0 ? (back ? n - 1 : 0) : (at + (back ? -1 : 1) + n) % n];
315
- if (!focusEvent(s, "keyFocusChange", s.focus ?? this.stage, next, true, TAB)) {
316
- setFocus(s, next);
317
- }
318
- return true;
319
- }
320
- /** A key's edit of the focused field: a character typed, a deletion, or the caret moved. */
321
- edit(field, k) {
322
- const length = field.model.text.length;
323
- const [begin, end] = field.selection;
324
- const caret = field.caret;
325
- // Ctrl with Alt is AltGr on some layouts, which types characters.
326
- const shortcut = !!k.ctrlKey && !k.altKey;
327
- if (shortcut && (k.keyCode === 65 || k.charCode === 97 || k.charCode === 65)) {
328
- field.select(0, length);
329
- return true;
330
- }
331
- if (k.keyCode === UP || k.keyCode === DOWN) {
332
- const to = lineMove(field, caret, k.keyCode === UP ? -1 : 1);
333
- field.select(k.shiftKey ? field.anchor : to, to);
334
- return true;
335
- }
336
- if (k.keyCode === LEFT || k.keyCode === RIGHT || k.keyCode === HOME || k.keyCode === END) {
337
- const collapse = begin !== end && !k.shiftKey;
338
- const to = k.keyCode === HOME
339
- ? 0
340
- : k.keyCode === END
341
- ? length
342
- : k.keyCode === LEFT
343
- ? collapse
344
- ? begin
345
- : Math.max(0, caret - 1)
346
- : collapse
347
- ? end
348
- : Math.min(length, caret + 1);
349
- field.select(k.shiftKey ? field.anchor : to, to);
350
- return true;
351
- }
352
- if (k.keyCode === BACKSPACE || k.keyCode === DELETE) {
353
- const from = begin !== end ? begin : k.keyCode === BACKSPACE ? Math.max(0, caret - 1) : caret;
354
- const to = begin !== end ? end : k.keyCode === DELETE ? Math.min(length, caret + 1) : caret;
355
- if (from < to) {
356
- this.replace(field, from, to, "");
357
- }
358
- return true;
359
- }
360
- if (shortcut) {
361
- return false;
362
- }
363
- const text = k.keyCode === ENTER
364
- ? field.multiline
365
- ? "\r"
366
- : ""
367
- : k.charCode >= 32
368
- ? String.fromCharCode(k.charCode)
369
- : "";
370
- return text !== "" && this.type(field, text);
371
- }
372
- /**
373
- * Typed text, as Ruffle takes it: nothing where maxChars leaves no room;
374
- * else the TextEvent with the text as typed, a line break as "\n",
375
- * which a listener may cancel, then what restrict lets through, cut to
376
- * the room left, over the selection, and Event.CHANGE.
377
- */
378
- type(field, text) {
379
- const room = () => {
380
- const [b, e] = field.selection;
381
- return field.maxChars > 0 ? field.maxChars - (field.model.text.length - (e - b)) : Infinity;
382
- };
383
- if (room() <= 0) {
384
- return true;
385
- }
386
- const filtered = restrictText(field.restrict, text);
387
- const [begin, end] = field.selection;
388
- const s = this.scripting;
389
- if (field.object) {
390
- const event = s.rt.construct(s.rt.classNamed("flash.events::TextEvent"), "textInput", true, true, text.replace(/\r/g, "\n"));
391
- dispatchEvent(s, field.object, event);
392
- if (event.$prevented) {
393
- return true;
394
- }
395
- }
396
- // The selection from before the event, within the text a listener may have shortened.
397
- const length = field.model.text.length;
398
- const from = Math.min(begin, length);
399
- this.replace(field, from, Math.min(end, length), filtered.slice(0, Math.max(0, room())));
400
- return true;
401
- }
402
- /** [from, to) of the field's text as `text`, the caret after it, and Event.CHANGE. */
403
- replace(field, from, to, text) {
404
- field.model.replace(from, to, text);
405
- field.select(from + text.length, from + text.length);
406
- field.invalidate(CONTENT);
407
- const s = this.scripting;
408
- if (field.object) {
409
- dispatchEvent(s, field.object, s.rt.construct(s.rt.classNamed("flash.events::Event"), "change", true, false));
410
- }
411
- }
412
- }
413
- /** Where `d`'s bounds start on the stage, as Flash orders Tab: 6y + x, in twips. */
414
- function placeKey(d, stage) {
415
- const r = bounds(d, true);
416
- const [x, y] = r ? apply(toStage(d, stage), r.xMin, r.yMin) : [0, 0];
417
- return Math.round(y * 20) * 6 + Math.round(x * 20);
418
- }
419
- /** The caret one line up (-1) or down (1) from `caret`, at the same x, or the text's start or end past the first or last. */
420
- function lineMove(field, caret, by) {
421
- const lines = field.layout.lines;
422
- const at = lines.findIndex((l) => caret < l.end);
423
- const i = at < 0 ? lines.length - 1 : at;
424
- const target = i + by;
425
- if (target < 0) {
426
- return 0;
427
- }
428
- if (target >= lines.length) {
429
- return field.model.text.length;
430
- }
431
- const line = lines[i];
432
- const c = line.chars[caret - line.start];
433
- const x = c ? c.x : line.x + line.width;
434
- const to = lines[target];
435
- for (const ch of to.chars) {
436
- if (ch.shown && x < ch.x + ch.advance / 2) {
437
- return ch.index;
438
- }
439
- }
440
- const text = field.model.text;
441
- return to.end > to.start && (text[to.end - 1] === "\r" || text[to.end - 1] === "\n")
442
- ? to.end - 1
443
- : to.end;
444
- }
445
- /** Whether `d` is on the display list under `stage`. */
446
- function onStage(d, stage) {
447
- for (let p = d; p; p = p.parent) {
448
- if (p === stage) {
449
- return true;
450
- }
451
- }
452
- return false;
453
- }
454
- /** The caret index nearest (x, y), in twips in the field: the nearer side of the character there, or its line's end. */
455
- export function caretAt(field, x, y) {
456
- const layout = field.layout;
457
- if (layout.lines.length === 0) {
458
- return 0;
459
- }
460
- const first = Math.min(Math.max(0, field.scrollV - 1), layout.lines.length - 1);
461
- const dy = field.top * 20 - (layout.lines[first].y - GUTTER);
462
- const dx = field.left * 20 - field.scrollH * 20;
463
- let line = layout.lines[layout.lines.length - 1];
464
- for (const l of layout.lines) {
465
- if (y < dy + l.y + l.ascent + l.descent) {
466
- line = l;
467
- break;
468
- }
469
- }
470
- for (const c of line.chars) {
471
- if (c.shown && x < dx + c.x + c.advance / 2) {
472
- return c.index;
473
- }
474
- }
475
- // Past the line's last character: before the newline that ends it, if any.
476
- const text = field.model.text;
477
- return line.end > line.start && (text[line.end - 1] === "\r" || text[line.end - 1] === "\n")
478
- ? line.end - 1
479
- : line.end;
480
- }
481
- const words = new Intl.Segmenter(undefined, { granularity: "word" });
482
- const blank = (t) => t.trim() === "";
483
- /**
484
- * What a click at `position` selects, as Ruffle's: the point itself, a
485
- * double click's word, a triple click's line, from newline to newline.
486
- * A word stops at whitespace on either side of the point.
487
- */
488
- function selectionAt(field, position, clicks) {
489
- const text = field.model.text;
490
- if (clicks <= 1) {
491
- return [position, position];
492
- }
493
- if (clicks === 2) {
494
- const head = text.slice(0, position);
495
- let from = 0;
496
- if (head !== "" && blank(head[head.length - 1])) {
497
- from = position;
498
- }
499
- else {
500
- for (const w of words.segment(head)) {
501
- if (!blank(w.segment)) {
502
- from = w.index;
503
- }
504
- }
505
- }
506
- let to = text.length;
507
- const tail = text.slice(position);
508
- if (tail !== "" && blank(tail[0])) {
509
- to = position;
510
- }
511
- else {
512
- for (const w of words.segment(tail)) {
513
- if (!blank(w.segment)) {
514
- to = position + w.index + w.segment.length;
515
- break;
516
- }
517
- }
518
- }
519
- return [from, to];
520
- }
521
- const newline = (c) => c === "\r" || c === "\n";
522
- let from = position;
523
- while (from > 0 && !newline(text[from - 1])) {
524
- from--;
525
- }
526
- let to = position;
527
- while (to < text.length && !newline(text[to])) {
528
- to++;
529
- }
530
- return [from, to];
531
- }
532
- /** Flash's key codes where a browser's legacy ones differ: Firefox's for ";", "=" and "-". */
533
- const KEY_CODES = { 59: 186, 61: 187, 173: 189 };
534
- /** The character a browser's key types, as Flash's charCode: its UTF-16 unit, or Enter's, Backspace's, Tab's, Escape's and Delete's. */
535
- function charCodeOf(e) {
536
- if (e.key.length === 1) {
537
- return e.key.charCodeAt(0);
538
- }
539
- return { Enter: 13, Backspace: 8, Tab: 9, Escape: 27, Delete: 127 }[e.key] ?? 0;
540
- }
541
- /**
542
- * Send the browser's keys on `target` (the window, say) to the player. A
543
- * key goes to the SWF unless it is typed into the page's own input or
544
- * button, or comes from an IME, which the player cannot compose; the
545
- * browser is kept from acting on one only where the SWF used it: a field's
546
- * edit or caret, or Tab moving the SWF's focus. Its own shortcuts stay.
547
- */
548
- export function bindKeyboard(player, target) {
549
- const listener = (event) => {
550
- const e = event;
551
- const into = e.target;
552
- if (into?.isContentEditable ||
553
- /^(INPUT|TEXTAREA|SELECT|BUTTON|A)$/.test(into?.tagName ?? "") ||
554
- e.isComposing ||
555
- e.keyCode === 229) {
556
- return;
557
- }
558
- const keyboard = player.keyboard;
559
- if (!keyboard) {
560
- return;
561
- }
562
- // A key's listeners see the pointer where it last moved.
563
- player.pointer?.flush();
564
- const used = keyboard.handle(e.type === "keydown" ? "down" : "up", {
565
- keyCode: KEY_CODES[e.keyCode] ?? e.keyCode,
566
- charCode: charCodeOf(e),
567
- location: e.location,
568
- ctrlKey: e.ctrlKey || e.metaKey,
569
- altKey: e.altKey,
570
- shiftKey: e.shiftKey,
571
- });
572
- if (used) {
573
- e.preventDefault();
574
- }
575
- };
576
- target.addEventListener("keydown", listener);
577
- target.addEventListener("keyup", listener);
578
- return () => {
579
- target.removeEventListener("keydown", listener);
580
- target.removeEventListener("keyup", listener);
581
- };
582
- }
583
- //# sourceMappingURL=keyboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"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"}
package/dist/morph.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { ShapeLayer } from "./shapes.js";
2
- import type { MorphCharacter, ShapeCharacter } from "./timeline.js";
3
- /**
4
- * The layers of blends a morph no longer keeps. The renderer shares a
5
- * blend's lines while it is kept; one made again for the same ratio has
6
- * layers of its own, so lines kept for these would never be found again.
7
- */
8
- export declare const droppedLayers: WeakSet<ShapeLayer>;
9
- /** The layers of every blend made, whose lines the renderer watches for their dropping. */
10
- export declare const blendLayers: WeakSet<ShapeLayer>;
11
- /**
12
- * The shape `character` is at `ratio`, 0 its start to 65535 its end: made
13
- * the first time it is asked for and kept while it is among the morph's
14
- * latest, as a tween asks for a new ratio on each frame.
15
- */
16
- export declare function morphAt(character: MorphCharacter, ratio: number): ShapeCharacter;
17
- //# sourceMappingURL=morph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"morph.d.ts","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,aAAa,qBAA4B,CAAC;AAEvD,2FAA2F;AAC3F,eAAO,MAAM,WAAW,qBAA4B,CAAC;AAKrD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CA8BhF"}