burger
Version:
A lightweight turbolinks friendly JavaScript library
34 lines (24 loc) • 834 B
text/coffeescript
$ = require('jquery')
Burger = require('./burger')
Delegate = require('./mixins/delegate')
Events = require('./mixins/events')
Register = require('./mixins/register')
Collection = require('./collection')
Data = require('./data')
findChildren = require('./services/find-children')
warn = require('./util/warn')
mixin = require('./util/mixin')
class Component extends mixin(Events, Delegate, Register)
@register()
constructor: (el) ->
@element = $(el)
@name = @constructor.name
unless Burger.findClass(@name)
warn(
"You are attempting to instantiate a Burger class without registering it.",
"Call #{name}.register() after declaring the class."
)
@data = new Data(@element)
children = findChildren(@element)
@children = new Collection(children)
module.exports = Component