Bundled output for commit 95bf958c87 [skip ci]
This commit is contained in:
parent
95bf958c87
commit
2bcd48e510
2 changed files with 188 additions and 101 deletions
203
mithril.js
203
mithril.js
|
|
@ -293,38 +293,130 @@ var buildQueryString = function(object) {
|
|||
else args.push(encodeURIComponent(key0) + (value1 != null && value1 !== "" ? "=" + encodeURIComponent(value1) : ""))
|
||||
}
|
||||
}
|
||||
/** @constructor */
|
||||
var Promise = function(executor) {
|
||||
if (!(this instanceof Promise)) throw new Error("Promise must be called with `new`")
|
||||
if (typeof executor !== "function") throw new TypeError("executor must be a function")
|
||||
var self0 = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)
|
||||
var instance = self0._instance = {resolvers: resolvers, rejectors: rejectors}
|
||||
var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout
|
||||
function handler(list, shouldAbsorb) {
|
||||
return function execute(value2) {
|
||||
var then
|
||||
try {
|
||||
if (shouldAbsorb && value2 != null && (typeof value2 === "object" || typeof value2 === "function") && typeof (then = value2.then) === "function") {
|
||||
if (value2 === self0) throw new TypeError("Promise can't be resolved w/ itself")
|
||||
executeOnce(then.bind(value2))
|
||||
}
|
||||
else {
|
||||
callAsync(function() {
|
||||
if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value2)
|
||||
for (var i = 0; i < list.length; i++) list[i](value2)
|
||||
resolvers.length = 0, rejectors.length = 0
|
||||
instance.state = shouldAbsorb
|
||||
instance.retry = function() {execute(value2)}
|
||||
})
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
rejectCurrent(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
function executeOnce(then) {
|
||||
var runs = 0
|
||||
function run0(fn) {
|
||||
return function(value2) {
|
||||
if (runs++ > 0) return
|
||||
fn(value2)
|
||||
}
|
||||
}
|
||||
var onerror = run0(rejectCurrent)
|
||||
try {then(run0(resolveCurrent), onerror)} catch (e) {onerror(e)}
|
||||
}
|
||||
executeOnce(executor)
|
||||
}
|
||||
Promise.prototype.then = function(onFulfilled, onRejection) {
|
||||
var self0 = this, instance = self0._instance
|
||||
function handle(callback, list, next, state0) {
|
||||
list.push(function(value2) {
|
||||
if (typeof callback !== "function") next(value2)
|
||||
else try {resolveNext(callback(value2))} catch (e) {if (rejectNext) rejectNext(e)}
|
||||
})
|
||||
if (typeof instance.retry === "function" && state0 === instance.state) instance.retry()
|
||||
}
|
||||
var resolveNext, rejectNext
|
||||
var promise = new Promise(function(resolve0, reject0) {resolveNext = resolve0, rejectNext = reject0})
|
||||
handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)
|
||||
return promise
|
||||
}
|
||||
Promise.prototype.catch = function(onRejection) {
|
||||
return this.then(null, onRejection)
|
||||
}
|
||||
Promise.resolve = function(value2) {
|
||||
if (value2 instanceof Promise) return value2
|
||||
return new Promise(function(resolve0) {resolve0(value2)})
|
||||
}
|
||||
Promise.reject = function(value2) {
|
||||
return new Promise(function(resolve0, reject0) {reject0(value2)})
|
||||
}
|
||||
Promise.all = function(list) {
|
||||
return new Promise(function(resolve0, reject0) {
|
||||
var total = list.length, count = 0, values = []
|
||||
if (list.length === 0) resolve0([])
|
||||
else for (var i = 0; i < list.length; i++) {
|
||||
(function(i) {
|
||||
function consume(value2) {
|
||||
count++
|
||||
values[i] = value2
|
||||
if (count === total) resolve0(values)
|
||||
}
|
||||
if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") {
|
||||
list[i].then(consume, reject0)
|
||||
}
|
||||
else consume(list[i])
|
||||
})(i)
|
||||
}
|
||||
})
|
||||
}
|
||||
Promise.race = function(list) {
|
||||
return new Promise(function(resolve0, reject0) {
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
list[i].then(resolve0, reject0)
|
||||
}
|
||||
})
|
||||
}
|
||||
var _9 = function($window, Stream0) {
|
||||
var callbackCount = 0
|
||||
var oncompletion
|
||||
function setCompletionCallback(callback) {oncompletion = callback}
|
||||
|
||||
function request(args) {
|
||||
function request(args, extra) {
|
||||
if(typeof args === "string"){
|
||||
var url = args
|
||||
if(typeof extra === "object") args = extra
|
||||
else args = {}
|
||||
if(typeof args.url === "undefined") args.url = url
|
||||
}
|
||||
if(typeof args.method === "undefined") args.method = "GET"
|
||||
var stream0 = Stream0()
|
||||
if (args.initialValue !== undefined) stream0(args.initialValue)
|
||||
args.method = args.method.toUpperCase()
|
||||
|
||||
var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE"
|
||||
|
||||
if (typeof args.serialize !== "function") args.serialize = typeof FormData !== "undefined" && args.data instanceof FormData ? function(value0) {return value0} : JSON.stringify
|
||||
if (typeof args.deserialize !== "function") args.deserialize = deserialize
|
||||
if (typeof args.extract !== "function") args.extract = extract
|
||||
|
||||
args.url = interpolate(args.url, args.data)
|
||||
if (useBody) args.data = args.serialize(args.data)
|
||||
else args.url = assemble(args.url, args.data)
|
||||
|
||||
var xhr = new $window.XMLHttpRequest()
|
||||
xhr.open(args.method, args.url, typeof args.async === "boolean" ? args.async : true, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined)
|
||||
|
||||
if (args.serialize === JSON.stringify && useBody) {
|
||||
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8")
|
||||
}
|
||||
if (args.deserialize === deserialize) {
|
||||
xhr.setRequestHeader("Accept", "application/json, text/*")
|
||||
}
|
||||
|
||||
if (typeof args.config === "function") xhr = args.config(xhr, args) || xhr
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState === 4) {
|
||||
try {
|
||||
|
|
@ -344,16 +436,13 @@ var _9 = function($window, Stream0) {
|
|||
if (typeof oncompletion === "function") oncompletion()
|
||||
}
|
||||
}
|
||||
|
||||
if (useBody && (args.data != null)) xhr.send(args.data)
|
||||
else xhr.send()
|
||||
|
||||
return stream0
|
||||
}
|
||||
function jsonp(args) {
|
||||
var stream0 = Stream0()
|
||||
if (args.initialValue !== undefined) stream0(args.initialValue)
|
||||
|
||||
var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++
|
||||
var script = $window.document.createElement("script")
|
||||
$window[callbackName] = function(data) {
|
||||
|
|
@ -400,7 +489,6 @@ var _9 = function($window, Stream0) {
|
|||
catch (e) {throw new Error(data)}
|
||||
}
|
||||
function extract(xhr) {return xhr.responseText}
|
||||
|
||||
function cast(type0, data) {
|
||||
if (typeof type0 === "function") {
|
||||
if (data instanceof Array) {
|
||||
|
|
@ -412,11 +500,10 @@ var _9 = function($window, Stream0) {
|
|||
}
|
||||
return data
|
||||
}
|
||||
|
||||
return {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}
|
||||
}
|
||||
var requestService = _9(window, Stream)
|
||||
var _12 = function() {
|
||||
var _13 = function() {
|
||||
var callbacks = []
|
||||
function unsubscribe(callback) {
|
||||
var index0 = callbacks.indexOf(callback)
|
||||
|
|
@ -429,9 +516,9 @@ var _12 = function() {
|
|||
}
|
||||
return {subscribe: callbacks.push.bind(callbacks), unsubscribe: unsubscribe, publish: publish}
|
||||
}
|
||||
var redrawService = _12()
|
||||
var redrawService = _13()
|
||||
requestService.setCompletionCallback(redrawService.publish)
|
||||
var _14 = function($window) {
|
||||
var _15 = function($window) {
|
||||
var $doc = $window.document
|
||||
var $emptyFragment = $doc.createDocumentFragment()
|
||||
var onevent
|
||||
|
|
@ -517,7 +604,7 @@ var _14 = function($window) {
|
|||
return element
|
||||
}
|
||||
function createComponent(vnode, hooks, ns) {
|
||||
// For object literals since `Vnode()` always sets the `state0` field.
|
||||
// For object literals since `Vnode()` always sets the `state1` field.
|
||||
if (!vnode.state) vnode.state = {}
|
||||
assign(vnode.state, vnode.tag)
|
||||
var view = vnode.tag.view
|
||||
|
|
@ -672,7 +759,7 @@ var _14 = function($window) {
|
|||
if (vnode.tag === "textarea") {
|
||||
if (vnode.attrs == null) vnode.attrs = {}
|
||||
if (vnode.text != null) {
|
||||
vnode.attrs.value = vnode.text //FIXME handle multiple children
|
||||
vnode.attrs.value = vnode.text //FIXME handle0 multiple children
|
||||
vnode.text = undefined
|
||||
}
|
||||
}
|
||||
|
|
@ -835,26 +922,26 @@ var _14 = function($window) {
|
|||
setAttr(vnode, key1, null, attrs2[key1], ns)
|
||||
}
|
||||
}
|
||||
function setAttr(vnode, key1, old, value2, ns) {
|
||||
function setAttr(vnode, key1, old, value3, ns) {
|
||||
var element = vnode.dom
|
||||
if (key1 === "key" || (old === value2 && !isFormAttribute(vnode, key1)) && typeof value2 !== "object" || typeof value2 === "undefined" || isLifecycleMethod(key1)) return
|
||||
if (key1 === "key" || (old === value3 && !isFormAttribute(vnode, key1)) && typeof value3 !== "object" || typeof value3 === "undefined" || isLifecycleMethod(key1)) return
|
||||
var nsLastIndex = key1.indexOf(":")
|
||||
if (nsLastIndex > -1 && key1.substr(0, nsLastIndex) === "xlink") {
|
||||
element.setAttributeNS("http://www.w3.org/1999/xlink", key1.slice(nsLastIndex + 1), value2)
|
||||
element.setAttributeNS("http://www.w3.org/1999/xlink", key1.slice(nsLastIndex + 1), value3)
|
||||
}
|
||||
else if (key1[0] === "o" && key1[1] === "n" && typeof value2 === "function") updateEvent(vnode, key1, value2)
|
||||
else if (key1 === "style") updateStyle(element, old, value2)
|
||||
else if (key1[0] === "o" && key1[1] === "n" && typeof value3 === "function") updateEvent(vnode, key1, value3)
|
||||
else if (key1 === "style") updateStyle(element, old, value3)
|
||||
else if (key1 in element && !isAttribute(key1) && ns === undefined) {
|
||||
//setting input[value2] to same value2 by typing on focused element moves cursor to end in Chrome
|
||||
if (vnode.tag === "input" && key1 === "value" && vnode.dom.value === value2 && vnode.dom === $doc.activeElement) return
|
||||
element[key1] = value2
|
||||
//setting input[value3] to same value3 by typing on focused element moves cursor to end in Chrome
|
||||
if (vnode.tag === "input" && key1 === "value" && vnode.dom.value === value3 && vnode.dom === $doc.activeElement) return
|
||||
element[key1] = value3
|
||||
}
|
||||
else {
|
||||
if (typeof value2 === "boolean") {
|
||||
if (value2) element.setAttribute(key1, "")
|
||||
if (typeof value3 === "boolean") {
|
||||
if (value3) element.setAttribute(key1, "")
|
||||
else element.removeAttribute(key1)
|
||||
}
|
||||
else element.setAttribute(key1 === "className" ? "class" : key1, value2)
|
||||
else element.setAttribute(key1 === "className" ? "class" : key1, value3)
|
||||
}
|
||||
}
|
||||
function setLateAttrs(vnode) {
|
||||
|
|
@ -910,19 +997,19 @@ var _14 = function($window) {
|
|||
}
|
||||
}
|
||||
//event
|
||||
function updateEvent(vnode, key1, value2) {
|
||||
function updateEvent(vnode, key1, value3) {
|
||||
var element = vnode.dom
|
||||
var callback = function(e) {
|
||||
var result = value2.call(element, e)
|
||||
var result = value3.call(element, e)
|
||||
if (typeof onevent === "function") onevent.call(element, e)
|
||||
return result
|
||||
}
|
||||
if (key1 in element) element[key1] = typeof value2 === "function" ? callback : null
|
||||
if (key1 in element) element[key1] = typeof value3 === "function" ? callback : null
|
||||
else {
|
||||
var eventName = key1.slice(2)
|
||||
if (vnode.events === undefined) vnode.events = {}
|
||||
if (vnode.events[key1] != null) element.removeEventListener(eventName, vnode.events[key1], false)
|
||||
if (typeof value2 === "function") {
|
||||
if (typeof value3 === "function") {
|
||||
vnode.events[key1] = callback
|
||||
element.addEventListener(eventName, vnode.events[key1], false)
|
||||
}
|
||||
|
|
@ -966,7 +1053,7 @@ var _14 = function($window) {
|
|||
}
|
||||
return {render: render, setEventCallback: setEventCallback}
|
||||
}
|
||||
var renderService = _14(window)
|
||||
var renderService = _15(window)
|
||||
var throttle = function(callback1) {
|
||||
//60fps translates to 16.6ms, round it down since setTimeout requires int
|
||||
var time = 16
|
||||
|
|
@ -988,7 +1075,7 @@ var throttle = function(callback1) {
|
|||
}
|
||||
}
|
||||
var autoredraw = function(root, renderer, pubsub, callback0) {
|
||||
var run1 = throttle(callback0)
|
||||
var run2 = throttle(callback0)
|
||||
if (renderer != null) {
|
||||
renderer.setEventCallback(function(e) {
|
||||
if (e.redraw !== false) pubsub.publish()
|
||||
|
|
@ -996,11 +1083,11 @@ var autoredraw = function(root, renderer, pubsub, callback0) {
|
|||
}
|
||||
if (pubsub != null) {
|
||||
if (root.redraw) pubsub.unsubscribe(root.redraw)
|
||||
pubsub.subscribe(run1)
|
||||
pubsub.subscribe(run2)
|
||||
}
|
||||
return root.redraw = run1
|
||||
return root.redraw = run2
|
||||
}
|
||||
var _18 = function(renderer, pubsub) {
|
||||
var _19 = function(renderer, pubsub) {
|
||||
return function(root, component) {
|
||||
if (component === null) {
|
||||
renderer.render(root, [])
|
||||
|
|
@ -1010,13 +1097,13 @@ var _18 = function(renderer, pubsub) {
|
|||
}
|
||||
|
||||
if (component.view == null) throw new Error("m.mount(element, component) expects a component, not a vnode")
|
||||
var run0 = autoredraw(root, renderer, pubsub, function() {
|
||||
var run1 = autoredraw(root, renderer, pubsub, function() {
|
||||
renderer.render(root, Vnode(component, undefined, undefined, undefined, undefined, undefined))
|
||||
})
|
||||
run0()
|
||||
run1()
|
||||
}
|
||||
}
|
||||
m.mount = _18(renderService, redrawService)
|
||||
m.mount = _19(renderService, redrawService)
|
||||
var mount = m.mount
|
||||
var parseQueryString = function(string) {
|
||||
if (string === "" || string == null) return {}
|
||||
|
|
@ -1025,9 +1112,9 @@ var parseQueryString = function(string) {
|
|||
for (var i = 0; i < entries.length; i++) {
|
||||
var entry = entries[i].split("=")
|
||||
var key3 = decodeURIComponent(entry[0])
|
||||
var value4 = entry.length === 2 ? decodeURIComponent(entry[1]) : ""
|
||||
if (value4 === "true") value4 = true
|
||||
else if (value4 === "false") value4 = false
|
||||
var value5 = entry.length === 2 ? decodeURIComponent(entry[1]) : ""
|
||||
if (value5 === "true") value5 = true
|
||||
else if (value5 === "false") value5 = false
|
||||
var levels = key3.split(/\]\[?|\[/)
|
||||
var cursor = data0
|
||||
if (key3.indexOf("[") > -1) levels.pop()
|
||||
|
|
@ -1041,7 +1128,7 @@ var parseQueryString = function(string) {
|
|||
level = counters[key3]++
|
||||
}
|
||||
if (cursor[level] == null) {
|
||||
cursor[level] = isValue ? value4 : isNumber ? [] : {}
|
||||
cursor[level] = isValue ? value5 : isNumber ? [] : {}
|
||||
}
|
||||
cursor = cursor[level]
|
||||
}
|
||||
|
|
@ -1050,9 +1137,9 @@ var parseQueryString = function(string) {
|
|||
}
|
||||
var coreRouter = function($window) {
|
||||
var supportsPushState = typeof $window.history.pushState === "function"
|
||||
var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout
|
||||
var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout
|
||||
var prefix1 = "#!"
|
||||
function setPrefix(value3) {prefix1 = value3}
|
||||
function setPrefix(value4) {prefix1 = value4}
|
||||
function normalize(fragment0) {
|
||||
var data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)
|
||||
if (fragment0 === "pathname" && data[0] !== "/") data = "/" + data
|
||||
|
|
@ -1062,7 +1149,7 @@ var coreRouter = function($window) {
|
|||
function debounceAsync(f) {
|
||||
return function() {
|
||||
if (asyncId != null) return
|
||||
asyncId = callAsync(function() {
|
||||
asyncId = callAsync0(function() {
|
||||
asyncId = null
|
||||
f()
|
||||
})
|
||||
|
|
@ -1112,7 +1199,7 @@ var coreRouter = function($window) {
|
|||
}
|
||||
else $window.location.href = prefix1 + path
|
||||
}
|
||||
function defineRoutes(routes, resolve1, reject0) {
|
||||
function defineRoutes(routes, resolve2, reject1) {
|
||||
if (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)
|
||||
else if (prefix1.charAt(0) === "#") $window.onhashchange = resolveRoute
|
||||
resolveRoute()
|
||||
|
|
@ -1131,12 +1218,12 @@ var coreRouter = function($window) {
|
|||
for (var i = 0; i < keys.length; i++) {
|
||||
params[keys[i].replace(/:|\./g, "")] = decodeURIComponent(values[i])
|
||||
}
|
||||
resolve1(routes[route0], params, path, route0)
|
||||
resolve2(routes[route0], params, path, route0)
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
reject0(path, params)
|
||||
reject1(path, params)
|
||||
}
|
||||
return resolveRoute
|
||||
}
|
||||
|
|
@ -1153,7 +1240,7 @@ var coreRouter = function($window) {
|
|||
}
|
||||
return {setPrefix: setPrefix, getPath: getPath, setPath: setPath, defineRoutes: defineRoutes, link: link}
|
||||
}
|
||||
var _24 = function($window, mount0) {
|
||||
var _25 = function($window, mount0) {
|
||||
var router = coreRouter($window)
|
||||
var currentResolve, currentComponent, currentRender, currentArgs, currentPath
|
||||
var RouteComponent = {view: function() {
|
||||
|
|
@ -1170,8 +1257,8 @@ var _24 = function($window, mount0) {
|
|||
router.defineRoutes(routes, function(payload, args0, path) {
|
||||
var isResolver = typeof payload.view !== "function"
|
||||
var render1 = defaultRender
|
||||
var resolve0 = currentResolve = function (component) {
|
||||
if (resolve0 !== currentResolve) return
|
||||
var resolve1 = currentResolve = function (component) {
|
||||
if (resolve1 !== currentResolve) return
|
||||
currentResolve = null
|
||||
currentComponent = component != null ? component : isResolver ? "div" : payload
|
||||
currentRender = render1
|
||||
|
|
@ -1180,14 +1267,14 @@ var _24 = function($window, mount0) {
|
|||
root.redraw(true)
|
||||
}
|
||||
var onmatch = function() {
|
||||
resolve0()
|
||||
resolve1()
|
||||
}
|
||||
if (isResolver) {
|
||||
if (typeof payload.render === "function") render1 = payload.render.bind(payload)
|
||||
if (typeof payload.onmatch === "function") onmatch = payload.onmatch
|
||||
}
|
||||
|
||||
onmatch.call(payload, resolve0, args0, path)
|
||||
onmatch.call(payload, resolve1, args0, path)
|
||||
}, function() {
|
||||
router.setPath(defaultRoute, null, {replace: true})
|
||||
})
|
||||
|
|
@ -1198,7 +1285,7 @@ var _24 = function($window, mount0) {
|
|||
route.get = function() {return currentPath}
|
||||
return route
|
||||
}
|
||||
m.route = _24(window, mount)
|
||||
m.route = _25(window, mount)
|
||||
m.withAttr = function(attrName, callback2, context) {
|
||||
return function(e) {
|
||||
return callback2.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))
|
||||
|
|
|
|||
86
mithril.min.js
vendored
86
mithril.min.js
vendored
|
|
@ -1,44 +1,44 @@
|
|||
new function(){function u(c,f,r,g,k,h){return{tag:c,key:f,attrs:r,children:g,text:k,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function v(c){if(null==c||"string"!==typeof c&&null==c.view)throw Error("The selector must be either a string or a component.");if("string"===typeof c&&void 0===K[c]){for(var f,r,g=[],k={};f=R.exec(c);){var h=f[1],y=f[2];""===h&&""!==y?r=y:"#"===h?k.id=y:"."===h?g.push(y):"["===f[3][0]&&((h=f[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),
|
||||
k[f[4]]=h||!0)}0<g.length&&(k.className=g.join(" "));K[c]=function(c,e){var f=!1,x,g,h=c.className||c["class"],p;for(p in k)c[p]=k[p];void 0!==h&&(void 0!==c["class"]&&(c["class"]=void 0,c.className=h),void 0!==k.className&&(c.className=k.className+" "+h));for(p in c)if("key"!==p){f=!0;break}e instanceof Array&&1==e.length&&null!=e[0]&&"#"===e[0].tag?g=e[0].children:x=e;return u(r||"div",c.key,f?c:void 0,x,g,void 0)}}var z;null!=arguments[1]&&("object"!==typeof arguments[1]||void 0!==arguments[1].tag||
|
||||
new function(){function u(c,f,n,g,k,h){return{tag:c,key:f,attrs:n,children:g,text:k,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function v(c){if(null==c||"string"!==typeof c&&null==c.view)throw Error("The selector must be either a string or a component.");if("string"===typeof c&&void 0===K[c]){for(var f,n,g=[],k={};f=R.exec(c);){var h=f[1],x=f[2];""===h&&""!==x?n=x:"#"===h?k.id=x:"."===h?g.push(x):"["===f[3][0]&&((h=f[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),
|
||||
k[f[4]]=h||!0)}0<g.length&&(k.className=g.join(" "));K[c]=function(c,e){var f=!1,l,g,h=c.className||c["class"],r;for(r in k)c[r]=k[r];void 0!==h&&(void 0!==c["class"]&&(c["class"]=void 0,c.className=h),void 0!==k.className&&(c.className=k.className+" "+h));for(r in c)if("key"!==r){f=!0;break}e instanceof Array&&1==e.length&&null!=e[0]&&"#"===e[0].tag?g=e[0].children:l=e;return u(n||"div",c.key,f?c:void 0,l,g,void 0)}}var z;null!=arguments[1]&&("object"!==typeof arguments[1]||void 0!==arguments[1].tag||
|
||||
arguments[1]instanceof Array)?g=1:(z=arguments[1],g=2);if(arguments.length===g+1)f=arguments[g]instanceof Array?arguments[g]:[arguments[g]];else for(f=[];g<arguments.length;g++)f.push(arguments[g]);return"string"===typeof c?K[c](z||{},u.normalizeChildren(f)):u(c,z&&z.key,z||{},u.normalizeChildren(f),void 0,void 0)}u.normalize=function(c){return c instanceof Array?u("[",void 0,void 0,u.normalizeChildren(c),void 0,void 0):null!=c&&"object"!==typeof c?u("#",void 0,void 0,c,void 0,void 0):c};u.normalizeChildren=
|
||||
function(c){for(var f=0;f<c.length;f++)c[f]=u.normalize(c[f]);return c};var R=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,K={};v.trust=function(c){null==c&&(c="");return u("<",void 0,void 0,c,void 0,void 0)};v.fragment=function(c,f){return u("[",c.key,c,u.normalizeChildren(f),void 0,void 0)};var P=function(c){function f(){function a(){0<arguments.length&&arguments[0]!==q&&g(a,arguments[0],void 0);return a._state.value}r(a);0<arguments.length&&arguments[0]!==q&&g(a,
|
||||
arguments[0],void 0);return a}function r(a){a.constructor=f;a._state={id:A++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a["fantasy-land/map"]=D;a["fantasy-land/ap"]=v;a["fantasy-land/of"]=f;a.valueOf=H;a.toJSON=B;a.toString=H;a.run=m;a["catch"]=x;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var b=function(){0<arguments.length&&arguments[0]!==q&&g(a,void 0,arguments[0]);return a._state.error};
|
||||
r(b);t(b,[a],C,C);a._state.errorStream=b}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var b=f();b["fantasy-land/map"](function(d){!0===d&&(u(a),u(b));return d});a._state.endStream=b}return a._state.endStream}}})}function g(a,b,d){k(a,b,d);for(var n in a._state.deps)y(a._state.deps[n],!1);a._state.changed=!1;for(var e in a._state.deps)a._state.deps[e]._state.changed=!1}function k(a,b,d){d=p(b,d);if(void 0!==d&&"function"===typeof a._state.recover){if(!z(a,h,!0))return}else h(a,
|
||||
b,d);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function h(a,b,d){a._state.value=b;a._state.error=d}function y(b,e){var n=b._state.parents;0<n.length&&n.filter(F).length===n.length&&(e||0<n.filter(a).length)&&(n=n.filter(d),0<n.length?k(b,void 0,n[0]._state.error):z(b,k,!1))}function z(a,b,d){try{var n=d?a._state.recover():a._state.derive();if(n===q)return!1;b(a,n,void 0)}catch(E){b(a,void 0,null!=E.__error?E.__error:E),null==E.__error&&e(a,E)}return!0}function p(a,b){null!=a&&a.constructor===
|
||||
f&&(b=void 0!==a._state.error?a._state.error:p(a._state.value,a._state.error));return b}function e(a,b){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&c(b)},0)}function m(a){var b=f(),d=this;return t(b,[d],function(){return l(b,a(d()))},void 0)}function x(a){var b=f(),d=this;return t(b,[d],function(){return d._state.value},function(){return l(b,a(d._state.error))})}function w(b,e){if(e.length>e.filter(I).length)throw Error("Ensure that each item passed to m.prop.combine/m.prop.merge is a stream");
|
||||
return t(f(),e,function(){var n=e.filter(d);if(0<n.length)throw{__error:n[0]._state.error};return b.apply(this,e.concat([e.filter(a)]))},void 0)}function l(a,b){if(null!=b&&b.constructor===f){var d=b,e=function(){k(a,d._state.value,d._state.error);for(var b in a._state.deps)y(a._state.deps[b],!1)};d["fantasy-land/map"](e)["catch"](function(a){e();throw{__error:a};});if(0===d._state.state)return q;if(d._state.error)throw{__error:d._state.error};b=d._state.value}return b}function t(a,d,e,c){var n=a._state;
|
||||
n.derive=e;n.recover=c;n.parents=d.filter(b);G(a,n.parents);y(a,!0);return a}function G(a,b){for(var d=0;d<b.length;d++)b[d]._state.deps[a._state.id]=a,G(a,b[d]._state.parents)}function u(a){for(var b=0;b<a._state.parents.length;b++)delete a._state.parents[b]._state.deps[a._state.id];for(var d in a._state.deps){var b=a._state.deps[d],e=b._state.parents.indexOf(a);-1<e&&b._state.parents.splice(e,1)}a._state.state=2;a._state.deps={}}function D(a){return w(function(b){return a(b())},[this])}function v(a){return w(function(a,
|
||||
b){return a()(b())},[a,this])}function H(){return this._state.value}function B(){return null!=this._state.value&&"function"===typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function I(a){return a._state}function F(a){return 1===a._state.state}function a(a){return a._state.changed}function b(a){return 2!==a._state.state}function d(a){return a._state.error}var A=0,C=function(){},q={};f["fantasy-land/of"]=f;f.merge=function(a){return w(function(){return a.map(function(a){return a()})},
|
||||
a)};f.combine=w;f.reject=function(a){var b=f();b.error(a);return b};f.HALT=q;return f}(console.log.bind(console)),J=function(c){function f(c,h){if(h instanceof Array)for(var g=0;g<h.length;g++)f(c+"["+g+"]",h[g]);else if("[object Object]"===Object.prototype.toString.call(h))for(g in h)f(c+"["+g+"]",h[g]);else r.push(encodeURIComponent(c)+(null!=h&&""!==h?"="+encodeURIComponent(h):""))}if("[object Object]"!==Object.prototype.toString.call(c))return"";var r=[],g;for(g in c)f(g,c[g]);return r.join("&")},
|
||||
L=function(c,f){function r(e,c){if(null==c)return e;for(var f=e.match(/:[^\/]+/gi)||[],g=0;g<f.length;g++){var m=f[g].slice(1);null!=c[m]&&(e=e.replace(f[g],c[m]),delete c[m])}return e}function g(e,c){var f=J(c);if(""!==f){var g=0>e.indexOf("?")?"?":"&";e+=g+f}return e}function k(e){try{return""!==e?JSON.parse(e):null}catch(m){throw Error(e);}}function h(e){return e.responseText}function y(e,c){if("function"===typeof e)if(c instanceof Array)for(var f=0;f<c.length;f++)c[f]=new e(c[f]);else return new e(c);
|
||||
return c}var z=0,p;return{request:function(e){var m=f();void 0!==e.initialValue&&m(e.initialValue);e.method=e.method.toUpperCase();var x="boolean"===typeof e.useBody?e.useBody:"GET"!==e.method&&"TRACE"!==e.method;"function"!==typeof e.serialize&&(e.serialize="undefined"!==typeof FormData&&e.data instanceof FormData?function(e){return e}:JSON.stringify);"function"!==typeof e.deserialize&&(e.deserialize=k);"function"!==typeof e.extract&&(e.extract=h);e.url=r(e.url,e.data);x?e.data=e.serialize(e.data):
|
||||
e.url=g(e.url,e.data);var w=new c.XMLHttpRequest;w.open(e.method,e.url,"boolean"===typeof e.async?e.async:!0,"string"===typeof e.user?e.user:void 0,"string"===typeof e.password?e.password:void 0);e.serialize===JSON.stringify&&x&&w.setRequestHeader("Content-Type","application/json; charset=utf-8");e.deserialize===k&&w.setRequestHeader("Accept","application/json, text/*");"function"===typeof e.config&&(w=e.config(w,e)||w);w.onreadystatechange=function(){if(4===w.readyState){try{var c=e.extract!==h?
|
||||
e.extract(w,e):e.deserialize(e.extract(w,e));if(200<=w.status&&300>w.status||304===w.status)m(y(e.type,c));else{var f=Error(w.responseText),g;for(g in c)f[g]=c[g];m.error(f)}}catch(S){m.error(S)}"function"===typeof p&&p()}};x&&null!=e.data?w.send(e.data):w.send();return m},jsonp:function(e){var m=f();void 0!==e.initialValue&&m(e.initialValue);var h=e.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+z++,k=c.document.createElement("script");c[h]=function(f){k.parentNode.removeChild(k);m(y(e.type,
|
||||
f));"function"===typeof p&&p();delete c[h]};k.onerror=function(){k.parentNode.removeChild(k);m.error(Error("JSONP request failed"));"function"===typeof p&&p();delete c[h]};null==e.data&&(e.data={});e.url=r(e.url,e.data);e.data[e.callbackKey||"callback"]=h;k.src=g(e.url,e.data);c.document.documentElement.appendChild(k);return m},setCompletionCallback:function(e){p=e}}}(window,P),M=function(){var c=[];return{subscribe:c.push.bind(c),unsubscribe:function(f){f=c.indexOf(f);-1<f&&c.splice(f,1)},publish:function(){for(var f=
|
||||
0;f<c.length;f++)c[f].apply(this,arguments)}}}();L.setCompletionCallback(M.publish);var Q=function(c){function f(a,b,d,e,c,f,g){for(;d<e;d++){var A=b[d];null!=A&&p(a,r(A,c,g),f)}}function r(a,b,d){var c=a.tag;null!=a.attrs&&D(a.attrs,a,b);if("string"===typeof c)switch(c){case "#":return a.dom=B.createTextNode(a.children);case "<":return g(a);case "[":var h=B.createDocumentFragment();null!=a.children&&(c=a.children,f(h,c,0,c.length,b,null,d));a.dom=h.firstChild;a.domSize=h.childNodes.length;return h;
|
||||
default:var q=a.tag;switch(a.tag){case "svg":d="http://www.w3.org/2000/svg";break;case "math":d="http://www.w3.org/1998/Math/MathML"}var n=(c=a.attrs)&&c.is,q=d?n?B.createElementNS(d,q,{is:n}):B.createElementNS(d,q):n?B.createElement(q,{is:n}):B.createElement(q);a.dom=q;if(null!=c)for(h in n=d,c)t(a,h,null,c[h],n);null!=a.attrs&&null!=a.attrs.contenteditable?e(a):(null!=a.text&&(""!==a.text?q.textContent=a.text:a.children=[u("#",void 0,void 0,a.text,void 0,void 0)]),null!=a.children&&(h=a.children,
|
||||
f(q,h,0,h.length,b,null,d),b=a.attrs,"select"===a.tag&&null!=b&&("value"in b&&t(a,"value",null,b.value,void 0),"selectedIndex"in b&&t(a,"selectedIndex",null,b.selectedIndex,void 0))));return q}else{a.state||(a.state={});H(a.state,a.tag);h=a.tag.view;if(null!=h.reentrantLock)a=I;else if(h.reentrantLock=!0,D(a.tag,a,b),a.instance=u.normalize(h.call(a.state,a)),h.reentrantLock=null,null!=a.instance){if(a.instance===a)throw Error("A view cannot return the vnode it received as arguments");b=r(a.instance,
|
||||
b,d);a.dom=a.instance.dom;a.domSize=null!=a.dom?a.instance.domSize:0;a=b}else a.domSize=0,a=I;return a}}function g(a){var b={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(a.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",b=B.createElement(b);b.innerHTML=a.children;a.dom=b.firstChild;a.domSize=b.childNodes.length;a=B.createDocumentFragment();for(var d;d=b.firstChild;)a.appendChild(d);return a}function k(a,b,d,c,e,g){if(b!==d&&
|
||||
(null!=b||null!=d))if(null==b)f(a,d,0,d.length,c,e,void 0);else if(null==d)m(b,0,b.length,d);else{var n;a:{if(null!=b.pool&&Math.abs(b.pool.length-d.length)<=Math.abs(b.length-d.length)&&(n=d[0]&&d[0].children&&d[0].children.length||0,Math.abs((b.pool[0]&&b.pool[0].children&&b.pool[0].children.length||0)-n)<=Math.abs((b[0]&&b[0].children&&b[0].children.length||0)-n))){n=!0;break a}n=!1}n&&(b=b.concat(b.pool));if(b.length===d.length&&null!=d[0]&&null==d[0].key)for(var q=0;q<b.length;q++)b[q]===d[q]||
|
||||
null==b[q]&&null==d[q]||(null==b[q]?p(a,r(d[q],c,g),z(b,q+1,e)):null==d[q]?m(b,q,q+1,d):h(a,b[q],d[q],c,z(b,q+1,e),n,g),n&&b[q].tag===d[q].tag&&p(a,y(b[q]),z(b,q+1,e)));else{for(var A=q=0,k=b.length-1,x=d.length-1,w;k>=q&&x>=A;){var t=b[q],l=d[A];if(t!==l||n)if(null!=t&&null!=l&&t.key===l.key)q++,A++,h(a,t,l,c,z(b,q,e),n,g),n&&t.tag===l.tag&&p(a,y(t),e);else if(t=b[k],t!==l||n)if(null!=t&&null!=l&&t.key===l.key)h(a,t,l,c,z(b,k+1,e),n,g),(n||A<x)&&p(a,y(t),z(b,q,e)),k--,A++;else break;else k--,A++;
|
||||
else q++,A++}for(;k>=q&&x>=A;){t=b[k];l=d[x];if(t!==l||n)if(null!=t&&null!=l&&t.key===l.key)h(a,t,l,c,z(b,k+1,e),n,g),n&&t.tag===l.tag&&p(a,y(t),e),null!=t.dom&&(e=t.dom),k--;else{if(!w){w=b;var t=k,C={},u;for(u=0;u<t;u++){var v=w[u];null!=v&&(v=v.key,null!=v&&(C[v]=u))}w=C}null!=l&&(t=w[l.key],null!=t?(C=b[t],h(a,C,l,c,z(b,k+1,e),n,g),p(a,y(C),e),b[t].skip=!0,null!=C.dom&&(e=C.dom)):(l=r(l,c,void 0),p(a,l,e),e=l))}else k--;x--;if(x<A)break}f(a,d,A,x+1,c,e,g);m(b,q,k+1,d)}}}function h(a,b,d,c,f,q,
|
||||
n){var m=b.tag;if(m===d.tag){d.state=b.state;d.events=b.events;var x;var A;null!=d.attrs&&"function"===typeof d.attrs.onbeforeupdate&&(x=d.attrs.onbeforeupdate.call(d.state,d,b));"string"!==typeof d.tag&&"function"===typeof d.tag.onbeforeupdate&&(A=d.tag.onbeforeupdate.call(d.state,d,b));void 0===x&&void 0===A||x||A?x=!1:(d.dom=b.dom,d.domSize=b.domSize,d.instance=b.instance,x=!0);if(!x)if(null!=d.attrs&&O(d.attrs,d,c,q),"string"===typeof m)switch(m){case "#":b.children.toString()!==d.children.toString()&&
|
||||
(b.dom.nodeValue=d.children);d.dom=b.dom;break;case "<":b.children!==d.children?(y(b),p(a,g(d),f)):(d.dom=b.dom,d.domSize=b.domSize);break;case "[":k(a,b.children,d.children,c,f,n);b=0;c=d.children;d.dom=null;if(null!=c){for(var l=0;l<c.length;l++)a=c[l],null!=a&&null!=a.dom&&(null==d.dom&&(d.dom=a.dom),b+=a.domSize||1);1!==b&&(d.domSize=b)}break;default:a=n;f=d.dom=b.dom;switch(d.tag){case "svg":a="http://www.w3.org/2000/svg";break;case "math":a="http://www.w3.org/1998/Math/MathML"}"textarea"===
|
||||
d.tag&&(null==d.attrs&&(d.attrs={}),null!=d.text&&(d.attrs.value=d.text,d.text=void 0));q=b.attrs;n=d.attrs;m=a;if(null!=n)for(l in n)t(d,l,q&&q[l],n[l],m);if(null!=q)for(l in q)null!=n&&l in n||("className"===l&&(l="class"),"o"!==l[0]||"n"!==l[1]||G(l)?"key"!==l&&d.dom.removeAttribute(l):v(d,l,void 0));null!=d.attrs&&null!=d.attrs.contenteditable?e(d):null!=b.text&&null!=d.text&&""!==d.text?b.text.toString()!==d.text.toString()&&(b.dom.firstChild.nodeValue=d.text):(null!=b.text&&(b.children=[u("#",
|
||||
void 0,void 0,b.text,void 0,b.dom.firstChild)]),null!=d.text&&(d.children=[u("#",void 0,void 0,d.text,void 0,void 0)]),k(f,b.children,d.children,c,null,a))}else d.instance=u.normalize(d.tag.view.call(d.state,d)),O(d.tag,d,c,q),null!=d.instance?(null==b.instance?p(a,r(d.instance,c,n),f):h(a,b.instance,d.instance,c,f,q,n),d.dom=d.instance.dom,d.domSize=d.instance.domSize):null!=b.instance?(w(b.instance,null),d.dom=void 0,d.domSize=0):(d.dom=b.dom,d.domSize=b.domSize)}else w(b,null),p(a,r(d,c,void 0),
|
||||
f)}function y(a){var b=a.domSize;if(null!=b||null==a.dom){var d=B.createDocumentFragment();if(0<b){for(a=a.dom;--b;)d.appendChild(a.nextSibling);d.insertBefore(a,d.firstChild)}return d}return a.dom}function z(a,b,d){for(;b<a.length;b++)if(null!=a[b]&&null!=a[b].dom)return a[b].dom;return d}function p(a,b,d){d&&d.parentNode?a.insertBefore(b,d):a.appendChild(b)}function e(a){var b=a.children;if(null!=b&&1===b.length&&"<"===b[0].tag)b=b[0].children,a.dom.innerHTML!==b&&(a.dom.innerHTML=b);else if(null!=
|
||||
b||null!=a.text)throw Error("Child node of a contenteditable must be trusted");}function m(a,b,d,c){for(;b<d;b++){var e=a[b];null!=e&&(e.skip?e.skip=!1:w(e,c))}}function x(a){var b=!1;return function(){b||(b=!0,a())}}function w(a,b){function d(){if(++e===c&&(l(a),a.dom)){var d=a.domSize||1;if(1<d)for(var f=a.dom;--d;){var g=f.nextSibling,h=g.parentNode;null!=h&&h.removeChild(g)}d=a.dom;f=d.parentNode;null!=f&&f.removeChild(d);if(d=null!=b&&null==a.domSize)d=a.attrs,d=!(null!=d&&(d.oncreate||d.onupdate||
|
||||
d.onbeforeremove||d.onremove));d&&"string"===typeof a.tag&&(b.pool?b.pool.push(a):b.pool=[a])}}var c=1,e=0;a.attrs&&a.attrs.onbeforeremove&&(c++,a.attrs.onbeforeremove.call(a.state,a,x(d)));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(c++,a.tag.onbeforeremove.call(a.state,a,x(d)));d()}function l(a){a.attrs&&a.attrs.onremove&&a.attrs.onremove.call(a.state,a);"string"!==typeof a.tag&&a.tag.onremove&&a.tag.onremove.call(a.state,a);if(null!=a.instance)l(a.instance);else if(a=a.children,a instanceof
|
||||
Array)for(var b=0;b<a.length;b++){var d=a[b];null!=d&&l(d)}}function t(a,b,d,c,e){var f=a.dom;if("key"!==b&&(d!==c||"value"===b||"checked"===b||"selectedIndex"===b||"selected"===b&&a.dom===B.activeElement||"object"===typeof c)&&"undefined"!==typeof c&&!G(b)){var g=b.indexOf(":");if(-1<g&&"xlink"===b.substr(0,g))f.setAttributeNS("http://www.w3.org/1999/xlink",b.slice(g+1),c);else if("o"===b[0]&&"n"===b[1]&&"function"===typeof c)v(a,b,c);else if("style"===b)if(a=d,a===c&&(f.style.cssText="",a=null),
|
||||
null==c)f.style.cssText="";else if("string"===typeof c)f.style.cssText=c;else{"string"===typeof a&&(f.style.cssText="");for(var h in c)f.style[h]=c[h];if(null!=a&&"string"!==typeof a)for(h in a)h in c||(f.style[h]="")}else if(b in f&&"href"!==b&&"list"!==b&&"form"!==b&&"width"!==b&&"height"!==b&&void 0===e){if("input"!==a.tag||"value"!==b||a.dom.value!==c||a.dom!==B.activeElement)f[b]=c}else"boolean"===typeof c?c?f.setAttribute(b,""):f.removeAttribute(b):f.setAttribute("className"===b?"class":b,c)}}
|
||||
function G(a){return"oninit"===a||"oncreate"===a||"onupdate"===a||"onremove"===a||"onbeforeremove"===a||"onbeforeupdate"===a}function v(a,b,d){var c=a.dom,e=function(a){var b=d.call(c,a);"function"===typeof F&&F.call(c,a);return b};if(b in c)c[b]="function"===typeof d?e:null;else{var f=b.slice(2);void 0===a.events&&(a.events={});null!=a.events[b]&&c.removeEventListener(f,a.events[b],!1);"function"===typeof d&&(a.events[b]=e,c.addEventListener(f,a.events[b],!1))}}function D(a,b,d){"function"===typeof a.oninit&&
|
||||
a.oninit.call(b.state,b);"function"===typeof a.oncreate&&d.push(a.oncreate.bind(b.state,b))}function O(a,b,d,c){c?D(a,b,d):"function"===typeof a.onupdate&&d.push(a.onupdate.bind(b.state,b))}function H(a,b){Object.keys(b).forEach(function(d){a[d]=b[d]})}var B=c.document,I=B.createDocumentFragment(),F;return{render:function(a,b){if(!a)throw Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var d=[],c=B.activeElement;null==a.vnodes&&(a.textContent="");b instanceof
|
||||
Array||(b=[b]);k(a,a.vnodes,u.normalizeChildren(b),d,null,void 0);a.vnodes=b;for(var e=0;e<d.length;e++)d[e]();B.activeElement!==c&&c.focus()},setEventCallback:function(a){return F=a}}}(window),T=function(c){var f=0,r=null,g="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(k){var h=Date.now();!0===k||0===f||16<=h-f?(f=h,c()):null===r&&(r=g(function(){r=null;c();f=Date.now()},16-(h-f)))}},U=function(c,f,r,g){g=T(g);null!=f&&f.setEventCallback(function(c){!1!==
|
||||
c.redraw&&r.publish()});null!=r&&(c.redraw&&r.unsubscribe(c.redraw),r.subscribe(g));return c.redraw=g};v.mount=function(c,f){return function(r,g){if(null===g)c.render(r,[]),f.unsubscribe(r.redraw),delete r.redraw;else{if(null==g.view)throw Error("m.mount(element, component) expects a component, not a vnode");U(r,c,f,function(){c.render(r,u(g,void 0,void 0,void 0,void 0,void 0))})()}}}(Q,M);var N=function(c){if(""===c||null==c)return{};"?"===c.charAt(0)&&(c=c.slice(1));c=c.split("&");for(var f={},
|
||||
r={},g=0;g<c.length;g++){var k=c[g].split("="),h=decodeURIComponent(k[0]),k=2===k.length?decodeURIComponent(k[1]):"";"true"===k?k=!0:"false"===k&&(k=!1);var y=h.split(/\]\[?|\[/),u=f;-1<h.indexOf("[")&&y.pop();for(var p=0;p<y.length;p++){var h=y[p],e=y[p+1],e=""==e||!isNaN(parseInt(e,10)),m=p===y.length-1;""===h&&(h=y.slice(0,p).join(),null==r[h]&&(r[h]=0),h=r[h]++);null==u[h]&&(u[h]=m?k:e?[]:{});u=u[h]}}return f},V=function(c){function f(e){var f=c.location[e].replace(/(?:%[a-f89][a-f0-9])+/gim,
|
||||
decodeURIComponent);"pathname"===e&&"/"!==f[0]&&(f="/"+f);return f}function r(c){return function(){null==e&&(e=v(function(){e=null;c()}))}}function g(c,e,f){var g=c.indexOf("?"),h=c.indexOf("#"),k=-1<g?g:-1<h?h:c.length;if(-1<g){var g=N(c.slice(g+1,-1<h?h:c.length)),m;for(m in g)e[m]=g[m]}if(-1<h)for(m in e=N(c.slice(h+1)),e)f[m]=e[m];return c.slice(0,k)}function k(){switch(p.charAt(0)){case "#":return f("hash").slice(p.length);case "?":return f("search").slice(p.length)+f("hash");default:return f("pathname").slice(p.length)+
|
||||
f("search")+f("hash")}}function h(e,f,h){var k={},t={};e=g(e,k,t);if(null!=f){for(var m in f)k[m]=f[m];e=e.replace(/:([^\/]+)/g,function(c,e){delete k[e];return f[e]})}(m=J(k))&&(e+="?"+m);(t=J(t))&&(e+="#"+t);u?(h&&h.replace?c.history.replaceState(null,null,p+e):c.history.pushState(null,null,p+e),c.onpopstate()):c.location.href=p+e}var u="function"===typeof c.history.pushState,v="function"===typeof setImmediate?setImmediate:setTimeout,p="#!",e;return{setPrefix:function(c){p=c},getPath:k,setPath:h,
|
||||
defineRoutes:function(e,f,h){function l(){var c=k(),l={},p=g(c,l,l),m;for(m in e){var r=new RegExp("^"+m.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(r.test(p)){p.replace(r,function(){for(var g=m.match(/:[^\/]+/g)||[],h=[].slice.call(arguments,1,-2),k=0;k<g.length;k++)l[g[k].replace(/:|\./g,"")]=decodeURIComponent(h[k]);f(e[m],l,c,m)});return}}h(c,l)}u?c.onpopstate=r(l):"#"===p.charAt(0)&&(c.onhashchange=l);l();return l},link:function(c){c.dom.setAttribute("href",p+
|
||||
c.attrs.href);c.dom.onclick=function(c){c.ctrlKey||c.metaKey||c.shiftKey||2===c.which||(c.preventDefault(),c.redraw=!1,c=this.getAttribute("href"),0===c.indexOf(p)&&(c=c.slice(p.length)),h(c,void 0,void 0))}}}};v.route=function(c,f){function r(c){return c}var g=V(c),k,h,v,z,p,e={view:function(){return[v(u(h,null,z,void 0,void 0,void 0))]}},m=function(c,m,l){h="div";v=r;z=null;f(c,e);g.defineRoutes(l,function(e,f,g){var l="function"!==typeof e.view,m=r,t=k=function(r){t===k&&(k=null,h=null!=r?r:l?
|
||||
"div":e,v=m,z=f,p=g,c.redraw(!0))},u=function(){t()};l&&("function"===typeof e.render&&(m=e.render.bind(e)),"function"===typeof e.onmatch&&(u=e.onmatch));u.call(e,t,f,g)},function(){g.setPath(m,null,{replace:!0})})};m.link=g.link;m.prefix=g.setPrefix;m.set=g.setPath;m.get=function(){return p};return m}(window,v.mount);v.withAttr=function(c,f,r){return function(g){return f.call(r||this,c in g.currentTarget?g.currentTarget[c]:g.currentTarget.getAttribute(c))}};v.prop=P;v.render=Q.render;v.redraw=M.publish;
|
||||
v.request=L.request;v.jsonp=L.jsonp;v.parseQueryString=N;v.buildQueryString=J;v.version="1.0.0-rc.3";"undefined"!==typeof module?module.exports=v:window.m=v};
|
||||
function(c){for(var f=0;f<c.length;f++)c[f]=u.normalize(c[f]);return c};var R=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,K={};v.trust=function(c){null==c&&(c="");return u("<",void 0,void 0,c,void 0,void 0)};v.fragment=function(c,f){return u("[",c.key,c,u.normalizeChildren(f),void 0,void 0)};var P=function(c){function f(){function a(){0<arguments.length&&arguments[0]!==q&&g(a,arguments[0],void 0);return a._state.value}n(a);0<arguments.length&&arguments[0]!==q&&g(a,
|
||||
arguments[0],void 0);return a}function n(a){a.constructor=f;a._state={id:B++,value:void 0,error:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],errorStream:void 0,endStream:void 0};a["fantasy-land/map"]=u;a["fantasy-land/ap"]=v;a["fantasy-land/of"]=f;a.valueOf=H;a.toJSON=C;a.toString=H;a.run=w;a["catch"]=l;Object.defineProperties(a,{error:{get:function(){if(!a._state.errorStream){var b=function(){0<arguments.length&&arguments[0]!==q&&g(a,void 0,arguments[0]);return a._state.error};
|
||||
n(b);r(b,[a],y,y);a._state.errorStream=b}return a._state.errorStream}},end:{get:function(){if(!a._state.endStream){var b=f();b["fantasy-land/map"](function(d){!0===d&&(D(a),D(b));return d});a._state.endStream=b}return a._state.endStream}}})}function g(a,b,d){k(a,b,d);for(var m in a._state.deps)x(a._state.deps[m],!1);a._state.changed=!1;for(var e in a._state.deps)a._state.deps[e]._state.changed=!1}function k(a,b,d){d=t(b,d);if(void 0!==d&&"function"===typeof a._state.recover){if(!z(a,h,!0))return}else h(a,
|
||||
b,d);a._state.changed=!0;2!==a._state.state&&(a._state.state=1)}function h(a,b,d){a._state.value=b;a._state.error=d}function x(b,e){var m=b._state.parents;0<m.length&&m.filter(F).length===m.length&&(e||0<m.filter(a).length)&&(m=m.filter(d),0<m.length?k(b,void 0,m[0]._state.error):z(b,k,!1))}function z(a,b,d){try{var m=d?a._state.recover():a._state.derive();if(m===q)return!1;b(a,m,void 0)}catch(E){b(a,void 0,null!=E.__error?E.__error:E),null==E.__error&&e(a,E)}return!0}function t(a,b){null!=a&&a.constructor===
|
||||
f&&(b=void 0!==a._state.error?a._state.error:t(a._state.value,a._state.error));return b}function e(a,b){0===Object.keys(a._state.deps).length&&setTimeout(function(){0===Object.keys(a._state.deps).length&&c(b)},0)}function w(a){var b=f(),d=this;return r(b,[d],function(){return p(b,a(d()))},void 0)}function l(a){var b=f(),d=this;return r(b,[d],function(){return d._state.value},function(){return p(b,a(d._state.error))})}function A(b,e){if(e.length>e.filter(I).length)throw Error("Ensure that each item passed to m.prop.combine/m.prop.merge is a stream");
|
||||
return r(f(),e,function(){var m=e.filter(d);if(0<m.length)throw{__error:m[0]._state.error};return b.apply(this,e.concat([e.filter(a)]))},void 0)}function p(a,b){if(null!=b&&b.constructor===f){var d=b,e=function(){k(a,d._state.value,d._state.error);for(var b in a._state.deps)x(a._state.deps[b],!1)};d["fantasy-land/map"](e)["catch"](function(a){e();throw{__error:a};});if(0===d._state.state)return q;if(d._state.error)throw{__error:d._state.error};b=d._state.value}return b}function r(a,d,e,c){var m=a._state;
|
||||
m.derive=e;m.recover=c;m.parents=d.filter(b);G(a,m.parents);x(a,!0);return a}function G(a,b){for(var d=0;d<b.length;d++)b[d]._state.deps[a._state.id]=a,G(a,b[d]._state.parents)}function D(a){for(var b=0;b<a._state.parents.length;b++)delete a._state.parents[b]._state.deps[a._state.id];for(var d in a._state.deps){var b=a._state.deps[d],e=b._state.parents.indexOf(a);-1<e&&b._state.parents.splice(e,1)}a._state.state=2;a._state.deps={}}function u(a){return A(function(b){return a(b())},[this])}function v(a){return A(function(a,
|
||||
b){return a()(b())},[a,this])}function H(){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 I(a){return a._state}function F(a){return 1===a._state.state}function a(a){return a._state.changed}function b(a){return 2!==a._state.state}function d(a){return a._state.error}var B=0,y=function(){},q={};f["fantasy-land/of"]=f;f.merge=function(a){return A(function(){return a.map(function(a){return a()})},
|
||||
a)};f.combine=A;f.reject=function(a){var b=f();b.error(a);return b};f.HALT=q;return f}(console.log.bind(console)),J=function(c){function f(c,h){if(h instanceof Array)for(var g=0;g<h.length;g++)f(c+"["+g+"]",h[g]);else if("[object Object]"===Object.prototype.toString.call(h))for(g in h)f(c+"["+g+"]",h[g]);else n.push(encodeURIComponent(c)+(null!=h&&""!==h?"="+encodeURIComponent(h):""))}if("[object Object]"!==Object.prototype.toString.call(c))return"";var n=[],g;for(g in c)f(g,c[g]);return n.join("&")},
|
||||
L=function(c,f){function n(e,c){if(null==c)return e;for(var f=e.match(/:[^\/]+/gi)||[],g=0;g<f.length;g++){var w=f[g].slice(1);null!=c[w]&&(e=e.replace(f[g],c[w]),delete c[w])}return e}function g(e,c){var f=J(c);if(""!==f){var g=0>e.indexOf("?")?"?":"&";e+=g+f}return e}function k(e){try{return""!==e?JSON.parse(e):null}catch(w){throw Error(e);}}function h(e){return e.responseText}function x(e,c){if("function"===typeof e)if(c instanceof Array)for(var f=0;f<c.length;f++)c[f]=new e(c[f]);else return new e(c);
|
||||
return c}var z=0,t;return{request:function(e,w){if("string"===typeof e){var l=e;e="object"===typeof w?w:{};"undefined"===typeof e.url&&(e.url=l)}"undefined"===typeof e.method&&(e.method="GET");var A=f();void 0!==e.initialValue&&A(e.initialValue);e.method=e.method.toUpperCase();l="boolean"===typeof e.useBody?e.useBody:"GET"!==e.method&&"TRACE"!==e.method;"function"!==typeof e.serialize&&(e.serialize="undefined"!==typeof FormData&&e.data instanceof FormData?function(e){return e}:JSON.stringify);"function"!==
|
||||
typeof e.deserialize&&(e.deserialize=k);"function"!==typeof e.extract&&(e.extract=h);e.url=n(e.url,e.data);l?e.data=e.serialize(e.data):e.url=g(e.url,e.data);var p=new c.XMLHttpRequest;p.open(e.method,e.url,"boolean"===typeof e.async?e.async:!0,"string"===typeof e.user?e.user:void 0,"string"===typeof e.password?e.password:void 0);e.serialize===JSON.stringify&&l&&p.setRequestHeader("Content-Type","application/json; charset=utf-8");e.deserialize===k&&p.setRequestHeader("Accept","application/json, text/*");
|
||||
"function"===typeof e.config&&(p=e.config(p,e)||p);p.onreadystatechange=function(){if(4===p.readyState){try{var c=e.extract!==h?e.extract(p,e):e.deserialize(e.extract(p,e));if(200<=p.status&&300>p.status||304===p.status)A(x(e.type,c));else{var f=Error(p.responseText),g;for(g in c)f[g]=c[g];A.error(f)}}catch(S){A.error(S)}"function"===typeof t&&t()}};l&&null!=e.data?p.send(e.data):p.send();return A},jsonp:function(e){var h=f();void 0!==e.initialValue&&h(e.initialValue);var l=e.callbackName||"_mithril_"+
|
||||
Math.round(1E16*Math.random())+"_"+z++,k=c.document.createElement("script");c[l]=function(f){k.parentNode.removeChild(k);h(x(e.type,f));"function"===typeof t&&t();delete c[l]};k.onerror=function(){k.parentNode.removeChild(k);h.error(Error("JSONP request failed"));"function"===typeof t&&t();delete c[l]};null==e.data&&(e.data={});e.url=n(e.url,e.data);e.data[e.callbackKey||"callback"]=l;k.src=g(e.url,e.data);c.document.documentElement.appendChild(k);return h},setCompletionCallback:function(e){t=e}}}(window,
|
||||
P),M=function(){var c=[];return{subscribe:c.push.bind(c),unsubscribe:function(f){f=c.indexOf(f);-1<f&&c.splice(f,1)},publish:function(){for(var f=0;f<c.length;f++)c[f].apply(this,arguments)}}}();L.setCompletionCallback(M.publish);var Q=function(c){function f(a,b,d,e,c,f,g){for(;d<e;d++){var B=b[d];null!=B&&t(a,n(B,c,g),f)}}function n(a,b,d){var c=a.tag;null!=a.attrs&&v(a.attrs,a,b);if("string"===typeof c)switch(c){case "#":return a.dom=C.createTextNode(a.children);case "<":return g(a);case "[":var h=
|
||||
C.createDocumentFragment();null!=a.children&&(c=a.children,f(h,c,0,c.length,b,null,d));a.dom=h.firstChild;a.domSize=h.childNodes.length;return h;default:var q=a.tag;switch(a.tag){case "svg":d="http://www.w3.org/2000/svg";break;case "math":d="http://www.w3.org/1998/Math/MathML"}var m=(c=a.attrs)&&c.is,q=d?m?C.createElementNS(d,q,{is:m}):C.createElementNS(d,q):m?C.createElement(q,{is:m}):C.createElement(q);a.dom=q;if(null!=c)for(h in m=d,c)r(a,h,null,c[h],m);null!=a.attrs&&null!=a.attrs.contenteditable?
|
||||
e(a):(null!=a.text&&(""!==a.text?q.textContent=a.text:a.children=[u("#",void 0,void 0,a.text,void 0,void 0)]),null!=a.children&&(h=a.children,f(q,h,0,h.length,b,null,d),b=a.attrs,"select"===a.tag&&null!=b&&("value"in b&&r(a,"value",null,b.value,void 0),"selectedIndex"in b&&r(a,"selectedIndex",null,b.selectedIndex,void 0))));return q}else{a.state||(a.state={});H(a.state,a.tag);h=a.tag.view;if(null!=h.reentrantLock)a=I;else if(h.reentrantLock=!0,v(a.tag,a,b),a.instance=u.normalize(h.call(a.state,a)),
|
||||
h.reentrantLock=null,null!=a.instance){if(a.instance===a)throw Error("A view cannot return the vnode it received as arguments");b=n(a.instance,b,d);a.dom=a.instance.dom;a.domSize=null!=a.dom?a.instance.domSize:0;a=b}else a.domSize=0,a=I;return a}}function g(a){var b={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(a.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",b=C.createElement(b);b.innerHTML=a.children;a.dom=b.firstChild;a.domSize=
|
||||
b.childNodes.length;a=C.createDocumentFragment();for(var d;d=b.firstChild;)a.appendChild(d);return a}function k(a,b,d,c,e,g){if(b!==d&&(null!=b||null!=d))if(null==b)f(a,d,0,d.length,c,e,void 0);else if(null==d)w(b,0,b.length,d);else{var m;a:{if(null!=b.pool&&Math.abs(b.pool.length-d.length)<=Math.abs(b.length-d.length)&&(m=d[0]&&d[0].children&&d[0].children.length||0,Math.abs((b.pool[0]&&b.pool[0].children&&b.pool[0].children.length||0)-m)<=Math.abs((b[0]&&b[0].children&&b[0].children.length||0)-
|
||||
m))){m=!0;break a}m=!1}m&&(b=b.concat(b.pool));if(b.length===d.length&&null!=d[0]&&null==d[0].key)for(var q=0;q<b.length;q++)b[q]===d[q]||null==b[q]&&null==d[q]||(null==b[q]?t(a,n(d[q],c,g),z(b,q+1,e)):null==d[q]?w(b,q,q+1,d):h(a,b[q],d[q],c,z(b,q+1,e),m,g),m&&b[q].tag===d[q].tag&&t(a,x(b[q]),z(b,q+1,e)));else{for(var B=q=0,l=b.length-1,k=d.length-1,p;l>=q&&k>=B;){var r=b[q],y=d[B];if(r!==y||m)if(null!=r&&null!=y&&r.key===y.key)q++,B++,h(a,r,y,c,z(b,q,e),m,g),m&&r.tag===y.tag&&t(a,x(r),e);else if(r=
|
||||
b[l],r!==y||m)if(null!=r&&null!=y&&r.key===y.key)h(a,r,y,c,z(b,l+1,e),m,g),(m||B<k)&&t(a,x(r),z(b,q,e)),l--,B++;else break;else l--,B++;else q++,B++}for(;l>=q&&k>=B;){r=b[l];y=d[k];if(r!==y||m)if(null!=r&&null!=y&&r.key===y.key)h(a,r,y,c,z(b,l+1,e),m,g),m&&r.tag===y.tag&&t(a,x(r),e),null!=r.dom&&(e=r.dom),l--;else{if(!p){p=b;var r=l,u={},A;for(A=0;A<r;A++){var v=p[A];null!=v&&(v=v.key,null!=v&&(u[v]=A))}p=u}null!=y&&(r=p[y.key],null!=r?(u=b[r],h(a,u,y,c,z(b,l+1,e),m,g),t(a,x(u),e),b[r].skip=!0,null!=
|
||||
u.dom&&(e=u.dom)):(y=n(y,c,void 0),t(a,y,e),e=y))}else l--;k--;if(k<B)break}f(a,d,B,k+1,c,e,g);w(b,q,l+1,d)}}}function h(a,b,d,c,f,q,m){var l=b.tag;if(l===d.tag){d.state=b.state;d.events=b.events;var w;var B;null!=d.attrs&&"function"===typeof d.attrs.onbeforeupdate&&(w=d.attrs.onbeforeupdate.call(d.state,d,b));"string"!==typeof d.tag&&"function"===typeof d.tag.onbeforeupdate&&(B=d.tag.onbeforeupdate.call(d.state,d,b));void 0===w&&void 0===B||w||B?w=!1:(d.dom=b.dom,d.domSize=b.domSize,d.instance=b.instance,
|
||||
w=!0);if(!w)if(null!=d.attrs&&O(d.attrs,d,c,q),"string"===typeof l)switch(l){case "#":b.children.toString()!==d.children.toString()&&(b.dom.nodeValue=d.children);d.dom=b.dom;break;case "<":b.children!==d.children?(x(b),t(a,g(d),f)):(d.dom=b.dom,d.domSize=b.domSize);break;case "[":k(a,b.children,d.children,c,f,m);b=0;c=d.children;d.dom=null;if(null!=c){for(var p=0;p<c.length;p++)a=c[p],null!=a&&null!=a.dom&&(null==d.dom&&(d.dom=a.dom),b+=a.domSize||1);1!==b&&(d.domSize=b)}break;default:a=m;f=d.dom=
|
||||
b.dom;switch(d.tag){case "svg":a="http://www.w3.org/2000/svg";break;case "math":a="http://www.w3.org/1998/Math/MathML"}"textarea"===d.tag&&(null==d.attrs&&(d.attrs={}),null!=d.text&&(d.attrs.value=d.text,d.text=void 0));q=b.attrs;m=d.attrs;l=a;if(null!=m)for(p in m)r(d,p,q&&q[p],m[p],l);if(null!=q)for(p in q)null!=m&&p in m||("className"===p&&(p="class"),"o"!==p[0]||"n"!==p[1]||G(p)?"key"!==p&&d.dom.removeAttribute(p):D(d,p,void 0));null!=d.attrs&&null!=d.attrs.contenteditable?e(d):null!=b.text&&
|
||||
null!=d.text&&""!==d.text?b.text.toString()!==d.text.toString()&&(b.dom.firstChild.nodeValue=d.text):(null!=b.text&&(b.children=[u("#",void 0,void 0,b.text,void 0,b.dom.firstChild)]),null!=d.text&&(d.children=[u("#",void 0,void 0,d.text,void 0,void 0)]),k(f,b.children,d.children,c,null,a))}else d.instance=u.normalize(d.tag.view.call(d.state,d)),O(d.tag,d,c,q),null!=d.instance?(null==b.instance?t(a,n(d.instance,c,m),f):h(a,b.instance,d.instance,c,f,q,m),d.dom=d.instance.dom,d.domSize=d.instance.domSize):
|
||||
null!=b.instance?(A(b.instance,null),d.dom=void 0,d.domSize=0):(d.dom=b.dom,d.domSize=b.domSize)}else A(b,null),t(a,n(d,c,void 0),f)}function x(a){var b=a.domSize;if(null!=b||null==a.dom){var d=C.createDocumentFragment();if(0<b){for(a=a.dom;--b;)d.appendChild(a.nextSibling);d.insertBefore(a,d.firstChild)}return d}return a.dom}function z(a,b,d){for(;b<a.length;b++)if(null!=a[b]&&null!=a[b].dom)return a[b].dom;return d}function t(a,b,d){d&&d.parentNode?a.insertBefore(b,d):a.appendChild(b)}function e(a){var b=
|
||||
a.children;if(null!=b&&1===b.length&&"<"===b[0].tag)b=b[0].children,a.dom.innerHTML!==b&&(a.dom.innerHTML=b);else if(null!=b||null!=a.text)throw Error("Child node of a contenteditable must be trusted");}function w(a,b,d,c){for(;b<d;b++){var e=a[b];null!=e&&(e.skip?e.skip=!1:A(e,c))}}function l(a){var b=!1;return function(){b||(b=!0,a())}}function A(a,b){function d(){if(++e===c&&(p(a),a.dom)){var d=a.domSize||1;if(1<d)for(var f=a.dom;--d;){var g=f.nextSibling,h=g.parentNode;null!=h&&h.removeChild(g)}d=
|
||||
a.dom;f=d.parentNode;null!=f&&f.removeChild(d);if(d=null!=b&&null==a.domSize)d=a.attrs,d=!(null!=d&&(d.oncreate||d.onupdate||d.onbeforeremove||d.onremove));d&&"string"===typeof a.tag&&(b.pool?b.pool.push(a):b.pool=[a])}}var c=1,e=0;a.attrs&&a.attrs.onbeforeremove&&(c++,a.attrs.onbeforeremove.call(a.state,a,l(d)));"string"!==typeof a.tag&&a.tag.onbeforeremove&&(c++,a.tag.onbeforeremove.call(a.state,a,l(d)));d()}function p(a){a.attrs&&a.attrs.onremove&&a.attrs.onremove.call(a.state,a);"string"!==typeof a.tag&&
|
||||
a.tag.onremove&&a.tag.onremove.call(a.state,a);if(null!=a.instance)p(a.instance);else if(a=a.children,a instanceof Array)for(var b=0;b<a.length;b++){var d=a[b];null!=d&&p(d)}}function r(a,b,d,c,e){var f=a.dom;if("key"!==b&&(d!==c||"value"===b||"checked"===b||"selectedIndex"===b||"selected"===b&&a.dom===C.activeElement||"object"===typeof c)&&"undefined"!==typeof c&&!G(b)){var g=b.indexOf(":");if(-1<g&&"xlink"===b.substr(0,g))f.setAttributeNS("http://www.w3.org/1999/xlink",b.slice(g+1),c);else if("o"===
|
||||
b[0]&&"n"===b[1]&&"function"===typeof c)D(a,b,c);else if("style"===b)if(a=d,a===c&&(f.style.cssText="",a=null),null==c)f.style.cssText="";else if("string"===typeof c)f.style.cssText=c;else{"string"===typeof a&&(f.style.cssText="");for(var h in c)f.style[h]=c[h];if(null!=a&&"string"!==typeof a)for(h in a)h in c||(f.style[h]="")}else if(b in f&&"href"!==b&&"list"!==b&&"form"!==b&&"width"!==b&&"height"!==b&&void 0===e){if("input"!==a.tag||"value"!==b||a.dom.value!==c||a.dom!==C.activeElement)f[b]=c}else"boolean"===
|
||||
typeof c?c?f.setAttribute(b,""):f.removeAttribute(b):f.setAttribute("className"===b?"class":b,c)}}function G(a){return"oninit"===a||"oncreate"===a||"onupdate"===a||"onremove"===a||"onbeforeremove"===a||"onbeforeupdate"===a}function D(a,b,d){var c=a.dom,e=function(a){var b=d.call(c,a);"function"===typeof F&&F.call(c,a);return b};if(b in c)c[b]="function"===typeof d?e:null;else{var f=b.slice(2);void 0===a.events&&(a.events={});null!=a.events[b]&&c.removeEventListener(f,a.events[b],!1);"function"===
|
||||
typeof d&&(a.events[b]=e,c.addEventListener(f,a.events[b],!1))}}function v(a,b,d){"function"===typeof a.oninit&&a.oninit.call(b.state,b);"function"===typeof a.oncreate&&d.push(a.oncreate.bind(b.state,b))}function O(a,b,d,c){c?v(a,b,d):"function"===typeof a.onupdate&&d.push(a.onupdate.bind(b.state,b))}function H(a,b){Object.keys(b).forEach(function(d){a[d]=b[d]})}var C=c.document,I=C.createDocumentFragment(),F;return{render:function(a,b){if(!a)throw Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");
|
||||
var d=[],c=C.activeElement;null==a.vnodes&&(a.textContent="");b instanceof Array||(b=[b]);k(a,a.vnodes,u.normalizeChildren(b),d,null,void 0);a.vnodes=b;for(var e=0;e<d.length;e++)d[e]();C.activeElement!==c&&c.focus()},setEventCallback:function(a){return F=a}}}(window),T=function(c){var f=0,n=null,g="function"===typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(k){var h=Date.now();!0===k||0===f||16<=h-f?(f=h,c()):null===n&&(n=g(function(){n=null;c();f=Date.now()},16-(h-
|
||||
f)))}},U=function(c,f,n,g){g=T(g);null!=f&&f.setEventCallback(function(c){!1!==c.redraw&&n.publish()});null!=n&&(c.redraw&&n.unsubscribe(c.redraw),n.subscribe(g));return c.redraw=g};v.mount=function(c,f){return function(n,g){if(null===g)c.render(n,[]),f.unsubscribe(n.redraw),delete n.redraw;else{if(null==g.view)throw Error("m.mount(element, component) expects a component, not a vnode");U(n,c,f,function(){c.render(n,u(g,void 0,void 0,void 0,void 0,void 0))})()}}}(Q,M);var N=function(c){if(""===c||
|
||||
null==c)return{};"?"===c.charAt(0)&&(c=c.slice(1));c=c.split("&");for(var f={},n={},g=0;g<c.length;g++){var k=c[g].split("="),h=decodeURIComponent(k[0]),k=2===k.length?decodeURIComponent(k[1]):"";"true"===k?k=!0:"false"===k&&(k=!1);var x=h.split(/\]\[?|\[/),u=f;-1<h.indexOf("[")&&x.pop();for(var t=0;t<x.length;t++){var h=x[t],e=x[t+1],e=""==e||!isNaN(parseInt(e,10)),w=t===x.length-1;""===h&&(h=x.slice(0,t).join(),null==n[h]&&(n[h]=0),h=n[h]++);null==u[h]&&(u[h]=w?k:e?[]:{});u=u[h]}}return f},V=function(c){function f(e){var f=
|
||||
c.location[e].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);"pathname"===e&&"/"!==f[0]&&(f="/"+f);return f}function n(c){return function(){null==e&&(e=v(function(){e=null;c()}))}}function g(c,e,f){var g=c.indexOf("?"),h=c.indexOf("#"),l=-1<g?g:-1<h?h:c.length;if(-1<g){var g=N(c.slice(g+1,-1<h?h:c.length)),k;for(k in g)e[k]=g[k]}if(-1<h)for(k in e=N(c.slice(h+1)),e)f[k]=e[k];return c.slice(0,l)}function k(){switch(t.charAt(0)){case "#":return f("hash").slice(t.length);case "?":return f("search").slice(t.length)+
|
||||
f("hash");default:return f("pathname").slice(t.length)+f("search")+f("hash")}}function h(e,f,h){var k={},r={};e=g(e,k,r);if(null!=f){for(var l in f)k[l]=f[l];e=e.replace(/:([^\/]+)/g,function(c,e){delete k[e];return f[e]})}(l=J(k))&&(e+="?"+l);(r=J(r))&&(e+="#"+r);u?(h&&h.replace?c.history.replaceState(null,null,t+e):c.history.pushState(null,null,t+e),c.onpopstate()):c.location.href=t+e}var u="function"===typeof c.history.pushState,v="function"===typeof setImmediate?setImmediate:setTimeout,t="#!",
|
||||
e;return{setPrefix:function(c){t=c},getPath:k,setPath:h,defineRoutes:function(e,f,h){function l(){var c=k(),l={},p=g(c,l,l),n;for(n in e){var t=new RegExp("^"+n.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(t.test(p)){p.replace(t,function(){for(var g=n.match(/:[^\/]+/g)||[],h=[].slice.call(arguments,1,-2),k=0;k<g.length;k++)l[g[k].replace(/:|\./g,"")]=decodeURIComponent(h[k]);f(e[n],l,c,n)});return}}h(c,l)}u?c.onpopstate=n(l):"#"===t.charAt(0)&&(c.onhashchange=l);l();
|
||||
return l},link:function(c){c.dom.setAttribute("href",t+c.attrs.href);c.dom.onclick=function(c){c.ctrlKey||c.metaKey||c.shiftKey||2===c.which||(c.preventDefault(),c.redraw=!1,c=this.getAttribute("href"),0===c.indexOf(t)&&(c=c.slice(t.length)),h(c,void 0,void 0))}}}};v.route=function(c,f){function n(c){return c}var g=V(c),k,h,v,z,t,e={view:function(){return[v(u(h,null,z,void 0,void 0,void 0))]}},w=function(c,u,p){h="div";v=n;z=null;f(c,e);g.defineRoutes(p,function(e,f,g){var l="function"!==typeof e.view,
|
||||
p=n,r=k=function(n){r===k&&(k=null,h=null!=n?n:l?"div":e,v=p,z=f,t=g,c.redraw(!0))},u=function(){r()};l&&("function"===typeof e.render&&(p=e.render.bind(e)),"function"===typeof e.onmatch&&(u=e.onmatch));u.call(e,r,f,g)},function(){g.setPath(u,null,{replace:!0})})};w.link=g.link;w.prefix=g.setPrefix;w.set=g.setPath;w.get=function(){return t};return w}(window,v.mount);v.withAttr=function(c,f,n){return function(g){return f.call(n||this,c in g.currentTarget?g.currentTarget[c]:g.currentTarget.getAttribute(c))}};
|
||||
v.prop=P;v.render=Q.render;v.redraw=M.publish;v.request=L.request;v.jsonp=L.jsonp;v.parseQueryString=N;v.buildQueryString=J;v.version="1.0.0-rc.3";"undefined"!==typeof module?module.exports=v:window.m=v};
|
||||
Loading…
Add table
Add a link
Reference in a new issue