Files
pluto/js/re_frame/core.js
T
Julien Eluard ecc4350dd6 Deploy website
Deploy website version based on c1349d8c7b
2018-11-08 09:47:44 +01:00

369 lines
15 KiB
JavaScript

// Compiled by ClojureScript 1.10.439 {:static-fns true, :optimize-constants true}
goog.provide('re_frame.core');
goog.require('cljs.core');
goog.require('cljs.core.constants');
goog.require('re_frame.events');
goog.require('re_frame.subs');
goog.require('re_frame.interop');
goog.require('re_frame.db');
goog.require('re_frame.fx');
goog.require('re_frame.cofx');
goog.require('re_frame.router');
goog.require('re_frame.loggers');
goog.require('re_frame.registrar');
goog.require('re_frame.interceptor');
goog.require('re_frame.std_interceptors');
goog.require('clojure.set');
re_frame.core.dispatch = re_frame.router.dispatch;
re_frame.core.dispatch_sync = re_frame.router.dispatch_sync;
re_frame.core.reg_sub = re_frame.subs.reg_sub;
re_frame.core.subscribe = re_frame.subs.subscribe;
re_frame.core.clear_sub = cljs.core.partial.cljs$core$IFn$_invoke$arity$2(re_frame.registrar.clear_handlers,re_frame.subs.kind);
re_frame.core.clear_subscription_cache_BANG_ = re_frame.subs.clear_subscription_cache_BANG_;
/**
* This is a low level, advanced function. You should probably be
* using reg-sub instead.
* Docs in https://github.com/Day8/re-frame/blob/master/docs/SubscriptionFlow.md
*/
re_frame.core.reg_sub_raw = (function re_frame$core$reg_sub_raw(query_id,handler_fn){
return re_frame.registrar.register_handler(re_frame.subs.kind,query_id,handler_fn);
});
re_frame.core.reg_fx = re_frame.fx.reg_fx;
re_frame.core.clear_fx = cljs.core.partial.cljs$core$IFn$_invoke$arity$2(re_frame.registrar.clear_handlers,re_frame.fx.kind);
re_frame.core.reg_cofx = re_frame.cofx.reg_cofx;
re_frame.core.inject_cofx = re_frame.cofx.inject_cofx;
re_frame.core.clear_cofx = cljs.core.partial.cljs$core$IFn$_invoke$arity$2(re_frame.registrar.clear_handlers,re_frame.cofx.kind);
/**
* Register the given event `handler` (function) for the given `id`. Optionally, provide
* an `interceptors` chain.
* `id` is typically a namespaced keyword (but can be anything)
* `handler` is a function: (db event) -> db
* `interceptors` is a collection of interceptors. Will be flattened and nils removed.
* `handler` is wrapped in its own interceptor and added to the end of the interceptor
* chain, so that, in the end, only a chain is registered.
* Special effects and coeffects interceptors are added to the front of this
* chain.
*/
re_frame.core.reg_event_db = (function re_frame$core$reg_event_db(var_args){
var G__4999 = arguments.length;
switch (G__4999) {
case 2:
return re_frame.core.reg_event_db.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return re_frame.core.reg_event_db.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
re_frame.core.reg_event_db.cljs$core$IFn$_invoke$arity$2 = (function (id,handler){
return re_frame.core.reg_event_db.cljs$core$IFn$_invoke$arity$3(id,null,handler);
});
re_frame.core.reg_event_db.cljs$core$IFn$_invoke$arity$3 = (function (id,interceptors,handler){
return re_frame.events.register(id,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [re_frame.cofx.inject_db,re_frame.fx.do_fx,interceptors,re_frame.std_interceptors.db_handler__GT_interceptor(handler)], null));
});
re_frame.core.reg_event_db.cljs$lang$maxFixedArity = 3;
/**
* Register the given event `handler` (function) for the given `id`. Optionally, provide
* an `interceptors` chain.
* `id` is typically a namespaced keyword (but can be anything)
* `handler` is a function: (coeffects-map event-vector) -> effects-map
* `interceptors` is a collection of interceptors. Will be flattened and nils removed.
* `handler` is wrapped in its own interceptor and added to the end of the interceptor
* chain, so that, in the end, only a chain is registered.
* Special effects and coeffects interceptors are added to the front of the
* interceptor chain. These interceptors inject the value of app-db into coeffects,
* and, later, action effects.
*/
re_frame.core.reg_event_fx = (function re_frame$core$reg_event_fx(var_args){
var G__5002 = arguments.length;
switch (G__5002) {
case 2:
return re_frame.core.reg_event_fx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return re_frame.core.reg_event_fx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
re_frame.core.reg_event_fx.cljs$core$IFn$_invoke$arity$2 = (function (id,handler){
return re_frame.core.reg_event_fx.cljs$core$IFn$_invoke$arity$3(id,null,handler);
});
re_frame.core.reg_event_fx.cljs$core$IFn$_invoke$arity$3 = (function (id,interceptors,handler){
return re_frame.events.register(id,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [re_frame.cofx.inject_db,re_frame.fx.do_fx,interceptors,re_frame.std_interceptors.fx_handler__GT_interceptor(handler)], null));
});
re_frame.core.reg_event_fx.cljs$lang$maxFixedArity = 3;
/**
* Register the given event `handler` (function) for the given `id`. Optionally, provide
* an `interceptors` chain.
* `id` is typically a namespaced keyword (but can be anything)
* `handler` is a function: (context-map event-vector) -> context-map
*
* This form of registration is almost never used.
*/
re_frame.core.reg_event_ctx = (function re_frame$core$reg_event_ctx(var_args){
var G__5005 = arguments.length;
switch (G__5005) {
case 2:
return re_frame.core.reg_event_ctx.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return re_frame.core.reg_event_ctx.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
re_frame.core.reg_event_ctx.cljs$core$IFn$_invoke$arity$2 = (function (id,handler){
return re_frame.core.reg_event_ctx.cljs$core$IFn$_invoke$arity$3(id,null,handler);
});
re_frame.core.reg_event_ctx.cljs$core$IFn$_invoke$arity$3 = (function (id,interceptors,handler){
return re_frame.events.register(id,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [re_frame.cofx.inject_db,re_frame.fx.do_fx,interceptors,re_frame.std_interceptors.ctx_handler__GT_interceptor(handler)], null));
});
re_frame.core.reg_event_ctx.cljs$lang$maxFixedArity = 3;
re_frame.core.clear_event = cljs.core.partial.cljs$core$IFn$_invoke$arity$2(re_frame.registrar.clear_handlers,re_frame.events.kind);
re_frame.core.debug = re_frame.std_interceptors.debug;
re_frame.core.path = re_frame.std_interceptors.path;
re_frame.core.enrich = re_frame.std_interceptors.enrich;
re_frame.core.trim_v = re_frame.std_interceptors.trim_v;
re_frame.core.after = re_frame.std_interceptors.after;
re_frame.core.on_changes = re_frame.std_interceptors.on_changes;
re_frame.core.__GT_interceptor = re_frame.interceptor.__GT_interceptor;
re_frame.core.get_coeffect = re_frame.interceptor.get_coeffect;
re_frame.core.assoc_coeffect = re_frame.interceptor.assoc_coeffect;
re_frame.core.get_effect = re_frame.interceptor.get_effect;
re_frame.core.assoc_effect = re_frame.interceptor.assoc_effect;
re_frame.core.enqueue = re_frame.interceptor.enqueue;
re_frame.core.set_loggers_BANG_ = re_frame.loggers.set_loggers_BANG_;
re_frame.core.console = re_frame.loggers.console;
/**
* Checkpoints the state of re-frame and returns a function which, when
* later called, will restore re-frame to that checkpointed state.
*
* Checkpoint includes app-db, all registered handlers and all subscriptions.
*
*/
re_frame.core.make_restore_fn = (function re_frame$core$make_restore_fn(){
var handlers = cljs.core.deref(re_frame.registrar.kind__GT_id__GT_handler);
var app_db = cljs.core.deref(re_frame.db.app_db);
var subs_cache = cljs.core.deref(re_frame.subs.query__GT_reaction);
return ((function (handlers,app_db,subs_cache){
return (function (){
var original_subs_5011 = cljs.core.set(cljs.core.vals(subs_cache));
var current_subs_5012 = cljs.core.set(cljs.core.vals(cljs.core.deref(re_frame.subs.query__GT_reaction)));
var seq__5007_5013 = cljs.core.seq(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(current_subs_5012,original_subs_5011));
var chunk__5008_5014 = null;
var count__5009_5015 = (0);
var i__5010_5016 = (0);
while(true){
if((i__5010_5016 < count__5009_5015)){
var sub_5017 = chunk__5008_5014.cljs$core$IIndexed$_nth$arity$2(null,i__5010_5016);
re_frame.interop.dispose_BANG_(sub_5017);
var G__5018 = seq__5007_5013;
var G__5019 = chunk__5008_5014;
var G__5020 = count__5009_5015;
var G__5021 = (i__5010_5016 + (1));
seq__5007_5013 = G__5018;
chunk__5008_5014 = G__5019;
count__5009_5015 = G__5020;
i__5010_5016 = G__5021;
continue;
} else {
var temp__5457__auto___5022 = cljs.core.seq(seq__5007_5013);
if(temp__5457__auto___5022){
var seq__5007_5023__$1 = temp__5457__auto___5022;
if(cljs.core.chunked_seq_QMARK_(seq__5007_5023__$1)){
var c__4461__auto___5024 = cljs.core.chunk_first(seq__5007_5023__$1);
var G__5025 = cljs.core.chunk_rest(seq__5007_5023__$1);
var G__5026 = c__4461__auto___5024;
var G__5027 = cljs.core.count(c__4461__auto___5024);
var G__5028 = (0);
seq__5007_5013 = G__5025;
chunk__5008_5014 = G__5026;
count__5009_5015 = G__5027;
i__5010_5016 = G__5028;
continue;
} else {
var sub_5029 = cljs.core.first(seq__5007_5023__$1);
re_frame.interop.dispose_BANG_(sub_5029);
var G__5030 = cljs.core.next(seq__5007_5023__$1);
var G__5031 = null;
var G__5032 = (0);
var G__5033 = (0);
seq__5007_5013 = G__5030;
chunk__5008_5014 = G__5031;
count__5009_5015 = G__5032;
i__5010_5016 = G__5033;
continue;
}
} else {
}
}
break;
}
cljs.core.reset_BANG_(re_frame.registrar.kind__GT_id__GT_handler,handlers);
cljs.core.reset_BANG_(re_frame.db.app_db,app_db);
return null;
});
;})(handlers,app_db,subs_cache))
});
/**
* Remove all events queued for processing
*/
re_frame.core.purge_event_queue = (function re_frame$core$purge_event_queue(){
return re_frame.router.event_queue.re_frame$router$IEventQueue$purge$arity$1(null);
});
/**
* Registers a function `f` to be called after each event is processed
* `f` will be called with two arguments:
* - `event`: a vector. The event just processed.
* - `queue`: a PersistentQueue, possibly empty, of events yet to be processed.
*
* This is useful in advanced cases like:
* - you are implementing a complex bootstrap pipeline
* - you want to create your own handling infrastructure, with perhaps multiple
* handlers for the one event, etc. Hook in here.
* - libraries providing 'isomorphic javascript' rendering on Nodejs or Nashorn.
*
* 'id' is typically a keyword. Supplied at "add time" so it can subsequently
* be used at "remove time" to get rid of the right callback.
*
*/
re_frame.core.add_post_event_callback = (function re_frame$core$add_post_event_callback(var_args){
var G__5035 = arguments.length;
switch (G__5035) {
case 1:
return re_frame.core.add_post_event_callback.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return re_frame.core.add_post_event_callback.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
re_frame.core.add_post_event_callback.cljs$core$IFn$_invoke$arity$1 = (function (f){
return re_frame.core.add_post_event_callback.cljs$core$IFn$_invoke$arity$2(f,f);
});
re_frame.core.add_post_event_callback.cljs$core$IFn$_invoke$arity$2 = (function (id,f){
return re_frame.router.event_queue.re_frame$router$IEventQueue$add_post_event_callback$arity$3(null,id,f);
});
re_frame.core.add_post_event_callback.cljs$lang$maxFixedArity = 2;
re_frame.core.remove_post_event_callback = (function re_frame$core$remove_post_event_callback(id){
return re_frame.router.event_queue.re_frame$router$IEventQueue$remove_post_event_callback$arity$2(null,id);
});
re_frame.core.register_handler = (function re_frame$core$register_handler(var_args){
var args__4647__auto__ = [];
var len__4641__auto___5042 = arguments.length;
var i__4642__auto___5043 = (0);
while(true){
if((i__4642__auto___5043 < len__4641__auto___5042)){
args__4647__auto__.push((arguments[i__4642__auto___5043]));
var G__5044 = (i__4642__auto___5043 + (1));
i__4642__auto___5043 = G__5044;
continue;
} else {
}
break;
}
var argseq__4648__auto__ = ((((0) < args__4647__auto__.length))?(new cljs.core.IndexedSeq(args__4647__auto__.slice((0)),(0),null)):null);
return re_frame.core.register_handler.cljs$core$IFn$_invoke$arity$variadic(argseq__4648__auto__);
});
re_frame.core.register_handler.cljs$core$IFn$_invoke$arity$variadic = (function (args){
var G__5038_5045 = cljs.core.cst$kw$warn;
var G__5039_5046 = "re-frame: \"register-handler\" has been renamed \"reg-event-db\" (look for registration of";
var G__5040_5047 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(args));
var G__5041_5048 = ")";
(re_frame.core.console.cljs$core$IFn$_invoke$arity$4 ? re_frame.core.console.cljs$core$IFn$_invoke$arity$4(G__5038_5045,G__5039_5046,G__5040_5047,G__5041_5048) : re_frame.core.console.call(null,G__5038_5045,G__5039_5046,G__5040_5047,G__5041_5048));
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(re_frame.core.reg_event_db,args);
});
re_frame.core.register_handler.cljs$lang$maxFixedArity = (0);
/** @this {Function} */
re_frame.core.register_handler.cljs$lang$applyTo = (function (seq5037){
var self__4629__auto__ = this;
return self__4629__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq5037));
});
re_frame.core.register_sub = (function re_frame$core$register_sub(var_args){
var args__4647__auto__ = [];
var len__4641__auto___5054 = arguments.length;
var i__4642__auto___5055 = (0);
while(true){
if((i__4642__auto___5055 < len__4641__auto___5054)){
args__4647__auto__.push((arguments[i__4642__auto___5055]));
var G__5056 = (i__4642__auto___5055 + (1));
i__4642__auto___5055 = G__5056;
continue;
} else {
}
break;
}
var argseq__4648__auto__ = ((((0) < args__4647__auto__.length))?(new cljs.core.IndexedSeq(args__4647__auto__.slice((0)),(0),null)):null);
return re_frame.core.register_sub.cljs$core$IFn$_invoke$arity$variadic(argseq__4648__auto__);
});
re_frame.core.register_sub.cljs$core$IFn$_invoke$arity$variadic = (function (args){
var G__5050_5057 = cljs.core.cst$kw$warn;
var G__5051_5058 = "re-frame: \"register-sub\" is deprecated. Use \"reg-sub-raw\" (look for registration of";
var G__5052_5059 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(args));
var G__5053_5060 = ")";
(re_frame.core.console.cljs$core$IFn$_invoke$arity$4 ? re_frame.core.console.cljs$core$IFn$_invoke$arity$4(G__5050_5057,G__5051_5058,G__5052_5059,G__5053_5060) : re_frame.core.console.call(null,G__5050_5057,G__5051_5058,G__5052_5059,G__5053_5060));
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(re_frame.core.reg_sub_raw,args);
});
re_frame.core.register_sub.cljs$lang$maxFixedArity = (0);
/** @this {Function} */
re_frame.core.register_sub.cljs$lang$applyTo = (function (seq5049){
var self__4629__auto__ = this;
return self__4629__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq5049));
});