/* 2017 Julian Garnier Released under the MIT license */ var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; $jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||"")+$jscomp.symbolCounter_++}; $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return rb&&(b+=1);1b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return"rgba("+ 255*f+","+255*b+","+255*a+","+d+")"}function y(a){if(a=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1=g.currentTime)for(var G=0;G=w||!k)g.began||(g.began=!0,f("begin")),f("run");if(q>n&&q=k&&r!==k||!k)b(k),x||e();f("update");a>=k&&(g.remaining?(t=h,"alternate"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f("complete"),"Promise"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime= 0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed="reverse"===a;g.remaining="alternate"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0=== n)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25, .46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b["ease"+a.type+c[f]]=h.fnc(d)? d:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+"("+d+")")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;db&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q}); /** * menu2.js * http://www.codrops.com * * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php * * Copyright 2018, Codrops * http://www.codrops.com */ { class Box { constructor(el, pos) { this.DOM = {el: el}; this.DOM.bg = this.DOM.el.querySelector('.grim__item-bg'); this.DOM.inner = this.DOM.el.querySelector('.grim__item-content > .grim__item-inner'); this.DOM.img = this.DOM.el.querySelector('.grim__item-img'); this.DOM.cover = this.DOM.el.querySelector('.grim__item-bg-cover'); this.DOM.link = this.DOM.el.querySelector('a.grim__link'); this.pos = pos; } open() { return new Promise((resolve, reject) => { this.DOM.bg.style.transformOrigin = this.pos % 2 === 0 ? '50% 100%' : '0% 50%'; anime.remove(this.DOM.bg); anime({ targets: this.DOM.bg, duration: this.DOM.bg.dataset.duration || 40+this.pos*20, // increment as more boxes get revealed.. easing: this.DOM.bg.dataset.easing || 'easeInOutQuad', opacity: { value: 1, duration: 1 }, scaleY: this.pos % 2 === 0 ? [0,1] : 1, scaleX: Math.abs(this.pos % 2) == 1 ? [0,1] : 1, complete: () => { if ( this.DOM.img && this.DOM.cover ) { this.DOM.img.style.opacity = 1; this.DOM.cover.style.opacity = 1; this.DOM.cover.style.transformOrigin = '100% 50%'; anime.remove(this.DOM.cover); anime({ targets: this.DOM.cover, duration: 700, easing: 'easeOutQuint', scaleX: [1,0] }); } if ( this.DOM.inner ) { anime.remove(this.DOM.inner); anime({ targets: this.DOM.inner, duration: 1200, delay: 150, easing: 'easeOutQuint', opacity: { value: 1, duration: 1 }, translateY: ['100%','0%'] }); } resolve(); } }); }); } close() { return new Promise((resolve, reject) => { const animateBoxFn = () => { this.DOM.bg.style.transformOrigin = this.pos % 2 === 0 ? '50% 0%' : '100% 50%'; anime.remove(this.DOM.bg); anime({ targets: this.DOM.bg, duration: this.DOM.bg.dataset.duration || 80+this.pos*10, easing: this.DOM.bg.dataset.easing || 'easeInOutQuad', opacity: { value: 0, delay: this.DOM.bg.dataset.duration || 40+this.pos*10, duration: 1 }, scaleY: this.pos % 2 === 0 ? [1,0] : 1, scaleX: Math.abs(this.pos % 2) == 1 ? [1,0] : 1, complete: resolve }); }; if ( this.DOM.img && this.DOM.cover ) { anime.remove(this.DOM.img); anime({ targets: this.DOM.img, duration: 200, easing: 'linear', opacity: 0 }); } animateBoxFn(); if ( this.DOM.inner ) { this.DOM.inner.style.opacity = 0; } }); } } class Menu { constructor(el) { this.DOM = {el: el}; this.DOM.items = Array.from(this.DOM.el.querySelectorAll('.grim__item')); this.itemsTotal = this.DOM.items.length; this.boxes = []; this.DOM.items.forEach((item, pos) => { this.boxes.push(new Box(item, pos)); }); this.initEvents(); } initEvents() { for( let i = 0; i < this.itemsTotal; ++i ) { const link = this.boxes[i].DOM.link; if ( link ) { link.addEventListener('click', (ev) => { if ( this.isAnimating ) return; document.querySelector('.content--switch-current').classList.remove('content--switch-current'); document.querySelector(link.getAttribute('href')).classList.add('content--switch-current'); this.close(); }); } } } open() { this.toggle('open'); } close() { this.toggle('close'); } toggle(action) { if ( this.isAnimating ) return; this.isAnimating = true; if ( action === 'open' ) { this.openBoxes(); } else { this.closeBoxes(); } } openBoxes(pos = 0) { this.toggleBoxes('open', pos); } closeBoxes(pos = 0) { this.toggleBoxes('close', pos); } toggleBoxes(action, pos) { if ( pos >= this.itemsTotal ) { this.isAnimating = false; return; }; DOM.grim.classList[action === 'open' ? 'add' : 'remove']('grim--open'); const box = this.boxes[pos]; box[action === 'open' ? 'open' : 'close']().then(() => this[action === 'open' ? 'openBoxes' : 'closeBoxes'](pos+1)); } } let DOM = {}; imagesLoaded(document.querySelectorAll('.grim__item-img'), {background: true}, () => { document.body.classList.remove('loading'); DOM.grim = document.querySelector('.grim'); DOM.menu = new Menu(DOM.grim); DOM.menuCtrls = { open: document.querySelector('.menu-trigger'), close: document.querySelector('.menu-trigger--close') }; DOM.menuCtrls.open.addEventListener('click', () => DOM.menu.open()); DOM.menuCtrls.close.addEventListener('click', () => DOM.menu.close()); }); }