9
9
data-cargo-no-default-features
10
10
data-cargo-features ="webc "
11
11
/>
12
+ < script data-trunk src ="./file-byte-reader.js "> </ script >
12
13
< script >
13
- const $ = document . querySelector . bind ( document ) ;
14
- const $$ = document . querySelectorAll . bind ( document ) ;
14
+ let $ = ( query ) => document . querySelector ( query ) ;
15
15
16
16
function fileLoaded ( array ) {
17
17
const container = document . createElement ( "preview-area" ) ;
18
18
let images = window . wasmBindings . previews ( array ) ;
19
19
images . forEach ( function ( src ) {
20
20
container . appendChild ( new PreviewItem ( src ) ) ;
21
21
} ) ;
22
- $ ( 'preview-wrapper' ) . appendChild ( container )
22
+ $ ( 'preview-wrapper' ) . appendChild ( container ) ;
23
23
}
24
24
25
25
document . addEventListener ( "DOMContentLoaded" , ( ) => {
26
- $ ( '#file-input' ) . addEventListener ( "file-reader-input :loaded" ,
26
+ $ ( '#file-input' ) . addEventListener ( "file-byte-reader :loaded" ,
27
27
e => fileLoaded ( e . detail )
28
28
) ;
29
29
} ) ;
30
30
31
- class FileReaderInput extends HTMLInputElement {
32
- constructor ( ) {
33
- super ( ) ;
34
- }
35
- connectedCallback ( ) {
36
- this . addEventListener ( 'change' , this . onChange ) ;
37
- }
38
-
39
- emit ( type , detail = { } ) {
40
- let event = new CustomEvent ( `file-reader-input:${ type } ` , {
41
- bubbles : false ,
42
- cancelable : false ,
43
- detail : detail
44
- } ) ;
45
- return this . dispatchEvent ( event ) ;
46
- }
47
-
48
- onChange ( ) {
49
- const fileReader = new FileReader ( ) ;
50
- fileReader . addEventListener ( 'loadend' , e => this . emit ( 'loaded' , new Int8Array ( fileReader . result ) ) ) ;
51
- fileReader . readAsArrayBuffer ( this . files [ 0 ] ) ;
52
- }
53
- }
54
- customElements . define ( "file-reader-input" , FileReaderInput , { extends : 'input' } ) ;
55
-
56
31
class PreviewItem extends HTMLElement {
57
32
constructor ( src ) {
58
33
super ( ) ;
73
48
</ head >
74
49
< body >
75
50
< h1 > Process your CGA/EGAs</ h1 >
76
- < input is ="file-reader-input " id ="file-input " multiple ="false " type ="file " accept =".bin,.cga,.ega,.cega " />
51
+ < input is ="file-byte-reader " id ="file-input " multiple ="false " type ="file " accept =".bin,.cga,.ega,.cega " />
77
52
< preview-wrapper > </ preview-wrapper >
78
53
</ body >
79
54
</ html >
0 commit comments