// Javascript
JS_FILES: [
'js/foundation.core.js',
+ 'js/foundation.util.core.js',
'js/foundation.util.*.js',
'js/*.js'
],
!function($) {
let Keyboard = Foundation.Keyboard; // import Keyboard from 'foundation.util.keyboard'
- let GetYoDigits = Foundation.GetYoDigits; // currently part of foundation.core. Refactor?
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from 'foundation.util.core'
/**
* Accordion module.
let Keyboard = Foundation.Keyboard; // import Keyboard from "foundation.util.keyboard"
let Nest = Foundation.Nest; // import Nest from "foundation.util.nest"
- let GetYoDigits = Foundation.GetYoDigits; // add import after refactor
+ let GetYoDigits = Foundation.GetYoDigits; //import { GetYoDigits } from "foundation.util.core"
/**
* AccordionMenu module.
*/
_uuids: [],
- /**
- * Returns a boolean for RTL support
- */
- rtl: function(){
- return $('html').attr('dir') === 'rtl';
- },
/**
* Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.
* @param {Object} plugin - The constructor of the plugin.
}
},
- /**
- * returns a random base-36 uid with namespacing
- * @function
- * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.
- * @param {String} namespace - name of plugin to be incorporated in uid, optional.
- * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.
- * @returns {String} - unique id
- */
- GetYoDigits: function(length, namespace){
- length = length || 6;
- return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1) + (namespace ? `-${namespace}` : '');
- },
/**
* Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.
* @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.
});
},
getFnName: functionName,
- transitionend: function($elem){
- var transitions = {
- 'transition': 'transitionend',
- 'WebkitTransition': 'webkitTransitionEnd',
- 'MozTransition': 'transitionend',
- 'OTransition': 'otransitionend'
- };
- var elem = document.createElement('div'),
- end;
-
- for (var t in transitions){
- if (typeof elem.style[t] !== 'undefined'){
- end = transitions[t];
- }
- }
- if(end){
- return end;
- }else{
- end = setTimeout(function(){
- $elem.triggerHandler('transitionend', [$elem]);
- }, 1);
- return 'transitionend';
- }
- }
};
Foundation.util = {
let Keyboard = Foundation.Keyboard; // import Keyboard from "foundation.util.keyboard";
let Box = Foundation.Box; // import Box from "foundation.util.box";
- let GetYoDigits = Foundation.GetYoDigits; // figure out import after refactor
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
// import "foundation.util.triggers.js";
// TODO: Figure out what a triggers import "means", since triggers are always accessed indirectly.
let Keyboard = Foundation.Keyboard; // import Keyboard from "foundation.util.keyboard";
let Nest = Foundation.Nest; // import Nest from "foundation.util.nest";
let Box = Foundation.Box; // import Box from "foundation.util.box";
- let Rtl = Foundation.rtl; // Figure out import after refactor
+ let Rtl = Foundation.rtl; // import { rtl } from "foundation.util.core";
/**
* DropdownMenu module.
let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
let onImagesLoaded = Foundation.onImagesLoaded; // import onImagesLoaded from "foundation.util.imageLoader";
- let GetYoDigits = Foundation.GetYoDigits; // figure out import after refactor;
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core"
/**
* Equalizer module.
!function($) {
- let GetYoDigits = Foundation.GetYoDigits; // TODO: Separate this out?
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
/**
* Magellan module.
let Keyboard = Foundation.Keyboard; // import Keyboard from "foundation.util.keyboard";
let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
- let transitionend = Foundation.transitionend; // Should transitionend be refactored into it's own module?
+ let transitionend = Foundation.transitionend; // import { transitionend } from "foundation.util.core";
// import "foundation.util.triggers.js";
// TODO: Figure out what triggers import should actually do, given how indirect their use is
let Keyboard = Foundation.Keyboard; // import Keyboard from "foundation.util.keyboard";
- let Motion = Foundation.Motion; // import { Motion } from "foundation.util.move"
- let Timer = Foundation.Timer; // import Timer from "foundation.util.timer"
- let onImagesLoaded = Foundation.onImagesLoaded; // import onImagesLoaded from "foundation.util.imageLoader"
- let GetYoDigits = Foundation.GetYoDigits; // Add import after refactor
+ let Motion = Foundation.Motion; // import { Motion } from "foundation.util.move";
+ let Timer = Foundation.Timer; // import Timer from "foundation.util.timer";
+ let onImagesLoaded = Foundation.onImagesLoaded; // import onImagesLoaded from "foundation.util.imageLoader";
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
// import "foundation.util.touch.js"
// TODO: Figure out what a touch import should really do.
!function($) {
let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
- let GetYoDigits = Foundation.GetYoDigits; // separate out GetYoDigits into util
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
// import "foundation.util.triggers.js";
let Keyboard = Foundation.Keyboard; // import Keyboard from "foundation.util.keyboard";
let Move = Foundation.Move; // import { Move } from "foundation.util.motion";
- let GetYoDigits = Foundation.GetYoDigits; // figure out import after refactor TODO9438
- let Rtl = Foundation.rtl; // figure out import/refactor for encapsulation of rtl() TODO9438
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits, rtl } from "foundation.util.core";
+ let Rtl = Foundation.rtl;
/**
* Slider module.
* @module foundation.slider
!function($) {
- let GetYoDigits = Foundation.GetYoDigits; // figure out import after refactor TODO9438
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
/**
* Sticky module.
!function($) {
let Box = Foundation.Box; // import Box from "foundation.utils.box";
- let GetYoDigits = Foundation.GetYoDigits; // figure out import after refactor. TODO9438
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.utils.core";
let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.utils.mediaQuery";
// import "foundation.util.triggers";
!function($) {
- let Rtl = Foundation.rtl; // Figure out imports after refactor
+ let Rtl = Foundation.rtl; // import { rtl } from "foundation.util.core";
Foundation.Box = {
ImNotTouchingYou: ImNotTouchingYou,
--- /dev/null
+!function($) {
+
+"use strict";
+
+// Core Foundation Utilities, utilized in a number of places.
+
+ /**
+ * Returns a boolean for RTL support
+ */
+function rtl() {
+ return $('html').attr('dir') === 'rtl';
+}
+
+/**
+ * returns a random base-36 uid with namespacing
+ * @function
+ * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.
+ * @param {String} namespace - name of plugin to be incorporated in uid, optional.
+ * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.
+ * @returns {String} - unique id
+ */
+function GetYoDigits(length, namespace){
+ length = length || 6;
+ return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1) + (namespace ? `-${namespace}` : '');
+}
+
+function transitionend($elem){
+ var transitions = {
+ 'transition': 'transitionend',
+ 'WebkitTransition': 'webkitTransitionEnd',
+ 'MozTransition': 'transitionend',
+ 'OTransition': 'otransitionend'
+ };
+ var elem = document.createElement('div'),
+ end;
+
+ for (var t in transitions){
+ if (typeof elem.style[t] !== 'undefined'){
+ end = transitions[t];
+ }
+ }
+ if(end){
+ return end;
+ }else{
+ end = setTimeout(function(){
+ $elem.triggerHandler('transitionend', [$elem]);
+ }, 1);
+ return 'transitionend';
+ }
+}
+
+// export {rtl, GetYoDigits, transitionend}
+
+Foundation.rtl = rtl;
+Foundation.GetYoDigits = GetYoDigits;
+Foundation.transitionend = transitionend;
+
+}(jQuery)
!function($) {
- let Rtl = Foundation.rtl; // Figure out import after refactor
+ let Rtl = Foundation.rtl; // import { rtl } from "foundation.util.core";
const keyCodes = {
9: 'TAB',
!function($) {
let MediaQuery = Foundation.MediaQuery; // import MediaQuery from "foundation.util.mediaQuery";
- let GetYoDigits = Foundation.GetYoDigits;
+ let GetYoDigits = Foundation.GetYoDigits; // import { GetYoDigits } from "foundation.util.core";
/**
* ResponsiveAccordionTabs module.