@@ -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