fix font issue?
This commit is contained in:
parent
d9aeaea98c
commit
44701855dd
20 changed files with 0 additions and 632 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
{"Target":"assets/css/external.min.css","MediaType":"text/css","Data":{}}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
{"Target":"css/style.min.css","MediaType":"text/css","Data":{}}
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
/*!
|
||||
* baguetteBox.js
|
||||
* @author feimosi
|
||||
* @version 1.11.0
|
||||
* @url https://github.com/feimosi/baguetteBox.js
|
||||
*/(function(root,factory){'use strict';if(typeof define==='function'&&define.amd){define(factory);}else if(typeof exports==='object'){module.exports=factory();}else{root.baguetteBox=factory();}}(this,function(){'use strict';var leftArrow='<svg width="44" height="60">'+
|
||||
'<polyline points="30 10 10 30 30 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"'+
|
||||
'stroke-linecap="butt" fill="none" stroke-linejoin="round"/>'+
|
||||
'</svg>',rightArrow='<svg width="44" height="60">'+
|
||||
'<polyline points="14 10 34 30 14 50" stroke="rgba(255,255,255,0.5)" stroke-width="4"'+
|
||||
'stroke-linecap="butt" fill="none" stroke-linejoin="round"/>'+
|
||||
'</svg>',closeX='<svg width="30" height="30">'+
|
||||
'<g stroke="rgb(160,160,160)" stroke-width="4">'+
|
||||
'<line x1="5" y1="5" x2="25" y2="25"/>'+
|
||||
'<line x1="5" y1="25" x2="25" y2="5"/>'+
|
||||
'</g></svg>';var options={},defaults={captions:true,buttons:'auto',fullScreen:false,noScrollbars:false,bodyClass:'baguetteBox-open',titleTag:false,async:false,preload:2,animation:'slideIn',afterShow:null,afterHide:null,onChange:null,overlayBackgroundColor:'rgba(0,0,0,.8)'};var supports={};var overlay,slider,previousButton,nextButton,closeButton;var currentGallery=[];var currentIndex=0;var isOverlayVisible=false;var touch={};var touchFlag=false;var regex=/.+\.(gif|jpe?g|png|webp)/i;var data={};var imagesElements=[];var documentLastFocus=null;var overlayClickHandler=function(event){if(event.target.id.indexOf('baguette-img')!==-1){hideOverlay();}};var previousButtonClickHandler=function(event){event.stopPropagation?event.stopPropagation():event.cancelBubble=true;showPreviousImage();};var nextButtonClickHandler=function(event){event.stopPropagation?event.stopPropagation():event.cancelBubble=true;showNextImage();};var closeButtonClickHandler=function(event){event.stopPropagation?event.stopPropagation():event.cancelBubble=true;hideOverlay();};var touchstartHandler=function(event){touch.count++;if(touch.count>1){touch.multitouch=true;}
|
||||
touch.startX=event.changedTouches[0].pageX;touch.startY=event.changedTouches[0].pageY;};var touchmoveHandler=function(event){if(touchFlag||touch.multitouch){return;}
|
||||
event.preventDefault?event.preventDefault():event.returnValue=false;var touchEvent=event.touches[0]||event.changedTouches[0];if(touchEvent.pageX-touch.startX>40){touchFlag=true;showPreviousImage();}else if(touchEvent.pageX-touch.startX<-40){touchFlag=true;showNextImage();}else if(touch.startY-touchEvent.pageY>100){hideOverlay();}};var touchendHandler=function(){touch.count--;if(touch.count<=0){touch.multitouch=false;}
|
||||
touchFlag=false;};var contextmenuHandler=function(){touchendHandler();};var trapFocusInsideOverlay=function(event){if(overlay.style.display==='block'&&(overlay.contains&&!overlay.contains(event.target))){event.stopPropagation();initFocus();}};if(![].forEach){Array.prototype.forEach=function(callback,thisArg){for(var i=0;i<this.length;i++){callback.call(thisArg,this[i],i,this);}};}
|
||||
if(![].filter){Array.prototype.filter=function(a,b,c,d,e){c=this;d=[];for(e=0;e<c.length;e++)
|
||||
a.call(b,c[e],e,c)&&d.push(c[e]);return d;};}
|
||||
function run(selector,userOptions){supports.transforms=testTransformsSupport();supports.svg=testSvgSupport();supports.passiveEvents=testPassiveEventsSupport();buildOverlay();removeFromCache(selector);return bindImageClickListeners(selector,userOptions);}
|
||||
function bindImageClickListeners(selector,userOptions){var galleryNodeList=document.querySelectorAll(selector);var selectorData={galleries:[],nodeList:galleryNodeList};data[selector]=selectorData;[].forEach.call(galleryNodeList,function(galleryElement){if(userOptions&&userOptions.filter){regex=userOptions.filter;}
|
||||
var tagsNodeList=[];if(galleryElement.tagName==='A'){tagsNodeList=[galleryElement];}else{tagsNodeList=galleryElement.getElementsByTagName('a');}
|
||||
tagsNodeList=[].filter.call(tagsNodeList,function(element){if(element.className.indexOf(userOptions&&userOptions.ignoreClass)===-1){return regex.test(element.href);}});if(tagsNodeList.length===0){return;}
|
||||
var gallery=[];[].forEach.call(tagsNodeList,function(imageElement,imageIndex){var imageElementClickHandler=function(event){event.preventDefault?event.preventDefault():event.returnValue=false;prepareOverlay(gallery,userOptions);showOverlay(imageIndex);};var imageItem={eventHandler:imageElementClickHandler,imageElement:imageElement};bind(imageElement,'click',imageElementClickHandler);gallery.push(imageItem);});selectorData.galleries.push(gallery);});return selectorData.galleries;}
|
||||
function clearCachedData(){for(var selector in data){if(data.hasOwnProperty(selector)){removeFromCache(selector);}}}
|
||||
function removeFromCache(selector){if(!data.hasOwnProperty(selector)){return;}
|
||||
var galleries=data[selector].galleries;[].forEach.call(galleries,function(gallery){[].forEach.call(gallery,function(imageItem){unbind(imageItem.imageElement,'click',imageItem.eventHandler);});if(currentGallery===gallery){currentGallery=[];}});delete data[selector];}
|
||||
function buildOverlay(){overlay=getByID('baguetteBox-overlay');if(overlay){slider=getByID('baguetteBox-slider');previousButton=getByID('previous-button');nextButton=getByID('next-button');closeButton=getByID('close-button');return;}
|
||||
overlay=create('div');overlay.setAttribute('role','dialog');overlay.id='baguetteBox-overlay';document.getElementsByTagName('body')[0].appendChild(overlay);slider=create('div');slider.id='baguetteBox-slider';overlay.appendChild(slider);previousButton=create('button');previousButton.setAttribute('type','button');previousButton.id='previous-button';previousButton.setAttribute('aria-label','Previous');previousButton.innerHTML=supports.svg?leftArrow:'<';overlay.appendChild(previousButton);nextButton=create('button');nextButton.setAttribute('type','button');nextButton.id='next-button';nextButton.setAttribute('aria-label','Next');nextButton.innerHTML=supports.svg?rightArrow:'>';overlay.appendChild(nextButton);closeButton=create('button');closeButton.setAttribute('type','button');closeButton.id='close-button';closeButton.setAttribute('aria-label','Close');closeButton.innerHTML=supports.svg?closeX:'×';overlay.appendChild(closeButton);previousButton.className=nextButton.className=closeButton.className='baguetteBox-button';bindEvents();}
|
||||
function keyDownHandler(event){switch(event.keyCode){case 37:showPreviousImage();break;case 39:showNextImage();break;case 27:hideOverlay();break;case 36:showFirstImage(event);break;case 35:showLastImage(event);break;}}
|
||||
function bindEvents(){var options=supports.passiveEvents?{passive:true}:null;bind(overlay,'click',overlayClickHandler);bind(previousButton,'click',previousButtonClickHandler);bind(nextButton,'click',nextButtonClickHandler);bind(closeButton,'click',closeButtonClickHandler);bind(slider,'contextmenu',contextmenuHandler);bind(overlay,'touchstart',touchstartHandler,options);bind(overlay,'touchmove',touchmoveHandler,options);bind(overlay,'touchend',touchendHandler);bind(document,'focus',trapFocusInsideOverlay,true);}
|
||||
function unbindEvents(){var options=supports.passiveEvents?{passive:true}:null;unbind(overlay,'click',overlayClickHandler);unbind(previousButton,'click',previousButtonClickHandler);unbind(nextButton,'click',nextButtonClickHandler);unbind(closeButton,'click',closeButtonClickHandler);unbind(slider,'contextmenu',contextmenuHandler);unbind(overlay,'touchstart',touchstartHandler,options);unbind(overlay,'touchmove',touchmoveHandler,options);unbind(overlay,'touchend',touchendHandler);unbind(document,'focus',trapFocusInsideOverlay,true);}
|
||||
function prepareOverlay(gallery,userOptions){if(currentGallery===gallery){return;}
|
||||
currentGallery=gallery;setOptions(userOptions);while(slider.firstChild){slider.removeChild(slider.firstChild);}
|
||||
imagesElements.length=0;var imagesFiguresIds=[];var imagesCaptionsIds=[];for(var i=0,fullImage;i<gallery.length;i++){fullImage=create('div');fullImage.className='full-image';fullImage.id='baguette-img-'+i;imagesElements.push(fullImage);imagesFiguresIds.push('baguetteBox-figure-'+i);imagesCaptionsIds.push('baguetteBox-figcaption-'+i);slider.appendChild(imagesElements[i]);}
|
||||
overlay.setAttribute('aria-labelledby',imagesFiguresIds.join(' '));overlay.setAttribute('aria-describedby',imagesCaptionsIds.join(' '));}
|
||||
function setOptions(newOptions){if(!newOptions){newOptions={};}
|
||||
for(var item in defaults){options[item]=defaults[item];if(typeof newOptions[item]!=='undefined'){options[item]=newOptions[item];}}
|
||||
slider.style.transition=slider.style.webkitTransition=(options.animation==='fadeIn'?'opacity .4s ease':options.animation==='slideIn'?'':'none');if(options.buttons==='auto'&&('ontouchstart'in window||currentGallery.length===1)){options.buttons=false;}
|
||||
previousButton.style.display=nextButton.style.display=(options.buttons?'':'none');try{overlay.style.backgroundColor=options.overlayBackgroundColor;}catch(e){}}
|
||||
function showOverlay(chosenImageIndex){if(options.noScrollbars){document.documentElement.style.overflowY='hidden';document.body.style.overflowY='scroll';}
|
||||
if(overlay.style.display==='block'){return;}
|
||||
bind(document,'keydown',keyDownHandler);currentIndex=chosenImageIndex;touch={count:0,startX:null,startY:null};loadImage(currentIndex,function(){preloadNext(currentIndex);preloadPrev(currentIndex);});updateOffset();overlay.style.display='block';if(options.fullScreen){enterFullScreen();}
|
||||
setTimeout(function(){overlay.className='visible';if(options.bodyClass&&document.body.classList){document.body.classList.add(options.bodyClass);}
|
||||
if(options.afterShow){options.afterShow();}},50);if(options.onChange){options.onChange(currentIndex,imagesElements.length);}
|
||||
documentLastFocus=document.activeElement;initFocus();isOverlayVisible=true;}
|
||||
function initFocus(){if(options.buttons){previousButton.focus();}else{closeButton.focus();}}
|
||||
function enterFullScreen(){if(overlay.requestFullscreen){overlay.requestFullscreen();}else if(overlay.webkitRequestFullscreen){overlay.webkitRequestFullscreen();}else if(overlay.mozRequestFullScreen){overlay.mozRequestFullScreen();}}
|
||||
function exitFullscreen(){if(document.exitFullscreen){document.exitFullscreen();}else if(document.mozCancelFullScreen){document.mozCancelFullScreen();}else if(document.webkitExitFullscreen){document.webkitExitFullscreen();}}
|
||||
function hideOverlay(){if(options.noScrollbars){document.documentElement.style.overflowY='auto';document.body.style.overflowY='auto';}
|
||||
if(overlay.style.display==='none'){return;}
|
||||
unbind(document,'keydown',keyDownHandler);overlay.className='';setTimeout(function(){overlay.style.display='none';if(document.fullscreen){exitFullscreen();}
|
||||
if(options.bodyClass&&document.body.classList){document.body.classList.remove(options.bodyClass);}
|
||||
if(options.afterHide){options.afterHide();}
|
||||
documentLastFocus&&documentLastFocus.focus();isOverlayVisible=false;},500);}
|
||||
function loadImage(index,callback){var imageContainer=imagesElements[index];var galleryItem=currentGallery[index];if(typeof imageContainer==='undefined'||typeof galleryItem==='undefined'){return;}
|
||||
if(imageContainer.getElementsByTagName('img')[0]){if(callback){callback();}
|
||||
return;}
|
||||
var imageElement=galleryItem.imageElement;var thumbnailElement=imageElement.getElementsByTagName('img')[0];var imageCaption=typeof options.captions==='function'?options.captions.call(currentGallery,imageElement):imageElement.getAttribute('data-caption')||imageElement.title;var imageSrc=getImageSrc(imageElement);var figure=create('figure');figure.id='baguetteBox-figure-'+index;figure.innerHTML='<div class="baguetteBox-spinner">'+
|
||||
'<div class="baguetteBox-double-bounce1"></div>'+
|
||||
'<div class="baguetteBox-double-bounce2"></div>'+
|
||||
'</div>';if(options.captions&&imageCaption){var figcaption=create('figcaption');figcaption.id='baguetteBox-figcaption-'+index;figcaption.innerHTML=imageCaption;figure.appendChild(figcaption);}
|
||||
imageContainer.appendChild(figure);var image=create('img');image.onload=function(){var spinner=document.querySelector('#baguette-img-'+index+' .baguetteBox-spinner');figure.removeChild(spinner);if(!options.async&&callback){callback();}};image.setAttribute('src',imageSrc);image.alt=thumbnailElement?thumbnailElement.alt||'':'';if(options.titleTag&&imageCaption){image.title=imageCaption;}
|
||||
figure.appendChild(image);if(options.async&&callback){callback();}}
|
||||
function getImageSrc(image){var result=image.href;if(image.dataset){var srcs=[];for(var item in image.dataset){if(item.substring(0,3)==='at-'&&!isNaN(item.substring(3))){srcs[item.replace('at-','')]=image.dataset[item];}}
|
||||
var keys=Object.keys(srcs).sort(function(a,b){return parseInt(a,10)<parseInt(b,10)?-1:1;});var width=window.innerWidth*window.devicePixelRatio;var i=0;while(i<keys.length-1&&keys[i]<width){i++;}
|
||||
result=srcs[keys[i]]||result;}
|
||||
return result;}
|
||||
function showNextImage(){return show(currentIndex+1);}
|
||||
function showPreviousImage(){return show(currentIndex-1);}
|
||||
function showFirstImage(event){if(event){event.preventDefault();}
|
||||
return show(0);}
|
||||
function showLastImage(event){if(event){event.preventDefault();}
|
||||
return show(currentGallery.length-1);}
|
||||
function show(index,gallery){if(!isOverlayVisible&&index>=0&&index<gallery.length){prepareOverlay(gallery,options);showOverlay(index);return true;}
|
||||
if(index<0){if(options.animation){bounceAnimation('left');}
|
||||
return false;}
|
||||
if(index>=imagesElements.length){if(options.animation){bounceAnimation('right');}
|
||||
return false;}
|
||||
currentIndex=index;loadImage(currentIndex,function(){preloadNext(currentIndex);preloadPrev(currentIndex);});updateOffset();if(options.onChange){options.onChange(currentIndex,imagesElements.length);}
|
||||
return true;}
|
||||
function bounceAnimation(direction){slider.className='bounce-from-'+direction;setTimeout(function(){slider.className='';},400);}
|
||||
function updateOffset(){var offset=-currentIndex*100+'%';if(options.animation==='fadeIn'){slider.style.opacity=0;setTimeout(function(){supports.transforms?slider.style.transform=slider.style.webkitTransform='translate3d('+offset+',0,0)':slider.style.left=offset;slider.style.opacity=1;},400);}else{supports.transforms?slider.style.transform=slider.style.webkitTransform='translate3d('+offset+',0,0)':slider.style.left=offset;}}
|
||||
function testTransformsSupport(){var div=create('div');return typeof div.style.perspective!=='undefined'||typeof div.style.webkitPerspective!=='undefined';}
|
||||
function testSvgSupport(){var div=create('div');div.innerHTML='<svg/>';return(div.firstChild&&div.firstChild.namespaceURI)==='http://www.w3.org/2000/svg';}
|
||||
function testPassiveEventsSupport(){var passiveEvents=false;try{var opts=Object.defineProperty({},'passive',{get:function(){passiveEvents=true;}});window.addEventListener('test',null,opts);}catch(e){}
|
||||
return passiveEvents;}
|
||||
function preloadNext(index){if(index-currentIndex>=options.preload){return;}
|
||||
loadImage(index+1,function(){preloadNext(index+1);});}
|
||||
function preloadPrev(index){if(currentIndex-index>=options.preload){return;}
|
||||
loadImage(index-1,function(){preloadPrev(index-1);});}
|
||||
function bind(element,event,callback,options){if(element.addEventListener){element.addEventListener(event,callback,options);}else{element.attachEvent('on'+event,function(event){event=event||window.event;event.target=event.target||event.srcElement;callback(event);});}}
|
||||
function unbind(element,event,callback,options){if(element.removeEventListener){element.removeEventListener(event,callback,options);}else{element.detachEvent('on'+event,callback);}}
|
||||
function getByID(id){return document.getElementById(id);}
|
||||
function create(element){return document.createElement(element);}
|
||||
function destroyPlugin(){unbindEvents();clearCachedData();unbind(document,'keydown',keyDownHandler);document.getElementsByTagName('body')[0].removeChild(document.getElementById('baguetteBox-overlay'));data={};currentGallery=[];currentIndex=0;}
|
||||
return{run:run,show:show,showNext:showNextImage,showPrevious:showPreviousImage,hide:hideOverlay,destroy:destroyPlugin};}));;/*!
|
||||
* headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it
|
||||
* Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js
|
||||
* License: MIT
|
||||
*/(function(root,factory){'use strict';if(typeof define==='function'&&define.amd){define([],factory);}
|
||||
else if(typeof exports==='object'){module.exports=factory();}
|
||||
else{root.Headroom=factory();}}(this,function(){'use strict';var features={bind:!!(function(){}.bind),classList:'classList'in document.documentElement,rAF:!!(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame)};window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;function Debouncer(callback){this.callback=callback;this.ticking=false;}
|
||||
Debouncer.prototype={constructor:Debouncer,update:function(){this.callback&&this.callback();this.ticking=false;},requestTick:function(){if(!this.ticking){requestAnimationFrame(this.rafCallback||(this.rafCallback=this.update.bind(this)));this.ticking=true;}},handleEvent:function(){this.requestTick();}};function isDOMElement(obj){return obj&&typeof window!=='undefined'&&(obj===window||obj.nodeType);}
|
||||
function extend(object){if(arguments.length<=0){throw new Error('Missing arguments in extend function');}
|
||||
var result=object||{},key,i;for(i=1;i<arguments.length;i++){var replacement=arguments[i]||{};for(key in replacement){if(typeof result[key]==='object'&&!isDOMElement(result[key])){result[key]=extend(result[key],replacement[key]);}
|
||||
else{result[key]=result[key]||replacement[key];}}}
|
||||
return result;}
|
||||
function normalizeTolerance(t){return t===Object(t)?t:{down:t,up:t};}
|
||||
function Headroom(elem,options){options=extend(options,Headroom.options);this.lastKnownScrollY=0;this.elem=elem;this.tolerance=normalizeTolerance(options.tolerance);this.classes=options.classes;this.offset=options.offset;this.scroller=options.scroller;this.initialised=false;this.onPin=options.onPin;this.onUnpin=options.onUnpin;this.onTop=options.onTop;this.onNotTop=options.onNotTop;this.onBottom=options.onBottom;this.onNotBottom=options.onNotBottom;}
|
||||
Headroom.prototype={constructor:Headroom,init:function(){if(!Headroom.cutsTheMustard){return;}
|
||||
this.debouncer=new Debouncer(this.update.bind(this));this.elem.classList.add(this.classes.initial);setTimeout(this.attachEvent.bind(this),100);return this;},destroy:function(){var classes=this.classes;this.initialised=false;for(var key in classes){if(classes.hasOwnProperty(key)){this.elem.classList.remove(classes[key]);}}
|
||||
this.scroller.removeEventListener('scroll',this.debouncer,false);},attachEvent:function(){if(!this.initialised){this.lastKnownScrollY=this.getScrollY();this.initialised=true;this.scroller.addEventListener('scroll',this.debouncer,false);this.debouncer.handleEvent();}},unpin:function(){var classList=this.elem.classList,classes=this.classes;if(classList.contains(classes.pinned)||!classList.contains(classes.unpinned)){classList.add(classes.unpinned);classList.remove(classes.pinned);this.onUnpin&&this.onUnpin.call(this);}},pin:function(){var classList=this.elem.classList,classes=this.classes;if(classList.contains(classes.unpinned)){classList.remove(classes.unpinned);classList.add(classes.pinned);this.onPin&&this.onPin.call(this);}},top:function(){var classList=this.elem.classList,classes=this.classes;if(!classList.contains(classes.top)){classList.add(classes.top);classList.remove(classes.notTop);this.onTop&&this.onTop.call(this);}},notTop:function(){var classList=this.elem.classList,classes=this.classes;if(!classList.contains(classes.notTop)){classList.add(classes.notTop);classList.remove(classes.top);this.onNotTop&&this.onNotTop.call(this);}},bottom:function(){var classList=this.elem.classList,classes=this.classes;if(!classList.contains(classes.bottom)){classList.add(classes.bottom);classList.remove(classes.notBottom);this.onBottom&&this.onBottom.call(this);}},notBottom:function(){var classList=this.elem.classList,classes=this.classes;if(!classList.contains(classes.notBottom)){classList.add(classes.notBottom);classList.remove(classes.bottom);this.onNotBottom&&this.onNotBottom.call(this);}},getScrollY:function(){return(this.scroller.pageYOffset!==undefined)?this.scroller.pageYOffset:(this.scroller.scrollTop!==undefined)?this.scroller.scrollTop:(document.documentElement||document.body.parentNode||document.body).scrollTop;},getViewportHeight:function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;},getElementPhysicalHeight:function(elm){return Math.max(elm.offsetHeight,elm.clientHeight);},getScrollerPhysicalHeight:function(){return(this.scroller===window||this.scroller===document.body)?this.getViewportHeight():this.getElementPhysicalHeight(this.scroller);},getDocumentHeight:function(){var body=document.body,documentElement=document.documentElement;return Math.max(body.scrollHeight,documentElement.scrollHeight,body.offsetHeight,documentElement.offsetHeight,body.clientHeight,documentElement.clientHeight);},getElementHeight:function(elm){return Math.max(elm.scrollHeight,elm.offsetHeight,elm.clientHeight);},getScrollerHeight:function(){return(this.scroller===window||this.scroller===document.body)?this.getDocumentHeight():this.getElementHeight(this.scroller);},isOutOfBounds:function(currentScrollY){var pastTop=currentScrollY<0,pastBottom=currentScrollY+this.getScrollerPhysicalHeight()>this.getScrollerHeight();return pastTop||pastBottom;},toleranceExceeded:function(currentScrollY,direction){return Math.abs(currentScrollY-this.lastKnownScrollY)>=this.tolerance[direction];},shouldUnpin:function(currentScrollY,toleranceExceeded){var scrollingDown=currentScrollY>this.lastKnownScrollY,pastOffset=currentScrollY>=this.offset;return scrollingDown&&pastOffset&&toleranceExceeded;},shouldPin:function(currentScrollY,toleranceExceeded){var scrollingUp=currentScrollY<this.lastKnownScrollY,pastOffset=currentScrollY<=this.offset;return(scrollingUp&&toleranceExceeded)||pastOffset;},update:function(){var currentScrollY=this.getScrollY(),scrollDirection=currentScrollY>this.lastKnownScrollY?'down':'up',toleranceExceeded=this.toleranceExceeded(currentScrollY,scrollDirection);if(this.isOutOfBounds(currentScrollY)){return;}
|
||||
if(currentScrollY<=this.offset){this.top();}else{this.notTop();}
|
||||
if(currentScrollY+this.getViewportHeight()>=this.getScrollerHeight()){this.bottom();}
|
||||
else{this.notBottom();}
|
||||
if(this.shouldUnpin(currentScrollY,toleranceExceeded)){this.unpin();}
|
||||
else if(this.shouldPin(currentScrollY,toleranceExceeded)){this.pin();}
|
||||
this.lastKnownScrollY=currentScrollY;}};Headroom.options={tolerance:{up:0,down:0},offset:0,scroller:window,classes:{pinned:'headroom--pinned',unpinned:'headroom--unpinned',top:'headroom--top',notTop:'headroom--not-top',bottom:'headroom--bottom',notBottom:'headroom--not-bottom',initial:'headroom'}};Headroom.cutsTheMustard=typeof features!=='undefined'&&features.rAF&&features.bind&&features.classList;return Headroom;}));;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};(function(global,factory){(typeof exports==='undefined'?'undefined':_typeof(exports))==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):global.LazyLoad=factory();})(this,function(){'use strict';var defaultSettings={elements_selector:"img",container:document,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",class_loading:"loading",class_loaded:"loaded",class_error:"error",load_delay:0,callback_load:null,callback_error:null,callback_set:null,callback_enter:null,to_webp:false};var getInstanceSettings=function getInstanceSettings(customSettings){return _extends({},defaultSettings,customSettings);};var dataPrefix="data-";var processedDataName="was-processed";var timeoutDataName="ll-timeout";var trueString="true";var getData=function getData(element,attribute){return element.getAttribute(dataPrefix+attribute);};var setData=function setData(element,attribute,value){var attrName=dataPrefix+attribute;if(value===null){element.removeAttribute(attrName);return;}
|
||||
element.setAttribute(attrName,value);};var setWasProcessedData=function setWasProcessedData(element){return setData(element,processedDataName,trueString);};var getWasProcessedData=function getWasProcessedData(element){return getData(element,processedDataName)===trueString;};var setTimeoutData=function setTimeoutData(element,value){return setData(element,timeoutDataName,value);};var getTimeoutData=function getTimeoutData(element){return getData(element,timeoutDataName);};function purgeElements(elements){return elements.filter(function(element){return!getWasProcessedData(element);});}
|
||||
var createInstance=function createInstance(classObj,options){var event;var eventString="LazyLoad::Initialized";var instance=new classObj(options);try{event=new CustomEvent(eventString,{detail:{instance:instance}});}catch(err){event=document.createEvent("CustomEvent");event.initCustomEvent(eventString,false,false,{instance:instance});}
|
||||
window.dispatchEvent(event);};function autoInitialize(classObj,options){if(!options){return;}
|
||||
if(!options.length){createInstance(classObj,options);}else{for(var i=0,optionsItem;optionsItem=options[i];i+=1){createInstance(classObj,optionsItem);}}}
|
||||
var replaceExtToWebp=function replaceExtToWebp(value,condition){return condition?value.replace(/\.(jpe?g|png)/gi,".webp"):value;};var detectWebp=function detectWebp(){var webpString="image/webp";var canvas=document.createElement("canvas");if(canvas.getContext&&canvas.getContext("2d")){return canvas.toDataURL(webpString).indexOf('data:'+webpString)===0;}
|
||||
return false;};var runningOnBrowser=typeof window!=="undefined";var isBot=runningOnBrowser&&!("onscroll"in window)||/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);var supportsIntersectionObserver=runningOnBrowser&&"IntersectionObserver"in window;var supportsClassList=runningOnBrowser&&"classList"in document.createElement("p");var supportsWebp=runningOnBrowser&&detectWebp();var setSourcesInChildren=function setSourcesInChildren(parentTag,attrName,dataAttrName,toWebpFlag){for(var i=0,childTag;childTag=parentTag.children[i];i+=1){if(childTag.tagName==="SOURCE"){var attrValue=getData(childTag,dataAttrName);setAttributeIfValue(childTag,attrName,attrValue,toWebpFlag);}}};var setAttributeIfValue=function setAttributeIfValue(element,attrName,value,toWebpFlag){if(!value){return;}
|
||||
element.setAttribute(attrName,replaceExtToWebp(value,toWebpFlag));};var setSourcesImg=function setSourcesImg(element,settings){var toWebpFlag=supportsWebp&&settings.to_webp;var srcsetDataName=settings.data_srcset;var parent=element.parentNode;if(parent&&parent.tagName==="PICTURE"){setSourcesInChildren(parent,"srcset",srcsetDataName,toWebpFlag);}
|
||||
var sizesDataValue=getData(element,settings.data_sizes);setAttributeIfValue(element,"sizes",sizesDataValue);var srcsetDataValue=getData(element,srcsetDataName);setAttributeIfValue(element,"srcset",srcsetDataValue,toWebpFlag);var srcDataValue=getData(element,settings.data_src);setAttributeIfValue(element,"src",srcDataValue,toWebpFlag);};var setSourcesIframe=function setSourcesIframe(element,settings){var srcDataValue=getData(element,settings.data_src);setAttributeIfValue(element,"src",srcDataValue);};var setSourcesVideo=function setSourcesVideo(element,settings){var srcDataName=settings.data_src;var srcDataValue=getData(element,srcDataName);setSourcesInChildren(element,"src",srcDataName);setAttributeIfValue(element,"src",srcDataValue);element.load();};var setSourcesBgImage=function setSourcesBgImage(element,settings){var toWebpFlag=supportsWebp&&settings.to_webp;var srcDataValue=getData(element,settings.data_src);var bgDataValue=getData(element,settings.data_bg);if(srcDataValue){var setValue=replaceExtToWebp(srcDataValue,toWebpFlag);element.style.backgroundImage='url("'+setValue+'")';}
|
||||
if(bgDataValue){var _setValue=replaceExtToWebp(bgDataValue,toWebpFlag);element.style.backgroundImage=_setValue;}};var setSourcesFunctions={IMG:setSourcesImg,IFRAME:setSourcesIframe,VIDEO:setSourcesVideo};var setSources=function setSources(element,settings){var tagName=element.tagName;var setSourcesFunction=setSourcesFunctions[tagName];if(setSourcesFunction){setSourcesFunction(element,settings);return;}
|
||||
setSourcesBgImage(element,settings);};var addClass=function addClass(element,className){if(supportsClassList){element.classList.add(className);return;}
|
||||
element.className+=(element.className?" ":"")+className;};var removeClass=function removeClass(element,className){if(supportsClassList){element.classList.remove(className);return;}
|
||||
element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"");};var callbackIfSet=function callbackIfSet(callback,argument){if(callback){callback(argument);}};var genericLoadEventName="load";var mediaLoadEventName="loadeddata";var errorEventName="error";var addEventListener=function addEventListener(element,eventName,handler){element.addEventListener(eventName,handler);};var removeEventListener=function removeEventListener(element,eventName,handler){element.removeEventListener(eventName,handler);};var addAllEventListeners=function addAllEventListeners(element,loadHandler,errorHandler){addEventListener(element,genericLoadEventName,loadHandler);addEventListener(element,mediaLoadEventName,loadHandler);addEventListener(element,errorEventName,errorHandler);};var removeAllEventListeners=function removeAllEventListeners(element,loadHandler,errorHandler){removeEventListener(element,genericLoadEventName,loadHandler);removeEventListener(element,mediaLoadEventName,loadHandler);removeEventListener(element,errorEventName,errorHandler);};var eventHandler=function eventHandler(event,success,settings){var className=success?settings.class_loaded:settings.class_error;var callback=success?settings.callback_load:settings.callback_error;var element=event.target;removeClass(element,settings.class_loading);addClass(element,className);callbackIfSet(callback,element);};var addOneShotEventListeners=function addOneShotEventListeners(element,settings){var loadHandler=function loadHandler(event){eventHandler(event,true,settings);removeAllEventListeners(element,loadHandler,errorHandler);};var errorHandler=function errorHandler(event){eventHandler(event,false,settings);removeAllEventListeners(element,loadHandler,errorHandler);};addAllEventListeners(element,loadHandler,errorHandler);};var managedTags=["IMG","IFRAME","VIDEO"];var loadAndUnobserve=function loadAndUnobserve(element,observer,settings){revealElement(element,settings);observer.unobserve(element);};var cancelDelayLoad=function cancelDelayLoad(element){var timeoutId=getTimeoutData(element);if(!timeoutId){return;}
|
||||
clearTimeout(timeoutId);setTimeoutData(element,null);};var delayLoad=function delayLoad(element,observer,settings){var loadDelay=settings.load_delay;var timeoutId=getTimeoutData(element);if(timeoutId){return;}
|
||||
timeoutId=setTimeout(function(){loadAndUnobserve(element,observer,settings);cancelDelayLoad(element);},loadDelay);setTimeoutData(element,timeoutId);};function revealElement(element,settings,force){if(!force&&getWasProcessedData(element)){return;}
|
||||
callbackIfSet(settings.callback_enter,element);if(managedTags.indexOf(element.tagName)>-1){addOneShotEventListeners(element,settings);addClass(element,settings.class_loading);}
|
||||
setSources(element,settings);setWasProcessedData(element);callbackIfSet(settings.callback_set,element);}
|
||||
var isIntersecting=function isIntersecting(entry){return entry.isIntersecting||entry.intersectionRatio>0;};var getObserverSettings=function getObserverSettings(settings){return{root:settings.container===document?null:settings.container,rootMargin:settings.thresholds||settings.threshold+"px"};};var LazyLoad=function LazyLoad(customSettings,elements){this._settings=getInstanceSettings(customSettings);this._setObserver();this.update(elements);};LazyLoad.prototype={_manageIntersection:function _manageIntersection(entry){var observer=this._observer;var settings=this._settings;var loadDelay=this._settings.load_delay;var element=entry.target;if(isIntersecting(entry)){if(!loadDelay){loadAndUnobserve(element,observer,settings);}else{delayLoad(element,observer,settings);}}
|
||||
if(!isIntersecting(entry)){cancelDelayLoad(element);}},_onIntersection:function _onIntersection(entries){entries.forEach(this._manageIntersection.bind(this));this._elements=purgeElements(this._elements);},_setObserver:function _setObserver(){if(!supportsIntersectionObserver){return;}
|
||||
this._observer=new IntersectionObserver(this._onIntersection.bind(this),getObserverSettings(this._settings));},loadAll:function loadAll(){var _this=this;this._elements.forEach(function(element){_this.load(element);});this._elements=purgeElements(this._elements);},update:function update(elements){var _this2=this;var settings=this._settings;var nodeSet=elements||settings.container.querySelectorAll(settings.elements_selector);this._elements=purgeElements(Array.prototype.slice.call(nodeSet));if(isBot||!this._observer){this.loadAll();return;}
|
||||
this._elements.forEach(function(element){_this2._observer.observe(element);});},destroy:function destroy(){var _this3=this;if(this._observer){purgeElements(this._elements).forEach(function(element){_this3._observer.unobserve(element);});this._observer=null;}
|
||||
this._elements=null;this._settings=null;},load:function load(element,force){revealElement(element,this._settings,force);}};if(runningOnBrowser){autoInitialize(LazyLoad,window.lazyLoadOptions);}
|
||||
return LazyLoad;});;document.addEventListener('DOMContentLoaded',function(event){const myLazyLoad=new LazyLoad()
|
||||
baguetteBox.run('main',{})
|
||||
const navbar=document.querySelector('nav')
|
||||
if(navbar){const headroom=new Headroom(navbar,{'offset':205,'tolerance':5,'classes':{'initial':'animated','pinned':'slideDown','unpinned':'slideUp'}})
|
||||
headroom.init()}})
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"Target":"assets/js/scripts.min.js","MediaType":"application/javascript","Data":{}}
|
||||
|
|
@ -1,402 +0,0 @@
|
|||
function createEl(element) {
|
||||
return document.createElement(element);
|
||||
}
|
||||
|
||||
function elem(selector, parent = document){
|
||||
let elem = parent.querySelector(selector);
|
||||
return elem != false ? elem : false;
|
||||
}
|
||||
|
||||
function elems(selector, parent = document) {
|
||||
let elems = parent.querySelectorAll(selector);
|
||||
return elems.length ? elems : false;
|
||||
}
|
||||
|
||||
function pushClass(el, targetClass) {
|
||||
// equivalent to addClass
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
elClass = el.classList;
|
||||
elClass.contains(targetClass) ? false : elClass.add(targetClass);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteClass(el, targetClass) {
|
||||
// equivalent to removeClass
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
elClass = el.classList;
|
||||
elClass.contains(targetClass) ? elClass.remove(targetClass) : false;
|
||||
}
|
||||
}
|
||||
|
||||
function modifyClass(el, targetClass) {
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
elClass = el.classList;
|
||||
elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass);
|
||||
}
|
||||
}
|
||||
|
||||
function containsClass(el, targetClass) {
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
return el.classList.contains(targetClass) ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
function isChild(node, parentClass) {
|
||||
let objectsAreValid = node && typeof node == 'object' && parentClass && typeof parentClass == 'string';
|
||||
return (objectsAreValid && node.closest(parentClass)) ? true : false;
|
||||
}
|
||||
|
||||
(function updateDate() {
|
||||
var date = new Date();
|
||||
var year = date.getFullYear();
|
||||
elem('.year').innerHTML = year;
|
||||
})();
|
||||
|
||||
(function() {
|
||||
let bar = 'nav_bar-wrap';
|
||||
let navBar = elem(`.${bar}`);
|
||||
let nav = elem('.nav-body');
|
||||
let open = 'nav-open';
|
||||
let exit = 'nav-exit';
|
||||
let drop = 'nav-drop';
|
||||
let pop = 'nav-pop';
|
||||
let navDrop = elem(`.${drop}`);
|
||||
let hidden = 'hidden';
|
||||
|
||||
function toggleMenu(){
|
||||
modifyClass(navDrop, pop);
|
||||
modifyClass(navBar, hidden);
|
||||
let menuOpen = containsClass(nav, open);
|
||||
let menuPulled = containsClass(nav, exit);
|
||||
|
||||
let status = menuOpen || menuPulled ? true : false;
|
||||
|
||||
status ? modifyClass(nav, exit) : modifyClass(nav, open);
|
||||
status ? modifyClass(nav, open) : modifyClass(nav, exit);
|
||||
}
|
||||
|
||||
// $('.nav-bar, .nav-close').on('click', () => toggleMenu());
|
||||
navBar.addEventListener('click', function() {
|
||||
toggleMenu();
|
||||
});
|
||||
elem('.nav-close').addEventListener('click', function() {
|
||||
toggleMenu();
|
||||
});
|
||||
|
||||
elem('.nav-drop').addEventListener('click', function(e) {
|
||||
e.target === this ? toggleMenu() : false;
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
(function share(){
|
||||
let share = elem('.share');
|
||||
let open = 'share-open';
|
||||
let close = 'share-close';
|
||||
let button = elem('.share-trigger');
|
||||
|
||||
function showShare() {
|
||||
pushClass(share, open);
|
||||
deleteClass(share, close);
|
||||
}
|
||||
|
||||
function hideShare() {
|
||||
pushClass(share, open);
|
||||
deleteClass(share, close);
|
||||
}
|
||||
if (button) {
|
||||
button.addEventListener('click', function() {
|
||||
showShare();
|
||||
setTimeout(hideShare, 5000);
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
(function comments(){
|
||||
|
||||
let comments = elem('.comments');
|
||||
let form = elem('.form');
|
||||
let body = elem('body');
|
||||
let button = elem('.form_toggle');
|
||||
let replyNoticeTag = elem('.form .reply-notice')
|
||||
let loading = 'form-loading';
|
||||
let open = 'form-open';
|
||||
let show = 'modal_show'
|
||||
let toggled = 'toggled';
|
||||
|
||||
let successOutput = ['Review submitted', 'Thanks for your review! It will be shown on the site once it has been approved.'];
|
||||
let errorOutput = ['Error', 'Sorry, there was an error with the submission!'];
|
||||
|
||||
function handleForm(form) {
|
||||
// clear form when reset button is clicked
|
||||
elem('.form_input-reset').addEventListener('click', function (){
|
||||
clearForm();
|
||||
});
|
||||
|
||||
form.addEventListener('submit', function (event) {
|
||||
pushClass(form, loading);
|
||||
elem('.form_input-submit').value = 'Submitted'; // btn "submit"
|
||||
|
||||
function resetForm() {
|
||||
deleteClass(form, loading);
|
||||
elem('.form_input-submit').value = 'Submit'; // btn "submit"
|
||||
// $("form").trigger("reset");
|
||||
}
|
||||
|
||||
function formActions(message) {
|
||||
showModal(...message) // array destructuring
|
||||
resetForm();
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
|
||||
let url = [endpoint, 'v3/entry', gitProvider, username, repository, branch, 'comments'].join('/');
|
||||
fetch(url, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(data),
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
}).then(function(res) {
|
||||
if(res.ok) {
|
||||
formActions(successOutput);
|
||||
} else {
|
||||
formActions(errorOutput);
|
||||
}
|
||||
}).catch(function(error) {
|
||||
formActions(errorOutput);
|
||||
console.error('Error:', error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
form ? handleForm(form) : false;
|
||||
function closeModal() {
|
||||
elem('.modal_close').addEventListener('click', function () {
|
||||
deleteClass(body, show);
|
||||
deleteClass(form, loading);
|
||||
elem('.form_input-submit').value = 'Submit'; // btn "submit"
|
||||
deleteClass(form, open);
|
||||
deleteClass(button, toggled);
|
||||
button.textContent = 'Comment'; // change button text to original state
|
||||
});
|
||||
}
|
||||
|
||||
function showModal(title, message) {
|
||||
elem('.modal_title').textContent = title;
|
||||
elem('.modal_text').innerHTML = message;
|
||||
|
||||
pushClass(body, show);
|
||||
closeModal();
|
||||
clearForm();
|
||||
}
|
||||
|
||||
(function toggleForm() {
|
||||
if(button) {
|
||||
button.addEventListener('click', function() {
|
||||
modifyClass(form, open);
|
||||
modifyClass(this, toggled);
|
||||
this.textContent = containsClass(this, toggled) ? 'Cancel' : 'Comment';
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
function clearForm() {
|
||||
resetReplyTarget();
|
||||
// empty all text & hidden fields
|
||||
elems('.form_input').forEach((form_input) => {form_input.value = ''});
|
||||
}
|
||||
|
||||
function resetReplyTarget() {
|
||||
elem('.form-comments .reply-notice .reply-name').textContent = ''; // reset reply target
|
||||
let avatarTag = elem('.form-comments .reply-notice img');
|
||||
// using elem('.reply-notice-close-btn') doesn't return an operable object
|
||||
if (avatarTag) {
|
||||
replyNoticeTag.removeChild(avatarTag); // remove reply avatar
|
||||
replyNoticeTag.removeChild(replyNoticeTag.lastChild); // remove the rightmost '×' button
|
||||
pushClass(replyNoticeTag, 'hidden'); // hide reply target display
|
||||
}
|
||||
elem('.form-comments input[name="fields[replyThread]"]').value = '';
|
||||
elem('.form-comments input[name="fields[replyID]"]').value = '';
|
||||
elem('.form-comments input[name="fields[replyName]"]').value = '';
|
||||
}
|
||||
|
||||
// record reply target when "reply to this comment" is pressed
|
||||
(function toggleReplyNotice() {
|
||||
if (comments) {
|
||||
comments.addEventListener('click', function (evt){
|
||||
if (evt.target && containsClass(evt.target, 'comment_reply-btn')) {
|
||||
// open the form in it's closed
|
||||
if (!containsClass(form, open)) {
|
||||
pushClass(form, open);
|
||||
pushClass(button, toggled);
|
||||
button.textContent = 'Cancel';
|
||||
}
|
||||
resetReplyTarget();
|
||||
let comment = evt.target.parentNode;
|
||||
let threadID = comment.getElementsByClassName('comment_threadID')[0].textContent;
|
||||
elem('.form-comments input[name="fields[replyThread]"]').value = threadID;
|
||||
elem('.form-comments input[name="fields[replyID]"]').value = comment.id;
|
||||
let replyName = comment.getElementsByClassName('comment_name_span')[0].textContent;
|
||||
elem('.form-comments input[name="fields[replyName]"]').value = replyName;
|
||||
|
||||
// display reply target avatar and name
|
||||
deleteClass(replyNoticeTag, 'hidden');
|
||||
elem('.form-comments .reply-name').textContent = replyName;
|
||||
let avatarTag = createEl('img');
|
||||
avatarTag.className = 'comment_pic';
|
||||
avatarTag.src = comment.getElementsByClassName('comment_pic')[0].src;
|
||||
let replyNameTag = replyNoticeTag.getElementsByClassName('reply-name')[0];
|
||||
replyNoticeTag.insertBefore(avatarTag, replyNameTag);
|
||||
|
||||
// add button for removing reply target (static method would give error msg)
|
||||
let closeReplyBtnTag = createEl('a');
|
||||
closeReplyBtnTag.className = 'reply-notice-close-btn';
|
||||
closeReplyBtnTag.textContent = '\u274C';
|
||||
// handle removal of reply target when '×' is pressed
|
||||
closeReplyBtnTag.addEventListener('click', function(){
|
||||
resetReplyTarget();
|
||||
});
|
||||
replyNoticeTag.appendChild(closeReplyBtnTag);
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
})();
|
||||
|
||||
function elemAttribute(elem, attr, value = null) {
|
||||
if (value) {
|
||||
elem.setAttribute(attr, value);
|
||||
} else {
|
||||
value = elem.getAttribute(attr);
|
||||
return value ? value : false;
|
||||
}
|
||||
}
|
||||
|
||||
(function(){
|
||||
let links = document.querySelectorAll('a');
|
||||
if(links) {
|
||||
Array.from(links).forEach(function(link){
|
||||
let target, rel, blank, noopener, attr1, attr2, url, isExternal;
|
||||
url = elemAttribute(link, 'href');
|
||||
isExternal = (url && typeof url == 'string' && url.startsWith('http')) && !containsClass(link, 'nav_item') && !isChild(link, '.post_item') && !isChild(link, '.pager') ? true : false;
|
||||
if(isExternal) {
|
||||
target = 'target';
|
||||
rel = 'rel';
|
||||
blank = '_blank';
|
||||
noopener = 'noopener';
|
||||
attr1 = elemAttribute(link, target);
|
||||
attr2 = elemAttribute(link, noopener);
|
||||
|
||||
attr1 ? false : elemAttribute(link, target, blank);
|
||||
attr2 ? false : elemAttribute(link, noopener, noopener);
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
let headingNodes = [], results, link, icon, current, id,
|
||||
tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
|
||||
|
||||
|
||||
current = document.URL;
|
||||
|
||||
tags.forEach(function(tag){
|
||||
results = document.getElementsByTagName(tag);
|
||||
Array.prototype.push.apply(headingNodes, results);
|
||||
});
|
||||
|
||||
headingNodes.forEach(function(node){
|
||||
link = createEl('a');
|
||||
icon = createEl('img');
|
||||
icon.src = 'http://localhost:1313/images/icons/link.svg';
|
||||
link.className = 'link';
|
||||
link.appendChild(icon);
|
||||
id = node.getAttribute('id');
|
||||
if(id) {
|
||||
link.href = `${current}#${id}`;
|
||||
node.appendChild(link);
|
||||
pushClass(node, 'link_owner');
|
||||
}
|
||||
});
|
||||
|
||||
const copyToClipboard = str => {
|
||||
// Create a <textarea> element
|
||||
const el = createEl('textarea');
|
||||
// Set its value to the string that you want copied
|
||||
el.value = str;
|
||||
// Make it readonly to be tamper-proof
|
||||
el.setAttribute('readonly', '');
|
||||
// Move outside the screen to make it invisible
|
||||
el.style.position = 'absolute';
|
||||
el.style.left = '-9999px';
|
||||
// Append the <textarea> element to the HTML document
|
||||
document.body.appendChild(el);
|
||||
// Check if there is any content selected previously
|
||||
const selected =
|
||||
document.getSelection().rangeCount > 0
|
||||
? document.getSelection().getRangeAt(0) // Store selection if found
|
||||
: false; // Mark as false to know no selection existed before
|
||||
el.select(); // Select the <textarea> content
|
||||
document.execCommand('copy'); // Copy - only works as a result of a user action (e.g. click events)
|
||||
document.body.removeChild(el); // Remove the <textarea> element
|
||||
if (selected) { // If a selection existed before copying
|
||||
document.getSelection().removeAllRanges(); // Unselect everything on the HTML document
|
||||
document.getSelection().addRange(selected); // Restore the original selection
|
||||
}
|
||||
}
|
||||
|
||||
(function copyHeadingLink() {
|
||||
let deeplink = 'link';
|
||||
let deeplinks = document.querySelectorAll(`.${deeplink}`);
|
||||
if(deeplinks) {
|
||||
document.body.addEventListener('click', function(event)
|
||||
{
|
||||
let target = event.target;
|
||||
if (target.classList.contains(deeplink) || target.parentNode.classList.contains(deeplink)) {
|
||||
event.preventDefault();
|
||||
let newLink = target.href != undefined ? target.href : target.parentNode.href;
|
||||
copyToClipboard(newLink);
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
(function copyLinkToShare() {
|
||||
let copy, copied, excerpt, isCopyIcon, isInExcerpt, link, page, postCopy, postLink, target;
|
||||
copy = 'copy';
|
||||
copied = 'copy_done';
|
||||
excerpt = 'excerpt';
|
||||
postCopy = 'post_copy';
|
||||
postLink = 'post_card';
|
||||
page = document.documentElement;
|
||||
|
||||
page.addEventListener('click', function(event) {
|
||||
target = event.target;
|
||||
isCopyIcon = containsClass(target, copy);
|
||||
isInExcerpt = containsClass(target, postCopy);
|
||||
if (isCopyIcon) {
|
||||
if (isInExcerpt) {
|
||||
link = target.closest(`.${excerpt}`).previousElementSibling;
|
||||
link = containsClass(link, postLink)? elemAttribute(link, 'href') : false;
|
||||
} else {
|
||||
link = window.location.href;
|
||||
}
|
||||
if(link) {
|
||||
copyToClipboard(link);
|
||||
pushClass(target, copied);
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
(function hideAside(){
|
||||
let aside, title, posts;
|
||||
aside = elem('.aside');
|
||||
title = aside ? aside.previousElementSibling : null;
|
||||
if(aside && title.nodeName.toLowerCase() === 'h3') {
|
||||
posts = Array.from(aside.children);
|
||||
posts.length < 1 ? title.remove() : false;
|
||||
}
|
||||
})();
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/index.js","MediaType":"application/javascript","Data":{}}
|
||||
|
|
@ -1 +0,0 @@
|
|||
(function($){'use strict';$('html').removeClass('nojs').addClass('js');})(u);
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/script.min.8e4d91ebe0d9226621e408b7205bd7b009e4935608e4b29c4275116490cc836d.js","MediaType":"application/javascript","Data":{"Integrity":"sha256-jk2R6+DZImYh5Ai3IFvXsAnkk1YI5LKcQnURZJDMg20="}}
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
function calculateTimeSince(num){
|
||||
const currentTime = Math.floor(Date.now()/1000);
|
||||
const timestamp = parseInt(num);
|
||||
const timeSince = currentTime - timestamp;
|
||||
|
||||
var timeAgo;
|
||||
var timeTag;
|
||||
var minute = 60;
|
||||
var hour = 3600;
|
||||
var day = 86400;
|
||||
var week = 604800;
|
||||
var month = 2.628e+6;
|
||||
var year = 3.154e+7;
|
||||
|
||||
if (timeSince < minute ) {
|
||||
timeAgo = 1;
|
||||
timeTag = timeAgo < 2 ? 'MIN' : 'MINS';
|
||||
} else if (timeSince > minute && timeSince < hour ) {
|
||||
timeAgo = Math.ceil(timeSince / minute);
|
||||
timeTag = timeAgo < 2 ? 'MIN' : 'MINS';
|
||||
} else if (timeSince > hour && timeSince < day ) {
|
||||
timeAgo = Math.floor(timeSince / hour);
|
||||
timeTag = timeAgo < 2 ? 'HR' : 'HRS';
|
||||
} else if (timeSince > day && timeSince < week) {
|
||||
timeAgo = Math.floor(timeSince / day);
|
||||
timeTag = timeAgo < 2 ? 'DAY' : 'DAYS';
|
||||
} else if (timeSince > week && timeSince < month) {
|
||||
timeAgo = Math.floor(timeSince / week);
|
||||
timeTag = timeAgo < 2 ? 'WK' : 'WKS';
|
||||
} else if (timeSince > month && timeSince < year) {
|
||||
timeAgo = Math.floor(timeSince / month);
|
||||
timeTag = timeAgo < 2 ? 'MONTH' : 'MONTHS';
|
||||
} else if (timeSince > year) {
|
||||
timeAgo = Math.floor(timeSince / year);
|
||||
timeTag = timeAgo < 2 ? 'YR' : 'YRS';
|
||||
}
|
||||
|
||||
return `${timeAgo} ${timeTag} AGO`;
|
||||
}
|
||||
|
||||
function populateCommentsTime(nodes) {
|
||||
if (nodes) {
|
||||
nodes.forEach(function(node) {
|
||||
let durationTime = node.dataset.time;
|
||||
let durationSeconds = Math.ceil(Date.parse(durationTime) / 1000) ;
|
||||
let durationSince = calculateTimeSince(durationSeconds);
|
||||
node.innerHTML = `${durationSince}`;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const durations = document.querySelectorAll('.comment_heading');
|
||||
|
||||
populateCommentsTime(durations);
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/timeago.js","MediaType":"application/javascript","Data":{}}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/umbrella.min.b426107371d121c9a56a27aac9e9058ff592a021e2f4c3c94827fe70920d3cbb.js","MediaType":"application/javascript","Data":{"Integrity":"sha256-tCYQc3HRIcmlaieqyekFj/WSoCHi9MPJSCf+cJINPLs="}}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 8.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
Loading…
Add table
Add a link
Reference in a new issue