@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/text.js DELETED
@@ -1,383 +0,0 @@
1
- // A TextField's text and formatting, as Flash keeps them: the characters,
2
- // each with its own format, and a default format for text that comes with
3
- // none. Its htmlText is written as Flash writes it, a P for each paragraph
4
- // with a FONT of the run's five font attributes and a FONT inside it for
5
- // each later run's changes, and read as Flash reads it, a paragraph's end
6
- // and a BR a line only in a multiline field.
7
- /** A new TextField's defaultTextFormat, as adl gives it. */
8
- export const DEFAULT_FORMAT = {
9
- font: "Times New Roman",
10
- size: 12,
11
- color: 0,
12
- bold: false,
13
- italic: false,
14
- underline: false,
15
- url: "",
16
- target: "",
17
- align: "left",
18
- leftMargin: 0,
19
- rightMargin: 0,
20
- indent: 0,
21
- leading: 0,
22
- blockIndent: 0,
23
- letterSpacing: 0,
24
- kerning: false,
25
- bullet: false,
26
- tabStops: [],
27
- display: "block",
28
- };
29
- export const FORMAT_KEYS = Object.keys(DEFAULT_FORMAT);
30
- /** A TextFormat that sets nothing. */
31
- export function emptyFormat() {
32
- const out = {};
33
- for (const k of FORMAT_KEYS) {
34
- out[k] = null;
35
- }
36
- out.display = "block";
37
- return out;
38
- }
39
- /** `base` with what `change` sets. */
40
- export function applied(base, change) {
41
- const out = { ...base };
42
- for (const k of FORMAT_KEYS) {
43
- const v = change[k];
44
- if (v !== null) {
45
- out[k] = v;
46
- }
47
- }
48
- return out;
49
- }
50
- function same(a, b) {
51
- return (a === b ||
52
- FORMAT_KEYS.every((k) => k === "tabStops" ? a.tabStops.join() === b.tabStops.join() : a[k] === b[k]));
53
- }
54
- /** Text as a field keeps it: Flash's line ends are \r. */
55
- function normalize(text) {
56
- return text.replace(/\r\n|\n/g, "\r");
57
- }
58
- export class TextModel {
59
- text = "";
60
- /** Each character's format; runs share one object. */
61
- formats = [];
62
- /** Counts the changes, text, formats or the default, for a layout to know it is current. */
63
- revision = 0;
64
- fallback = { ...DEFAULT_FORMAT };
65
- /** The format of text set as a whole, and of an empty field's line. */
66
- get defaultFormat() {
67
- return this.fallback;
68
- }
69
- set defaultFormat(format) {
70
- this.fallback = format;
71
- this.revision++;
72
- }
73
- /** The text, all in the default format, as `text` sets it. */
74
- setText(text) {
75
- this.revision++;
76
- this.text = normalize(text);
77
- this.formats = new Array(this.text.length).fill(this.defaultFormat);
78
- }
79
- /**
80
- * `text` in place of [begin, end), as replaceText and appendText put it:
81
- * in the format of the character before, else of the one it replaces,
82
- * else the default.
83
- */
84
- replace(begin, end, text) {
85
- this.revision++;
86
- const inserted = normalize(text);
87
- const format = this.formats[begin - 1] ?? this.formats[begin] ?? this.defaultFormat;
88
- this.text = this.text.slice(0, begin) + inserted + this.text.slice(end);
89
- // Not splice with the formats spread: a long text would be more arguments than a call takes.
90
- this.formats = this.formats
91
- .slice(0, begin)
92
- .concat(new Array(inserted.length).fill(format), this.formats.slice(end));
93
- }
94
- /** What [begin, end) has in common: each value null where its characters differ; the default's for none. */
95
- formatOf(begin, end) {
96
- const out = { ...(this.formats[begin] ?? this.defaultFormat) };
97
- for (let i = begin + 1; i < end; i++) {
98
- const f = this.formats[i];
99
- for (const k of FORMAT_KEYS) {
100
- const v = out[k];
101
- if (v !== null &&
102
- (k === "tabStops" ? v.join() !== f.tabStops.join() : v !== f[k])) {
103
- out[k] = null;
104
- }
105
- }
106
- }
107
- return out;
108
- }
109
- /** [begin, end) given what `change` sets, as setTextFormat does. */
110
- setFormat(change, begin, end) {
111
- this.revision++;
112
- const made = new Map();
113
- for (let i = begin; i < end; i++) {
114
- const old = this.formats[i];
115
- let next = made.get(old);
116
- if (!next) {
117
- next = applied(old, change);
118
- made.set(old, next);
119
- }
120
- this.formats[i] = next;
121
- }
122
- }
123
- /** The runs of each paragraph: its text up to a \r, in runs of one format. */
124
- paragraphs() {
125
- const out = [];
126
- let runs = [];
127
- for (let i = 0; i < this.text.length; i++) {
128
- const c = this.text[i];
129
- if (c === "\r") {
130
- out.push(runs);
131
- runs = [];
132
- continue;
133
- }
134
- const last = runs[runs.length - 1];
135
- if (last && same(last.format, this.formats[i])) {
136
- last.text += c;
137
- }
138
- else {
139
- runs.push({ format: this.formats[i], text: c });
140
- }
141
- }
142
- if (runs.length) {
143
- out.push(runs);
144
- }
145
- return out;
146
- }
147
- /** The text as htmlText gives it. */
148
- toHtml() {
149
- const out = [];
150
- for (const runs of this.paragraphs()) {
151
- const first = runs[0]?.format ?? this.defaultFormat;
152
- const block = [];
153
- const extra = [];
154
- for (const [key, name] of [
155
- ["leftMargin", "LEFTMARGIN"],
156
- ["rightMargin", "RIGHTMARGIN"],
157
- ["indent", "INDENT"],
158
- ["leading", "LEADING"],
159
- ["blockIndent", "BLOCKINDENT"],
160
- ]) {
161
- if (first[key] !== 0) {
162
- extra.push(`${name}="${first[key]}"`);
163
- }
164
- }
165
- if (first.tabStops.length) {
166
- extra.push(`TABSTOPS="${first.tabStops.join(",")}"`);
167
- }
168
- // A bullet's paragraph is an LI alone, with no P.
169
- block.push(first.bullet ? "<LI>" : `<P ALIGN="${first.align.toUpperCase()}">`);
170
- let open = 0;
171
- let current = null;
172
- for (const { format, text } of runs) {
173
- const attributes = fontAttributes(format, current);
174
- if (attributes) {
175
- block.push(`<FONT ${attributes}>`);
176
- open++;
177
- }
178
- current = format;
179
- let run = escapeHtml(text);
180
- if (format.underline) {
181
- run = `<U>${run}</U>`;
182
- }
183
- if (format.italic) {
184
- run = `<I>${run}</I>`;
185
- }
186
- if (format.bold) {
187
- run = `<B>${run}</B>`;
188
- }
189
- if (format.url) {
190
- run = `<A HREF="${escapeHtml(format.url)}" TARGET="${escapeHtml(format.target)}">${run}</A>`;
191
- }
192
- block.push(run);
193
- }
194
- if (!runs.length) {
195
- block.push(`<FONT ${fontAttributes(first, null)}>`);
196
- open++;
197
- }
198
- block.push("</FONT>".repeat(open));
199
- block.push(first.bullet ? "</LI>" : "</P>");
200
- out.push(extra.length
201
- ? `<TEXTFORMAT ${extra.join(" ")}>${block.join("")}</TEXTFORMAT>`
202
- : block.join(""));
203
- }
204
- return out.join("");
205
- }
206
- /**
207
- * htmlText set: tags read as Flash reads them, each run in the format
208
- * its tags give over the default; a paragraph's end and a BR end a line
209
- * only in a multiline field.
210
- */
211
- setHtml(html, multiline, trimTrailingBreak = false) {
212
- this.revision++;
213
- let text = "";
214
- const formats = [];
215
- const stack = [this.defaultFormat];
216
- const top = () => stack[stack.length - 1];
217
- const add = (s, format) => {
218
- text += s;
219
- for (let k = 0; k < s.length; k++) {
220
- formats.push(format);
221
- }
222
- };
223
- const line = () => {
224
- if (multiline) {
225
- add("\r", top());
226
- }
227
- };
228
- const tag = /<(\/?)([a-zA-Z]+)([^>]*)>/g;
229
- let at = 0;
230
- for (let m = tag.exec(html); m; m = tag.exec(html)) {
231
- const plain = html.slice(at, m.index);
232
- if (plain) {
233
- add(normalize(unescapeHtml(plain)), top());
234
- }
235
- at = m.index + m[0].length;
236
- const closing = m[1] === "/";
237
- const name = m[2].toLowerCase();
238
- if (name === "br") {
239
- line();
240
- continue;
241
- }
242
- const known = ["p", "font", "b", "i", "u", "a", "textformat", "li", "span"];
243
- if (!known.includes(name)) {
244
- continue;
245
- }
246
- if (closing) {
247
- if (stack.length > 1) {
248
- stack.pop();
249
- }
250
- if (name === "p" || name === "li") {
251
- line();
252
- }
253
- continue;
254
- }
255
- const attributes = attributesOf(m[3]);
256
- const f = { ...top() };
257
- switch (name) {
258
- case "p":
259
- if (attributes.align) {
260
- f.align = attributes.align.toLowerCase();
261
- }
262
- break;
263
- case "font":
264
- if (attributes.face) {
265
- f.font = attributes.face;
266
- }
267
- if (attributes.size) {
268
- const size = attributes.size;
269
- f.size = /^[+-]/.test(size) ? f.size + Number(size) : Number(size);
270
- }
271
- if (attributes.color) {
272
- f.color = Number.parseInt(attributes.color.replace("#", ""), 16) || 0;
273
- }
274
- if (attributes.letterspacing) {
275
- f.letterSpacing = Number(attributes.letterspacing) || 0;
276
- }
277
- if (attributes.kerning) {
278
- f.kerning = attributes.kerning !== "0";
279
- }
280
- break;
281
- case "b":
282
- f.bold = true;
283
- break;
284
- case "i":
285
- f.italic = true;
286
- break;
287
- case "u":
288
- f.underline = true;
289
- break;
290
- case "a":
291
- f.url = attributes.href ?? "";
292
- f.target = attributes.target ?? "";
293
- break;
294
- case "li":
295
- f.bullet = true;
296
- break;
297
- case "textformat":
298
- for (const [attribute, key] of [
299
- ["leftmargin", "leftMargin"],
300
- ["rightmargin", "rightMargin"],
301
- ["indent", "indent"],
302
- ["leading", "leading"],
303
- ["blockindent", "blockIndent"],
304
- ]) {
305
- if (attributes[attribute] !== undefined) {
306
- f[key] = Number(attributes[attribute]) || 0;
307
- }
308
- }
309
- if (attributes.tabstops) {
310
- f.tabStops = attributes.tabstops.split(",").map(Number);
311
- }
312
- break;
313
- }
314
- stack.push(f);
315
- }
316
- const rest = html.slice(at);
317
- if (rest) {
318
- add(normalize(unescapeHtml(rest)), top());
319
- }
320
- if (trimTrailingBreak && text.endsWith("\r")) {
321
- text = text.slice(0, -1);
322
- formats.pop();
323
- }
324
- this.text = text;
325
- this.formats = formats;
326
- }
327
- }
328
- /** A FONT's attributes for `format`: all five for a paragraph's first run, else those that differ from `current`; "" for none. */
329
- function fontAttributes(format, current) {
330
- const out = [];
331
- if (!current || current.font !== format.font) {
332
- out.push(`FACE="${escapeHtml(format.font)}"`);
333
- }
334
- if (!current || current.size !== format.size) {
335
- out.push(`SIZE="${format.size}"`);
336
- }
337
- if (!current || current.color !== format.color) {
338
- out.push(`COLOR="#${(format.color >>> 0).toString(16).toUpperCase().padStart(6, "0").slice(-6)}"`);
339
- }
340
- if (!current || current.letterSpacing !== format.letterSpacing) {
341
- out.push(`LETTERSPACING="${format.letterSpacing}"`);
342
- }
343
- if (!current || current.kerning !== format.kerning) {
344
- out.push(`KERNING="${format.kerning ? 1 : 0}"`);
345
- }
346
- return out.join(" ");
347
- }
348
- function escapeHtml(text) {
349
- return text
350
- .replace(/&/g, "&amp;")
351
- .replace(/</g, "&lt;")
352
- .replace(/>/g, "&gt;")
353
- .replace(/"/g, "&quot;");
354
- }
355
- function unescapeHtml(text) {
356
- return text.replace(/&(#x[0-9a-f]+|#[0-9]+|[a-z]+);/gi, (whole, name) => {
357
- if (name[0] === "#") {
358
- const code = name[1] === "x" || name[1] === "X"
359
- ? Number.parseInt(name.slice(2), 16)
360
- : Number(name.slice(1));
361
- return Number.isFinite(code) ? String.fromCodePoint(code) : whole;
362
- }
363
- const named = {
364
- amp: "&",
365
- lt: "<",
366
- gt: ">",
367
- quot: '"',
368
- apos: "'",
369
- nbsp: " ",
370
- };
371
- return named[name.toLowerCase()] ?? whole;
372
- });
373
- }
374
- /** A tag's attributes by lower-case name, quoted with either quote or not. */
375
- function attributesOf(source) {
376
- const out = {};
377
- const attribute = /([a-zA-Z]+)\s*=\s*("([^"]*)"|'([^']*)'|([^\s>]+))/g;
378
- for (let m = attribute.exec(source); m; m = attribute.exec(source)) {
379
- out[m[1].toLowerCase()] = unescapeHtml(m[3] ?? m[4] ?? m[5] ?? "");
380
- }
381
- return out;
382
- }
383
- //# sourceMappingURL=text.js.map
package/dist/text.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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"}
@@ -1,150 +0,0 @@
1
- import { type Bitmap, type ButtonRecord, type EditText, type Font, type Font4, type FontName, type MorphShape, type Place, type Shape, type Sound, type StaticText, type Swf } from "@swf2es/format";
2
- import type { avm2 } from "@swf2es/runtime";
3
- import type { BitmapStore } from "./bitmap.js";
4
- import type { DisplayObject } from "./display.js";
5
- import { FontSet } from "./fonts.js";
6
- import { type ShapeLayer } from "./shapes.js";
7
- export type FrameCommand = {
8
- type: "place";
9
- place: Place;
10
- } | {
11
- type: "remove";
12
- depth: number;
13
- };
14
- /** A frame's name, or a scene's, and its frame, 1 the first. */
15
- export interface FrameName {
16
- name: string;
17
- frame: number;
18
- }
19
- export interface Timeline {
20
- /** Frame k's commands at index k - 1. */
21
- frames: FrameCommand[][];
22
- /**
23
- * The labels scripts read, in frame order: the scene data's where the
24
- * SWF has it (a root's DefineSceneAndFrameLabelData), even none, its
25
- * FrameLabel tags otherwise. One after the last frame is kept.
26
- */
27
- labels: FrameName[];
28
- /** The labels a goto finds: those, or the FrameLabel tags where the scene data has none. */
29
- gotoLabels: FrameName[];
30
- /** The FrameLabel tags by frame, which currentFrameLabel reads, scene data or not. */
31
- frameLabels: Map<number, string>;
32
- /** Scenes by their first frame, in order; one unnamed scene of every frame without scene data. */
33
- scenes: FrameName[];
34
- }
35
- export interface ShapeCharacter {
36
- type: "shape";
37
- id: number;
38
- shape: Shape;
39
- layers: ShapeLayer[];
40
- }
41
- /** DefineMorphShape or DefineMorphShape2, and its latest blends by ratio, least recent first (morph.ts). */
42
- export interface MorphCharacter {
43
- type: "morph";
44
- id: number;
45
- morph: MorphShape;
46
- blends: Map<number, ShapeCharacter>;
47
- /** Its bitmap fills' bitmaps. */
48
- bitmap: (id: number) => BitmapCharacter | null;
49
- }
50
- export interface SpriteCharacter {
51
- type: "sprite";
52
- id: number;
53
- timeline: Timeline;
54
- }
55
- export interface TextCharacter {
56
- type: "text";
57
- id: number;
58
- definition: EditText;
59
- /** The font it names by id, if the SWF defines it: its name and style, which the field shows its text in. */
60
- font: FontName | null;
61
- }
62
- /** DefineText or DefineText2: glyphs of its SWF's fonts, which it finds as it is shown (static-text.ts). */
63
- export interface StaticTextCharacter {
64
- type: "static";
65
- id: number;
66
- definition: StaticText;
67
- }
68
- /** DefineButton or DefineButton2: the characters it shows in each state. */
69
- export interface ButtonCharacter {
70
- type: "button";
71
- id: number;
72
- records: ButtonRecord[];
73
- trackAsMenu: boolean;
74
- }
75
- /** DefineFont2 or 3: its name and style, for the fields that name it, and its glyphs and layout. */
76
- export interface FontCharacter extends FontName {
77
- type: "font";
78
- font: Font;
79
- }
80
- /** DefineFont4: CFF fonts belong to the Flash Text Engine, not classic TextField layout. */
81
- export interface CffFontCharacter extends FontName {
82
- type: "fontCff";
83
- font: Font4;
84
- }
85
- export type AnyFontCharacter = FontCharacter | CffFontCharacter;
86
- /** A bitmap's pixels as every copy of it starts: premultiplied ARGB; 0 by 0 for what Flash cannot read. */
87
- export interface BitmapPixels {
88
- width: number;
89
- height: number;
90
- transparent: boolean;
91
- pixels: Uint32Array;
92
- }
93
- export interface BitmapCharacter {
94
- type: "bitmap";
95
- id: number;
96
- definition: Bitmap;
97
- /** Set when the SWF is read for the lossless formats, and once decoded for an image; null until then. */
98
- pixels: BitmapPixels | null;
99
- /** The store bitmap fills draw it from, one for every shape; made when one is first drawn. */
100
- store?: BitmapStore;
101
- }
102
- /** DefineBinaryData's bytes, which a ByteArray subclass bound to them starts with. */
103
- export interface BinaryCharacter {
104
- type: "binary";
105
- id: number;
106
- data: Uint8Array;
107
- /** The bytes every instance shares, as Flash's do until one is resized: made when the first is. */
108
- shared?: Uint8Array<ArrayBuffer>;
109
- }
110
- export interface SoundCharacter {
111
- type: "sound";
112
- id: number;
113
- definition: Sound;
114
- }
115
- export type Character = ShapeCharacter | MorphCharacter | SpriteCharacter | ButtonCharacter | BitmapCharacter | TextCharacter | StaticTextCharacter | BinaryCharacter | FontCharacter | CffFontCharacter | SoundCharacter;
116
- /** What a timeline can place: every character but data and fonts. */
117
- export type DisplayCharacter = Exclude<Character, BinaryCharacter | FontCharacter | CffFontCharacter | SoundCharacter>;
118
- /** What Flash makes of a bitmap it cannot read. */
119
- export declare const INVALID_PIXELS: BitmapPixels;
120
- export interface Library {
121
- characters: Map<number, Character>;
122
- root: Timeline;
123
- /** SymbolClass: the class each character is bound to, by qualified name "pkg::Name"; id 0 the document class. */
124
- classes: Map<number, string>;
125
- /**
126
- * Gives a display object the player just made its AS3 object, where the
127
- * SWF has scripts (Scripting.construct); null in an AVM1 movie. A clip's
128
- * first frame is entered on the way, by Sprite's constructChildren.
129
- */
130
- construct: ((display: DisplayObject, character: DisplayCharacter) => void) | null;
131
- /**
132
- * Where the error of a constructor a goto ran goes, as Flash reports it
133
- * apart from the goto; without it, the error reaches the goto's caller.
134
- */
135
- uncaught: ((error: unknown) => void) | null;
136
- /** Has the AS3 object of a child a frame played on placed made in the frame's construct phase; null where there are no scripts. */
137
- constructLater: ((display: DisplayObject, character: DisplayCharacter) => void) | null;
138
- /** Told before a timeline child goes, for the events a script sees; null in an AVM1 movie. */
139
- /** Tells of a display object about to lose its parent, and whether the timeline takes it (a script's removal otherwise). */
140
- removing: ((display: DisplayObject, byTimeline: boolean) => void) | null;
141
- /** The SWF's embedded fonts, by name, which its fields lay their text out in. */
142
- fonts: FontSet;
143
- /** The application domain its code was loaded into, where its class names resolve; the root's if none. */
144
- domain?: avm2.Domain;
145
- /** The SWF's version, which some behaviour of what it places follows. */
146
- version?: number;
147
- }
148
- /** The characters a SWF defines, and its root timeline. */
149
- export declare function readLibrary(swf: Swf): Library;
150
- //# sourceMappingURL=timeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}