147 lines
7.9 KiB
JavaScript
147 lines
7.9 KiB
JavaScript
// Compiled by ClojureScript 1.9.229 {}
|
|
goog.provide('re_com.tour');
|
|
goog.require('cljs.core');
|
|
goog.require('reagent.core');
|
|
goog.require('re_com.box');
|
|
goog.require('re_com.buttons');
|
|
/**
|
|
* Returns a map containing
|
|
* - A reagent atom for each tour step controlling popover show/hide (boolean)
|
|
* - A standard atom holding the current step (integer)
|
|
* - A copy of the steps parameter passed in, to determine the order for prev/next functions
|
|
* It sets the first step atom to true so that it will be initially shown
|
|
* Sample return value:
|
|
* {:steps [:step1 :step2 :step3]
|
|
* :current-step (atom 0)
|
|
* :step1 (reagent/atom true)
|
|
* :step2 (reagent/atom false)
|
|
* :step3 (reagent/atom false)}
|
|
*/
|
|
re_com.tour.make_tour = (function re_com$tour$make_tour(tour_spec){
|
|
var tour_map = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"current-step","current-step",-2023410137),cljs.core.atom.call(null,(0)),new cljs.core.Keyword(null,"steps","steps",-128433302),tour_spec], null);
|
|
return cljs.core.reduce.call(null,((function (tour_map){
|
|
return (function (p1__32433_SHARP_,p2__32434_SHARP_){
|
|
return cljs.core.assoc.call(null,p1__32433_SHARP_,p2__32434_SHARP_,reagent.core.atom.call(null,false));
|
|
});})(tour_map))
|
|
,tour_map,tour_spec);
|
|
});
|
|
/**
|
|
* Resets all poover atoms to false
|
|
*/
|
|
re_com.tour.initialise_tour = (function re_com$tour$initialise_tour(tour){
|
|
return cljs.core.doall.call(null,(function (){var iter__25910__auto__ = (function re_com$tour$initialise_tour_$_iter__32439(s__32440){
|
|
return (new cljs.core.LazySeq(null,(function (){
|
|
var s__32440__$1 = s__32440;
|
|
while(true){
|
|
var temp__4657__auto__ = cljs.core.seq.call(null,s__32440__$1);
|
|
if(temp__4657__auto__){
|
|
var s__32440__$2 = temp__4657__auto__;
|
|
if(cljs.core.chunked_seq_QMARK_.call(null,s__32440__$2)){
|
|
var c__25908__auto__ = cljs.core.chunk_first.call(null,s__32440__$2);
|
|
var size__25909__auto__ = cljs.core.count.call(null,c__25908__auto__);
|
|
var b__32442 = cljs.core.chunk_buffer.call(null,size__25909__auto__);
|
|
if((function (){var i__32441 = (0);
|
|
while(true){
|
|
if((i__32441 < size__25909__auto__)){
|
|
var step = cljs.core._nth.call(null,c__25908__auto__,i__32441);
|
|
cljs.core.chunk_append.call(null,b__32442,cljs.core.reset_BANG_.call(null,step.call(null,tour),false));
|
|
|
|
var G__32443 = (i__32441 + (1));
|
|
i__32441 = G__32443;
|
|
continue;
|
|
} else {
|
|
return true;
|
|
}
|
|
break;
|
|
}
|
|
})()){
|
|
return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__32442),re_com$tour$initialise_tour_$_iter__32439.call(null,cljs.core.chunk_rest.call(null,s__32440__$2)));
|
|
} else {
|
|
return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__32442),null);
|
|
}
|
|
} else {
|
|
var step = cljs.core.first.call(null,s__32440__$2);
|
|
return cljs.core.cons.call(null,cljs.core.reset_BANG_.call(null,step.call(null,tour),false),re_com$tour$initialise_tour_$_iter__32439.call(null,cljs.core.rest.call(null,s__32440__$2)));
|
|
}
|
|
} else {
|
|
return null;
|
|
}
|
|
break;
|
|
}
|
|
}),null,null));
|
|
});
|
|
return iter__25910__auto__.call(null,new cljs.core.Keyword(null,"steps","steps",-128433302).cljs$core$IFn$_invoke$arity$1(tour));
|
|
})());
|
|
});
|
|
/**
|
|
* Sets the first popover atom in the tour to true
|
|
*/
|
|
re_com.tour.start_tour = (function re_com$tour$start_tour(tour){
|
|
re_com.tour.initialise_tour.call(null,tour);
|
|
|
|
cljs.core.reset_BANG_.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour),(0));
|
|
|
|
return cljs.core.reset_BANG_.call(null,cljs.core.first.call(null,new cljs.core.Keyword(null,"steps","steps",-128433302).cljs$core$IFn$_invoke$arity$1(tour)).call(null,tour),true);
|
|
});
|
|
/**
|
|
* Closes all tour popovers
|
|
*/
|
|
re_com.tour.finish_tour = (function re_com$tour$finish_tour(tour){
|
|
return re_com.tour.initialise_tour.call(null,tour);
|
|
});
|
|
re_com.tour.next_tour_step = (function re_com$tour$next_tour_step(tour){
|
|
var steps = new cljs.core.Keyword(null,"steps","steps",-128433302).cljs$core$IFn$_invoke$arity$1(tour);
|
|
var old_step = cljs.core.deref.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour));
|
|
var new_step = (old_step + (1));
|
|
if((new_step < cljs.core.count.call(null,new cljs.core.Keyword(null,"steps","steps",-128433302).cljs$core$IFn$_invoke$arity$1(tour)))){
|
|
cljs.core.reset_BANG_.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour),new_step);
|
|
|
|
cljs.core.reset_BANG_.call(null,cljs.core.nth.call(null,steps,old_step).call(null,tour),false);
|
|
|
|
return cljs.core.reset_BANG_.call(null,cljs.core.nth.call(null,steps,new_step).call(null,tour),true);
|
|
} else {
|
|
return null;
|
|
}
|
|
});
|
|
re_com.tour.prev_tour_step = (function re_com$tour$prev_tour_step(tour){
|
|
var steps = new cljs.core.Keyword(null,"steps","steps",-128433302).cljs$core$IFn$_invoke$arity$1(tour);
|
|
var old_step = cljs.core.deref.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour));
|
|
var new_step = (old_step - (1));
|
|
if((new_step >= (0))){
|
|
cljs.core.reset_BANG_.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour),new_step);
|
|
|
|
cljs.core.reset_BANG_.call(null,cljs.core.nth.call(null,steps,old_step).call(null,tour),false);
|
|
|
|
return cljs.core.reset_BANG_.call(null,cljs.core.nth.call(null,steps,new_step).call(null,tour),true);
|
|
} else {
|
|
return null;
|
|
}
|
|
});
|
|
/**
|
|
* Generate the hr and previous/next buttons markup.
|
|
* If first button in tour, don't generate a Previous button.
|
|
* If last button in tour, change Next button to a Finish button
|
|
*/
|
|
re_com.tour.make_tour_nav = (function re_com$tour$make_tour_nav(tour){
|
|
var on_first_button = cljs.core._EQ_.call(null,cljs.core.deref.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour)),(0));
|
|
var on_last_button = cljs.core._EQ_.call(null,cljs.core.deref.call(null,new cljs.core.Keyword(null,"current-step","current-step",-2023410137).cljs$core$IFn$_invoke$arity$1(tour)),(cljs.core.count.call(null,new cljs.core.Keyword(null,"steps","steps",-128433302).cljs$core$IFn$_invoke$arity$1(tour)) - (1)));
|
|
return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1057191632),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"hr","hr",1377740067),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"style","style",-496642736),cljs.core.merge.call(null,re_com.box.flex_child_style.call(null,"none"),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"margin","margin",-995903681),"10px 0px 10px"], null))], null)], null),((on_first_button)?null:new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [re_com.buttons.button,new cljs.core.Keyword(null,"label","label",1718410804),"Previous",new cljs.core.Keyword(null,"on-click","on-click",1632826543),((function (on_first_button,on_last_button){
|
|
return (function (event){
|
|
re_com.tour.prev_tour_step.call(null,tour);
|
|
|
|
return null;
|
|
});})(on_first_button,on_last_button))
|
|
,new cljs.core.Keyword(null,"style","style",-496642736),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"margin-right","margin-right",809689658),"15px"], null),new cljs.core.Keyword(null,"class","class",-2030961996),"btn-default"], null)),new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [re_com.buttons.button,new cljs.core.Keyword(null,"label","label",1718410804),((on_last_button)?"Finish":"Next"),new cljs.core.Keyword(null,"on-click","on-click",1632826543),((function (on_first_button,on_last_button){
|
|
return (function (event){
|
|
if(on_last_button){
|
|
re_com.tour.finish_tour.call(null,tour);
|
|
} else {
|
|
re_com.tour.next_tour_step.call(null,tour);
|
|
}
|
|
|
|
return null;
|
|
});})(on_first_button,on_last_button))
|
|
,new cljs.core.Keyword(null,"class","class",-2030961996),"btn-default"], null)], null);
|
|
});
|
|
|
|
//# sourceMappingURL=tour.js.map?rel=1603199196399
|