import OffCanvas from '../foundation.offcanvas';
Foundation.plugin(OffCanvas, 'OffCanvas');
-//import ResponsiveMenu from '../foundation.responsiveMenu';
-//Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu');
+import ResponsiveMenu from '../foundation.responsiveMenu';
+Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu');
import ResponsiveToggle from '../foundation.responsiveToggle';
Foundation.plugin(ResponsiveToggle, 'ResponsiveToggle');
import Tooltip from '../foundation.tooltip';
Foundation.plugin(Tooltip, 'Tooltip');
-//import ResponsiveAccordionTabs from '../foundation.zf.responsiveAccordionTabs';
-//Foundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');
+import ResponsiveAccordionTabs from '../foundation.zf.responsiveAccordionTabs';
+Foundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');
'use strict';
-!function($) {
+import $ from 'jquery';
- let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
- let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
+import MediaQuery from './foundation.util.mediaQuery';
+import { GetYoDigits } from './foundation.util.core';
+import Plugin from './foundation.plugin';
+
+import DropdownMenu from './foundation.dropdownMenu';
+import Drilldown from './foundation.drilldown';
+import AccordionMenu from './foundation.accordionMenu';
+
+let MenuPlugins = {
+ dropdown: {
+ cssClass: 'dropdown',
+ plugin: DropdownMenu
+ },
+ drilldown: {
+ cssClass: 'drilldown',
+ plugin: Drilldown
+ },
+ accordion: {
+ cssClass: 'accordion-menu',
+ plugin: AccordionMenu
+ }
+};
// import "foundation.util.triggers.js";
* @requires foundation.util.mediaQuery
*/
-class ResponsiveMenu {
+class ResponsiveMenu extends Plugin {
/**
* Creates a new instance of a responsive menu.
* @class
* @param {jQuery} element - jQuery object to make into a dropdown menu.
* @param {Object} options - Overrides to the default plugin settings.
*/
- constructor(element, options) {
+ _setup(element, options) {
this.$element = $(element);
this.rules = this.$element.data('responsive-menu');
this.currentMq = null;
this._init();
this._events();
-
- Foundation.registerPlugin(this, 'ResponsiveMenu');
}
/**
* Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.
* @function
*/
- destroy() {
+ _destroy() {
this.currentPlugin.destroy();
$(window).off('.zf.ResponsiveMenu');
- Foundation.unregisterPlugin(this);
}
}
ResponsiveMenu.defaults = {};
-// TODO9438: refactor this to happen on init, rather than as side effect.
-//
-// The plugin matches the plugin classes with these plugin instances.
-var MenuPlugins = {
- dropdown: {
- cssClass: 'dropdown',
- plugin: Foundation._plugins['dropdown-menu'] || null
- },
- drilldown: {
- cssClass: 'drilldown',
- plugin: Foundation._plugins['drilldown'] || null
- },
- accordion: {
- cssClass: 'accordion-menu',
- plugin: Foundation._plugins['accordion-menu'] || null
- }
-};
-
-// Window exports
-Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu');
-
-}(jQuery);
+export default ResponsiveMenu;
'use strict';
-!function($) {
+import $ from 'jquery';
+import MediaQuery from './foundation.util.mediaQuery';
+import { GetYoDigits } from './foundation.util.core';
+import Plugin from './foundation.plugin';
+
+import Accordion from './foundation.accordion';
+import Tabs from './foundation.tabs';
+
+// The plugin matches the plugin classes with these plugin instances.
+var MenuPlugins = {
+ tabs: {
+ cssClass: 'tabs',
+ plugin: Tabs
+ },
+ accordion: {
+ cssClass: 'accordion',
+ plugin: Accordion
+ }
+};
- let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
- let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
/**
* ResponsiveAccordionTabs module.
* @requires foundation.tabs
*/
-class ResponsiveAccordionTabs {
+class ResponsiveAccordionTabs extends Plugin{
/**
* Creates a new instance of a responsive accordion tabs.
* @class
* @param {jQuery} element - jQuery object to make into a dropdown menu.
* @param {Object} options - Overrides to the default plugin settings.
*/
- constructor(element, options) {
+ _setup(element, options) {
this.$element = $(element);
this.options = $.extend({}, this.$element.data(), options);
this.rules = this.$element.data('responsive-accordion-tabs');
this._init();
this._events();
-
- Foundation.registerPlugin(this, 'ResponsiveAccordionTabs');
}
/**
* Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.
* @function
*/
- destroy() {
+ _destroy() {
if (this.currentPlugin) this.currentPlugin.destroy();
$(window).off('.zf.ResponsiveAccordionTabs');
- Foundation.unregisterPlugin(this);
}
}
ResponsiveAccordionTabs.defaults = {};
-// TODO9438 move this to initialize in order to eliminate side effects
-//
-// The plugin matches the plugin classes with these plugin instances.
-var MenuPlugins = {
- tabs: {
- cssClass: 'tabs',
- plugin: Foundation._plugins.tabs || null
- },
- accordion: {
- cssClass: 'accordion',
- plugin: Foundation._plugins.accordion || null
- }
-};
-
-// Window exports
-Foundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');
-
-}(jQuery);
+export default ResponsiveAccordionTabs;