diff --git a/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js b/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js index 533c1f0de..0534046ee 100644 --- a/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js +++ b/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js @@ -1,39 +1,1006 @@ +/** + * @Author: Bachir Soussi Chiadmi + * @Date: 18-12-2017 + * @Email: bachir@figureslibres.io + * @Filename: corpus.js + * @Last modified by: bach + * @Last modified time: 20-12-2017 + * @License: GPL-V3 + */ -(function($,Drupal,drupalSettings){EdlpCorpus=function(){var _activated=true;var _$body=$('body');var _$container=_$body;var _$canvas=$('').appendTo(_$container);var _canvas=_$canvas[0];var _ctx=_canvas.getContext('2d');var _canvas_props={'margin_top':90,'margin_right':0,'margin_bottom':65,'margin_left':0};var _physics=new Physics();var _nodes=[];var _articles_nodes=[];var _no_articles_nodes=[];var _nodes_by_entries={};var _nodes_by_nid={};var _nodes_Nid_Id={};var _nodes_centered=[];var _nodes_centered_attractions=[];var _playlist=[];var _p_velocity_factor=0.5;var _mouse_in=true;var _m_pos={x:0,y:0};var _node_hover_id=-1;var _node_opened_id=-1;var _$entrees_block=$('#block-edlpentreesblock');var _$entrees_block_termlinks=$('a.term-link',_$entrees_block);var _$articles_link;var _node_pop_up;var _settings=drupalSettings.edlp_corpus;var _ecolors=_settings.colors;var _attracter,_repulser_top,_repulser_center,_repulser_bottom,_scrambler_TL,_scrambler_TR,_scrambler_BR,_scrambler_BL,_scrambler_CL,_scrambler_CR;function init(){initCanvas();if(_activated){loadCorpus();}else{_$canvas.addClass('de-activated');}};function initCanvas(){window.addEventListener('resize',onResizeCanvas,false);onResizeCanvas();};function onResizeCanvas(){_canvas.width=window.innerWidth;_canvas.height=window.innerHeight;for(var i=0;i<_nodes.length;i++){_nodes[i].onResizeCanvas();resizePhysics();}};function loadCorpus(){var ajax_path=_settings.load_corpus_ajax_url;var path=window.location.origin+Drupal.url(ajax_path);$.getJSON(path,{}).done(function(data){onCorpusLoaded(data);}).fail(function(jqxhr,textStatus,error){onCorpusLoadError(jqxhr,textStatus,error);});};function onCorpusLoadError(jqxhr,textStatus,error){void 0;};function onCorpusLoaded(data){initPhysics();buildNodes(data.nodes);initArtilesLink();initNodePopup();initEvents();checkPreOpenedEntry();startAnime();};function initPhysics(){_attracter=_physics.makeParticle(1000);_attracter.fixed=true;resizePhysics();};function resizePhysics(){_attracter.position={x:_canvas.width/2,y:_canvas.height/2};};function buildNodes(nodes){var d;for(var i in nodes){d=i<1?true:false;new Node(i,nodes[i],d);_playlist.push({'id':i,'nid':nodes[i].nid,'audio_url':nodes[i].audio_url});}};function Node(i,node,d){this.id=i;for(key in node) -this[key]=node[key];_nodes.push(this);_nodes_by_nid[this.nid]=this;_nodes_Nid_Id[this.nid]=this.id;if(this.has_article==1){_articles_nodes.push(this);}else{_no_articles_nodes.push(this);} -for(var j=0;j3:this.r=10;break;case this.entrees.length>1&&this.entrees.length<=3:this.r=7;break;default:this.r=4;break;} -this.e_color='e_col_'+this.entrees[Math.floor(Math.random(this.entrees.length))];this.hover=false;this.opened=false;this.faded=false;this.center=false;this.aside=false;this.scrambling=false;this.n_repulses={};if(typeof Node.initialized=="undefined"){Node.prototype.init=function(){this.calcWallLimits();this.x=this.wall_limits.left+Math.random()*(this.wall_limits.right-this.wall_limits.left);this.y=this.wall_limits.top+Math.random()*(this.wall_limits.bottom-this.wall_limits.top);this.ori_pos={x:this.x,y:this.y};this.initPhysics();};Node.prototype.initPhysics=function(){this.p=_physics.makeParticle(this.mass,this.x,this.y);this.p.velocity=new Physics.Vector((Math.random()-0.5)*_p_velocity_factor,(Math.random()-0.5)*_p_velocity_factor);this.ori_p=_physics.makeParticle(1000,this.ori_pos.x,this.ori_pos.y);this.ori_p.fixed=true;this.ori_p_attract=_physics.makeAttraction(this.ori_p,this.p,1000,_canvas.width*2);this.ori_p_attract.on=false;this.attract=_physics.makeAttraction(_attracter,this.p,1000,_canvas.width*2);this.attract.on=false;};Node.prototype.calcWallLimits=function(){this.wall_limits={top:_canvas_props.margin_top+this.r,right:_canvas.width-_canvas_props.margin_right-this.r,bottom:_canvas.height-_canvas_props.margin_bottom-this.r,left:_canvas_props.margin_left+this.r}};Node.prototype.onResizeCanvas=function(){this.calcWallLimits();this.shuffleOriP();};Node.prototype.shuffleOriP=function(){this.ori_pos.x=this.wall_limits.left+Math.random()*(this.wall_limits.right-this.wall_limits.left);this.ori_pos.y=this.wall_limits.top+Math.random()*(this.wall_limits.bottom-this.wall_limits.top);this.scramble();};Node.prototype.onUpdate=function(){if(this.hover||this.opened){this.p.fixed=true;}else{this.p.fixed=false;} -if(this.center) -this.limitEvolutionZone();if(!this.p.resting()){this.checkWallBouncing();this.updatePos();if(this.scrambling){this.checkOriPDist();}} -if(_mouse_in&&!this.aside) -this.checkMouse();this.draw();};Node.prototype.checkVelocityThreshold=function(){if(!this.centered||!this.aside){if(Math.abs(this.p.velocity.x)this.wall_limits.right&&this.p.velocity.x>0:this.p.position.x=this.wall_limits.right;this.p.velocity.multiplyScalarXY(-1,1).multiplyScalar(0.75);break;case this.ythis.wall_limits.bottom&&this.p.velocity.y>0:this.p.position.y=this.wall_limits.bottom;this.p.velocity.multiplyScalarXY(1,-1).multiplyScalar(0.75);break;}};Node.prototype.updatePos=function(){this.x=this.p.position.x;this.y=this.p.position.y;};Node.prototype.checkMouse=function(){if(_m_pos.x>this.x-this.r&&_m_pos.xthis.y-this.r&&_m_pos.y0.4){this.p.velocity.multiplyScalar(0.995);}} -if(Math.abs(_attracter.position.x-this.x)>_canvas.width/3||Math.abs(_attracter.position.y-this.y)>_canvas.height/3){this.attract.on=true;}else{this.attract.on=false;}} -Node.prototype.setAside=function(){this.aside=true;this.stopScrambling();this.unsetCentered();this.ori_p.position.x=this.x<_canvas.width/2?this.wall_limits.left:this.wall_limits.right;this.ori_p_attract.on=true;} -Node.prototype.unsetAside=function(){void 0;this.aside=false;this.ori_p_attract.on=false;this.ori_p.position.x=this.ori_pos.x;} -Node.prototype.scramble=function(){this.scrambling=true;this.unsetCentered();this.unsetAside();this.ori_p.position.x=this.ori_pos.x;this.ori_p.position.y=this.ori_pos.y;this.ori_p_attract.on=true;} -Node.prototype.checkOriPDist=function(){if(this.p.distanceTo(this.ori_p)<50){this.stopScrambling();}};Node.prototype.stopScrambling=function(){this.scrambling=false;this.ori_p_attract.on=false;} -Node.prototype.draw=function(){_ctx.beginPath();_ctx.globalAlpha=this.faded?0.1:1;_ctx.fillStyle=_ecolors[this.e_color];_ctx.fillRect(this.x-this.r,this.y-this.r,this.r*2,this.r*2);if(this.opened){_ctx.lineWidth='1px';_ctx.strokeStyle='rgb(255,0,0)';_ctx.strokeRect(this.x-this.r-3,this.y-this.r-3,this.r*2+6,this.r*2+6);} -_ctx.globalAlpha=1;_ctx.closePath();};Node.initialized=true;} -this.init();};function checkParticulesCollisions(){var na,nb,ma,mb,w,h,dx,dy,makeup,newVelX1,newVelY1,newVelX2,newVelY2;for(var n=0,l=_nodes.length;n300){if(Math.random()>0.3)continue;}} -w=h=(na.r+nb.r);dx=na.p.position.x-nb.p.position.x;dy=na.p.position.y-nb.p.position.y;if(Math.abs(dx)>w||Math.abs(dy)>h)continue;if(Math.abs(dx)0){na.p.position.y+=makeup;nb.p.position.y-=makeup;}else{na.p.position.y-=makeup;nb.p.position.y+=makeup;} -newVelY1=(ma-mb)/(ma+mb)*na.p.velocity.y+2*mb/(ma+mb)*nb.p.velocity.y;newVelY2=(mb-ma)/(mb+ma)*nb.p.velocity.y+2*ma/(mb+ma)*na.p.velocity.y;na.p.velocity.y=newVelY1;nb.p.velocity.y=newVelY2;}else{makeup=(w-Math.abs(dx))/2;if(dx>0){na.p.position.x+=makeup;nb.p.position.x-=makeup;}else{na.p.position.x-=makeup;nb.p.position.x+=makeup;} -newVelX1=(ma-mb)/(ma+mb)*na.p.velocity.x+2*mb/(ma+mb)*nb.p.velocity.x;newVelX2=(mb-ma)/(mb+ma)*nb.p.velocity.x+2*ma/(mb+ma)*na.p.velocity.x;na.p.velocity.x=newVelX1;nb.p.velocity.x=newVelX2;} -na.p.velocity.multiplyScalar(0.90);nb.p.velocity.multiplyScalar(0.90);}}};function openNodeByNid(nid){closeNode();if(typeof _nodes_Nid_Id[nid]!='undefined'){_node_opened_id=_nodes_Nid_Id[nid];_nodes[_nodes_Nid_Id[nid]].open();}} -function closeNode(){if(_node_opened_id!=-1){_nodes[_node_opened_id].close();_node_opened_id=-1;}} -function createNodesRepulsions(){purgeNodesRepulsions();for(var n=0;n<_nodes_centered.length;n++){for(var q=n+1;q<_nodes_centered.length;q++){_physics.makeAttraction(_nodes_centered[n].p,_nodes_centered[q].p,-0.4,10);}}};function purgeNodesRepulsions(){for(var a=_physics.attractions.length-1;a>=0;a--){if(Math.abs(_physics.attractions[a].constant)<1){_physics.attractions.splice(a,1);}else{break;}}};function toggleEntree(tid,bubbling){var $link=_$entrees_block_termlinks.filter('[tid="'+tid+'"]');var $li=$link.parents('li');var sys_path=$link.attr('data-drupal-link-system-path');var url=$link.attr('href');if(!$li.is('.opened')){_$entrees_block_termlinks.parents('li').removeClass('opened');$li.addClass('opened');filterEntree(tid);if(bubbling){_$body.trigger({'type':'open_entree','tid':tid,'url':url,'sys_path':sys_path});}}else if(bubbling){$li.removeClass('opened');scrambleCollection();_$body.trigger({'type':'close_entree','tid':tid});}};function filterEntree(t){shutDownArticles();_nodes_centered=[];for(var n=0;n<_nodes.length;n++){if(_nodes[n].entrees.indexOf(t)==-1){_nodes[n].setAside();}else{_nodes[n].setCenteredOnEntree(t);_nodes_centered.push(_nodes[n]);}} -createNodesRepulsions();};function highlightEntries(){_$entrees_block_termlinks.removeClass('highlighted');var id=-1;if(_node_hover_id!=-1){id=_node_hover_id;}else if(_node_opened_id!=-1){id=_node_opened_id;} -var entree;if(id!=-1){for(var i=0;i<_nodes[id].entrees.length;i++){entree=_nodes[id].entrees[i];_$entrees_block_termlinks.filter(function(){return $(this).attr('tid')==entree;}).addClass('highlighted');}}};function filterSearchResults(nids){shutDownArticles();_nodes_centered=[];for(var n=0;n<_nodes.length;n++){if(nids.indexOf(_nodes[n].nid)==-1){_nodes[n].setAside();}else{_nodes[n].setCentered();_nodes_centered.push(_nodes[n]);}} -createNodesRepulsions();};function scrambleCollection(){for(var i=0;i<_nodes.length;i++){_nodes[i].scramble();}};function closeAllEntries(){_$entrees_block_termlinks.each(function(index,el){if($(this).parents('li').is('.opened')){$(this).trigger('click');return false;}});};function initArtilesLink(){_$articles_link=$('').html('Articles').attr("href","#articles").addClass('articles-link').on('click',onCLickedOnArticles);$('.item-list ul',_$entrees_block).append($('
  • ').append($('').append(_$articles_link)));};function onCLickedOnArticles(e){e.preventDefault();$(this).toggleClass('is-active');if($(this).is('.is-active')){filterArticles();closeAllEntries();}else{resetArticlesFilter();} -return false;};function filterArticles(){for(var i=0;i<_no_articles_nodes.length;i++){_no_articles_nodes[i].fade();}};function resetArticlesFilter(){for(var i=0;i<_no_articles_nodes.length;i++){_no_articles_nodes[i].unFade();}};function shutDownArticles(){if(_$articles_link.is('.is-active')) -_$articles_link.trigger('click');};function initEvents(){void 0;_$canvas.on('mousemove',function(event){event.preventDefault();_m_pos.x=event.originalEvent.clientX;_m_pos.y=event.originalEvent.clientY;}).on('mouseenter',function(event){_mouse_in=true;}).on('mouseout',function(event){_mouse_in=false;_node_pop_up.removeNode();}).on('click',function(event){if(event.target.tagName!="A"&&event.target.tagName!="INPUT"){event.preventDefault();if(_node_hover_id!=-1){var event={'type':'corpus-cliked-on-node','target_node':{'id':_node_hover_id,'nid':_nodes[_node_hover_id].nid,'audio_url':_nodes[_node_hover_id].audio_url},};_$canvas.trigger(event);}else{_$canvas.trigger('corpus-cliked-on-map');}}}).on('audio-node-opened',function(e){openNodeByNid(e.nid);}).on('audio-node-closed',function(e){closeNode();}).on('open-entree',function(e){toggleEntree(e.tid);}).on('close-all-entree',function(e){closeAllEntries();});_$entrees_block_termlinks.on('click',function(event){event.preventDefault();toggleEntree($(this).attr('tid'),true);return false;});_$body.on('chutier-action-done',function(e){_nodes_by_nid[e.target_id].chutier_action=e.new_action;}).on('search-results-loaded',function(e){filterSearchResults(e.results);}).on('search-closed',function(e){scrambleCollection();}).on('new-content-not-entree-ajax-loaded',function(e){if(_$entrees_block_termlinks.parents('li.opened').length){_$entrees_block_termlinks.parents('li').removeClass('opened');scrambleCollection();}});};function checkPreOpenedEntry(){_$entrees_block.find('li.entree').each(function(index,el){var $li=$(this);if($('a.is-active',$li).length){$li.addClass('opened');filterEntree($li.attr('tid'));return false;}});};function initNodePopup(){_node_pop_up=new NodePopUp();};function NodePopUp(){this.visible=false;this.node;this.$dom=$('
    ').addClass('node-popup').attr('pos','top-right').appendTo('body');this.$content=$('
    ').addClass('inner').appendTo(this.$dom);if(typeof NodePopUp.initialized=="undefined"){NodePopUp.prototype.setNode=function(n){this.node=n;this.setPositioning();this.setContent();};NodePopUp.prototype.setPositioning=function(){switch(true){case this.node.x>this.node.wall_limits.right-350&&this.node.ythis.node.wall_limits.right-350:this.$dom.attr('pos','top-left');break;case this.node.y').addClass('entrees');for(var i=0;i').addClass('entree').attr('tid',tid));} -var $chutier_action=$('').addClass('chutier-icon').attr('action',this.node.chutier_action);this.$content.append($entrees).append('

    '+this.node.title+'

    ').append('
    '+this.node.description+'
    ').append($chutier_action);};NodePopUp.prototype.removeNode=function(){this.node=false;};NodePopUp.prototype.draw=function(){if(this.node){this.$dom.css({'display':"block",'left':this.node.x+"px",'top':this.node.y+"px",});}else{this.$dom.css({'display':"none",});}};NodePopUp.initialized=true;}} -function render(){_ctx.clearRect(0,0,_canvas.width,_canvas.height);checkParticulesCollisions();for(var i=0;i<_nodes.length;i++){_nodes[i].onUpdate();} -_node_pop_up.draw();if(_node_hover_id!=-1){_canvas.style.cursor='pointer';}else{_canvas.style.cursor='auto';} -highlightEntries();};function startAnime(){_physics.onUpdate(render);_physics.play() -$('body').attr('corpus','map-ready').trigger({'type':'corpus-map-ready','playlist':_playlist});};init();} -$(document).ready(function($){var edlpcorpus=new EdlpCorpus();});})(jQuery,Drupal,drupalSettings); \ No newline at end of file +// JS performance improvement http://archive.oreilly.com/pub/a/server-administration/excerpts/even-faster-websites/writing-efficient-javascript.html + +/** + * depends on : + * physics.js : http://jonobr1.com/Physics/# + */ + +(function($, Drupal, drupalSettings) { + + EdlpCorpus = function(){ + var _activated = true; + var _$body = $('body'); + var _$container = _$body; + var _$canvas = $('').appendTo(_$container); + var _canvas = _$canvas[0]; + var _ctx = _canvas.getContext('2d'); + var _canvas_props = { + 'margin_top':90, + 'margin_right':0, + 'margin_bottom':65, + 'margin_left':0 + }; + var _physics = new Physics(); + var _nodes = []; + var _articles_nodes = []; + var _no_articles_nodes = []; + var _nodes_by_entries = {}; + var _nodes_by_nid = {}; + var _nodes_Nid_Id = {}; + var _nodes_centered = []; + var _nodes_centered_attractions = []; + + var _playlist = []; + + var _p_velocity_factor = 0.5; + var _mouse_in = true; + var _m_pos = {x:0, y:0}; + var _node_hover_id = -1; + var _node_opened_id = -1; + var _$entrees_block = $('#block-edlpentreesblock'); + var _$entrees_block_termlinks = $('a.term-link', _$entrees_block); + var _$articles_link; + var _node_pop_up; + // Colors depend on drupalSettings loaded by edlp_corpus.module + var _settings = drupalSettings.edlp_corpus; + var _ecolors = _settings.colors; + // Physics + var _attracter, + _repulser_top, + _repulser_center, + _repulser_bottom, + _scrambler_TL, + _scrambler_TR, + _scrambler_BR, + _scrambler_BL, + _scrambler_CL, + _scrambler_CR; + + // ____ _ __ + // / _/___ (_) /______ + // / // __ \/ / __/ ___/ + // _/ // / / / / /_(__ ) + // /___/_/ /_/_/\__/____/ + function init(){ + initCanvas(); + if(_activated){ + loadCorpus(); + }else{ + _$canvas.addClass('de-activated'); + } + }; + + // ___ + // / __|__ _ _ ___ ____ _ ___ + // | (__/ _` | ' \ V / _` (_-< + // \___\__,_|_||_\_/\__,_/__/ + function initCanvas(){ + // resize the canvas to fill browser window dynamically + window.addEventListener('resize', onResizeCanvas, false); + onResizeCanvas(); + }; + function onResizeCanvas() { + _canvas.width = window.innerWidth; + _canvas.height = window.innerHeight; + for (var i = 0; i < _nodes.length; i++) { + _nodes[i].onResizeCanvas(); + // move _attracter and _repulser to the center again + resizePhysics(); + } + }; + + // ___ + // / __|___ _ _ _ __ _ _ ___ + // | (__/ _ \ '_| '_ \ || (_-< + // \___\___/_| | .__/\_,_/__/ + // |_| + function loadCorpus(){ + // console.log('drupalSettings',drupalSettings); + // console.log('window.location', window.location); + // var path = window.location.origin + drupalSettings.basepath + "edlp/corpus"; + var ajax_path = _settings.load_corpus_ajax_url; + var path = window.location.origin + Drupal.url(ajax_path); + $.getJSON(path, {}) + .done(function(data){ + onCorpusLoaded(data); + }) + .fail(function(jqxhr, textStatus, error){ + onCorpusLoadError(jqxhr, textStatus, error); + }); + }; + function onCorpusLoadError(jqxhr, textStatus, error){ + console.warn('corpus load failed', jqxhr.responseText); + }; + function onCorpusLoaded(data){ + //console.log('corpus loaded : data', data); + // console.log('first node', data.nodes[0]); + // buildParticles(data.nodes); + initPhysics(); + buildNodes(data.nodes); + initArtilesLink(); + initNodePopup(); + initEvents(); + checkPreOpenedEntry(); + startAnime(); + }; + + // ___ _ _ + // | _ \ |_ _ _ __(_)__ ___ + // | _/ ' \ || (_-< / _(_-< + // |_| |_||_\_, /__/_\__/__/ + // |__/ + function initPhysics(){ + _attracter = _physics.makeParticle(1000); + _attracter.fixed = true; + // move _attracter on window resize + resizePhysics(); + }; + function resizePhysics(){ + // attracters + _attracter.position = {x:_canvas.width/2, y:_canvas.height/2}; + }; + + // _ _ _ + // | \| |___ __| |___ ___ + // | .` / _ \/ _` / -_|_-< + // |_|\_\___/\__,_\___/__/ + function buildNodes(nodes){ + //console.log("buildNodes", nodes); + var d; + for (var i in nodes) { + d = i < 1 ? true : false; + // _nodes.push(new Node(i,nodes[i],d)); + new Node(i,nodes[i],d); + + _playlist.push({ + 'id':i, + 'nid':nodes[i].nid, + 'audio_url':nodes[i].audio_url + }); + } + //console.log('_nodes',_nodes); + //console.log('_articles_nodes',_articles_nodes); + //console.log('_no_articles_nodes',_no_articles_nodes); + //console.log('_nodes_by_entries', _nodes_by_entries); + + //console.log('_physics.attractions.length', _physics.attractions.length); + }; + + function Node(i,node,d){ + this.id = i; + for(key in node) + this[key] = node[key]; + + // record the node in different lists + _nodes.push(this); + + _nodes_by_nid[this.nid] = this; + _nodes_Nid_Id[this.nid] = this.id; + + if(this.has_article == 1){ + _articles_nodes.push(this); + }else{ + _no_articles_nodes.push(this); + } + + for (var j = 0; j < this.entrees.length; j++) { + if(typeof _nodes_by_entries[this.entrees[j]] == 'undefined') + _nodes_by_entries[this.entrees[j]] = []; + + _nodes_by_entries[this.entrees[j]].push(this); + } + + this.debug = d; + this.mass = Math.max(1, this.entrees.length); //1; + this.velocity_threshold = 0.01; + // define radius regarding entries length + switch(true){ + case this.entrees.length > 3: + this.r = 10; + break; + case this.entrees.length > 1 && this.entrees.length <= 3: + this.r = 7; + break; + default: + this.r = 4; + break; + } + + this.e_color = 'e_col_'+this.entrees[Math.floor(Math.random(this.entrees.length))]; + + this.hover = false; + this.opened = false; + this.faded = false; + this.center = false; + this.aside = false; + this.scrambling = false; + + this.n_repulses = {}; + + // prototypes + if (typeof Node.initialized == "undefined") { + + Node.prototype.init = function(){ + this.calcWallLimits(); + + this.x = this.wall_limits.left + Math.random()*(this.wall_limits.right - this.wall_limits.left); + this.y = this.wall_limits.top + Math.random()*(this.wall_limits.bottom - this.wall_limits.top); + + this.ori_pos = {x:this.x,y:this.y}; + // TODO: don't forget to move ori_pos on window resize + + this.initPhysics(); + + }; + + Node.prototype.initPhysics = function(){ + // particule + this.p = _physics.makeParticle(this.mass, this.x, this.y); + this.p.velocity = new Physics.Vector((Math.random()-0.5)*_p_velocity_factor, (Math.random()-0.5)*_p_velocity_factor); + // origin position particule + this.ori_p = _physics.makeParticle(1000, this.ori_pos.x, this.ori_pos.y); + this.ori_p.fixed = true; + // TODO: don't forget to move ori_p on window resize + this.ori_p_attract = _physics.makeAttraction(this.ori_p, this.p, 1000, _canvas.width*2); + this.ori_p_attract.on = false; + // attracter + this.attract = _physics.makeAttraction(_attracter, this.p, 1000, _canvas.width*2); + this.attract.on = false; + }; + + Node.prototype.calcWallLimits = function(){ + this.wall_limits = { + top: _canvas_props.margin_top +this.r, + right: _canvas.width -_canvas_props.margin_right -this.r, + bottom: _canvas.height -_canvas_props.margin_bottom -this.r, + left: _canvas_props.margin_left +this.r + } + }; + + Node.prototype.onResizeCanvas = function(){ + this.calcWallLimits(); + this.shuffleOriP(); + // TODO: when canvas is smaller what about nodes hors champs, they are coming back alone but it's too long + }; + + Node.prototype.shuffleOriP = function(){ + this.ori_pos.x = this.wall_limits.left + Math.random()*(this.wall_limits.right - this.wall_limits.left); + this.ori_pos.y = this.wall_limits.top + Math.random()*(this.wall_limits.bottom - this.wall_limits.top); + this.scramble(); + }; + + Node.prototype.onUpdate = function(){ + + // this.p.velocity.multiplyScalar(0.99); + if(this.hover || this.opened){ + this.p.fixed = true; + }else{ + this.p.fixed = false; + } + + if(this.center) + this.limitEvolutionZone(); + + if(!this.p.resting()){ + // this.checkVelocityThreshold(); + this.checkWallBouncing(); + this.updatePos(); + if(this.scrambling){ + this.checkOriPDist(); + } + } + + if(_mouse_in && !this.aside) + this.checkMouse(); + + // if(this.debug) + // console.log("Node pos: ", {x:this.x, y:this.y}); + this.draw(); + }; + + Node.prototype.checkVelocityThreshold = function(){ + if(!this.centered || !this.aside){ + if (Math.abs(this.p.velocity.x) < this.velocity_threshold + && Math.abs(this.p.velocity.y) < this.velocity_threshold){ + this.p.velocity.multiplyScalar(0); + // this.p.makeFixed(); + } + } + }; + + Node.prototype.checkWallBouncing = function(){ + switch(true){ + case this.x < this.wall_limits.left && this.p.velocity.x < 0: + this.p.position.x = this.wall_limits.left; + this.p.velocity.multiplyScalarXY(-1, 1).multiplyScalar(0.75); + break; + case this.x > this.wall_limits.right && this.p.velocity.x > 0: + this.p.position.x = this.wall_limits.right; + this.p.velocity.multiplyScalarXY(-1, 1).multiplyScalar(0.75); + break; + case this.y < this.wall_limits.top && this.p.velocity.y < 0 : + this.p.position.y = this.wall_limits.top; + this.p.velocity.multiplyScalarXY(1,-1).multiplyScalar(0.75); + break; + case this.y > this.wall_limits.bottom && this.p.velocity.y > 0 : + this.p.position.y = this.wall_limits.bottom; + this.p.velocity.multiplyScalarXY(1,-1).multiplyScalar(0.75); + break; + } + }; + + Node.prototype.updatePos = function(){ + this.x = this.p.position.x; + this.y = this.p.position.y; + }; + + Node.prototype.checkMouse = function(){ + + if( _m_pos.x > this.x - this.r + && _m_pos.x < this.x + this.r + && _m_pos.y > this.y - this.r + && _m_pos.y < this.y + this.r){ + if(_node_hover_id == -1 || _node_hover_id !== this.id){ + // console.log("Node hover", this.id); + this.hover = true; + _node_hover_id = this.id; + _node_pop_up.setNode(this); + } + }else{ + this.hover = false; + if (_node_hover_id == this.id) { + _node_hover_id = -1; + _node_pop_up.removeNode(); + } + } + }; + + Node.prototype.open = function(){ + this.opened = true; + _node_opened_id = this.id; + }; + Node.prototype.close = function(){ + this.opened = false; + }; + + Node.prototype.fade = function(){ + this.faded = true; + }; + Node.prototype.unFade = function(){ + this.faded = false; + }; + + Node.prototype.setCenteredOnEntree = function(tid){ + this.e_color = 'e_col_'+tid; + this.setCentered(); + }; + + Node.prototype.setCentered = function(){ + this.center = true; + this.stopScrambling(); + this.unsetAside(); + this.attract.on = true; + } + Node.prototype.unsetCentered = function(){ + this.center = false; + this.attract.on = false; + } + + Node.prototype.limitEvolutionZone = function(){ + // smouthly slow down node near center + // if(this.id == 1) + // console.log('this.p.velocity', this.p.velocity); + this.dist_to_attracter = this.p.distanceTo(_attracter); + if( this.dist_to_attracter < _canvas.width/4){ + if( this.p.velocity.length() > 0.4 ){ + this.p.velocity.multiplyScalar(0.995); + } + } + if( Math.abs(_attracter.position.x - this.x) > _canvas.width/3 + || Math.abs(_attracter.position.y - this.y) > _canvas.height/3){ + this.attract.on = true; + }else{ + this.attract.on = false; + } + } + + Node.prototype.setAside = function(){ + this.aside = true; + // this.fade(); + this.stopScrambling(); + this.unsetCentered(); + this.ori_p.position.x = this.x < _canvas.width /2 ? this.wall_limits.left : this.wall_limits.right; + this.ori_p_attract.on = true; + } + Node.prototype.unsetAside = function(){ + console.log('unsetAside'); + this.aside = false; + this.ori_p_attract.on = false; + this.ori_p.position.x = this.ori_pos.x; + // this.unFade(); + } + + Node.prototype.scramble = function(){ + this.scrambling = true; + this.unsetCentered(); + this.unsetAside(); + this.ori_p.position.x = this.ori_pos.x; + this.ori_p.position.y = this.ori_pos.y; + this.ori_p_attract.on = true; + } + Node.prototype.checkOriPDist = function(){ + if(this.p.distanceTo(this.ori_p) < 50){ + this.stopScrambling(); + } + }; + Node.prototype.stopScrambling = function(){ + this.scrambling = false; + this.ori_p_attract.on = false; + // this.scramble_TL.on = false; + // this.scramble_TR.on = false; + // this.scramble_BR.on = false; + // this.scramble_BL.on = false; + // this.scramble_CR.on = false; + // this.scramble_CL.on = false; + } + + Node.prototype.draw = function(){ + // carre plein + // clouleur aléatoire ds les entrees + // 3 tailles : + // - 1 entree : petit carre 5px + // - 2-3 entrees : moyen 7.5px + // - >3 entrees : grand 10px + // actif entouré de rouge + + _ctx.beginPath(); + _ctx.globalAlpha = this.faded ? 0.1 : 1; + // _ctx.fillStyle = !this.p.resting() ? _ecolors[this.e_color] : 'rgb(0, 0, 0)'; + _ctx.fillStyle = _ecolors[this.e_color]; + _ctx.fillRect(this.x - this.r,this.y - this.r,this.r*2,this.r*2); + + if(this.opened){ + _ctx.lineWidth = '1px'; + _ctx.strokeStyle = 'rgb(255,0,0)'; + _ctx.strokeRect(this.x - this.r-3,this.y - this.r-3,this.r*2+6,this.r*2+6); + } + _ctx.globalAlpha = 1; + _ctx.closePath(); + }; + + Node.initialized = true; + } + + this.init(); + }; + // TODO: we may convert a lot of computation into a web worker + // https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers + function checkParticulesCollisions(){ + // pre create vars to save memory; + var na,nb, + ma,mb, + w,h,dx,dy, + makeup, + newVelX1, newVelY1, newVelX2, newVelY2; + // , angle; + // colisions between _particules + for (var n = 0, l = _nodes.length; n < l; n++) { + na = _nodes[n]; + ma = na.p.mass; + // avoid colliding for centered nodes + // if(_nodes[n].center) continue; + + // avoid colliding for scrambling nodes + if(na.scrambling) continue; + + for (var q = n+1; q < l; q++) { + nb = _nodes[q]; + mb = nb.p.mass; + // avoid impact between center and aside particules + if((na.center && nb.aside) || (na.aside && nb.center)) + continue; + + // avoid impact between two centered particulses that comes to the center + if(na.center && nb.center){ + if(Math.min(na.p.distanceTo(_attracter), nb.p.distanceTo(_attracter)) > 300){ + if( Math.random()>0.3 ) continue; + } + } + + w = h = (na.r+nb.r); + dx = na.p.position.x - nb.p.position.x; + dy = na.p.position.y - nb.p.position.y; + + // if both dx and dy are inferior to w & h so squares are colliding (overlapping) + // if( Math.abs(dx) <= w && Math.abs(dy) <= h){ console.log('colliding'); } + // else not so skip + if( Math.abs(dx) > w || Math.abs(dy) > h) continue; + + if(Math.abs(dx) < Math.abs(dy)){ // vertical collision + makeup = (h - Math.abs(dy))/2; + if(dy > 0){ // a is upper than b + na.p.position.y += makeup; + nb.p.position.y -= makeup; + }else{ // b is upper than a + na.p.position.y -= makeup; + nb.p.position.y += makeup; + } + // bounce + // https://en.wikipedia.org/wiki/Elastic_collision#One-dimensional_Newtonian + newVelY1 = (ma-mb)/(ma+mb)*na.p.velocity.y+2*mb/(ma+mb)*nb.p.velocity.y; + newVelY2 = (mb-ma)/(mb+ma)*nb.p.velocity.y+2*ma/(mb+ma)*na.p.velocity.y; + + na.p.velocity.y = newVelY1; + nb.p.velocity.y = newVelY2; + + }else{ // horizontal collision + makeup = (w - Math.abs(dx))/2; + if(dx > 0){ // a is at left of b + na.p.position.x += makeup; + nb.p.position.x -= makeup; + }else{ // b is at left of a + na.p.position.x -= makeup; + nb.p.position.x += makeup; + } + // bounce + // https://en.wikipedia.org/wiki/Elastic_collision#One-dimensional_Newtonian + newVelX1 = (ma-mb)/(ma+mb)*na.p.velocity.x+2*mb/(ma+mb)*nb.p.velocity.x; + newVelX2 = (mb-ma)/(mb+ma)*nb.p.velocity.x+2*ma/(mb+ma)*na.p.velocity.x; + + na.p.velocity.x = newVelX1; + nb.p.velocity.x = newVelX2; + } + + // slow down particule on impact + // na.p.velocity.multiplyScalar(na.center && na.p.velocity.length() < 1 ? 1.1 : 0.90); + // nb.p.velocity.multiplyScalar(nb.center && nb.p.velocity.length() < 1 ? 1.1 : 0.90); + na.p.velocity.multiplyScalar(0.90); + nb.p.velocity.multiplyScalar(0.90); + + } + } + }; + // show opened audio node + function openNodeByNid(nid){ + // console.log('Corpus openNode()', nid); + closeNode(); + if(typeof _nodes_Nid_Id[nid] != 'undefined'){ + // console.log('node exists'); + _node_opened_id = _nodes_Nid_Id[nid]; + _nodes[_nodes_Nid_Id[nid]].open(); + } + } + function closeNode(){ + if(_node_opened_id != -1){ + // if(typeof _nodes[_node_opened_id] !== 'undefined'){ + _nodes[_node_opened_id].close(); + // } + _node_opened_id = -1; + } + } + function createNodesRepulsions(){ + // how to delete all these attractions before creates new once + //console.log('_nodes_centered', _nodes_centered); + purgeNodesRepulsions(); + for (var n = 0; n < _nodes_centered.length; n++) { + for (var q = n+1; q < _nodes_centered.length; q++) { + _physics.makeAttraction(_nodes_centered[n].p, _nodes_centered[q].p, -0.4, 10); + } + } + }; + function purgeNodesRepulsions(){ + // console.log('_physics.attractions.length', _physics.attractions.length); + for (var a = _physics.attractions.length-1; a >= 0; a--) { + // assuming that only nodes repulsions have constant < 1 + // and are all at the end of array + if(Math.abs(_physics.attractions[a].constant) < 1){ + _physics.attractions.splice(a,1); + }else{ + break; + } + } + // console.log('_physics.attractions.length', _physics.attractions.length); + }; + + // ___ _ + // | __|_ _| |_ _ _ ___ ___ ___ + // | _|| ' \ _| '_/ -_) -_|_-< + // |___|_||_\__|_| \___\___/__/ + function toggleEntree(tid, bubbling){ + var $link = _$entrees_block_termlinks.filter('[tid="'+tid+'"]'); + var $li = $link.parents('li'); + var sys_path = $link.attr('data-drupal-link-system-path'); + var url = $link.attr('href'); + if(!$li.is('.opened')){ + _$entrees_block_termlinks.parents('li').removeClass('opened'); + $li.addClass('opened'); + filterEntree(tid); + if(bubbling){ + _$body.trigger({'type':'open_entree', 'tid':tid, 'url':url, 'sys_path':sys_path}); + } + // bubbling is true only when event is a real click on entree link + }else if(bubbling){ + $li.removeClass('opened'); + scrambleCollection(); + _$body.trigger({'type':'close_entree', 'tid':tid}); + } + }; + function filterEntree(t){ + shutDownArticles(); + + _nodes_centered = []; + for (var n = 0; n < _nodes.length; n++) { + if(_nodes[n].entrees.indexOf(t) == -1){ + _nodes[n].setAside(); + }else{ + _nodes[n].setCenteredOnEntree(t); + // record centered nodes for inter node repulsions + _nodes_centered.push(_nodes[n]); + } + } + createNodesRepulsions(); + }; + function highlightEntries(){ + _$entrees_block_termlinks.removeClass('highlighted'); + var id = -1; + if(_node_hover_id != -1){ + id = _node_hover_id; + }else if(_node_opened_id != -1){ + id = _node_opened_id; + } + var entree; + if(id != -1){ + for (var i = 0; i < _nodes[id].entrees.length; i++) { + entree = _nodes[id].entrees[i]; + _$entrees_block_termlinks.filter(function(){ + return $(this).attr('tid') == entree; + }).addClass('highlighted'); + } + } + }; + + // ___ _ + // / __| ___ __ _ _ _ __| |_ + // \__ \/ -_) _` | '_/ _| ' \ + // |___/\___\__,_|_| \__|_||_| + function filterSearchResults(nids){ + shutDownArticles(); + + _nodes_centered = []; + for (var n = 0; n < _nodes.length; n++) { + if(nids.indexOf(_nodes[n].nid) == -1){ + _nodes[n].setAside(); + }else{ + _nodes[n].setCentered(); + // record centered nodes for inter node repulsions + _nodes_centered.push(_nodes[n]); + } + } + createNodesRepulsions(); + }; + + // ___ _ _ _ + // / __| __ _ _ __ _ _ __ | |__| (_)_ _ __ _ + // \__ \/ _| '_/ _` | ' \| '_ \ | | ' \/ _` | + // |___/\__|_| \__,_|_|_|_|_.__/_|_|_||_\__, | + // |___/ + function scrambleCollection(){ + // console.log('scrambleCollection'); + for (var i = 0; i < _nodes.length; i++) { + _nodes[i].scramble(); + } + // setTimeout(stopScrambling, 2000); + // stopScrambling(); + }; + + function closeAllEntries(){ + _$entrees_block_termlinks.each(function(index, el) { + if($(this).parents('li').is('.opened')){ + $(this).trigger('click'); + return false; + } + }); + }; + + // _ _ _ _ + // /_\ _ _| |_(_)__| |___ ___ + // / _ \| '_| _| / _| / -_|_-< + // /_/ \_\_| \__|_\__|_\___/__/ + function initArtilesLink(){ + // add "articles link to blockentrees" + _$articles_link = $('
    ') + .html('Articles') + .attr("href", "#articles") + .addClass('articles-link') + .on('click', onCLickedOnArticles); + + $('.item-list ul',_$entrees_block).append( + $('
  • ').append( + $('').append(_$articles_link) + ) + ); + }; + function onCLickedOnArticles(e){ + e.preventDefault(); + $(this).toggleClass('is-active'); + if($(this).is('.is-active')){ + filterArticles(); + closeAllEntries(); + }else{ + resetArticlesFilter(); + } + // _$canvas.trigger({ + // 'type':'corpus-cliqued-on-articles' + // }); + return false; + }; + function filterArticles(){ + //console.log('filterArticles'); + for (var i = 0; i < _no_articles_nodes.length; i++) { + _no_articles_nodes[i].fade(); + } + }; + function resetArticlesFilter(){ + //console.log('resetArticlesFilter'); + for (var i = 0; i < _no_articles_nodes.length; i++) { + _no_articles_nodes[i].unFade(); + } + }; + function shutDownArticles(){ + // shutdown articles if active + if(_$articles_link.is('.is-active')) + _$articles_link.trigger('click'); + }; + + // ___ _ + // | __|_ _____ _ _| |_ ___ + // | _|\ V / -_) ' \ _(_-< + // |___|\_/\___|_||_\__/__/ + function initEvents(){ + console.log('Corpus, initEvents'); + _$canvas + .on('mousemove', function(event) { + event.preventDefault(); + _m_pos.x = event.originalEvent.clientX; + _m_pos.y = event.originalEvent.clientY; + }) + .on('mouseenter', function(event){ + // console.log('onMouseIN'); + _mouse_in = true; + }) + .on('mouseout', function(event){ + // console.log('onMouseOUT'); + _mouse_in = false; + _node_pop_up.removeNode(); + }) + .on('click', function(event) { + if(event.target.tagName != "A" && event.target.tagName != "INPUT"){ + // console.log("Corpus : click"); + event.preventDefault(); + if(_node_hover_id != -1){ + // console.log("corpus : click on node", _nodes[_node_hover_id]); + var event = { + 'type':'corpus-cliked-on-node', + 'target_node':{ + 'id':_node_hover_id, + 'nid':_nodes[_node_hover_id].nid, + 'audio_url':_nodes[_node_hover_id].audio_url + }, + }; + _$canvas.trigger(event); + // instead of directly opening the doc, create an event listener (e.g. : audio played from random) + // openNode(_node_hover_id); + }else{ + // console.log('corpus : click on map'); + _$canvas.trigger('corpus-cliked-on-map'); + } + } + }) + .on('audio-node-opened', function(e){ + // console.log('Corpus audio-node-opened', e); + openNodeByNid(e.nid); + }) + .on('audio-node-closed', function(e){ + closeNode(); + }) + .on('open-entree', function(e){ + toggleEntree(e.tid); + }) + .on('close-all-entree', function(e){ + closeAllEntries(); + }); + + _$entrees_block_termlinks.on('click', function(event) { + // console.log('_$entrees_block_termlinks click', this); + event.preventDefault(); + toggleEntree($(this).attr('tid'), true); + // var $link = $(this); + // var tid = $link.attr('tid'); + // var $li = $link.parents('li'); + // var sys_path = $link.attr('data-drupal-link-system-path'); + // var url = $link.attr('href'); + // if(!$li.is('.opened')){ + // _$entrees_block_termlinks.parents('li').removeClass('opened'); + // $li.addClass('opened'); + // toggleEntree(tid); + // _$body.trigger({'type':'open_entree', 'tid':tid, 'url':url, 'sys_path':sys_path}); + // }else{ + // $li.removeClass('opened'); + // scrambleCollection(); + // _$body.trigger({'type':'close_entree', 'tid':tid}); + // } + return false; + }); + + _$body + .on('chutier-action-done', function(e) { + _nodes_by_nid[e.target_id].chutier_action = e.new_action; + }) + .on('search-results-loaded', function(e){ + //console.log("Edlp Corpus, search-results-loaded",e.results); + // TODO: filter map's nodes + filterSearchResults(e.results); + }) + .on('search-closed', function(e){ + scrambleCollection(); + }) + .on('new-content-not-entree-ajax-loaded', function(e){ + // close all entries only if entry already opened + if(_$entrees_block_termlinks.parents('li.opened').length){ + _$entrees_block_termlinks.parents('li').removeClass('opened'); + scrambleCollection(); + } + }); + }; + + function checkPreOpenedEntry(){ + _$entrees_block.find('li.entree').each(function(index, el) { + var $li = $(this); + if($('a.is-active', $li).length){ + $li.addClass('opened'); + filterEntree($li.attr('tid')); + return false; + } + }); + }; + + // _ _ _ ___ _ _ + // | \| |___ __| |___| _ \___ _ __| | | |_ __ + // | .` / _ \/ _` / -_) _/ _ \ '_ \ |_| | '_ \ + // |_|\_\___/\__,_\___|_| \___/ .__/\___/| .__/ + // |_| |_| + function initNodePopup(){ + _node_pop_up = new NodePopUp(); + }; + function NodePopUp(){ + this.visible = false; + this.node; + this.$dom = $('
    ') + .addClass('node-popup') + .attr('pos', 'top-right') + .appendTo('body'); + this.$content = $('
    ').addClass('inner').appendTo(this.$dom); + + if (typeof NodePopUp.initialized == "undefined") { + + NodePopUp.prototype.setNode = function(n){ + // console.log('NodePopUp setNode()'); + this.node = n; + // positioning NodePopUp regarding node position + this.setPositioning(); + // update NodePopUp content + this.setContent(); + }; + + NodePopUp.prototype.setPositioning = function(){ + switch(true){ + case this.node.x > this.node.wall_limits.right-350 && this.node.y < this.node.wall_limits.top+200: + this.$dom.attr('pos', 'bottom-left'); + break; + case this.node.x > this.node.wall_limits.right-350: + this.$dom.attr('pos', 'top-left'); + break; + case this.node.y < this.node.wall_limits.top+200: + this.$dom.attr('pos', 'bottom-right'); + break; + default: + this.$dom.attr('pos', 'top-right'); + } + }; + + NodePopUp.prototype.setContent = function(){ + // console.log(this.node); + this.$content.html(''); + var $entrees = $('
    ').addClass('entrees'); + for (var i = 0; i < this.node.entrees.length; i++) { + var tid = this.node.entrees[i]; + $entrees.append($('').addClass('entree').attr('tid', tid)); + } + var $chutier_action = $('').addClass('chutier-icon').attr('action', this.node.chutier_action); + this.$content + .append($entrees) + .append('

    '+this.node.title+'

    ') + .append('
    '+this.node.description+'
    ') + .append($chutier_action); + }; + + NodePopUp.prototype.removeNode = function(){ + // console.log('NodePopUp removeNode()'); + this.node = false; + }; + + NodePopUp.prototype.draw = function(){ + if(this.node){ + this.$dom.css({ + 'display':"block", + 'left':this.node.x+"px", + 'top':this.node.y+"px", + }); + }else{ + this.$dom.css({ + 'display':"none", + }); + } + }; + + NodePopUp.initialized = true; + } + } + + // ___ _ + // | _ \___ _ _ __| |___ _ _ + // | / -_) ' \/ _` / -_) '_| + // |_|_\___|_||_\__,_\___|_| + function render(){ + _ctx.clearRect(0, 0, _canvas.width, _canvas.height); + + checkParticulesCollisions(); + + for (var i = 0; i < _nodes.length; i++) { + _nodes[i].onUpdate(); + } + + _node_pop_up.draw(); + + if(_node_hover_id != -1){ + _canvas.style.cursor = 'pointer'; + }else{ + _canvas.style.cursor = 'auto'; + } + // check for highlighted entries + highlightEntries(); + }; + + // ___ _ _ _ _ + // / __| |_ __ _ _ _| |_ /_\ _ _ (_)_ __ ___ + // \__ \ _/ _` | '_| _|/ _ \| ' \| | ' \/ -_) + // |___/\__\__,_|_| \__/_/ \_\_||_|_|_|_|_\___| + function startAnime(){ + _physics.onUpdate(render); + _physics.play() + $('body') + .attr('corpus', 'map-ready') + .trigger({ + 'type':'corpus-map-ready', + 'playlist':_playlist + }); + }; + + init(); + } + + $(document).ready(function($) { + var edlpcorpus = new EdlpCorpus(); + }); + +})(jQuery, Drupal, drupalSettings); diff --git a/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/physics.min.js b/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/physics.min.js index 8e7487968..c3ddff68c 100644 --- a/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/physics.min.js +++ b/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/physics.min.js @@ -1,38 +1,1153 @@ +/** + * Physics + * A requirified port of Traer Physics from Processing to JavaScript. + * Copyright (C) 2012 jonobr1 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;othis.originalPositions.length){this.originalPositions.push(new Vector());this.originalVelocities.push(new Vector());this.k1Forces.push(new Vector());this.k1Velocities.push(new Vector());this.k2Forces.push(new Vector());this.k2Velocities.push(new Vector());this.k3Forces.push(new Vector());this.k3Velocities.push(new Vector());this.k4Forces.push(new Vector());this.k4Velocities.push(new Vector());} -return this;},step:function(dt){var s=this.s;var p,x,y;this.allocateParticles();_.each(s.particles,function(p,i){if(!p.fixed){this.originalPositions[i].copy(p.position);this.originalVelocities[i].copy(p.velocity);} -p.force.clear();},this);s.applyForces();_.each(s.particles,function(p,i){if(!p.fixed){this.k1Forces[i].copy(p.force);this.k1Velocities[i].copy(p.velocity);} -p.force.clear();},this);_.each(s.particles,function(p,i){if(!p.fixed){var op=this.originalPositions[i];var k1v=this.k1Velocities[i];x=op.x+k1v.x*0.5*dt;y=op.y+k1v.y*0.5*dt;p.position.set(x,y);var ov=this.originalVelocities[i];var k1f=this.k1Forces[i];x=ov.x+k1f.x*0.5*dt/p.mass;y=ov.y+k1f.y*0.5*dt/p.mass;p.velocity.set(x,y);}},this);s.applyForces();_.each(s.particles,function(p,i){if(!p.fixed){this.k2Forces[i].copy(p.force);this.k2Velocities[i].copy(p.velocity);} -p.force.clear();},this);_.each(s.particles,function(p,i){if(!p.fixed){var op=this.originalPositions[i];var k2v=this.k2Velocities[i];p.position.set(op.x+k2v.x*0.5*dt,op.y+k2v.y*0.5*dt);var ov=this.originalVelocities[i];var k2f=this.k2Forces[i];p.velocity.set(ov.x+k2f.x*0.5*dt/p.mass,ov.y+k2f.y*0.5*dt/p.mass);}},this);s.applyForces();_.each(s.particles,function(p,i){if(!p.fixed){this.k3Forces[i].copy(p.force);this.k3Velocities[i].copy(p.velocity);} -p.force.clear();},this);_.each(s.particles,function(p,i){if(!p.fixed){var op=this.originalPositions[i];var k3v=this.k3Velocities[i];p.position.set(op.x+k3v.x*dt,op.y+k3v.y*dt) -var ov=this.originalVelocities[i];var k3f=this.k3Forces[i];p.velocity.set(ov.x+k3f.x*dt/p.mass,ov.y+k3f.y*dt/p.mass);}},this);s.applyForces();_.each(s.particles,function(p,i){if(!p.fixed){this.k4Forces[i].copy(p.force);this.k4Velocities[i].copy(p.velocity);}},this);_.each(s.particles,function(p,i){p.age+=dt;if(!p.fixed){var op=this.originalPositions[i];var k1v=this.k1Velocities[i];var k2v=this.k2Velocities[i];var k3v=this.k3Velocities[i];var k4v=this.k4Velocities[i];var x=op.x+dt/6.0*(k1v.x+2.0*k2v.x+2.0*k3v.x+k4v.x);var y=op.y+dt/6.0*(k1v.y+2.0*k2v.y+2.0*k3v.y+k4v.y);p.position.set(x,y);var ov=this.originalVelocities[i];var k1f=this.k1Forces[i];var k2f=this.k2Forces[i];var k3f=this.k3Forces[i];var k4f=this.k4Forces[i];x=ov.x+dt/(6.0*p.mass)*(k1f.x+2.0*k2f.x+2.0*k3f.x+k4f.x);y=ov.y+dt/(6.0*p.mass)*(k1f.y+2.0*k2f.y+2.0*k3f.y+k4f.y);p.velocity.set(x,y);}},this);return this;}});module.exports=Integrator;},{"./common":8,"./vector":12}],3:[function(require,module,exports){var _=require('./common'),Vector=require('./vector');function Particle(mass){this.position=new Vector();this.velocity=new Vector();this.force=new Vector();this.mass=mass;this.fixed=false;this.age=0;this.dead=false;} -_.extend(Particle.prototype,{distanceTo:function(p){return this.position.distanceTo(p.position);},makeFixed:function(){this.fixed=true;this.velocity.clear();return this;},reset:function(){this.age=0;this.dead=false;this.position.clear();this.velocity.clear();this.force.clear();this.mass=1.0;return this;},resting:function(){return this.fixed||this.velocity.isZero()&&this.force.isZero();}});module.exports=Particle;},{"./common":8,"./vector":12}],4:[function(require,module,exports){var _=require('./common'),Vector=require('./Vector'),Particle=require('./Particle'),Spring=require('./Spring'),Attraction=require('./Attraction'),Integrator=require('./Integrator');function ParticleSystem(){this.__equilibriumCriteria={particles:true,springs:true,attractions:true};this.__equilibrium=false;this.__optimized=false;this.particles=[];this.springs=[];this.attractions=[];this.forces=[];this.integrator=new Integrator(this);this.hasDeadParticles=false;var args=arguments.length;if(args===1){this.gravity=new Vector(0,arguments[0]);this.drag=ParticleSystem.DEFAULT_DRAG;}else if(args===2){this.gravity=new Vector(0,arguments[0]);this.drag=arguments[1];}else if(args===3){this.gravity=new Vector(arguments[0],arguments[1]);this.drag=arguments[3];}else{this.gravity=new Vector(0,ParticleSystem.DEFAULT_GRAVITY);this.drag=ParticleSystem.DEFAULT_DRAG;}} -_.extend(ParticleSystem,{DEFAULT_GRAVITY:0,DEFAULT_DRAG:0.001,Attraction:Attraction,Integrator:Integrator,Particle:Particle,Spring:Spring,Vector:Vector});_.extend(ParticleSystem.prototype,{optimize:function(b){this.__optimized=!!b;return this;},setGravity:function(x,y){this.gravity.set(x,y);return this;},setEquilibriumCriteria:function(particles,springs,attractions){this.__equilibriumCriteria.particles=!!particles;this.__equilibriumCriteria.springs=!!springs;this.__equilibriumCriteria.attractions=!!attractions;},tick:function(){this.integrator.step(arguments.length===0?1:arguments[0]);if(this.__optimized){this.__equilibrium=!this.needsUpdate();} -return this;},needsUpdate:function(){var i=0;if(this.__equilibriumCriteria.particles){for(i=0,l=this.particles.length;i=0||!_.isFunction(func)){return this;} -this.animations.push(func);return this;},onEquilibrium:function(func){if(_.indexOf(this.equilibriumCallbacks,func)>=0||!_.isFunction(func)){return this;} -this.equilibriumCallbacks.push(func);return this;},update:function(){if(!this.__equilibrium){return this;} -this.__equilibrium=false;if(this.playing){update.call(this);} -return this;}});function update(){var _this=this;this.tick();_.each(this.animations,function(a){a();});if((this.__optimized&&!this.__equilibrium||!this.__optimized)&&this.playing){raf(function(){update.call(_this);});} -if(this.__optimized&&this.__equilibrium){_.each(this.equilibriumCallbacks,function(a){a();});}} -module.exports=Physics;},{"./ParticleSystem":4,"./common":8,"./requestAnimationFrame":11}],6:[function(require,module,exports){var _=require('./common'),Vector=require('./vector');function Spring(a,b,k,d,l){this.constant=k;this.damping=d;this.length=l;this.a=a;this.b=b;this.on=true;} -_.extend(Spring.prototype,{currentLength:function(){return this.a.position.distanceTo(this.b.position);},update:function(){var a=this.a;var b=this.b;if(!(this.on&&(!a.fixed||!b.fixed)))return this;var a2b=new Vector().sub(a.position,b.position);var d=a2b.length();if(d===0){a2b.clear();}else{a2b.divideScalar(d);} -var fspring=-1*(d-this.length)*this.constant;var va2b=new Vector().sub(a.velocity,b.velocity);var fdamping=-1*this.damping*va2b.dot(a2b);var fr=fspring+fdamping;a2b.multiplyScalar(fr);if(!a.fixed){a.force.addSelf(a2b);} -if(!b.fixed){b.force.subSelf(a2b);} -return this;},resting:function(){var a=this.a;var b=this.b;var l=this.length;return!this.on||(a.fixed&&b.fixed)||(a.fixed&&(l===0?b.position.equals(a.position):b.position.distanceTo(a.position)<=l)&&b.resting())||(b.fixed&&(l===0?a.position.equals(b.position):a.position.distanceTo(b.position)<=l)&&a.resting());}});module.exports=Spring;},{"./common":8,"./vector":12}],7:[function(require,module,exports){var _=require('./common');function Vector(x,y){this.x=x||0;this.y=y||0;} -_.extend(Vector.prototype,{set:function(x,y){this.x=x;this.y=y;return this;},copy:function(v){this.x=v.x;this.y=v.y;return this;},clear:function(){this.x=0;this.y=0;return this;},clone:function(){return new Vector(this.x,this.y);},add:function(v1,v2){this.x=v1.x+v2.x;this.y=v1.y+v2.y;return this;},addSelf:function(v){this.x+=v.x;this.y+=v.y;return this;},sub:function(v1,v2){this.x=v1.x-v2.x;this.y=v1.y-v2.y;return this;},subSelf:function(v){this.x-=v.x;this.y-=v.y;return this;},multiplySelf:function(v){this.x*=v.x;this.y*=v.y;return this;},multiplyScalar:function(s){this.x*=s;this.y*=s;return this;},multiplyScalarXY:function(sx,sy){this.x*=sx;this.y*=sy;return this;},divideScalar:function(s){if(s){this.x/=s;this.y/=s;}else{this.set(0,0);} -return this;},negate:function(){return this.multiplyScalar(-1);},dot:function(v){return this.x*v.x+this.y*v.y;},lengthSquared:function(){return this.x*this.x+this.y*this.y;},length:function(){return Math.sqrt(this.lengthSquared());},normalize:function(){return this.divideScalar(this.length());},distanceTo:function(v){return Math.sqrt(this.distanceToSquared(v));},distanceToSquared:function(v){var dx=this.x-v.x,dy=this.y-v.y;return dx*dx+dy*dy;},setLength:function(l){return this.normalize().multiplyScalar(l);},equals:function(v){return(this.distanceTo(v)<0.0001);},lerp:function(v,t){var x=(v.x-this.x)*t+this.x;var y=(v.y-this.y)*t+this.y;return this.set(x,y);},isZero:function(){return(this.length()<0.0001);}});module.exports=Vector;},{"./common":8}],8:[function(require,module,exports){var breaker={};var ArrayProto=Array.prototype;var ObjProto=Object.prototype;var hasOwnProperty=ObjProto.hasOwnProperty;var slice=ArrayProto.slice;var nativeForEach=ArrayProto.forEach;var nativeIndexOf=ArrayProto.indexOf;var toString=ObjProto.toString;var has=function(obj,key){return hasOwnProperty.call(obj,key);};var each=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context);}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i>1;iterator(array[mid]) this.originalPositions.length) { + this.originalPositions.push(new Vector()); + this.originalVelocities.push(new Vector()); + this.k1Forces.push(new Vector()); + this.k1Velocities.push(new Vector()); + this.k2Forces.push(new Vector()); + this.k2Velocities.push(new Vector()); + this.k3Forces.push(new Vector()); + this.k3Velocities.push(new Vector()); + this.k4Forces.push(new Vector()); + this.k4Velocities.push(new Vector()); + } + + return this; + + }, + + step: function(dt) { + + var s = this.s; + var p, x, y; + + this.allocateParticles(); + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + this.originalPositions[i].copy(p.position); + this.originalVelocities[i].copy(p.velocity); + } + p.force.clear(); + }, this); + + // K1 + + s.applyForces(); + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + this.k1Forces[i].copy(p.force); + this.k1Velocities[i].copy(p.velocity); + } + p.force.clear(); + }, this); + + // K2 + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + + var op = this.originalPositions[i]; + var k1v = this.k1Velocities[i]; + x = op.x + k1v.x * 0.5 * dt; + y = op.y + k1v.y * 0.5 * dt; + p.position.set(x, y); + + var ov = this.originalVelocities[i]; + var k1f = this.k1Forces[i]; + x = ov.x + k1f.x * 0.5 * dt / p.mass; + y = ov.y + k1f.y * 0.5 * dt / p.mass; + p.velocity.set(x, y); + + } + }, this); + + s.applyForces(); + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + this.k2Forces[i].copy(p.force); + this.k2Velocities[i].copy(p.velocity); + } + p.force.clear(); + }, this); + + // K3 + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + + var op = this.originalPositions[i]; + var k2v = this.k2Velocities[i]; + p.position.set(op.x + k2v.x * 0.5 * dt, op.y + k2v.y * 0.5 * dt); + + var ov = this.originalVelocities[i]; + var k2f = this.k2Forces[i]; + p.velocity.set(ov.x + k2f.x * 0.5 * dt / p.mass, ov.y + k2f.y * 0.5 * dt / p.mass); + } + }, this); + + s.applyForces(); + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + this.k3Forces[i].copy(p.force); + this.k3Velocities[i].copy(p.velocity); + } + p.force.clear(); + }, this); + + // K4 + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + + var op = this.originalPositions[i]; + var k3v = this.k3Velocities[i]; + p.position.set(op.x + k3v.x * dt, op.y + k3v.y * dt) + + var ov = this.originalVelocities[i]; + var k3f = this.k3Forces[i]; + p.velocity.set(ov.x + k3f.x * dt / p.mass, ov.y + k3f.y * dt / p.mass); + } + }, this); + + s.applyForces(); + + _.each(s.particles, function(p, i) { + if (!p.fixed) { + this.k4Forces[i].copy(p.force); + this.k4Velocities[i].copy(p.velocity); + } + }, this); + + // TOTAL + + _.each(s.particles, function(p, i) { + + p.age += dt; + + if (!p.fixed) { + + var op = this.originalPositions[i]; + var k1v = this.k1Velocities[i]; + var k2v = this.k2Velocities[i]; + var k3v = this.k3Velocities[i]; + var k4v = this.k4Velocities[i]; + + var x = op.x + dt / 6.0 * (k1v.x + 2.0 * k2v.x + 2.0 * k3v.x + k4v.x); + var y = op.y + dt / 6.0 * (k1v.y + 2.0 * k2v.y + 2.0 * k3v.y + k4v.y); + + p.position.set(x, y); + + var ov = this.originalVelocities[i]; + var k1f = this.k1Forces[i]; + var k2f = this.k2Forces[i]; + var k3f = this.k3Forces[i]; + var k4f = this.k4Forces[i]; + + x = ov.x + dt / (6.0 * p.mass) * (k1f.x + 2.0 * k2f.x + 2.0 * k3f.x + k4f.x); + y = ov.y + dt / (6.0 * p.mass) * (k1f.y + 2.0 * k2f.y + 2.0 * k3f.y + k4f.y); + + p.velocity.set(x, y); + + } + + }, this); + + return this; + + } + + }); + + module.exports = Integrator; + +},{"./common":8,"./vector":12}],3:[function(require,module,exports){ +var _ = require('./common') +, Vector = require('./vector') +; + + function Particle(mass) { + + this.position = new Vector(); + this.velocity = new Vector(); + this.force = new Vector(); + this.mass = mass; + this.fixed = false; + this.age = 0; + this.dead = false; + + } + + _.extend(Particle.prototype, { + + /** + * Get the distance between two particles. + */ + distanceTo: function(p) { + return this.position.distanceTo(p.position); + }, + + /** + * Make the particle fixed in 2D space. + */ + makeFixed: function() { + this.fixed = true; + this.velocity.clear(); + return this; + }, + + /** + * Reset a particle. + */ + reset: function() { + + this.age = 0; + this.dead = false; + this.position.clear(); + this.velocity.clear(); + this.force.clear(); + this.mass = 1.0; + + return this; + }, + + /** + * Returns a boolean describing whether the particle is in movement. + */ + resting: function() { + return this.fixed || this.velocity.isZero() && this.force.isZero(); + } + + }); + + module.exports = Particle; + +},{"./common":8,"./vector":12}],4:[function(require,module,exports){ +var _ = require('./common') +, Vector = require('./Vector') +, Particle = require('./Particle') +, Spring = require('./Spring') +, Attraction = require('./Attraction') +, Integrator = require('./Integrator') +; + + /** + * traer.js + * A particle-based physics engine ported from Jeff Traer's Processing + * library to JavaScript. This version is intended for use with the + * HTML5 canvas element. It is dependent on Three.js' Vector2 class, + * but can be overridden with any Vector2 class with the methods included. + * + * @author Jeffrey Traer Bernstein (original Java library) + * @author Adam Saponara (JavaScript port) + * @author Jono Brandel (requirified/optimization port) + * @author David Schoonover (Node/CommonJS/Browserify port) + * + * @version 0.3 + * @date March 25, 2012 + */ + + /** + * The whole kit and kaboodle. + * + * @class + */ + function ParticleSystem() { + + this.__equilibriumCriteria = { particles: true, springs: true, attractions: true }; + this.__equilibrium = false; // are we at equilibrium? + this.__optimized = false; + + this.particles = []; + this.springs = []; + this.attractions = []; + this.forces = []; + this.integrator = new Integrator(this); + this.hasDeadParticles = false; + + var args = arguments.length; + + if (args === 1) { + this.gravity = new Vector(0, arguments[0]); + this.drag = ParticleSystem.DEFAULT_DRAG; + } else if (args === 2) { + this.gravity = new Vector(0, arguments[0]); + this.drag = arguments[1]; + } else if (args === 3) { + this.gravity = new Vector(arguments[0], arguments[1]); + this.drag = arguments[3]; + } else { + this.gravity = new Vector(0, ParticleSystem.DEFAULT_GRAVITY); + this.drag = ParticleSystem.DEFAULT_DRAG; + } + + } + + _.extend(ParticleSystem, { + + DEFAULT_GRAVITY: 0, + + DEFAULT_DRAG: 0.001, + + Attraction: Attraction, + + Integrator: Integrator, + + Particle: Particle, + + Spring: Spring, + + Vector: Vector + + }); + + _.extend(ParticleSystem.prototype, { + + /** + * Set whether to optimize the simulation. This enables the check of whether + * particles are moving. + */ + optimize: function(b) { + this.__optimized = !!b; + return this; + }, + + /** + * Set the gravity of the ParticleSystem. + */ + setGravity: function(x, y) { + this.gravity.set(x, y); + return this; + }, + + /** + * Sets the criteria for equilibrium + */ + setEquilibriumCriteria: function(particles, springs, attractions) { + this.__equilibriumCriteria.particles = !!particles; + this.__equilibriumCriteria.springs = !!springs; + this.__equilibriumCriteria.attractions = !!attractions; + }, + + /** + * Update the integrator + */ + tick: function() { + this.integrator.step(arguments.length === 0 ? 1 : arguments[0]); + if (this.__optimized) { + this.__equilibrium = !this.needsUpdate(); + } + return this; + }, + + /** + * Checks all springs and attractions to see if the contained particles are + * inert / resting and returns a boolean. + */ + needsUpdate: function() { + var i = 0; + + if(this.__equilibriumCriteria.particles) { + for (i = 0, l = this.particles.length; i < l; i++) { + if (!this.particles[i].resting()) { + return true; + } + } + } + + if(this.__equilibriumCriteria.springs) { + for (i = 0, l = this.springs.length; i < l; i++) { + if (!this.springs[i].resting()) { + return true; + } + } + } + + if(this.__equilibriumCriteria.attractions) { + for (i = 0, l = this.attractions.length; i < l; i++) { + if (!this.attractions[i].resting()) { + return true; + } + } + } + + return false; + + }, + + /** + * Add a particle to the ParticleSystem. + */ + addParticle: function(p) { + + this.particles.push(p); + return this; + + }, + + /** + * Add a spring to the ParticleSystem. + */ + addSpring: function(s) { + + this.springs.push(s); + return this; + + }, + + /** + * Add an attraction to the ParticleSystem. + */ + addAttraction: function(a) { + + this.attractions.push(a); + return this; + + }, + + /** + * Makes and then adds Particle to ParticleSystem. + */ + makeParticle: function(m, x, y) { + + var mass = _.isNumber(m) ? m : 1.0; + var x = x || 0; + var y = y || 0; + + var p = new Particle(mass); + p.position.set(x, y); + this.addParticle(p); + return p; + + }, + + /** + * Makes and then adds Spring to ParticleSystem. + */ + makeSpring: function(a, b, k, d, l) { + + var s = new Spring(a, b, k, d, l); + this.addSpring(s); + return s; + + }, + + /** + * Makes and then adds Attraction to ParticleSystem. + */ + makeAttraction: function(a, b, k, d) { + + var a = new Attraction(a, b, k, d); + this.addAttraction(a); + return a; + + }, + + /** + * Wipe the ParticleSystem clean. + */ + clear: function() { + + this.particles.length = 0; + this.springs.length = 0; + this.attractions.length = 0; + + }, + + /** + * Calculate and apply forces. + */ + applyForces: function() { + + if (!this.gravity.isZero()) { + _.each(this.particles, function(p) { + p.force.addSelf(this.gravity); + }, this); + } + + var t = new Vector(); + + _.each(this.particles, function(p) { + t.set(p.velocity.x * -1 * this.drag, p.velocity.y * -1 * this.drag); + p.force.addSelf(t); + }, this); + + _.each(this.springs, function(s) { + s.update(); + }); + + _.each(this.attractions, function(a) { + a.update(); + }); + + _.each(this.forces, function(f) { + f.update(); + }); + + return this; + + }, + + /** + * Clear all particles in the system. + */ + clearForces: function() { + _.each(this.particles, function(p) { + p.clear(); + }); + return this; + } + + }); + + module.exports = ParticleSystem; + +},{"./Attraction":1,"./Integrator":2,"./Particle":3,"./Spring":6,"./Vector":7,"./common":8}],5:[function(require,module,exports){ +var _ = require('./common') +, raf = require('./requestAnimationFrame') +, ParticleSystem = require('./ParticleSystem') +; + + var updates = []; + + /** + * Extended singleton instance of ParticleSystem with convenience methods for + * Request Animation Frame. + * @class + */ + function Physics() { + + var _this = this; + + this.playing = false; + + ParticleSystem.apply(this, arguments); + + this.animations = []; + + this.equilibriumCallbacks = []; + + update.call(this); + + } + + _.extend(Physics, ParticleSystem, { + + superclass: ParticleSystem + + }); + + _.extend(Physics.prototype, ParticleSystem.prototype, { + + /** + * Play the animation loop. Doesn't affect whether in equilibrium or not. + */ + play: function() { + + if (this.playing) { + return this; + } + + this.playing = true; + this.__equilibrium = false; + update.call(this); + + return this; + + }, + + /** + * Pause the animation loop. Doesn't affect whether in equilibrium or not. + */ + pause: function() { + + this.playing = false; + return this; + + }, + + /** + * Toggle between playing and pausing the simulation. + */ + toggle: function() { + + if (this.playing) { + this.pause(); + } else { + this.play(); + } + + return this; + + }, + + onUpdate: function(func) { + + if (_.indexOf(this.animations, func) >= 0 || !_.isFunction(func)) { + return this; + } + + this.animations.push(func); + + return this; + + }, + + onEquilibrium: function(func) { + + if (_.indexOf(this.equilibriumCallbacks, func) >= 0 || !_.isFunction(func)) { + return this; + } + + this.equilibriumCallbacks.push(func); + + return this; + + }, + + /** + * Call update after values in the system have changed and this will fire + * it's own Request Animation Frame to update until things have settled + * to equilibrium — at which point the system will stop updating. + */ + update: function() { + + if (!this.__equilibrium) { + return this; + } + + this.__equilibrium = false; + if (this.playing) { + update.call(this); + } + + return this; + + } + + }); + + function update() { + + var _this = this; + + this.tick(); + + _.each(this.animations, function(a) { + a(); + }); + + if ((this.__optimized && !this.__equilibrium || !this.__optimized) && this.playing) { + + raf(function() { + update.call(_this); + }); + + } + + if (this.__optimized && this.__equilibrium){ + + _.each(this.equilibriumCallbacks, function(a) { + a(); + }); + + } + + } + + module.exports = Physics; + + +},{"./ParticleSystem":4,"./common":8,"./requestAnimationFrame":11}],6:[function(require,module,exports){ +var _ = require('./common') +, Vector = require('./vector') +; + + function Spring(a, b, k, d, l) { + + this.constant = k; + this.damping = d; + this.length = l; + this.a = a; + this.b = b; + this.on = true; + + } + + _.extend(Spring.prototype, { + + /** + * Returns the distance between particle a and particle b + * in 2D space. + */ + currentLength: function() { + return this.a.position.distanceTo(this.b.position); + }, + + /** + * Update spring logic. + */ + update: function() { + + var a = this.a; + var b = this.b; + if (!(this.on && (!a.fixed || !b.fixed))) return this; + + var a2b = new Vector().sub(a.position, b.position); + var d = a2b.length(); + + if (d === 0) { + a2b.clear(); + } else { + a2b.divideScalar(d); // Essentially normalize + } + + var fspring = -1 * (d - this.length) * this.constant; + + var va2b = new Vector().sub(a.velocity, b.velocity); + + var fdamping = -1 * this.damping * va2b.dot(a2b); + + var fr = fspring + fdamping; + + a2b.multiplyScalar(fr); + + if (!a.fixed) { + a.force.addSelf(a2b); + } + if (!b.fixed) { + b.force.subSelf(a2b); + } + + return this; + + }, + + /** + * Returns a boolean describing whether the spring is resting or not. + * Convenient for knowing whether or not the spring needs another update + * tick. + */ + resting: function() { + + var a = this.a; + var b = this.b; + var l = this.length; + + return !this.on || (a.fixed && b.fixed) + || (a.fixed && (l === 0 ? b.position.equals(a.position) : b.position.distanceTo(a.position) <= l) && b.resting()) + || (b.fixed && (l === 0 ? a.position.equals(b.position) : a.position.distanceTo(b.position) <= l) && a.resting()); + + } + + }); + + module.exports = Spring; + + +},{"./common":8,"./vector":12}],7:[function(require,module,exports){ +/** + * @author mr.doob / http://mrdoob.com/ + * @author philogb / http://blog.thejit.org/ + * @author egraether / http://egraether.com/ + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author jonobr1 / http://jonobr1.com/ + */ + +var _ = require('./common'); + + /** + * A two dimensional vector. + */ + function Vector(x, y) { + + this.x = x || 0; + this.y = y || 0; + + } + + _.extend(Vector.prototype, { + + set: function(x, y) { + this.x = x; + this.y = y; + return this; + }, + + copy: function(v) { + this.x = v.x; + this.y = v.y; + return this; + }, + + clear: function() { + this.x = 0; + this.y = 0; + return this; + }, + + clone: function() { + return new Vector(this.x, this.y); + }, + + add: function(v1, v2) { + this.x = v1.x + v2.x; + this.y = v1.y + v2.y; + return this; + }, + + addSelf: function(v) { + this.x += v.x; + this.y += v.y; + return this; + }, + + sub: function(v1, v2) { + this.x = v1.x - v2.x; + this.y = v1.y - v2.y; + return this; + }, + + subSelf: function(v) { + this.x -= v.x; + this.y -= v.y; + return this; + }, + + multiplySelf: function(v) { + this.x *= v.x; + this.y *= v.y; + return this; + }, + + multiplyScalar: function(s) { + this.x *= s; + this.y *= s; + return this; + }, + + multiplyScalarXY: function(sx,sy) { + this.x *= sx; + this.y *= sy; + return this; + }, + + divideScalar: function(s) { + if (s) { + this.x /= s; + this.y /= s; + } else { + this.set(0, 0); + } + return this; + }, + + negate: function() { + return this.multiplyScalar(-1); + }, + + dot: function(v) { + return this.x * v.x + this.y * v.y; + }, + + lengthSquared: function() { + return this.x * this.x + this.y * this.y; + }, + + length: function() { + return Math.sqrt(this.lengthSquared()); + }, + + normalize: function() { + return this.divideScalar(this.length()); + }, + + distanceTo: function(v) { + return Math.sqrt(this.distanceToSquared(v)); + }, + + distanceToSquared: function(v) { + var dx = this.x - v.x, dy = this.y - v.y; + return dx * dx + dy * dy; + }, + + setLength: function(l) { + return this.normalize().multiplyScalar(l); + }, + + equals: function(v) { + return (this.distanceTo(v) < 0.0001 /* almost same position */); + }, + + lerp: function(v, t) { + var x = (v.x - this.x) * t + this.x; + var y = (v.y - this.y) * t + this.y; + return this.set(x, y); + }, + + isZero: function() { + return (this.length() < 0.0001 /* almost zero */ ); + } + + }); + + module.exports = Vector; + +},{"./common":8}],8:[function(require,module,exports){ + + /** + * Pulled only what's needed from: + * + * Underscore.js 1.3.3 + * (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. + * http://documentcloud.github.com/underscore + */ + + var breaker = {}; + var ArrayProto = Array.prototype; + var ObjProto = Object.prototype; + var hasOwnProperty = ObjProto.hasOwnProperty; + var slice = ArrayProto.slice; + var nativeForEach = ArrayProto.forEach; + var nativeIndexOf = ArrayProto.indexOf; + var toString = ObjProto.toString; + + var has = function(obj, key) { + return hasOwnProperty.call(obj, key); + }; + + var each = function(obj, iterator, context) { + + if (obj == null) return; + if (nativeForEach && obj.forEach === nativeForEach) { + obj.forEach(iterator, context); + } else if (obj.length === +obj.length) { + for (var i = 0, l = obj.length; i < l; i++) { + if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return; + } + } else { + for (var key in obj) { + if (_.has(obj, key)) { + if (iterator.call(context, obj[key], key, obj) === breaker) return; + } + } + } + + }; + + var identity = function(value) { + return value; + }; + + var sortedIndex = function(array, obj, iterator) { + iterator || (iterator = identity); + var low = 0, high = array.length; + while (low < high) { + var mid = (low + high) >> 1; + iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid; + } + return low; + }; + + module.exports = { + + has: has, + + each: each, + + extend: function(obj) { + each(slice.call(arguments, 1), function(source) { + for (var prop in source) { + obj[prop] = source[prop]; + } + }); + return obj; + }, + + indexOf: function(array, item, isSorted) { + if (array == null) return -1; + var i, l; + if (isSorted) { + i = sortedIndex(array, item); + return array[i] === item ? i : -1; + } + if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); + for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i; + return -1; + }, + + sortedIndex: sortedIndex, + + identity: identity, + + isNumber: function(obj) { + return toString.call(obj) == '[object Number]'; + }, + + isFunction: function(obj) { + return toString.call(obj) == '[object Function]' || typeof obj == 'function'; + }, + + isUndefined: function(obj) { + return obj === void 0; + }, + + isNull: function(obj) { + return obj === null; + } + + }; + + +},{}],"H99CHA":[function(require,module,exports){ +var root = (function(){ return this; })() +, previousShortcut = root.Physics +; + +module.exports = root.Physics = require('./Physics'); + +},{"./Physics":5}],"physics":[function(require,module,exports){ +module.exports=require('H99CHA'); +},{}],11:[function(require,module,exports){ + /* + * Requirified version of Paul Irish's request animation frame. + * http://paulirish.com/2011/requestanimationframe-for-smart-animating/ + */ +module.exports = + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { + window.setTimeout(callback, 1000 / 60); + }; + +},{}],12:[function(require,module,exports){ +module.exports=require(7) +},{"./common":8}]},{},["H99CHA"]) diff --git a/sites/all/modules/figli/edlp_corpus/assets/dist/styles/corpus.min.css b/sites/all/modules/figli/edlp_corpus/assets/dist/styles/corpus.min.css index bc8b4c016..dc2d45fa6 100644 --- a/sites/all/modules/figli/edlp_corpus/assets/dist/styles/corpus.min.css +++ b/sites/all/modules/figli/edlp_corpus/assets/dist/styles/corpus.min.css @@ -1 +1,71 @@ -canvas#corpus-map{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;top:0;left:0;z-index:0}canvas#corpus-map.de-activated{background-color:#f4f4f4}div.node-popup{z-index:10;position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;width:300px;min-height:30px;top:60%;left:30%;pointer-events:none}div.node-popup .inner{padding:1em;outline:red solid 1px;background-color:#fff}div.node-popup:before{content:"";position:absolute;width:60px;height:0;border-top:1px solid red}div.node-popup[pos=bottom-right]{-webkit-transform:translateY(42px) translateX(42px);transform:translateY(42px) translateX(42px)}div.node-popup[pos=bottom-right]:before{top:-1px;left:-61px;-webkit-transform-origin:bottom right;transform-origin:bottom right;-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg)}div.node-popup[pos=bottom-left]{-webkit-transform:translateX(-100%) translateY(42px) translateX(-42px);transform:translateX(-100%) translateY(42px) translateX(-42px)}div.node-popup[pos=bottom-left]:before{top:calc(100% +1px);left:100%;-webkit-transform-origin:top left;transform-origin:top left;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)}div.node-popup[pos=top-left]{-webkit-transform:translateY(-100%) translateX(-100%) translateY(-42px) translateX(-42px);transform:translateY(-100%) translateX(-100%) translateY(-42px) translateX(-42px)}div.node-popup[pos=top-left]:before{bottom:0;left:100%;-webkit-transform-origin:top left;transform-origin:top left;-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg)}div.node-popup[pos=top-right]{-webkit-transform:translateY(-100%) translateY(-42px) translateX(42px);transform:translateY(-100%) translateY(-42px) translateX(42px)}div.node-popup[pos=top-right]:before{top:calc(100% + 1px);left:-61px;-webkit-transform-origin:top right;transform-origin:top right;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)} \ No newline at end of file +canvas#corpus-map { + position: absolute; + -webkit-box-sizing: border-box; + box-sizing: border-box; + top: 0; + left: 0; + z-index: 0; } + canvas#corpus-map.de-activated { + background-color: #f4f4f4; } + +div.node-popup { + z-index: 10; + position: absolute; + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: 300px; + min-height: 30px; + pointer-events: none; + top: 60%; + left: 30%; + pointer-events: none; } + div.node-popup .inner { + padding: 0.4em; + outline: 1px solid red; + background-color: white; } + div.node-popup:before { + content: ""; + position: absolute; + width: 60px; + height: 0; + border-top: 1px solid red; } + div.node-popup[pos="bottom-right"] { + -webkit-transform: translateY(42px) translateX(42px); + transform: translateY(42px) translateX(42px); } + div.node-popup[pos="bottom-right"]:before { + top: -1px; + left: -61px; + -webkit-transform-origin: bottom right; + transform-origin: bottom right; + -webkit-transform: rotateZ(45deg); + transform: rotateZ(45deg); } + div.node-popup[pos="bottom-left"] { + -webkit-transform: translateX(-100%) translateY(42px) translateX(-42px); + transform: translateX(-100%) translateY(42px) translateX(-42px); } + div.node-popup[pos="bottom-left"]:before { + top: calc(100% +1px); + left: 100%; + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); } + div.node-popup[pos="top-left"] { + -webkit-transform: translateY(-100%) translateX(-100%) translateY(-42px) translateX(-42px); + transform: translateY(-100%) translateX(-100%) translateY(-42px) translateX(-42px); } + div.node-popup[pos="top-left"]:before { + bottom: 0; + left: 100%; + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-transform: rotateZ(45deg); + transform: rotateZ(45deg); } + div.node-popup[pos="top-right"] { + -webkit-transform: translateY(-100%) translateY(-42px) translateX(42px); + transform: translateY(-100%) translateY(-42px) translateX(42px); } + div.node-popup[pos="top-right"]:before { + top: calc(100% + 1px); + left: -61px; + -webkit-transform-origin: top right; + transform-origin: top right; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); } diff --git a/sites/all/modules/figli/edlp_corpus/assets/styles/corpus.scss b/sites/all/modules/figli/edlp_corpus/assets/styles/corpus.scss index 206716ca6..426f24fa1 100644 --- a/sites/all/modules/figli/edlp_corpus/assets/styles/corpus.scss +++ b/sites/all/modules/figli/edlp_corpus/assets/styles/corpus.scss @@ -34,7 +34,7 @@ div.node-popup{ pointer-events: none; .inner{ - padding:1em; + padding:0.4em; outline: 1px solid red; background-color: white; } diff --git a/sites/all/modules/figli/edlp_corpus/edlp_corpus.module b/sites/all/modules/figli/edlp_corpus/edlp_corpus.module index c4d4603e8..1770e197a 100644 --- a/sites/all/modules/figli/edlp_corpus/edlp_corpus.module +++ b/sites/all/modules/figli/edlp_corpus/edlp_corpus.module @@ -41,6 +41,11 @@ function edlp_corpus_entity_extra_field_info(){ 'weight' => 99, // 'visible' => FALSE, ]; + $extra['node']['enregistrement']['display']['relations'] = [ + 'label' => t('Relations'), + 'description' => 'Display enregistrement relations with other content types', + 'weight' => 99, + ]; return $extra; } @@ -93,6 +98,58 @@ function edlp_corpus_taxonomy_term_view(array &$build, EntityInterface $entity, } } +function edlp_corpus_node_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) { + if($entity->bundle() == "enregistrement"){ + $relations_display_settings = $display->getComponent('relations'); + if(!empty($relations_display_settings)){ + + // querying all productions page that have this document in their entity reference "field_documents_liés" + $query = \Drupal::entityQuery('node') + ->condition('status', 1) + ->condition('type', 'page') // page (production) + ->exists('field_page_type') + ->condition('field_documents_lies.target_id', $entity->id(), 'IN'); + + $nids = $query->execute(); + $nodes = entity_load_multiple('node', $nids); + // dpm($nodes, '$nodes'); + + // build the array of relateds classified by page_type (taxonomy) + $relateds = array(); + foreach ($nodes as $nid => $node) { + $page_type = $node->get('field_page_type')->get(0)->getValue(); + // dpm($page_type, 'page_type'); + $term = entity_load('taxonomy_term', $page_type['target_id']); + // dpm($term, 'term'); + $relateds[$term->getName()][] = $node->getTitle(); + } + // dpm($relateds, 'relateds'); + + // if relateds, build the sentence for display and the render array + if(count($relateds)){ + $relations = '

    ' . t('This sound is about :') . '

    '; + + foreach ($relateds as $cat => $titles) { + $relations .= '' . $cat . ' : ' . implode(', ', $titles) . ' | '; + } + + $relations = preg_replace('/\s\|\s$/', '', $relations); + $relations .= '

    '; + + $build['relations'] = array( + '#type'=>"container", + '#attributes'=>array( + 'class'=>'relations' + ), + "#markup"=> $relations, + ); + } + + } + } +} + + /** * Implements hook_page_attachments(). * @param array $attachments diff --git a/sites/all/themes/custom/edlptheme/assets/dist/scripts/history.min.js b/sites/all/themes/custom/edlptheme/assets/dist/scripts/history.min.js index 9c4305245..23164c972 100644 --- a/sites/all/themes/custom/edlptheme/assets/dist/scripts/history.min.js +++ b/sites/all/themes/custom/edlptheme/assets/dist/scripts/history.min.js @@ -1,2 +1,13 @@ - -void 0;if(edlp.redirect){void 0;void 0;window.localStorage.setItem('edlp_origin_path',edlp.sys_path.replace(/^\//,''));window.localStorage.setItem('edlp_origin_url',window.location.pathname);window.localStorage.setItem('edlp_origin_hash',window.location.hash);window.location.replace(window.location.origin+'/'+edlp.lang_code);}else{void 0;} \ No newline at end of file +console.log('EDLP THEME HISTORY.js'); +// var edlp is provided by edlp_ajax.module file +if(edlp.redirect){ + console.log('history redirect', edlp); + console.log('window.location', window.location); + window.localStorage.setItem('edlp_origin_path', edlp.sys_path.replace(/^\//, '')); + window.localStorage.setItem('edlp_origin_url', window.location.pathname); + window.localStorage.setItem('edlp_origin_hash', window.location.hash); + // redirect to home + window.location.replace(window.location.origin+'/'+edlp.lang_code); +}else{ + console.log('history do not redirect'); +} diff --git a/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js b/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js index f97d1dbab..1e05fe069 100644 --- a/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js +++ b/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js @@ -1,43 +1,1241 @@ +(function($, Drupal, drupalSettings) { -(function($,Drupal,drupalSettings){EdlpTheme=function(){var _ajax_settings=drupalSettings.edlp_ajax;var _$body=$('body');var _is_front=_$body.is('.path-frontpage');var _corpus_ready=false;var _$corpus_canvas;var _$row=$('main[role="main"]>.layout-content>.row');var _$ajaxLinks;var _audioPlayer;var _randomPlayer;var _compoPlayer;function init(){void 0;initAjaxLinks();initHistory();if(!drupalSettings.path.isFront) -return;initEvents();_audioPlayer=new AudioPlayer();_compoPlayer=new CompoPlayer();};function initEvents(){_$body.on('corpus-map-ready',onCorpusMapReady).on('on-studio-chutier-updated',initAjaxLinks).on('studio-initialized',function(e){_compoPlayer.newCompo();}).on('studio-not-active',function(e){_compoPlayer.deactivate();}).on('on-studio-compo-updated',function(e){initAjaxLinks();_compoPlayer.refresh();}).on('on-studio-compo-opened',function(e){initAjaxLinks();_compoPlayer.newCompo();}).on('search-results-loaded',initAjaxLinks).on('open_entree',function(e){void 0;closeAllModals();_$body.removeClass();if(typeof e.url!='undefined'){var state=getSysPathState(e.sys_path);history.pushState(state,null,e.url);}}).on('close_entree',backToFrontPage);} -function initScrollbars(){};function getSysPathState(sys_path,view_mode){var state={'sys_path':sys_path,'ajax_path':sys_path};var node_match=state.ajax_path.match(/^\/?(node\/(\d+))$/i);void 0;var term_match=state.ajax_path.match(/^\/?(taxonomy\/term\/(\d+))$/i);void 0;if(node_match){state.ajax_path=_ajax_settings.entityjson_path+'/'+node_match[1];state.node_nid=node_match[2];if(view_mode){state.ajax_path+='/'+view_mode;}}else if(term_match){state.ajax_path=_ajax_settings.entityjson_path+'/'+term_match[1];state.ajax_path=state.ajax_path.replace(/taxonomy\/term/,'taxonomy_term');state.entree_tid=term_match[2];if(view_mode){state.ajax_path+='/'+view_mode;state.view_mode=view_mode;}else{state.ajax_path=null;}}else{state.ajax_path+='/ajax'} -return state;};function ajaxLoadContent(state){void 0;_$body.addClass('ajax-loading');var path=window.location.origin+Drupal.url(state.ajax_path);$.getJSON(path,{}).done(function(data){onAjaxLoaded(data,state);}).fail(function(jqxhr,textStatus,error){onAjaxLoadError(jqxhr,textStatus,error,state.sys_path);});};function onAjaxLoadError(jqxhr,textStatus,error,sys_path){void 0;$('.ajax-loading').removeClass('ajax-loading');_$body.removeClass('ajax-loading');};function onAjaxLoaded(data,state){void 0;_$row.removeAttr('style').html(data.rendered);var body_classes=['path-'+state.sys_path.replace(/\//g,'-'),'entity-type-'+data.entity_type,'bundle-'+data.bundle,'view-mode-'+data.view_mode];_$body.removeClass().addClass(body_classes.join(' '));if(state.node_nid) -_$body.addClass('path-edlp-node');$('.ajax-loading').removeClass('ajax-loading');$('.is-active').removeClass('is-active');$('.is-active-trail').removeClass('is-active-trail');if(typeof state.selector!='undefined'){void 0;$('a[selector="'+state.selector+'"]').addClass('is-active');}else{$('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');_$body.trigger({'type':'new-content-not-entree-ajax-loaded'});} -if(typeof data.bundle!='undefined'&&data.bundle=="page"){$('a[data-drupal-link-system-path="productions"]').addClass('is-active-trail');} -if(typeof data.menu_parents!='undefined'){for(var i=0;i').addClass('close-col-btn').on('click',function(e){var $col=$(this).parents('.col');var theme=$col.attr('theme');if(theme!=''){_$body.trigger({'type':theme+'-col-closed'});} -$col.remove();if(!$('.col',_$row).length&&!_$body.is('.entity-type-node.bundle-page')){backToFrontPage();}}));});};function refreshAllBlocks(){var path=window.location.origin+Drupal.url(_ajax_settings.blocksjson_path);$.getJSON(path,{}).done(function(data){onAjaxBlockLoaded(data);}).fail(function(jqxhr,textStatus,error){onAjaxBlockLoadError(jqxhr,textStatus,error);});};function onAjaxBlockLoadError(jqxhr,textStatus,error){void 0;};function onAjaxBlockLoaded(data){void 0;for(var blockname in data.blocks){var block=data.blocks[blockname];void 0;$(block.id).replaceWith(block.rendered);}};function initHistory(){initFirstLoad();window.addEventListener('popstate',onHistoryPopState);};function initFirstLoad(){void 0;var origin_sys_path=window.localStorage.getItem('edlp_origin_path');if(origin_sys_path){var origin_url=window.localStorage.getItem('edlp_origin_url');var origin_hash=window.localStorage.getItem('edlp_origin_hash');var view_mode=origin_hash.replace('#','');if(view_mode){var $link=$('[href="'+origin_url+'"][viewmode="'+view_mode+'"]');var selector=$link.attr('selector')||null;if(selector){if(_corpus_ready){_$corpus_canvas.trigger({type:'open-entree',tid:$link.attr('tid')});}else{$('li.entree[tid="'+$link.attr('tid')+'"] a.term-link').addClass('is-active');}}} -var state=getSysPathState(origin_sys_path,view_mode);if(state.ajax_path){ajaxLoadContent(state);} -if(state.entree_tid){openEntree(state.entree_tid);} -history.replaceState(state,null,origin_url+origin_hash);window.localStorage.removeItem("edlp_origin_path");window.localStorage.removeItem("edlp_origin_url");}else{history.replaceState({home:true},null,window.location.pathname);_$body.attr('booted','booted');}};function onHistoryPopState(e){void 0;if(e.state.home){backToFrontPage(true);}else{if(e.state.entree_tid){openEntree(e.state.entree_tid);} -if(e.state.ajax_path){e.state.url=null;ajaxLoadContent(e.state);}}};function initAjaxLinks(){$('a.site-name','#block-edlptheme-branding').add('a','#block-mainnavigation').add('a','#block-footer.menu--footer').add('a','#block-productions').add('a','article.node:not(.node--type-enregistrement) h2.node-title').add('a','.productions-subtree').add('a','.productions-parent').addClass('ajax-link');_$ajaxLinks=$('.ajax-link:not(.ajax-enabled)').each(function(i,e){var $this=$(this);if($this.is('.ajax-enable'))return;if($this.attr('data-drupal-link-system-path')){$this.on('click',onClickAjaxLink).addClass('ajax-enable');}});};function onClickAjaxLink(e){e.preventDefault();var $link=$(this);if($link.is('.is-active')) -return false;if($link.is('.audio-link')){_audioPlayer.emmit('stop-shuffle').openDocument({nid:$link.attr('nid'),audio_url:$link.attr('audio_url')});return false;} -var sys_path=$(this).attr('data-drupal-link-system-path');if(sys_path==''){backToFrontPage();return false;} -var view_mode=$link.attr('viewmode');var state=getSysPathState(sys_path,view_mode);state.url=$(this).attr('href');if(view_mode){state.url+="#"+view_mode;} -if($link.is('[selector]')){state.selector=$link.attr('selector');} -$link.addClass('ajax-loading');ajaxLoadContent(state);return false;};function onCorpusMapReady(e){_corpus_ready=true;_$corpus_canvas=$('canvas#corpus-map');_$corpus_canvas.on('corpus-cliked-on-map',function(e){backToFrontPage();}).on('corpus-cliked-on-node',function(e){_audioPlayer.emmit('stop-shuffle').openDocument(e.target_node);});_randomPlayer=new RandomPlayer(e.playlist);_$body.attr('corpus-map','ready');} -function openEntree(tid){if(tid){closeAllModals();_$body.removeClass();if(_corpus_ready){_$corpus_canvas.trigger({type:'open-entree',tid:tid});}else{$('li.entree[tid="'+tid+'"] a.term-link').addClass('is-active');}}};function AudioPlayer(){var that=this;this.fid;this.audio=new Audio();this.audio_events=["loadedmetadata","canplay","playing","pause","timeupdate","ended"];this.$container=$('
    ');this.$btns=$('
    ').addClass('btns').appendTo(this.$container);this.$previous=$('
    ').addClass('previous').appendTo(this.$btns);this.$playpause=$('
    ').addClass('play-pause').appendTo(this.$btns);this.$next=$('
    ').addClass('next').appendTo(this.$btns);this.$timelinecont=$('
    ').addClass('time-line-container').appendTo(this.$container);this.$timeline=$('
    ').addClass('time-line').appendTo(this.$timelinecont);this.$loader=$('
    ').addClass('loader').appendTo(this.$timeline);this.$cursor=$('
    ').addClass('cursor').appendTo(this.$timeline);this.$time=$('
    ').addClass('time').appendTo(this.$container);this.$currentTime=$('
    ').addClass('current-time').html('00:00').appendTo(this.$time);this.$duration=$('
    ').addClass('duration').html('00:00').appendTo(this.$time);this.$fav=$('
    ').addClass('favoris').appendTo(this.$container);this.$cartel=$('
    ').addClass('cartel').appendTo(this.$container);this.hideTimer=false;this.hideTimeMS=10000;this.currentHistoricIndex=null;this.historic=[];this.shuffle_is_active=false;this.event_handlers={'audio-open-document':[],'audio-play':[],'audio-pause':[],'audio-play-next':[],'audio-ended':[],'stop-shuffle':[]};this.init();};AudioPlayer.prototype={init(){this.$container.appendTo('header[role="banner"] .region-header');this.timeline_w=parseInt(this.$timeline.width());var fn='';for(var i=0;i'+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');this.updateLoadingBar();},updateLoadingBar(){this.$loader.css({'width':parseInt((100*this.audio.buffered.end(0)/this.audio.duration),10)+'%'});if(this.audio.buffered.end(0)0){this.currentHistoricIndex-=1;this.launch();}},playNext(){if(this.currentHistoricIndex'+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');},onEnded(){this.emmit('audio-ended');this.stop();},loadNode(nid){this.$cartel.addClass('loading');var vm='player_cartel';var ajax_path=_ajax_settings.entityjson_path+'/node/'+nid+'/'+vm;var path=window.location.origin+Drupal.url(ajax_path);$.getJSON(path,{}).done(this.onNodeLoaded.bind(this)).fail(this.onNodeLoadFail.bind(this));},onNodeLoaded(data){this.$cartel.html(data.rendered).removeClass('loading');_$body.trigger({'type':'new-audio-cartel-loaded'});initAjaxLinks();},onNodeLoadFail(jqxhr,textStatus,error){void 0;this.$cartel.removeClass('loading').html('');},show(){this.$container.addClass('visible');},showHidePreviousBtn(){if(this.historic.length>1&&this.currentHistoricIndex>0){this.$previous.addClass('is-active');}else{this.$previous.removeClass('is-active');}},showHideNextBtn(){if(this.currentHistoricIndex=0;i--){handler=this.event_handlers[event_name][i];setTimeout(function(){handler(args);},0);} -return this;},} -function RandomPlayer(playlist){this.active=false;this.playlist=playlist;this.$btn=$('').html('Shuffle').addClass('random-player-btn');this.init();};RandomPlayer.prototype={init(){$('
    ').addClass('block random-player').append(this.$btn).prependTo('.region-footer-right');this.$btn.on('click',this.toggleActive.bind(this));_audioPlayer.on('audio-ended',this.onAudioPlayerEnded.bind(this)).on('audio-play-next',this.onAudioPlayNext.bind(this)).on('stop-shuffle',this.stop.bind(this));},shuffle(){var tempPLaylist=[];for(var i=this.playlist.length-1;i>=0;i--){tempPLaylist.push(this.playlist[i]);} -this.shuffledPlaylist=[];while(tempPLaylist.length>0){var r=Math.floor(Math.random()*tempPLaylist.length);this.shuffledPlaylist.push(tempPLaylist.splice(r,1)[0]);}},toggleActive(e){if(this.active){this.stop();}else{this.start();}},start(){this.active=_audioPlayer.shuffle_is_active=true;this.$btn.addClass('is-active');this.shuffle();this.next();},stop(){this.active=_audioPlayer.shuffle_is_active=false;this.$btn.removeClass('is-active');},next(){if(this.active&&this.shuffledPlaylist.length>0) -_audioPlayer.openDocument(this.shuffledPlaylist.splice(0,1)[0]);},onAudioPlayNext(){this.next();},onAudioPlayerEnded(){this.next();}};function CompoPlayer(){this.active=false;this.playing=false;this.paused=false;this.playlist=[];this.current_index=0;this.$composer=null;this.$compo=null;this.$controls=null;this.init();};CompoPlayer.prototype={init(){_audioPlayer.on('audio-open-document',this.onAudioOpenDocument.bind(this)).on('audio-play',this.onAudioPlayerPlay.bind(this)).on('audio-pause',this.onAudioPlayerPause.bind(this)).on('audio-ended',this.onAudioPlayerEnded.bind(this));},newCompo(){this.initControls();},initControls(){this.$composer=$('.composition_ui .composer');this.$compo=$('.composition_ui .composer .composition');this.$controls=$('.composition_ui .composer .compo-player-controls');if(!this.$controls.is('.ready')&&this.$compo){this.$previous=$('
    ').addClass('previous').on('click',this.prev.bind(this)).appendTo(this.$controls);this.$playpause=$('
    ').addClass('play-pause').on('click',this.togglePlayPause.bind(this)).appendTo(this.$controls);this.$next=$('
    ').addClass('next').on('click',this.next.bind(this)).appendTo(this.$controls);this.$controls.addClass('ready');this.refresh();this.active=true;}},refresh(){this.stop();this.playlist=[];var that=this;$('.field--name-documents .field__item',this.$compo).each(function(i,el){var $link=$('a.audio-link',this);that.playlist.push({item:$(this),audio_url:$link.attr("audio_url"),nid:$link.attr("nid"),});});this.showHideControls();},togglePlayPause(){if(this.playing&&!this.paused){this.pause();}else{if(this.playing&&this.paused){this.play();}else{this.start();}}},start(){this.playing=true;this.play();},play(){if(this.paused){this.paused=false;_audioPlayer.play();}else{_audioPlayer.openDocument(this.playlist[this.current_index],this);} -this.setActiveItem().showHideControls();},pause(){this.paused=true;this.showHideControls();_audioPlayer.stop();},next(){if(this.playing){this.current_index+=1;if(this.current_index=0){this.play();}else{this.stop();}}},stop(){_audioPlayer.stop();this.reset();},reset(){this.playing=false;this.paused=false;this.resetIndex();},resetIndex(){this.current_index=0;this.showHideControls().resetActiveItems();},setActiveItem(){this.resetActiveItems();if(this.playing&&this.current_index>=0){this.playlist[this.current_index].item.addClass('is-active');} -this.showHideControls();return this;},resetActiveItems(){for(var n=0;n0){this.$playpause.addClass('is-active');}else{this.$playpause.removeClass('is-active');}} -if(this.$next){if(this.playing&&this.playlist.length>1&&this.current_index1&&this.current_index>0){this.$previous.addClass('is-active');}else{this.$previous.removeClass('is-active');}} -return this;},deactivate(){this.stop();this.active=false;},onAudioOpenDocument(args){if(args.caller!==this){this.reset();}},onAudioPlayerPlay(){if(this.playing&&this.paused){this.paused=false;this.showHideControls();}},onAudioPlayerPause(){if(this.playing&&!this.paused){this.paused=true;this.showHideControls();}},onAudioPlayerEnded(){this.next();},};function backToFrontPage(pop_state){closeAllModals();$('body').removeClass().addClass('path-frontpage');$('a[data-drupal-link-system-path=""]').addClass('is-active');_$corpus_canvas.trigger({'type':'close-all-entree'});if(!pop_state){history.pushState({home:true},null,window.location.origin);}} -function initHome(){addCloseModalBtnToCols();var $grid=$('.grid',_$row).masonry({itemSelector:'.col',columnWidth:'.col-2',horizontalOrder:true,containerStyle:null,});$grid.imagesLoaded().progress(function(){$grid.masonry('layout');});$grid.imagesLoaded(function(){$grid.masonry('layout');});} -function initProductions(){var $grid=$('.grid',_$row).masonry({itemSelector:'.col',columnWidth:'.col-2',horizontalOrder:true,containerStyle:null,});$grid.imagesLoaded().progress(function(){$grid.masonry('layout');});$grid.imagesLoaded(function(){$grid.masonry('layout');});};function closeAllModals(){_$row.html('');_$ajaxLinks.removeClass('is-active');_$body.trigger({'type':'all-modal-closed'});};init();} -$(document).ready(function($){var edlptheme=new EdlpTheme();});})(jQuery,Drupal,drupalSettings); \ No newline at end of file + EdlpTheme = function(){ + var _ajax_settings = drupalSettings.edlp_ajax; + var _$body = $('body'); + var _is_front = _$body.is('.path-frontpage'); + var _corpus_ready = false; + var _$corpus_canvas; + var _$row = $('main[role="main"]>.layout-content>.row'); + var _$ajaxLinks; + var _audioPlayer; + var _randomPlayer; + var _compoPlayer; + + // ___ _ _ + // |_ _|_ _ (_) |_ + // | || ' \| | _| + // |___|_||_|_|\__| + function init(){ + console.log("EdlpTheme init()"); + + initAjaxLinks(); + + initHistory(); + + if(!drupalSettings.path.isFront) + return; + + initEvents(); + + _audioPlayer = new AudioPlayer(); + _compoPlayer = new CompoPlayer(); + + }; + + // ___ _ + // | __|_ _____ _ _| |_ ___ + // | _|\ V / -_) ' \ _(_-< + // |___|\_/\___|_||_\__/__/ + function initEvents(){ + _$body + .on('corpus-map-ready', onCorpusMapReady) + .on('on-studio-chutier-updated', initAjaxLinks) + .on('studio-initialized', function(e){ + _compoPlayer.newCompo(); + }) + .on('studio-not-active', function(e){ + _compoPlayer.deactivate(); + }) + .on('on-studio-compo-updated', function(e){ + initAjaxLinks(); + _compoPlayer.refresh(); + }) + .on('on-studio-compo-opened', function(e){ + initAjaxLinks(); + _compoPlayer.newCompo(); + }) + .on('search-results-loaded', initAjaxLinks) + // do not close index or notice modale on entree click + .on('open_entree', function(e){ + console.log('on_open_entree : e', e); + closeAllModals(); + + // add body class for currently loaded content + // var body_classes = [ + // 'path-'+sys_path.replace(/\//g, '-'), + // 'entity-type-'+data.entity_type, + // 'bundle-'+data.bundle, + // 'view-mode-'+data.view_mode + // ]; + _$body.removeClass();//.addClass(body_classes.join(' ')); + + // record new history state + if(typeof e.url != 'undefined'){ + // var state = { + // ajax_path:null, + // sys_path:null, + // entree_tid:e.tid + // }; + var state = getSysPathState(e.sys_path); + history.pushState(state, null, e.url); + } + }) + .on('close_entree', backToFrontPage); + } + + // ___ _ _ ___ + // / __| __ _ _ ___| | | _ ) __ _ _ _ ___ + // \__ \/ _| '_/ _ \ | | _ \/ _` | '_(_-< + // |___/\__|_| \___/_|_|___/\__,_|_| /__/ + function initScrollbars(){ + // console.log("initScrollbars"); + // TODO: find a better js scroll than overlayScrollbars which does not handle well max-height + overflow-y:auto; + // $('.os-scroll').overlayScrollbars({ + // overflowBehavior:{ + // x:'h', + // y:'scroll', + // clipAlways:false + // } + // }); + }; + + // _ _ + // /_\ (_)__ ___ __ + // / _ \ | / _` \ \ / + // /_/ \_\/ \__,_/_\_\ + // |__/ + function getSysPathState(sys_path, view_mode){ + // console.log('Theme : getSysPathState', sys_path); + var state = { + 'sys_path':sys_path, + 'ajax_path': sys_path + }; + + // convert node link to edlp_ajax_node module links + var node_match = state.ajax_path.match(/^\/?(node\/(\d+))$/i); + console.log('node_match', node_match); + var term_match = state.ajax_path.match(/^\/?(taxonomy\/term\/(\d+))$/i); + console.log('term_match', term_match); + if(node_match){ + state.ajax_path = _ajax_settings.entityjson_path+'/'+node_match[1]; + state.node_nid = node_match[2]; + // check for viewmode attribute + if(view_mode){ + state.ajax_path += '/'+view_mode; + } + }else if(term_match){ + // terms are always entrees, there's no other vocabulary links in front + state.ajax_path = _ajax_settings.entityjson_path+'/'+term_match[1]; + state.ajax_path = state.ajax_path.replace(/taxonomy\/term/, 'taxonomy_term'); + state.entree_tid = term_match[2]; + // check for viewmode attribute + if(view_mode){ + state.ajax_path += '/'+view_mode; + state.view_mode = view_mode; + }else{ + state.ajax_path = null; + } + }else{ + // convert other link to ajax + // TODO: we assume that other links (no node, no term) are all from own modules (e.g. productions) !! may not be true !! + state.ajax_path += '/ajax' + } + return state; + }; + function ajaxLoadContent(state){ + console.log('ajaxLoadContent : url', state.url); + _$body.addClass('ajax-loading'); + + var path = window.location.origin + Drupal.url(state.ajax_path); + $.getJSON(path, {}) + .done(function(data){ + onAjaxLoaded(data, state); + }) + .fail(function(jqxhr, textStatus, error){ + onAjaxLoadError(jqxhr, textStatus, error, state.sys_path); + }); + }; + function onAjaxLoadError(jqxhr, textStatus, error, sys_path){ + console.warn('ajaxlink load failed for '+sys_path+' : '+error, jqxhr.responseText); + $('.ajax-loading').removeClass('ajax-loading'); + _$body.removeClass('ajax-loading'); + }; + function onAjaxLoaded(data, state){ + console.log('ajax loaded url:'+state.url+' ajax_path:'+state.ajax_path+' sys_path:'+state.sys_path); + // console.log(data); + // reset all style may been added by other pages (like masonry for productions) + // and replace all content with newly loaded + // TODO: build a system to replace or append contents (like studio + search) + _$row.removeAttr('style').html(data.rendered); + + // add body class for currently loaded content + var body_classes = [ + 'path-'+state.sys_path.replace(/\//g, '-'), + 'entity-type-'+data.entity_type, + 'bundle-'+data.bundle, + 'view-mode-'+data.view_mode + ]; + _$body.removeClass().addClass(body_classes.join(' ')); + + // id node add a generic path-node class to body + // m = state.sys_path.match(/^\/?(node\/\d+)$/g); + // if(m) + if(state.node_nid) + _$body.addClass('path-edlp-node'); + + // handle clicked link classes + $('.ajax-loading').removeClass('ajax-loading'); + $('.is-active').removeClass('is-active'); + $('.is-active-trail').removeClass('is-active-trail'); + + if(typeof state.selector != 'undefined'){ + // in case of entree link (actualy, selector is used only for entries links) + console.log('selector', state.selector); + $('a[selector="'+state.selector+'"]').addClass('is-active'); + }else{ + $('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active'); + // as new content is not related to entree, we trigger close entree + _$body.trigger({'type':'new-content-not-entree-ajax-loaded'}); + } + + // if bundle page (productions) activate production links + if (typeof data.bundle != 'undefined' && data.bundle == "page") { + $('a[data-drupal-link-system-path="productions"]').addClass('is-active-trail'); + } + // if node is in production menu tree, set first level of tree active, e.g. pieces sonores + if (typeof data.menu_parents != 'undefined') { + for (var i = 0; i < data.menu_parents.length; i++) { + var menu_sys_path = data.menu_parents[i]; + $('a[data-drupal-link-system-path="'+menu_sys_path+'"]').addClass('is-active-trail'); + } + } + + // if block attached (eg : from edlp_productions module) + // not used anymore as production block is always present (but not visible) + if(typeof data.block != 'undefined'){ + // if block not already added + if(!$('#'+data.block.id, '.region-'+data.block.region).length){ + $('.region-'+data.block.region).append(data.block.rendered); + } + } + + // initScrollbars(); + + if(state.sys_path == "productions"){ + initProductions(); + }else{ + addCloseModalBtnToCols(); + } + + // update the language switcher block if it comes in the response + if(typeof data.translations_links != 'undefined'){ + console.log('state',state); + var lang_code = drupalSettings.path.currentLanguage; + var $links = $(data.translations_links); + // set active link + $links.find('li[hreflang="'+lang_code+'"]').addClass('is-active').find('a').addClass('is-active'); + + if(state.view_mode){ + $links.find('a').each(function(i,e){ + var $a = $(this); + $a.attr('href', $a.attr('href')+'#'+state.view_mode); + }); + } + + // if(state.selector){ + // $links.find('a').attr('selector', state.selector); + // } + + $('ul','.block.language-switcher-language-url').replaceWith($links); + } + + initAjaxLinks(); + + // trigger other modules behaviours + _$body.trigger({'type':'new-content-ajax-loaded'}); + + // and call druapl behaviours + Drupal.attachBehaviors(_$row[0]); + + _$body.attr('booted', 'booted'); + _$body.removeClass('ajax-loading'); + + + // url is null means that we are loading content on popState event + // so we don't record the state again + if(state.url){ + // var state = { + // ajax_path:ajax_path, + // sys_path:sys_path, + // }; + // console.log('url:'+url+' ; state',state); + // console.log(window.location); + // we can not pushestate with absolute url + history.pushState(state, null, state.url); + } + }; + + function addCloseModalBtnToCols(){ + $('.col', _$row).each(function(index, el) { + + if($('span.close-col-btn', this).length) + return true; + + $(this).children('.wrapper').prepend($('') + .addClass('close-col-btn') + .on('click', function(e){ + // check for theme attribute and emmit event + var $col = $(this).parents('.col'); + var theme = $col.attr('theme'); + if(theme != ''){ + _$body.trigger({'type':theme+'-col-closed'}); + } + // remove the col + $col.remove(); + // if row is empty and we are not in productions call closeAllModals() + if(!$('.col', _$row).length + && !_$body.is('.entity-type-node.bundle-page')){ + backToFrontPage(); + } + }) + ); + }); + }; + + // _ _ ___ _ _ + // /_\ (_)__ ___ __ | _ ) |___ __| |__ ___ + // / _ \ | / _` \ \ / | _ \ / _ \/ _| / /(_-< + // /_/ \_\/ \__,_/_\_\ |___/_\___/\__|_\_\/__/ + // |__/ + // NOT USED (YET) + function refreshAllBlocks(){ + var path = window.location.origin + Drupal.url(_ajax_settings.blocksjson_path); + $.getJSON(path, {}) + .done(function(data){ + onAjaxBlockLoaded(data); + }) + .fail(function(jqxhr, textStatus, error){ + onAjaxBlockLoadError(jqxhr, textStatus, error); + }); + }; + function onAjaxBlockLoadError(jqxhr, textStatus, error){ + console.warn('ajax block load failed: '+error, jqxhr.responseText); + }; + function onAjaxBlockLoaded(data){ + console.log('onAjaxBlockLoaded', data); + // TODO: update each blocks (exepted language switcher) + for (var blockname in data.blocks) { + var block = data.blocks[blockname]; + console.log(blockname, block); + $(block.id).replaceWith(block.rendered); + } + }; + // _ _ _ _ + // | || (_)__| |_ ___ _ _ _ _ + // | __ | (_-< _/ _ \ '_| || | + // |_||_|_/__/\__\___/_| \_, | + // |__/ + function initHistory(){ + initFirstLoad(); + window.addEventListener('popstate', onHistoryPopState); + }; + function initFirstLoad(){ + console.log('theme : initFirstLoad()'); + + var origin_sys_path = window.localStorage.getItem('edlp_origin_path'); + if(origin_sys_path){ + var origin_url = window.localStorage.getItem('edlp_origin_url'); + // origin_hash is used as viewmode for taxonomy term entrees load (index or notice) + var origin_hash = window.localStorage.getItem('edlp_origin_hash'); + var view_mode = origin_hash.replace('#', ''); + if(view_mode){ + // TODO first load with index or notice do not activate the right link (activate all) + var $link = $('[href="'+origin_url+'"][viewmode="'+view_mode+'"]'); + var selector = $link.attr('selector') || null; + if(selector){ + // in case of entree link (actualy, selector is used only for entries links) + if(_corpus_ready){ + _$corpus_canvas.trigger({ + type:'open-entree', + tid:$link.attr('tid') + }); + }else{ + // else : EdlpCorpus will check when ready if entry item (notice or index) is already .is-active + // .is-active class is added by onAjaxLoaded() (when content is loaded) + // but what if corpus ready before onAjaxLoaded + $('li.entree[tid="'+$link.attr('tid')+'"] a.term-link').addClass('is-active'); + } + } + } + + // create history state + var state = getSysPathState(origin_sys_path, view_mode); + + // only if not entree path + if(state.ajax_path){ + // load content through ajax + // ajaxLoadContent(null, state.sys_path, state.ajax_path, selector); + ajaxLoadContent(state); + } + + // TODO what about entree alone (without notice or index) + if(state.entree_tid){ + openEntree(state.entree_tid); + } + + // record history state + history.replaceState(state, null, origin_url+origin_hash); + + // reset the storage + window.localStorage.removeItem("edlp_origin_path"); + window.localStorage.removeItem("edlp_origin_url"); + + }else{ + history.replaceState({home:true}, null, window.location.pathname); + _$body.attr('booted', 'booted'); + } + }; + function onHistoryPopState(e){ + console.log('onPopState',e.state); + if(e.state.home){ + backToFrontPage(true); + }else{ + if(e.state.entree_tid){ + openEntree(e.state.entree_tid); + } + if(e.state.ajax_path){ + e.state.url = null; + // ajaxLoadContent(null, e.state.sys_path, e.state.ajax_path) + ajaxLoadContent(e.state); + } + } + }; + + // _ _ _ _ _ + // /_\ (_)__ ___ _| | (_)_ _ | |__ ___ + // / _ \ | / _` \ \ / |__| | ' \| / /(_-< + // /_/ \_\/ \__,_/_\_\____|_|_||_|_\_\/__/ + // |__/ + function initAjaxLinks(){ + // console.log('initAjaxLinks'); + + $('a.site-name', '#block-edlptheme-branding') + .add('a', '#block-mainnavigation') + // .add('a', '.block.language-switcher-language-url') + .add('a', '#block-footer.menu--footer') + .add('a', '#block-productions') + .add('a', 'article.node:not(.node--type-enregistrement) h2.node-title') + .add('a', '.productions-subtree') + .add('a', '.productions-parent') + // .add('a.index-link, a.notice-link', '#block-edlpentreesblock') + .addClass('ajax-link'); + + _$ajaxLinks = $('.ajax-link:not(.ajax-enabled)') + .each(function(i,e){ + var $this = $(this); + // avoid already ajaxified links + if($this.is('.ajax-enable')) return; + if($this.attr('data-drupal-link-system-path')){ + $this.on('click', onClickAjaxLink).addClass('ajax-enable'); + } + }); + }; + function onClickAjaxLink(e){ + e.preventDefault(); + var $link = $(this); + + if($link.is('.is-active')) + return false; + + // Audio links + // launch audio player and stop here + if($link.is('.audio-link')){ + _audioPlayer + .emmit('stop-shuffle') + .openDocument({ + nid:$link.attr('nid'), + audio_url:$link.attr('audio_url') + }); + return false; + } + + // NOT USED (YET) + // if($link.is('.language-link')){ + // TODO: change global site current language + // load all blocks translated (exepted language switcher) ... :/ + // refreshAllBlocks(); + // TODO: use a promise to initAjaxLinks again after blocks updated + // then let load the content + // } + + // other links + var sys_path = $(this).attr('data-drupal-link-system-path'); + + // front page + // just remove contents and stop here + if(sys_path == ''){ + backToFrontPage(); + return false; + } + + var view_mode = $link.attr('viewmode'); + var state = getSysPathState(sys_path, view_mode); + state.url = $(this).attr('href'); + + if(view_mode){ + state.url += "#"+view_mode; + } + + if($link.is('[selector]')){ + state.selector = $link.attr('selector'); + } + + $link.addClass('ajax-loading'); + // ajaxLoadContent(url, sys_path, state.ajax_path, selector); + ajaxLoadContent(state); + + return false; + }; + + + // ___ + // / __|___ _ _ _ __ _ _ ___ + // | (__/ _ \ '_| '_ \ || (_-< + // \___\___/_| | .__/\_,_/__/ + // |_| + function onCorpusMapReady(e){ + //console.log('theme : onCorpusReady', e); + _corpus_ready = true; + _$corpus_canvas = $('canvas#corpus-map'); + _$corpus_canvas + .on('corpus-cliked-on-map', function(e) { + //console.log('theme : corpus-cliked-on-map'); + backToFrontPage(); + }) + .on('corpus-cliked-on-node', function(e) { + //console.log('theme : corpus-cliked-on-node', e); + _audioPlayer + .emmit('stop-shuffle') + .openDocument(e.target_node); + }); + + _randomPlayer = new RandomPlayer(e.playlist); + + _$body.attr('corpus-map', 'ready'); + } + function openEntree(tid){ + if(tid){ + closeAllModals(); + + _$body.removeClass();//.addClass(body_classes.join(' ')); + + // open entree + if(_corpus_ready){ + _$corpus_canvas.trigger({ + type:'open-entree', + tid:tid + }); + }else{ + // else : EdlpCorpus will check when ready if entry item (notice or index) is already .is-active + $('li.entree[tid="'+tid+'"] a.term-link').addClass('is-active'); + } + } + }; + + // _ _ _ + // /_\ _ _ __| (_)___ + // / _ \ || / _` | / _ \ + // /_/ \_\_,_\__,_|_\___/ + // + // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement + // https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/samples/gg589528%28v%3dvs.85%29 + // https://www.binarytides.com/using-html5-audio-element-javascript/ + function AudioPlayer(){ + var that = this; + this.fid; + this.audio = new Audio(); + // audio events + this.audio_events = ["loadedmetadata","canplay","playing","pause","timeupdate","ended"]; + + // UI dom objects + this.$container = $('
    '); + // btns + this.$btns = $('
    ').addClass('btns').appendTo(this.$container); + this.$previous = $('
    ').addClass('previous').appendTo(this.$btns); + this.$playpause = $('
    ').addClass('play-pause').appendTo(this.$btns); + this.$next = $('
    ').addClass('next').appendTo(this.$btns); + // timeline + this.$timelinecont= $('
    ').addClass('time-line-container').appendTo(this.$container); + this.$timeline = $('
    ').addClass('time-line').appendTo(this.$timelinecont); + this.$loader = $('
    ').addClass('loader').appendTo(this.$timeline); + this.$cursor = $('
    ').addClass('cursor').appendTo(this.$timeline); + // time + this.$time = $('
    ').addClass('time').appendTo(this.$container); + this.$currentTime = $('
    ').addClass('current-time').html('00:00').appendTo(this.$time); + this.$duration = $('
    ').addClass('duration').html('00:00').appendTo(this.$time); + // favoris + this.$fav = $('
    ').addClass('favoris').appendTo(this.$container); + // cartel + this.$cartel = $('
    ').addClass('cartel').appendTo(this.$container); + + // hiding + this.hideTimer = false; + this.hideTimeMS = 10000; + + // history + this.currentHistoricIndex = null; + this.historic = []; + this.shuffle_is_active = false; + + // object events + this.event_handlers = { + 'audio-open-document':[], + 'audio-play':[], + 'audio-pause':[], + 'audio-play-next':[], + 'audio-ended':[], + 'stop-shuffle':[] + }; + + this.init(); + }; + AudioPlayer.prototype = { + init(){ + // append ui to document + this.$container.appendTo('header[role="banner"] .region-header'); + // record timeline width + this.timeline_w = parseInt(this.$timeline.width()); + // init audio events + var fn = ''; + for (var i = 0; i < this.audio_events.length; i++) { + fn = this.audio_events[i]; + // capitalize first letter of event (only cosmetic :p ) + fn = 'on'+fn.charAt(0).toUpperCase()+fn.slice(1); + this.audio.addEventListener( + this.audio_events[i], + this[fn].bind(this), + true); + } + // init btns events + this.$previous.on('click', this.playPrevious.bind(this)); + this.$playpause.on('click', this.togglePlayPause.bind(this)); + this.$next.on('click', this.playNext.bind(this)); + }, + openDocument(node, caller){ + // console.log('AudioPlayer openDocument', node); + if(typeof node == 'undefined' + || typeof node.nid == 'undefined' + || typeof node.audio_url == 'undfined'){ + console.warn('AudioPlayer openDocument() node is malformed', node); + return false; + } + this.historic.push(node); + this.currentHistoricIndex = this.historic.length-1; + // this.shuffle_mode = shuffle_mode || false; + + // TODO: add an hash tag to be able to share and play audio from any where + + this.emmit('audio-open-document', {caller:caller}); + + this.launch(); + }, + launch(){ + this.clearTimeOutToHide(); + this.setSRC(this.historic[this.currentHistoricIndex].audio_url); + this.loadNode(this.historic[this.currentHistoricIndex].nid); + // emmit new playing doc (e.g.: corpus map nowing that audio played from RandomPlayer) + try { + _$corpus_canvas.trigger({ + 'type':'audio-node-opened', + 'nid':this.historic[this.currentHistoricIndex].nid + }); + } catch (e) { + console.info('AudioPlayer : _$corpus_canvas does not exists'); + } + + this.showHidePreviousBtn(); + this.showHideNextBtn(); + this.show(); + }, + // audio functions + setSRC(url){ + // console.log('AudioPlayer setSRC : url', url); + this.audio.src = url; + }, + onLoadedmetadata(){ + var rem = parseInt(this.audio.duration, 10), + mins = Math.floor(rem/60,10), + secs = rem - mins*60; + this.$duration.html(''+(mins<10 ? '0':'')+mins+':'+(secs<10 ? '0':'')+secs+''); + this.updateLoadingBar(); + }, + updateLoadingBar(){ + this.$loader.css({ + 'width':parseInt((100 * this.audio.buffered.end(0) / this.audio.duration), 10)+'%' + }); + if( this.audio.buffered.end(0) < this.audio.duration ){ + // loop through this function until file is fully loaded + var that = this; + window.requestAnimationFrame(that.updateLoadingBar.bind(that)); + }else{ + //console.log('Audio fully loaded'); + } + }, + onCanplay(){ + this.play(); + }, + play(){ + this.clearTimeOutToHide(); + this.audio.play(); + }, + playPrevious(){ + if(this.currentHistoricIndex > 0){ + this.currentHistoricIndex -= 1; + this.launch(); + } + }, + playNext(){ + if(this.currentHistoricIndex < this.historic.length-1){ + this.currentHistoricIndex += 1; + this.launch(); + }else{ + this.emmit('audio-play-next'); + } + }, + togglePlayPause(e){ + if(this.audio.paused){ + this.audio.play(); + }else{ + this.audio.pause(); + } + }, + stop(){ + // console.log('AudioPlayer stop()'); + this.audio.pause(); + this.timeOutToHide(); + }, + // audio events + onPlaying(){ + this.$btns.addClass('is-playing'); + this.emmit('audio-play'); + }, + onPause(){ + this.$btns.removeClass('is-playing'); + this.emmit('audio-pause'); + }, + onTimeupdate(){ + // move cursor + this.$cursor.css({ + 'left':(this.audio.currentTime/this.audio.duration * this.timeline_w)+"px" + }); + // update time text display + var rem = parseInt(this.audio.currentTime, 10), + mins = Math.floor(rem/60,10), + secs = rem - mins*60; + this.$currentTime.html(''+(mins<10 ? '0':'')+mins+':'+(secs<10 ? '0':'')+secs+''); + }, + onEnded(){ + this.emmit('audio-ended'); + this.stop(); + }, + // cartel functions + loadNode(nid){ + this.$cartel.addClass('loading'); + var vm = 'player_cartel'; + var ajax_path = _ajax_settings.entityjson_path+'/node/'+nid+'/'+vm; + var path = window.location.origin + Drupal.url(ajax_path); + $.getJSON(path, {}) + .done(this.onNodeLoaded.bind(this)) + .fail(this.onNodeLoadFail.bind(this)); + }, + onNodeLoaded(data){ + // console.log('AudioPlayer node loaded'); + this.$cartel.html(data.rendered).removeClass('loading'); + _$body.trigger({'type':'new-audio-cartel-loaded'}); + initAjaxLinks(); + }, + onNodeLoadFail(jqxhr, textStatus, error){ + console.warn('AudioPlayer node load failed', jqxhr.responseText); + this.$cartel.removeClass('loading').html(''); + }, + // global + show(){ + this.$container.addClass('visible'); + }, + showHidePreviousBtn(){ + if(this.historic.length > 1 && this.currentHistoricIndex > 0){ + this.$previous.addClass('is-active'); + }else{ + this.$previous.removeClass('is-active'); + } + }, + showHideNextBtn(){ + if(this.currentHistoricIndex < this.historic.length-1 || this.shuffle_is_active){ + this.$next.addClass('is-active'); + }else{ + this.$next.removeClass('is-active'); + } + }, + timeOutToHide(){ + // console.log('AudioPlayer timeOutToHide()'); + this.clearTimeOutToHide(); + this.hideTimer = setTimeout(this.hide.bind(this), this.hideTimeMS); + }, + clearTimeOutToHide(){ + // console.log('AudioPlayer clearTimeOutToHide()',this.hideTimer); + if(this.hideTimer){ + clearTimeout(this.hideTimer); + this.hideTimer = false; + } + }, + hide(){ + // console.log('AudioPlayer hide()'); + this.$container.removeClass('visible'); + // trigger highlighted node remove on corpus map + try { + _$corpus_canvas.trigger('audio-node-closed'); + } catch (e) { + console.info('AudioPlayer hide() : _$corpus_canvas does not exists'); + } + }, + // object events + on(event_name, handler){ + if(typeof this.event_handlers[event_name] == 'undefined'){ + console.warn('AudioPlayer : event '+event_name+' does not exists'); + } + this.event_handlers[event_name].push(handler); + return this; + }, + emmit(event_name, args){ + // console.log('AudioPlayer emmit() event_name', event_name); + // console.log('AudioPlayer emmit() handlers', this.event_handlers[event_name]); + var handler; + var args = args || {}; + for (var i = this.event_handlers[event_name].length-1; i >= 0 ; i--) { + handler = this.event_handlers[event_name][i]; + // console.log('AudioPlayer emmit() loop handler', handler); + setTimeout(function(){ + // console.log('AudioPlayer emmit() timeout handler', handler); + handler(args); + }, 0); + } + return this; + }, + } + + // ___ _ ___ _ + // | _ \__ _ _ _ __| |___ _ __ | _ \ |__ _ _ _ ___ _ _ + // | / _` | ' \/ _` / _ \ ' \| _/ / _` | || / -_) '_| + // |_|_\__,_|_||_\__,_\___/_|_|_|_| |_\__,_|\_, \___|_| + // |__/ + function RandomPlayer(playlist){ + this.active = false; + this.playlist = playlist; + this.$btn = $('').html('Shuffle').addClass('random-player-btn'); + this.init(); + }; + RandomPlayer.prototype = { + init(){ + // this.shuffle(); + $('
    ') + .addClass('block random-player') + .append(this.$btn) + // .insertAfter('#block-userlogin, #block-studiolinkblock'); + .prependTo('.region-footer-right'); + + // events + this.$btn.on('click', this.toggleActive.bind(this)); + + // attach an event on AudioPlayer + _audioPlayer + .on('audio-ended', this.onAudioPlayerEnded.bind(this)) + .on('audio-play-next', this.onAudioPlayNext.bind(this)) + .on('stop-shuffle', this.stop.bind(this)); + }, + shuffle(){ + var tempPLaylist = []; + for (var i = this.playlist.length-1; i >= 0 ; i--) { + tempPLaylist.push(this.playlist[i]); + } + this.shuffledPlaylist = []; + while(tempPLaylist.length > 0){ + var r = Math.floor(Math.random() * tempPLaylist.length); + this.shuffledPlaylist.push(tempPLaylist.splice(r,1)[0]); + } + //console.log('RandomPlayer, this.shuffledPlaylist', this.shuffledPlaylist); + }, + toggleActive(e){ + if (this.active) { + this.stop(); + }else{ + this.start(); + } + }, + start(){ + this.active = _audioPlayer.shuffle_is_active = true; + this.$btn.addClass('is-active'); + this.shuffle(); + this.next(); + }, + stop(){ + this.active = _audioPlayer.shuffle_is_active = false; + this.$btn.removeClass('is-active'); + // stop audio player + // _audioPlayer.stop(); + }, + next(){ + if(this.active && this.shuffledPlaylist.length > 0) + _audioPlayer.openDocument(this.shuffledPlaylist.splice(0,1)[0]); + }, + onAudioPlayNext(){ + //console.log('RandomPlayer : onAudioPlayNext()'); + this.next(); + }, + onAudioPlayerEnded(){ + //console.log('RandomPlayer : onAudioPlayerEnded()'); + this.next(); + } + }; + + // ___ ___ _ + // / __|___ _ __ _ __ ___| _ \ |__ _ _ _ ___ _ _ + // | (__/ _ \ ' \| '_ \/ _ \ _/ / _` | || / -_) '_| + // \___\___/_|_|_| .__/\___/_| |_\__,_|\_, \___|_| + // |_| |__/ + function CompoPlayer(){ + this.active = false; + this.playing = false; + this.paused = false; + this.playlist = []; + this.current_index = 0; + this.$composer = null; + this.$compo = null; + this.$controls = null; + this.init(); + }; + CompoPlayer.prototype = { + init(){ + // console.log('CompoPlayer init()'); + // attach an event on AudioPlayer + _audioPlayer + .on('audio-open-document', this.onAudioOpenDocument.bind(this)) + .on('audio-play', this.onAudioPlayerPlay.bind(this)) + .on('audio-pause', this.onAudioPlayerPause.bind(this)) + .on('audio-ended', this.onAudioPlayerEnded.bind(this)); + // .on('audio-play-next', this.onAudioPlayNext.bind(this)); + + // this.newCompo(); + }, + newCompo(){ + //console.log('CompoPlayer newCompo()'); + // this.$compo = $('.composition_ui .composer .composition'); + this.initControls(); + }, + initControls(){ + //console.log('CompoPlayer initControls()'); + this.$composer = $('.composition_ui .composer'); + this.$compo = $('.composition_ui .composer .composition'); + this.$controls = $('.composition_ui .composer .compo-player-controls'); + if(!this.$controls.is('.ready') && this.$compo){ + this.$previous = $('
    ').addClass('previous') + .on('click', this.prev.bind(this)) + .appendTo(this.$controls); + this.$playpause = $('
    ').addClass('play-pause') + .on('click', this.togglePlayPause.bind(this)) + .appendTo(this.$controls); + this.$next = $('
    ').addClass('next') + .on('click', this.next.bind(this)) + .appendTo(this.$controls); + + this.$controls.addClass('ready'); + + this.refresh(); + + this.active = true; + // this.newCompo(); + } + }, + refresh(){ + // console.log('CompoPlayer refresh(), this', this); + this.stop(); + + // load new playlist + this.playlist = []; + var that = this; + $('.field--name-documents .field__item',this.$compo).each(function(i,el){ + var $link = $('a.audio-link',this); + that.playlist.push({ + item:$(this), + audio_url:$link.attr("audio_url"), + nid:$link.attr("nid"), + }); + }); + this.showHideControls(); + }, + togglePlayPause(){ + // console.log('CompoPlayer togglePlayPause'); + if (this.playing && !this.paused) { + this.pause(); + }else{ + if(this.playing && this.paused){ + this.play(); + }else{ + this.start(); + } + } + }, + start(){ + //console.log('start'); + // console.log('CompoPlayer start()'); + this.playing = true; + this.play(); + }, + play(){ + // console.log('play'); + if(this.paused){ + this.paused = false; + _audioPlayer.play(); + }else{ + _audioPlayer.openDocument(this.playlist[this.current_index], this); + } + this.setActiveItem().showHideControls(); + }, + pause(){ + //console.log('pause'); + this.paused = true; + this.showHideControls(); + _audioPlayer.stop(); + }, + next(){ + // console.log('CompoPlayer next()'); + if(this.playing){ + this.current_index += 1; + if(this.current_index < this.playlist.length){ + this.play(); + }else{ + this.stop(); + } + } + }, + prev(){ + // console.log('CompoPlayer prev()'); + if(this.playing){ + this.current_index -= 1; + if(this.current_index >= 0){ + this.play(); + }else{ + this.stop(); + } + } + }, + stop(){ + _audioPlayer.stop(); + this.reset(); + }, + reset(){ + this.playing = false; + this.paused = false; + this.resetIndex(); + }, + resetIndex(){ + this.current_index = 0; + this.showHideControls().resetActiveItems(); + }, + setActiveItem(){ + this.resetActiveItems(); + if(this.playing && this.current_index >= 0){ + this.playlist[this.current_index].item.addClass('is-active'); + } + // this call shoud not be here + this.showHideControls(); + return this; + }, + resetActiveItems(){ + for (var n = 0; n < this.playlist.length; n++) { + // console.log('node',node); + this.playlist[n].item.removeClass('is-active'); + } + return this; + }, + showHideControls(){ + // console.log('CompoPlayer showHideNextBtn(), playing:'+this.playing+', paused:'+this.paused); + // global playing + if(this.$controls){ + if(this.playing && !this.paused){ + this.$controls.addClass('is-playing'); + }else{ + this.$controls.removeClass('is-playing'); + } + } + // playpause + if(this.$playpause){ + if(this.playlist.length > 0){ + this.$playpause.addClass('is-active'); + }else{ + this.$playpause.removeClass('is-active'); + } + } + // next + if(this.$next){ + if(this.playing && this.playlist.length > 1 && this.current_index < this.playlist.length -1){ + this.$next.addClass('is-active'); + }else{ + this.$next.removeClass('is-active'); + } + } + // previous + if(this.$previous){ + if(this.playing && this.playlist.length > 1 && this.current_index > 0){ + this.$previous.addClass('is-active'); + }else{ + this.$previous.removeClass('is-active'); + } + } + return this; + }, + deactivate(){ + this.stop(); + this.active = false; + }, + // _audioPlayer events + onAudioOpenDocument(args){ + if(args.caller !== this){ + // console.log('CompoPlayer onAudioOpenDocument() called by other'); + this.reset(); + } + // else{ + // // console.log('CompoPlayer onAudioOpenDocument() self calling'); + // } + }, + onAudioPlayerPlay(){ + if(this.playing && this.paused){ + this.paused = false; + this.showHideControls(); + } + }, + onAudioPlayerPause(){ + if(this.playing && !this.paused){ + this.paused = true; + this.showHideControls(); + } + }, + onAudioPlayerEnded(){ + this.next(); + }, + // onAudioPlayNext(){ + // this.next(); + // } + }; + + // ___ _ ___ + // | __| _ ___ _ _| |_| _ \__ _ __ _ ___ + // | _| '_/ _ \ ' \ _| _/ _` / _` / -_) + // |_||_| \___/_||_\__|_| \__,_\__, \___| + // |___/ + function backToFrontPage(pop_state){ + closeAllModals(); + // assume we are going back to front page + $('body').removeClass().addClass('path-frontpage'); + $('a[data-drupal-link-system-path=""]').addClass('is-active'); + // close entrees + _$corpus_canvas.trigger({'type':'close-all-entree'}); + if(!pop_state){ + history.pushState({home:true}, null, window.location.origin); + } + } + + function initHome(){ + addCloseModalBtnToCols(); + // console.log('theme : initHome'); + // console.log('theme : initProductions'); + var $grid = $('.grid',_$row).masonry({ + itemSelector:'.col', + columnWidth:'.col-2', + horizontalOrder: true, + containerStyle: null, + // disable initial layout + // initLayout: false, + }); + // bind event + // $grid.masonry( 'on', 'layoutComplete', function() { + // console.log('layout is complete'); + // }); + + // layout Masonry after each image loads + $grid.imagesLoaded().progress( function() { + $grid.masonry('layout'); + }); + + $grid.imagesLoaded(function(){ + $grid.masonry('layout'); + }); + } + + // ___ _ _ _ + // | _ \_ _ ___ __| |_ _ __| |_(_)___ _ _ ___ + // | _/ '_/ _ \/ _` | || / _| _| / _ \ ' \(_-< + // |_| |_| \___/\__,_|\_,_\__|\__|_\___/_||_/__/ + function initProductions(){ + // console.log('theme : initProductions'); + var $grid = $('.grid',_$row).masonry({ + itemSelector:'.col', + columnWidth:'.col-2', + horizontalOrder: true, + containerStyle: null, + // disable initial layout + // initLayout: false, + }); + // bind event + // $grid.masonry( 'on', 'layoutComplete', function() { + // console.log('layout is complete'); + // }); + + // layout Masonry after each image loads + $grid.imagesLoaded().progress( function() { + $grid.masonry('layout'); + }); + + $grid.imagesLoaded(function(){ + $grid.masonry('layout'); + }); + }; + + // __ __ _ _ + // | \/ |___ __| |__ _| |___ + // | |\/| / _ \/ _` / _` | (_-< + // |_| |_\___/\__,_\__,_|_/__/ + function closeAllModals(){ + //console.log('theme : closeAllModals'); + // TODO: animate the remove + _$row.html(''); + _$ajaxLinks.removeClass('is-active'); + _$body.trigger({'type':'all-modal-closed'}); + }; + + // _ _ _ + // | || |___| |_ __ ___ _ _ ___ + // | __ / -_) | '_ \/ -_) '_(_-< + // |_||_\___|_| .__/\___|_| /__/ + // |_| + + // https://plainjs.com/javascript/utilities/set-cookie-get-cookie-and-delete-cookie-5/ + // function getCookie(name) { + // var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); + // return v ? v[2] : null; + // } + // function setCookie(name, value, days) { + // var d = new Date; + // d.setTime(d.getTime() + 24*60*60*1000*days); + // document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString(); + // } + // function deleteCookie(name) { setCookie(name, '', -1); } + + init(); + } // end EdlpTheme() + + $(document).ready(function($) { + var edlptheme = new EdlpTheme(); + }); + +})(jQuery, Drupal, drupalSettings); diff --git a/sites/all/themes/custom/edlptheme/assets/dist/styles/app.min.css b/sites/all/themes/custom/edlptheme/assets/dist/styles/app.min.css index 242d03571..707614cc8 100644 --- a/sites/all/themes/custom/edlptheme/assets/dist/styles/app.min.css +++ b/sites/all/themes/custom/edlptheme/assets/dist/styles/app.min.css @@ -1 +1,2745 @@ -.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-7,.col-8,.col-9{padding-left:0;margin-left:0;vertical-align:top}.col-1,.col-1-offset-1,.col-1-offset-10,.col-1-offset-2,.col-1-offset-3,.col-1-offset-4,.col-1-offset-5,.col-1-offset-6,.col-1-offset-7,.col-1-offset-8,.col-1-offset-9,.col-10,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{vertical-align:top}#block-mainnavigation ul li a,.block-language ul li a,a{color:inherit;text-decoration:none}body{background:#fff}a,a:active,a:focus{outline:0}a:focus{-moz-outline-style:none}.col-1,.col-1-offset-1,.col-1-offset-10,.col-1-offset-11,.col-1-offset-2,.col-1-offset-3,.col-1-offset-4,.col-1-offset-5,.col-1-offset-6,.col-1-offset-7,.col-1-offset-8,.col-1-offset-9,.col-10,.col-10-offset-1,.col-10-offset-2,.col-11,.col-11-offset-1,.col-12,.col-2,.col-2-offset-1,.col-2-offset-10,.col-2-offset-2,.col-2-offset-3,.col-2-offset-4,.col-2-offset-5,.col-2-offset-6,.col-2-offset-7,.col-2-offset-8,.col-2-offset-9,.col-3,.col-3-offset-1,.col-3-offset-2,.col-3-offset-3,.col-3-offset-4,.col-3-offset-5,.col-3-offset-6,.col-3-offset-7,.col-3-offset-8,.col-3-offset-9,.col-4,.col-4-offset-1,.col-4-offset-2,.col-4-offset-3,.col-4-offset-4,.col-4-offset-5,.col-4-offset-6,.col-4-offset-7,.col-4-offset-8,.col-5,.col-5-offset-1,.col-5-offset-2,.col-5-offset-3,.col-5-offset-4,.col-5-offset-5,.col-5-offset-6,.col-5-offset-7,.col-6,.col-6-offset-1,.col-6-offset-2,.col-6-offset-3,.col-6-offset-4,.col-6-offset-5,.col-6-offset-6,.col-7,.col-7-offset-1,.col-7-offset-2,.col-7-offset-3,.col-7-offset-4,.col-7-offset-5,.col-8,.col-8-offset-1,.col-8-offset-2,.col-8-offset-3,.col-8-offset-4,.col-9,.col-9-offset-1,.col-9-offset-2,.col-9-offset-3,.large-col-1,.large-col-10,.large-col-11,.large-col-12,.large-col-2,.large-col-3,.large-col-4,.large-col-5,.large-col-6,.large-col-7,.large-col-8,.large-col-9,.med-col-1,.med-col-10,.med-col-11,.med-col-12,.med-col-2,.med-col-3,.med-col-4,.med-col-5,.med-col-6,.med-col-7,.med-col-8,.med-col-9,.small-col-1,.small-col-10,.small-col-11,.small-col-12,.small-col-2,.small-col-3,.small-col-4,.small-col-5,.small-col-6,.small-col-7,.small-col-8,.small-col-9{width:100%;display:inline-block;font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:normal}.row{font-size:0;white-space:nowrap;position:relative}.row>*{font-size:16px}.col-1{padding-right:1em;width:8.33333%}.col-1:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-1{padding-left:0;padding-right:1em;margin-left:0;width:8.33333%;vertical-align:top}.small-col-1:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-1{padding-left:0;padding-right:1em;margin-left:0;width:8.33333%;vertical-align:top}.med-col-1:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-1{padding-left:0;padding-right:1em;margin-left:0;width:8.33333%;vertical-align:top}.large-col-1:last-child{padding-right:0}}.col-2{padding-right:1em;width:16.66667%}.col-2:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-2{padding-left:0;padding-right:1em;margin-left:0;width:16.66667%;vertical-align:top}.small-col-2:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-2{padding-left:0;padding-right:1em;margin-left:0;width:16.66667%;vertical-align:top}.med-col-2:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-2{padding-left:0;padding-right:1em;margin-left:0;width:16.66667%;vertical-align:top}.large-col-2:last-child{padding-right:0}}.col-3{padding-right:1em;width:25%}.col-3:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-3{padding-left:0;padding-right:1em;margin-left:0;width:25%;vertical-align:top}.small-col-3:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-3{padding-left:0;padding-right:1em;margin-left:0;width:25%;vertical-align:top}.med-col-3:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-3{padding-left:0;padding-right:1em;margin-left:0;width:25%;vertical-align:top}.large-col-3:last-child{padding-right:0}}.col-4{padding-right:1em;width:33.33333%}.col-4:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-4{padding-left:0;padding-right:1em;margin-left:0;width:33.33333%;vertical-align:top}.small-col-4:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-4{padding-left:0;padding-right:1em;margin-left:0;width:33.33333%;vertical-align:top}.med-col-4:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-4{padding-left:0;padding-right:1em;margin-left:0;width:33.33333%;vertical-align:top}.large-col-4:last-child{padding-right:0}}.col-5{padding-right:1em;width:41.66667%}.col-5:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-5{padding-left:0;padding-right:1em;margin-left:0;width:41.66667%;vertical-align:top}.small-col-5:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-5{padding-left:0;padding-right:1em;margin-left:0;width:41.66667%;vertical-align:top}.med-col-5:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-5{padding-left:0;padding-right:1em;margin-left:0;width:41.66667%;vertical-align:top}.large-col-5:last-child{padding-right:0}}.col-6{padding-left:0;padding-right:1em;margin-left:0;width:50%}.col-6:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-6{padding-left:0;padding-right:1em;margin-left:0;width:50%;vertical-align:top}.small-col-6:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-6{padding-left:0;padding-right:1em;margin-left:0;width:50%;vertical-align:top}.med-col-6:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-6{padding-left:0;padding-right:1em;margin-left:0;width:50%;vertical-align:top}.large-col-6:last-child{padding-right:0}}.col-7{padding-right:1em;width:58.33333%}.col-7:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-7{padding-left:0;padding-right:1em;margin-left:0;width:58.33333%;vertical-align:top}.small-col-7:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-7{padding-left:0;padding-right:1em;margin-left:0;width:58.33333%;vertical-align:top}.med-col-7:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-7{padding-left:0;padding-right:1em;margin-left:0;width:58.33333%;vertical-align:top}.large-col-7:last-child{padding-right:0}}.col-8{padding-right:1em;width:66.66667%}.col-8:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-8{padding-left:0;padding-right:1em;margin-left:0;width:66.66667%;vertical-align:top}.small-col-8:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-8{padding-left:0;padding-right:1em;margin-left:0;width:66.66667%;vertical-align:top}.med-col-8:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-8{padding-left:0;padding-right:1em;margin-left:0;width:66.66667%;vertical-align:top}.large-col-8:last-child{padding-right:0}}.col-9{padding-right:1em;width:75%}.col-9:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-9{padding-left:0;padding-right:1em;margin-left:0;width:75%;vertical-align:top}.small-col-9:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-9{padding-left:0;padding-right:1em;margin-left:0;width:75%;vertical-align:top}.med-col-9:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-9{padding-left:0;padding-right:1em;margin-left:0;width:75%;vertical-align:top}.large-col-9:last-child{padding-right:0}}.col-10{padding-right:1em;width:83.33333%}.col-10:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-10{padding-left:0;padding-right:1em;margin-left:0;width:83.33333%;vertical-align:top}.small-col-10:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-10{padding-left:0;padding-right:1em;margin-left:0;width:83.33333%;vertical-align:top}.med-col-10:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-10{padding-left:0;padding-right:1em;margin-left:0;width:83.33333%;vertical-align:top}.large-col-10:last-child{padding-right:0}}.col-11{padding-right:1em;width:91.66667%}.col-11:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-11{padding-left:0;padding-right:1em;margin-left:0;width:91.66667%;vertical-align:top}.small-col-11:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-11{padding-left:0;padding-right:1em;margin-left:0;width:91.66667%;vertical-align:top}.med-col-11:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-11{padding-left:0;padding-right:1em;margin-left:0;width:91.66667%;vertical-align:top}.large-col-11:last-child{padding-right:0}}.col-12{padding-right:1em;width:100%}.col-12:last-child{padding-right:0}@media only screen and (max-width:768px){.small-col-12{padding-left:0;padding-right:1em;margin-left:0;width:100%;vertical-align:top}.small-col-12:last-child{padding-right:0}}@media only screen and (min-width:769px) and (max-width:1080px){.med-col-12{padding-left:0;padding-right:1em;margin-left:0;width:100%;vertical-align:top}.med-col-12:last-child{padding-right:0}}@media only screen and (min-width:1081px){.large-col-12{padding-left:0;padding-right:1em;margin-left:0;width:100%;vertical-align:top}.large-col-12:last-child{padding-right:0}}.col-1-offset-1{padding-left:1em;padding-right:1em;margin-left:8.33333%;width:8.33333%}.col-1-offset-1:last-child{padding-right:0}.col-1-offset-2{padding-left:2em;padding-right:1em;margin-left:16.66667%;width:8.33333%}.col-1-offset-2:last-child{padding-right:0}.col-1-offset-3{padding-left:3em;padding-right:1em;margin-left:25%;width:8.33333%}.col-1-offset-3:last-child{padding-right:0}.col-1-offset-4{padding-left:4em;padding-right:1em;margin-left:33.33333%;width:8.33333%}.col-1-offset-4:last-child{padding-right:0}.col-1-offset-5{padding-left:5em;padding-right:1em;margin-left:41.66667%;width:8.33333%}.col-1-offset-5:last-child{padding-right:0}.col-1-offset-6{padding-left:6em;padding-right:1em;margin-left:50%;width:8.33333%}.col-1-offset-6:last-child{padding-right:0}.col-1-offset-7{padding-left:7em;padding-right:1em;margin-left:58.33333%;width:8.33333%}.col-1-offset-7:last-child{padding-right:0}.col-1-offset-8{padding-left:8em;padding-right:1em;margin-left:66.66667%;width:8.33333%}.col-1-offset-8:last-child{padding-right:0}.col-1-offset-9{padding-left:9em;padding-right:1em;margin-left:75%;width:8.33333%}.col-1-offset-9:last-child{padding-right:0}.col-1-offset-10{padding-left:10em;padding-right:1em;margin-left:83.33333%;width:8.33333%}.col-1-offset-10:last-child{padding-right:0}.col-1-offset-11{padding-left:11em;padding-right:1em;margin-left:91.66667%;width:8.33333%;vertical-align:top}.col-2-offset-1,.col-2-offset-10,.col-2-offset-2,.col-2-offset-3,.col-2-offset-4,.col-2-offset-6,.col-2-offset-7,.col-2-offset-8,.col-2-offset-9{width:16.66667%;vertical-align:top}.col-1-offset-11:last-child{padding-right:0}.col-2-offset-1{padding-left:1em;padding-right:1em;margin-left:16.66667%}.col-2-offset-1:last-child{padding-right:0}.col-2-offset-2{padding-left:2em;padding-right:1em;margin-left:33.33333%}.col-2-offset-2:last-child{padding-right:0}.col-2-offset-3{padding-left:3em;padding-right:1em;margin-left:50%}.col-2-offset-3:last-child{padding-right:0}.col-2-offset-4{padding-left:4em;padding-right:1em;margin-left:66.66667%}.col-2-offset-4:last-child{padding-right:0}.col-2-offset-5{padding-left:5em;padding-right:1em;margin-left:83.33333%;width:16.66667%;vertical-align:top}.col-2-offset-5:last-child{padding-right:0}.col-2-offset-6{padding-left:6em;padding-right:1em;margin-left:100%}.col-2-offset-6:last-child{padding-right:0}.col-2-offset-7{padding-left:7em;padding-right:1em;margin-left:116.66667%}.col-2-offset-7:last-child{padding-right:0}.col-2-offset-8{padding-left:8em;padding-right:1em;margin-left:133.33333%}.col-2-offset-8:last-child{padding-right:0}.col-2-offset-9{padding-left:9em;padding-right:1em;margin-left:150%}.col-2-offset-9:last-child{padding-right:0}.col-2-offset-10{padding-left:10em;padding-right:1em;margin-left:166.66667%}.col-2-offset-10:last-child{padding-right:0}.col-3-offset-1{padding-left:1em;padding-right:1em;margin-left:25%;width:25%;vertical-align:top}.col-3-offset-1:last-child{padding-right:0}.col-3-offset-2{padding-left:2em;padding-right:1em;margin-left:50%;width:25%;vertical-align:top}.col-3-offset-2:last-child{padding-right:0}.col-3-offset-3{padding-left:3em;padding-right:1em;margin-left:75%;width:25%;vertical-align:top}.col-3-offset-3:last-child{padding-right:0}.col-3-offset-4{padding-left:4em;padding-right:1em;margin-left:100%;width:25%;vertical-align:top}.col-3-offset-4:last-child{padding-right:0}.col-3-offset-5{padding-left:5em;padding-right:1em;margin-left:125%;width:25%;vertical-align:top}.col-3-offset-5:last-child{padding-right:0}.col-3-offset-6{padding-left:6em;padding-right:1em;margin-left:150%;width:25%;vertical-align:top}.col-3-offset-6:last-child{padding-right:0}.col-3-offset-7{padding-left:7em;padding-right:1em;margin-left:175%;width:25%;vertical-align:top}.col-3-offset-7:last-child{padding-right:0}.col-3-offset-8{padding-left:8em;padding-right:1em;margin-left:200%;width:25%;vertical-align:top}.col-3-offset-8:last-child{padding-right:0}.col-3-offset-9{padding-left:9em;padding-right:1em;margin-left:225%;width:25%;vertical-align:top}.col-4-offset-1,.col-4-offset-2,.col-4-offset-3,.col-4-offset-4,.col-4-offset-5,.col-4-offset-6,.col-4-offset-7,.col-4-offset-8{width:33.33333%;vertical-align:top}.col-3-offset-9:last-child{padding-right:0}.col-4-offset-1{padding-left:1em;padding-right:1em;margin-left:33.33333%}.col-4-offset-1:last-child{padding-right:0}.col-4-offset-2{padding-left:2em;padding-right:1em;margin-left:66.66667%}.col-4-offset-2:last-child{padding-right:0}.col-4-offset-3{padding-left:3em;padding-right:1em;margin-left:100%}.col-4-offset-3:last-child{padding-right:0}.col-4-offset-4{padding-left:4em;padding-right:1em;margin-left:133.33333%}.col-4-offset-4:last-child{padding-right:0}.col-4-offset-5{padding-left:5em;padding-right:1em;margin-left:166.66667%}.col-4-offset-5:last-child{padding-right:0}.col-4-offset-6{padding-left:6em;padding-right:1em;margin-left:200%}.col-4-offset-6:last-child{padding-right:0}.col-4-offset-7{padding-left:7em;padding-right:1em;margin-left:233.33333%}.col-4-offset-7:last-child{padding-right:0}.col-4-offset-8{padding-left:8em;padding-right:1em;margin-left:266.66667%}.col-4-offset-8:last-child{padding-right:0}.col-5-offset-1{padding-left:1em;padding-right:1em;margin-left:41.66667%;width:41.66667%;vertical-align:top}.col-5-offset-1:last-child{padding-right:0}.col-5-offset-2{padding-left:2em;padding-right:1em;margin-left:83.33333%;width:41.66667%;vertical-align:top}.col-5-offset-2:last-child{padding-right:0}.col-5-offset-3{padding-left:3em;padding-right:1em;margin-left:125%;width:41.66667%;vertical-align:top}.col-5-offset-3:last-child{padding-right:0}.col-5-offset-4{padding-left:4em;padding-right:1em;margin-left:166.66667%;width:41.66667%;vertical-align:top}.col-5-offset-4:last-child{padding-right:0}.col-5-offset-5{padding-left:5em;padding-right:1em;margin-left:208.33333%;width:41.66667%;vertical-align:top}.col-5-offset-5:last-child{padding-right:0}.col-5-offset-6{padding-left:6em;padding-right:1em;margin-left:250%;width:41.66667%;vertical-align:top}.col-5-offset-6:last-child{padding-right:0}.col-5-offset-7{padding-left:7em;padding-right:1em;margin-left:291.66667%;width:41.66667%;vertical-align:top}.col-6-offset-1,.col-6-offset-2,.col-6-offset-3,.col-6-offset-4,.col-6-offset-5,.col-6-offset-6{width:50%;vertical-align:top}.col-5-offset-7:last-child{padding-right:0}.col-6-offset-1{padding-left:1em;padding-right:1em;margin-left:50%}.col-6-offset-1:last-child{padding-right:0}.col-6-offset-2{padding-left:2em;padding-right:1em;margin-left:100%}.col-6-offset-2:last-child{padding-right:0}.col-6-offset-3{padding-left:3em;padding-right:1em;margin-left:150%}.col-6-offset-3:last-child{padding-right:0}.col-6-offset-4{padding-left:4em;padding-right:1em;margin-left:200%}.col-6-offset-4:last-child{padding-right:0}.col-6-offset-5{padding-left:5em;padding-right:1em;margin-left:250%}.col-6-offset-5:last-child{padding-right:0}.col-6-offset-6{padding-left:6em;padding-right:1em;margin-left:300%}.col-6-offset-6:last-child{padding-right:0}.col-7-offset-1{padding-left:1em;padding-right:1em;margin-left:58.33333%;width:58.33333%;vertical-align:top}.col-7-offset-1:last-child{padding-right:0}.col-7-offset-2{padding-left:2em;padding-right:1em;margin-left:116.66667%;width:58.33333%;vertical-align:top}.col-7-offset-2:last-child{padding-right:0}.col-7-offset-3{padding-left:3em;padding-right:1em;margin-left:175%;width:58.33333%;vertical-align:top}.col-7-offset-3:last-child{padding-right:0}.col-7-offset-4{padding-left:4em;padding-right:1em;margin-left:233.33333%;width:58.33333%;vertical-align:top}.col-7-offset-4:last-child{padding-right:0}.col-7-offset-5{padding-left:5em;padding-right:1em;margin-left:291.66667%;width:58.33333%;vertical-align:top}.col-8-offset-1,.col-8-offset-2,.col-8-offset-3,.col-8-offset-4{width:66.66667%;vertical-align:top}.col-7-offset-5:last-child{padding-right:0}.col-8-offset-1{padding-left:1em;padding-right:1em;margin-left:66.66667%}.col-8-offset-1:last-child{padding-right:0}.col-8-offset-2{padding-left:2em;padding-right:1em;margin-left:133.33333%}.col-8-offset-2:last-child{padding-right:0}.col-8-offset-3{padding-left:3em;padding-right:1em;margin-left:200%}.col-8-offset-3:last-child{padding-right:0}.col-8-offset-4{padding-left:4em;padding-right:1em;margin-left:266.66667%}.col-8-offset-4:last-child{padding-right:0}.col-9-offset-1{padding-left:1em;padding-right:1em;margin-left:75%;width:75%;vertical-align:top}.col-9-offset-1:last-child{padding-right:0}.col-9-offset-2{padding-left:2em;padding-right:1em;margin-left:150%;width:75%;vertical-align:top}.col-9-offset-2:last-child{padding-right:0}.col-9-offset-3{padding-left:3em;padding-right:1em;margin-left:225%;width:75%;vertical-align:top}.col-10-offset-1,.col-10-offset-2{width:83.33333%;vertical-align:top}.col-9-offset-3:last-child{padding-right:0}.col-10-offset-1{padding-left:1em;padding-right:1em;margin-left:83.33333%}.col-10-offset-1:last-child{padding-right:0}.col-10-offset-2{padding-left:2em;padding-right:1em;margin-left:166.66667%}.col-10-offset-2:last-child{padding-right:0}.col-11-offset-1{padding-left:1em;padding-right:1em;margin-left:91.66667%;width:91.66667%;vertical-align:top}.col-11-offset-1:last-child{padding-right:0}.col.float-right{float:right;padding-right:0;padding-left:1em}body,html{position:relative;width:100%;height:100%;font-family:Georgia,serif;font-style:normal;margin:0;padding:0}body.toolbar-horizontal.toolbar-themes.toolbar-no-tabs{padding-top:24px!important}header[role=banner]{z-index:2;position:relative;padding:0 1em}header[role=banner]>.wrapper{position:relative;padding:.5em 0;border-bottom:1px solid red;height:70px}header[role=banner]>.wrapper>.region{height:100%;position:relative}aside.messages{border:none;z-index:99;position:absolute;left:5%;top:100px;width:80%;max-height:600px;background-color:rgba(255,255,255,.8);padding:0;overflow-y:auto}main[role=main]{z-index:1;position:absolute;left:0;top:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding:7em 2em 9em;overflow:hidden;pointer-events:none;height:100%}main[role=main] .layout-content{width:100%;height:100%;overflow:hidden}main[role=main] .layout-content>*{pointer-events:auto}body.toolbar-horizontal.toolbar-themes.toolbar-no-tabs main[role=main]{padding-top:8em}footer[role=contentinfo]{z-index:2;position:fixed;bottom:0;-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;padding:.5em 1em}.os-scroll{height:100%}header[role=banner]{pointer-events:all}#block-edlptheme-branding{display:inline-block}#block-edlptheme-branding h1{margin:0;display:inline-block}#block-edlptheme-branding h1 a.site-name{display:block;width:290px;height:63.8px;background-image:url(../img/logo.svg);background-color:#fff;background-repeat:no-repeat;background-size:contain;white-space:nowrap;text-indent:500px;overflow:hidden}#block-mainnavigation ul li a:before,.block-language ul li a:before{display:inline-block;width:.6em;height:.6em;border:1px solid red;content:""}#block-mainnavigation{float:right;margin-top:25px}#block-mainnavigation ul{margin:0;padding:0;white-space:nowrap}#block-mainnavigation ul li{margin:0;padding:0;display:inline-block}#block-mainnavigation ul li a{font-size:.756em;text-transform:uppercase;margin-left:1em}#block-mainnavigation ul li a:before{margin-right:.3em}#block-mainnavigation ul li a.ajax-loading:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#block-mainnavigation ul li a.is-active-trail:before,#block-mainnavigation ul li a.is-active:before,#block-mainnavigation ul li a:hover:before{background-color:red}.block-language{float:right;margin-top:24px;margin-left:2em}.block-language ul{margin:0;padding:0}.block-language ul li{display:inline-block;vertical-align:middle;list-style:none}.block-language ul li a{font-size:.69em;text-transform:capitalize;margin-left:.8em}.block-language ul li a:before{margin-right:.3em}.block-language ul li.is-active a:before,.block-language ul li:hover a:before{border-color:red;background-color:red}#corpus-map,main[role=main] .row{opacity:0}body[corpus=map-ready] #corpus-map{-webkit-transition:opacity 2s ease-out;transition:opacity 2s ease-out;opacity:1}main[role=main] .row .col{opacity:1;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}body[booted=booted] main[role=main] .row{-webkit-transition:opacity 1s ease-out;transition:opacity 1s ease-out;opacity:1}body.ajax-loading main[role=main] .row .col:not([theme=edlp_search_search_form]){opacity:.2}main[role=main] .layout-content{pointer-events:none}main[role=main] .layout-content .row{pointer-events:none;height:100%;overflow:hidden}main[role=main] .layout-content .row .col{pointer-events:none;height:100%;position:relative}main[role=main] .layout-content .row .col>.wrapper{pointer-events:all;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-top:1px solid red;border-bottom:1px solid red;background-color:rgba(255,255,255,.95);padding:0 0 1em;max-height:100%;overflow-y:auto}main[role=main] .layout-content .row .col>.wrapper>*{padding:0 1em}main[role=main] .layout-content .field.text-formatted a.audio-link{border-bottom:1px dotted red}main[role=main] article.node>h2,main[role=main] h2.title{font-size:.9em;font-weight:400;text-transform:uppercase}main[role=main] article.node p{font-size:.75em;font-weight:400}main[role=main] img{max-width:100%;height:auto}main[role=main] li,main[role=main] ul,main[role=main] ul.inline li:first-child{margin:0;padding:0;list-style:none}main[role=main] span.close-col-btn{pointer-events:all;cursor:pointer;position:-webkit-sticky;position:sticky;top:.5em;padding:0!important;margin:.5em;display:block;width:10px;height:10px;float:right;background-image:url(../img/close.svg);background-repeat:no-repeat;background-position:center;background-size:contain}#audio-player{position:absolute;top:0;left:0;background-color:#fff;height:100%;min-width:300px;z-index:20;opacity:0;pointer-events:none;-webkit-transition:opacity .7s ease-in-out;transition:opacity .7s ease-in-out}#audio-player.visible{opacity:1;pointer-events:all}#audio-player>*{display:inline-block;vertical-align:middle;padding:0;max-height:100%}#audio-player .btns>*{display:inline-block;vertical-align:middle;width:20px;height:30px;background-position:center;background-size:contain}#audio-player .btns .play-pause{background-image:url(../img/audio-player-play.svg);padding:0 .3em;cursor:pointer}#audio-player .btns.is-playing .play-pause{background-image:url(../img/audio-player-pause.svg)}#audio-player .btns .next,#audio-player .btns .previous{opacity:.3;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;cursor:auto}#audio-player .btns .next.is-active,#audio-player .btns .previous.is-active{opacity:1;cursor:pointer}#audio-player .btns .previous{background-image:url(../img/audio-player-previous.svg)}#audio-player .btns .next{background-image:url(../img/audio-player-next.svg)}#audio-player .time-line-container .time-line{position:relative;width:70px;height:1px;background-color:#000;overflow:visible;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)}#audio-player .time-line-container .time-line .loader{width:0;height:100%;background-color:red;top:0;left:0}#audio-player .time-line-container .time-line .cursor{height:10px;width:0;border-left:2px solid red;position:absolute;left:0;top:-5px}#audio-player .time>*{width:70px;text-align:right}#audio-player .time .current-time{font-size:1.4em;font-weight:600}#audio-player .time .duration{font-size:.75em;font-weight:400}#audio-player .favoris{height:100%}#audio-player .cartel{position:relative;max-width:350px;margin-left:1em;background-color:#fff;opacity:1;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out;white-space:nowrap}#audio-player .cartel.loading{opacity:0}#audio-player .cartel .actions,#audio-player .cartel .cartels{display:inline-block;vertical-align:top;white-space:normal;position:relative}#audio-player .cartel .actions{width:1.5em}#audio-player .cartel .cartels .first-cartel .entrees{line-height:0}#audio-player .cartel .cartels .first-cartel .entrees span{display:inline-block;width:8px;height:8px;background-color:#000;margin-right:3px}#audio-player .cartel .cartels .first-cartel .entrees span[tid='134']{background-color:var(--e-col-134)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='121']{background-color:var(--e-col-121)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='125']{background-color:var(--e-col-125)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='119']{background-color:var(--e-col-119)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='132']{background-color:var(--e-col-132)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='122']{background-color:var(--e-col-122)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='129']{background-color:var(--e-col-129)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='120']{background-color:var(--e-col-120)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='130']{background-color:var(--e-col-130)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='118']{background-color:var(--e-col-118)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='127']{background-color:var(--e-col-127)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='133']{background-color:var(--e-col-133)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='128']{background-color:var(--e-col-128)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='124']{background-color:var(--e-col-124)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='116']{background-color:var(--e-col-116)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='117']{background-color:var(--e-col-117)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='131']{background-color:var(--e-col-131)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='126']{background-color:var(--e-col-126)}#audio-player .cartel .cartels .first-cartel .entrees span[tid='123']{background-color:var(--e-col-123)}#audio-player .cartel .cartels .first-cartel h2.node-title{margin:.2em 0 0;font-size:1em}#audio-player .cartel .cartels .first-cartel p{margin:0;font-size:.75em}#audio-player .cartel .cartels .second-cartel{position:absolute;top:0;left:0;background-color:#fff;height:100%;min-width:100%;opacity:0;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}#audio-player .cartel .cartels .second-cartel>*{display:inline-block;vertical-align:top}#audio-player .cartel .cartels .second-cartel .col-left a{display:block;font-size:.9em;font-weight:600}#audio-player .cartel .cartels .second-cartel .col-right{font-size:.75em}#audio-player .cartel:hover .second-cartel{opacity:1}.chutier-icon{z-index:1;display:block;position:relative;width:1em;height:1em;overflow:hidden;text-indent:50em;background-position:center;background-repeat:no-repeat;background-size:contain;background-image:url(../img/favori-off.svg);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.chutier-icon[action=remove]{background-image:url(../img/favori-on.svg)}.chutier-icon.ajax-loading{opacity:.2}.chutier-icon.not-logedin{overflow:visible}.chutier-icon .popup{display:none;position:absolute;top:0;left:0;width:300px;height:auto;min-height:100px}.chutier-icon .popup .inner{background-color:rgba(255,255,255,.9);border:1px solid red;text-indent:0;padding:.5em;margin:1.2em 0 0 1.2em}.chutier-icon .popup .inner p{margin:0}.chutier-icon:hover .popup{display:block}#studio-ui,.row .col .studio-ui-wrapper{height:100%}#studio-ui .chutier_ui{height:50%;border-bottom:1px solid red;position:relative}#studio-ui .chutier_ui>h2{z-index:10;position:absolute;width:calc(100% - 20px);margin:0;padding:.5em 0;font-size:1em;font-weight:500;text-transform:uppercase;background-color:#fff}#studio-ui .chutier_ui .documents{padding-top:35px;height:calc(100% - 35px);overflow-y:auto;overflow-x:hidden}#studio-ui .chutier_ui .documents li,#studio-ui .chutier_ui .documents ul{margin:0;padding:0;line-height:1.2}#studio-ui .chutier_ui .documents li{display:inline-block;vertical-align:top;width:49%;margin-bottom:.5em;white-space:nowrap}#studio-ui .chutier_ui .documents li>div{display:inline-block;padding-right:2em}#studio-ui .chutier_ui .documents li>div.ui-draggable{cursor:-webkit-grab;cursor:grab}#studio-ui .chutier_ui .documents li .entrees{line-height:0}#studio-ui .chutier_ui .documents li .entrees span{display:inline-block;width:8px;height:8px;background-color:#000;margin-right:3px}#studio-ui .chutier_ui .documents li .entrees span[tid='134']{background-color:var(--e-col-134)}#studio-ui .chutier_ui .documents li .entrees span[tid='121']{background-color:var(--e-col-121)}#studio-ui .chutier_ui .documents li .entrees span[tid='125']{background-color:var(--e-col-125)}#studio-ui .chutier_ui .documents li .entrees span[tid='119']{background-color:var(--e-col-119)}#studio-ui .chutier_ui .documents li .entrees span[tid='132']{background-color:var(--e-col-132)}#studio-ui .chutier_ui .documents li .entrees span[tid='122']{background-color:var(--e-col-122)}#studio-ui .chutier_ui .documents li .entrees span[tid='129']{background-color:var(--e-col-129)}#studio-ui .chutier_ui .documents li .entrees span[tid='120']{background-color:var(--e-col-120)}#studio-ui .chutier_ui .documents li .entrees span[tid='130']{background-color:var(--e-col-130)}#studio-ui .chutier_ui .documents li .entrees span[tid='118']{background-color:var(--e-col-118)}#studio-ui .chutier_ui .documents li .entrees span[tid='127']{background-color:var(--e-col-127)}#studio-ui .chutier_ui .documents li .entrees span[tid='133']{background-color:var(--e-col-133)}#studio-ui .chutier_ui .documents li .entrees span[tid='128']{background-color:var(--e-col-128)}#studio-ui .chutier_ui .documents li .entrees span[tid='124']{background-color:var(--e-col-124)}#studio-ui .chutier_ui .documents li .entrees span[tid='116']{background-color:var(--e-col-116)}#studio-ui .chutier_ui .documents li .entrees span[tid='117']{background-color:var(--e-col-117)}#studio-ui .chutier_ui .documents li .entrees span[tid='131']{background-color:var(--e-col-131)}#studio-ui .chutier_ui .documents li .entrees span[tid='126']{background-color:var(--e-col-126)}#studio-ui .chutier_ui .documents li .entrees span[tid='123']{background-color:var(--e-col-123)}#studio-ui .chutier_ui .documents li a.audio-link{text-transform:capitalize;font-size:.756em;margin-right:.5em;white-space:normal}#studio-ui .chutier_ui .documents li .chutier-icon{display:inline-block;width:.7em;height:.7em;opacity:.8}#studio-ui .composition_ui{height:50%}#studio-ui .composition_ui>h2{z-index:10;position:absolute;width:calc(100% - 20px);margin:0;padding:.5em 0;font-size:1em;font-weight:500;text-transform:uppercase;background-color:#fff}#studio-ui .composition_ui>.wrapper{padding-top:35px;height:calc(100% - 35px);overflow:hidden;white-space:nowrap}#studio-ui .composition_ui>.wrapper section.composer,#studio-ui .composition_ui>.wrapper section.compositions-list{display:inline-block;vertical-align:bottom;height:100%}#studio-ui .composition_ui>.wrapper .compositions-list{width:30%;height:100%;overflow-y:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:.5em;border-right:1px solid #aaa}#studio-ui .composition_ui>.wrapper .compositions-list li{opacity:1;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}#studio-ui .composition_ui>.wrapper .compositions-list li:hover a.delete-composition-link{opacity:1}#studio-ui .composition_ui>.wrapper .compositions-list li.ajax-loading{opacity:.4}#studio-ui .composition_ui>.wrapper .compositions-list a{font-size:.756em}#studio-ui .composition_ui>.wrapper .compositions-list a.composition-link{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:calc(100% - 21px)}#studio-ui .composition_ui>.wrapper .compositions-list a.composition-link:before{content:"";width:7px;height:7px;border:1px solid #000;background-color:#fff;display:inline-block;vertical-align:middle;margin-right:5px}#studio-ui .composition_ui>.wrapper .compositions-list a.composition-link.ajax-loading:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}#studio-ui .composition_ui>.wrapper .compositions-list a.composition-link.is-active:before{background-color:#000}#studio-ui .composition_ui>.wrapper .compositions-list a.delete-composition-link{display:inline-block;vertical-align:middle;width:7px;height:7px;margin-left:5px;text-indent:300px;overflow:hidden;background-image:url(../img/delete.svg);background-repeat:no-repeat;background-size:contain;opacity:0;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}#studio-ui .composition_ui>.wrapper .compositions-list a.new-composition-link{display:inline-block;vertical-align:top;overflow:hidden;margin-top:.4em;height:1em;-webkit-transition:height .2s ease-in-out;transition:height .2s ease-in-out}#studio-ui .composition_ui>.wrapper .compositions-list a.new-composition-link:before{content:"+";margin-right:5px}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item article h2,#studio-ui .field__item.ui-draggable-dragging article h2{margin:0;text-transform:none}#studio-ui .composition_ui>.wrapper .compositions-list a.new-composition-link.folded{height:0}#studio-ui .composition_ui>.wrapper .compositions-list .new-compo-form{opacity:1;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}#studio-ui .composition_ui>.wrapper .compositions-list .new-compo-form input[type=text]{font-size:.756em;padding:0 .5em;width:calc(100% - 50px);height:1.7em;border:none;border-top:1px dotted red;border-bottom:1px dotted red}#studio-ui .composition_ui>.wrapper .compositions-list .new-compo-form button{background:0 0;border:none;font-size:1em;line-height:1;font-weight:700}#studio-ui .composition_ui>.wrapper .compositions-list .new-compo-form.ajax-loading{opacity:.4}#studio-ui .composition_ui>.wrapper .composer{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:.5em;width:69%;opacity:1;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}#studio-ui .composition_ui>.wrapper .composer.ajax-loading{opacity:.3}#studio-ui .composition_ui>.wrapper .composer>*{-webkit-box-sizing:border-box;box-sizing:border-box}#studio-ui .composition_ui>.wrapper .composer>header{height:25px;padding-bottom:5px;font-size:.756em}#studio-ui .composition_ui>.wrapper .composer>.composition{position:relative;height:calc(100% - 60px);padding-bottom:1em}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;width:100%;padding:0 .5em}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents:after,#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents:before{content:"";width:calc(100% - 2px);position:absolute;bottom:0;left:0}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents:before{border-top:1px solid #A1A1A1;height:14.5px}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents:after{border-left:1px solid #A1A1A1;border-right:1px solid #A1A1A1;height:29px}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item{display:inline-block;position:relative;white-space:nowrap;pointer-events:none;width:25px;height:100%;opacity:1;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item.ui-draggable-dragging{height:100px}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item.ready-to-remove{opacity:.3;cursor:crosshair}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item>*{pointer-events:all}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item article{position:absolute;bottom:0;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item article h2 a{white-space:nowrap!important;font-size:.756em}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item article h2 a:before{content:"";display:inline-block;vertical-align:middle;width:12px;height:12px;border:1px solid #fff;background-color:#fff}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item .handler{z-index:99;cursor:-webkit-grab;cursor:grab;position:absolute;bottom:0;left:1px;display:block;width:12px;height:12px;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg);border:1px solid red;background-color:#fff}#studio-ui .composition_ui>.wrapper .composer>.composition .field--name-documents .field__item.is-active .handler{background-color:red}#studio-ui .composition_ui>.wrapper .composer>.composition .remove-drop-zone{position:absolute;top:0;left:0;width:100%;height:45%;z-index:150}#studio-ui .composition_ui>.wrapper .composer>.actions{padding-top:5px;height:25px}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls>*{display:inline-block;vertical-align:middle;width:20px;height:30px;background-position:center;background-size:contain}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .play-pause{background-image:url(../img/audio-player-play.svg);padding:0 .3em;cursor:pointer}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls.is-playing .play-pause{background-image:url(../img/audio-player-pause.svg)}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .next,#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .previous{opacity:.3;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;cursor:auto}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .next.is-active,#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .previous.is-active{opacity:1;cursor:pointer}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .previous{background-image:url(../img/audio-player-previous.svg)}#studio-ui .composition_ui>.wrapper .composer>.actions .compo-player-controls .next{background-image:url(../img/audio-player-next.svg)}#studio-ui .field__item.ui-draggable-dragging{display:inline-block;position:relative;white-space:nowrap;pointer-events:none;width:25px;height:100%;opacity:1;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}#studio-ui .field__item.ui-draggable-dragging.ui-draggable-dragging{height:100px}#studio-ui .field__item.ui-draggable-dragging.ready-to-remove{opacity:.3;cursor:crosshair}#studio-ui .field__item.ui-draggable-dragging>*{pointer-events:all}#studio-ui .field__item.ui-draggable-dragging article{position:absolute;bottom:0;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg)}#studio-ui .field__item.ui-draggable-dragging article h2 a{white-space:nowrap!important;font-size:.756em}#studio-ui .field__item.ui-draggable-dragging article h2 a:before{content:"";display:inline-block;vertical-align:middle;width:12px;height:12px;border:1px solid #fff;background-color:#fff}#studio-ui .field__item.ui-draggable-dragging .handler{z-index:99;cursor:-webkit-grab;cursor:grab;position:absolute;bottom:0;left:1px;display:block;width:12px;height:12px;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg);border:1px solid red;background-color:#fff}#studio-ui .field__item.ui-draggable-dragging.is-active .handler{background-color:red}.col[theme=edlp_search_search_form],.col[theme=edlp_search_search_form]>.wrapper{position:relative;height:100%}#edlp-search-form{height:100%}#edlp-search-form .fieldgroup{border-bottom:1px solid red;margin-top:1em;margin-bottom:0}#edlp-search-form .fieldgroup legend{font-size:.9em;margin:0;font-weight:500}#edlp-search-form .fieldgroup .fieldset-wrapper{padding-bottom:1em}#edlp-search-form .fieldgroup .form-item{margin:0}#edlp-search-form input[type=text],#edlp-search-form input[type=search]{font-size:.8em;padding:.2em;margin:0;border:1px solid #aaa;border-radius:3px;width:90%}#edlp-search-form #edit-entries .form-item input,#edlp-search-form #edit-entries .form-item label{display:inline-block;vertical-align:middle}#edlp-search-form #edit-entries .form-item label{font-size:.756em}#edlp-search-form #edit-entries .form-item input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:10px;border:1px double #000;background-color:#fff}#edlp-search-form #edit-entries .form-item input[type=checkbox]:checked{background-color:#000}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='134']{border-color:var(--e-col-134)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='134']:checked{background-color:var(--e-col-134)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='121']{border-color:var(--e-col-121)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='121']:checked{background-color:var(--e-col-121)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='125']{border-color:var(--e-col-125)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='125']:checked{background-color:var(--e-col-125)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='119']{border-color:var(--e-col-119)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='119']:checked{background-color:var(--e-col-119)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='132']{border-color:var(--e-col-132)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='132']:checked{background-color:var(--e-col-132)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='122']{border-color:var(--e-col-122)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='122']:checked{background-color:var(--e-col-122)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='129']{border-color:var(--e-col-129)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='129']:checked{background-color:var(--e-col-129)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='120']{border-color:var(--e-col-120)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='120']:checked{background-color:var(--e-col-120)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='130']{border-color:var(--e-col-130)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='130']:checked{background-color:var(--e-col-130)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='118']{border-color:var(--e-col-118)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='118']:checked{background-color:var(--e-col-118)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='127']{border-color:var(--e-col-127)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='127']:checked{background-color:var(--e-col-127)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='133']{border-color:var(--e-col-133)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='133']:checked{background-color:var(--e-col-133)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='128']{border-color:var(--e-col-128)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='128']:checked{background-color:var(--e-col-128)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='124']{border-color:var(--e-col-124)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='124']:checked{background-color:var(--e-col-124)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='116']{border-color:var(--e-col-116)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='116']:checked{background-color:var(--e-col-116)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='117']{border-color:var(--e-col-117)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='117']:checked{background-color:var(--e-col-117)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='131']{border-color:var(--e-col-131)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='131']:checked{background-color:var(--e-col-131)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='126']{border-color:var(--e-col-126)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='126']:checked{background-color:var(--e-col-126)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='123']{border-color:var(--e-col-123)}#edlp-search-form #edit-entries .form-item input[type=checkbox][value='123']:checked{background-color:var(--e-col-123)}#edlp-search-form input[type=submit]{font-size:.756em;padding:.1em;margin:1em 0 0;float:right;opacity:1;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}#edlp-search-form.ajax-loading input[type=submit]{opacity:.2;pointer-events:none}.col[theme=edlp_search_results]{opacity:1;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.col[theme=edlp_search_results].ajax-loading{opacity:.2}.col[theme=edlp_search_results] article .entrees span{display:inline-block;width:8px;height:8px;background-color:#000;margin-right:3px}#agenda,body.path-agenda main .col>.wrapper{height:100%}.col[theme=edlp_search_results] article .entrees span[tid='134']{background-color:var(--e-col-134)}.col[theme=edlp_search_results] article .entrees span[tid='121']{background-color:var(--e-col-121)}.col[theme=edlp_search_results] article .entrees span[tid='125']{background-color:var(--e-col-125)}.col[theme=edlp_search_results] article .entrees span[tid='119']{background-color:var(--e-col-119)}.col[theme=edlp_search_results] article .entrees span[tid='132']{background-color:var(--e-col-132)}.col[theme=edlp_search_results] article .entrees span[tid='122']{background-color:var(--e-col-122)}.col[theme=edlp_search_results] article .entrees span[tid='129']{background-color:var(--e-col-129)}.col[theme=edlp_search_results] article .entrees span[tid='120']{background-color:var(--e-col-120)}.col[theme=edlp_search_results] article .entrees span[tid='130']{background-color:var(--e-col-130)}.col[theme=edlp_search_results] article .entrees span[tid='118']{background-color:var(--e-col-118)}.col[theme=edlp_search_results] article .entrees span[tid='127']{background-color:var(--e-col-127)}.col[theme=edlp_search_results] article .entrees span[tid='133']{background-color:var(--e-col-133)}.col[theme=edlp_search_results] article .entrees span[tid='128']{background-color:var(--e-col-128)}.col[theme=edlp_search_results] article .entrees span[tid='124']{background-color:var(--e-col-124)}.col[theme=edlp_search_results] article .entrees span[tid='116']{background-color:var(--e-col-116)}.col[theme=edlp_search_results] article .entrees span[tid='117']{background-color:var(--e-col-117)}.col[theme=edlp_search_results] article .entrees span[tid='131']{background-color:var(--e-col-131)}.col[theme=edlp_search_results] article .entrees span[tid='126']{background-color:var(--e-col-126)}.col[theme=edlp_search_results] article .entrees span[tid='123']{background-color:var(--e-col-123)}.col[theme=edlp_search_results] article h2.node-title{margin:0 0 .3em;font-size:.8em;font-weight:500;text-transform:none}#agenda{position:relative;white-space:nowrap}#agenda div.column{white-space:normal;display:inline-block;vertical-align:top;height:100%}#agenda div.next-event{width:65%}#agenda div.future-past-events{width:33%}#agenda li,#agenda ul{margin:0;padding:0;list-style:none}#agenda article.node--type-evenement h2{font-size:.9em;font-weight:400;text-transform:uppercase}body.path-frontpage .layout-content .row,body.path-productions .layout-content .row{white-space:normal;min-height:100%}body.path-frontpage .layout-content .row .col,body.path-productions .layout-content .row .col{height:auto}body.path-frontpage .layout-content .row .col.col-2:last-child,body.path-productions .layout-content .row .col.col-2:last-child{padding-left:0;padding-right:1em}body.path-frontpage .layout-content .row .col>.wrapper,body.path-productions .layout-content .row .col>.wrapper{margin-bottom:1em;padding:0}body.path-frontpage .layout-content .row .col>.wrapper>*,body.path-productions .layout-content .row .col>.wrapper>*{padding:0}body.path-frontpage .layout-content .row .col>.wrapper article.node .field--name-field-visuel a,body.path-frontpage .layout-content .row .col>.wrapper article.node .field--name-field-visuel img,body.path-productions .layout-content .row .col>.wrapper article.node .field--name-field-visuel a,body.path-productions .layout-content .row .col>.wrapper article.node .field--name-field-visuel img{display:block;width:100%;height:auto}body.path-frontpage .layout-content .row .col>.wrapper article.node header,body.path-productions .layout-content .row .col>.wrapper article.node header{background-color:rgba(255,255,255,.95);-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding:.5em 1em}body.path-frontpage .layout-content .row .col>.wrapper article.node header h2.node-title,body.path-productions .layout-content .row .col>.wrapper article.node header h2.node-title{margin:0;font-size:.8em;text-transform:lowercase}body.path-frontpage .layout-content .row .col>.wrapper article.node.node--view-mode-image-2-columns header,body.path-productions .layout-content .row .col>.wrapper article.node.node--view-mode-image-2-columns header{position:absolute;bottom:0;left:0}body.path-frontpage .layout-content .row .col>.wrapper article.node.node--view-mode-image-2-columns header h2.node-title,body.path-productions .layout-content .row .col>.wrapper article.node.node--view-mode-image-2-columns header h2.node-title{font-size:1.2em;font-weight:500}body.path-frontpage .layout-content .row .col>.wrapper article.node.node--view-mode-image-1-columns h2.node-title,body.path-productions .layout-content .row .col>.wrapper article.node.node--view-mode-image-1-columns h2.node-title{font-size:1em;font-weight:500}body.path-frontpage .layout-content .row .col>.wrapper article.node.node--view-mode-text-1-column,body.path-productions .layout-content .row .col>.wrapper article.node.node--view-mode-text-1-column{padding:0 1em}footer{position:relative;pointer-events:none}footer>.wrapper{white-space:nowrap}footer>.wrapper>.region{display:inline-block;vertical-align:baseline;white-space:normal}footer>.wrapper>.region>*{display:inline-block;vertical-align:bottom}footer>.wrapper .region-footer-left{width:12%;text-align:left}footer>.wrapper .region-footer-center{width:72%;overflow:hidden;text-align:center}footer>.wrapper .region-footer-right{min-width:12%;text-align:right}footer #block-footer{display:inline-block;margin-bottom:1em}footer #block-footer ul{margin:0;padding:0;white-space:nowrap}footer #block-footer ul li{pointer-events:all;display:inline-block}footer #block-footer ul li:first-of-type{margin-left:1em}footer #block-footer ul li a{font-size:.756em}footer #block-footer ul li a:before{content:"";display:inline-block;width:7px;height:7px;border:1px solid #000;margin-right:.5em}footer #block-footer ul li a.is-active:before,footer #block-footer ul li a:hover:before{background-color:#000}footer #block-footer ul li a.ajax-loading:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}footer nav#block-productions.block-menu ul{margin:0;padding:0}footer nav#block-productions.block-menu ul li{pointer-events:all;display:inline-block;position:relative;list-style:none;margin:0 1.5em 0 0;padding:0;height:200px}footer nav#block-productions.block-menu ul li a{position:absolute;bottom:0;-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg);color:#000;text-decoration:none;text-transform:uppercase;font-size:.756em;white-space:nowrap}footer nav#block-productions.block-menu ul li:first-of-type{margin-left:1em}footer nav#block-productions.block-menu{position:relative;pointer-events:none;display:none}body.entity-type-node.bundle-page footer nav#block-productions.block-menu,body.path-productions footer nav#block-productions.block-menu{display:inline-block}footer nav#block-productions.block-menu ul{margin-left:-3em;white-space:nowrap}footer nav#block-productions.block-menu ul li a{pointer-events:all;background-color:#fff;padding-right:.4em}footer nav#block-productions.block-menu ul li a:before{content:"";display:inline-block;width:7px;height:7px;border:1px solid red;margin-right:.5em}footer nav#block-productions.block-menu ul li a.is-active-trail:before,footer nav#block-productions.block-menu ul li a.is-active:before,footer nav#block-productions.block-menu ul li a:hover:before{background-color:red}footer nav#block-productions.block-menu ul li a.ajax-loading:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}footer .block-block-edlp-entrees{pointer-events:none;display:inline-block}body.entity-type-node.bundle-page footer .block-block-edlp-entrees,body.path-agenda footer .block-block-edlp-entrees,body.path-productions footer .block-block-edlp-entrees{display:none}footer .block-block-edlp-entrees ul{margin:0;white-space:nowrap}footer .block-block-edlp-entrees ul li{display:inline-block;position:relative;list-style:none;padding:0;margin:0;white-space:nowrap;pointer-events:none}footer .block-block-edlp-entrees ul li a{position:absolute;bottom:0;-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotateZ(-45deg);transform:rotateZ(-45deg);color:#000;text-decoration:none;text-transform:uppercase;font-size:.756em;white-space:nowrap}footer .block-block-edlp-entrees ul li span.oblique-wrapper{height:120px;display:inline-block;vertical-align:bottom;position:relative;width:1.5em}footer .block-block-edlp-entrees ul li a.articles-link,footer .block-block-edlp-entrees ul li a.term-link{pointer-events:all;background-color:#fff;padding-right:.4em}footer .block-block-edlp-entrees ul li a.articles-link:before,footer .block-block-edlp-entrees ul li a.term-link:before{content:"";display:inline-block;width:7px;height:7px;border:1px solid #000;background-color:#000;margin-right:.5em;-webkit-transition:background-color .1s ease-in-out;transition:background-color .1s ease-in-out}footer .block-block-edlp-entrees ul li a.articles-link.articles-link,footer .block-block-edlp-entrees ul li a.term-link.articles-link{margin-left:4em;text-transform:capitalize}footer .block-block-edlp-entrees ul li .entree-content{display:inline-block;width:0;overflow:hidden;opacity:0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transition-property:width,opacity;transition-property:width,opacity}footer #block-studiolinkblock a,footer .block.random-player a{-webkit-mask-size:contain;-webkit-transition:background-color .3s ease-in-out}footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper:first-of-type{margin-left:.5em}footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a{text-transform:none;pointer-events:auto}footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a:before{content:"";display:inline-block;width:5px;height:5px;border:1px solid #000;margin-right:.5em}footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a.ajax-loading:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}@keyframes rotation{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}footer .block-block-edlp-entrees ul li .entree-content .term-description{display:inline-block;margin-left:1.5em;text-align:left;width:250px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;white-space:normal;background-color:rgba(255,255,255,.95);padding:.5em .5em 0}footer #block-edlpsearchlinkblock a,footer #block-studiolinkblock a,footer .block.random-player a{display:block;text-indent:40px;overflow:hidden;cursor:pointer}footer .block-block-edlp-entrees ul li .entree-content .term-description p{font-size:.65em;margin:0}footer .block-block-edlp-entrees ul li[tid='134'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='134'] a.term-link:before{border-color:var(--e-col-134);background-color:var(--e-col-134)}footer .block-block-edlp-entrees ul li[tid='121'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='121'] a.term-link:before{border-color:var(--e-col-121);background-color:var(--e-col-121)}footer .block-block-edlp-entrees ul li[tid='125'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='125'] a.term-link:before{border-color:var(--e-col-125);background-color:var(--e-col-125)}footer .block-block-edlp-entrees ul li[tid='119'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='119'] a.term-link:before{border-color:var(--e-col-119);background-color:var(--e-col-119)}footer .block-block-edlp-entrees ul li[tid='132'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='132'] a.term-link:before{border-color:var(--e-col-132);background-color:var(--e-col-132)}footer .block-block-edlp-entrees ul li[tid='122'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='122'] a.term-link:before{border-color:var(--e-col-122);background-color:var(--e-col-122)}footer .block-block-edlp-entrees ul li[tid='129'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='129'] a.term-link:before{border-color:var(--e-col-129);background-color:var(--e-col-129)}footer .block-block-edlp-entrees ul li[tid='120'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='120'] a.term-link:before{border-color:var(--e-col-120);background-color:var(--e-col-120)}footer .block-block-edlp-entrees ul li[tid='130'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='130'] a.term-link:before{border-color:var(--e-col-130);background-color:var(--e-col-130)}footer .block-block-edlp-entrees ul li[tid='118'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='118'] a.term-link:before{border-color:var(--e-col-118);background-color:var(--e-col-118)}footer .block-block-edlp-entrees ul li[tid='127'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='127'] a.term-link:before{border-color:var(--e-col-127);background-color:var(--e-col-127)}footer .block-block-edlp-entrees ul li[tid='133'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='133'] a.term-link:before{border-color:var(--e-col-133);background-color:var(--e-col-133)}footer .block-block-edlp-entrees ul li[tid='128'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='128'] a.term-link:before{border-color:var(--e-col-128);background-color:var(--e-col-128)}footer .block-block-edlp-entrees ul li[tid='124'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='124'] a.term-link:before{border-color:var(--e-col-124);background-color:var(--e-col-124)}footer .block-block-edlp-entrees ul li[tid='116'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='116'] a.term-link:before{border-color:var(--e-col-116);background-color:var(--e-col-116)}footer .block-block-edlp-entrees ul li[tid='117'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='117'] a.term-link:before{border-color:var(--e-col-117);background-color:var(--e-col-117)}footer .block-block-edlp-entrees ul li[tid='131'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='131'] a.term-link:before{border-color:var(--e-col-131);background-color:var(--e-col-131)}footer .block-block-edlp-entrees ul li[tid='126'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='126'] a.term-link:before{border-color:var(--e-col-126);background-color:var(--e-col-126)}footer .block-block-edlp-entrees ul li[tid='123'] .entree-content span.oblique-wrapper a:before,footer .block-block-edlp-entrees ul li[tid='123'] a.term-link:before{border-color:var(--e-col-123);background-color:var(--e-col-123)}footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a:not(:hover):not(.is-active):before,footer .block-block-edlp-entrees ul li a.articles-link:not(:hover):not(.is-active):before,footer .block-block-edlp-entrees ul li:not(.opened) a.term-link:not(:hover):not(.highlighted):before{background-color:#fff!important}footer .block-block-edlp-entrees ul li.opened a.term-link:after{content:'';position:absolute;left:15px;right:0;bottom:-3px;border-bottom:1px solid grey}footer .block-block-edlp-entrees ul li.opened .entree-content{width:350px;opacity:1}footer .block.random-player{margin-bottom:1em;pointer-events:all;margin-left:.5em}footer .block.random-player a{width:20px;height:20px;margin:0;-webkit-mask-image:url(../img/random.svg);mask-image:url(../img/random.svg);mask-size:contain;background-color:#000;transition:background-color .3s ease-in-out}footer .block.random-player a.is-active{background-color:red}footer #block-studiolinkblock{margin-bottom:1em;pointer-events:all;margin-left:.5em}footer #block-studiolinkblock a{width:20px;height:20px;margin:0;-webkit-mask-image:url(../img/studio.svg);mask-image:url(../img/studio.svg);mask-size:contain;background-color:#000;transition:background-color .3s ease-in-out}footer #block-studiolinkblock a.is-active{background-color:red}footer #block-userlogin{margin-bottom:1em;pointer-events:all;margin-left:.2em;position:relative;width:20px;height:20px}footer #block-userlogin h2{position:relative;width:20px;height:20px;background-image:url(../img/studio.svg);background-size:contain;text-indent:40px;margin:0;overflow:hidden;z-index:1;cursor:pointer}footer #block-userlogin .block-content{z-index:0;position:absolute;right:0;bottom:20px;padding:.5em .5em 20px;background-color:rgba(255,255,255,.95);border-top:1px solid red;border-bottom:1px solid red;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;height:0;opacity:0;pointer-events:none;-webkit-transition:all .5s ease-in-out;transition:all .5s ease-in-out;-webkit-transition-property:height,opacity;transition-property:height,opacity}footer #block-userlogin .block-content form{font-size:.75em}footer #block-userlogin .block-content .item-list ul{margin:0}footer #block-userlogin .block-content .item-list li{margin:0;list-style:none}footer #block-userlogin .block-content .item-list li a{color:inherit;text-decoration:none;font-size:.75em;white-space:nowrap}footer #block-userlogin:hover .block-content{height:200px;opacity:1;pointer-events:auto}footer #block-edlpsearchlinkblock{margin-bottom:1em;pointer-events:all;margin-left:.2em}footer #block-edlpsearchlinkblock a{width:20px;height:20px;margin:0;-webkit-mask-image:url(../img/search.svg);mask-image:url(../img/search.svg);-webkit-mask-size:contain;mask-size:contain;background-color:#000;-webkit-transition:background-color .3s ease-in-out;transition:background-color .3s ease-in-out}footer #block-edlpsearchlinkblock a.is-active{background-color:red}.node-popup .inner{position:relative}.node-popup .inner .entrees span{display:inline-block;width:8px;height:8px;background-color:#000;margin-right:3px}.node-popup .inner .entrees span[tid='134']{background-color:var(--e-col-134)}.node-popup .inner .entrees span[tid='121']{background-color:var(--e-col-121)}.node-popup .inner .entrees span[tid='125']{background-color:var(--e-col-125)}.node-popup .inner .entrees span[tid='119']{background-color:var(--e-col-119)}.node-popup .inner .entrees span[tid='132']{background-color:var(--e-col-132)}.node-popup .inner .entrees span[tid='122']{background-color:var(--e-col-122)}.node-popup .inner .entrees span[tid='129']{background-color:var(--e-col-129)}.node-popup .inner .entrees span[tid='120']{background-color:var(--e-col-120)}.node-popup .inner .entrees span[tid='130']{background-color:var(--e-col-130)}.node-popup .inner .entrees span[tid='118']{background-color:var(--e-col-118)}.node-popup .inner .entrees span[tid='127']{background-color:var(--e-col-127)}.node-popup .inner .entrees span[tid='133']{background-color:var(--e-col-133)}.node-popup .inner .entrees span[tid='128']{background-color:var(--e-col-128)}.node-popup .inner .entrees span[tid='124']{background-color:var(--e-col-124)}.node-popup .inner .entrees span[tid='116']{background-color:var(--e-col-116)}.node-popup .inner .entrees span[tid='117']{background-color:var(--e-col-117)}.node-popup .inner .entrees span[tid='131']{background-color:var(--e-col-131)}.node-popup .inner .entrees span[tid='126']{background-color:var(--e-col-126)}.node-popup .inner .entrees span[tid='123']{background-color:var(--e-col-123)}.node-popup .inner .title{margin:.3em 0;font-size:1.2em;font-weight:500}.node-popup .inner .description p{margin:0;font-size:.75em}.node-popup .inner .chutier-icon{position:absolute;top:1em;right:1em}.url-to-video-container{margin:10px auto}.url-to-video-container.no-js{border:1px solid #000}.url-to-video-container.no-js .url-to-video-player{cursor:auto}.url-to-video-container .loader{top:auto;left:auto;-webkit-transform:none;transform:none}.url-to-video-container span.url-to-video-player{padding-bottom:0;height:auto}.url-to-video-container span.url-to-video-player:before{content:"";display:block;padding-top:56.25%}.url-to-video-container span.url-to-video-player .play-button{z-index:5;top:50%} \ No newline at end of file +body { + background: white; } + +a { + color: inherit; + text-decoration: none; } + +a, a:focus, a:active { + outline: none; } + +a:focus { + -moz-outline-style: none; } + +.col-1, .small-col-1, .med-col-1, .large-col-1, .col-2, .small-col-2, .med-col-2, .large-col-2, .col-3, .small-col-3, .med-col-3, .large-col-3, .col-4, .small-col-4, .med-col-4, .large-col-4, .col-5, .small-col-5, .med-col-5, .large-col-5, .col-6, .small-col-6, .med-col-6, .large-col-6, .col-7, .small-col-7, .med-col-7, .large-col-7, .col-8, .small-col-8, .med-col-8, .large-col-8, .col-9, .small-col-9, .med-col-9, .large-col-9, .col-10, .small-col-10, .med-col-10, .large-col-10, .col-11, .small-col-11, .med-col-11, .large-col-11, .col-12, .small-col-12, .med-col-12, .large-col-12, .col-1-offset-1, .col-1-offset-2, .col-1-offset-3, .col-1-offset-4, .col-1-offset-5, .col-1-offset-6, .col-1-offset-7, .col-1-offset-8, .col-1-offset-9, .col-1-offset-10, .col-1-offset-11, .col-2-offset-1, .col-2-offset-2, .col-2-offset-3, .col-2-offset-4, .col-2-offset-5, .col-2-offset-6, .col-2-offset-7, .col-2-offset-8, .col-2-offset-9, .col-2-offset-10, .col-3-offset-1, .col-3-offset-2, .col-3-offset-3, .col-3-offset-4, .col-3-offset-5, .col-3-offset-6, .col-3-offset-7, .col-3-offset-8, .col-3-offset-9, .col-4-offset-1, .col-4-offset-2, .col-4-offset-3, .col-4-offset-4, .col-4-offset-5, .col-4-offset-6, .col-4-offset-7, .col-4-offset-8, .col-5-offset-1, .col-5-offset-2, .col-5-offset-3, .col-5-offset-4, .col-5-offset-5, .col-5-offset-6, .col-5-offset-7, .col-6-offset-1, .col-6-offset-2, .col-6-offset-3, .col-6-offset-4, .col-6-offset-5, .col-6-offset-6, .col-7-offset-1, .col-7-offset-2, .col-7-offset-3, .col-7-offset-4, .col-7-offset-5, .col-8-offset-1, .col-8-offset-2, .col-8-offset-3, .col-8-offset-4, .col-9-offset-1, .col-9-offset-2, .col-9-offset-3, .col-10-offset-1, .col-10-offset-2, .col-11-offset-1 { + width: 100%; + display: inline-block; + font-size: 16px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + white-space: normal; } + +.row { + font-size: 0; + white-space: nowrap; + position: relative; } + .row > * { + font-size: 16px; } + +.col-1 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 8.33333%; + vertical-align: top; } + .col-1:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-1 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 8.33333%; + vertical-align: top; } + .small-col-1:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-1 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 8.33333%; + vertical-align: top; } + .med-col-1:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-1 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 8.33333%; + vertical-align: top; } + .large-col-1:last-child { + padding-right: 0; } } + +.col-2 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 16.66667%; + vertical-align: top; } + .col-2:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-2 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 16.66667%; + vertical-align: top; } + .small-col-2:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-2 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 16.66667%; + vertical-align: top; } + .med-col-2:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-2 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 16.66667%; + vertical-align: top; } + .large-col-2:last-child { + padding-right: 0; } } + +.col-3 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 25%; + vertical-align: top; } + .col-3:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-3 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 25%; + vertical-align: top; } + .small-col-3:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-3 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 25%; + vertical-align: top; } + .med-col-3:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-3 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 25%; + vertical-align: top; } + .large-col-3:last-child { + padding-right: 0; } } + +.col-4 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 33.33333%; + vertical-align: top; } + .col-4:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-4 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 33.33333%; + vertical-align: top; } + .small-col-4:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-4 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 33.33333%; + vertical-align: top; } + .med-col-4:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-4 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 33.33333%; + vertical-align: top; } + .large-col-4:last-child { + padding-right: 0; } } + +.col-5 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 41.66667%; + vertical-align: top; } + .col-5:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-5 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 41.66667%; + vertical-align: top; } + .small-col-5:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-5 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 41.66667%; + vertical-align: top; } + .med-col-5:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-5 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 41.66667%; + vertical-align: top; } + .large-col-5:last-child { + padding-right: 0; } } + +.col-6 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 50%; + vertical-align: top; } + .col-6:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-6 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 50%; + vertical-align: top; } + .small-col-6:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-6 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 50%; + vertical-align: top; } + .med-col-6:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-6 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 50%; + vertical-align: top; } + .large-col-6:last-child { + padding-right: 0; } } + +.col-7 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 58.33333%; + vertical-align: top; } + .col-7:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-7 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 58.33333%; + vertical-align: top; } + .small-col-7:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-7 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 58.33333%; + vertical-align: top; } + .med-col-7:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-7 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 58.33333%; + vertical-align: top; } + .large-col-7:last-child { + padding-right: 0; } } + +.col-8 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 66.66667%; + vertical-align: top; } + .col-8:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-8 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 66.66667%; + vertical-align: top; } + .small-col-8:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-8 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 66.66667%; + vertical-align: top; } + .med-col-8:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-8 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 66.66667%; + vertical-align: top; } + .large-col-8:last-child { + padding-right: 0; } } + +.col-9 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 75%; + vertical-align: top; } + .col-9:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-9 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 75%; + vertical-align: top; } + .small-col-9:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-9 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 75%; + vertical-align: top; } + .med-col-9:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-9 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 75%; + vertical-align: top; } + .large-col-9:last-child { + padding-right: 0; } } + +.col-10 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 83.33333%; + vertical-align: top; } + .col-10:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-10 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 83.33333%; + vertical-align: top; } + .small-col-10:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-10 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 83.33333%; + vertical-align: top; } + .med-col-10:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-10 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 83.33333%; + vertical-align: top; } + .large-col-10:last-child { + padding-right: 0; } } + +.col-11 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 91.66667%; + vertical-align: top; } + .col-11:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-11 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 91.66667%; + vertical-align: top; } + .small-col-11:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-11 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 91.66667%; + vertical-align: top; } + .med-col-11:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-11 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 91.66667%; + vertical-align: top; } + .large-col-11:last-child { + padding-right: 0; } } + +.col-12 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 100%; + vertical-align: top; } + .col-12:last-child { + padding-right: 0; } + +@media only screen and (max-width: 768px) { + .small-col-12 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 100%; + vertical-align: top; } + .small-col-12:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 769px) and (max-width: 1080px) { + .med-col-12 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 100%; + vertical-align: top; } + .med-col-12:last-child { + padding-right: 0; } } + +@media only screen and (min-width: 1081px) { + .large-col-12 { + padding-left: 0em; + padding-right: 1em; + margin-left: 0%; + width: 100%; + vertical-align: top; } + .large-col-12:last-child { + padding-right: 0; } } + +.col-1-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 8.33333%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-1:last-child { + padding-right: 0; } + +.col-1-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 16.66667%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-2:last-child { + padding-right: 0; } + +.col-1-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 25%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-3:last-child { + padding-right: 0; } + +.col-1-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 33.33333%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-4:last-child { + padding-right: 0; } + +.col-1-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 41.66667%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-5:last-child { + padding-right: 0; } + +.col-1-offset-6 { + padding-left: 6em; + padding-right: 1em; + margin-left: 50%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-6:last-child { + padding-right: 0; } + +.col-1-offset-7 { + padding-left: 7em; + padding-right: 1em; + margin-left: 58.33333%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-7:last-child { + padding-right: 0; } + +.col-1-offset-8 { + padding-left: 8em; + padding-right: 1em; + margin-left: 66.66667%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-8:last-child { + padding-right: 0; } + +.col-1-offset-9 { + padding-left: 9em; + padding-right: 1em; + margin-left: 75%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-9:last-child { + padding-right: 0; } + +.col-1-offset-10 { + padding-left: 10em; + padding-right: 1em; + margin-left: 83.33333%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-10:last-child { + padding-right: 0; } + +.col-1-offset-11 { + padding-left: 11em; + padding-right: 1em; + margin-left: 91.66667%; + width: 8.33333%; + vertical-align: top; } + .col-1-offset-11:last-child { + padding-right: 0; } + +.col-2-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 16.66667%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-1:last-child { + padding-right: 0; } + +.col-2-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 33.33333%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-2:last-child { + padding-right: 0; } + +.col-2-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 50%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-3:last-child { + padding-right: 0; } + +.col-2-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 66.66667%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-4:last-child { + padding-right: 0; } + +.col-2-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 83.33333%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-5:last-child { + padding-right: 0; } + +.col-2-offset-6 { + padding-left: 6em; + padding-right: 1em; + margin-left: 100%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-6:last-child { + padding-right: 0; } + +.col-2-offset-7 { + padding-left: 7em; + padding-right: 1em; + margin-left: 116.66667%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-7:last-child { + padding-right: 0; } + +.col-2-offset-8 { + padding-left: 8em; + padding-right: 1em; + margin-left: 133.33333%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-8:last-child { + padding-right: 0; } + +.col-2-offset-9 { + padding-left: 9em; + padding-right: 1em; + margin-left: 150%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-9:last-child { + padding-right: 0; } + +.col-2-offset-10 { + padding-left: 10em; + padding-right: 1em; + margin-left: 166.66667%; + width: 16.66667%; + vertical-align: top; } + .col-2-offset-10:last-child { + padding-right: 0; } + +.col-3-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 25%; + width: 25%; + vertical-align: top; } + .col-3-offset-1:last-child { + padding-right: 0; } + +.col-3-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 50%; + width: 25%; + vertical-align: top; } + .col-3-offset-2:last-child { + padding-right: 0; } + +.col-3-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 75%; + width: 25%; + vertical-align: top; } + .col-3-offset-3:last-child { + padding-right: 0; } + +.col-3-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 100%; + width: 25%; + vertical-align: top; } + .col-3-offset-4:last-child { + padding-right: 0; } + +.col-3-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 125%; + width: 25%; + vertical-align: top; } + .col-3-offset-5:last-child { + padding-right: 0; } + +.col-3-offset-6 { + padding-left: 6em; + padding-right: 1em; + margin-left: 150%; + width: 25%; + vertical-align: top; } + .col-3-offset-6:last-child { + padding-right: 0; } + +.col-3-offset-7 { + padding-left: 7em; + padding-right: 1em; + margin-left: 175%; + width: 25%; + vertical-align: top; } + .col-3-offset-7:last-child { + padding-right: 0; } + +.col-3-offset-8 { + padding-left: 8em; + padding-right: 1em; + margin-left: 200%; + width: 25%; + vertical-align: top; } + .col-3-offset-8:last-child { + padding-right: 0; } + +.col-3-offset-9 { + padding-left: 9em; + padding-right: 1em; + margin-left: 225%; + width: 25%; + vertical-align: top; } + .col-3-offset-9:last-child { + padding-right: 0; } + +.col-4-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 33.33333%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-1:last-child { + padding-right: 0; } + +.col-4-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 66.66667%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-2:last-child { + padding-right: 0; } + +.col-4-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 100%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-3:last-child { + padding-right: 0; } + +.col-4-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 133.33333%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-4:last-child { + padding-right: 0; } + +.col-4-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 166.66667%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-5:last-child { + padding-right: 0; } + +.col-4-offset-6 { + padding-left: 6em; + padding-right: 1em; + margin-left: 200%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-6:last-child { + padding-right: 0; } + +.col-4-offset-7 { + padding-left: 7em; + padding-right: 1em; + margin-left: 233.33333%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-7:last-child { + padding-right: 0; } + +.col-4-offset-8 { + padding-left: 8em; + padding-right: 1em; + margin-left: 266.66667%; + width: 33.33333%; + vertical-align: top; } + .col-4-offset-8:last-child { + padding-right: 0; } + +.col-5-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 41.66667%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-1:last-child { + padding-right: 0; } + +.col-5-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 83.33333%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-2:last-child { + padding-right: 0; } + +.col-5-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 125%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-3:last-child { + padding-right: 0; } + +.col-5-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 166.66667%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-4:last-child { + padding-right: 0; } + +.col-5-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 208.33333%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-5:last-child { + padding-right: 0; } + +.col-5-offset-6 { + padding-left: 6em; + padding-right: 1em; + margin-left: 250%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-6:last-child { + padding-right: 0; } + +.col-5-offset-7 { + padding-left: 7em; + padding-right: 1em; + margin-left: 291.66667%; + width: 41.66667%; + vertical-align: top; } + .col-5-offset-7:last-child { + padding-right: 0; } + +.col-6-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 50%; + width: 50%; + vertical-align: top; } + .col-6-offset-1:last-child { + padding-right: 0; } + +.col-6-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 100%; + width: 50%; + vertical-align: top; } + .col-6-offset-2:last-child { + padding-right: 0; } + +.col-6-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 150%; + width: 50%; + vertical-align: top; } + .col-6-offset-3:last-child { + padding-right: 0; } + +.col-6-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 200%; + width: 50%; + vertical-align: top; } + .col-6-offset-4:last-child { + padding-right: 0; } + +.col-6-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 250%; + width: 50%; + vertical-align: top; } + .col-6-offset-5:last-child { + padding-right: 0; } + +.col-6-offset-6 { + padding-left: 6em; + padding-right: 1em; + margin-left: 300%; + width: 50%; + vertical-align: top; } + .col-6-offset-6:last-child { + padding-right: 0; } + +.col-7-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 58.33333%; + width: 58.33333%; + vertical-align: top; } + .col-7-offset-1:last-child { + padding-right: 0; } + +.col-7-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 116.66667%; + width: 58.33333%; + vertical-align: top; } + .col-7-offset-2:last-child { + padding-right: 0; } + +.col-7-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 175%; + width: 58.33333%; + vertical-align: top; } + .col-7-offset-3:last-child { + padding-right: 0; } + +.col-7-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 233.33333%; + width: 58.33333%; + vertical-align: top; } + .col-7-offset-4:last-child { + padding-right: 0; } + +.col-7-offset-5 { + padding-left: 5em; + padding-right: 1em; + margin-left: 291.66667%; + width: 58.33333%; + vertical-align: top; } + .col-7-offset-5:last-child { + padding-right: 0; } + +.col-8-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 66.66667%; + width: 66.66667%; + vertical-align: top; } + .col-8-offset-1:last-child { + padding-right: 0; } + +.col-8-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 133.33333%; + width: 66.66667%; + vertical-align: top; } + .col-8-offset-2:last-child { + padding-right: 0; } + +.col-8-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 200%; + width: 66.66667%; + vertical-align: top; } + .col-8-offset-3:last-child { + padding-right: 0; } + +.col-8-offset-4 { + padding-left: 4em; + padding-right: 1em; + margin-left: 266.66667%; + width: 66.66667%; + vertical-align: top; } + .col-8-offset-4:last-child { + padding-right: 0; } + +.col-9-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 75%; + width: 75%; + vertical-align: top; } + .col-9-offset-1:last-child { + padding-right: 0; } + +.col-9-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 150%; + width: 75%; + vertical-align: top; } + .col-9-offset-2:last-child { + padding-right: 0; } + +.col-9-offset-3 { + padding-left: 3em; + padding-right: 1em; + margin-left: 225%; + width: 75%; + vertical-align: top; } + .col-9-offset-3:last-child { + padding-right: 0; } + +.col-10-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 83.33333%; + width: 83.33333%; + vertical-align: top; } + .col-10-offset-1:last-child { + padding-right: 0; } + +.col-10-offset-2 { + padding-left: 2em; + padding-right: 1em; + margin-left: 166.66667%; + width: 83.33333%; + vertical-align: top; } + .col-10-offset-2:last-child { + padding-right: 0; } + +.col-11-offset-1 { + padding-left: 1em; + padding-right: 1em; + margin-left: 91.66667%; + width: 91.66667%; + vertical-align: top; } + .col-11-offset-1:last-child { + padding-right: 0; } + +.col.float-right { + float: right; + padding-right: 0; + padding-left: 1em; } + +body, html { + position: relative; + width: 100%; + height: 100%; + font-family: Georgia, serif; + font-style: normal; + margin: 0; + padding: 0; } + +body.toolbar-horizontal.toolbar-themes.toolbar-no-tabs { + padding-top: 24px !important; } + +header[role="banner"] { + z-index: 2; + position: relative; + padding: 0 1em; } + header[role="banner"] > .wrapper { + position: relative; + padding: 0.5em 0; + border-bottom: 1px solid red; + height: 70px; } + header[role="banner"] > .wrapper > .region { + height: 100%; + position: relative; } + +aside.messages { + border: none; + z-index: 99; + position: absolute; + left: 5%; + top: 100px; + width: 80%; + max-height: 600px; + background-color: rgba(255, 255, 255, 0.8); + padding: 0; + overflow-y: auto; } + +main[role="main"] { + z-index: 1; + position: absolute; + left: 0; + top: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + padding: 7em 2em 9em; + overflow: hidden; + pointer-events: none; + height: 100%; } + main[role="main"] .layout-content { + width: 100%; + height: 100%; + overflow: hidden; } + main[role="main"] .layout-content > * { + pointer-events: auto; } + +body.toolbar-horizontal.toolbar-themes.toolbar-no-tabs main[role="main"] { + padding-top: 8em; } + +footer[role="contentinfo"] { + z-index: 2; + position: fixed; + bottom: 0; + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: 100%; + padding: 0.5em 1em; } + +.os-scroll { + height: 100%; } + +header[role="banner"] { + pointer-events: all; } + +#block-edlptheme-branding { + display: inline-block; } + #block-edlptheme-branding h1 { + margin: 0; + display: inline-block; } + #block-edlptheme-branding h1 a.site-name { + display: block; + width: 290px; + height: 63.8px; + background-image: url(../img/logo.svg); + background-color: white; + background-repeat: no-repeat; + background-size: contain; + white-space: nowrap; + text-indent: 500px; + overflow: hidden; } + +#block-mainnavigation { + float: right; + margin-top: 25px; } + #block-mainnavigation ul { + margin: 0; + padding: 0; + white-space: nowrap; } + #block-mainnavigation ul li { + margin: 0; + padding: 0; + display: inline-block; } + #block-mainnavigation ul li a { + font-size: 0.756em; + color: inherit; + text-decoration: none; + text-transform: uppercase; + margin-left: 1em; } + #block-mainnavigation ul li a:before { + content: ""; + display: inline-block; + width: 0.6em; + height: 0.6em; + border: 1px solid red; + margin-right: 0.3em; } + #block-mainnavigation ul li a.ajax-loading:before { + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; } + +@-webkit-keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + +@keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + #block-mainnavigation ul li a.is-active:before, #block-mainnavigation ul li a.is-active-trail:before, #block-mainnavigation ul li a:hover:before { + background-color: red; } + +.block-language { + float: right; + margin-top: 24px; + margin-left: 2em; } + .block-language ul { + margin: 0; + padding: 0; } + .block-language ul li { + display: inline-block; + vertical-align: middle; + list-style: none; } + .block-language ul li a { + font-size: 0.690em; + color: inherit; + text-decoration: none; + text-transform: capitalize; + margin-left: 0.8em; } + .block-language ul li a:before { + content: ""; + display: inline-block; + width: 0.6em; + height: 0.6em; + border: 1px solid red; + margin-right: 0.3em; } + .block-language ul li.is-active a:before, .block-language ul li:hover a:before { + border-color: red; + background-color: red; } + +#corpus-map { + opacity: 0; } + body[corpus="map-ready"] #corpus-map { + -webkit-transition: opacity 2s ease-out; + transition: opacity 2s ease-out; + opacity: 1; } + +main[role="main"] .row { + opacity: 0; } + main[role="main"] .row .col { + opacity: 1; + -webkit-transition: opacity 0.5s ease-in-out; + transition: opacity 0.5s ease-in-out; } + +body[booted="booted"] main[role="main"] .row { + -webkit-transition: opacity 1s ease-out; + transition: opacity 1s ease-out; + opacity: 1; } + +body.ajax-loading main[role="main"] .row .col:not([theme="edlp_search_search_form"]) { + opacity: 0.2; } + +main[role="main"] .layout-content { + pointer-events: none; } + main[role="main"] .layout-content .row { + pointer-events: none; + height: 100%; + overflow: hidden; } + main[role="main"] .layout-content .row .col { + pointer-events: none; + height: 100%; + position: relative; } + main[role="main"] .layout-content .row .col > .wrapper { + pointer-events: all; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-top: 1px solid red; + border-bottom: 1px solid red; + background-color: rgba(255, 255, 255, 0.95); + padding: 0 0 1em; + max-height: 100%; + overflow-y: auto; } + main[role="main"] .layout-content .row .col > .wrapper > * { + padding: 0 1em; } + main[role="main"] .layout-content .field.text-formatted a.audio-link { + border-bottom: 1px dotted red; } + +main[role="main"] article.node > h2, main[role="main"] h2.title { + font-size: 0.9em; + font-weight: normal; + text-transform: uppercase; } + +main[role="main"] article.node p { + font-size: 0.75em; + font-weight: normal; } + +main[role="main"] img { + max-width: 100%; + height: auto; } + +main[role="main"] ul, main[role="main"] li, main[role="main"] ul.inline li:first-child { + margin: 0; + padding: 0; + list-style: none; } + +main[role="main"] span.close-col-btn { + pointer-events: all; + cursor: pointer; + position: -webkit-sticky; + position: sticky; + top: 0.5em; + padding: 0 !important; + margin: 0.5em; + display: block; + width: 10px; + height: 10px; + float: right; + background-image: url(../img/close.svg); + background-repeat: no-repeat; + background-position: center; + background-size: contain; } + +#audio-player { + position: absolute; + top: 0; + left: 0; + background-color: white; + height: 100%; + min-width: 300px; + z-index: 20; + opacity: 0; + pointer-events: none; + -webkit-transition: opacity 0.7s ease-in-out; + transition: opacity 0.7s ease-in-out; } + #audio-player.visible { + opacity: 1; + pointer-events: all; } + #audio-player > * { + display: inline-block; + vertical-align: middle; + padding: 0; + max-height: 100%; } + #audio-player .btns > * { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 30px; + background-position: center; + background-size: contain; } + #audio-player .btns .play-pause { + background-image: url(../img/audio-player-play.svg); + padding: 0 0.3em; + cursor: pointer; } + #audio-player .btns.is-playing .play-pause { + background-image: url(../img/audio-player-pause.svg); } + #audio-player .btns .previous, #audio-player .btns .next { + opacity: 0.3; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + cursor: auto; } + #audio-player .btns .previous.is-active, #audio-player .btns .next.is-active { + opacity: 1; + cursor: pointer; } + #audio-player .btns .previous { + background-image: url(../img/audio-player-previous.svg); } + #audio-player .btns .next { + background-image: url(../img/audio-player-next.svg); } + #audio-player .time-line-container .time-line { + position: relative; + width: 70px; + height: 1px; + background-color: #000; + overflow: visible; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); } + #audio-player .time-line-container .time-line .loader { + width: 0; + height: 100%; + background-color: red; + top: 0; + left: 0; } + #audio-player .time-line-container .time-line .cursor { + height: 10px; + width: 0; + border-left: 2px solid red; + position: absolute; + left: 0; + top: -5px; } + #audio-player .time > * { + width: 70px; + text-align: right; } + #audio-player .time .current-time { + font-size: 1.4em; + font-weight: 600; } + #audio-player .time .duration { + font-size: 0.75em; + font-weight: 400; } + #audio-player .favoris { + height: 100%; } + #audio-player .cartel { + position: relative; + margin-left: 1em; + background-color: white; + opacity: 1; + -webkit-transition: opacity 0.5s ease-in-out; + transition: opacity 0.5s ease-in-out; + white-space: nowrap; } + #audio-player .cartel.loading { + opacity: 0; } + #audio-player .cartel .actions, #audio-player .cartel .cartels { + display: inline-block; + vertical-align: top; + white-space: normal; + position: relative; } + #audio-player .cartel .actions { + width: 1.5em; } + #audio-player .cartel .cartels .first-cartel .entrees { + white-space: nowrap; + font-size: 0.5em; + line-height: 0; + letter-spacing: 0px; } + #audio-player .cartel .cartels .first-cartel .entrees span { + display: inline-block; + width: 6px; + height: 6px; + background-color: black; + margin-right: 2px; } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='134'] { + background-color: var(--e-col-134); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='121'] { + background-color: var(--e-col-121); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='125'] { + background-color: var(--e-col-125); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='119'] { + background-color: var(--e-col-119); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='132'] { + background-color: var(--e-col-132); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='122'] { + background-color: var(--e-col-122); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='129'] { + background-color: var(--e-col-129); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='120'] { + background-color: var(--e-col-120); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='130'] { + background-color: var(--e-col-130); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='118'] { + background-color: var(--e-col-118); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='127'] { + background-color: var(--e-col-127); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='133'] { + background-color: var(--e-col-133); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='128'] { + background-color: var(--e-col-128); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='124'] { + background-color: var(--e-col-124); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='116'] { + background-color: var(--e-col-116); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='117'] { + background-color: var(--e-col-117); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='131'] { + background-color: var(--e-col-131); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='126'] { + background-color: var(--e-col-126); } + #audio-player .cartel .cartels .first-cartel .entrees span[tid='123'] { + background-color: var(--e-col-123); } + #audio-player .cartel .cartels .first-cartel h2.node-title { + margin: 0.2em 0 0; + font-size: 0.9em; + font-weight: 600; } + #audio-player .cartel .cartels .first-cartel p { + margin: 0; + font-size: 0.756em; } + #audio-player .cartel .cartels .second-cartel { + position: absolute; + top: 0; + left: 0; + background-color: white; + height: 100%; + min-width: 100%; + opacity: 1; + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; + white-space: nowrap; } + #audio-player .cartel .cartels .second-cartel > * { + display: inline-block; + vertical-align: top; + white-space: normal; } + #audio-player .cartel .cartels .second-cartel .col-left a { + display: block; + font-size: 0.82em; + font-weight: 600; } + #audio-player .cartel .cartels .second-cartel .col-right { + border-left: 1px solid #1A1A1A; + margin-left: 5px; + padding-left: 5px; } + #audio-player .cartel .cartels .second-cartel .col-right h3 { + font-size: 0.82em; + margin: 0; } + #audio-player .cartel .cartels .second-cartel .col-right p { + font-size: 0.756em; + margin: 0; } + #audio-player .cartel .cartels .second-cartel .col-right p span.cat { + font-weight: 600; } + #audio-player .cartel:hover .second-cartel { + opacity: 1; } + #audio-player .cartel article:not(.has-second-cartel) .second-cartel { + display: none; } + +.chutier-icon { + z-index: 1; + display: block; + position: relative; + width: 1em; + height: 1em; + overflow: hidden; + text-indent: 50em; + background-position: center; + background-repeat: no-repeat; + background-size: contain; + background-image: url(../img/favori-off.svg); + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; } + .chutier-icon[action="remove"] { + background-image: url(../img/favori-on.svg); } + .chutier-icon.ajax-loading { + opacity: 0.2; } + .chutier-icon.not-logedin { + overflow: visible; } + .chutier-icon .popup { + display: none; + position: absolute; + top: 0; + left: 0; + width: 300px; + height: auto; + min-height: 100px; } + .chutier-icon .popup .inner { + background-color: rgba(255, 255, 255, 0.9); + border: 1px solid red; + text-indent: 0; + padding: 0.5em; + margin: 1.2em 0 0 1.2em; } + .chutier-icon .popup .inner p { + font-size: 0.756em; + margin: 0; } + .chutier-icon .popup .inner p:not(:last-of-type) { + margin: 0 0 0.4em 0; } + .chutier-icon:hover .popup { + display: block; } + +.row .col .studio-ui-wrapper { + height: 100%; } + +#studio-ui { + height: 100%; } + #studio-ui .chutier_ui { + height: 50%; + border-bottom: 1px solid red; + position: relative; } + #studio-ui .chutier_ui > h2 { + z-index: 10; + position: absolute; + width: calc(100% - 20px); + margin: 0; + padding: 0.5em 0; + font-size: 1em; + font-weight: 500; + text-transform: uppercase; + background-color: white; } + #studio-ui .chutier_ui .documents { + padding-top: 35px; + height: calc(100% - 35px); + overflow-y: auto; + overflow-x: hidden; } + #studio-ui .chutier_ui .documents ul, #studio-ui .chutier_ui .documents li { + margin: 0; + padding: 0; + line-height: 1.2; } + #studio-ui .chutier_ui .documents li { + display: inline-block; + vertical-align: top; + width: 49%; + margin-bottom: 0.5em; + white-space: nowrap; } + #studio-ui .chutier_ui .documents li > div { + display: inline-block; + padding-right: 2em; } + #studio-ui .chutier_ui .documents li > div.ui-draggable { + cursor: -webkit-grab; + cursor: grab; } + #studio-ui .chutier_ui .documents li .entrees { + white-space: nowrap; + font-size: 0.5em; + line-height: 0; + letter-spacing: 0px; } + #studio-ui .chutier_ui .documents li .entrees span { + display: inline-block; + width: 6px; + height: 6px; + background-color: black; + margin-right: 2px; } + #studio-ui .chutier_ui .documents li .entrees span[tid='134'] { + background-color: var(--e-col-134); } + #studio-ui .chutier_ui .documents li .entrees span[tid='121'] { + background-color: var(--e-col-121); } + #studio-ui .chutier_ui .documents li .entrees span[tid='125'] { + background-color: var(--e-col-125); } + #studio-ui .chutier_ui .documents li .entrees span[tid='119'] { + background-color: var(--e-col-119); } + #studio-ui .chutier_ui .documents li .entrees span[tid='132'] { + background-color: var(--e-col-132); } + #studio-ui .chutier_ui .documents li .entrees span[tid='122'] { + background-color: var(--e-col-122); } + #studio-ui .chutier_ui .documents li .entrees span[tid='129'] { + background-color: var(--e-col-129); } + #studio-ui .chutier_ui .documents li .entrees span[tid='120'] { + background-color: var(--e-col-120); } + #studio-ui .chutier_ui .documents li .entrees span[tid='130'] { + background-color: var(--e-col-130); } + #studio-ui .chutier_ui .documents li .entrees span[tid='118'] { + background-color: var(--e-col-118); } + #studio-ui .chutier_ui .documents li .entrees span[tid='127'] { + background-color: var(--e-col-127); } + #studio-ui .chutier_ui .documents li .entrees span[tid='133'] { + background-color: var(--e-col-133); } + #studio-ui .chutier_ui .documents li .entrees span[tid='128'] { + background-color: var(--e-col-128); } + #studio-ui .chutier_ui .documents li .entrees span[tid='124'] { + background-color: var(--e-col-124); } + #studio-ui .chutier_ui .documents li .entrees span[tid='116'] { + background-color: var(--e-col-116); } + #studio-ui .chutier_ui .documents li .entrees span[tid='117'] { + background-color: var(--e-col-117); } + #studio-ui .chutier_ui .documents li .entrees span[tid='131'] { + background-color: var(--e-col-131); } + #studio-ui .chutier_ui .documents li .entrees span[tid='126'] { + background-color: var(--e-col-126); } + #studio-ui .chutier_ui .documents li .entrees span[tid='123'] { + background-color: var(--e-col-123); } + #studio-ui .chutier_ui .documents li a.audio-link { + text-transform: capitalize; + font-size: 0.756em; + margin-right: 0.5em; + white-space: normal; } + #studio-ui .chutier_ui .documents li .chutier-icon { + display: inline-block; + width: 0.7em; + height: 0.7em; + opacity: 0.8; } + #studio-ui .composition_ui { + height: 50%; } + #studio-ui .composition_ui > h2 { + z-index: 10; + position: absolute; + width: calc(100% - 20px); + margin: 0; + padding: 0.5em 0; + font-size: 1em; + font-weight: 500; + text-transform: uppercase; + background-color: white; } + #studio-ui .composition_ui > .wrapper { + padding-top: 35px; + height: calc(100% - 35px); + overflow: hidden; + white-space: nowrap; } + #studio-ui .composition_ui > .wrapper section.compositions-list, #studio-ui .composition_ui > .wrapper section.composer { + display: inline-block; + vertical-align: bottom; + height: 100%; } + #studio-ui .composition_ui > .wrapper .compositions-list { + width: 30%; + height: 100%; + overflow-y: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-right: 0.5em; + border-right: 1px solid #aaa; } + #studio-ui .composition_ui > .wrapper .compositions-list li { + opacity: 1; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + #studio-ui .composition_ui > .wrapper .compositions-list li:hover a.delete-composition-link { + opacity: 1; } + #studio-ui .composition_ui > .wrapper .compositions-list li.ajax-loading { + opacity: 0.4; } + #studio-ui .composition_ui > .wrapper .compositions-list a { + font-size: 0.756em; } + #studio-ui .composition_ui > .wrapper .compositions-list a.composition-link { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: calc(100% - 21px); } + #studio-ui .composition_ui > .wrapper .compositions-list a.composition-link:before { + content: ""; + width: 7px; + height: 7px; + border: 1px solid black; + background-color: white; + display: inline-block; + vertical-align: middle; + margin-right: 5px; } + #studio-ui .composition_ui > .wrapper .compositions-list a.composition-link.ajax-loading:before { + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; } + +@keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + #studio-ui .composition_ui > .wrapper .compositions-list a.composition-link.is-active:before { + background-color: black; } + #studio-ui .composition_ui > .wrapper .compositions-list a.delete-composition-link { + display: inline-block; + vertical-align: middle; + width: 7px; + height: 7px; + margin-left: 5px; + text-indent: 300px; + overflow: hidden; + background-image: url("../img/delete.svg"); + background-repeat: no-repeat; + background-size: contain; + opacity: 0; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + #studio-ui .composition_ui > .wrapper .compositions-list a.new-composition-link { + display: inline-block; + vertical-align: top; + overflow: hidden; + margin-top: 0.4em; + height: 1em; + -webkit-transition: height 0.2s ease-in-out; + transition: height 0.2s ease-in-out; } + #studio-ui .composition_ui > .wrapper .compositions-list a.new-composition-link:before { + content: "+"; + margin-right: 5px; } + #studio-ui .composition_ui > .wrapper .compositions-list a.new-composition-link.folded { + height: 0; } + #studio-ui .composition_ui > .wrapper .compositions-list .new-compo-form { + opacity: 1; + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; } + #studio-ui .composition_ui > .wrapper .compositions-list .new-compo-form input[type="text"] { + font-size: 0.756em; + padding: 0 0.5em; + width: calc(100% - 50px); + height: 1.7em; + border: none; + border-top: 1px dotted red; + border-bottom: 1px dotted red; } + #studio-ui .composition_ui > .wrapper .compositions-list .new-compo-form button { + background: none; + border: none; + font-size: 1em; + line-height: 1; + font-weight: bold; } + #studio-ui .composition_ui > .wrapper .compositions-list .new-compo-form.ajax-loading { + opacity: 0.4; } + #studio-ui .composition_ui > .wrapper .composer { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-left: 0.5em; + width: 69%; + opacity: 1; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + #studio-ui .composition_ui > .wrapper .composer.ajax-loading { + opacity: 0.3; } + #studio-ui .composition_ui > .wrapper .composer > * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + #studio-ui .composition_ui > .wrapper .composer > header { + height: 25px; + padding-bottom: 5px; + font-size: 0.756em; } + #studio-ui .composition_ui > .wrapper .composer > .composition { + position: relative; + height: calc(100% - 60px); + padding-bottom: 1em; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 100%; + width: 100%; + padding: 0 0.5em; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents:before, #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents:after { + content: ""; + width: calc(100% - 2px); + position: absolute; + bottom: 0; + left: 0; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents:before { + border-top: 1px solid #A1A1A1; + height: 14.5px; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents:after { + border-left: 1px solid #A1A1A1; + border-right: 1px solid #A1A1A1; + height: 29px; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item { + display: inline-block; + position: relative; + white-space: nowrap; + pointer-events: none; + width: 25px; + height: 100%; + opacity: 1; + -webkit-transition: opacity 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item.ui-draggable-dragging { + height: 100px; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item.ready-to-remove { + opacity: 0.3; + cursor: crosshair; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item > * { + pointer-events: all; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item article { + position: absolute; + bottom: 0; + -webkit-transform-origin: left top; + transform-origin: left top; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item article h2 { + margin: 0; + text-transform: none; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item article h2 a { + white-space: nowrap !important; + font-size: 0.756em; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item article h2 a:before { + content: ""; + display: inline-block; + vertical-align: middle; + width: 12px; + height: 12px; + border: 1px solid white; + background-color: white; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item .handler { + z-index: 99; + cursor: -webkit-grab; + cursor: grab; + position: absolute; + bottom: 0; + left: 1px; + display: block; + width: 12px; + height: 12px; + -webkit-transform-origin: left top; + transform-origin: left top; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); + border: 1px solid red; + background-color: white; } + #studio-ui .composition_ui > .wrapper .composer > .composition .field--name-documents .field__item.is-active .handler { + background-color: red; } + #studio-ui .composition_ui > .wrapper .composer > .composition .remove-drop-zone { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 45%; + z-index: 150; } + #studio-ui .composition_ui > .wrapper .composer > .actions { + padding-top: 5px; + height: 25px; } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls > * { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 30px; + background-position: center; + background-size: contain; } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .play-pause { + background-image: url(../img/audio-player-play.svg); + padding: 0 0.3em; + cursor: pointer; } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls.is-playing .play-pause { + background-image: url(../img/audio-player-pause.svg); } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .previous, #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .next { + opacity: 0.3; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + cursor: auto; } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .previous.is-active, #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .next.is-active { + opacity: 1; + cursor: pointer; } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .previous { + background-image: url(../img/audio-player-previous.svg); } + #studio-ui .composition_ui > .wrapper .composer > .actions .compo-player-controls .next { + background-image: url(../img/audio-player-next.svg); } + #studio-ui .field__item.ui-draggable-dragging { + display: inline-block; + position: relative; + white-space: nowrap; + pointer-events: none; + width: 25px; + height: 100%; + opacity: 1; + -webkit-transition: opacity 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out; } + #studio-ui .field__item.ui-draggable-dragging.ui-draggable-dragging { + height: 100px; } + #studio-ui .field__item.ui-draggable-dragging.ready-to-remove { + opacity: 0.3; + cursor: crosshair; } + #studio-ui .field__item.ui-draggable-dragging > * { + pointer-events: all; } + #studio-ui .field__item.ui-draggable-dragging article { + position: absolute; + bottom: 0; + -webkit-transform-origin: left top; + transform-origin: left top; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); } + #studio-ui .field__item.ui-draggable-dragging article h2 { + margin: 0; + text-transform: none; } + #studio-ui .field__item.ui-draggable-dragging article h2 a { + white-space: nowrap !important; + font-size: 0.756em; } + #studio-ui .field__item.ui-draggable-dragging article h2 a:before { + content: ""; + display: inline-block; + vertical-align: middle; + width: 12px; + height: 12px; + border: 1px solid white; + background-color: white; } + #studio-ui .field__item.ui-draggable-dragging .handler { + z-index: 99; + cursor: -webkit-grab; + cursor: grab; + position: absolute; + bottom: 0; + left: 1px; + display: block; + width: 12px; + height: 12px; + -webkit-transform-origin: left top; + transform-origin: left top; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); + border: 1px solid red; + background-color: white; } + #studio-ui .field__item.ui-draggable-dragging.is-active .handler { + background-color: red; } + +.col[theme="edlp_search_search_form"], .col[theme="edlp_search_search_form"] > .wrapper { + position: relative; + height: 100%; } + +#edlp-search-form { + height: 100%; } + #edlp-search-form .fieldgroup { + border-bottom: 1px solid red; + margin-top: 1em; + margin-bottom: 0em; } + #edlp-search-form .fieldgroup legend { + font-size: 0.9em; + margin: 0; + font-weight: 500; } + #edlp-search-form .fieldgroup .fieldset-wrapper { + padding-bottom: 1em; } + #edlp-search-form .fieldgroup .form-item { + margin: 0; } + #edlp-search-form input[type="text"], #edlp-search-form input[type="search"] { + font-size: 0.8em; + padding: 0.2em; + margin: 0; + border: 1px solid #aaa; + border-radius: 3px; + width: 90%; } + #edlp-search-form #edit-entries .form-item label, #edlp-search-form #edit-entries .form-item input { + display: inline-block; + vertical-align: middle; } + #edlp-search-form #edit-entries .form-item label { + font-size: 0.756em; } + #edlp-search-form #edit-entries .form-item input[type="checkbox"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 10px; + height: 10px; + border: 1px double black; + background-color: white; } + #edlp-search-form #edit-entries .form-item input[type="checkbox"]:checked { + background-color: black; } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='134'] { + border-color: var(--e-col-134); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='134']:checked { + background-color: var(--e-col-134); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='121'] { + border-color: var(--e-col-121); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='121']:checked { + background-color: var(--e-col-121); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='125'] { + border-color: var(--e-col-125); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='125']:checked { + background-color: var(--e-col-125); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='119'] { + border-color: var(--e-col-119); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='119']:checked { + background-color: var(--e-col-119); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='132'] { + border-color: var(--e-col-132); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='132']:checked { + background-color: var(--e-col-132); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='122'] { + border-color: var(--e-col-122); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='122']:checked { + background-color: var(--e-col-122); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='129'] { + border-color: var(--e-col-129); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='129']:checked { + background-color: var(--e-col-129); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='120'] { + border-color: var(--e-col-120); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='120']:checked { + background-color: var(--e-col-120); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='130'] { + border-color: var(--e-col-130); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='130']:checked { + background-color: var(--e-col-130); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='118'] { + border-color: var(--e-col-118); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='118']:checked { + background-color: var(--e-col-118); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='127'] { + border-color: var(--e-col-127); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='127']:checked { + background-color: var(--e-col-127); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='133'] { + border-color: var(--e-col-133); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='133']:checked { + background-color: var(--e-col-133); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='128'] { + border-color: var(--e-col-128); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='128']:checked { + background-color: var(--e-col-128); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='124'] { + border-color: var(--e-col-124); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='124']:checked { + background-color: var(--e-col-124); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='116'] { + border-color: var(--e-col-116); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='116']:checked { + background-color: var(--e-col-116); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='117'] { + border-color: var(--e-col-117); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='117']:checked { + background-color: var(--e-col-117); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='131'] { + border-color: var(--e-col-131); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='131']:checked { + background-color: var(--e-col-131); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='126'] { + border-color: var(--e-col-126); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='126']:checked { + background-color: var(--e-col-126); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='123'] { + border-color: var(--e-col-123); } + #edlp-search-form #edit-entries .form-item input[type="checkbox"][value='123']:checked { + background-color: var(--e-col-123); } + #edlp-search-form input[type="submit"] { + font-size: 0.756em; + padding: 0.1em; + margin: 1em 0 0 0; + float: right; + opacity: 1; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + #edlp-search-form.ajax-loading input[type="submit"] { + opacity: 0.2; + pointer-events: none; } + +.col[theme="edlp_search_results"] { + opacity: 1; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + .col[theme="edlp_search_results"].ajax-loading { + opacity: 0.2; } + .col[theme="edlp_search_results"] article .entrees { + white-space: nowrap; + font-size: 0.5em; + line-height: 0; + letter-spacing: 0px; } + .col[theme="edlp_search_results"] article .entrees span { + display: inline-block; + width: 6px; + height: 6px; + background-color: black; + margin-right: 2px; } + .col[theme="edlp_search_results"] article .entrees span[tid='134'] { + background-color: var(--e-col-134); } + .col[theme="edlp_search_results"] article .entrees span[tid='121'] { + background-color: var(--e-col-121); } + .col[theme="edlp_search_results"] article .entrees span[tid='125'] { + background-color: var(--e-col-125); } + .col[theme="edlp_search_results"] article .entrees span[tid='119'] { + background-color: var(--e-col-119); } + .col[theme="edlp_search_results"] article .entrees span[tid='132'] { + background-color: var(--e-col-132); } + .col[theme="edlp_search_results"] article .entrees span[tid='122'] { + background-color: var(--e-col-122); } + .col[theme="edlp_search_results"] article .entrees span[tid='129'] { + background-color: var(--e-col-129); } + .col[theme="edlp_search_results"] article .entrees span[tid='120'] { + background-color: var(--e-col-120); } + .col[theme="edlp_search_results"] article .entrees span[tid='130'] { + background-color: var(--e-col-130); } + .col[theme="edlp_search_results"] article .entrees span[tid='118'] { + background-color: var(--e-col-118); } + .col[theme="edlp_search_results"] article .entrees span[tid='127'] { + background-color: var(--e-col-127); } + .col[theme="edlp_search_results"] article .entrees span[tid='133'] { + background-color: var(--e-col-133); } + .col[theme="edlp_search_results"] article .entrees span[tid='128'] { + background-color: var(--e-col-128); } + .col[theme="edlp_search_results"] article .entrees span[tid='124'] { + background-color: var(--e-col-124); } + .col[theme="edlp_search_results"] article .entrees span[tid='116'] { + background-color: var(--e-col-116); } + .col[theme="edlp_search_results"] article .entrees span[tid='117'] { + background-color: var(--e-col-117); } + .col[theme="edlp_search_results"] article .entrees span[tid='131'] { + background-color: var(--e-col-131); } + .col[theme="edlp_search_results"] article .entrees span[tid='126'] { + background-color: var(--e-col-126); } + .col[theme="edlp_search_results"] article .entrees span[tid='123'] { + background-color: var(--e-col-123); } + .col[theme="edlp_search_results"] article h2.node-title { + margin: 0 0 0.3em 0; + font-size: 0.8em; + font-weight: 500; + text-transform: none; } + +body.path-agenda main .col > .wrapper { + height: 100%; } + +#agenda { + position: relative; + white-space: nowrap; + height: 100%; } + #agenda div.column { + white-space: normal; + display: inline-block; + vertical-align: top; + height: 100%; } + #agenda div.next-event { + width: 65%; } + #agenda div.future-past-events { + width: 33%; } + #agenda ul, #agenda li { + margin: 0; + padding: 0; + list-style: none; } + #agenda article.node--type-evenement h2 { + font-size: 0.9em; + font-weight: normal; + text-transform: uppercase; } + +body.path-frontpage .layout-content .row, body.path-productions .layout-content .row { + white-space: normal; + min-height: 100%; } + body.path-frontpage .layout-content .row .col, body.path-productions .layout-content .row .col { + height: auto; } + body.path-frontpage .layout-content .row .col.col-2:last-child, body.path-productions .layout-content .row .col.col-2:last-child { + padding-left: 0em; + padding-right: 1em; } + body.path-frontpage .layout-content .row .col > .wrapper, body.path-productions .layout-content .row .col > .wrapper { + margin-bottom: 1em; + padding: 0; } + body.path-frontpage .layout-content .row .col > .wrapper > *, body.path-productions .layout-content .row .col > .wrapper > * { + padding: 0; } + body.path-frontpage .layout-content .row .col > .wrapper article.node .field--name-field-visuel a, body.path-frontpage .layout-content .row .col > .wrapper article.node .field--name-field-visuel img, body.path-productions .layout-content .row .col > .wrapper article.node .field--name-field-visuel a, body.path-productions .layout-content .row .col > .wrapper article.node .field--name-field-visuel img { + display: block; + width: 100%; + height: auto; } + body.path-frontpage .layout-content .row .col > .wrapper article.node header, body.path-productions .layout-content .row .col > .wrapper article.node header { + background-color: rgba(255, 255, 255, 0.95); + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + padding: 0.5em 1em; } + body.path-frontpage .layout-content .row .col > .wrapper article.node header h2.node-title, body.path-productions .layout-content .row .col > .wrapper article.node header h2.node-title { + margin: 0; + font-size: 0.8em; + text-transform: lowercase; } + body.path-frontpage .layout-content .row .col > .wrapper article.node.node--view-mode-image-2-columns header, body.path-productions .layout-content .row .col > .wrapper article.node.node--view-mode-image-2-columns header { + position: absolute; + bottom: 0; + left: 0; } + body.path-frontpage .layout-content .row .col > .wrapper article.node.node--view-mode-image-2-columns header h2.node-title, body.path-productions .layout-content .row .col > .wrapper article.node.node--view-mode-image-2-columns header h2.node-title { + font-size: 1.2em; + font-weight: 500; } + body.path-frontpage .layout-content .row .col > .wrapper article.node.node--view-mode-image-1-columns h2.node-title, body.path-productions .layout-content .row .col > .wrapper article.node.node--view-mode-image-1-columns h2.node-title { + font-size: 1em; + font-weight: 500; } + body.path-frontpage .layout-content .row .col > .wrapper article.node.node--view-mode-text-1-column, body.path-productions .layout-content .row .col > .wrapper article.node.node--view-mode-text-1-column { + padding: 0 1em; } + +footer { + position: relative; + pointer-events: none; } + footer > .wrapper { + white-space: nowrap; } + footer > .wrapper > .region { + display: inline-block; + vertical-align: baseline; + white-space: normal; } + footer > .wrapper > .region > * { + display: inline-block; + vertical-align: bottom; } + footer > .wrapper .region-footer-left { + width: 12%; + text-align: left; } + footer > .wrapper .region-footer-center { + width: 72%; + overflow: hidden; + text-align: center; } + footer > .wrapper .region-footer-right { + min-width: 12%; + text-align: right; } + footer #block-footer { + display: inline-block; + margin-bottom: 1em; } + footer #block-footer ul { + margin: 0; + padding: 0; + white-space: nowrap; } + footer #block-footer ul li { + pointer-events: all; + display: inline-block; } + footer #block-footer ul li:first-of-type { + margin-left: 1em; } + footer #block-footer ul li a { + font-size: 0.756em; } + footer #block-footer ul li a:before { + content: ""; + display: inline-block; + width: 7px; + height: 7px; + border: 1px solid black; + margin-right: 0.5em; } + footer #block-footer ul li a:hover:before, footer #block-footer ul li a.is-active:before { + background-color: black; } + footer #block-footer ul li a.ajax-loading:before { + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; } + +@keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + footer nav#block-productions.block-menu { + display: inline-block; } + footer nav#block-productions.block-menu ul { + margin: 0; + padding: 0; } + footer nav#block-productions.block-menu ul li { + pointer-events: all; + display: inline-block; + position: relative; + list-style: none; + margin: 0 1.5em 0 0; + padding: 0; } + footer nav#block-productions.block-menu ul li a { + position: absolute; + bottom: 0; + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); + color: #000; + text-decoration: none; + text-transform: uppercase; + font-size: 0.756em; + white-space: nowrap; } + footer nav#block-productions.block-menu ul li:first-of-type { + margin-left: 1em; } + footer nav#block-productions.block-menu ul li a:before { + content: ""; + display: inline-block; + width: 7px; + height: 7px; + border: 1px solid black; + margin-right: 0.5em; } + footer nav#block-productions.block-menu ul li a:hover:before, footer nav#block-productions.block-menu ul li a.is-active:before { + background-color: black; } + footer nav#block-productions.block-menu ul li a.ajax-loading:before { + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; } + +@keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + footer nav#block-productions.block-menu { + position: relative; + pointer-events: none; + display: none; } + body.path-productions footer nav#block-productions.block-menu, body.entity-type-node.bundle-page footer nav#block-productions.block-menu { + display: inline-block; } + footer nav#block-productions.block-menu ul { + margin-left: -3em; + white-space: nowrap; } + footer nav#block-productions.block-menu ul li { + height: 200px; } + footer nav#block-productions.block-menu ul li a { + pointer-events: all; + background-color: #fff; + padding-right: 0.4em; } + footer nav#block-productions.block-menu ul li a:before { + content: ""; + display: inline-block; + width: 7px; + height: 7px; + border: 1px solid red; + margin-right: 0.5em; } + footer nav#block-productions.block-menu ul li a:hover:before, footer nav#block-productions.block-menu ul li a.is-active:before, footer nav#block-productions.block-menu ul li a.is-active-trail:before { + background-color: red; } + footer nav#block-productions.block-menu ul li a.ajax-loading:before { + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; } + +@keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + footer .block-block-edlp-entrees { + pointer-events: none; + display: inline-block; } + body.path-productions footer .block-block-edlp-entrees, + body.entity-type-node.bundle-page footer .block-block-edlp-entrees, + body.path-agenda footer .block-block-edlp-entrees { + display: none; } + footer .block-block-edlp-entrees ul { + margin: 0; + white-space: nowrap; } + footer .block-block-edlp-entrees ul li { + display: inline-block; + position: relative; + list-style: none; + margin: 0 1.5em 0 0; + padding: 0; + margin: 0; + white-space: nowrap; + pointer-events: none; } + footer .block-block-edlp-entrees ul li a { + position: absolute; + bottom: 0; + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotateZ(-45deg); + transform: rotateZ(-45deg); + color: #000; + text-decoration: none; + text-transform: uppercase; + font-size: 0.756em; + white-space: nowrap; } + footer .block-block-edlp-entrees ul li span.oblique-wrapper { + height: 120px; + display: inline-block; + vertical-align: bottom; + position: relative; + width: 1.5em; } + footer .block-block-edlp-entrees ul li a.term-link, footer .block-block-edlp-entrees ul li a.articles-link { + pointer-events: all; + background-color: #fff; + padding-right: 0.4em; } + footer .block-block-edlp-entrees ul li a.term-link:before, footer .block-block-edlp-entrees ul li a.articles-link:before { + content: ""; + display: inline-block; + width: 7px; + height: 7px; + border: 1px solid #000; + background-color: #000; + margin-right: 0.5em; + -webkit-transition: background-color 0.1s ease-in-out; + transition: background-color 0.1s ease-in-out; } + footer .block-block-edlp-entrees ul li a.term-link.articles-link, footer .block-block-edlp-entrees ul li a.articles-link.articles-link { + margin-left: 4em; + text-transform: capitalize; } + footer .block-block-edlp-entrees ul li .entree-content { + display: inline-block; + width: 0; + overflow: hidden; + opacity: 0; + -webkit-transition: all 300ms ease-in-out; + transition: all 300ms ease-in-out; + -webkit-transition-property: width,opacity; + transition-property: width,opacity; } + footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper:first-of-type { + margin-left: 0.5em; } + footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a { + text-transform: none; + pointer-events: auto; } + footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a:before { + content: ""; + display: inline-block; + width: 5px; + height: 5px; + border: 1px solid #000; + margin-right: 0.5em; } + footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a.ajax-loading:before { + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; } + +@keyframes rotation { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + footer .block-block-edlp-entrees ul li .entree-content .term-description { + display: inline-block; + margin-left: 1.5em; + text-align: left; + width: 250px; + word-wrap: break-word; + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + white-space: normal; + background-color: rgba(255, 255, 255, 0.95); + padding: 0.5em; + padding-bottom: 0; } + footer .block-block-edlp-entrees ul li .entree-content .term-description p { + font-size: 0.65em; + margin: 0; } + footer .block-block-edlp-entrees ul li[tid='134'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='134'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-134); + background-color: var(--e-col-134); } + footer .block-block-edlp-entrees ul li[tid='121'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='121'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-121); + background-color: var(--e-col-121); } + footer .block-block-edlp-entrees ul li[tid='125'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='125'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-125); + background-color: var(--e-col-125); } + footer .block-block-edlp-entrees ul li[tid='119'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='119'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-119); + background-color: var(--e-col-119); } + footer .block-block-edlp-entrees ul li[tid='132'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='132'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-132); + background-color: var(--e-col-132); } + footer .block-block-edlp-entrees ul li[tid='122'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='122'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-122); + background-color: var(--e-col-122); } + footer .block-block-edlp-entrees ul li[tid='129'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='129'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-129); + background-color: var(--e-col-129); } + footer .block-block-edlp-entrees ul li[tid='120'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='120'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-120); + background-color: var(--e-col-120); } + footer .block-block-edlp-entrees ul li[tid='130'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='130'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-130); + background-color: var(--e-col-130); } + footer .block-block-edlp-entrees ul li[tid='118'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='118'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-118); + background-color: var(--e-col-118); } + footer .block-block-edlp-entrees ul li[tid='127'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='127'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-127); + background-color: var(--e-col-127); } + footer .block-block-edlp-entrees ul li[tid='133'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='133'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-133); + background-color: var(--e-col-133); } + footer .block-block-edlp-entrees ul li[tid='128'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='128'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-128); + background-color: var(--e-col-128); } + footer .block-block-edlp-entrees ul li[tid='124'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='124'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-124); + background-color: var(--e-col-124); } + footer .block-block-edlp-entrees ul li[tid='116'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='116'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-116); + background-color: var(--e-col-116); } + footer .block-block-edlp-entrees ul li[tid='117'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='117'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-117); + background-color: var(--e-col-117); } + footer .block-block-edlp-entrees ul li[tid='131'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='131'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-131); + background-color: var(--e-col-131); } + footer .block-block-edlp-entrees ul li[tid='126'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='126'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-126); + background-color: var(--e-col-126); } + footer .block-block-edlp-entrees ul li[tid='123'] a.term-link:before, footer .block-block-edlp-entrees ul li[tid='123'] .entree-content span.oblique-wrapper a:before { + border-color: var(--e-col-123); + background-color: var(--e-col-123); } + footer .block-block-edlp-entrees ul li .entree-content span.oblique-wrapper a:not(:hover):not(.is-active):before { + background-color: #fff !important; } + footer .block-block-edlp-entrees ul li a.articles-link:not(:hover):not(.is-active):before { + background-color: #fff !important; } + footer .block-block-edlp-entrees ul li:not(.opened) a.term-link:not(:hover):not(.highlighted):before { + background-color: #fff !important; } + footer .block-block-edlp-entrees ul li.opened a.term-link:after { + content: ''; + position: absolute; + left: 15px; + right: 0; + bottom: -3px; + border-bottom: 1px solid grey; } + footer .block-block-edlp-entrees ul li.opened .entree-content { + width: 350px; + opacity: 1; } + footer .block.random-player { + margin-bottom: 1em; + pointer-events: all; + margin-left: 0.5em; } + footer .block.random-player a { + display: block; + width: 20px; + height: 20px; + text-indent: 40px; + margin: 0; + overflow: hidden; + -webkit-mask-image: url(../img/random.svg); + mask-image: url(../img/random.svg); + -webkit-mask-size: contain; + mask-size: contain; + background-color: #000; + -webkit-transition: background-color 0.3s ease-in-out; + transition: background-color 0.3s ease-in-out; + cursor: pointer; } + footer .block.random-player a.is-active { + background-color: red; } + footer #block-studiolinkblock { + margin-bottom: 1em; + margin-left: 0.2em; + pointer-events: all; + margin-left: 0.5em; } + footer #block-studiolinkblock a { + display: block; + width: 20px; + height: 20px; + text-indent: 40px; + margin: 0; + overflow: hidden; + -webkit-mask-image: url(../img/studio.svg); + mask-image: url(../img/studio.svg); + -webkit-mask-size: contain; + mask-size: contain; + background-color: #000; + -webkit-transition: background-color 0.3s ease-in-out; + transition: background-color 0.3s ease-in-out; + cursor: pointer; } + footer #block-studiolinkblock a.is-active { + background-color: red; } + footer #block-userlogin { + margin-bottom: 1em; + pointer-events: all; + margin-left: 0.2em; + position: relative; + width: 20px; + height: 20px; } + footer #block-userlogin h2 { + position: relative; + width: 20px; + height: 20px; + background-image: url(../img/studio.svg); + background-size: contain; + text-indent: 40px; + margin: 0; + overflow: hidden; + z-index: 1; + cursor: pointer; } + footer #block-userlogin .block-content { + z-index: 0; + position: absolute; + right: 0; + bottom: 20px; + padding: 0.5em; + padding-bottom: 20px; + background-color: rgba(255, 255, 255, 0.95); + border-top: 1px solid red; + border-bottom: 1px solid red; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 0px; + opacity: 0; + pointer-events: none; + -webkit-transition: all 0.5s ease-in-out; + transition: all 0.5s ease-in-out; + -webkit-transition-property: height,opacity; + transition-property: height,opacity; } + footer #block-userlogin .block-content form { + font-size: 0.75em; } + footer #block-userlogin .block-content .item-list ul { + margin: 0; } + footer #block-userlogin .block-content .item-list li { + margin: 0; + list-style: none; } + footer #block-userlogin .block-content .item-list li a { + color: inherit; + text-decoration: none; + font-size: 0.75em; + white-space: nowrap; } + footer #block-userlogin:hover .block-content { + height: 200px; + opacity: 1; + pointer-events: auto; } + footer #block-edlpsearchlinkblock { + margin-bottom: 1em; + pointer-events: all; + margin-left: 0.5em; + margin-left: 0.2em; } + footer #block-edlpsearchlinkblock a { + display: block; + width: 20px; + height: 20px; + text-indent: 40px; + margin: 0; + overflow: hidden; + -webkit-mask-image: url(../img/search.svg); + mask-image: url(../img/search.svg); + -webkit-mask-size: contain; + mask-size: contain; + background-color: #000; + -webkit-transition: background-color 0.3s ease-in-out; + transition: background-color 0.3s ease-in-out; + cursor: pointer; } + footer #block-edlpsearchlinkblock a.is-active { + background-color: red; } + +.node-popup .inner { + position: relative; } + .node-popup .inner .entrees { + white-space: nowrap; + font-size: 0.5em; + line-height: 0; + letter-spacing: 0px; } + .node-popup .inner .entrees span { + display: inline-block; + width: 6px; + height: 6px; + background-color: black; + margin-right: 2px; } + .node-popup .inner .entrees span[tid='134'] { + background-color: var(--e-col-134); } + .node-popup .inner .entrees span[tid='121'] { + background-color: var(--e-col-121); } + .node-popup .inner .entrees span[tid='125'] { + background-color: var(--e-col-125); } + .node-popup .inner .entrees span[tid='119'] { + background-color: var(--e-col-119); } + .node-popup .inner .entrees span[tid='132'] { + background-color: var(--e-col-132); } + .node-popup .inner .entrees span[tid='122'] { + background-color: var(--e-col-122); } + .node-popup .inner .entrees span[tid='129'] { + background-color: var(--e-col-129); } + .node-popup .inner .entrees span[tid='120'] { + background-color: var(--e-col-120); } + .node-popup .inner .entrees span[tid='130'] { + background-color: var(--e-col-130); } + .node-popup .inner .entrees span[tid='118'] { + background-color: var(--e-col-118); } + .node-popup .inner .entrees span[tid='127'] { + background-color: var(--e-col-127); } + .node-popup .inner .entrees span[tid='133'] { + background-color: var(--e-col-133); } + .node-popup .inner .entrees span[tid='128'] { + background-color: var(--e-col-128); } + .node-popup .inner .entrees span[tid='124'] { + background-color: var(--e-col-124); } + .node-popup .inner .entrees span[tid='116'] { + background-color: var(--e-col-116); } + .node-popup .inner .entrees span[tid='117'] { + background-color: var(--e-col-117); } + .node-popup .inner .entrees span[tid='131'] { + background-color: var(--e-col-131); } + .node-popup .inner .entrees span[tid='126'] { + background-color: var(--e-col-126); } + .node-popup .inner .entrees span[tid='123'] { + background-color: var(--e-col-123); } + .node-popup .inner .title { + margin: 0.2em 0 0; + font-size: 0.9em; + font-weight: 600; } + .node-popup .inner .description p { + margin: 0; + font-size: 0.756em; } + .node-popup .inner .chutier-icon { + position: absolute; + top: 0.4em; + right: 0.4em; } + +.url-to-video-container { + margin: 10px auto; } + .url-to-video-container.no-js { + border: solid black 1px; } + .url-to-video-container.no-js .url-to-video-player { + cursor: auto; } + .url-to-video-container .loader { + top: auto; + left: auto; + -webkit-transform: none; + transform: none; } + .url-to-video-container span.url-to-video-player { + /* assuming that the video has a 16:9 ratio */ + padding-bottom: 0; + height: auto; } + .url-to-video-container span.url-to-video-player:before { + content: ""; + display: block; + /* assuming that the video has a 16:9 ratio */ + padding-top: 56.25%; } + .url-to-video-container span.url-to-video-player .play-button { + z-index: 5; + top: 50%; } diff --git a/sites/all/themes/custom/edlptheme/assets/styles/app.scss b/sites/all/themes/custom/edlptheme/assets/styles/app.scss index a91b6fb3c..4ae5cebdb 100644 --- a/sites/all/themes/custom/edlptheme/assets/styles/app.scss +++ b/sites/all/themes/custom/edlptheme/assets/styles/app.scss @@ -20,31 +20,38 @@ animation: rotation 2s infinite linear; } -@mixin entrie-micro-square { - display:inline-block; - $s:8px; - width:$s; height:$s; - background-color: black; - margin-right: 3px; - &[tid='134']{background-color: var(--e-col-134);} - &[tid='121']{background-color: var(--e-col-121);} - &[tid='125']{background-color: var(--e-col-125);} - &[tid='119']{background-color: var(--e-col-119);} - &[tid='132']{background-color: var(--e-col-132);} - &[tid='122']{background-color: var(--e-col-122);} - &[tid='129']{background-color: var(--e-col-129);} - &[tid='120']{background-color: var(--e-col-120);} - &[tid='130']{background-color: var(--e-col-130);} - &[tid='118']{background-color: var(--e-col-118);} - &[tid='127']{background-color: var(--e-col-127);} - &[tid='133']{background-color: var(--e-col-133);} - &[tid='128']{background-color: var(--e-col-128);} - &[tid='124']{background-color: var(--e-col-124);} - &[tid='116']{background-color: var(--e-col-116);} - &[tid='117']{background-color: var(--e-col-117);} - &[tid='131']{background-color: var(--e-col-131);} - &[tid='126']{background-color: var(--e-col-126);} - &[tid='123']{background-color: var(--e-col-123);} +@mixin entree-micro-square { + white-space: nowrap; + font-size: 0.5em; + line-height: 0; + letter-spacing: 0px; + span{ + display:inline-block; + $s:6px; + width:$s; height:$s; + background-color: black; + margin-right: 2px; + &[tid='134']{background-color: var(--e-col-134);} + &[tid='121']{background-color: var(--e-col-121);} + &[tid='125']{background-color: var(--e-col-125);} + &[tid='119']{background-color: var(--e-col-119);} + &[tid='132']{background-color: var(--e-col-132);} + &[tid='122']{background-color: var(--e-col-122);} + &[tid='129']{background-color: var(--e-col-129);} + &[tid='120']{background-color: var(--e-col-120);} + &[tid='130']{background-color: var(--e-col-130);} + &[tid='118']{background-color: var(--e-col-118);} + &[tid='127']{background-color: var(--e-col-127);} + &[tid='133']{background-color: var(--e-col-133);} + &[tid='128']{background-color: var(--e-col-128);} + &[tid='124']{background-color: var(--e-col-124);} + &[tid='116']{background-color: var(--e-col-116);} + &[tid='117']{background-color: var(--e-col-117);} + &[tid='131']{background-color: var(--e-col-131);} + &[tid='126']{background-color: var(--e-col-126);} + &[tid='123']{background-color: var(--e-col-123);} + + } } @@ -385,7 +392,7 @@ main[role="main"]{ .cartel{ // TODO: set max-width regarding responsive position: relative; - max-width: 350px; + // max-width: 350px; margin-left: 1em; background-color: white; opacity: 1; @@ -403,20 +410,18 @@ main[role="main"]{ } .cartels{ .first-cartel{ - + // visibility: hidden; .entrees{ - line-height: 0; - span{ - @include entrie-micro-square; - } + @include entree-micro-square; } h2.node-title{ margin:0.2em 0 0; - font-size: 1em; + font-size: 0.9em; + font-weight: 600; } p{ margin:0; - font-size: 0.75em; + font-size: 0.756em; } } .second-cartel{ @@ -424,29 +429,49 @@ main[role="main"]{ top: 0; left:0; background-color: white; height:100%; min-width: 100%; - opacity: 0; + opacity: 1; transition: opacity 0.2s ease-in-out; + white-space: nowrap; &>*{ display: inline-block; vertical-align: top; + white-space: normal; } .col-left{ a{ display: block; - font-size: 0.90em; + font-size: 0.82em; font-weight: 600; } } .col-right{ - font-size: 0.75em; + border-left:1px solid #1A1A1A; + margin-left:5px; padding-left:5px; + h3{ + font-size: 0.82em; + margin:0; + } + p{ + font-size: 0.756em; + margin:0; + span.cat{ + font-weight: 600; + } + } } } } + &:hover{ .second-cartel{ opacity: 1; } } + article:not(.has-second-cartel){ + .second-cartel{ + display:none; + } + } } } @@ -490,7 +515,13 @@ main[role="main"]{ text-indent: 0; padding: 0.5em; margin:$s*1.2 0 0 $s*1.2; - p{margin: 0;} + p{ + font-size: 0.756em; + margin:0; + &:not(:last-of-type){ + margin: 0 0 0.4em 0; + } + } } } &:hover{ @@ -606,10 +637,7 @@ main[role="main"]{ } } .entrees{ - line-height: 0; - span{ - @include entrie-micro-square; - } + @include entree-micro-square; } a.audio-link{ text-transform: capitalize; @@ -992,9 +1020,7 @@ main[role="main"]{ } article{ .entrees{ - span{ - @include entrie-micro-square; - } + @include entree-micro-square; } h2.node-title{ margin:0 0 0.3em 0; @@ -1647,24 +1673,23 @@ footer{ .inner{ position: relative; .entrees{ - span{ - @include entrie-micro-square; - } + @include entree-micro-square; } .title{ - margin:0.3em 0; - font-size: 1.2em; - font-weight: 500; + margin:0.2em 0 0; + // margin:0.3em 0; + font-size: 0.9em; + font-weight: 600; } .description{ p{ margin:0; - font-size: 0.75em; + font-size: 0.756em; } } .chutier-icon{ position:absolute; - top:1em; right:1em; + top:0.4em; right:0.4em; } } } diff --git a/sites/all/themes/custom/edlptheme/edlptheme.theme b/sites/all/themes/custom/edlptheme/edlptheme.theme index 38010c5bc..b5073eea4 100644 --- a/sites/all/themes/custom/edlptheme/edlptheme.theme +++ b/sites/all/themes/custom/edlptheme/edlptheme.theme @@ -6,6 +6,7 @@ */ use Drupal\Core\Url; +use Drupal\Core\Link; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Template\Attribute; use Drupal\Component\Utility\Unicode; @@ -164,58 +165,50 @@ function edlptheme_preprocess_node__enregistrement__compo(&$vars){ function edlptheme_preprocess_node__enregistrement__player_cartel(&$vars){ // dpm($vars); + $node = $vars['node']; + + $vars['col_left'] = false; + $vars['col_right'] = false; + // if transcript not empty - $url = Url::fromRoute('entity.node.canonical', ['node'=>$vars['node']->id()], array( - 'attributes' => array( - 'class' => ['link-transcript', 'ajax-link'], - 'viewmode'=>'transcript' - ) - )); - $vars['link_transcript'] = array( - '#title' => t("Lire le text."), - '#type' => 'link', - '#url' => $url, - '#options'=>array( + $transcript = $node->get('field_transcript_vo'); + if(!$transcript->isEmpty()){ + $vars['col_left'] = true; + $url = Url::fromRoute('entity.node.canonical', ['node'=>$node->id()]); + $url->setOptions(array( 'attributes' => array( + 'class' => ['link-transcript', 'ajax-link'], + 'viewmode'=>'transcript', 'data-drupal-link-system-path' => $url->getInternalPath() ) - ) - ); - // TODO: refacorize the link generator as following : - // $url = Url::fromRoute('entity.taxonomy_term.canonical', ['taxonomy_term'=>$tid]); - // $url->setOptions(array( - // 'attributes' => array( - // 'class' => ['index-link', 'ajax-link'], - // 'viewmode'=>'index', - // 'tid'=>$tid, - // 'data-drupal-link-system-path' => $url->getInternalPath() - // ) - // )); - // $entree['index_link'] = Link::fromTextAndUrl('index', $url); + )); + $vars['link_transcript'] = Link::fromTextAndUrl(t("Lire le text."), $url); + } // if article not empty - $url = Url::fromRoute('entity.node.canonical', ['node'=>$vars['node']->id()], array( - 'attributes' => array( - 'class' => ['link-article', 'ajax-link'], - 'viewmode'=>'article' - ) - )); - $vars['link_article'] = array( - '#title' => t("Lire l'article."), - '#type' => 'link', - '#url' => $url, - '#options' => array( - 'attributes'=>array( + $article = $node->get('body'); + if(!$article->isEmpty()){ + $vars['col_left'] = true; + $url = Url::fromRoute('entity.node.canonical', ['node'=>$node->id()]); + $url->setOptions(array( + 'attributes' => array( + 'class' => ['link-article', 'ajax-link'], + 'viewmode'=>'article', 'data-drupal-link-system-path' => $url->getInternalPath() ) - ) - ); - // if article or transcript - $vars['col_left'] = true; + )); + $vars['link_article'] = Link::fromTextAndUrl(t("Lire l'article."), $url); + } - // if - $vars['col_right'] = true; + // relations (defined in edlp_corpus.module) + if(isset($vars['content']['relations'])){ + // dpm($relations); + $vars['col_right'] = true; + } + if($vars['col_left'] || $vars['col_right']){ + $vars['second_cartel'] = true; + } } diff --git a/sites/all/themes/custom/edlptheme/templates/content/node--enregistrement--player-cartel.html.twig b/sites/all/themes/custom/edlptheme/templates/content/node--enregistrement--player-cartel.html.twig index fac235029..dff4088ee 100644 --- a/sites/all/themes/custom/edlptheme/templates/content/node--enregistrement--player-cartel.html.twig +++ b/sites/all/themes/custom/edlptheme/templates/content/node--enregistrement--player-cartel.html.twig @@ -78,6 +78,7 @@ node.isSticky() ? 'node--sticky', not node.isPublished() ? 'node--unpublished', view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + second_cartel ? 'has-second-cartel', ] %} {{ attach_library('classy/node') }} @@ -111,7 +112,7 @@ {% endif %} {% if col_right %}
    - right colume + {{ content.relations }}
    {% endif %} diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.article.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.article.yml index 284af705d..4b6875d7f 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.article.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.article.yml @@ -11,7 +11,10 @@ dependencies: - field.field.node.enregistrement.field_genres - field.field.node.enregistrement.field_langues - field.field.node.enregistrement.field_locuteurs + - field.field.node.enregistrement.field_nbr_locuteurs - field.field.node.enregistrement.field_son + - field.field.node.enregistrement.field_transcript_trad + - field.field.node.enregistrement.field_transcript_vo - field.field.node.enregistrement.field_workflow - node.type.enregistrement module: @@ -35,13 +38,18 @@ content: settings: { } third_party_settings: { } hidden: + chutier_actions: true field_collectionneurs: true field_description: true field_entrees: true field_genres: true field_langues: true field_locuteurs: true + field_nbr_locuteurs: true field_son: true + field_transcript_trad: true + field_transcript_vo: true field_workflow: true langcode: true links: true + relations: true diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.chutier.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.chutier.yml index f47591a6a..5eb404326 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.chutier.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.chutier.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.enregistrement.field_genres - field.field.node.enregistrement.field_langues - field.field.node.enregistrement.field_locuteurs + - field.field.node.enregistrement.field_nbr_locuteurs - field.field.node.enregistrement.field_son - field.field.node.enregistrement.field_transcript_trad - field.field.node.enregistrement.field_transcript_vo @@ -44,9 +45,11 @@ hidden: field_genres: true field_langues: true field_locuteurs: true + field_nbr_locuteurs: true field_son: true field_transcript_trad: true field_transcript_vo: true field_workflow: true langcode: true links: true + relations: true diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.compo.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.compo.yml index cfc4e4abd..fd47bc70e 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.compo.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.compo.yml @@ -52,3 +52,4 @@ hidden: field_workflow: true langcode: true links: true + relations: true diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.default.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.default.yml index 56b06271c..7e4ba7d18 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.default.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.default.yml @@ -58,3 +58,4 @@ hidden: field_workflow: true langcode: true links: true + relations: true diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.index.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.index.yml index 8d5f9a19d..727db90ae 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.index.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.index.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.enregistrement.field_genres - field.field.node.enregistrement.field_langues - field.field.node.enregistrement.field_locuteurs + - field.field.node.enregistrement.field_nbr_locuteurs - field.field.node.enregistrement.field_son - field.field.node.enregistrement.field_transcript_trad - field.field.node.enregistrement.field_transcript_vo @@ -38,14 +39,17 @@ content: region: content hidden: body: true + chutier_actions: true field_collectionneurs: true field_entrees: true field_genres: true field_langues: true field_locuteurs: true + field_nbr_locuteurs: true field_son: true field_transcript_trad: true field_transcript_vo: true field_workflow: true langcode: true links: true + relations: true diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.search_index.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.search_index.yml index bc78af9bd..a9716785c 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.search_index.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.search_index.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.enregistrement.field_genres - field.field.node.enregistrement.field_langues - field.field.node.enregistrement.field_locuteurs + - field.field.node.enregistrement.field_nbr_locuteurs - field.field.node.enregistrement.field_son - field.field.node.enregistrement.field_transcript_trad - field.field.node.enregistrement.field_transcript_vo @@ -51,9 +52,11 @@ hidden: field_genres: true field_langues: true field_locuteurs: true + field_nbr_locuteurs: true field_son: true field_transcript_trad: true field_transcript_vo: true field_workflow: true langcode: true links: true + relations: true diff --git a/sites/default/config/sync/core.entity_view_display.node.enregistrement.transcript.yml b/sites/default/config/sync/core.entity_view_display.node.enregistrement.transcript.yml index 83b8d7d51..d61f42b16 100644 --- a/sites/default/config/sync/core.entity_view_display.node.enregistrement.transcript.yml +++ b/sites/default/config/sync/core.entity_view_display.node.enregistrement.transcript.yml @@ -11,6 +11,7 @@ dependencies: - field.field.node.enregistrement.field_genres - field.field.node.enregistrement.field_langues - field.field.node.enregistrement.field_locuteurs + - field.field.node.enregistrement.field_nbr_locuteurs - field.field.node.enregistrement.field_son - field.field.node.enregistrement.field_transcript_trad - field.field.node.enregistrement.field_transcript_vo @@ -45,13 +46,16 @@ content: third_party_settings: { } hidden: body: true + chutier_actions: true field_collectionneurs: true field_description: true field_entrees: true field_genres: true field_langues: true field_locuteurs: true + field_nbr_locuteurs: true field_son: true field_workflow: true langcode: true links: true + relations: true