“use strict”;function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(“Cannot call a class as a function”)}var _createClass=function(){function e(e,t){for(var o=0;o<t.length;o++){var s=t;s.enumerable=s.enumerable||!1,s.configurable=!0,“value”in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,o,s){return o&&e(t.prototype,o),s&&e(t,s),t}}();!function(e){var t=function(){function t(o,s){_classCallCheck(this,t),this.$element=o,this.options=e.extend({},t.defaults,this.$element.data(),s),this.$lastTrigger=e(),this.$triggers=e(),this._init(),this._events(),Foundation.registerPlugin(this,“OffCanvas”),Foundation.Keyboard.register(“OffCanvas”,{ESCAPE:“close”})}return _createClass(t,[{key:“_init”,value:function(){var t=this.$element.attr(“id”);if(this.$element.attr(“aria-hidden”,“true”),this.$element.addClass(“is-transition-”+this.options.transition),this.$triggers=e(document).find(‘[data-open=“’t
‘”], [data-close=“’t
‘”], [data-toggle=“’t
‘”]’).attr(“aria-expanded”,“false”).attr(“aria-controls”,t),this.options.contentOverlay===!0){var o=document.createElement(“div”),s=“fixed”===e(this.$element).css(“position”)?“is-overlay-fixed”:“is-overlay-absolute”;o.setAttribute(“class”,“js-off-canvas-overlay ”+s),this.$overlay=e(o),“is-overlay-fixed”===s?e(“body”).append(this.$overlay):this.$element.siblings(“”).append(this.$overlay)}this.options.isRevealed=this.options.isRevealed||new RegExp(this.options.revealClass,“g”).test(this.$element.className),this.options.isRevealed===!0&&(this.options.revealOn=this.options.revealOn||this.$element.className.match(/(reveal-for-medium|reveal-for-large)/g).split(“-”),this._setMQChecker()),!this.options.transitionTime==!0&&(this.options.transitionTime=1e3*parseFloat(window.getComputedStyle(e(“”)[0]).transitionDuration))}},{key:“_events”,value:function(){if(this.$element.off(“.zf.trigger .zf.offcanvas”).on({“open.zf.trigger”:this.open.bind(this),“close.zf.trigger”:this.close.bind(this),“toggle.zf.trigger”:this.toggle.bind(this),“keydown.zf.offcanvas”:this._handleKeyboard.bind(this)}),this.options.closeOnClick===!0){var t=this.options.contentOverlay?this.$overlay:e(“”);t.on({“click.zf.offcanvas”:this.close.bind(this)})}}},{key:“_setMQChecker”,value:function(){var t=this;e(window).on(“changed.zf.mediaquery”,function(){Foundation.MediaQuery.atLeast(t.options.revealOn)?t.reveal(!0):t.reveal(!1)}).one(“load.zf.offcanvas”,function(){Foundation.MediaQuery.atLeast(t.options.revealOn)&&t.reveal(!0)})}},{key:“reveal”,value:function(e){var t=this.$element.find(“”);e?(this.close(),this.isRevealed=!0,this.$element.attr(“aria-hidden”,“false”),this.$element.off(“open.zf.trigger toggle.zf.trigger”),t.length&&t.hide()):(this.isRevealed=!1,this.$element.attr(“aria-hidden”,“true”),this.$element.on({“open.zf.trigger”:this.open.bind(this),“toggle.zf.trigger”:this.toggle.bind(this)}),t.length&&t.show())}},{key:“_stopScrolling”,value:function(e){return!1}},{key:“_recordScrollable”,value:function(e){var t=this;t.scrollHeight!==t.clientHeight&&(0===t.scrollTop&&(t.scrollTop=1),t.scrollTop===t.scrollHeight-t.clientHeight&&(t.scrollTop=t.scrollHeight-t.clientHeight-1)),t.allowUp=t.scrollTop>0,t.allowDown=t.scrollTop<t.scrollHeight-t.clientHeight,t.lastY=e.originalEvent.pageY}},{key:“_stopScrollPropagation”,value:function(e){var t=this,o=e.pageY<t.lastY,s=!o;t.lastY=e.pageY,o&&t.allowUp||s&&t.allowDown?e.stopPropagation():e.preventDefault()}},{key:“open”,value:function(t,o){if(!this.$element.hasClass(“is-open”)&&!this.isRevealed){var s=this;o&&(this.$lastTrigger=o),“top”===this.options.forceTo?window.scrollTo(0,0):“bottom”===this.options.forceTo&&window.scrollTo(0,document.body.scrollHeight),s.$element.addClass(“is-open”),this.$triggers.attr(“aria-expanded”,“true”),this.$element.attr(“aria-hidden”,“false”).trigger(“opened.zf.offcanvas”),this.options.contentScroll===!1&&(e(“body”).addClass(“is-off-canvas-open”).on(“touchmove”,this._stopScrolling),this.$element.on(“touchstart”,this._recordScrollable),this.$element.on(“touchmove”,this._stopScrollPropagation)),this.options.contentOverlay===!0&&this.$overlay.addClass(“is-visible”),this.options.closeOnClick===!0&&this.options.contentOverlay===!0&&this.$overlay.addClass(“is-closable”),this.options.autoFocus===!0&&this.$element.one(Foundation.transitionend(this.$element),function(){s.$element.find(“a, button”).eq(0).focus()}),this.options.trapFocus===!0&&(this.$element.siblings(“”).attr(“tabindex”,“-1”),Foundation.Keyboard.trapFocus(this.$element))}}},{key:“close”,value:function(t){if(this.$element.hasClass(“is-open”)&&!this.isRevealed){var o=this;o.$element.removeClass(“is-open”),this.$element.attr(“aria-hidden”,“true”).trigger(“closed.zf.offcanvas”),this.options.contentScroll===!1&&(e(“body”).removeClass(“is-off-canvas-open”).off(“touchmove”,this._stopScrolling),this.$element.off(“touchstart”,this._recordScrollable),this.$element.off(“touchmove”,this._stopScrollPropagation)),this.options.contentOverlay===!0&&this.$overlay.removeClass(“is-visible”),this.options.closeOnClick===!0&&this.options.contentOverlay===!0&&this.$overlay.removeClass(“is-closable”),this.$triggers.attr(“aria-expanded”,“false”),this.options.trapFocus===!0&&(this.$element.siblings(“”).removeAttr(“tabindex”),Foundation.Keyboard.releaseFocus(this.$element))}}},{key:“toggle”,value:function(e,t){this.$element.hasClass(“is-open”)?this.close(e,t):this.open(e,t)}},{key:“_handleKeyboard”,value:function(e){var t=this;Foundation.Keyboard.handleKey(e,“OffCanvas”,{close:function(){return t.close(),t.$lastTrigger.focus(),!0},handled:function(){e.stopPropagation(),e.preventDefault()}})}},{key:“destroy”,value:function(){this.close(),this.$element.off(“.zf.trigger .zf.offcanvas”),this.$overlay.off(“.zf.offcanvas”),Foundation.unregisterPlugin(this)}}]),t}();t.defaults={closeOnClick:!0,contentOverlay:!0,contentScroll:!0,transitionTime:0,transition:“push”,forceTo:null,isRevealed:!1,revealOn:null,autoFocus:!0,revealClass:“reveal-for-”,trapFocus:!1},Foundation.plugin(t,“OffCanvas”)}(jQuery);