150 lines
7.0 KiB
JavaScript
150 lines
7.0 KiB
JavaScript
goog.provide('emptyhead.idea.crud');
|
|
/**
|
|
* Helper function to scaffold an 'empty' idea.
|
|
*/
|
|
emptyhead.idea.crud.register_idea_BANG_ = (function emptyhead$idea$crud$register_idea_BANG_(ref){
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(emptyhead.idea.state.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ref,new cljs.core.Keyword(null,"_meta","_meta",937543236),new cljs.core.Keyword(null,"_properties","_properties",-1501471594)], null),cljs.core.PersistentHashSet.EMPTY);
|
|
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(emptyhead.idea.state.state,cljs.core.assoc_in,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [ref,new cljs.core.Keyword(null,"_meta","_meta",937543236),new cljs.core.Keyword(null,"_reference","_reference",-253513596)], null),ref);
|
|
|
|
return ref;
|
|
});
|
|
/**
|
|
* Swap data inside `idea` with given `data`.
|
|
* Returns a reference to `idea`.
|
|
*/
|
|
emptyhead.idea.crud.swap_idea_BANG_ = (function emptyhead$idea$crud$swap_idea_BANG_(idea,data){
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(emptyhead.idea.state.state,cljs.core.assoc,emptyhead.idea.protocol.reference(idea),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([data,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"_meta","_meta",937543236),emptyhead.idea.protocol.val_fn(new cljs.core.Keyword(null,"_meta","_meta",937543236),idea)], null)], 0)));
|
|
|
|
return emptyhead.idea.protocol.reference(idea);
|
|
});
|
|
/**
|
|
* Merge `data` into state of `idea`.
|
|
* Returns a reference to `idea`.
|
|
*/
|
|
emptyhead.idea.crud.extend_idea_BANG_ = (function emptyhead$idea$crud$extend_idea_BANG_(idea,data){
|
|
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(emptyhead.idea.state.state,cljs.core.assoc,emptyhead.idea.protocol.reference(idea),emptyhead.idea.protocol.val_fn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.merge,idea,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([data], 0)));
|
|
|
|
return emptyhead.idea.protocol.reference(idea);
|
|
});
|
|
/**
|
|
* Evaluate `fun` on `idea` with optional extra `args`, then replace `idea` by the result.
|
|
* Returns a reference to `idea`.
|
|
*/
|
|
emptyhead.idea.crud.mutate_idea_BANG_ = (function emptyhead$idea$crud$mutate_idea_BANG_(var_args){
|
|
var args__5732__auto__ = [];
|
|
var len__5726__auto___31653 = arguments.length;
|
|
var i__5727__auto___31654 = (0);
|
|
while(true){
|
|
if((i__5727__auto___31654 < len__5726__auto___31653)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___31654]));
|
|
|
|
var G__31655 = (i__5727__auto___31654 + (1));
|
|
i__5727__auto___31654 = G__31655;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
return emptyhead.idea.crud.mutate_idea_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
});
|
|
|
|
(emptyhead.idea.crud.mutate_idea_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (fun,idea,args){
|
|
emptyhead.idea.crud.swap_idea_BANG_(idea,emptyhead.idea.protocol.val_fn.cljs$core$IFn$_invoke$arity$variadic(fun,idea,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args], 0)));
|
|
|
|
return emptyhead.idea.protocol.reference(idea);
|
|
}));
|
|
|
|
(emptyhead.idea.crud.mutate_idea_BANG_.cljs$lang$maxFixedArity = (2));
|
|
|
|
/** @this {Function} */
|
|
(emptyhead.idea.crud.mutate_idea_BANG_.cljs$lang$applyTo = (function (seq31644){
|
|
var G__31645 = cljs.core.first(seq31644);
|
|
var seq31644__$1 = cljs.core.next(seq31644);
|
|
var G__31646 = cljs.core.first(seq31644__$1);
|
|
var seq31644__$2 = cljs.core.next(seq31644__$1);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__31645,G__31646,seq31644__$2);
|
|
}));
|
|
|
|
/**
|
|
* Delete `idea` from the state.
|
|
* Returns a copy of the `idea`.
|
|
*/
|
|
emptyhead.idea.crud.forget_idea_BANG_ = (function emptyhead$idea$crud$forget_idea_BANG_(idea){
|
|
var val = emptyhead.idea.protocol.value(idea);
|
|
cljs.core.apply.cljs$core$IFn$_invoke$arity$3(emptyhead.idea.property.remove_property_BANG_,idea,emptyhead.idea.property.properties(idea));
|
|
|
|
emptyhead.idea.protocol.ref_fn((function (p1__31647_SHARP_){
|
|
return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(emptyhead.idea.state.state,cljs.core.dissoc,p1__31647_SHARP_);
|
|
}),idea);
|
|
|
|
return emptyhead.idea.protocol.copy(val);
|
|
});
|
|
/**
|
|
* Instantiate up to `count` new ideas, optionally prefixing reference symbol with `prefix`.
|
|
* Additionally allows you to immediately attach `properties` and `data`.
|
|
* Returns a single idea or a list of ideas depending on whether `count` was given.
|
|
*/
|
|
emptyhead.idea.crud.have_idea_BANG_ = (function emptyhead$idea$crud$have_idea_BANG_(var_args){
|
|
var args__5732__auto__ = [];
|
|
var len__5726__auto___31656 = arguments.length;
|
|
var i__5727__auto___31657 = (0);
|
|
while(true){
|
|
if((i__5727__auto___31657 < len__5726__auto___31656)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___31657]));
|
|
|
|
var G__31658 = (i__5727__auto___31657 + (1));
|
|
i__5727__auto___31657 = G__31658;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((0) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);
|
|
return emptyhead.idea.crud.have_idea_BANG_.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);
|
|
});
|
|
|
|
(emptyhead.idea.crud.have_idea_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (p__31651){
|
|
var map__31652 = p__31651;
|
|
var map__31652__$1 = cljs.core.__destructure_map(map__31652);
|
|
var prefix = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__31652__$1,new cljs.core.Keyword(null,"prefix","prefix",-265908465),"idea_");
|
|
var count = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__31652__$1,new cljs.core.Keyword(null,"count","count",2139924085),(1));
|
|
var properties = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__31652__$1,new cljs.core.Keyword(null,"properties","properties",685819552),cljs.core.PersistentVector.EMPTY);
|
|
var data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__31652__$1,new cljs.core.Keyword(null,"data","data",-232669377));
|
|
var fun = (function (){
|
|
return emptyhead.idea.crud.register_idea_BANG_(cljs.core.gensym.cljs$core$IFn$_invoke$arity$1(prefix));
|
|
});
|
|
var ideas = cljs.core.take.cljs$core$IFn$_invoke$arity$2(count,cljs.core.repeatedly.cljs$core$IFn$_invoke$arity$1(fun));
|
|
cljs.core.run_BANG_((function (p1__31648_SHARP_){
|
|
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(emptyhead.idea.property.register_property_BANG_,p1__31648_SHARP_,properties);
|
|
}),ideas);
|
|
|
|
if(cljs.core.truth_(data)){
|
|
cljs.core.run_BANG_((function (p1__31649_SHARP_){
|
|
return emptyhead.idea.crud.extend_idea_BANG_(p1__31649_SHARP_,data);
|
|
}),ideas);
|
|
} else {
|
|
}
|
|
|
|
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(count,(1))){
|
|
return cljs.core.first(ideas);
|
|
} else {
|
|
return ideas;
|
|
}
|
|
}));
|
|
|
|
(emptyhead.idea.crud.have_idea_BANG_.cljs$lang$maxFixedArity = (0));
|
|
|
|
/** @this {Function} */
|
|
(emptyhead.idea.crud.have_idea_BANG_.cljs$lang$applyTo = (function (seq31650){
|
|
var self__5712__auto__ = this;
|
|
return self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq31650));
|
|
}));
|
|
|
|
|
|
//# sourceMappingURL=emptyhead.idea.crud.js.map
|