Ejemplo n.º 1
0
//    rooto([[],tree])
    function recurse (subtree,parento,parentncbo,diffroot){
      var diffpos
      if(diffroot && diffroot.state.children)//getDiffPos
      {
        var counter = 0
        diffroot.state.children.some(function(id,index){return (counter++,id != subtree.state.children)})
        diffpos = counter
      }
      console.log("new " + subtree.id)
      var reto = o()//diffroot ? parento()[0][diffpos] : o()
      var ncbo = o() //diffroot ? ??
      ncbo(false)
      reto([[],subtree])
      var thechildren = diffroot ? diffroot.state.children : subtree.state.children //should bring this logic together with what's below somehow, sometime!
      if(!(subtree.state.children && subtree.state.children.length)) return reto
      reto([thechildren
        .map(function(id,index){
            var child = dagdoc.get(id)
            child.revved.on('add',function(row){//as is, not necessarily the most recent rev, hmm

              return
            })
            return recurse(dagdoc.get(id),reto,ncbo)
       }),subtree])
       return reto
        
    }
Ejemplo n.º 2
0
  var BaseStore = function () {
    if (this.constructor === BaseStore)
      throw new Error('BaseStore must be extended');

    Collection.apply(this, arguments);
    Observable(this);
    Dispatcher.register(this.listen.bind(this));
  };
Ejemplo n.º 3
0
function rdate(d) {
  var rd = o()
  rd(relDate(d))
  setInterval(function () {
    rd(relDate(d))  
  }, 10000)
  return rd
}
Ejemplo n.º 4
0
test('context cleanup removes observable listeners', function(t){
  var _h = h.context()
  var text = o()
  text('hello')
  var color = o()
  color('red')
  var className = o()
  className('para')
  var p = _h('p', {style: {color: color}, className: className}, text)
  t.equal(p.outerHTML, '<p class=\"para\" style=\"color: red;\">hello</p>')
  _h.cleanup()
  color('blue')
  text('world')
  className('section')
  t.equal(p.outerHTML, '<p class=\"para\" style=\"color: red;\">hello</p>')
  t.end()
})
Ejemplo n.º 5
0
exports.event = function(elementName, eventName){
	var element = this.root.querySelector('[name="' + elementName + '"]'),
		eventStream = data();

	element.addEventListener(eventName, eventStream, false);

	return eventStream;
};
Ejemplo n.º 6
0
test('observable property', function(t){
  var checked = o()
  checked(true)
  var checkbox = h('input', {type: 'checkbox', checked: checked})
  t.equal(checkbox.checked, true)
  checked(false)
  t.equal(checkbox.checked, false)
  t.end()
})
Ejemplo n.º 7
0
test('observable content', function(t){
  var title = o()
  title('Welcome to HyperScript!')
  var h1 = h('h1', title)
  t.equal(h1.outerHTML, '<h1>Welcome to HyperScript!</h1>')
  title('Leave, creep!')
  t.equal(h1.outerHTML, '<h1>Leave, creep!</h1>')
  t.end()
})
Ejemplo n.º 8
0
test('observable style', function(t){
  var color = o()
  color('red')
  var div = h('div', {style: {'color': color}})
  t.equal(div.style.color, 'red')
  color('blue')
  t.equal(div.style.color, 'blue')
  t.end()
})
Ejemplo n.º 9
0
module.exports = function (emitter) {
  var color = o(), count = o()
  color('red'); count(' ')

  var el = h('div', {
    style: {
      background: color,
      width: '1em', height: '1em',
      display: 'inline-block',
      'text-align': 'center',
      border: '1px solid black'
    }, 
    onclick: function () {
      emitter.connected 
        ? emitter.disconnect()
        : emitter.connect()
    }
  },
  count
  )
  var int
  emitter.on('reconnect', function (n, d) {
    var delay = Math.round(d / 1000) + 1
    count(delay)
    color('red')
    clearInterval(int)
    int = setInterval(function () {
      count(delay > 0 ? --delay : 0)
      color(delay ? 'red' :'orange')      
    }, 1e3)
  })
  emitter.on('connect',   function () {
    count(' ')
    color('green')
    clearInterval(int)
  })
  emitter.on('disconnect', function () {
    //count('  ')
    color('red')
  })
  return el
}
Ejemplo n.º 10
0
//observable that fires once,
//when an async operation completes.
function asyncObservable (fun) {
  var v = o()
  v('')
  var args = [].slice.call(1)
  args.push(function (err, data) {
    if(err) v({error: err})
    else    v(data)
  })
  fun.apply(null, args)
  return v
}
Ejemplo n.º 11
0
	Element.createdCallback = function(){
		var shadow = this.createShadowRoot(),
			content = document.importNode(template, true);

		shadow.appendChild(content);

		this.viewModel = Object.create(null);
		this.view = Object.create(View, {
			attributes: { value: data() },
			root: { value: this.shadowRoot }
		});

		options.viewModel(this.viewModel, this.view);

		Array.prototype.slice.call(this.attributes).forEach(this.view.attributes);
	};
Ejemplo n.º 12
0
      },
      children:[
        {
          func: function fpoaold (x){return x}
        },
        {
          func: function favgres (x){return x}
        }
      ]
    }
  ]
    
}
var newDAG = A.addJSONAtom(addDAGobj)
var o = require('observable')
var v = o()
v(1)
setInterval(function () {if(v()>20)return;v(v() + 1)}, 500)
newDAG.func(v)


