made with requirebin
Created
August 31, 2014 12:15
-
-
Save KidkArolis/192ac7df420d8c92fd30 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// example using the raf module from npm. try changing some values! | |
var requestAnimationFrame = require("cherrytree"); | |
var requestAnimationFrame = require("cherrytree/location/history_location"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],2:[function(require,module,exports){(function(define){"use strict";define(function(require){var _=require("./util");function DSL(parent){this.parent=parent;this.matches=[];this.resolvers={}}DSL.prototype={resource:function(name,options,callback){if(arguments.length===2&&typeof options==="function"){callback=options;options={}}if(arguments.length===1){options={}}if(typeof options.path!=="string"){options.path="/"+name}if(options.resolver){this.addResolver(name,options.resolver)}if(callback){var dsl=new DSL(name);callback.call(dsl);this.push(options.path,name,dsl.generate(),options.queryParams);_.extend(this.resolvers,dsl.resolvers)}else{this.push(options.path,name,null,options.queryParams)}},route:function(name,options){options=options||{};if(typeof options.path!=="string"){options.path="/"+name}if(this.parent&&this.parent!=="application"){name=this.parent+"."+name}if(options.resolver){this.addResolver(name,options.resolver)}this.push(options.path,name,null,options.queryParams)},push:function(url,name,callback,queryParams){var parts=name.split(".");if(url===""||url==="/"||parts[parts.length-1]==="index"){this.explicitIndex=true}this.matches.push([url,name,callback,queryParams])},addResolver:function(name,fn){this.resolvers[name]=fn},generate:function(){var dslMatches=this.matches;if(!this.explicitIndex){this.route("index",{path:"/"})}return function(match){for(var i=0,l=dslMatches.length;i<l;i++){var dslMatch=dslMatches[i];match(dslMatch[0]).to(dslMatch[1],dslMatch[2])}}}};DSL.map=function(callback){var dsl=new DSL;callback.call(dsl);return dsl};return DSL})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"./util":6}],3:[function(require,module,exports){(function(define){"use strict";define(function(require){var _=require("./util");var Promise=require("../vendor/promise");var makeRouteCreator=require("./route_creator");var debug=false;var log=function(){if(debug){console.log.apply(console,arguments)}};function proxy(method){return function(){log("cherrytree:",this.route.name+"#"+method);return this.route[method].apply(this.route,arguments)}}function proxyEvent(event){return function(){if(this.route&&this.route[event]){log("cherrytree:",this.route.name+"#"+event);return this.route[event].apply(this.route,arguments)}else{return true}}}function createHandler(router,createRoute,name){return{serialize:function(){return this.params},beforeModel:function(transition){var handler=this;return Promise.resolve(handler.route||createRoute(name)).then(function(route){handler.route=route;route.needsReactivation=false;route.refresh=function(){router.router.refresh(handler)};if(name!=="application"&&name!=="loading"){var parentHandler=transition.state.handlerInfos[0];for(var i=1,len=transition.state.handlerInfos.length;i<len;i++){if(transition.state.handlerInfos[i].name===name){break}parentHandler=transition.state.handlerInfos[i]}handler.route.setParent(parentHandler.handler.route)}route.setContext({});log("cherrytree:",handler.route.name+"#"+"beforeModel");return handler.route.beforeModel.apply(handler.route,arguments)})},model:function(params){params=params||{};this.params=JSON.parse(JSON.stringify(params||{}));this.route.needsReactivation=true;log("cherrytree:",this.route.name+"#"+"model");var route=this.route;return Promise.resolve(this.route.model.apply(this.route,arguments)).then(function(){return route.getContext()})},afterModel:proxy("afterModel"),enter:proxy("enter"),setup:proxy("setup"),exit:proxy("exit"),events:{willTransition:proxyEvent("willTransition"),error:proxyEvent("error"),queryParamsDidChange:proxyEvent("queryParamsDidChange"),finalizeQueryParamChange:function(params,finalParams,transition){_.each(params,function(val,key){finalParams.push({value:val,visible:!!val,key:key})});return true}},refresh:function(){router.router.refresh(this)}}}return function getHandler(router){var seen={};var createRoute=makeRouteCreator(router);if(!router.routes["loading"]){seen.loading={}}else{seen.loading=createHandler(router,createRoute,"loading");seen.loading.beforeModel()}return function(name){if(!seen[name]){seen[name]=createHandler(router,createRoute,name)}return seen[name]}}})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"../vendor/promise":9,"./route_creator":5,"./util":6}],4:[function(require,module,exports){(function(define){"use strict";define(function(require){var _=require("./util");var Ctor=function(){};var inherits=function(parent,protoProps,staticProps){var child;if(protoProps&&protoProps.hasOwnProperty("constructor")){child=protoProps.constructor}else{child=function(){return parent.apply(this,arguments)}}_.extend(child,parent);Ctor.prototype=parent.prototype;child.prototype=new Ctor;if(protoProps){_.extend(child.prototype,protoProps)}if(staticProps){_.extend(child,staticProps)}child.prototype.constructor=child;child.__super__=parent.prototype;return child};return function(protoProps,classProps){var child=inherits(this,protoProps,classProps);child.extend=this.extend;return child}})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"./util":6}],5:[function(require,module,exports){(function(define){"use strict";define(function(require){var Promise=require("../vendor/promise");return function routeCreator(router){var cache={};function createRoute(name){var Route=cache[name]||router.options.BaseRoute;return new Route({name:name,router:router})}function resolveRoute(name,cb){return getRouteResolver(name)(name,cb)}function getRouteResolver(name){var routeName,i,l;var branches=router.getBranchNames(name);for(i=branches.length-1,l=0;i>=l;i--){routeName=branches[i];if(router.resolvers[routeName]){return router.resolvers[routeName]}}}function promise(value){return new Promise(function(resolve){resolve(value)})}return function getRoute(name){if(cache[name]&&cache[name].then){return cache[name].then(function(name){return createRoute(name)})}if(cache[name]){return promise(createRoute(name))}cache[name]=new Promise(function(resolve,reject){resolveRoute(name,function(route){cache[name]=route;resolve(createRoute(name))},reject)});return cache[name]}}})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"../vendor/promise":9}],6:[function(require,module,exports){(function(define){"use strict";define(function(){var _={};var breaker={};var ArrayProto=Array.prototype;var slice=ArrayProto.slice;var nativeMap=ArrayProto.map;var nativeForEach=ArrayProto.forEach;var nativeKeys=Object.keys;_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys.push(key);return keys};var each=_.each=function(obj,iterator,context){if(obj===null)return;var i,length;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(i=0,length=obj.length;i<length;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{var keys=_.keys(obj);for(i=0,length=keys.length;i<length;i++){if(iterator.call(context,obj[keys[i]],keys[i],obj)===breaker)return}}};_.map=function(obj,iterator,context){var results=[];if(obj===null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results.push(iterator.call(context,value,index,list))});return results};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};var idCounter=0;_.uniqueId=function uniqueId(prefix){var id=++idCounter+"";return prefix?prefix+id:id};return _})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{}],7:[function(require,module,exports){(function(define){"use strict";define(function(){return function(){return{path:"",getURL:function(){return this.path},setURL:function(path){this.path=path},replaceURL:function(path){this.setURL(path)},onChange:function(callback){this.changeCallback=callback},handleURL:function(url){this.path=url;if(this.changeCallback){this.changeCallback(url)}},formatURL:function(url){return url}}}})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{}],8:[function(require,module,exports){(function(define){"use strict";define(function(require){var _=require("./lib/util");var inherit=require("./lib/inherit");var noop=function(){};var Route=function(options){this.name=options.name;this.router=options.router;this.id=_.uniqueId();this._context={};this.initialize()};_.extend(Route.prototype,{initialize:noop,beforeModel:noop,model:noop,afterModel:noop,activate:noop,update:function(){return false},deactivate:noop,enter:function(){this._setup=0;this.needsReactivation=false},exit:function(){this.deactivate.apply(this,arguments)},setup:function(){this._setup+=1;var route=this;var args=arguments;function activate(){route.activate.apply(route,args)}function reactivate(){route.exit();route.activate.apply(route,args)}function shouldTryUpdate(){return route.parent&&!route.parent.needsReactivation}if(this._setup===1){return activate()}if(shouldTryUpdate()&&this.update&&this.update.apply(this,args)!==false){route.needsReactivation=false;return}reactivate()},setParent:function(parent){this.parent=parent},getContext:function(){return this._context},setContext:function(context){this._context=context;return this},get:function(field){var context;var route=this;while(route){context=route.getContext();if(context&&context[field]){return context[field]}else{route=route.parent}}},transitionTo:function(){var router=this.router;return router.transitionTo.apply(router,arguments)},replaceWith:function(){var router=this.router;return router.replaceWith.apply(router,arguments)}});Route.extend=inherit;return Route})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"./lib/inherit":4,"./lib/util":6}],9:[function(require,module,exports){(function(process){(function(define){"use strict";var notwindow={};(function(global){var define,requireModule,require,requirejs;(function(){var registry={},seen={};define=function(name,deps,callback){registry[name]={deps:deps,callback:callback}};requirejs=require=requireModule=function(name){requirejs._eak_seen=registry;if(seen[name]){return seen[name]}seen[name]={};if(!registry[name]){throw new Error("Could not find module "+name)}var mod=registry[name],deps=mod.deps,callback=mod.callback,reified=[],exports;for(var i=0,l=deps.length;i<l;i++){if(deps[i]==="exports"){reified.push(exports={})}else{reified.push(requireModule(resolve(deps[i])))}}var value=callback.apply(this,reified);return seen[name]=exports||value;function resolve(child){if(child.charAt(0)!=="."){return child}var parts=child.split("/");var parentBase=name.split("/").slice(0,-1);for(var i=0,l=parts.length;i<l;i++){var part=parts[i];if(part===".."){parentBase.pop()}else if(part==="."){continue}else{parentBase.push(part)}}return parentBase.join("/")}}})();define("rsvp/all",["./promise","exports"],function(__dependency1__,__exports__){"use strict";var Promise=__dependency1__["default"];__exports__["default"]=function all(array,label){return Promise.all(array,label)}});define("rsvp/all_settled",["./promise","./utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Promise=__dependency1__["default"];var isArray=__dependency2__.isArray;var isNonThenable=__dependency2__.isNonThenable;__exports__["default"]=function allSettled(entries,label){return new Promise(function(resolve,reject){if(!isArray(entries)){throw new TypeError("You must pass an array to allSettled.")}var remaining=entries.length;var entry;if(remaining===0){resolve([]);return}var results=new Array(remaining);function fulfilledResolver(index){return function(value){resolveAll(index,fulfilled(value))}}function rejectedResolver(index){return function(reason){resolveAll(index,rejected(reason))}}function resolveAll(index,value){results[index]=value;if(--remaining===0){resolve(results)}}for(var index=0;index<entries.length;index++){entry=entries[index];if(isNonThenable(entry)){resolveAll(index,fulfilled(entry))}else{Promise.cast(entry).then(fulfilledResolver(index),rejectedResolver(index))}}},label)};function fulfilled(value){return{state:"fulfilled",value:value}}function rejected(reason){return{state:"rejected",reason:reason}}});define("rsvp/asap",["exports"],function(__exports__){"use strict";__exports__["default"]=function asap(callback,arg){var length=queue.push([callback,arg]);if(length===1){scheduleFlush()}};var browserGlobal=typeof window!=="undefined"?window:{};var BrowserMutationObserver=browserGlobal.MutationObserver||browserGlobal.WebKitMutationObserver;function useNextTick(){return function(){process.nextTick(flush)}}function useMutationObserver(){var iterations=0;var observer=new BrowserMutationObserver(flush);var node=document.createTextNode("");observer.observe(node,{characterData:true});return function(){node.data=iterations=++iterations%2}}function useSetTimeout(){return function(){setTimeout(flush,1)}}var queue=[];function flush(){for(var i=0;i<queue.length;i++){var tuple=queue[i];var callback=tuple[0],arg=tuple[1];callback(arg)}queue=[]}var scheduleFlush;if(typeof process!=="undefined"&&{}.toString.call(process)==="[object process]"){scheduleFlush=useNextTick()}else if(BrowserMutationObserver){scheduleFlush=useMutationObserver()}else{scheduleFlush=useSetTimeout()}});define("rsvp/config",["./events","exports"],function(__dependency1__,__exports__){"use strict";var EventTarget=__dependency1__["default"];var config={instrument:false};EventTarget.mixin(config);function configure(name,value){if(name==="onerror"){config.on("error",value);return}if(arguments.length===2){config[name]=value}else{return config[name]}}__exports__.config=config;__exports__.configure=configure});define("rsvp/defer",["./promise","exports"],function(__dependency1__,__exports__){"use strict";var Promise=__dependency1__["default"];__exports__["default"]=function defer(label){var deferred={};deferred.promise=new Promise(function(resolve,reject){deferred.resolve=resolve;deferred.reject=reject},label);return deferred}});define("rsvp/events",["exports"],function(__exports__){"use strict";var indexOf=function(callbacks,callback){for(var i=0,l=callbacks.length;i<l;i++){if(callbacks[i]===callback){return i}}return-1};var callbacksFor=function(object){var callbacks=object._promiseCallbacks;if(!callbacks){callbacks=object._promiseCallbacks={}}return callbacks};__exports__["default"]={mixin:function(object){object.on=this.on;object.off=this.off;object.trigger=this.trigger;object._promiseCallbacks=undefined;return object},on:function(eventName,callback){var allCallbacks=callbacksFor(this),callbacks;callbacks=allCallbacks[eventName];if(!callbacks){callbacks=allCallbacks[eventName]=[]}if(indexOf(callbacks,callback)===-1){callbacks.push(callback)}},off:function(eventName,callback){var allCallbacks=callbacksFor(this),callbacks,index;if(!callback){allCallbacks[eventName]=[];return}callbacks=allCallbacks[eventName];index=indexOf(callbacks,callback);if(index!==-1){callbacks.splice(index,1)}},trigger:function(eventName,options){var allCallbacks=callbacksFor(this),callbacks,callbackTuple,callback,binding;if(callbacks=allCallbacks[eventName]){for(var i=0;i<callbacks.length;i++){callback=callbacks[i];callback(options)}}}}});define("rsvp/filter",["./all","./map","./utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var all=__dependency1__["default"];var map=__dependency2__["default"];var isFunction=__dependency3__.isFunction;var isArray=__dependency3__.isArray;function filter(promises,filterFn,label){if(!isArray(promises)){throw new TypeError("You must pass an array to filter.")}if(!isFunction(filterFn)){throw new TypeError("You must pass a function to filter's second argument.")}return all(promises,label).then(function(values){return map(promises,filterFn,label).then(function(filterResults){var i,valuesLen=values.length,filtered=[];for(i=0;i<valuesLen;i++){if(filterResults[i])filtered.push(values[i])}return filtered})})}__exports__["default"]=filter});define("rsvp/hash",["./promise","./utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var Promise=__dependency1__["default"];var isNonThenable=__dependency2__.isNonThenable;var keysOf=__dependency2__.keysOf;__exports__["default"]=function hash(object,label){return new Promise(function(resolve,reject){var results={};var keys=keysOf(object);var remaining=keys.length;var entry,property;if(remaining===0){resolve(results);return}function fulfilledTo(property){return function(value){results[property]=value;if(--remaining===0){resolve(results)}}}function onRejection(reason){remaining=0;reject(reason)}for(var i=0;i<keys.length;i++){property=keys[i];entry=object[property];if(isNonThenable(entry)){results[property]=entry;if(--remaining===0){resolve(results)}}else{Promise.cast(entry).then(fulfilledTo(property),onRejection)}}})}});define("rsvp/instrument",["./config","./utils","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var config=__dependency1__.config;var now=__dependency2__.now;__exports__["default"]=function instrument(eventName,promise,child){try{config.trigger(eventName,{guid:promise._guidKey+promise._id,eventName:eventName,detail:promise._detail,childGuid:child&&promise._guidKey+child._id,label:promise._label,timeStamp:now(),stack:new Error(promise._label).stack})}catch(error){setTimeout(function(){throw error},0)}}});define("rsvp/map",["./promise","./all","./utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Promise=__dependency1__["default"];var all=__dependency2__["default"];var isArray=__dependency3__.isArray;var isFunction=__dependency3__.isFunction;__exports__["default"]=function map(promises,mapFn,label){if(!isArray(promises)){throw new TypeError("You must pass an array to map.")}if(!isFunction(mapFn)){throw new TypeError("You must pass a function to map's second argument.")}return all(promises,label).then(function(results){var resultLen=results.length,mappedResults=[],i;for(i=0;i<resultLen;i++){mappedResults.push(mapFn(results[i]))}return all(mappedResults,label)})}});define("rsvp/node",["./promise","exports"],function(__dependency1__,__exports__){"use strict";var Promise=__dependency1__["default"];var slice=Array.prototype.slice;function makeNodeCallbackFor(resolve,reject){return function(error,value){if(error){reject(error)}else if(arguments.length>2){resolve(slice.call(arguments,1))}else{resolve(value)}}}__exports__["default"]=function denodeify(nodeFunc,binding){return function(){var nodeArgs=slice.call(arguments),resolve,reject;var thisArg=this||binding;return new Promise(function(resolve,reject){Promise.all(nodeArgs).then(function(nodeArgs){try{nodeArgs.push(makeNodeCallbackFor(resolve,reject));nodeFunc.apply(thisArg,nodeArgs)}catch(e){reject(e)}})})}}});define("rsvp/promise",["./config","./events","./instrument","./utils","./promise/cast","./promise/all","./promise/race","./promise/resolve","./promise/reject","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__exports__){"use strict";var config=__dependency1__.config;var EventTarget=__dependency2__["default"];var instrument=__dependency3__["default"];var objectOrFunction=__dependency4__.objectOrFunction;var isFunction=__dependency4__.isFunction;var now=__dependency4__.now;var cast=__dependency5__["default"];var all=__dependency6__["default"];var race=__dependency7__["default"];var Resolve=__dependency8__["default"];var Reject=__dependency9__["default"];var guidKey="rsvp_"+now()+"-";var counter=0;function noop(){}__exports__["default"]=Promise;function Promise(resolver,label){if(!isFunction(resolver)){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}if(!(this instanceof Promise)){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}this._id=counter++;this._label=label;this._subscribers=[];if(config.instrument){instrument("created",this)}if(noop!==resolver){invokeResolver(resolver,this)}}function invokeResolver(resolver,promise){function resolvePromise(value){resolve(promise,value)}function rejectPromise(reason){reject(promise,reason)}try{resolver(resolvePromise,rejectPromise)}catch(e){rejectPromise(e)}}Promise.cast=cast;Promise.all=all;Promise.race=race;Promise.resolve=Resolve;Promise.reject=Reject;var PENDING=void 0;var SEALED=0;var FULFILLED=1;var REJECTED=2;function subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers;var length=subscribers.length;subscribers[length]=child;subscribers[length+FULFILLED]=onFulfillment;subscribers[length+REJECTED]=onRejection}function publish(promise,settled){var child,callback,subscribers=promise._subscribers,detail=promise._detail;if(config.instrument){instrument(settled===FULFILLED?"fulfilled":"rejected",promise)}for(var i=0;i<subscribers.length;i+=3){child=subscribers[i];callback=subscribers[i+settled];invokeCallback(settled,child,callback,detail)}promise._subscribers=null}Promise.prototype={constructor:Promise,_id:undefined,_guidKey:guidKey,_label:undefined,_state:undefined,_detail:undefined,_subscribers:undefined,_onerror:function(reason){config.trigger("error",reason)},then:function(onFulfillment,onRejection,label){var promise=this;this._onerror=null;var thenPromise=new this.constructor(noop,label);if(this._state){var callbacks=arguments;config.async(function invokePromiseCallback(){invokeCallback(promise._state,thenPromise,callbacks[promise._state-1],promise._detail)})}else{subscribe(this,thenPromise,onFulfillment,onRejection)}if(config.instrument){instrument("chained",promise,thenPromise)}return thenPromise},"catch":function(onRejection,label){return this.then(null,onRejection,label)},"finally":function(callback,label){var constructor=this.constructor;return this.then(function(value){return constructor.cast(callback()).then(function(){return value})},function(reason){return constructor.cast(callback()).then(function(){throw reason})},label)}};function invokeCallback(settled,promise,callback,detail){var hasCallback=isFunction(callback),value,error,succeeded,failed;if(hasCallback){try{value=callback(detail);succeeded=true}catch(e){failed=true;error=e}}else{value=detail;succeeded=true}if(handleThenable(promise,value)){return}else if(hasCallback&&succeeded){resolve(promise,value)}else if(failed){reject(promise,error)}else if(settled===FULFILLED){resolve(promise,value)}else if(settled===REJECTED){reject(promise,value)}}function handleThenable(promise,value){var then=null,resolved;try{if(promise===value){throw new TypeError("A promises callback cannot return that same promise.")}if(objectOrFunction(value)){then=value.then;if(isFunction(then)){then.call(value,function(val){if(resolved){return true}resolved=true;if(value!==val){resolve(promise,val)}else{fulfill(promise,val)}},function(val){if(resolved){return true}resolved=true;reject(promise,val)},"derived from: "+(promise._label||" unknown promise"));return true}}}catch(error){if(resolved){return true}reject(promise,error);return true}return false}function resolve(promise,value){if(promise===value){fulfill(promise,value)}else if(!handleThenable(promise,value)){fulfill(promise,value)}}function fulfill(promise,value){if(promise._state!==PENDING){return}promise._state=SEALED;promise._detail=value;config.async(publishFulfillment,promise)}function reject(promise,reason){if(promise._state!==PENDING){return}promise._state=SEALED;promise._detail=reason;config.async(publishRejection,promise)}function publishFulfillment(promise){publish(promise,promise._state=FULFILLED)}function publishRejection(promise){if(promise._onerror){promise._onerror(promise._detail)}publish(promise,promise._state=REJECTED)}});define("rsvp/promise/all",["../utils","exports"],function(__dependency1__,__exports__){"use strict";var isArray=__dependency1__.isArray;var isNonThenable=__dependency1__.isNonThenable;__exports__["default"]=function all(entries,label){var Constructor=this;return new Constructor(function(resolve,reject){if(!isArray(entries)){throw new TypeError("You must pass an array to all.")}var remaining=entries.length;var results=new Array(remaining);var entry,pending=true;if(remaining===0){resolve(results);return}function fulfillmentAt(index){return function(value){results[index]=value;if(--remaining===0){resolve(results)}}}function onRejection(reason){remaining=0;reject(reason)}for(var index=0;index<entries.length;index++){entry=entries[index];if(isNonThenable(entry)){results[index]=entry;if(--remaining===0){resolve(results)}}else{Constructor.cast(entry).then(fulfillmentAt(index),onRejection)}}},label)}});define("rsvp/promise/cast",["exports"],function(__exports__){"use strict";__exports__["default"]=function cast(object,label){var Constructor=this;if(object&&typeof object==="object"&&object.constructor===Constructor){return object}return new Constructor(function(resolve){resolve(object)},label)}});define("rsvp/promise/race",["../utils","exports"],function(__dependency1__,__exports__){"use strict";var isArray=__dependency1__.isArray;var isFunction=__dependency1__.isFunction;var isNonThenable=__dependency1__.isNonThenable;__exports__["default"]=function race(entries,label){var Constructor=this,entry;return new Constructor(function(resolve,reject){if(!isArray(entries)){throw new TypeError("You must pass an array to race.")}var pending=true;function onFulfillment(value){if(pending){pending=false;resolve(value)}}function onRejection(reason){if(pending){pending=false;reject(reason)}}for(var i=0;i<entries.length;i++){entry=entries[i];if(isNonThenable(entry)){pending=false;resolve(entry);return}else{Constructor.cast(entry).then(onFulfillment,onRejection)}}},label)}});define("rsvp/promise/reject",["exports"],function(__exports__){"use strict";__exports__["default"]=function reject(reason,label){var Constructor=this;return new Constructor(function(resolve,reject){reject(reason)},label)}});define("rsvp/promise/resolve",["exports"],function(__exports__){"use strict";__exports__["default"]=function resolve(value,label){var Constructor=this;return new Constructor(function(resolve,reject){resolve(value)},label)}});define("rsvp/race",["./promise","exports"],function(__dependency1__,__exports__){"use strict";var Promise=__dependency1__["default"];__exports__["default"]=function race(array,label){return Promise.race(array,label)}});define("rsvp/reject",["./promise","exports"],function(__dependency1__,__exports__){"use strict";var Promise=__dependency1__["default"];__exports__["default"]=function reject(reason,label){return Promise.reject(reason,label)}});define("rsvp/resolve",["./promise","exports"],function(__dependency1__,__exports__){"use strict";var Promise=__dependency1__["default"];__exports__["default"]=function resolve(value,label){return Promise.resolve(value,label)}});define("rsvp/rethrow",["exports"],function(__exports__){"use strict";__exports__["default"]=function rethrow(reason){setTimeout(function(){throw reason});throw reason}});define("rsvp/utils",["exports"],function(__exports__){"use strict";function objectOrFunction(x){return typeof x==="function"||typeof x==="object"&&x!==null}__exports__.objectOrFunction=objectOrFunction;function isFunction(x){return typeof x==="function"}__exports__.isFunction=isFunction;function isNonThenable(x){return!objectOrFunction(x)}__exports__.isNonThenable=isNonThenable;function isArray(x){return Object.prototype.toString.call(x)==="[object Array]"}__exports__.isArray=isArray;var now=Date.now||function(){return(new Date).getTime()};__exports__.now=now;var keysOf=Object.keys||function(object){var result=[];for(var prop in object){result.push(prop)}return result};__exports__.keysOf=keysOf});define("rsvp",["./rsvp/promise","./rsvp/events","./rsvp/node","./rsvp/all","./rsvp/all_settled","./rsvp/race","./rsvp/hash","./rsvp/rethrow","./rsvp/defer","./rsvp/config","./rsvp/map","./rsvp/resolve","./rsvp/reject","./rsvp/asap","./rsvp/filter","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__dependency8__,__dependency9__,__dependency10__,__dependency11__,__dependency12__,__dependency13__,__dependency14__,__dependency15__,__exports__){"use strict";var Promise=__dependency1__["default"];var EventTarget=__dependency2__["default"];var denodeify=__dependency3__["default"];var all=__dependency4__["default"];var allSettled=__dependency5__["default"];var race=__dependency6__["default"];var hash=__dependency7__["default"];var rethrow=__dependency8__["default"];var defer=__dependency9__["default"];var config=__dependency10__.config;var configure=__dependency10__.configure;var map=__dependency11__["default"];var resolve=__dependency12__["default"];var reject=__dependency13__["default"];var asap=__dependency14__["default"];var filter=__dependency15__["default"];config.async=asap;function async(callback,arg){config.async(callback,arg)}function on(){config.on.apply(config,arguments)}function off(){config.off.apply(config,arguments)}if(typeof window!=="undefined"&&typeof window.__PROMISE_INSTRUMENTATION__==="object"){var callbacks=window.__PROMISE_INSTRUMENTATION__;configure("instrument",true);for(var eventName in callbacks){if(callbacks.hasOwnProperty(eventName)){on(eventName,callbacks[eventName])}}}__exports__.Promise=Promise;__exports__.EventTarget=EventTarget;__exports__.all=all;__exports__.allSettled=allSettled;__exports__.race=race;__exports__.hash=hash;__exports__.rethrow=rethrow;__exports__.defer=defer;__exports__.denodeify=denodeify;__exports__.configure=configure;__exports__.on=on;__exports__.off=off;__exports__.resolve=resolve;__exports__.reject=reject;__exports__.async=async;__exports__.map=map;__exports__.filter=filter});global.RSVP=requireModule("rsvp")})(notwindow);define(function(require){return notwindow.RSVP.Promise})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require) | |
})}).call(this,require("_process"))},{_process:1}],10:[function(require,module,exports){(function(define){"use strict";define(function(require){return function(__exports__){"use strict";var specials=["/",".","*","+","?","|","(",")","[","]","{","}","\\"];var escapeRegex=new RegExp("(\\"+specials.join("|\\")+")","g");function isArray(test){return Object.prototype.toString.call(test)==="[object Array]"}function StaticSegment(string){this.string=string}StaticSegment.prototype={eachChar:function(callback){var string=this.string,ch;for(var i=0,l=string.length;i<l;i++){ch=string.charAt(i);callback({validChars:ch})}},regex:function(){return this.string.replace(escapeRegex,"\\$1")},generate:function(){return this.string}};function DynamicSegment(name){this.name=name}DynamicSegment.prototype={eachChar:function(callback){callback({invalidChars:"/",repeat:true})},regex:function(){return"([^/]+)"},generate:function(params){return params[this.name]}};function StarSegment(name){this.name=name}StarSegment.prototype={eachChar:function(callback){callback({invalidChars:"",repeat:true})},regex:function(){return"(.+)"},generate:function(params){return params[this.name]}};function EpsilonSegment(){}EpsilonSegment.prototype={eachChar:function(){},regex:function(){return""},generate:function(){return""}};function parse(route,names,types){if(route.charAt(0)==="/"){route=route.substr(1)}var segments=route.split("/"),results=[];for(var i=0,l=segments.length;i<l;i++){var segment=segments[i],match;if(match=segment.match(/^:([^\/]+)$/)){results.push(new DynamicSegment(match[1]));names.push(match[1]);types.dynamics++}else if(match=segment.match(/^\*([^\/]+)$/)){results.push(new StarSegment(match[1]));names.push(match[1]);types.stars++}else if(segment===""){results.push(new EpsilonSegment)}else{results.push(new StaticSegment(segment));types.statics++}}return results}function State(charSpec){this.charSpec=charSpec;this.nextStates=[]}State.prototype={get:function(charSpec){var nextStates=this.nextStates;for(var i=0,l=nextStates.length;i<l;i++){var child=nextStates[i];var isEqual=child.charSpec.validChars===charSpec.validChars;isEqual=isEqual&&child.charSpec.invalidChars===charSpec.invalidChars;if(isEqual){return child}}},put:function(charSpec){var state;if(state=this.get(charSpec)){return state}state=new State(charSpec);this.nextStates.push(state);if(charSpec.repeat){state.nextStates.push(state)}return state},match:function(ch){var nextStates=this.nextStates,child,charSpec,chars;var returned=[];for(var i=0,l=nextStates.length;i<l;i++){child=nextStates[i];charSpec=child.charSpec;if(typeof(chars=charSpec.validChars)!=="undefined"){if(chars.indexOf(ch)!==-1){returned.push(child)}}else if(typeof(chars=charSpec.invalidChars)!=="undefined"){if(chars.indexOf(ch)===-1){returned.push(child)}}}return returned}};function sortSolutions(states){return states.sort(function(a,b){if(a.types.stars!==b.types.stars){return a.types.stars-b.types.stars}if(a.types.stars){if(a.types.statics!==b.types.statics){return b.types.statics-a.types.statics}if(a.types.dynamics!==b.types.dynamics){return b.types.dynamics-a.types.dynamics}}if(a.types.dynamics!==b.types.dynamics){return a.types.dynamics-b.types.dynamics}if(a.types.statics!==b.types.statics){return b.types.statics-a.types.statics}return 0})}function recognizeChar(states,ch){var nextStates=[];for(var i=0,l=states.length;i<l;i++){var state=states[i];nextStates=nextStates.concat(state.match(ch))}return nextStates}var oCreate=Object.create||function(proto){function F(){}F.prototype=proto;return new F};function RecognizeResults(queryParams){this.queryParams=queryParams||{}}RecognizeResults.prototype=oCreate({splice:Array.prototype.splice,slice:Array.prototype.slice,push:Array.prototype.push,length:0,queryParams:null});function findHandler(state,path,queryParams){var handlers=state.handlers,regex=state.regex;var captures=path.match(regex),currentCapture=1;var result=new RecognizeResults(queryParams);for(var i=0,l=handlers.length;i<l;i++){var handler=handlers[i],names=handler.names,params={};for(var j=0,m=names.length;j<m;j++){params[names[j]]=captures[currentCapture++]}result.push({handler:handler.handler,params:params,isDynamic:!!names.length})}return result}function addSegment(currentState,segment){segment.eachChar(function(ch){var state;currentState=currentState.put(ch)});return currentState}var RouteRecognizer=function(){this.rootState=new State;this.names={}};RouteRecognizer.prototype={add:function(routes,options){var currentState=this.rootState,regex="^",types={statics:0,dynamics:0,stars:0},handlers=[],allSegments=[],name;var isEmpty=true;for(var i=0,l=routes.length;i<l;i++){var route=routes[i],names=[];var segments=parse(route.path,names,types);allSegments=allSegments.concat(segments);for(var j=0,m=segments.length;j<m;j++){var segment=segments[j];if(segment instanceof EpsilonSegment){continue}isEmpty=false;currentState=currentState.put({validChars:"/"});regex+="/";currentState=addSegment(currentState,segment);regex+=segment.regex()}var handler={handler:route.handler,names:names};handlers.push(handler)}if(isEmpty){currentState=currentState.put({validChars:"/"});regex+="/"}currentState.handlers=handlers;currentState.regex=new RegExp(regex+"$");currentState.types=types;if(name=options&&options.as){this.names[name]={segments:allSegments,handlers:handlers}}},handlersFor:function(name){var route=this.names[name],result=[];if(!route){throw new Error("There is no route named "+name)}for(var i=0,l=route.handlers.length;i<l;i++){result.push(route.handlers[i])}return result},hasRoute:function(name){return!!this.names[name]},generate:function(name,params){var route=this.names[name],output="";if(!route){throw new Error("There is no route named "+name)}var segments=route.segments;for(var i=0,l=segments.length;i<l;i++){var segment=segments[i];if(segment instanceof EpsilonSegment){continue}output+="/";output+=segment.generate(params)}if(output.charAt(0)!=="/"){output="/"+output}if(params&¶ms.queryParams){output+=this.generateQueryString(params.queryParams,route.handlers)}return output},generateQueryString:function(params,handlers){var pairs=[];var keys=[];for(var key in params){if(params.hasOwnProperty(key)){keys.push(key)}}keys.sort();for(var i=0,len=keys.length;i<len;i++){key=keys[i];var value=params[key];if(value==null){continue}var pair=key;if(isArray(value)){for(var j=0,l=value.length;j<l;j++){var arrayPair=key+"[]"+"="+encodeURIComponent(value[j]);pairs.push(arrayPair)}}else{pair+="="+encodeURIComponent(value);pairs.push(pair)}}if(pairs.length===0){return""}return"?"+pairs.join("&")},parseQueryString:function(queryString){var pairs=queryString.split("&"),queryParams={};for(var i=0;i<pairs.length;i++){var pair=pairs[i].split("="),key=decodeURIComponent(pair[0]),keyLength=key.length,isArray=false,value;if(pair.length===1){value="true"}else{if(keyLength>2&&key.slice(keyLength-2)==="[]"){isArray=true;key=key.slice(0,keyLength-2);if(!queryParams[key]){queryParams[key]=[]}}value=pair[1]?decodeURIComponent(pair[1]):""}if(isArray){queryParams[key].push(value)}else{queryParams[key]=decodeURIComponent(value)}}return queryParams},recognize:function(path){var states=[this.rootState],pathLen,i,l,queryStart,queryParams={},isSlashDropped=false;path=decodeURI(path);queryStart=path.indexOf("?");if(queryStart!==-1){var queryString=path.substr(queryStart+1,path.length);path=path.substr(0,queryStart);queryParams=this.parseQueryString(queryString)}if(path.charAt(0)!=="/"){path="/"+path}pathLen=path.length;if(pathLen>1&&path.charAt(pathLen-1)==="/"){path=path.substr(0,pathLen-1);isSlashDropped=true}for(i=0,l=path.length;i<l;i++){states=recognizeChar(states,path.charAt(i));if(!states.length){break}}var solutions=[];for(i=0,l=states.length;i<l;i++){if(states[i].handlers){solutions.push(states[i])}}states=sortSolutions(solutions);var state=solutions[0];if(state&&state.handlers){if(isSlashDropped&&state.regex.source.slice(-5)==="(.+)$"){path=path+"/"}return findHandler(state,path,queryParams)}}};function Target(path,matcher,delegate){this.path=path;this.matcher=matcher;this.delegate=delegate}Target.prototype={to:function(target,callback){var delegate=this.delegate;if(delegate&&delegate.willAddRoute){target=delegate.willAddRoute(this.matcher.target,target)}this.matcher.add(this.path,target);if(callback){if(callback.length===0){throw new Error("You must have an argument in the function passed to `to`")}this.matcher.addChild(this.path,target,callback,this.delegate)}return this}};function Matcher(target){this.routes={};this.children={};this.target=target}Matcher.prototype={add:function(path,handler){this.routes[path]=handler},addChild:function(path,target,callback,delegate){var matcher=new Matcher(target);this.children[path]=matcher;var match=generateMatch(path,matcher,delegate);if(delegate&&delegate.contextEntered){delegate.contextEntered(target,match)}callback(match)}};function generateMatch(startingPath,matcher,delegate){return function(path,nestedCallback){var fullPath=startingPath+path;if(nestedCallback){nestedCallback(generateMatch(fullPath,matcher,delegate))}else{return new Target(startingPath+path,matcher,delegate)}}}function addRoute(routeArray,path,handler){var len=0;for(var i=0,l=routeArray.length;i<l;i++){len+=routeArray[i].path.length}path=path.substr(len);var route={path:path,handler:handler};routeArray.push(route)}function eachRoute(baseRoute,matcher,callback,binding){var routes=matcher.routes;for(var path in routes){if(routes.hasOwnProperty(path)){var routeArray=baseRoute.slice();addRoute(routeArray,path,routes[path]);if(matcher.children[path]){eachRoute(routeArray,matcher.children[path],callback,binding)}else{callback.call(binding,routeArray)}}}}RouteRecognizer.prototype.map=function(callback,addRouteCallback){var matcher=new Matcher;callback(generateMatch("",matcher,this.delegate));eachRoute([],matcher,function(route){if(addRouteCallback){addRouteCallback(this,route)}else{this.add(route)}},this)};return RouteRecognizer}(window)})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{}],11:[function(require,module,exports){(function(define){"use strict";define(function(require){return function(globals,RSVP,RouteRecognizer){var define,requireModule,require,requirejs;(function(){var registry={},seen={};define=function(name,deps,callback){registry[name]={deps:deps,callback:callback}};requirejs=require=requireModule=function(name){if(seen[name]){return seen[name]}seen[name]={};if(!registry[name]){throw new Error("Could not find module "+name)}var mod=registry[name],deps=mod.deps,callback=mod.callback,reified=[],exports;for(var i=0,l=deps.length;i<l;i++){if(deps[i]==="exports"){reified.push(exports={})}else{reified.push(requireModule(resolve(deps[i])))}}var value=callback.apply(this,reified);return seen[name]=exports||value;function resolve(child){if(child.charAt(0)!=="."){return child}var parts=child.split("/");var parentBase=name.split("/").slice(0,-1);for(var i=0,l=parts.length;i<l;i++){var part=parts[i];if(part===".."){parentBase.pop()}else if(part==="."){continue}else{parentBase.push(part)}}return parentBase.join("/")}}})();define("router/handler-info",["./utils","rsvp/promise","exports"],function(__dependency1__,__dependency2__,__exports__){"use strict";var bind=__dependency1__.bind;var merge=__dependency1__.merge;var oCreate=__dependency1__.oCreate;var serialize=__dependency1__.serialize;var promiseLabel=__dependency1__.promiseLabel;var Promise=__dependency2__["default"];function HandlerInfo(props){if(props){merge(this,props)}}HandlerInfo.prototype={name:null,handler:null,params:null,context:null,log:function(payload,message){if(payload.log){payload.log(this.name+": "+message)}},promiseLabel:function(label){return promiseLabel("'"+this.name+"' "+label)},getUnresolved:function(){return this},resolve:function(async,shouldContinue,payload){var checkForAbort=bind(this.checkForAbort,this,shouldContinue),beforeModel=bind(this.runBeforeModelHook,this,async,payload),model=bind(this.getModel,this,async,payload),afterModel=bind(this.runAfterModelHook,this,async,payload),becomeResolved=bind(this.becomeResolved,this,payload);return Promise.resolve(undefined,this.promiseLabel("Start handler")).then(checkForAbort,null,this.promiseLabel("Check for abort")).then(beforeModel,null,this.promiseLabel("Before model")).then(checkForAbort,null,this.promiseLabel("Check if aborted during 'beforeModel' hook")).then(model,null,this.promiseLabel("Model")).then(checkForAbort,null,this.promiseLabel("Check if aborted in 'model' hook")).then(afterModel,null,this.promiseLabel("After model")).then(checkForAbort,null,this.promiseLabel("Check if aborted in 'afterModel' hook")).then(becomeResolved,null,this.promiseLabel("Become resolved"))},runBeforeModelHook:function(async,payload){if(payload.trigger){payload.trigger(true,"willResolveModel",payload,this.handler)}return this.runSharedModelHook(async,payload,"beforeModel",[])},runAfterModelHook:function(async,payload,resolvedModel){var name=this.name;this.stashResolvedModel(payload,resolvedModel);return this.runSharedModelHook(async,payload,"afterModel",[resolvedModel]).then(function(){return payload.resolvedModels[name]},null,this.promiseLabel("Ignore fulfillment value and return model value"))},runSharedModelHook:function(async,payload,hookName,args){this.log(payload,"calling "+hookName+" hook");if(this.queryParams){args.push(this.queryParams)}args.push(payload);var handler=this.handler;return async(function(){return handler[hookName]&&handler[hookName].apply(handler,args)},this.promiseLabel("Handle "+hookName))},getModel:function(payload){throw new Error("This should be overridden by a subclass of HandlerInfo")},checkForAbort:function(shouldContinue,promiseValue){return Promise.resolve(shouldContinue(),this.promiseLabel("Check for abort")).then(function(){return promiseValue},null,this.promiseLabel("Ignore fulfillment value and continue"))},stashResolvedModel:function(payload,resolvedModel){payload.resolvedModels=payload.resolvedModels||{};payload.resolvedModels[this.name]=resolvedModel},becomeResolved:function(payload,resolvedContext){var params=this.params||serialize(this.handler,resolvedContext,this.names);if(payload){this.stashResolvedModel(payload,resolvedContext);payload.params=payload.params||{};payload.params[this.name]=params}return new ResolvedHandlerInfo({context:resolvedContext,name:this.name,handler:this.handler,params:params})},shouldSupercede:function(other){if(!other){return true}var contextsMatch=other.context===this.context;return other.name!==this.name||this.hasOwnProperty("context")&&!contextsMatch||this.hasOwnProperty("params")&&!paramsMatch(this.params,other.params)}};function ResolvedHandlerInfo(props){HandlerInfo.call(this,props)}ResolvedHandlerInfo.prototype=oCreate(HandlerInfo.prototype);ResolvedHandlerInfo.prototype.resolve=function(async,shouldContinue,payload){if(payload&&payload.resolvedModels){payload.resolvedModels[this.name]=this.context}return Promise.resolve(this,this.promiseLabel("Resolve"))};ResolvedHandlerInfo.prototype.getUnresolved=function(){return new UnresolvedHandlerInfoByParam({name:this.name,handler:this.handler,params:this.params})};function UnresolvedHandlerInfoByParam(props){HandlerInfo.call(this,props);this.params=this.params||{}}UnresolvedHandlerInfoByParam.prototype=oCreate(HandlerInfo.prototype);UnresolvedHandlerInfoByParam.prototype.getModel=function(async,payload){var fullParams=this.params;if(payload&&payload.queryParams){fullParams={};merge(fullParams,this.params);fullParams.queryParams=payload.queryParams}var hookName=typeof this.handler.deserialize==="function"?"deserialize":"model";return this.runSharedModelHook(async,payload,hookName,[fullParams])};function UnresolvedHandlerInfoByObject(props){HandlerInfo.call(this,props)}UnresolvedHandlerInfoByObject.prototype=oCreate(HandlerInfo.prototype);UnresolvedHandlerInfoByObject.prototype.getModel=function(async,payload){this.log(payload,this.name+": resolving provided model");return Promise.resolve(this.context)};function paramsMatch(a,b){if(!a^!b){return false}if(!a){return true}for(var k in a){if(a.hasOwnProperty(k)&&a[k]!==b[k]){return false}}return true}__exports__.HandlerInfo=HandlerInfo;__exports__.ResolvedHandlerInfo=ResolvedHandlerInfo;__exports__.UnresolvedHandlerInfoByParam=UnresolvedHandlerInfoByParam;__exports__.UnresolvedHandlerInfoByObject=UnresolvedHandlerInfoByObject});define("router/router",["route-recognizer","rsvp/promise","./utils","./transition-state","./transition","./transition-intent/named-transition-intent","./transition-intent/url-transition-intent","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__dependency5__,__dependency6__,__dependency7__,__exports__){"use strict";var RouteRecognizer=__dependency1__;var Promise=__dependency2__["default"];var trigger=__dependency3__.trigger;var log=__dependency3__.log;var slice=__dependency3__.slice;var forEach=__dependency3__.forEach;var merge=__dependency3__.merge;var serialize=__dependency3__.serialize;var extractQueryParams=__dependency3__.extractQueryParams;var getChangelist=__dependency3__.getChangelist;var promiseLabel=__dependency3__.promiseLabel;var TransitionState=__dependency4__["default"];var logAbort=__dependency5__.logAbort;var Transition=__dependency5__.Transition;var TransitionAborted=__dependency5__.TransitionAborted;var NamedTransitionIntent=__dependency6__["default"];var URLTransitionIntent=__dependency7__["default"];var pop=Array.prototype.pop;function Router(){this.recognizer=new RouteRecognizer;this.reset()}Router.prototype={map:function(callback){this.recognizer.delegate=this.delegate;this.recognizer.map(callback,function(recognizer,routes){for(var i=routes.length-1,proceed=true;i>=0&&proceed;--i){var route=routes[i];recognizer.add(routes,{as:route.handler});proceed=route.path==="/"||route.path===""||route.handler.slice(-6)===".index"}})},hasRoute:function(route){return this.recognizer.hasRoute(route)},transitionByIntent:function(intent,isIntermediate){var wasTransitioning=!!this.activeTransition;var oldState=wasTransitioning?this.activeTransition.state:this.state;var newTransition;var router=this;try{var newState=intent.applyToState(oldState,this.recognizer,this.getHandler,isIntermediate);if(handlerInfosEqual(newState.handlerInfos,oldState.handlerInfos)){var queryParamChangelist=getChangelist(oldState.queryParams,newState.queryParams);if(queryParamChangelist){this._changedQueryParams=queryParamChangelist.changed;for(var k in queryParamChangelist.removed){if(queryParamChangelist.removed.hasOwnProperty(k)){this._changedQueryParams[k]=null}}trigger(this,newState.handlerInfos,true,["queryParamsDidChange",queryParamChangelist.changed,queryParamChangelist.all,queryParamChangelist.removed]);this._changedQueryParams=null;if(!wasTransitioning&&this.activeTransition){return this.activeTransition}else{newTransition=new Transition(this);oldState.queryParams=finalizeQueryParamChange(this,newState.handlerInfos,newState.queryParams,newTransition);newTransition.promise=newTransition.promise.then(function(result){updateURL(newTransition,oldState,true);if(router.didTransition){router.didTransition(router.currentHandlerInfos)}return result},null,promiseLabel("Transition complete"));return newTransition}}return new Transition(this)}if(isIntermediate){setupContexts(this,newState);return}newTransition=new Transition(this,intent,newState);if(this.activeTransition){this.activeTransition.abort()}this.activeTransition=newTransition;newTransition.promise=newTransition.promise.then(function(result){return router.async(function(){return finalizeTransition(newTransition,result.state)},"Finalize transition")},null,promiseLabel("Settle transition promise when transition is finalized"));if(!wasTransitioning){trigger(this,this.state.handlerInfos,true,["willTransition",newTransition])}return newTransition}catch(e){return new Transition(this,intent,null,e)}},reset:function(){if(this.state){forEach(this.state.handlerInfos,function(handlerInfo){var handler=handlerInfo.handler;if(handler.exit){handler.exit()}})}this.state=new TransitionState;this.currentHandlerInfos=null},activeTransition:null,handleURL:function(url){var args=slice.call(arguments);if(url.charAt(0)!=="/"){args[0]="/"+url}return doTransition(this,args).method(null)},updateURL:function(){throw new Error("updateURL is not implemented")},replaceURL:function(url){this.updateURL(url)},transitionTo:function(name){return doTransition(this,arguments)},intermediateTransitionTo:function(name){doTransition(this,arguments,true)},refresh:function(pivotHandler){var state=this.activeTransition?this.activeTransition.state:this.state;var handlerInfos=state.handlerInfos;var params={};for(var i=0,len=handlerInfos.length;i<len;++i){var handlerInfo=handlerInfos[i];params[handlerInfo.name]=handlerInfo.params||{}}log(this,"Starting a refresh transition");var intent=new NamedTransitionIntent({name:handlerInfos[handlerInfos.length-1].name,pivotHandler:pivotHandler||handlerInfos[0].handler,contexts:[],queryParams:this._changedQueryParams||state.queryParams||{}});return this.transitionByIntent(intent,false)},replaceWith:function(name){return doTransition(this,arguments).method("replace")},generate:function(handlerName){var partitionedArgs=extractQueryParams(slice.call(arguments,1)),suppliedParams=partitionedArgs[0],queryParams=partitionedArgs[1];var intent=new NamedTransitionIntent({name:handlerName,contexts:suppliedParams});var state=intent.applyToState(this.state,this.recognizer,this.getHandler);var params={};for(var i=0,len=state.handlerInfos.length;i<len;++i){var handlerInfo=state.handlerInfos[i];var handlerParams=handlerInfo.params||serialize(handlerInfo.handler,handlerInfo.context,handlerInfo.names);merge(params,handlerParams)}params.queryParams=queryParams;return this.recognizer.generate(handlerName,params)},isActive:function(handlerName){var partitionedArgs=extractQueryParams(slice.call(arguments,1)),contexts=partitionedArgs[0],queryParams=partitionedArgs[1],activeQueryParams=this.state.queryParams;var targetHandlerInfos=this.state.handlerInfos,found=false,names,object,handlerInfo,handlerObj,i,len;if(!targetHandlerInfos.length){return false}var targetHandler=targetHandlerInfos[targetHandlerInfos.length-1].name;var recogHandlers=this.recognizer.handlersFor(targetHandler);var index=0;for(len=recogHandlers.length;index<len;++index){handlerInfo=targetHandlerInfos[index];if(handlerInfo.name===handlerName){break}}if(index===recogHandlers.length){return false}var state=new TransitionState;state.handlerInfos=targetHandlerInfos.slice(0,index+1);recogHandlers=recogHandlers.slice(0,index+1);var intent=new NamedTransitionIntent({name:targetHandler,contexts:contexts});var newState=intent.applyToHandlers(state,recogHandlers,this.getHandler,targetHandler,true,true);var activeQPsOnNewHandler={};merge(activeQPsOnNewHandler,queryParams);for(var key in activeQueryParams){if(activeQueryParams.hasOwnProperty(key)&&activeQPsOnNewHandler.hasOwnProperty(key)){activeQPsOnNewHandler[key]=activeQueryParams[key]}}return handlerInfosEqual(newState.handlerInfos,state.handlerInfos)&&!getChangelist(activeQPsOnNewHandler,queryParams)},trigger:function(name){var args=slice.call(arguments);trigger(this,this.currentHandlerInfos,false,args)},async:function(callback,label){return new Promise(function(resolve){resolve(callback())},label)},log:null};function setupContexts(router,newState,transition){var partition=partitionHandlers(router.state,newState);forEach(partition.exited,function(handlerInfo){var handler=handlerInfo.handler;delete handler.context;if(handler.exit){handler.exit()}});var oldState=router.oldState=router.state;router.state=newState;var currentHandlerInfos=router.currentHandlerInfos=partition.unchanged.slice();try{forEach(partition.updatedContext,function(handlerInfo){return handlerEnteredOrUpdated(currentHandlerInfos,handlerInfo,false,transition)});forEach(partition.entered,function(handlerInfo){return handlerEnteredOrUpdated(currentHandlerInfos,handlerInfo,true,transition)})}catch(e){router.state=oldState;router.currentHandlerInfos=oldState.handlerInfos;throw e}router.state.queryParams=finalizeQueryParamChange(router,currentHandlerInfos,newState.queryParams,transition)}function handlerEnteredOrUpdated(currentHandlerInfos,handlerInfo,enter,transition){var handler=handlerInfo.handler,context=handlerInfo.context;if(enter&&handler.enter){handler.enter(transition)}if(transition&&transition.isAborted){throw new TransitionAborted}handler.context=context;if(handler.contextDidChange){handler.contextDidChange()}if(handler.setup){handler.setup(context,transition)}if(transition&&transition.isAborted){throw new TransitionAborted}currentHandlerInfos.push(handlerInfo);return true}function partitionHandlers(oldState,newState){var oldHandlers=oldState.handlerInfos;var newHandlers=newState.handlerInfos;var handlers={updatedContext:[],exited:[],entered:[],unchanged:[]};var handlerChanged,contextChanged,queryParamsChanged,i,l;for(i=0,l=newHandlers.length;i<l;i++){var oldHandler=oldHandlers[i],newHandler=newHandlers[i];if(!oldHandler||oldHandler.handler!==newHandler.handler){handlerChanged=true}if(handlerChanged){handlers.entered.push(newHandler);if(oldHandler){handlers.exited.unshift(oldHandler)}}else if(contextChanged||oldHandler.context!==newHandler.context||queryParamsChanged){contextChanged=true;handlers.updatedContext.push(newHandler)}else{handlers.unchanged.push(oldHandler)}}for(i=newHandlers.length,l=oldHandlers.length;i<l;i++){handlers.exited.unshift(oldHandlers[i])}return handlers}function updateURL(transition,state,inputUrl){var urlMethod=transition.urlMethod;if(!urlMethod){return}var router=transition.router,handlerInfos=state.handlerInfos,handlerName=handlerInfos[handlerInfos.length-1].name,params={};for(var i=handlerInfos.length-1;i>=0;--i){var handlerInfo=handlerInfos[i];merge(params,handlerInfo.params);if(handlerInfo.handler.inaccessibleByURL){urlMethod=null}}if(urlMethod){params.queryParams=transition._visibleQueryParams||state.queryParams;var url=router.recognizer.generate(handlerName,params);if(urlMethod==="replace"){router.replaceURL(url)}else{router.updateURL(url)}}}function finalizeTransition(transition,newState){try{log(transition.router,transition.sequence,"Resolved all models on destination route; finalizing transition.");var router=transition.router,handlerInfos=newState.handlerInfos,seq=transition.sequence;setupContexts(router,newState,transition);if(transition.isAborted){router.state.handlerInfos=router.currentHandlerInfos;return Promise.reject(logAbort(transition))}updateURL(transition,newState,transition.intent.url);transition.isActive=false;router.activeTransition=null;trigger(router,router.currentHandlerInfos,true,["didTransition"]);if(router.didTransition){router.didTransition(router.currentHandlerInfos)}log(router,transition.sequence,"TRANSITION COMPLETE.");return handlerInfos[handlerInfos.length-1].handler}catch(e){if(!(e instanceof TransitionAborted)){var infos=transition.state.handlerInfos;transition.trigger(true,"error",e,transition,infos[infos.length-1].handler);transition.abort()}throw e}}function doTransition(router,args,isIntermediate){var name=args[0]||"/";var lastArg=args[args.length-1];var queryParams={};if(lastArg&&lastArg.hasOwnProperty("queryParams")){queryParams=pop.call(args).queryParams}var intent;if(args.length===0){log(router,"Updating query params");var handlerInfos=router.state.handlerInfos;intent=new NamedTransitionIntent({name:handlerInfos[handlerInfos.length-1].name,contexts:[],queryParams:queryParams})}else if(name.charAt(0)==="/"){log(router,"Attempting URL transition to "+name);intent=new URLTransitionIntent({url:name})}else{log(router,"Attempting transition to "+name);intent=new NamedTransitionIntent({name:args[0],contexts:slice.call(args,1),queryParams:queryParams})}return router.transitionByIntent(intent,isIntermediate)}function handlerInfosEqual(handlerInfos,otherHandlerInfos){if(handlerInfos.length!==otherHandlerInfos.length){return false}for(var i=0,len=handlerInfos.length;i<len;++i){if(handlerInfos[i]!==otherHandlerInfos[i]){return false}}return true}function finalizeQueryParamChange(router,resolvedHandlers,newQueryParams,transition){for(var k in newQueryParams){if(newQueryParams.hasOwnProperty(k)&&newQueryParams[k]===null){delete newQueryParams[k]}}var finalQueryParamsArray=[];trigger(router,resolvedHandlers,true,["finalizeQueryParamChange",newQueryParams,finalQueryParamsArray,transition]);if(transition){transition._visibleQueryParams={}}var finalQueryParams={};for(var i=0,len=finalQueryParamsArray.length;i<len;++i){var qp=finalQueryParamsArray[i];finalQueryParams[qp.key]=qp.value;if(transition&&qp.visible!==false){transition._visibleQueryParams[qp.key]=qp.value}}return finalQueryParams}__exports__["default"]=Router});define("router/transition-intent",["./utils","exports"],function(__dependency1__,__exports__){"use strict";var merge=__dependency1__.merge;function TransitionIntent(props){if(props){merge(this,props)}this.data=this.data||{}}TransitionIntent.prototype.applyToState=function(oldState){return oldState};__exports__["default"]=TransitionIntent});define("router/transition-intent/named-transition-intent",["../transition-intent","../transition-state","../handler-info","../utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var TransitionIntent=__dependency1__["default"];var TransitionState=__dependency2__["default"];var UnresolvedHandlerInfoByParam=__dependency3__.UnresolvedHandlerInfoByParam;var UnresolvedHandlerInfoByObject=__dependency3__.UnresolvedHandlerInfoByObject;var isParam=__dependency4__.isParam;var forEach=__dependency4__.forEach;var extractQueryParams=__dependency4__.extractQueryParams;var oCreate=__dependency4__.oCreate;var merge=__dependency4__.merge;function NamedTransitionIntent(props){TransitionIntent.call(this,props)}NamedTransitionIntent.prototype=oCreate(TransitionIntent.prototype);NamedTransitionIntent.prototype.applyToState=function(oldState,recognizer,getHandler,isIntermediate){var partitionedArgs=extractQueryParams([this.name].concat(this.contexts)),pureArgs=partitionedArgs[0],queryParams=partitionedArgs[1],handlers=recognizer.handlersFor(pureArgs[0]);var targetRouteName=handlers[handlers.length-1].handler;return this.applyToHandlers(oldState,handlers,getHandler,targetRouteName,isIntermediate)};NamedTransitionIntent.prototype.applyToHandlers=function(oldState,handlers,getHandler,targetRouteName,isIntermediate,checkingIfActive){var i;var newState=new TransitionState;var objects=this.contexts.slice(0);var invalidateIndex=handlers.length;if(this.pivotHandler){for(i=0;i<handlers.length;++i){if(getHandler(handlers[i].handler)===this.pivotHandler){invalidateIndex=i;break}}}var pivotHandlerFound=!this.pivotHandler;for(i=handlers.length-1;i>=0;--i){var result=handlers[i];var name=result.handler;var handler=getHandler(name);var oldHandlerInfo=oldState.handlerInfos[i];var newHandlerInfo=null;if(result.names.length>0){if(i>=invalidateIndex){newHandlerInfo=this.createParamHandlerInfo(name,handler,result.names,objects,oldHandlerInfo)}else{newHandlerInfo=this.getHandlerInfoForDynamicSegment(name,handler,result.names,objects,oldHandlerInfo,targetRouteName)}}else{newHandlerInfo=this.createParamHandlerInfo(name,handler,result.names,objects,oldHandlerInfo)}if(checkingIfActive){newHandlerInfo=newHandlerInfo.becomeResolved(null,newHandlerInfo.context);var oldContext=oldHandlerInfo&&oldHandlerInfo.context;if(result.names.length>0&&newHandlerInfo.context===oldContext){newHandlerInfo.params=oldHandlerInfo&&oldHandlerInfo.params}newHandlerInfo.context=oldContext}var handlerToUse=oldHandlerInfo;if(i>=invalidateIndex||newHandlerInfo.shouldSupercede(oldHandlerInfo)){invalidateIndex=Math.min(i,invalidateIndex);handlerToUse=newHandlerInfo}if(isIntermediate&&!checkingIfActive){handlerToUse=handlerToUse.becomeResolved(null,handlerToUse.context) | |
}newState.handlerInfos.unshift(handlerToUse)}if(objects.length>0){throw new Error("More context objects were passed than there are dynamic segments for the route: "+targetRouteName)}if(!isIntermediate){this.invalidateChildren(newState.handlerInfos,invalidateIndex)}merge(newState.queryParams,oldState.queryParams);merge(newState.queryParams,this.queryParams||{});return newState};NamedTransitionIntent.prototype.invalidateChildren=function(handlerInfos,invalidateIndex){for(var i=invalidateIndex,l=handlerInfos.length;i<l;++i){var handlerInfo=handlerInfos[i];handlerInfos[i]=handlerInfos[i].getUnresolved()}};NamedTransitionIntent.prototype.getHandlerInfoForDynamicSegment=function(name,handler,names,objects,oldHandlerInfo,targetRouteName){var numNames=names.length;var objectToUse;if(objects.length>0){objectToUse=objects[objects.length-1];if(isParam(objectToUse)){return this.createParamHandlerInfo(name,handler,names,objects,oldHandlerInfo)}else{objects.pop()}}else if(oldHandlerInfo&&oldHandlerInfo.name===name){return oldHandlerInfo}else{return oldHandlerInfo}return new UnresolvedHandlerInfoByObject({name:name,handler:handler,context:objectToUse,names:names})};NamedTransitionIntent.prototype.createParamHandlerInfo=function(name,handler,names,objects,oldHandlerInfo){var params={};var numNames=names.length;while(numNames--){var oldParams=oldHandlerInfo&&name===oldHandlerInfo.name&&oldHandlerInfo.params||{};var peek=objects[objects.length-1];var paramName=names[numNames];if(isParam(peek)){params[paramName]=""+objects.pop()}else{if(oldParams.hasOwnProperty(paramName)){params[paramName]=oldParams[paramName]}else{throw new Error("You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route "+name)}}}return new UnresolvedHandlerInfoByParam({name:name,handler:handler,params:params})};__exports__["default"]=NamedTransitionIntent});define("router/transition-intent/url-transition-intent",["../transition-intent","../transition-state","../handler-info","../utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__dependency4__,__exports__){"use strict";var TransitionIntent=__dependency1__["default"];var TransitionState=__dependency2__["default"];var UnresolvedHandlerInfoByParam=__dependency3__.UnresolvedHandlerInfoByParam;var oCreate=__dependency4__.oCreate;var merge=__dependency4__.merge;function URLTransitionIntent(props){TransitionIntent.call(this,props)}URLTransitionIntent.prototype=oCreate(TransitionIntent.prototype);URLTransitionIntent.prototype.applyToState=function(oldState,recognizer,getHandler){var newState=new TransitionState;var results=recognizer.recognize(this.url),queryParams={},i,len;if(!results){throw new UnrecognizedURLError(this.url)}var statesDiffer=false;for(i=0,len=results.length;i<len;++i){var result=results[i];var name=result.handler;var handler=getHandler(name);if(handler.inaccessibleByURL){throw new UnrecognizedURLError(this.url)}var newHandlerInfo=new UnresolvedHandlerInfoByParam({name:name,handler:handler,params:result.params});var oldHandlerInfo=oldState.handlerInfos[i];if(statesDiffer||newHandlerInfo.shouldSupercede(oldHandlerInfo)){statesDiffer=true;newState.handlerInfos[i]=newHandlerInfo}else{newState.handlerInfos[i]=oldHandlerInfo}}merge(newState.queryParams,results.queryParams);return newState};function UnrecognizedURLError(message){this.message=message||"UnrecognizedURLError";this.name="UnrecognizedURLError"}__exports__["default"]=URLTransitionIntent});define("router/transition-state",["./handler-info","./utils","rsvp/promise","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var ResolvedHandlerInfo=__dependency1__.ResolvedHandlerInfo;var forEach=__dependency2__.forEach;var promiseLabel=__dependency2__.promiseLabel;var Promise=__dependency3__["default"];function TransitionState(other){this.handlerInfos=[];this.queryParams={};this.params={}}TransitionState.prototype={handlerInfos:null,queryParams:null,params:null,promiseLabel:function(label){var targetName="";forEach(this.handlerInfos,function(handlerInfo){if(targetName!==""){targetName+="."}targetName+=handlerInfo.name});return promiseLabel("'"+targetName+"': "+label)},resolve:function(async,shouldContinue,payload){var self=this;var params=this.params;forEach(this.handlerInfos,function(handlerInfo){params[handlerInfo.name]=handlerInfo.params||{}});payload=payload||{};payload.resolveIndex=0;var currentState=this;var wasAborted=false;return Promise.resolve(null,this.promiseLabel("Start transition")).then(resolveOneHandlerInfo,null,this.promiseLabel("Resolve handler"))["catch"](handleError,this.promiseLabel("Handle error"));function innerShouldContinue(){return Promise.resolve(shouldContinue(),promiseLabel("Check if should continue"))["catch"](function(reason){wasAborted=true;return Promise.reject(reason)},promiseLabel("Handle abort"))}function handleError(error){var handlerInfos=currentState.handlerInfos;var errorHandlerIndex=payload.resolveIndex>=handlerInfos.length?handlerInfos.length-1:payload.resolveIndex;return Promise.reject({error:error,handlerWithError:currentState.handlerInfos[errorHandlerIndex].handler,wasAborted:wasAborted,state:currentState})}function proceed(resolvedHandlerInfo){currentState.handlerInfos[payload.resolveIndex++]=resolvedHandlerInfo;var handler=resolvedHandlerInfo.handler;if(handler&&handler.redirect){handler.redirect(resolvedHandlerInfo.context,payload)}return innerShouldContinue().then(resolveOneHandlerInfo,null,promiseLabel("Resolve handler"))}function resolveOneHandlerInfo(){if(payload.resolveIndex===currentState.handlerInfos.length){return{error:null,state:currentState}}var handlerInfo=currentState.handlerInfos[payload.resolveIndex];return handlerInfo.resolve(async,innerShouldContinue,payload).then(proceed,null,promiseLabel("Proceed"))}}};__exports__["default"]=TransitionState});define("router/transition",["rsvp/promise","./handler-info","./utils","exports"],function(__dependency1__,__dependency2__,__dependency3__,__exports__){"use strict";var Promise=__dependency1__["default"];var ResolvedHandlerInfo=__dependency2__.ResolvedHandlerInfo;var trigger=__dependency3__.trigger;var slice=__dependency3__.slice;var log=__dependency3__.log;var promiseLabel=__dependency3__.promiseLabel;function Transition(router,intent,state,error){var transition=this;this.state=state||router.state;this.intent=intent;this.router=router;this.data=this.intent&&this.intent.data||{};this.resolvedModels={};this.queryParams={};if(error){this.promise=Promise.reject(error);return}if(state){this.params=state.params;this.queryParams=state.queryParams;var len=state.handlerInfos.length;if(len){this.targetName=state.handlerInfos[state.handlerInfos.length-1].name}for(var i=0;i<len;++i){var handlerInfo=state.handlerInfos[i];if(!(handlerInfo instanceof ResolvedHandlerInfo)){break}this.pivotHandler=handlerInfo.handler}this.sequence=Transition.currentSequence++;this.promise=state.resolve(router.async,checkForAbort,this)["catch"](function(result){if(result.wasAborted){return Promise.reject(logAbort(transition))}else{transition.trigger("error",result.error,transition,result.handlerWithError);transition.abort();return Promise.reject(result.error)}},promiseLabel("Handle Abort"))}else{this.promise=Promise.resolve(this.state);this.params={}}function checkForAbort(){if(transition.isAborted){return Promise.reject(undefined,promiseLabel("Transition aborted - reject"))}}}Transition.currentSequence=0;Transition.prototype={targetName:null,urlMethod:"update",intent:null,params:null,pivotHandler:null,resolveIndex:0,handlerInfos:null,resolvedModels:null,isActive:true,state:null,promise:null,data:null,then:function(success,failure){return this.promise.then(success,failure)},abort:function(){if(this.isAborted){return this}log(this.router,this.sequence,this.targetName+": transition was aborted");this.isAborted=true;this.isActive=false;this.router.activeTransition=null;return this},retry:function(){this.abort();return this.router.transitionByIntent(this.intent,false)},method:function(method){this.urlMethod=method;return this},trigger:function(ignoreFailure){var args=slice.call(arguments);if(typeof ignoreFailure==="boolean"){args.shift()}else{ignoreFailure=false}trigger(this.router,this.state.handlerInfos.slice(0,this.resolveIndex+1),ignoreFailure,args)},followRedirects:function(){var router=this.router;return this.promise["catch"](function(reason){if(router.activeTransition){return router.activeTransition.followRedirects()}return Promise.reject(reason)})},toString:function(){return"Transition (sequence "+this.sequence+")"},log:function(message){log(this.router,this.sequence,message)}};Transition.prototype.send=Transition.prototype.trigger;function logAbort(transition){log(transition.router,transition.sequence,"detected abort.");return new TransitionAborted}function TransitionAborted(message){this.message=message||"TransitionAborted";this.name="TransitionAborted"}__exports__.Transition=Transition;__exports__.logAbort=logAbort;__exports__.TransitionAborted=TransitionAborted});define("router/utils",["exports"],function(__exports__){"use strict";var slice=Array.prototype.slice;var _isArray;if(!Array.isArray){_isArray=function(x){return Object.prototype.toString.call(x)==="[object Array]"}}else{_isArray=Array.isArray}var isArray=_isArray;__exports__.isArray=isArray;function merge(hash,other){for(var prop in other){if(other.hasOwnProperty(prop)){hash[prop]=other[prop]}}}var oCreate=Object.create||function(proto){function F(){}F.prototype=proto;return new F};__exports__.oCreate=oCreate;function extractQueryParams(array){var len=array&&array.length,head,queryParams;if(len&&len>0&&array[len-1]&&array[len-1].hasOwnProperty("queryParams")){queryParams=array[len-1].queryParams;head=slice.call(array,0,len-1);return[head,queryParams]}else{return[array,null]}}__exports__.extractQueryParams=extractQueryParams;function coerceQueryParamsToString(queryParams){for(var key in queryParams){if(typeof queryParams[key]==="number"){queryParams[key]=""+queryParams[key]}else if(isArray(queryParams[key])){for(var i=0,l=queryParams[key].length;i<l;i++){queryParams[key][i]=""+queryParams[key][i]}}}}function log(router,sequence,msg){if(!router.log){return}if(arguments.length===3){router.log("Transition #"+sequence+": "+msg)}else{msg=sequence;router.log(msg)}}__exports__.log=log;function bind(fn,context){var boundArgs=arguments;return function(value){var args=slice.call(boundArgs,2);args.push(value);return fn.apply(context,args)}}__exports__.bind=bind;function isParam(object){return typeof object==="string"||object instanceof String||typeof object==="number"||object instanceof Number}function forEach(array,callback){for(var i=0,l=array.length;i<l&&false!==callback(array[i]);i++){}}__exports__.forEach=forEach;function serialize(handler,model,names){var object={};if(isParam(model)){object[names[0]]=model;return object}if(handler.serialize){return handler.serialize(model,names)}if(names.length!==1){return}var name=names[0];if(/_id$/.test(name)){object[name]=model.id}else{object[name]=model}return object}__exports__.serialize=serialize;function trigger(router,handlerInfos,ignoreFailure,args){if(router.triggerEvent){router.triggerEvent(handlerInfos,ignoreFailure,args);return}var name=args.shift();if(!handlerInfos){if(ignoreFailure){return}throw new Error("Could not trigger event '"+name+"'. There are no active handlers")}var eventWasHandled=false;for(var i=handlerInfos.length-1;i>=0;i--){var handlerInfo=handlerInfos[i],handler=handlerInfo.handler;if(handler.events&&handler.events[name]){if(handler.events[name].apply(handler,args)===true){eventWasHandled=true}else{return}}}if(!eventWasHandled&&!ignoreFailure){throw new Error("Nothing handled the event '"+name+"'.")}}__exports__.trigger=trigger;function getChangelist(oldObject,newObject){var key;var results={all:{},changed:{},removed:{}};merge(results.all,newObject);var didChange=false;coerceQueryParamsToString(oldObject);coerceQueryParamsToString(newObject);for(key in oldObject){if(oldObject.hasOwnProperty(key)){if(!newObject.hasOwnProperty(key)){didChange=true;results.removed[key]=oldObject[key]}}}for(key in newObject){if(newObject.hasOwnProperty(key)){if(isArray(oldObject[key])&&isArray(newObject[key])){if(oldObject[key].length!==newObject[key].length){results.changed[key]=newObject[key];didChange=true}else{for(var i=0,l=oldObject[key].length;i<l;i++){if(oldObject[key][i]!==newObject[key][i]){results.changed[key]=newObject[key];didChange=true}}}}else{if(oldObject[key]!==newObject[key]){results.changed[key]=newObject[key];didChange=true}}}}return didChange&&results}__exports__.getChangelist=getChangelist;function promiseLabel(label){return"Router: "+label}__exports__.promiseLabel=promiseLabel;__exports__.merge=merge;__exports__.slice=slice;__exports__.isParam=isParam;__exports__.coerceQueryParamsToString=coerceQueryParamsToString});define("router",["./router/router","exports"],function(__dependency1__,__exports__){"use strict";var Router=__dependency1__["default"];__exports__["default"]=Router});define("route-recognizer",[],function(){return RouteRecognizer});define("rsvp/promise",[],function(){return RSVP});return requireModule("router").default}(window,{"default":require("./promise")},require("./route-recognizer"))})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"./promise":9,"./route-recognizer":10}],cherrytree:[function(require,module,exports){(function(define){"use strict";define(function(require){var _=require("./lib/util");var Router=require("./vendor/router");var BaseRoute=require("./route");var RouterDSL=require("./lib/dsl");var handlerCreator=require("./lib/handler_creator");var noneLocation=require("./location/none_location");var CherrytreeRoute=function(){this.initialize.apply(this,arguments)};_.extend(CherrytreeRoute.prototype,{initialize:function(options){var router=this;this.router=new Router;this.router.log=this.log;this.resolvers={};this.routes={};this.options=_.extend({location:noneLocation(),logging:false,onDidTransition:null,onURLChanged:null,BaseRoute:BaseRoute,resolver:function(name,cb){cb(router.routes[name])},map:null},options);if(this.options.routes){this.routes=this.options.routes}if(this.options.resolver){this.resolvers["application"]=this.options.resolver}if(this.options.logging){this.log=function(){console&&console.log.apply(console,arguments)}}if(this.options.map){this.map(this.options.map)}},map:function(callback){var router=this.router;var dsl=RouterDSL.map(function(){this.resource("application",{path:"/"},function(){callback.call(this)})});router.map(dsl.generate());_.extend(this.resolvers,dsl.resolvers);return this},startRouting:function(){var self=this;var router=this.router;var location=this.location=this.options.location||noneLocation();setupRouter(this,router,location);location.onChange(function(url){self.handleURL(url)});return this.handleURL(location.getURL())},transitionTo:function(){var args=[].slice.call(arguments);return doTransition(this,"transitionTo",args)},replaceWith:function(){var args=[].slice.call(arguments);return doTransition(this,"replaceWith",args)},generate:function(){var url=this.router.generate.apply(this.router,arguments);return this.location.formatURL(url)},isActive:function(routeName){var router=this.router;return router.isActive.apply(router,arguments)},send:function(name,context){this.router.trigger.apply(this.router,arguments)},hasRoute:function(route){return this.router.hasRoute(route)},getBranchNames:function(name){if(name==="application"){return["application"]}else if(name==="loading"){return["application","loading"]}else{var names=this.router.recognizer.names[name];return _.pluck(names.handlers,"handler")}},activeRoutes:function(name){var activeRoutes=_.pluck(_.pluck(this.router.currentHandlerInfos,"handler"),"route");if(name){for(var i=0,length=activeRoutes.length;i<length;i++){if(activeRoutes[i].name===name){return activeRoutes[i]}}}else{return activeRoutes}},activeRouteNames:function(){return _.pluck(_.pluck(_.pluck(this.router.currentHandlerInfos,"handler"),"route"),"name")},destroy:function(){if(this.location.destroy){this.location.destroy()}},log:function(){},didTransition:function(infos){if(this.options.onDidTransition){this.options.onDidTransition(routePath(infos))}},handleURL:function(url){scheduleLoadingRouteEntry(this);var self=this;return this.router.handleURL(url).then(function(){transitionCompleted(self)},function(err){transitionFailed(err,self);return err})},reset:function(){this.router.reset()}});return CherrytreeRoute;function assert(desc,test){if(!test)throw new Error("assertion failed: "+desc)}function routePath(handlerInfos){var path=[];for(var i=1,l=handlerInfos.length;i<l;i++){var name=handlerInfos[i].name,nameParts=name.split(".");path.push(nameParts[nameParts.length-1])}return path.join(".")}function setupRouter(cherrytree,router,location){router.getHandler=handlerCreator(cherrytree);router.updateURL=function(path){location.setURL(path)};router.replaceURL=function(path){location.replaceURL(path)};router.didTransition=function(infos){cherrytree.didTransition(infos)}}function doTransition(router,method,args){args=[].slice.call(args);args[0]=args[0]||"/";var passedName=args[0],name;if(passedName.charAt(0)==="/"){name=passedName}else{if(!router.router.hasRoute(passedName)){name=args[0]=passedName+".index"}else{name=passedName}assert("The route "+passedName+" was not found",router.router.hasRoute(name))}scheduleLoadingRouteEntry(router);var transitionPromise=router.router[method].apply(router.router,args);transitionPromise.then(function(){transitionCompleted(router)},function(err){transitionFailed(err,router);return err});return transitionPromise}function scheduleLoadingRouteEntry(router){if(router._loadingRouteActive){return}router._shouldEnterLoadingRoute=true;setTimeout(function(){enterLoadingRoute(router)},1)}function enterLoadingRoute(router){if(router._loadingRouteActive||!router._shouldEnterLoadingRoute){return}var loadingRoute=router.router.getHandler("loading");if(loadingRoute){if(loadingRoute.model){loadingRoute.model()}if(loadingRoute.enter){loadingRoute.enter()}if(loadingRoute.setup){loadingRoute.setup()}router._loadingRouteActive=true}}function exitLoadingRoute(router){router._shouldEnterLoadingRoute=false;if(!router._loadingRouteActive){return}var loadingRoute=router.router.getHandler("loading");if(loadingRoute&&loadingRoute.exit){loadingRoute.exit()}router._loadingRouteActive=false}function transitionCompleted(router){exitLoadingRoute(router);if(router.options.onURLChanged){router.options.onURLChanged(router.location.getURL())}}function transitionFailed(err,router){if(!router.router.activeTransition){transitionCompleted(router)}if(err.name!=="TransitionAborted"){console&&console.error(err.stack?err.stack:err)}}})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"./lib/dsl":2,"./lib/handler_creator":3,"./lib/util":6,"./location/none_location":7,"./route":8,"./vendor/router":11}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){(function(define){"use strict";define(function(){var _={};var breaker={};var ArrayProto=Array.prototype;var slice=ArrayProto.slice;var nativeMap=ArrayProto.map;var nativeForEach=ArrayProto.forEach;var nativeKeys=Object.keys;_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys.push(key);return keys};var each=_.each=function(obj,iterator,context){if(obj===null)return;var i,length;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(i=0,length=obj.length;i<length;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{var keys=_.keys(obj);for(i=0,length=keys.length;i<length;i++){if(iterator.call(context,obj[keys[i]],keys[i],obj)===breaker)return}}};_.map=function(obj,iterator,context){var results=[];if(obj===null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results.push(iterator.call(context,value,index,list))});return results};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};var idCounter=0;_.uniqueId=function uniqueId(prefix){var id=++idCounter+"";return prefix?prefix+id:id};return _})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{}],2:[function(require,module,exports){(function(define){"use strict";define(function(){var exp={};var bind=window.addEventListener?"addEventListener":"attachEvent",unbind=window.removeEventListener?"removeEventListener":"detachEvent",prefix=bind!=="addEventListener"?"on":"";exp.bind=function(el,type,fn,capture){el[bind](prefix+type,fn,capture||false);return fn};exp.unbind=function(el,type,fn,capture){el[unbind](prefix+type,fn,capture||false);return fn};return exp})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{}],3:[function(require,module,exports){(function(define){"use strict";define(function(require){var events=require("./events");var exports={};var link=function(element){element={parentNode:element};var root=document;while((element=element.parentNode)&&element!==document){if(element.tagName.toLowerCase()==="a"){return element}if(element===root){return}}};var delegate=function(el,type,fn){return events.bind(el,type,function(e){var target=e.target||e.srcElement;var el=link(target);if(el){fn(e,el)}})};var undelegate=function(el,type,fn){events.unbind(el,type,fn)};exports.delegate=function(el,fn){if("function"===typeof el){fn=el;el=document}delegate(el,"click",function(e,el){if(clickable(e,el))fn(e,el)})};exports.undelegate=function(el,fn){if("function"===typeof el){fn=el;el=document}undelegate(el,"click",fn)};function clickable(e,el){if(1!==which(e))return;if(e.metaKey||e.ctrlKey||e.shiftKey)return;if(e.defaultPrevented)return;if(el.target)return;if(el.getAttribute("data-bypass")!==null)return;var href=el.getAttribute("href");if(!href||href.length===0)return;if(href[0]==="#")return;if(href.indexOf("http://")===0||href.indexOf("https://")===0)return;if(href.indexOf("javascript:")===0)return;return true}function which(e){e=e||window.event;return null===e.which?e.button:e.which}return exports})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"./events":2}],4:[function(require,module,exports){(function(define){define(function(){var _={};_.extend=function extend(obj,source){for(var prop in source){obj[prop]=source[prop]}return obj};_.any=function any(arr,fn){for(var i=0,l=arr.length;i<l;i++){if(fn(arr[i])){return true}}return false};function on(obj,type,fn){if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event)};obj.attachEvent("on"+type,obj[type+fn])}else{obj.addEventListener(type,fn,false)}}function off(obj,type,fn){if(obj.detachEvent){obj.detachEvent("on"+type,obj[type+fn]);obj[type+fn]=null}else{obj.removeEventListener(type,fn,false)}}var History=function(){this.handlers=[];var self=this;var checkUrl=this.checkUrl;this.checkUrl=function(){checkUrl.apply(self,arguments)};if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var routeStripper=/^[#\/]|\s+$/g;var rootStripper=/^\/+|\/+$/g;var isExplorer=/msie [\w.]+/;var trailingSlash=/\/$/;var pathStripper=/#.*$/;History.started=false;_.extend(History.prototype,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(window){var match=(window||this).location.href.match(/#(.*)$/);return match?match[1]:""},getFragment:function(fragment,forcePushState){if(fragment==null){if(this._hasPushState||!this._wantsHashChange||forcePushState){fragment=decodeURI(this.location.pathname+this.location.search);var root=this.root.replace(trailingSlash,"");if(!fragment.indexOf(root))fragment=fragment.slice(root.length)}else{fragment=this.getHash()}}return fragment.replace(routeStripper,"")},start:function(options){if(History.started)throw new Error("LocationBar has already been started");History.started=true;this.options=_.extend({root:"/"},options);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var fragment=this.getFragment();var docMode=document.documentMode;var oldIE=isExplorer.exec(navigator.userAgent.toLowerCase())&&(!docMode||docMode<=7);this.root=("/"+this.root+"/").replace(rootStripper,"/");if(oldIE&&this._wantsHashChange){this.iframe=document.createElement("iframe");this.iframe.setAttribute("src","javascript:0");this.iframe.setAttribute("tabindex",-1);this.iframe.style.display="none";document.body.appendChild(this.iframe);this.iframe=this.iframe.contentWindow;this.navigate(fragment)}if(this._hasPushState){on(window,"popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!oldIE){on(window,"hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=fragment;var loc=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&loc.hash){this.fragment=this.getHash().replace(routeStripper,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){off(window,"popstate",this.checkUrl);off(window,"hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);History.started=false},route:function(route,callback){this.handlers.unshift({route:route,callback:callback})},checkUrl:function(){var current=this.getFragment();if(current===this.fragment&&this.iframe){current=this.getFragment(this.getHash(this.iframe))}if(current===this.fragment)return false;if(this.iframe)this.navigate(current);this.loadUrl()},loadUrl:function(fragment){fragment=this.fragment=this.getFragment(fragment);return _.any(this.handlers,function(handler){if(handler.route.test(fragment)){handler.callback(fragment);return true}})},navigate:function(fragment,options){if(!History.started)return false;if(!options||options===true)options={trigger:!!options};var url=this.root+(fragment=this.getFragment(fragment||""));fragment=fragment.replace(pathStripper,"");if(this.fragment===fragment)return;this.fragment=fragment;if(fragment===""&&url!=="/")url=url.slice(0,-1);if(this._hasPushState){this.history[options.replace?"replaceState":"pushState"]({},document.title,url)}else if(this._wantsHashChange){this._updateHash(this.location,fragment,options.replace);if(this.iframe&&fragment!==this.getFragment(this.getHash(this.iframe))){if(!options.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,fragment,options.replace)}}else{return this.location.assign(url)}if(options.trigger)return this.loadUrl(fragment)},_updateHash:function(location,fragment,replace){if(replace){var href=location.href.replace(/(javascript:|#).*$/,"");location.replace(href+"#"+fragment)}else{location.hash="#"+fragment}}});History.prototype.update=function(){this.navigate.apply(this,arguments)};History.prototype.onChange=function(callback){this.route(/^(.*?)$/,callback)};History.prototype.hasPushState=function(){if(!History.started){throw new Error("only available after LocationBar.start()")}return this._hasPushState};return History})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{}],"cherrytree/location/history_location":[function(require,module,exports){(function(define){"use strict";define(function(require){var _=require("../lib/util");var links=require("./history_location/link_delegate");var LocationBar=require("location-bar");var HistoryLocation=function(options){this.path="";this.options=_.extend({pushState:false,interceptLinks:true,root:"/"},options);var self=this;this.locationBar=new LocationBar;this.locationBar.onChange(function(path){self.handleURL("/"+(path||""))});this.locationBar.start(_.extend({},options));if(this.usesPushState()&&this.options.interceptLinks){this.interceptLinks()}};HistoryLocation.prototype.usesPushState=function(){return this.options.pushState&&this.locationBar.hasPushState()};HistoryLocation.prototype.getURL=function(){return this.path};HistoryLocation.prototype.setURL=function(path){if(this.path!==path){this.path=path;this.locationBar.update(path,{trigger:false})}};HistoryLocation.prototype.replaceURL=function(path){if(this.path!==path){this.path=path;this.locationBar.update(path,{trigger:false,replace:true})}};HistoryLocation.prototype.onChange=function(callback){this.changeCallback=callback};HistoryLocation.prototype.formatURL=function(path){if(this.locationBar.hasPushState()){var rootURL=this.options.root;if(path!==""){rootURL=rootURL.replace(/\/$/,"")}return rootURL+path}else{if(path[0]==="/"){path=path.substr(1)}return"#"+path}};HistoryLocation.prototype.destroy=function(){this.locationBar.stop();if(this.linkHandler){links.undelegate(this.linkHandler)}};HistoryLocation.prototype.interceptLinks=function(){var self=this;this.linkHandler=function(e,link){e.preventDefault();self.navigate(link.getAttribute("href"))};links.delegate(this.linkHandler)};HistoryLocation.prototype.navigate=function(url){this.locationBar.update(url,{trigger:true})};HistoryLocation.prototype.handleURL=function(url){this.path=url;if(this.changeCallback){this.changeCallback(url)}};return HistoryLocation})})(typeof define==="function"&&define.amd?define:function(factory){module.exports=factory(require)})},{"../lib/util":1,"./history_location/link_delegate":3,"location-bar":4}]},{},[]);var requestAnimationFrame=require("cherrytree");var requestAnimationFrame=require("cherrytree/location/history_location"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"cherrytree": "0.4.0" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; } | |
body, html { height: 100%; width: 100%; }</style> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment