Advertisement
Guest User

Buster Bros

a guest
Jan 31st, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. J.dc 'Main',
  2.     mixins: [J.Routable]
  3.  
  4.     render: ->
  5.         $$ ('div'),
  6.             style:
  7.                 fontFamily: 'helvetica neue'
  8.                 textAlign: 'center'
  9.  
  10.             $$ ('div'),
  11.                 style:
  12.                     fontWeight: 'bold'
  13.                     marginBottom: 20
  14.                 ("Welcome to Buster Bros!")
  15.  
  16.             $$ ('Buster')
  17.  
  18.  
  19. J.dc 'Buster',
  20.     props:
  21.         size:
  22.             type: J.$number
  23.             default: 512
  24.  
  25.     state:
  26.         born:
  27.             default: -> new Date().getTime()
  28.  
  29.         busted:
  30.             type: J.$bool
  31.             default: false
  32.  
  33.     reactives:
  34.         lifetime:
  35.             type: J.$number
  36.             val: ->
  37.                 if not @busted()
  38.                     J.util.invalidateAtTime 100
  39.                 new Date().getTime() - @born()
  40.  
  41.         size:
  42.             type: J.$number
  43.             val: -> @prop.size() + 4 * @lifetime() / 1000
  44.  
  45.         splittable:
  46.             type: J.$bool
  47.             val: -> @size() >= 64
  48.  
  49.  
  50.     render: ->
  51.         if @busted()
  52.             if @splittable()
  53.                 $$ ('div'),
  54.                     style:
  55.                         display: 'inline-block'
  56.                         verticalAlign: 'top'
  57.  
  58.                     $$ ('Buster'),
  59.                         size: @size() / 2
  60.                     $$ ('Buster'),
  61.                         size: @size() / 2
  62.                     $$ ('br')
  63.                     $$ ('Buster'),
  64.                         size: @size() / 2
  65.                     $$ ('Buster'),
  66.                         size: @size() / 2
  67.             else
  68.                 $$ ('span'),
  69.                     {}
  70.                     ("X")
  71.  
  72.         else
  73.             $$ ('div'),
  74.                 style:
  75.                     display: 'inline-block'
  76.                     verticalAlign: 'top'
  77.  
  78.                 $$ ('button'),
  79.                     style:
  80.                         margin: 8
  81.                         textAlign: 'center'
  82.                         width: @size()
  83.                         height: @size()
  84.                         fontSize: 14
  85.                         fontWeight: 'bold'
  86.                         background: if not @splittable() then 'red'
  87.                         cursor: 'pointer'
  88.                     onClick: =>
  89.                         @busted true
  90.  
  91.                     ("Bust")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement