trowel-collapses
Version:
The official Trowel Component for collapses
1 lines • 5.81 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TrowelCollapses",[],t):"object"==typeof exports?exports.TrowelCollapses=t():e.TrowelCollapses=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var s=i[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,t),s.l=!0,s.exports}var i={};return t.m=e,t.c=i,t.i=function(e){return e},t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,i){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),o=i(1),r=function e(t){return n(this,e),t.map(function(e){return new l(e)})};t.default=r;var l=function(){function e(t){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];n(this,e),this.collapse=t,this.nested=i,this.isVisible?this.show():this.hide(),this.listener(),this.collapse.dispatchEvent(this.events.mounted)}return s(e,[{key:"show",value:function(){this.collapse.dispatchEvent(this.events.show),this.collapse.setAttribute("data-state","visible"),this.triggers.map(function(e){return e.addActiveclass()}),this.otherCollapsesFromGroup.forEach(function(e){return e.hide()}),this.collapse.dispatchEvent(this.events.shown)}},{key:"hide",value:function(){this.collapse.dispatchEvent(this.events.hide),this.collapse.setAttribute("data-state","hidden"),this.triggers.map(function(e){return e.removeActiveclass()}),this.collapse.dispatchEvent(this.events.hidden)}},{key:"toggle",value:function(){this.collapse.dispatchEvent(this.events.toggle),this.isVisible?this.hide():this.show(),this.collapse.dispatchEvent(this.events.toggled)}},{key:"listener",value:function(){var e=this;if(!this.nested)return!1;this.toggleTriggers.map(function(t){return t.domEl.addEventListener("click",e.toggle.bind(e))}),this.showTriggers.map(function(t){return t.domEl.addEventListener("click",e.show.bind(e))}),this.hideTriggers.map(function(t){return t.domEl.addEventListener("click",e.hide.bind(e))})}},{key:"isVisible",get:function(){return"visible"==this.collapse.getAttribute("data-state")}},{key:"groupName",get:function(){return this.collapse.getAttribute("data-group")}},{key:"isEffectingOtherCollapsesFromGroup",get:function(){return this.groupName&&this.nested}},{key:"otherCollapsesFromGroup",get:function(){var t=this;if(!this.isEffectingOtherCollapsesFromGroup)return[];var i=document.querySelectorAll('[data-group="'+this.groupName+'"]');return[].slice.call(i).filter(function(e){return e!=t.collapse}).map(function(t){return new e(t,!1)})}},{key:"triggers",get:function(){var e=document.querySelectorAll('[data-collapse][data-href="#'+this.collapse.id+'"]');return Array.prototype.slice.call(e).map(function(e){return new c(e)})}},{key:"toggleTriggers",get:function(){return this.triggers.filter(function(e){return e.isToggleAction})}},{key:"showTriggers",get:function(){return this.triggers.filter(function(e){return e.isShowAction})}},{key:"hideTriggers",get:function(){return this.triggers.filter(function(e){return e.isHideAction})}},{key:"events",get:function(){return{show:(0,o.createNewEvent)("trowel.collapse.show"),shown:(0,o.createNewEvent)("trowel.collapse.shown"),hide:(0,o.createNewEvent)("trowel.collapse.hide"),hidden:(0,o.createNewEvent)("trowel.collapse.hidden"),toggle:(0,o.createNewEvent)("trowel.collapse.toggle"),toggled:(0,o.createNewEvent)("trowel.collapse.toggled"),mounted:(0,o.createNewEvent)("trowel.collapse.mounted")}}}]),e}(),c=function(){function e(t){n(this,e),this.domEl=t,this.domEl.dispatchEvent(this.events.mounted)}return s(e,[{key:"addActiveclass",value:function(){this.domEl.dispatchEvent(this.events.activate),this.domEl.classList.add(this.activeclass),this.domEl.dispatchEvent(this.events.activated)}},{key:"removeActiveclass",value:function(){this.domEl.dispatchEvent(this.events.desactivate),this.domEl.classList.remove(this.activeclass),this.domEl.dispatchEvent(this.events.desactivated)}},{key:"toggleActiveclass",value:function(){this.domEl.dispatchEvent(this.events.toggle),this.domEl.classList.toggle(this.activeclass),this.domEl.dispatchEvent(this.events.toggled)}},{key:"activeclass",get:function(){return this.domEl.getAttribute("data-activeclass")}},{key:"action",get:function(){return this.domEl.getAttribute("data-collapse")}},{key:"isToggleAction",get:function(){return"toggle"==this.action}},{key:"isShowAction",get:function(){return"show"==this.action}},{key:"isHideAction",get:function(){return"hide"==this.action}},{key:"events",get:function(){return{activate:(0,o.createNewEvent)("trowel.collapse.trigger.activate"),activated:(0,o.createNewEvent)("trowel.collapse.trigger.activated"),desactivate:(0,o.createNewEvent)("trowel.collapse.desactivate.hide"),desactivated:(0,o.createNewEvent)("trowel.collapse.desactivated.hidden"),toggle:(0,o.createNewEvent)("trowel.collapse.trigger.toggle"),toggled:(0,o.createNewEvent)("trowel.collapse.trigger.toggled"),mounted:(0,o.createNewEvent)("trowel.collapse.trigger.mounted")}}}]),e}();e.exports=t.default},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.createNewEvent=function(e){if("function"==typeof Event)var t=new Event(e);else{var t=document.createEvent("Event");t.initEvent(e,!0,!0)}return t}}])});