@@ -3,7 +3,55 @@ import { storiesOf } from '@storybook/web-components';
33import { html } from 'lit-html' ;
44import './ssd1306-element' ;
55
6+ // prettier-ignore
7+ const logoBitmap = new Uint8Array ( [
8+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
9+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
10+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
11+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
12+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 252 , 63 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
13+ 255 , 255 , 255 , 255 , 248 , 31 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 143 , 255 , 255 , 159 , 240 , 31 , 252 , 63 , 255 , 127 , 255 , 255 , 255 , 255 , 255 , 191 , 7 , 231 , 254 , 7 , 240 ,
14+ 15 , 240 , 7 , 254 , 63 , 243 , 195 , 255 , 207 , 255 , 14 , 3 , 195 , 254 , 7 , 241 , 143 , 192 , 3 , 254 , 31 , 225 , 195 , 255 , 143 , 254 , 14 , 35 , 129 , 252 , 3 , 241 , 143 , 128 , 1 , 254 , 31 , 225 , 195 , 255 ,
15+ 135 , 254 , 14 , 51 , 0 , 252 , 99 , 241 , 143 , 0 , 1 , 254 , 31 , 195 , 225 , 255 , 7 , 254 , 30 , 51 , 24 , 252 , 99 , 240 , 15 , 3 , 224 , 254 , 31 , 131 , 225 , 255 , 7 , 254 , 62 , 35 , 24 , 252 , 99 , 248 , 30 , 15 ,
16+ 240 , 254 , 31 , 131 , 225 , 255 , 7 , 252 , 62 , 3 , 24 , 252 , 3 , 248 , 30 , 31 , 248 , 254 , 63 , 7 , 225 , 254 , 7 , 252 , 63 , 3 , 8 , 254 , 3 , 248 , 60 , 31 , 248 , 126 , 63 , 7 , 241 , 254 , 7 , 252 , 63 , 7 , 129 , 255 ,
17+ 7 , 240 , 252 , 127 , 252 , 126 , 62 , 31 , 240 , 254 , 7 , 252 , 127 , 255 , 193 , 255 , 135 , 240 , 252 , 127 , 252 , 126 , 60 , 31 , 240 , 254 , 3 , 252 , 127 , 223 , 225 , 255 , 199 , 241 , 248 , 127 , 252 , 126 ,
18+ 56 , 63 , 240 , 252 , 3 , 248 , 127 , 159 , 241 , 255 , 195 , 241 , 248 , 255 , 252 , 126 , 48 , 127 , 248 , 252 , 3 , 248 , 127 , 31 , 241 , 255 , 227 , 241 , 248 , 255 , 252 , 126 , 16 , 127 , 248 , 124 , 35 , 248 ,
19+ 255 , 31 , 248 , 255 , 227 , 227 , 240 , 255 , 252 , 126 , 0 , 255 , 248 , 124 , 99 , 240 , 254 , 31 , 248 , 255 , 227 , 227 , 240 , 255 , 252 , 126 , 1 , 255 , 248 , 120 , 99 , 240 , 254 , 31 , 248 , 255 , 243 , 227 ,
20+ 240 , 255 , 252 , 126 , 3 , 255 , 252 , 120 , 99 , 241 , 254 , 31 , 248 , 255 , 225 , 227 , 241 , 255 , 252 , 124 , 99 , 255 , 252 , 120 , 99 , 241 , 254 , 31 , 248 , 255 , 225 , 199 , 241 , 255 , 252 , 124 , 99 ,
21+ 255 , 252 , 120 , 99 , 225 , 254 , 31 , 252 , 127 , 193 , 199 , 241 , 255 , 252 , 124 , 99 , 255 , 252 , 56 , 225 , 227 , 254 , 31 , 252 , 127 , 129 , 199 , 241 , 255 , 252 , 124 , 3 , 255 , 252 , 48 , 225 , 227 ,
22+ 254 , 63 , 252 , 127 , 0 , 199 , 241 , 255 , 252 , 126 , 3 , 255 , 252 , 48 , 241 , 227 , 254 , 63 , 252 , 126 , 8 , 143 , 241 , 255 , 252 , 126 , 1 , 255 , 254 , 48 , 241 , 195 , 254 , 63 , 254 , 60 , 24 , 143 , 241 ,
23+ 255 , 252 , 126 , 1 , 255 , 254 , 49 , 241 , 199 , 254 , 63 , 254 , 60 , 56 , 15 , 241 , 255 , 248 , 126 , 32 , 255 , 254 , 33 , 241 , 199 , 254 , 63 , 254 , 56 , 124 , 15 , 240 , 255 , 248 , 126 , 48 , 127 , 254 , 1 ,
24+ 241 , 135 , 254 , 63 , 254 , 16 , 252 , 31 , 240 , 255 , 248 , 254 , 56 , 63 , 254 , 3 , 240 , 143 , 254 , 63 , 254 , 1 , 248 , 15 , 248 , 255 , 240 , 254 , 56 , 63 , 254 , 3 , 240 , 143 , 254 , 63 , 254 , 1 , 248 , 15 ,
25+ 248 , 127 , 225 , 254 , 60 , 31 , 254 , 3 , 240 , 15 , 254 , 63 , 254 , 3 , 248 , 15 , 248 , 63 , 225 , 254 , 62 , 15 , 255 , 7 , 248 , 15 , 254 , 63 , 254 , 3 , 249 , 143 , 252 , 31 , 193 , 254 , 63 , 7 , 255 , 7 , 248 , 31 ,
26+ 254 , 63 , 252 , 3 , 249 , 207 , 252 , 15 , 131 , 254 , 63 , 3 , 255 , 7 , 248 , 31 , 254 , 63 , 252 , 99 , 248 , 143 , 254 , 0 , 3 , 254 , 63 , 129 , 255 , 7 , 248 , 31 , 254 , 63 , 252 , 99 , 248 , 15 , 254 , 0 , 7 , 254 , 63 ,
27+ 192 , 255 , 7 , 248 , 63 , 254 , 63 , 252 , 35 , 248 , 15 , 255 , 0 , 15 , 254 , 63 , 224 , 255 , 7 , 248 , 63 , 254 , 63 , 252 , 3 , 252 , 31 , 255 , 128 , 31 , 254 , 63 , 240 , 255 , 135 , 252 , 63 , 254 , 63 , 254 , 7 , 254 ,
28+ 63 , 255 , 224 , 127 , 254 , 63 , 253 , 255 , 143 , 252 , 63 , 254 , 63 , 254 , 7 , 255 , 255 , 255 , 255 , 255 , 255 , 63 , 255 , 255 , 255 , 254 , 127 , 254 , 63 , 255 , 31 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
29+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
30+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
31+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
32+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
33+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ,
34+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ] ) ;
35+
36+ function toImageData ( bitmap : Uint8Array , width : number , height : number ) {
37+ const result = new ImageData ( width , height ) ;
38+ for ( let y = 0 ; y < height ; y ++ ) {
39+ for ( let x = 0 ; x < width ; x ++ ) {
40+ const pixIndex = Math . floor ( ( y * width + x ) / 8 ) ;
41+ const pixValue = bitmap [ pixIndex ] & ( 1 << ( 7 - ( x % 8 ) ) ) ? 0xff : 0 ;
42+ const pixOffset = ( y * width + x ) * 4 ;
43+ result . data . fill ( pixValue , pixOffset , pixOffset + 3 ) ;
44+ result . data [ pixOffset + 3 ] = 0xff ;
45+ }
46+ }
47+ return result ;
48+ }
49+
650storiesOf ( 'SSD1306' , module )
751 . addParameters ( { component : 'wokwi-ssd1306' } )
852 . addDecorator ( withKnobs )
9- . add ( 'Default' , ( ) => html `< wokwi-ssd1306 > </ wokwi-ssd1306 > ` ) ;
53+ . add ( 'Default' , ( ) => html `< wokwi-ssd1306 > </ wokwi-ssd1306 > ` )
54+ . add (
55+ 'Wokwi logo' ,
56+ ( ) => html `< wokwi-ssd1306 .imageData =${ toImageData ( logoBitmap , 128 , 64 ) } > </ wokwi-ssd1306 > `
57+ ) ;
0 commit comments