From: Kevin Ball Date: Mon, 26 Jun 2017 18:08:09 +0000 (-0700) Subject: Fix plugin naming for ie9 X-Git-Tag: v6.4.0~2^2~6^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ef20eb9d830a265e5188f071472c44cc27ccc28;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Fix plugin naming for ie9 --- diff --git a/js/foundation.abide.js b/js/foundation.abide.js index 6db7fef2e..a2609c6f5 100644 --- a/js/foundation.abide.js +++ b/js/foundation.abide.js @@ -20,6 +20,7 @@ class Abide extends Plugin { this.$element = element; this.options = $.extend({}, Abide.defaults, this.$element.data(), options); + this.className = 'Abide'; // ie9 back compat this._init(); } diff --git a/js/foundation.accordion.js b/js/foundation.accordion.js index 9549b3f92..48c42f5fa 100644 --- a/js/foundation.accordion.js +++ b/js/foundation.accordion.js @@ -23,6 +23,7 @@ class Accordion extends Plugin { this.$element = element; this.options = $.extend({}, Accordion.defaults, this.$element.data(), options); + this.className = 'Accordion'; // ie9 back compat this._init(); Keyboard.register('Accordion', { diff --git a/js/foundation.accordionMenu.js b/js/foundation.accordionMenu.js index 41d501cfa..340bae4be 100644 --- a/js/foundation.accordionMenu.js +++ b/js/foundation.accordionMenu.js @@ -25,6 +25,7 @@ class AccordionMenu extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options); + this.className = 'AccordionMenu'; // ie9 back compat Nest.Feather(this.$element, 'accordion'); diff --git a/js/foundation.drilldown.js b/js/foundation.drilldown.js index 2029906bd..57f4234e2 100644 --- a/js/foundation.drilldown.js +++ b/js/foundation.drilldown.js @@ -25,6 +25,7 @@ class Drilldown extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options); + this.className = 'Drilldown'; // ie9 back compat Nest.Feather(this.$element, 'drilldown'); diff --git a/js/foundation.dropdown.js b/js/foundation.dropdown.js index 12e2050bd..e5d88f08e 100644 --- a/js/foundation.dropdown.js +++ b/js/foundation.dropdown.js @@ -26,6 +26,7 @@ class Dropdown extends Positionable { _setup(element, options) { this.$element = element; this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options); + this.className = 'Dropdown'; // ie9 back compat // Triggers init is idempotent, just need to make sure it is initialized Triggers.init($); diff --git a/js/foundation.dropdownMenu.js b/js/foundation.dropdownMenu.js index 4963792ac..de04c2aa5 100644 --- a/js/foundation.dropdownMenu.js +++ b/js/foundation.dropdownMenu.js @@ -27,6 +27,7 @@ class DropdownMenu extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options); + this.className = 'DropdownMenu'; // ie9 back compat Nest.Feather(this.$element, 'dropdown'); this._init(); diff --git a/js/foundation.equalizer.js b/js/foundation.equalizer.js index 41f45b14d..82e1f0e82 100644 --- a/js/foundation.equalizer.js +++ b/js/foundation.equalizer.js @@ -24,6 +24,7 @@ class Equalizer extends Plugin { _setup(element, options){ this.$element = element; this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options); + this.className = 'Equalizer'; // ie9 back compat this._init(); } diff --git a/js/foundation.interchange.js b/js/foundation.interchange.js index 05c3651ea..00ce66dc3 100644 --- a/js/foundation.interchange.js +++ b/js/foundation.interchange.js @@ -25,6 +25,7 @@ class Interchange extends Plugin { this.options = $.extend({}, Interchange.defaults, options); this.rules = []; this.currentPath = ''; + this.className = 'Interchange'; // ie9 back compat this._init(); this._events(); diff --git a/js/foundation.magellan.js b/js/foundation.magellan.js index 1313fedf9..44c8255f4 100644 --- a/js/foundation.magellan.js +++ b/js/foundation.magellan.js @@ -23,6 +23,7 @@ class Magellan extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, Magellan.defaults, this.$element.data(), options); + this.className = 'Magellan'; // ie9 back compat this._init(); this.calcPoints(); diff --git a/js/foundation.offcanvas.js b/js/foundation.offcanvas.js index 389f790db..2454b3fc9 100644 --- a/js/foundation.offcanvas.js +++ b/js/foundation.offcanvas.js @@ -25,6 +25,7 @@ class OffCanvas extends Plugin { * @param {Object} options - Overrides to the default plugin settings. */ _setup(element, options) { + this.className = 'OffCanvas'; // ie9 back compat this.$element = element; this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options); this.contentClasses = { base: [], reveal: [] }; @@ -65,7 +66,7 @@ class OffCanvas extends Plugin { var id = this.$element.attr('id'); this.$element.attr('aria-hidden', 'true'); - + // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback) if (this.options.contentId) { this.$content = $('#'+this.options.contentId); @@ -99,7 +100,7 @@ class OffCanvas extends Plugin { .find('[data-open="'+id+'"], [data-close="'+id+'"], [data-toggle="'+id+'"]') .attr('aria-expanded', 'false') .attr('aria-controls', id); - + // Get position by checking for related CSS class this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\-(left|top|right|bottom)/)[1] : this.position; @@ -298,7 +299,7 @@ class OffCanvas extends Plugin { this.$triggers.attr('aria-expanded', 'true'); this.$element.attr('aria-hidden', 'false') .trigger('opened.zf.offcanvas'); - + this.$content.addClass('is-open-' + this.position); // If `contentScroll` is set to false, add class and disable scrolling on touch devices. @@ -452,7 +453,7 @@ OffCanvas.defaults = { contentOverlay: true, /** - * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken. + * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken. * @option * @type {?string} * @default null diff --git a/js/foundation.orbit.js b/js/foundation.orbit.js index 05f4d25dc..4771dd38d 100644 --- a/js/foundation.orbit.js +++ b/js/foundation.orbit.js @@ -30,6 +30,7 @@ class Orbit extends Plugin { _setup(element, options){ this.$element = element; this.options = $.extend({}, Orbit.defaults, this.$element.data(), options); + this.className = 'Orbit'; // ie9 back compat Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied. diff --git a/js/foundation.plugin.js b/js/foundation.plugin.js index 46956e22f..554a78c92 100644 --- a/js/foundation.plugin.js +++ b/js/foundation.plugin.js @@ -10,7 +10,7 @@ class Plugin { constructor(element, options) { this._setup(element, options); - var pluginName = hyphenate(this.constructor.name); + var pluginName = getPluginName(this); this.uuid = GetYoDigits(6, pluginName); if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); } @@ -43,4 +43,12 @@ function hyphenate(str) { return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); } +function getPluginName(obj) { + if(typeof(obj.constructor.name) !== 'undefined') { + return hyphenate(obj.constructor.name); + } else { + return hyphenate(obj.className); + } +} + export {Plugin}; diff --git a/js/foundation.responsiveAccordionTabs.js b/js/foundation.responsiveAccordionTabs.js index 374c895fe..58e082d7f 100644 --- a/js/foundation.responsiveAccordionTabs.js +++ b/js/foundation.responsiveAccordionTabs.js @@ -43,6 +43,7 @@ class ResponsiveAccordionTabs extends Plugin{ this.rules = this.$element.data('responsive-accordion-tabs'); this.currentMq = null; this.currentPlugin = null; + this.className = 'ResponsiveAccordionTabs'; // ie9 back compat if (!this.$element.attr('id')) { this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs')); }; diff --git a/js/foundation.responsiveMenu.js b/js/foundation.responsiveMenu.js index 737a0fa77..181044a3b 100644 --- a/js/foundation.responsiveMenu.js +++ b/js/foundation.responsiveMenu.js @@ -48,6 +48,7 @@ class ResponsiveMenu extends Plugin { this.rules = this.$element.data('responsive-menu'); this.currentMq = null; this.currentPlugin = null; + this.className = 'ResponsiveMenu'; // ie9 back compat this._init(); this._events(); diff --git a/js/foundation.responsiveToggle.js b/js/foundation.responsiveToggle.js index 10643ce92..8ecd4735e 100644 --- a/js/foundation.responsiveToggle.js +++ b/js/foundation.responsiveToggle.js @@ -24,6 +24,7 @@ class ResponsiveToggle extends Plugin { _setup(element, options) { this.$element = $(element); this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options); + this.className = 'ResponsiveToggle'; // ie9 back compat this._init(); this._events(); diff --git a/js/foundation.reveal.js b/js/foundation.reveal.js index 8af83dca9..52042d249 100644 --- a/js/foundation.reveal.js +++ b/js/foundation.reveal.js @@ -26,6 +26,7 @@ class Reveal extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, Reveal.defaults, this.$element.data(), options); + this.className = 'Reveal'; // ie9 back compat this._init(); // Triggers init is idempotent, just need to make sure it is initialized diff --git a/js/foundation.slider.js b/js/foundation.slider.js index f57d46778..85d09f7c5 100644 --- a/js/foundation.slider.js +++ b/js/foundation.slider.js @@ -29,6 +29,7 @@ class Slider extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, Slider.defaults, this.$element.data(), options); + this.className = 'Slider'; // ie9 back compat // Touch and Triggers inits are idempotent, we just need to make sure it's initialied. Touch.init($); diff --git a/js/foundation.smoothScroll.js b/js/foundation.smoothScroll.js index 77ad38a6b..9f1a81fd7 100644 --- a/js/foundation.smoothScroll.js +++ b/js/foundation.smoothScroll.js @@ -12,6 +12,7 @@ class SmoothScroll extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options); + this.className = 'SmoothScroll'; // ie9 back compat this._init(); } diff --git a/js/foundation.sticky.js b/js/foundation.sticky.js index 4b285815d..0722ceb0b 100644 --- a/js/foundation.sticky.js +++ b/js/foundation.sticky.js @@ -23,6 +23,7 @@ class Sticky extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, Sticky.defaults, this.$element.data(), options); + this.className = 'Sticky'; // ie9 back compat // Triggers init is idempotent, just need to make sure it is initialized Triggers.init($); diff --git a/js/foundation.tabs.js b/js/foundation.tabs.js index af61e4124..9f4d8f734 100644 --- a/js/foundation.tabs.js +++ b/js/foundation.tabs.js @@ -22,6 +22,7 @@ class Tabs extends Plugin { _setup(element, options) { this.$element = element; this.options = $.extend({}, Tabs.defaults, this.$element.data(), options); + this.className = 'Tabs'; // ie9 back compat this._init(); Keyboard.register('Tabs', { diff --git a/js/foundation.toggler.js b/js/foundation.toggler.js index f0ea76ae8..53b25ff6c 100644 --- a/js/foundation.toggler.js +++ b/js/foundation.toggler.js @@ -24,6 +24,7 @@ class Toggler extends Plugin { this.$element = element; this.options = $.extend({}, Toggler.defaults, element.data(), options); this.className = ''; + this.className = 'Toggler'; // ie9 back compat // Triggers init is idempotent, just need to make sure it is initialized Triggers.init($); diff --git a/js/foundation.tooltip.js b/js/foundation.tooltip.js index 5fa150e51..74c3ac4a2 100644 --- a/js/foundation.tooltip.js +++ b/js/foundation.tooltip.js @@ -26,6 +26,7 @@ class Tooltip extends Positionable { _setup(element, options) { this.$element = element; this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options); + this.className = 'Tooltip'; // ie9 back compat this.isActive = false; this.isClick = false;