Bundled output for commit 80c25e3809 [skip ci]
This commit is contained in:
parent
80c25e3809
commit
0c14550066
2 changed files with 244 additions and 248 deletions
410
mithril.js
410
mithril.js
|
|
@ -1,197 +1,5 @@
|
|||
new function() {
|
||||
|
||||
var log = console.error.bind(console)
|
||||
var log = console.error.bind(console)
|
||||
var StreamFactory = function(log) {
|
||||
var guid = 0, noop = function() {}, HALT = {}
|
||||
function createStream() {
|
||||
function stream() {
|
||||
if (arguments.length > 0 && arguments[0] !== HALT) updateStream(stream, arguments[0], undefined)
|
||||
return stream._state.value
|
||||
}
|
||||
initStream(stream, arguments)
|
||||
if (arguments.length > 0 && arguments[0] !== HALT) updateStream(stream, arguments[0], undefined)
|
||||
return stream
|
||||
}
|
||||
function initStream(stream, args) {
|
||||
stream.constructor = createStream
|
||||
stream._state = {id: guid++, value: undefined, error: undefined, state: 0, derive: undefined, recover: undefined, deps: {}, parents: [], errorStream: undefined, endStream: undefined}
|
||||
stream.map = map, stream.ap = ap, stream.of = createStream
|
||||
stream.valueOf = valueOf, stream.toJSON = toJSON, stream.toString = valueOf
|
||||
stream.run = run, stream.catch = doCatch
|
||||
Object.defineProperties(stream, {
|
||||
error: {get: function() {
|
||||
if (!stream._state.errorStream) {
|
||||
var errorStream = function() {
|
||||
if (arguments.length > 0 && arguments[0] !== HALT) updateStream(stream, undefined, arguments[0])
|
||||
return stream._state.error
|
||||
}
|
||||
initStream(errorStream, [])
|
||||
initDependency(errorStream, [stream], noop, noop)
|
||||
stream._state.errorStream = errorStream
|
||||
}
|
||||
return stream._state.errorStream
|
||||
}},
|
||||
end: {get: function() {
|
||||
if (!stream._state.endStream) {
|
||||
var endStream = createStream()
|
||||
endStream.map(function(value) {
|
||||
if (value === true) unregisterStream(stream), unregisterStream(endStream)
|
||||
return value
|
||||
})
|
||||
stream._state.endStream = endStream
|
||||
}
|
||||
return stream._state.endStream
|
||||
}}
|
||||
})
|
||||
}
|
||||
function updateStream(stream, value, error) {
|
||||
updateState(stream, value, error)
|
||||
for (var id in stream._state.deps) updateDependency(stream._state.deps[id], false)
|
||||
finalize(stream)
|
||||
}
|
||||
function updateState(stream, value, error) {
|
||||
error = unwrapError(value, error)
|
||||
if (error !== undefined && typeof stream._state.recover === "function") {
|
||||
if (!resolve(stream, updateValues, true)) return
|
||||
}
|
||||
else updateValues(stream, value, error)
|
||||
stream._state.changed = true
|
||||
if (stream._state.state !== 2) stream._state.state = 1
|
||||
}
|
||||
function updateValues(stream, value, error) {
|
||||
stream._state.value = value
|
||||
stream._state.error = error
|
||||
}
|
||||
function updateDependency(stream, mustSync) {
|
||||
var state = stream._state, parents = state.parents
|
||||
if (parents.length > 0 && parents.filter(active).length === parents.length && (mustSync || parents.filter(changed).length > 0)) {
|
||||
var failed = parents.filter(errored)
|
||||
if (failed.length > 0) updateState(stream, undefined, failed[0]._state.error)
|
||||
else resolve(stream, updateState, false)
|
||||
}
|
||||
}
|
||||
function resolve(stream, update, shouldRecover) {
|
||||
try {
|
||||
var value = shouldRecover ? stream._state.recover() : stream._state.derive()
|
||||
if (value === HALT) return false
|
||||
update(stream, value, undefined)
|
||||
}
|
||||
catch (e) {
|
||||
update(stream, undefined, e.__error != null ? e.__error : e)
|
||||
if (e.__error == null) reportUncaughtError(stream, e)
|
||||
}
|
||||
return true
|
||||
}
|
||||
function unwrapError(value, error) {
|
||||
if (value != null && value.constructor === createStream) {
|
||||
if (value._state.error !== undefined) error = value._state.error
|
||||
else error = unwrapError(value._state.value, value._state.error)
|
||||
}
|
||||
return error
|
||||
}
|
||||
function finalize(stream) {
|
||||
stream._state.changed = false
|
||||
for (var id in stream._state.deps) stream._state.deps[id]._state.changed = false
|
||||
}
|
||||
function reportUncaughtError(stream, e) {
|
||||
if (Object.keys(stream._state.deps).length === 0) {
|
||||
setTimeout(function() {
|
||||
if (Object.keys(stream._state.deps).length === 0) log(e)
|
||||
}, 0)
|
||||
}
|
||||
}
|
||||
function run(fn) {
|
||||
var self = createStream(), stream = this
|
||||
return initDependency(self, [stream], function() {
|
||||
return absorb(self, fn(stream()))
|
||||
}, undefined)
|
||||
}
|
||||
function doCatch(fn) {
|
||||
var self = createStream(), stream = this
|
||||
var derive = function() {return stream._state.value}
|
||||
var recover = function() {return absorb(self, fn(stream._state.error))}
|
||||
return initDependency(self, [stream], derive, recover)
|
||||
}
|
||||
function combine(fn, streams) {
|
||||
return initDependency(createStream(), streams, function() {
|
||||
var failed = streams.filter(errored)
|
||||
if (failed.length > 0) throw {__error: failed[0]._state.error}
|
||||
return fn.apply(this, streams.concat([streams.filter(changed)]))
|
||||
}, undefined)
|
||||
}
|
||||
function absorb(stream, value) {
|
||||
if (value != null && value.constructor === createStream) {
|
||||
var absorbable = value
|
||||
var update = function() {
|
||||
updateState(stream, absorbable._state.value, absorbable._state.error)
|
||||
for (var id in stream._state.deps) updateDependency(stream._state.deps[id], false)
|
||||
}
|
||||
absorbable.map(update).catch(function(e) {
|
||||
update()
|
||||
throw {__error: e}
|
||||
})
|
||||
|
||||
if (absorbable._state.state === 0) return HALT
|
||||
if (absorbable._state.error) throw {__error: absorbable._state.error}
|
||||
value = absorbable._state.value
|
||||
}
|
||||
return value
|
||||
}
|
||||
function initDependency(dep, streams, derive, recover) {
|
||||
var state = dep._state
|
||||
state.derive = derive
|
||||
state.recover = recover
|
||||
state.parents = streams.filter(notEnded)
|
||||
registerDependency(dep, state.parents)
|
||||
updateDependency(dep, true)
|
||||
return dep
|
||||
}
|
||||
function registerDependency(stream, parents) {
|
||||
for (var i = 0; i < parents.length; i++) {
|
||||
parents[i]._state.deps[stream._state.id] = stream
|
||||
registerDependency(stream, parents[i]._state.parents)
|
||||
}
|
||||
}
|
||||
function unregisterStream(stream) {
|
||||
for (var i = 0; i < stream._state.parents.length; i++) {
|
||||
var parent = stream._state.parents[i]
|
||||
delete parent._state.deps[stream._state.id]
|
||||
}
|
||||
for (var id in stream._state.deps) {
|
||||
var dependent = stream._state.deps[id]
|
||||
var index = dependent._state.parents.indexOf(stream)
|
||||
if (index > -1) dependent._state.parents.splice(index, 1)
|
||||
}
|
||||
stream._state.state = 2 //ended
|
||||
stream._state.deps = {}
|
||||
}
|
||||
function map(fn) {return combine(function(stream) {return fn(stream())}, [this])}
|
||||
function ap(stream) {return combine(function(s1, s2) {return s1()(s2())}, [this, stream])}
|
||||
function valueOf() {return this._state.value}
|
||||
function toJSON() {return this._state.value != null && typeof this._state.value.toJSON === "function" ? this._state.value.toJSON() : this._state.value}
|
||||
function active(stream) {return stream._state.state === 1}
|
||||
function changed(stream) {return stream._state.changed}
|
||||
function notEnded(stream) {return stream._state.state !== 2}
|
||||
function errored(stream) {return stream._state.error}
|
||||
function reject(e) {
|
||||
var stream = createStream()
|
||||
stream.error(e)
|
||||
return stream
|
||||
}
|
||||
function merge(streams) {
|
||||
return combine(function () {
|
||||
return streams.map(function(s) {return s()})
|
||||
}, streams)
|
||||
}
|
||||
return {stream: createStream, merge: merge, combine: combine, reject: reject, HALT: HALT}
|
||||
}
|
||||
var Stream = StreamFactory(log)
|
||||
var defaultStream = Stream.stream
|
||||
defaultStream.combine = Stream.combine
|
||||
defaultStream.reject = Stream.reject
|
||||
defaultStream.merge = Stream.merge
|
||||
defaultStream.HALT = Stream.HALT
|
||||
function Vnode(tag, key, attrs, children, text, dom) {
|
||||
return {tag: tag, key: key, attrs: attrs, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined, skip: false}
|
||||
}
|
||||
|
|
@ -785,14 +593,202 @@ var buildQueryString = function(object) {
|
|||
else args.push(encodeURIComponent(key) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : ""))
|
||||
}
|
||||
}
|
||||
var StreamFactory = function(log) {
|
||||
var guid = 0, noop = function() {}, HALT = {}
|
||||
function createStream() {
|
||||
function stream() {
|
||||
if (arguments.length > 0 && arguments[0] !== HALT) updateStream(stream, arguments[0], undefined)
|
||||
return stream._state.value
|
||||
}
|
||||
initStream(stream, arguments)
|
||||
if (arguments.length > 0 && arguments[0] !== HALT) updateStream(stream, arguments[0], undefined)
|
||||
return stream
|
||||
}
|
||||
function initStream(stream, args) {
|
||||
stream.constructor = createStream
|
||||
stream._state = {id: guid++, value: undefined, error: undefined, state: 0, derive: undefined, recover: undefined, deps: {}, parents: [], errorStream: undefined, endStream: undefined}
|
||||
stream.map = map, stream.ap = ap, stream.of = createStream
|
||||
stream.valueOf = valueOf, stream.toJSON = toJSON, stream.toString = valueOf
|
||||
stream.run = run, stream.catch = doCatch
|
||||
Object.defineProperties(stream, {
|
||||
error: {get: function() {
|
||||
if (!stream._state.errorStream) {
|
||||
var errorStream = function() {
|
||||
if (arguments.length > 0 && arguments[0] !== HALT) updateStream(stream, undefined, arguments[0])
|
||||
return stream._state.error
|
||||
}
|
||||
initStream(errorStream, [])
|
||||
initDependency(errorStream, [stream], noop, noop)
|
||||
stream._state.errorStream = errorStream
|
||||
}
|
||||
return stream._state.errorStream
|
||||
}},
|
||||
end: {get: function() {
|
||||
if (!stream._state.endStream) {
|
||||
var endStream = createStream()
|
||||
endStream.map(function(value) {
|
||||
if (value === true) unregisterStream(stream), unregisterStream(endStream)
|
||||
return value
|
||||
})
|
||||
stream._state.endStream = endStream
|
||||
}
|
||||
return stream._state.endStream
|
||||
}}
|
||||
})
|
||||
}
|
||||
function updateStream(stream, value, error) {
|
||||
updateState(stream, value, error)
|
||||
for (var id in stream._state.deps) updateDependency(stream._state.deps[id], false)
|
||||
finalize(stream)
|
||||
}
|
||||
function updateState(stream, value, error) {
|
||||
error = unwrapError(value, error)
|
||||
if (error !== undefined && typeof stream._state.recover === "function") {
|
||||
if (!resolve(stream, updateValues, true)) return
|
||||
}
|
||||
else updateValues(stream, value, error)
|
||||
stream._state.changed = true
|
||||
if (stream._state.state !== 2) stream._state.state = 1
|
||||
}
|
||||
function updateValues(stream, value, error) {
|
||||
stream._state.value = value
|
||||
stream._state.error = error
|
||||
}
|
||||
function updateDependency(stream, mustSync) {
|
||||
var state = stream._state, parents = state.parents
|
||||
if (parents.length > 0 && parents.filter(active).length === parents.length && (mustSync || parents.filter(changed).length > 0)) {
|
||||
var failed = parents.filter(errored)
|
||||
if (failed.length > 0) updateState(stream, undefined, failed[0]._state.error)
|
||||
else resolve(stream, updateState, false)
|
||||
}
|
||||
}
|
||||
function resolve(stream, update, shouldRecover) {
|
||||
try {
|
||||
var value = shouldRecover ? stream._state.recover() : stream._state.derive()
|
||||
if (value === HALT) return false
|
||||
update(stream, value, undefined)
|
||||
}
|
||||
catch (e) {
|
||||
update(stream, undefined, e.__error != null ? e.__error : e)
|
||||
if (e.__error == null) reportUncaughtError(stream, e)
|
||||
}
|
||||
return true
|
||||
}
|
||||
function unwrapError(value, error) {
|
||||
if (value != null && value.constructor === createStream) {
|
||||
if (value._state.error !== undefined) error = value._state.error
|
||||
else error = unwrapError(value._state.value, value._state.error)
|
||||
}
|
||||
return error
|
||||
}
|
||||
function finalize(stream) {
|
||||
stream._state.changed = false
|
||||
for (var id in stream._state.deps) stream._state.deps[id]._state.changed = false
|
||||
}
|
||||
function reportUncaughtError(stream, e) {
|
||||
if (Object.keys(stream._state.deps).length === 0) {
|
||||
setTimeout(function() {
|
||||
if (Object.keys(stream._state.deps).length === 0) log(e)
|
||||
}, 0)
|
||||
}
|
||||
}
|
||||
function run(fn) {
|
||||
var self = createStream(), stream = this
|
||||
return initDependency(self, [stream], function() {
|
||||
return absorb(self, fn(stream()))
|
||||
}, undefined)
|
||||
}
|
||||
function doCatch(fn) {
|
||||
var self = createStream(), stream = this
|
||||
var derive = function() {return stream._state.value}
|
||||
var recover = function() {return absorb(self, fn(stream._state.error))}
|
||||
return initDependency(self, [stream], derive, recover)
|
||||
}
|
||||
function combine(fn, streams) {
|
||||
return initDependency(createStream(), streams, function() {
|
||||
var failed = streams.filter(errored)
|
||||
if (failed.length > 0) throw {__error: failed[0]._state.error}
|
||||
return fn.apply(this, streams.concat([streams.filter(changed)]))
|
||||
}, undefined)
|
||||
}
|
||||
function absorb(stream, value) {
|
||||
if (value != null && value.constructor === createStream) {
|
||||
var absorbable = value
|
||||
var update = function() {
|
||||
updateState(stream, absorbable._state.value, absorbable._state.error)
|
||||
for (var id in stream._state.deps) updateDependency(stream._state.deps[id], false)
|
||||
}
|
||||
absorbable.map(update).catch(function(e) {
|
||||
update()
|
||||
throw {__error: e}
|
||||
})
|
||||
|
||||
if (absorbable._state.state === 0) return HALT
|
||||
if (absorbable._state.error) throw {__error: absorbable._state.error}
|
||||
value = absorbable._state.value
|
||||
}
|
||||
return value
|
||||
}
|
||||
function initDependency(dep, streams, derive, recover) {
|
||||
var state = dep._state
|
||||
state.derive = derive
|
||||
state.recover = recover
|
||||
state.parents = streams.filter(notEnded)
|
||||
registerDependency(dep, state.parents)
|
||||
updateDependency(dep, true)
|
||||
return dep
|
||||
}
|
||||
function registerDependency(stream, parents) {
|
||||
for (var i = 0; i < parents.length; i++) {
|
||||
parents[i]._state.deps[stream._state.id] = stream
|
||||
registerDependency(stream, parents[i]._state.parents)
|
||||
}
|
||||
}
|
||||
function unregisterStream(stream) {
|
||||
for (var i = 0; i < stream._state.parents.length; i++) {
|
||||
var parent = stream._state.parents[i]
|
||||
delete parent._state.deps[stream._state.id]
|
||||
}
|
||||
for (var id in stream._state.deps) {
|
||||
var dependent = stream._state.deps[id]
|
||||
var index = dependent._state.parents.indexOf(stream)
|
||||
if (index > -1) dependent._state.parents.splice(index, 1)
|
||||
}
|
||||
stream._state.state = 2 //ended
|
||||
stream._state.deps = {}
|
||||
}
|
||||
function map(fn) {return combine(function(stream) {return fn(stream())}, [this])}
|
||||
function ap(stream) {return combine(function(s1, s2) {return s1()(s2())}, [this, stream])}
|
||||
function valueOf() {return this._state.value}
|
||||
function toJSON() {return this._state.value != null && typeof this._state.value.toJSON === "function" ? this._state.value.toJSON() : this._state.value}
|
||||
function active(stream) {return stream._state.state === 1}
|
||||
function changed(stream) {return stream._state.changed}
|
||||
function notEnded(stream) {return stream._state.state !== 2}
|
||||
function errored(stream) {return stream._state.error}
|
||||
function reject(e) {
|
||||
var stream = createStream()
|
||||
stream.error(e)
|
||||
return stream
|
||||
}
|
||||
function merge(streams) {
|
||||
return combine(function () {
|
||||
return streams.map(function(s) {return s()})
|
||||
}, streams)
|
||||
}
|
||||
createStream.merge = merge
|
||||
createStream.combine = combine
|
||||
createStream.reject = reject
|
||||
createStream.HALT = HALT
|
||||
return createStream
|
||||
}
|
||||
var requestService = function($window, log) {
|
||||
var Stream = StreamFactory(log)
|
||||
var callbackCount = 0
|
||||
var oncompletion
|
||||
function setCompletionCallback(callback) {oncompletion = callback}
|
||||
|
||||
function xhr(args) {
|
||||
var stream = Stream.stream()
|
||||
function request(args) {
|
||||
var stream = Stream()
|
||||
if (args.initialValue !== undefined) stream(args.initialValue)
|
||||
|
||||
var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE"
|
||||
|
|
@ -843,7 +839,7 @@ var requestService = function($window, log) {
|
|||
return stream
|
||||
}
|
||||
function jsonp(args) {
|
||||
var stream = Stream.stream()
|
||||
var stream = Stream()
|
||||
if (args.initialValue !== undefined) stream(args.initialValue)
|
||||
|
||||
var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++
|
||||
|
|
@ -905,8 +901,8 @@ var requestService = function($window, log) {
|
|||
return data
|
||||
}
|
||||
|
||||
return {xhr: xhr, jsonp: jsonp, setCompletionCallback: setCompletionCallback}
|
||||
}(window, log)
|
||||
return {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}
|
||||
}(window, console.error.bind(console))
|
||||
var redrawService = function() {
|
||||
var callbacks = []
|
||||
function unsubscribe(callback) {
|
||||
|
|
@ -1090,15 +1086,16 @@ m.route = function($window, renderer, pubsub) {
|
|||
var route = function(root, defaultRoute, routes) {
|
||||
var current = {path: null, component: "div"}
|
||||
var replay = router.defineRoutes(routes, function(payload, args, path, route) {
|
||||
if (typeof payload.view !== "function") {
|
||||
if (typeof payload.render !== "function") payload.render = function(vnode) {return vnode}
|
||||
var use = function(component) {
|
||||
args.path = path, args.route = route
|
||||
if (typeof payload.onmatch === "function") {
|
||||
if (typeof payload.view !== "function") payload.view = function(vnode) {return vnode}
|
||||
var resolve = function(component) {
|
||||
current.path = path, current.component = component
|
||||
renderer.render(root, payload.render(Vnode(component, null, args, undefined, undefined, undefined)))
|
||||
renderer.render(root, payload.view(Vnode(component, null, args, undefined, undefined, undefined)))
|
||||
}
|
||||
if (typeof payload.resolve !== "function") payload.resolve = function() {use(current.component)}
|
||||
if (path !== current.path) payload.resolve(use, args, path, route)
|
||||
else use(current.component)
|
||||
if (typeof payload.onmatch !== "function") payload.onmatch = function() {resolve(current.component)}
|
||||
if (path !== current.path) payload.onmatch(Vnode(payload, null, args, undefined, undefined, undefined), resolve)
|
||||
else resolve(current.component)
|
||||
}
|
||||
else {
|
||||
renderer.render(root, Vnode(payload, null, args, undefined, undefined, undefined))
|
||||
|
|
@ -1127,7 +1124,6 @@ m.mount = function(renderer, pubsub) {
|
|||
})
|
||||
run()
|
||||
if (component === null) {
|
||||
pubsub.unsubscribe(root.redraw)
|
||||
delete root.redraw
|
||||
}
|
||||
}
|
||||
|
|
@ -1140,10 +1136,10 @@ m.withAttr = function(attrName, callback, context) {
|
|||
return callback.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))
|
||||
}
|
||||
}
|
||||
m.prop = defaultStream
|
||||
m.prop = StreamFactory(console.log.bind(console))
|
||||
m.render = renderService.render
|
||||
m.redraw = redrawService.publish
|
||||
m.request = requestService.xhr
|
||||
m.request = requestService.request
|
||||
m.jsonp = requestService.jsonp
|
||||
m.version = "1.0.0"
|
||||
if (typeof module !== "undefined") module["exports"] = m
|
||||
|
|
|
|||
82
mithril.min.js
vendored
82
mithril.min.js
vendored
|
|
@ -1,41 +1,41 @@
|
|||
new function(){function n(b,e,B,f,k,h){return{tag:b,key:e,attrs:B,children:f,text:k,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}var A=console.error.bind(console),A=console.error.bind(console),K=function(b){function e(){function a(){0<arguments.length&&arguments[0]!==D&&f(a,arguments[0],void 0);return a._state.value}B(a,arguments);0<arguments.length&&arguments[0]!==D&&f(a,arguments[0],void 0);return a}function B(a,c){a.constructor=e;a._state={id:N++,value:void 0,error:void 0,
|
||||
state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=O;a.ap=A;a.of=e;a.valueOf=u;a.toJSON=C;a.toString=u;a.run=g;a["catch"]=l;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var c=function(){0<arguments.length&&arguments[0]!==D&&f(a,void 0,arguments[0]);return a._state.error};B(c,[]);z(c,[a],J,J);a._state.errorStream=c}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var c=e();c.map(function(d){!0===
|
||||
d&&(t(a),t(c));return d});a._state.endStream=c}return a._state.endStream}}})}function f(a,c,d){k(a,c,d);for(var g in a._state.deps)p(a._state.deps[g],!1);a._state.changed=!1;for(var b in a._state.deps)a._state.deps[b]._state.changed=!1}function k(a,c,d){d=q(c,d);if(void 0!==d&&"function"===typeof a._state.recover){if(!r(a,h,!0))return}else h(a,c,d);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function h(a,c,d){a._state.value=c;a._state.error=d}function p(a,g){var b=a._state.parents;
|
||||
0<b.length&&b.filter(F).length===b.length&&(g||0<b.filter(c).length)&&(b=b.filter(d),0<b.length?k(a,void 0,b[0]._state.error):r(a,k,!1))}function r(a,c,d){try{var g=d?a._state.recover():a._state.derive();if(g===D)return!1;c(a,g,void 0)}catch(b){c(a,void 0,null!=b.__error?b.__error:b),null==b.__error&&v(a,b)}return!0}function q(a,c){null!=a&&a.constructor===e&&(c=void 0!==a._state.error?a._state.error:q(a._state.value,a._state.error));return c}function v(a,c){0===Object.keys(a._state.deps).length&&
|
||||
setTimeout(function(){0===Object.keys(a._state.deps).length&&b(c)},0)}function g(a){var c=e(),d=this;return z(c,[d],function(){return m(c,a(d()))},void 0)}function l(a){var c=e(),d=this;return z(c,[d],function(){return d._state.value},function(){return m(c,a(d._state.error))})}function y(a,g){return z(e(),g,function(){var b=g.filter(d);if(0<b.length)throw{__error:b[0]._state.error};return a.apply(this,g.concat([g.filter(c)]))},void 0)}function m(a,c){if(null!=c&&c.constructor===e){var d=c,g=function(){k(a,
|
||||
d._state.value,d._state.error);for(var c in a._state.deps)p(a._state.deps[c],!1)};d.map(g)["catch"](function(a){g();throw{__error:a};});if(0===d._state.state)return D;if(d._state.error)throw{__error:d._state.error};c=d._state.value}return c}function z(c,d,g,b){var e=c._state;e.derive=g;e.recover=b;e.parents=d.filter(a);n(c,e.parents);p(c,!0);return c}function n(a,c){for(var d=0;d<c.length;d++)c[d]._state.deps[a._state.id]=a,n(a,c[d]._state.parents)}function t(a){for(var c=0;c<a._state.parents.length;c++)delete a._state.parents[c]._state.deps[a._state.id];
|
||||
for(var d in a._state.deps){var c=a._state.deps[d],g=c._state.parents.indexOf(a);-1<g&&c._state.parents.splice(g,1)}a._state.state=2;a._state.deps={}}function O(a){return y(function(c){return a(c())},[this])}function A(a){return y(function(a,c){return a()(c())},[this,a])}function u(){return this._state.value}function C(){return null!=this._state.value&&"function"===typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function F(a){return 1===a._state.state}function c(a){return a._state.changed}
|
||||
function a(a){return 2!==a._state.state}function d(a){return a._state.error}var N=0,J=function(){},D={};return{stream:e,merge:function(a){return y(function(){return a.map(function(a){return a()})},a)},combine:y,reject:function(a){var c=e();c.error(a);return c},HALT:D}},t=K(A),C=t.stream;C.combine=t.combine;C.reject=t.reject;C.merge=t.merge;C.HALT=t.HALT;n.normalize=function(b){return b instanceof Array?n("[",void 0,void 0,n.normalizeChildren(b),void 0,void 0):null!=b&&"object"!==typeof b?n("#",void 0,
|
||||
void 0,b,void 0,void 0):b};n.normalizeChildren=function(b){for(var e=0;e<b.length;e++)b[e]=n.normalize(b[e]);return b};var P=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,G={},t=function(b){if(null==b||"string"!==typeof b&&null==b.view)throw Error("The selector must be either a string or a component.");if("string"===typeof b&&void 0===G[b]){for(var e,B,f=[],k={};e=P.exec(b);){var h=e[1],p=e[2];""===h&&""!==p?B=p:"#"===h?k.id=p:"."===h?f.push(p):"["===e[3][0]&&((h=
|
||||
e[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),k[e[4]]=h||!0)}0<f.length&&(k.className=f.join(" "));G[b]=function(b,e){var g=!1,f,h,m=b.className||b["class"],p;for(p in k)b[p]=k[p];void 0!==m&&(void 0!==b["class"]&&(b["class"]=void 0,b.className=m),void 0!==k.className&&(b.className=k.className+" "+m));for(p in b)if("key"!==p){g=!0;break}e instanceof Array&&1==e.length&&null!=e[0]&&"#"===e[0].tag?h=e[0].children:f=e;return n(B||"div",b.key,g?b:void 0,f,h,void 0)}}var r;null!=arguments[1]&&
|
||||
("object"!==typeof arguments[1]||void 0!==arguments[1].tag||arguments[1]instanceof Array)?f=1:(r=arguments[1],f=2);if(arguments.length===f+1)e=arguments[f]instanceof Array?arguments[f]:[arguments[f]];else for(e=[];f<arguments.length;f++)e.push(arguments[f]);return"string"===typeof b?G[b](r||{},n.normalizeChildren(e)):n(b,r&&r.key,r||{},n.normalizeChildren(e),void 0,void 0)},H=function(b){function e(c,a,d,b,g,e,f){for(;d<b;d++){var h=a[d];null!=h&&q(c,B(h,g,f),e)}}function B(c,a,d){var b=c.tag;null!=
|
||||
c.attrs&&x(c.attrs,c,a);if("string"===typeof b)switch(b){case "#":return c.dom=u.createTextNode(c.children);case "<":return f(c);case "[":var g=u.createDocumentFragment();null!=c.children&&(b=c.children,e(g,b,0,b.length,a,null,d));c.dom=g.firstChild;c.domSize=g.childNodes.length;return g;default:var h=c.tag;switch(c.tag){case "svg":d="http://www.w3.org/2000/svg";break;case "math":d="http://www.w3.org/1998/Math/MathML"}var q=(b=c.attrs)&&b.is,h=d?q?u.createElementNS(d,h,{is:q}):u.createElementNS(d,
|
||||
h):q?u.createElement(h,{is:q}):u.createElement(h);c.dom=h;if(null!=b)for(g in q=d,b)y(c,g,null,b[g],q);null!=c.text&&(""!==c.text?h.textContent=c.text:c.children=[n("#",void 0,void 0,c.text,void 0,void 0)]);null!=c.children&&(g=c.children,e(h,g,0,g.length,a,null,d),a=c.attrs,"select"===c.tag&&null!=a&&("value"in a&&y(c,"value",null,a.value,void 0),"selectedIndex"in a&&y(c,"selectedIndex",null,a.selectedIndex,void 0)));return h}else return c.state||(c.state={}),C(c.state,c.tag),x(c.tag,c,a),c.instance=
|
||||
n.normalize(c.tag.view.call(c.state,c)),null!=c.instance?(a=B(c.instance,a,d),c.dom=c.instance.dom,c.domSize=null!=c.dom?c.instance.domSize:0,c=a):(c.domSize=0,c=E),c}function f(c){var a={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(c.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",a=u.createElement(a);a.innerHTML=c.children;c.dom=a.firstChild;c.domSize=a.childNodes.length;c=u.createDocumentFragment();for(var d;d=a.firstChild;)c.appendChild(d);
|
||||
return c}function k(c,a,d,b,g,f){if(a!==d&&(null!=a||null!=d))if(null==a)e(c,d,0,d.length,b,g,void 0);else if(null==d)v(c,a,0,a.length,d);else{var m;a:{if(null!=a.pool&&Math.abs(a.pool.length-d.length)<=Math.abs(a.length-d.length)&&(m=d[0]&&d[0].children&&d[0].children.length||0,Math.abs((a.pool[0]&&a.pool[0].children&&a.pool[0].children.length||0)-m)<=Math.abs((a[0]&&a[0].children&&a[0].children.length||0)-m))){m=!0;break a}m=!1}m&&(a=a.concat(a.pool));if(a.length===d.length&&null!=d[0]&&null==d[0].key)for(var l=
|
||||
0;l<a.length;l++)a[l]===d[l]||null==a[l]&&null==d[l]||(null==a[l]?q(c,B(d[l],b,f),r(a,l+1,g)):null==d[l]?v(c,a,l,l+1,d):h(c,a[l],d[l],b,r(a,l+1,g),m,f),m&&a[l].tag===d[l].tag&&q(c,p(a[l]),r(a,l+1,g)));else{for(var k=l=0,y=a.length-1,z=d.length-1,t;y>=l&&z>=k;){var w=a[l],n=d[k];if(w===n)l++,k++;else if(null!=w&&null!=n&&w.key===n.key)l++,k++,h(c,w,n,b,r(a,l,g),m,f),m&&w.tag===n.tag&&q(c,p(w),g);else if(w=a[y],w===n)y--,k++;else if(null!=w&&null!=n&&w.key===n.key)h(c,w,n,b,r(a,y+1,g),m,f),k<z&&q(c,
|
||||
p(w),r(a,l,g)),y--,k++;else break}for(;y>=l&&z>=k;){w=a[y];n=d[z];if(w===n)y--;else if(null!=w&&null!=n&&w.key===n.key)h(c,w,n,b,r(a,y+1,g),m,f),m&&w.tag===n.tag&&q(c,p(w),g),null!=w.dom&&(g=w.dom),y--;else{if(!t){t=a;var w=y,u={},A;for(A=0;A<w;A++){var x=t[A];null!=x&&(x=x.key,null!=x&&(u[x]=A))}t=u}null!=n&&(w=t[n.key],null!=w?(u=a[w],h(c,u,n,b,r(a,y+1,g),m,f),q(c,p(u),g),a[w].skip=!0,null!=u.dom&&(g=u.dom)):(n=B(n,b,void 0),q(c,n,g),g=n))}z--;if(z<k)break}e(c,d,k,z+1,b,g,f);v(c,a,l,y+1,d)}}}function h(c,
|
||||
a,d,b,e,l,v){var z=a.tag;if(z===d.tag){d.state=a.state;d.events=a.events;var r;var u;null!=d.attrs&&"function"===typeof d.attrs.onbeforeupdate&&(r=d.attrs.onbeforeupdate.call(d.state,d,a));"string"!==typeof d.tag&&"function"===typeof d.tag.onbeforeupdate&&(u=d.tag.onbeforeupdate.call(d.state,d,a));void 0===r&&void 0===u||r||u?r=!1:(d.dom=a.dom,d.domSize=a.domSize,d.instance=a.instance,r=!0);if(!r)if(null!=d.attrs&&A(d.attrs,d,b,l),"string"===typeof z)switch(z){case "#":a.children.toString()!==d.children.toString()&&
|
||||
(a.dom.nodeValue=d.children);d.dom=a.dom;break;case "<":a.children!==d.children?(p(a),q(c,f(d),e)):(d.dom=a.dom,d.domSize=a.domSize);break;case "[":k(c,a.children,d.children,b,e,v);a=0;b=d.children;d.dom=null;if(null!=b){for(var x=0;x<b.length;x++)c=b[x],null!=c&&null!=c.dom&&(null==d.dom&&(d.dom=c.dom),a+=c.domSize||1);1!==a&&(d.domSize=a)}break;default:c=v;e=d.dom=a.dom;switch(d.tag){case "svg":c="http://www.w3.org/2000/svg";break;case "math":c="http://www.w3.org/1998/Math/MathML"}"textarea"===
|
||||
d.tag&&(null==d.attrs&&(d.attrs={}),null!=d.text&&(d.attrs.value=d.text));l=a.attrs;v=d.attrs;z=c;if(null!=v)for(x in v)y(d,x,l&&l[x],v[x],z);if(null!=l)for(x in l)null!=v&&x in v||("o"!==x[0]||"n"!==x[1]||m(x)?"key"!==x&&d.dom.removeAttribute(x):t(d,x,void 0));null!=a.text&&null!=d.text&&""!==d.text?a.text.toString()!==d.text.toString()&&(a.dom.firstChild.nodeValue=d.text):(null!=a.text&&(a.children=[n("#",void 0,void 0,a.text,void 0,a.dom.firstChild)]),null!=d.text&&(d.children=[n("#",void 0,void 0,
|
||||
d.text,void 0,void 0)]),k(e,a.children,d.children,b,null,c))}else d.instance=n.normalize(d.tag.view.call(d.state,d)),A(d.tag,d,b,l),null!=d.instance?(null==a.instance?q(c,B(d.instance,b,v),e):h(c,a.instance,d.instance,b,e,l,v),d.dom=d.instance.dom,d.domSize=d.instance.domSize):null!=a.instance?(g(c,a.instance,null,!1),d.dom=void 0,d.domSize=0):(d.dom=a.dom,d.domSize=a.domSize)}else g(c,a,null,!1),q(c,B(d,b,void 0),e)}function p(c){var a=c.domSize;if(null!=a||null==c.dom){var d=u.createDocumentFragment();
|
||||
if(0<a){for(c=c.dom;--a;)d.appendChild(c.nextSibling);d.insertBefore(c,d.firstChild)}return d}return c.dom}function r(c,a,d){for(;a<c.length;a++)if(null!=c[a]&&null!=c[a].dom)return c[a].dom;return d}function q(c,a,d){d&&d.parentNode?c.insertBefore(a,d):c.appendChild(a)}function v(c,a,d,b,e){for(;d<b;d++){var l=a[d];null!=l&&(l.skip?l.skip=!1:g(c,l,e,!1))}}function g(c,a,d,b){if(!1===b){var e=0,m=0;b=function(){++m===e&&g(c,a,d,!0)};a.attrs&&a.attrs.onbeforeremove&&(e++,a.attrs.onbeforeremove.call(a.state,
|
||||
a,b));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(e++,a.tag.onbeforeremove.call(a.state,a,b));if(0<e)return}l(a);if(a.dom){b=a.domSize||1;if(1<b)for(var f=a.dom;--b;)c.removeChild(f.nextSibling);null!=a.dom.parentNode&&c.removeChild(a.dom);null==d||null!=a.domSize||z(a.attrs)||"string"!==typeof a.tag||(d.pool?d.pool.push(a):d.pool=[a])}}function l(c){c.attrs&&c.attrs.onremove&&c.attrs.onremove.call(c.state,c);"string"!==typeof c.tag&&c.tag.onremove&&c.tag.onremove.call(c.state,c);if(null!=c.instance)l(c.instance);
|
||||
else if(c=c.children,c instanceof Array)for(var a=0;a<c.length;a++){var d=c[a];null!=d&&l(d)}}function y(c,a,d,b,g){var e=c.dom;if("key"!==a&&(d!==b||"value"===a||"checked"===a||"selectedIndex"===a||"selected"===a&&c.dom===u.activeElement||"object"===typeof b)&&"undefined"!==typeof b&&!m(a)){var l=a.indexOf(":");if(-1<l&&"xlink"===a.substr(0,l))e.setAttributeNS("http://www.w3.org/1999/xlink",a.slice(l+1),b);else if("o"===a[0]&&"n"===a[1]&&"function"===typeof b)t(c,a,b);else if("style"===a)if(c=d,
|
||||
c===b&&(e.style.cssText="",c=null),null==b)e.style.cssText="";else if("string"===typeof b)e.style.cssText=b;else{"string"===typeof c&&(e.style.cssText="");for(var f in b)e.style[f]=b[f];if(null!=c&&"string"!==typeof c)for(f in c)f in b||(e.style[f]="")}else if(a in e&&"href"!==a&&"list"!==a&&"form"!==a&&void 0===g){if("input"!==c.tag||"value"!==a||c.dom.value!==b||c.dom!==u.activeElement)e[a]=b}else"boolean"===typeof b?b?e.setAttribute(a,""):e.removeAttribute(a):e.setAttribute("className"===a?"class":
|
||||
a,b)}}function m(c){return"oninit"===c||"oncreate"===c||"onupdate"===c||"onremove"===c||"onbeforeremove"===c||"onbeforeupdate"===c}function z(c){return null!=c&&(c.oncreate||c.onupdate||c.onbeforeremove||c.onremove)}function t(c,a,d){var b=c.dom,g=function(a){var c=d.call(b,a);"function"===typeof F&&F.call(b,a);return c};if(a in b)b[a]=g;else{var e=a.slice(2);void 0===c.events&&(c.events={});null!=c.events[a]&&b.removeEventListener(e,c.events[a],!1);"function"===typeof d&&(c.events[a]=g,b.addEventListener(e,
|
||||
c.events[a],!1))}}function x(c,a,d){"function"===typeof c.oninit&&c.oninit.call(a.state,a);"function"===typeof c.oncreate&&d.push(c.oncreate.bind(a.state,a))}function A(c,a,d,b){b?x(c,a,d):"function"===typeof c.onupdate&&d.push(c.onupdate.bind(a.state,a))}function C(c,a){Object.keys(a).forEach(function(d){c[d]=a[d]})}var u=b.document,E=u.createDocumentFragment(),F;return{render:function(c,a){var d=[],b=u.activeElement;null==c.vnodes&&(c.textContent="");a instanceof Array||(a=[a]);k(c,c.vnodes,n.normalizeChildren(a),
|
||||
d,null,void 0);c.vnodes=a;for(var g=0;g<d.length;g++)d[g]();u.activeElement!==b&&b.focus()},setEventCallback:function(c){return F=c}}}(window),I=function(b){function e(b,f){if(f instanceof Array)for(var p=0;p<f.length;p++)e(b+"["+p+"]",f[p]);else if("[object Object]"===Object.prototype.toString.call(f))for(p in f)e(b+"["+p+"]",f[p]);else n.push(encodeURIComponent(b)+(null!=f&&""!==f?"="+encodeURIComponent(f):""))}if("[object Object]"!==Object.prototype.toString.call(b))return"";var n=[],f;for(f in b)e(f,
|
||||
b[f]);return n.join("&")},A=function(b,e){function n(b,e){if(null==e)return b;for(var f=b.match(/:[^\/]+/gi)||[],m=0;m<f.length;m++){var q=f[m].slice(1);null!=e[q]&&(b=b.replace(f[m],e[q]),delete e[q])}return b}function f(b,e){var f=I(e);if(""!==f){var m=0>b.indexOf("?")?"?":"&";b+=m+f}return b}function k(b){try{return""!==b?JSON.parse(b):null}catch(e){throw Error(b);}}function h(b){return b.responseText}function p(b,e){if("function"===typeof b)if(e instanceof Array)for(var f=0;f<e.length;f++)e[f]=
|
||||
new b(e[f]);else return new b(e);return e}var r=K(e),q=0,v;return{xhr:function(g){var e=r.stream();void 0!==g.initialValue&&e(g.initialValue);var q="boolean"===typeof g.useBody?g.useBody:"GET"!==g.method&&"TRACE"!==g.method;"function"!==typeof g.serialize&&(g.serialize="undefined"!==typeof FormData&&g.data instanceof FormData?function(b){return b}:JSON.stringify);"function"!==typeof g.deserialize&&(g.deserialize=k);"function"!==typeof g.extract&&(g.extract=h);g.url=n(g.url,g.data);q?g.data=g.serialize(g.data):
|
||||
g.url=f(g.url,g.data);var m=new b.XMLHttpRequest;m.open(g.method,g.url,"boolean"===typeof g.async?g.async:!0,"string"===typeof g.user?g.user:void 0,"string"===typeof g.password?g.password:void 0);g.serialize===JSON.stringify&&q&&m.setRequestHeader("Content-Type","application/json; charset=utf-8");g.deserialize===k&&m.setRequestHeader("Accept","application/json, text/*");"function"===typeof g.config&&(m=g.config(m,g)||m);m.onreadystatechange=function(){if(4===m.readyState){try{var b=g.extract!==h?
|
||||
g.extract(m,g):g.deserialize(g.extract(m,g));if(200<=m.status&&300>m.status)e(p(g.type,b));else{var f=Error(m.responseText),q;for(q in b)f[q]=b[q];e.error(f)}}catch(k){e.error(k)}"function"===typeof v&&v()}};q?m.send(g.data):m.send();return e},jsonp:function(e){var l=r.stream();void 0!==e.initialValue&&l(e.initialValue);var k=e.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+q++,m=b.document.createElement("script");b[k]=function(f){m.parentNode.removeChild(m);l(p(e.type,f));"function"===
|
||||
typeof v&&v();delete b[k]};m.onerror=function(){m.parentNode.removeChild(m);l.error(Error("JSONP request failed"));"function"===typeof v&&v();delete b[k]};null==e.data&&(e.data={});e.url=n(e.url,e.data);e.data[e.callbackKey||"callback"]=k;m.src=f(e.url,e.data);b.document.documentElement.appendChild(m);return l},setCompletionCallback:function(b){v=b}}}(window,A),E=function(){var b=[];return{subscribe:b.push.bind(b),unsubscribe:function(e){e=b.indexOf(e);-1<e&&b.splice(e,1)},publish:function(){for(var e=
|
||||
0;e<b.length;e++)b[e].apply(this,arguments)}}}();A.setCompletionCallback(E.publish);var L=function(b){if(""===b||null==b)return{};"?"===b.charAt(0)&&(b=b.slice(1));b=b.split("&");for(var e={},n={},f=0;f<b.length;f++){var k=b[f].split("="),h=decodeURIComponent(k[0]),k=2===k.length?decodeURIComponent(k[1]):"",p=Number(k);""!==k&&!isNaN(p)||"NaN"===k?k=p:"true"===k?k=!0:"false"===k?k=!1:(p=new Date(k),isNaN(p.getTime())||(k=p));var p=h.split(/\]\[?|\[/),r=e;-1<h.indexOf("[")&&p.pop();for(var q=0;q<p.length;q++){var h=
|
||||
p[q],v=p[q+1],v=""==v||!isNaN(parseInt(v,10)),g=q===p.length-1;""===h&&(h=p.slice(0,q).join(),null==n[h]&&(n[h]=0),h=n[h]++);null==r[h]&&(r[h]=g?k:v?[]:{});r=r[h]}}return e},Q=function(b){function e(e){var f=b.location[e].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===e&&"/"!==f[0]&&(f="/"+f);return f}function n(b,e,g){var f=b.indexOf("?"),k=b.indexOf("#"),m=-1<f?f:-1<k?k:b.length;if(-1<f){var f=L(b.slice(f+1,-1<k?k:b.length)),h;for(h in f)e[h]=f[h]}if(-1<k)for(h in e=L(b.slice(k+
|
||||
1)),e)g[h]=e[h];return b.slice(0,m)}function f(){switch(r.charAt(0)){case "#":return e("hash").slice(r.length);case "?":return e("search").slice(r.length)+e("hash");default:return e("pathname").slice(r.length)+e("search")+e("hash")}}function k(e,f,g){var k={},p={};e=n(e,k,p);if(null!=f){for(var m in f)k[m]=f[m];e=e.replace(/:([^\/]+)/g,function(b,e){delete k[e];return f[e]})}(m=I(k))&&(e+="?"+m);(p=I(p))&&(e+="#"+p);h?(g&&g.replace?b.history.replaceState(null,null,r+e):b.history.pushState(null,null,
|
||||
r+e),b.onpopstate()):b.location.href=r+e}var h="function"===typeof b.history.pushState,p="function"===typeof setImmediate?setImmediate:setTimeout,r="#!";return{setPrefix:function(b){r=b},getPath:f,setPath:k,defineRoutes:function(e,k,g){function l(){var b=f(),m={},h=n(b,m,m);p(function(){for(var f in e){var l=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(l.test(h)){h.replace(l,function(){for(var g=f.match(/:[^\/]+/g)||[],h=[].slice.call(arguments,1,-2),
|
||||
l=0;l<g.length;l++)m[g[l].replace(/:|\./g,"")]=decodeURIComponent(h[l]);k(e[f],m,b,f)});return}}g(b,m)})}h?b.onpopstate=l:"#"===r.charAt(0)&&(b.onhashchange=l);l();return l},link:function(b){b.dom.setAttribute("href",r+b.attrs.href);b.dom.onclick=function(e){e.preventDefault();e.redraw=!1;k(b.attrs.href,void 0,void 0)}}}},R=function(b){var e=0,n=null,f="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(k){var h=Date.now();!0===k||0===e||16<=h-e?(e=h,b()):null===
|
||||
n&&(n=f(function(){n=null;b();e=Date.now()},16-(h-e)))}},M=function(b,e,n,f){f=R(f);null!=e&&e.setEventCallback(function(b){!1!==b.redraw&&n.publish()});null!=n&&(b.redraw&&n.unsubscribe(b.redraw),n.subscribe(f));return b.redraw=f};t.route=function(b,e,t){var f=Q(b);b=function(b,h,p){var r=null,q="div";p=f.defineRoutes(p,function(f,g,l,h){if("function"!==typeof f.view){"function"!==typeof f.render&&(f.render=function(b){return b});var m=function(h){r=l;q=h;e.render(b,f.render(n(h,null,g,void 0,void 0,
|
||||
void 0)))};"function"!==typeof f.resolve&&(f.resolve=function(){m(q)});l!==r?f.resolve(m,g,l,h):m(q)}else e.render(b,n(f,null,g,void 0,void 0,void 0))},function(){f.setPath(h,null,{replace:!0})});M(b,e,t,p)};b.link=f.link;b.prefix=f.setPrefix;b.set=f.setPath;b.get=f.getPath;return b}(window,H,E);var S={view:function(){}};t.mount=function(b,e){return function(t,f){e.unsubscribe(t.redraw);M(t,b,e,function(){b.render(t,n(null===f?S:f,void 0,void 0,void 0,void 0,void 0))})();null===f&&(e.unsubscribe(t.redraw),
|
||||
delete t.redraw)}}(H,E);t.trust=function(b){return n("<",void 0,void 0,b,void 0,void 0)};t.withAttr=function(b,e,n){return function(f){return e.call(n||this,b in f.currentTarget?f.currentTarget[b]:f.currentTarget.getAttribute(b))}};t.prop=C;t.render=H.render;t.redraw=E.publish;t.request=A.xhr;t.jsonp=A.jsonp;t.version="1.0.0";"undefined"!==typeof module?module.exports=t:window.m=t};
|
||||
new function(){function x(b,d,p,g,l,m){return{tag:b,key:d,attrs:p,children:g,text:l,dom:m,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}x.normalize=function(b){return b instanceof Array?x("[",void 0,void 0,x.normalizeChildren(b),void 0,void 0):null!=b&&"object"!==typeof b?x("#",void 0,void 0,b,void 0,void 0):b};x.normalizeChildren=function(b){for(var d=0;d<b.length;d++)b[d]=x.normalize(b[d]);return b};var P=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,
|
||||
G={},A=function(b){if(null==b||"string"!==typeof b&&null==b.view)throw Error("The selector must be either a string or a component.");if("string"===typeof b&&void 0===G[b]){for(var d,p,g=[],l={};d=P.exec(b);){var m=d[1],k=d[2];""===m&&""!==k?p=k:"#"===m?l.id=k:"."===m?g.push(k):"["===d[3][0]&&((m=d[6])&&(m=m.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),l[d[4]]=m||!0)}0<g.length&&(l.className=g.join(" "));G[b]=function(b,d){var f=!1,g,m,w=b.className||b["class"],k;for(k in l)b[k]=l[k];void 0!==
|
||||
w&&(void 0!==b["class"]&&(b["class"]=void 0,b.className=w),void 0!==l.className&&(b.className=l.className+" "+w));for(k in b)if("key"!==k){f=!0;break}d instanceof Array&&1==d.length&&null!=d[0]&&"#"===d[0].tag?m=d[0].children:g=d;return x(p||"div",b.key,f?b:void 0,g,m,void 0)}}var t;null!=arguments[1]&&("object"!==typeof arguments[1]||void 0!==arguments[1].tag||arguments[1]instanceof Array)?g=1:(t=arguments[1],g=2);if(arguments.length===g+1)d=arguments[g]instanceof Array?arguments[g]:[arguments[g]];
|
||||
else for(d=[];g<arguments.length;g++)d.push(arguments[g]);return"string"===typeof b?G[b](t||{},x.normalizeChildren(d)):x(b,t&&t.key,t||{},x.normalizeChildren(d),void 0,void 0)},I=function(b){function d(c,a,e,f,b,d,r){for(;e<f;e++){var q=a[e];null!=q&&n(c,p(q,b,r),d)}}function p(c,a,e){var f=c.tag;null!=c.attrs&&J(c.attrs,c,a);if("string"===typeof f)switch(f){case "#":return c.dom=z.createTextNode(c.children);case "<":return g(c);case "[":var b=z.createDocumentFragment();null!=c.children&&(f=c.children,
|
||||
d(b,f,0,f.length,a,null,e));c.dom=b.firstChild;c.domSize=b.childNodes.length;return b;default:var n=c.tag;switch(c.tag){case "svg":e="http://www.w3.org/2000/svg";break;case "math":e="http://www.w3.org/1998/Math/MathML"}var r=(f=c.attrs)&&f.is,n=e?r?z.createElementNS(e,n,{is:r}):z.createElementNS(e,n):r?z.createElement(n,{is:r}):z.createElement(n);c.dom=n;if(null!=f)for(b in r=e,f)h(c,b,null,f[b],r);null!=c.text&&(""!==c.text?n.textContent=c.text:c.children=[x("#",void 0,void 0,c.text,void 0,void 0)]);
|
||||
null!=c.children&&(b=c.children,d(n,b,0,b.length,a,null,e),a=c.attrs,"select"===c.tag&&null!=a&&("value"in a&&h(c,"value",null,a.value,void 0),"selectedIndex"in a&&h(c,"selectedIndex",null,a.selectedIndex,void 0)));return n}else return c.state||(c.state={}),K(c.state,c.tag),J(c.tag,c,a),c.instance=x.normalize(c.tag.view.call(c.state,c)),null!=c.instance?(a=p(c.instance,a,e),c.dom=c.instance.dom,c.domSize=null!=c.dom?c.instance.domSize:0,c=a):(c.domSize=0,c=D),c}function g(c){var a={caption:"table",
|
||||
thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(c.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",a=z.createElement(a);a.innerHTML=c.children;c.dom=a.firstChild;c.domSize=a.childNodes.length;c=z.createDocumentFragment();for(var e;e=a.firstChild;)c.appendChild(e);return c}function l(c,a,e,f,b,g){if(a!==e&&(null!=a||null!=e))if(null==a)d(c,e,0,e.length,f,b,void 0);else if(null==e)v(c,a,0,a.length,e);else{var r;a:{if(null!=a.pool&&Math.abs(a.pool.length-
|
||||
e.length)<=Math.abs(a.length-e.length)&&(r=e[0]&&e[0].children&&e[0].children.length||0,Math.abs((a.pool[0]&&a.pool[0].children&&a.pool[0].children.length||0)-r)<=Math.abs((a[0]&&a[0].children&&a[0].children.length||0)-r))){r=!0;break a}r=!1}r&&(a=a.concat(a.pool));if(a.length===e.length&&null!=e[0]&&null==e[0].key)for(var q=0;q<a.length;q++)a[q]===e[q]||null==a[q]&&null==e[q]||(null==a[q]?n(c,p(e[q],f,g),t(a,q+1,b)):null==e[q]?v(c,a,q,q+1,e):m(c,a[q],e[q],f,t(a,q+1,b),r,g),r&&a[q].tag===e[q].tag&&
|
||||
n(c,k(a[q]),t(a,q+1,b)));else{for(var B=q=0,w=a.length-1,y=e.length-1,l;w>=q&&y>=B;){var h=a[q],u=e[B];if(h===u)q++,B++;else if(null!=h&&null!=u&&h.key===u.key)q++,B++,m(c,h,u,f,t(a,q,b),r,g),r&&h.tag===u.tag&&n(c,k(h),b);else if(h=a[w],h===u)w--,B++;else if(null!=h&&null!=u&&h.key===u.key)m(c,h,u,f,t(a,w+1,b),r,g),B<y&&n(c,k(h),t(a,q,b)),w--,B++;else break}for(;w>=q&&y>=B;){h=a[w];u=e[y];if(h===u)w--;else if(null!=h&&null!=u&&h.key===u.key)m(c,h,u,f,t(a,w+1,b),r,g),r&&h.tag===u.tag&&n(c,k(h),b),
|
||||
null!=h.dom&&(b=h.dom),w--;else{if(!l){l=a;var h=w,z={},x;for(x=0;x<h;x++){var C=l[x];null!=C&&(C=C.key,null!=C&&(z[C]=x))}l=z}null!=u&&(h=l[u.key],null!=h?(z=a[h],m(c,z,u,f,t(a,w+1,b),r,g),n(c,k(z),b),a[h].skip=!0,null!=z.dom&&(b=z.dom)):(u=p(u,f,void 0),n(c,u,b),b=u))}y--;if(y<B)break}d(c,e,B,y+1,f,b,g);v(c,a,q,w+1,e)}}}function m(c,a,e,b,d,y,r){var q=a.tag;if(q===e.tag){e.state=a.state;e.events=a.events;var B;var u;null!=e.attrs&&"function"===typeof e.attrs.onbeforeupdate&&(B=e.attrs.onbeforeupdate.call(e.state,
|
||||
e,a));"string"!==typeof e.tag&&"function"===typeof e.tag.onbeforeupdate&&(u=e.tag.onbeforeupdate.call(e.state,e,a));void 0===B&&void 0===u||B||u?B=!1:(e.dom=a.dom,e.domSize=a.domSize,e.instance=a.instance,B=!0);if(!B)if(null!=e.attrs&&A(e.attrs,e,b,y),"string"===typeof q)switch(q){case "#":a.children.toString()!==e.children.toString()&&(a.dom.nodeValue=e.children);e.dom=a.dom;break;case "<":a.children!==e.children?(k(a),n(c,g(e),d)):(e.dom=a.dom,e.domSize=a.domSize);break;case "[":l(c,a.children,
|
||||
e.children,b,d,r);a=0;b=e.children;e.dom=null;if(null!=b){for(var v=0;v<b.length;v++)c=b[v],null!=c&&null!=c.dom&&(null==e.dom&&(e.dom=c.dom),a+=c.domSize||1);1!==a&&(e.domSize=a)}break;default:c=r;d=e.dom=a.dom;switch(e.tag){case "svg":c="http://www.w3.org/2000/svg";break;case "math":c="http://www.w3.org/1998/Math/MathML"}"textarea"===e.tag&&(null==e.attrs&&(e.attrs={}),null!=e.text&&(e.attrs.value=e.text));y=a.attrs;r=e.attrs;q=c;if(null!=r)for(v in r)h(e,v,y&&y[v],r[v],q);if(null!=y)for(v in y)null!=
|
||||
r&&v in r||("o"!==v[0]||"n"!==v[1]||w(v)?"key"!==v&&e.dom.removeAttribute(v):C(e,v,void 0));null!=a.text&&null!=e.text&&""!==e.text?a.text.toString()!==e.text.toString()&&(a.dom.firstChild.nodeValue=e.text):(null!=a.text&&(a.children=[x("#",void 0,void 0,a.text,void 0,a.dom.firstChild)]),null!=e.text&&(e.children=[x("#",void 0,void 0,e.text,void 0,void 0)]),l(d,a.children,e.children,b,null,c))}else e.instance=x.normalize(e.tag.view.call(e.state,e)),A(e.tag,e,b,y),null!=e.instance?(null==a.instance?
|
||||
n(c,p(e.instance,b,r),d):m(c,a.instance,e.instance,b,d,y,r),e.dom=e.instance.dom,e.domSize=e.instance.domSize):null!=a.instance?(f(c,a.instance,null,!1),e.dom=void 0,e.domSize=0):(e.dom=a.dom,e.domSize=a.domSize)}else f(c,a,null,!1),n(c,p(e,b,void 0),d)}function k(c){var a=c.domSize;if(null!=a||null==c.dom){var e=z.createDocumentFragment();if(0<a){for(c=c.dom;--a;)e.appendChild(c.nextSibling);e.insertBefore(c,e.firstChild)}return e}return c.dom}function t(c,a,e){for(;a<c.length;a++)if(null!=c[a]&&
|
||||
null!=c[a].dom)return c[a].dom;return e}function n(c,a,e){e&&e.parentNode?c.insertBefore(a,e):c.appendChild(a)}function v(c,a,e,b,d){for(;e<b;e++){var h=a[e];null!=h&&(h.skip?h.skip=!1:f(c,h,d,!1))}}function f(c,a,e,b){if(!1===b){var d=0,h=0;b=function(){++h===d&&f(c,a,e,!0)};a.attrs&&a.attrs.onbeforeremove&&(d++,a.attrs.onbeforeremove.call(a.state,a,b));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(d++,a.tag.onbeforeremove.call(a.state,a,b));if(0<d)return}y(a);if(a.dom){b=a.domSize||1;if(1<b)for(var r=
|
||||
a.dom;--b;)c.removeChild(r.nextSibling);null!=a.dom.parentNode&&c.removeChild(a.dom);null==e||null!=a.domSize||u(a.attrs)||"string"!==typeof a.tag||(e.pool?e.pool.push(a):e.pool=[a])}}function y(c){c.attrs&&c.attrs.onremove&&c.attrs.onremove.call(c.state,c);"string"!==typeof c.tag&&c.tag.onremove&&c.tag.onremove.call(c.state,c);if(null!=c.instance)y(c.instance);else if(c=c.children,c instanceof Array)for(var a=0;a<c.length;a++){var e=c[a];null!=e&&y(e)}}function h(c,a,e,b,f){var d=c.dom;if("key"!==
|
||||
a&&(e!==b||"value"===a||"checked"===a||"selectedIndex"===a||"selected"===a&&c.dom===z.activeElement||"object"===typeof b)&&"undefined"!==typeof b&&!w(a)){var r=a.indexOf(":");if(-1<r&&"xlink"===a.substr(0,r))d.setAttributeNS("http://www.w3.org/1999/xlink",a.slice(r+1),b);else if("o"===a[0]&&"n"===a[1]&&"function"===typeof b)C(c,a,b);else if("style"===a)if(c=e,c===b&&(d.style.cssText="",c=null),null==b)d.style.cssText="";else if("string"===typeof b)d.style.cssText=b;else{"string"===typeof c&&(d.style.cssText=
|
||||
"");for(var q in b)d.style[q]=b[q];if(null!=c&&"string"!==typeof c)for(q in c)q in b||(d.style[q]="")}else if(a in d&&"href"!==a&&"list"!==a&&"form"!==a&&void 0===f){if("input"!==c.tag||"value"!==a||c.dom.value!==b||c.dom!==z.activeElement)d[a]=b}else"boolean"===typeof b?b?d.setAttribute(a,""):d.removeAttribute(a):d.setAttribute("className"===a?"class":a,b)}}function w(c){return"oninit"===c||"oncreate"===c||"onupdate"===c||"onremove"===c||"onbeforeremove"===c||"onbeforeupdate"===c}function u(c){return null!=
|
||||
c&&(c.oncreate||c.onupdate||c.onbeforeremove||c.onremove)}function C(c,a,b){var f=c.dom,d=function(a){var c=b.call(f,a);"function"===typeof H&&H.call(f,a);return c};if(a in f)f[a]=d;else{var h=a.slice(2);void 0===c.events&&(c.events={});null!=c.events[a]&&f.removeEventListener(h,c.events[a],!1);"function"===typeof b&&(c.events[a]=d,f.addEventListener(h,c.events[a],!1))}}function J(c,a,b){"function"===typeof c.oninit&&c.oninit.call(a.state,a);"function"===typeof c.oncreate&&b.push(c.oncreate.bind(a.state,
|
||||
a))}function A(c,a,b,f){f?J(c,a,b):"function"===typeof c.onupdate&&b.push(c.onupdate.bind(a.state,a))}function K(c,a){Object.keys(a).forEach(function(b){c[b]=a[b]})}var z=b.document,D=z.createDocumentFragment(),H;return{render:function(c,a){var b=[],f=z.activeElement;null==c.vnodes&&(c.textContent="");a instanceof Array||(a=[a]);l(c,c.vnodes,x.normalizeChildren(a),b,null,void 0);c.vnodes=a;for(var d=0;d<b.length;d++)b[d]();z.activeElement!==f&&f.focus()},setEventCallback:function(c){return H=c}}}(window),
|
||||
F=function(b){function d(b,g){if(g instanceof Array)for(var k=0;k<g.length;k++)d(b+"["+k+"]",g[k]);else if("[object Object]"===Object.prototype.toString.call(g))for(k in g)d(b+"["+k+"]",g[k]);else p.push(encodeURIComponent(b)+(null!=g&&""!==g?"="+encodeURIComponent(g):""))}if("[object Object]"!==Object.prototype.toString.call(b))return"";var p=[],g;for(g in b)d(g,b[g]);return p.join("&")},M=function(b){function d(){function a(){0<arguments.length&&arguments[0]!==E&&g(a,arguments[0],void 0);return a._state.value}
|
||||
p(a,arguments);0<arguments.length&&arguments[0]!==E&&g(a,arguments[0],void 0);return a}function p(a,c){a.constructor=d;a._state={id:I++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a.map=D;a.ap=K;a.of=d;a.valueOf=z;a.toJSON=G;a.toString=z;a.run=f;a["catch"]=y;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var c=function(){0<arguments.length&&arguments[0]!==E&&g(a,void 0,arguments[0]);return a._state.error};
|
||||
p(c,[]);u(c,[a],F,F);a._state.errorStream=c}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var c=d();c.map(function(b){!0===b&&(A(a),A(c));return b});a._state.endStream=c}return a._state.endStream}}})}function g(a,c,b){l(a,c,b);for(var e in a._state.deps)k(a._state.deps[e],!1);a._state.changed=!1;for(var f in a._state.deps)a._state.deps[f]._state.changed=!1}function l(a,c,b){b=n(c,b);if(void 0!==b&&"function"===typeof a._state.recover){if(!t(a,m,!0))return}else m(a,c,b);
|
||||
a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function m(a,c,b){a._state.value=c;a._state.error=b}function k(a,b){var f=a._state.parents;0<f.length&&f.filter(H).length===f.length&&(b||0<f.filter(c).length)&&(f=f.filter(e),0<f.length?l(a,void 0,f[0]._state.error):t(a,l,!1))}function t(a,c,b){try{var f=b?a._state.recover():a._state.derive();if(f===E)return!1;c(a,f,void 0)}catch(e){c(a,void 0,null!=e.__error?e.__error:e),null==e.__error&&v(a,e)}return!0}function n(a,c){null!=a&&a.constructor===
|
||||
d&&(c=void 0!==a._state.error?a._state.error:n(a._state.value,a._state.error));return c}function v(a,c){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&b(c)},0)}function f(a){var c=d(),b=this;return u(c,[b],function(){return w(c,a(b()))},void 0)}function y(a){var c=d(),b=this;return u(c,[b],function(){return b._state.value},function(){return w(c,a(b._state.error))})}function h(a,b){return u(d(),b,function(){var f=b.filter(e);if(0<f.length)throw{__error:f[0]._state.error};
|
||||
return a.apply(this,b.concat([b.filter(c)]))},void 0)}function w(a,c){if(null!=c&&c.constructor===d){var b=c,f=function(){l(a,b._state.value,b._state.error);for(var c in a._state.deps)k(a._state.deps[c],!1)};b.map(f)["catch"](function(a){f();throw{__error:a};});if(0===b._state.state)return E;if(b._state.error)throw{__error:b._state.error};c=b._state.value}return c}function u(c,b,f,e){var d=c._state;d.derive=f;d.recover=e;d.parents=b.filter(a);x(c,d.parents);k(c,!0);return c}function x(a,c){for(var b=
|
||||
0;b<c.length;b++)c[b]._state.deps[a._state.id]=a,x(a,c[b]._state.parents)}function A(a){for(var c=0;c<a._state.parents.length;c++)delete a._state.parents[c]._state.deps[a._state.id];for(var b in a._state.deps){var c=a._state.deps[b],f=c._state.parents.indexOf(a);-1<f&&c._state.parents.splice(f,1)}a._state.state=2;a._state.deps={}}function D(a){return h(function(c){return a(c())},[this])}function K(a){return h(function(a,c){return a()(c())},[this,a])}function z(){return this._state.value}function G(){return null!=
|
||||
this._state.value&&"function"===typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function H(a){return 1===a._state.state}function c(a){return a._state.changed}function a(a){return 2!==a._state.state}function e(a){return a._state.error}var I=0,F=function(){},E={};d.merge=function(a){return h(function(){return a.map(function(a){return a()})},a)};d.combine=h;d.reject=function(a){var c=d();c.error(a);return c};d.HALT=E;return d},L=function(b,d){function p(b,d){if(null==d)return b;
|
||||
for(var h=b.match(/:[^\/]+/gi)||[],g=0;g<h.length;g++){var n=h[g].slice(1);null!=d[n]&&(b=b.replace(h[g],d[n]),delete d[n])}return b}function g(b,d){var h=F(d);if(""!==h){var g=0>b.indexOf("?")?"?":"&";b+=g+h}return b}function l(b){try{return""!==b?JSON.parse(b):null}catch(d){throw Error(b);}}function m(b){return b.responseText}function k(b,d){if("function"===typeof b)if(d instanceof Array)for(var h=0;h<d.length;h++)d[h]=new b(d[h]);else return new b(d);return d}var t=M(d),n=0,v;return{request:function(f){var d=
|
||||
t();void 0!==f.initialValue&&d(f.initialValue);var h="boolean"===typeof f.useBody?f.useBody:"GET"!==f.method&&"TRACE"!==f.method;"function"!==typeof f.serialize&&(f.serialize="undefined"!==typeof FormData&&f.data instanceof FormData?function(b){return b}:JSON.stringify);"function"!==typeof f.deserialize&&(f.deserialize=l);"function"!==typeof f.extract&&(f.extract=m);f.url=p(f.url,f.data);h?f.data=f.serialize(f.data):f.url=g(f.url,f.data);var n=new b.XMLHttpRequest;n.open(f.method,f.url,"boolean"===
|
||||
typeof f.async?f.async:!0,"string"===typeof f.user?f.user:void 0,"string"===typeof f.password?f.password:void 0);f.serialize===JSON.stringify&&h&&n.setRequestHeader("Content-Type","application/json; charset=utf-8");f.deserialize===l&&n.setRequestHeader("Accept","application/json, text/*");"function"===typeof f.config&&(n=f.config(n,f)||n);n.onreadystatechange=function(){if(4===n.readyState){try{var b=f.extract!==m?f.extract(n,f):f.deserialize(f.extract(n,f));if(200<=n.status&&300>n.status)d(k(f.type,
|
||||
b));else{var h=Error(n.responseText),g;for(g in b)h[g]=b[g];d.error(h)}}catch(l){d.error(l)}"function"===typeof v&&v()}};h?n.send(f.data):n.send();return d},jsonp:function(d){var l=t();void 0!==d.initialValue&&l(d.initialValue);var h=d.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+n++,w=b.document.createElement("script");b[h]=function(g){w.parentNode.removeChild(w);l(k(d.type,g));"function"===typeof v&&v();delete b[h]};w.onerror=function(){w.parentNode.removeChild(w);l.error(Error("JSONP request failed"));
|
||||
"function"===typeof v&&v();delete b[h]};null==d.data&&(d.data={});d.url=p(d.url,d.data);d.data[d.callbackKey||"callback"]=h;w.src=g(d.url,d.data);b.document.documentElement.appendChild(w);return l},setCompletionCallback:function(b){v=b}}}(window,console.error.bind(console)),D=function(){var b=[];return{subscribe:b.push.bind(b),unsubscribe:function(d){d=b.indexOf(d);-1<d&&b.splice(d,1)},publish:function(){for(var d=0;d<b.length;d++)b[d].apply(this,arguments)}}}();L.setCompletionCallback(D.publish);
|
||||
var N=function(b){if(""===b||null==b)return{};"?"===b.charAt(0)&&(b=b.slice(1));b=b.split("&");for(var d={},p={},g=0;g<b.length;g++){var l=b[g].split("="),m=decodeURIComponent(l[0]),l=2===l.length?decodeURIComponent(l[1]):"",k=Number(l);""!==l&&!isNaN(k)||"NaN"===l?l=k:"true"===l?l=!0:"false"===l?l=!1:(k=new Date(l),isNaN(k.getTime())||(l=k));var k=m.split(/\]\[?|\[/),t=d;-1<m.indexOf("[")&&k.pop();for(var n=0;n<k.length;n++){var m=k[n],v=k[n+1],v=""==v||!isNaN(parseInt(v,10)),f=n===k.length-1;""===
|
||||
m&&(m=k.slice(0,n).join(),null==p[m]&&(p[m]=0),m=p[m]++);null==t[m]&&(t[m]=f?l:v?[]:{});t=t[m]}}return d},Q=function(b){function d(d){var g=b.location[d].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===d&&"/"!==g[0]&&(g="/"+g);return g}function p(b,d,f){var g=b.indexOf("?"),h=b.indexOf("#"),l=-1<g?g:-1<h?h:b.length;if(-1<g){var g=N(b.slice(g+1,-1<h?h:b.length)),k;for(k in g)d[k]=g[k]}if(-1<h)for(k in d=N(b.slice(h+1)),d)f[k]=d[k];return b.slice(0,l)}function g(){switch(t.charAt(0)){case "#":return d("hash").slice(t.length);
|
||||
case "?":return d("search").slice(t.length)+d("hash");default:return d("pathname").slice(t.length)+d("search")+d("hash")}}function l(d,g,f){var l={},h={};d=p(d,l,h);if(null!=g){for(var k in g)l[k]=g[k];d=d.replace(/:([^\/]+)/g,function(b,d){delete l[d];return g[d]})}(k=F(l))&&(d+="?"+k);(h=F(h))&&(d+="#"+h);m?(f&&f.replace?b.history.replaceState(null,null,t+d):b.history.pushState(null,null,t+d),b.onpopstate()):b.location.href=t+d}var m="function"===typeof b.history.pushState,k="function"===typeof setImmediate?
|
||||
setImmediate:setTimeout,t="#!";return{setPrefix:function(b){t=b},getPath:g,setPath:l,defineRoutes:function(d,l,f){function y(){var b=g(),m={},u=p(b,m,m);k(function(){for(var g in d){var k=new RegExp("^"+g.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(k.test(u)){u.replace(k,function(){for(var f=g.match(/:[^\/]+/g)||[],k=[].slice.call(arguments,1,-2),p=0;p<f.length;p++)m[f[p].replace(/:|\./g,"")]=decodeURIComponent(k[p]);l(d[g],m,b,g)});return}}f(b,m)})}m?b.onpopstate=
|
||||
y:"#"===t.charAt(0)&&(b.onhashchange=y);y();return y},link:function(b){b.dom.setAttribute("href",t+b.attrs.href);b.dom.onclick=function(d){d.preventDefault();d.redraw=!1;l(b.attrs.href,void 0,void 0)}}}},R=function(b){var d=0,p=null,g="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(l){var m=Date.now();!0===l||0===d||16<=m-d?(d=m,b()):null===p&&(p=g(function(){p=null;b();d=Date.now()},16-(m-d)))}},O=function(b,d,p,g){g=R(g);null!=d&&d.setEventCallback(function(b){!1!==
|
||||
b.redraw&&p.publish()});null!=p&&(b.redraw&&p.unsubscribe(b.redraw),p.subscribe(g));return b.redraw=g};A.route=function(b,d,p){var g=Q(b);b=function(b,m,k){var t=null,n="div";k=g.defineRoutes(k,function(g,f,k,h){f.path=k;f.route=h;if("function"===typeof g.onmatch){"function"!==typeof g.view&&(g.view=function(b){return b});var m=function(h){t=k;n=h;d.render(b,g.view(x(h,null,f,void 0,void 0,void 0)))};"function"!==typeof g.onmatch&&(g.onmatch=function(){m(n)});if(k!==t)g.onmatch(x(g,null,f,void 0,
|
||||
void 0,void 0),m);else m(n)}else d.render(b,x(g,null,f,void 0,void 0,void 0))},function(){g.setPath(m,null,{replace:!0})});O(b,d,p,k)};b.link=g.link;b.prefix=g.setPrefix;b.set=g.setPath;b.get=g.getPath;return b}(window,I,D);var S={view:function(){}};A.mount=function(b,d){return function(p,g){d.unsubscribe(p.redraw);O(p,b,d,function(){b.render(p,x(null===g?S:g,void 0,void 0,void 0,void 0,void 0))})();null===g&&delete p.redraw}}(I,D);A.trust=function(b){return x("<",void 0,void 0,b,void 0,void 0)};
|
||||
A.withAttr=function(b,d,p){return function(g){return d.call(p||this,b in g.currentTarget?g.currentTarget[b]:g.currentTarget.getAttribute(b))}};A.prop=M(console.log.bind(console));A.render=I.render;A.redraw=D.publish;A.request=L.request;A.jsonp=L.jsonp;A.version="1.0.0";"undefined"!==typeof module?module.exports=A:window.m=A};
|
||||
Loading…
Add table
Add a link
Reference in a new issue