var giantmonad = {
  func: function (){},
  l:1,
  children:[
    {
      l:21,
      func: function (){},
      children:[
        {
          func: function (){},
Ejemplo n.º 13
0
    .on('change:FinancialDetails.PaymentFrequency', function(value) {
      self.emit('change:PaymentFrequency', value);
    })
    .on('change:ProductSelection.Hospital.Excess', function(value) {
      self.emit('change:Excess', value);
    })
    .on('change:ProductSelection.Hospital.Code', function(value) {
      self.emit('change:HospitalCode', value);
    })
    .on('change:ProductSelection.Extras', function(value) {
      self.emit('change:ExtrasCode', value);
    })
  ;

}
observable(Model.prototype);

/**
 * The properties that could cause the cart price to change
 * @type {Object}
 */
Model.PROPERTIES_THAT_COULD_AFFECT_PRICE = {
  'PersonalDetails.PolicyHolder.DateOfBirth':                                       true,
  'PersonalDetails.Partner.DateOfBirth':                                            true,
  'ContactDetails.Address':                                                         true,
  'ContactDetails.Address.State':                                                   true,
  'GovernmentDetails.PolicyHolderPreviousFundDetails.PreviouslyHadHealthInsurance': true,
  'GovernmentDetails.PartnerPreviousFundDetails.PreviouslyHadHealthInsurance':      true,
  'GovernmentDetails.ApplyGovernmentRebate':                                        true,
  'GovernmentDetails.IncomeTier':                                                   true,
  'FinancialDetails.PaymentFrequency':                                              true
Ejemplo n.º 14
0
 it('should work as a mixin', function(){
   var obj = {};
   Observable(obj);
   obj.set('foo', 'bar');
   assert( obj.get('foo') === 'bar' );
 });
Ejemplo n.º 15
0
var connect = require("connect"),
    http = require("http"),
    browserify = require("browserify"),
    dnode = require("dnode"),
    path = require("path")

var app = connect(),
    server = http.createServer(app),
    d = dnode(),
    observable = require("observable"),
    Bag = observable("Bag"),
    bundle = browserify()

d.use(observable.middleware)
d.listen(server)

bundle.require("observable")

bundle.addEntry(path.join(__dirname, "client.js"))

app.use(connect.static(__dirname))

app.use(bundle)

Bag.set("foo", "bar", function () {
    server.listen(3000)
    console.log('http://localhost:3000/')
})
Ejemplo n.º 16
0
  if(results.firstChild)
    feed.insertBefore(element, results.firstChild)
  else
    results.appendChild(element)
}

var followCache = EagerCache(function (_, key, emit) {
  emit(key.split('!').pop(), value ? true : null)
})

var followStream

var _usersOnly = h('input', {type: 'checkbox'})
var usersOnly = o.input(_usersOnly, 'checked', 'change')

var viewUser = o()
var page = o() //search or user
var query = o(), message = o(), signedIn = o()
message('')
signedIn(false)

odom.hash(function (q) {
  if(q) {
    var _page = ({'?':'search', '~':'home', '@':'profile'})[q[0]]
    _page != page() && page(_page)
  }
})

page(function (p) {
  odom.hash(({
    'search':'?',
Ejemplo n.º 17
-1
function signUp () {
  var un = h('input#username', {placeholder: 'username'})
  var em = h('input#email', {placeholder: 'email'})
  var p1 = h('input#password1', {type:'password', placeholder: 'password'})
  var p2 = h('input#password2', {type:'password', placeholder: 'confirm'})
  var _p1 = o.input(p1), _p2 = o.input(p2)
  var message = o(); message('')
  var signup = o()

  var match = o.compute([_p1, _p2], function (p1, p2) {
    return (p1 === p2) && p1 ? true : false
  })

  var su = h('input#signup', {type: 'checkbox'})
  var _su = o.input(su, 'checked', 'change')

  return h('div#login',
    show(signedIn, 
      h('div#signout',
        h('a', '@', username, {href: 
          o.transform(username, function (e) { return '#!/'+e})
        }),
        h('button', 'sign out', {onclick: function () {
          username(null); signedIn(false)
          db.deauth(function (err, data) { console.log('DEAUTH', err, data)})
        }})
      ),
      h('div#signin', 
        h('div', div(un), show(signup, div(em)), p1, show(signup, div(p2))),
        show(signup, h('div', o.boolean(match, 'okay!', 'must match.'))),
        h('button', o.boolean(signup, 'sign-up', 'sign-in'), {onclick: function () {
          if(!db)
            return message('not connected...')
          if(!(signup() ? match() : true))
            return message('password does not match')

          db.auth({
            name: un.value,
            password: _p1(),
            email: em.value,
            signup: signup()
          }, function (err, data) {
            console.log(err, data)
            if(err) {
              message(err.message)
              signedIn(false)
              page('home')
              _p1(''); _p2('')
            }
            else {
              message('signed in!')
              signedIn(true)
              username(data.name)
              page('home')
              odom.hash('!/'+username())
              _p1(''); _p2('')
            }
          })
        }}),
        toggle(signup, 'sign in?', 'sign up?'),
        div(message)
      )
    )
  )
}