-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathtutorial.min.js
More file actions
19 lines (19 loc) · 5.97 KB
/
tutorial.min.js
File metadata and controls
19 lines (19 loc) · 5.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var Tutorial={startIndex:0,endIndex:0,selector:'.tutorial',onlyOnce:!1,styles:!0,bodyScroll:!1,removeAnimationConflicts:!1,btnFramework:'semantic',btnFinishText:'Finish',btnFinishClass:'ui button small basic',btnNextText:'Next',btnNextClass:'ui button small primary',dimmer:!0,tutorialCount:-999,scrollSelector:null,resolve:null,reject:null,start:()=>{Tutorial.tutorialCount=Tutorial.startIndex;if(Tutorial.removeAnimationConflicts){$('.animated').css('animation','unset')}
if(Tutorial.bodyScroll){Tutorial.scrollSelector='body'}else{Tutorial.scrollSelector='html'}
Tutorial.tutorialCount=0;$(Tutorial.selector).each(function(){var index=parseFloat($(this).attr('tutorial-index'));if(index>Tutorial.endIndex){Tutorial.endIndex=index}})
return new Promise((resolve,reject)=>{Tutorial.resolve=resolve;Tutorial.reject=reject;if(!Tutorial.checkOnlyOnce(Tutorial.onlyOnce)&&Tutorial.validateStart()){Tutorial.checkBtnClass()
Tutorial.createDimmer();Tutorial.initialAnimation()}})},checkBtnClass:()=>{if(Tutorial.btnFramework=='custom'){}else if(Tutorial.btnFramework=='bootstrap'){Tutorial.btnFinishClass='btn btn-sm btn-default';Tutorial.btnNextClass='btn btn-sm btn-primary'}else if(Tutorial.btnFramework=='materialize'){Tutorial.btnFinishClass='waves-effect btn';Tutorial.btnNextClass='waves-effect waves-light btn'}else{Tutorial.btnFinishClass='ui button small basic';Tutorial.btnNextClass='ui button small primary'}},validateStart:()=>{if($(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']')[0]==undefined){Tutorial.reject('Incorrect start index');return!1}
return!0},checkOnlyOnce:(onlyOnce)=>{let path='Tutorial-route-'+window.location.pathname;if(onlyOnce){let check=Tutorial.checkCookie(path)
if(check){Tutorial.resolve('onlyOnce');return!0}else{Tutorial.setCookie(path,!0,999)}}else{Tutorial.setCookie(path,'',999)}
return!1},initialAnimation:()=>{let vh=document.documentElement.clientHeight;vh=vh/3;$(Tutorial.scrollSelector).animate({scrollTop:$(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']').offset().top-vh},"slow",()=>{Tutorial.triggerTutorialPopups()})},triggerTutorialPopups:()=>{Tutorial.showDimmer()
Tutorial.checkEndIndex();Tutorial.checkStyles();if($(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']')[0]!=undefined){$(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']').popup({position:'top center',on:'manual',html:Tutorial.renderHtmlTutorial(Tutorial.tutorialCount),onRemove:()=>{Tutorial.triggerTutorialPopups()}});$(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']').popup('show')}else{Tutorial.hideDimmer();Tutorial.resolve("finished")}
Tutorial.tutorialCount++},checkEndIndex:()=>{if(Tutorial.endIndex<Tutorial.tutorialCount){Tutorial.sanitizeZindex();Tutorial.tutorialCount=-999;Tutorial.resolve("outOfIndex");Tutorial.hideDimmer();$(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']').popup('hide')}},checkStyles:()=>{if(Tutorial.styles){let previusContainer=$(Tutorial.selector+'[ tutorial-index='+(Tutorial.tutorialCount-1)+']');previusContainer.css({'position':'auto',})
let container=$(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']');container.css({'position':'relative',})}},createDimmer:()=>{if(Tutorial.dimmer){$(document).ready(()=>{if($('.tutorial_dimmer')[0]==undefined){let element='<div style="margin: 0px; padding: 0px; background: #000; opacity: 0; height: 100%; width: 100%; z-index: 999; top: -100%; position: fixed; overflow: hidden;" class="tutorial_dimmer"></div>';$("html").append(element)}})}},renderHtmlTutorial:(count)=>{Tutorial.sanitizeZindex();let title=$(Tutorial.selector+'[ tutorial-index='+count+']').attr('tutorial-title')
let text=$(Tutorial.selector+'[ tutorial-index='+count+']').attr('tutorial-text')
let popUpHtml='<strong>'+title+'</strong>'+'<p> '+text+'</p>'+'<button class="'+Tutorial.btnFinishClass+'" tutotrial-val="'+Tutorial.selector+'[ tutorial-index='+count+']'+'" count="'+count+'" onclick="Tutorial.finishTutorial(this)">'+Tutorial.btnFinishText+'</button>';if(Tutorial.endIndex!=Tutorial.tutorialCount){popUpHtml+='<button tutotrial-val="'+Tutorial.selector+'[ tutorial-index='+count+']'+'" class="'+Tutorial.btnNextClass+'" onclick="Tutorial.closePopup(this, '+count+')">'+Tutorial.btnNextText+'</button>'}
return popUpHtml},sanitizeZindex:(finish=!1)=>{$(Tutorial.selector+'[ tutorial-index='+(Tutorial.tutorialCount-1)+']').css('z-index','auto')
if(!finish){$(Tutorial.selector+'[ tutorial-index='+Tutorial.tutorialCount+']').css('z-index','1000')}},closePopup:(element,count)=>{let oldPopup=$(element).attr('tutotrial-val');if($(Tutorial.selector+'[ tutorial-index='+(count+1)+']').offset()!=undefined){let element=$(Tutorial.selector+'[ tutorial-index='+(count+1)+']');let scroll=Tutorial.calcPopUpPosition(element);$(Tutorial.scrollSelector).animate({scrollTop:parseInt(scroll)},"slow",()=>{$(oldPopup).popup('hide')})}else{$(oldPopup).popup('hide')}},calcPopUpPosition:(element)=>{let vh=document.documentElement.clientHeight;vh=vh/3;let position=element.offset().top;return position-vh},finishTutorial:(element)=>{if(Tutorial.tutorialCount-1==Tutorial.endIndex){Tutorial.resolve('finished')}else{Tutorial.resolve('canceled')}
let popupName=$(element).attr('tutotrial-val');$(popupName).popup('hide')
Tutorial.sanitizeZindex(!0);Tutorial.tutorialCount=-999},showDimmer:()=>{if(Tutorial.dimmer){$('.tutorial_dimmer').css('top','0');$('.tutorial_dimmer').animate({opacity:0.4})}},hideDimmer:()=>{if(Tutorial.dimmer){$('.tutorial_dimmer').animate({opacity:0},()=>{$('.tutorial_dimmer').css('top','-100%')})}},setCookie:(cname,cvalue,exdays)=>{var d=new Date();d.setTime(d.getTime()+(exdays*24*60*60*1000));var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"},getCookie:(cname)=>{var name=cname+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1)}
if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}
return ""},checkCookie:(cookie)=>{var _cookie=getCookie(cookie);if(_cookie!=""){return!0}else{return!1}}}