UNPKG

58.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","installedModules","__webpack_require__","m","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_slider__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Slider","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__","Plugin","element","options","this","$element","$","extend","defaults","data","className","Touch","init","Triggers","_init","Keyboard","register","ltr","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","SHIFT_ARROW_RIGHT","SHIFT_ARROW_UP","SHIFT_ARROW_DOWN","SHIFT_ARROW_LEFT","HOME","END","rtl","inputs","find","handles","$handle","eq","$input","length","concat","attr","$fill","css","vertical","disabled","hasClass","disabledClass","addClass","add","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_events","_this2","_setHandlePos","val","value","pctOfBar","percent","start","end","positionValueFunction","_logTransform","_powTransform","toFixed","parseFloat","base","Math","log","baseLog","nonLinearBase","pow","$hndl","location","cb","isDbl","index","h2Val","step","h1Val","_this","vert","hOrW","lOrT","handleDim","getBoundingClientRect","elemDim","_pctOfBar","movement","decimal","_setValues","dim","isLeftHndl","handlePct","style","handlePos","isNaN","initialStart","one","trigger","moveTime","Move","clearTimeout","timeout","setTimeout","changedDelay","idx","initVal","initialEnd","id","GetYoDigits","max","min","role","aria-controls","aria-valuemax","aria-valuemin","aria-valuenow","aria-orientation","tabindex","e","_adjustValue","preventDefault","param","direction","eventOffset","pageY","pageX","barDim","windowScroll","scrollTop","scrollLeft","elemOffset","offset","clientY","barXY","eventFromBar","offsetPct","_value","Rtl","absPosition","left","prev_val","div","_eventsForHandle","handleChangeEvent","_handleEvent","curHandle","off","on","keyCode","call","clickSelect","target","is","draggable","addTouch","$body","currentTarget","removeClass","newValue","_$handle","oldValue","handleKey","decrease","increase","decrease_fast","increase_fast","handled","frac","num","dir","clickPos","abs","position","invertVertical","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","triggers","el","type","split","forEach","MutationObserver","prefixes","i","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","arguments","apply","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","_typeof","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","onLoad","triggersInitialized","IHearYou","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","key","bind","object","property","hasOwnProperty","p","s","moduleId","l","modules"],"mappings":"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","file":"foundation.slider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.slider\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.slider\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Slider } from '../../foundation.slider';\nFoundation.plugin(Slider, 'Slider');\n\nexport { Foundation, Slider };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n /**\n * Creates a new instance of a slider control.\n * @class\n * @name Slider\n * @param {jQuery} element - jQuery object to make into a slider control.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n this.className = 'Slider'; // ie9 back compat\n\n // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n Touch.init($);\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Slider', {\n 'ltr': {\n 'ARROW_RIGHT': 'increase',\n 'ARROW_UP': 'increase',\n 'ARROW_DOWN': 'decrease',\n 'ARROW_LEFT': 'decrease',\n 'SHIFT_ARROW_RIGHT': 'increase_fast',\n 'SHIFT_ARROW_UP': 'increase_fast',\n 'SHIFT_ARROW_DOWN': 'decrease_fast',\n 'SHIFT_ARROW_LEFT': 'decrease_fast',\n 'HOME': 'min',\n 'END': 'max'\n },\n 'rtl': {\n 'ARROW_LEFT': 'increase',\n 'ARROW_RIGHT': 'decrease',\n 'SHIFT_ARROW_LEFT': 'increase_fast',\n 'SHIFT_ARROW_RIGHT': 'decrease_fast'\n }\n });\n }\n\n /**\n * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n * @function\n * @private\n */\n _init() {\n this.inputs = this.$element.find('input');\n this.handles = this.$element.find('[data-slider-handle]');\n\n this.$handle = this.handles.eq(0);\n this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n var _this = this;\n if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n this.options.disabled = true;\n this.$element.addClass(this.options.disabledClass);\n }\n if (!this.inputs.length) {\n this.inputs = $().add(this.$input);\n this.options.binding = true;\n }\n\n this._setInitAttr(0);\n\n if (this.handles[1]) {\n this.options.doubleSided = true;\n this.$handle2 = this.handles.eq(1);\n this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n if (!this.inputs[1]) {\n this.inputs = this.inputs.add(this.$input2);\n }\n\n // this.$handle.triggerHandler('click.zf.slider');\n this._setInitAttr(1);\n }\n\n // Set handle positions\n this.setHandles();\n\n this._events();\n }\n\n setHandles() {\n if(this.handles[1]) {\n this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n });\n } else {\n this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n }\n }\n\n _reflow() {\n this.setHandles();\n }\n /**\n * @function\n * @private\n * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n */\n _pctOfBar(value) {\n var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n switch(this.options.positionValueFunction) {\n case \"pow\":\n pctOfBar = this._logTransform(pctOfBar);\n break;\n case \"log\":\n pctOfBar = this._powTransform(pctOfBar);\n break;\n }\n\n return pctOfBar.toFixed(2)\n }\n\n /**\n * @function\n * @private\n * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n */\n _value(pctOfBar) {\n switch(this.options.positionValueFunction) {\n case \"pow\":\n pctOfBar = this._powTransform(pctOfBar);\n break;\n case \"log\":\n pctOfBar = this._logTransform(pctOfBar);\n break;\n }\n\n var value\n if (this.options.vertical) {\n // linear interpolation which is working with negative values for start\n // https://math.stackexchange.com/a/1019084\n value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n } else {\n value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n }\n\n return value\n }\n\n /**\n * @function\n * @private\n * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n */\n _logTransform(value) {\n return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n }\n\n /**\n * @function\n * @private\n * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n */\n _powTransform(value) {\n return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n }\n\n /**\n * Sets the position of the selected handle and fill bar.\n * @function\n * @private\n * @param {jQuery} $hndl - the selected handle to move.\n * @param {Number} location - floating point between the start and end values of the slider bar.\n * @param {Function} cb - callback function to fire on completion.\n * @fires Slider#moved\n * @fires Slider#changed\n */\n _setHandlePos($hndl, location, cb) {\n // don't move if the slider has been disabled since its initialization\n if (this.$element.hasClass(this.options.disabledClass)) {\n return;\n }\n //might need to alter that slightly for bars that will have odd number selections.\n location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n if (location < this.options.start) { location = this.options.start; }\n else if (location > this.options.end) { location = this.options.end; }\n\n var isDbl = this.options.doubleSided;\n\n if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n if (this.handles.index($hndl) === 0) {\n var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n location = location >= h2Val ? h2Val - this.options.step : location;\n } else {\n var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n location = location <= h1Val ? h1Val + this.options.step : location;\n }\n }\n\n var _this = this,\n vert = this.options.vertical,\n hOrW = vert ? 'height' : 'width',\n lOrT = vert ? 'top' : 'left',\n handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n //percentage of bar min/max value based on click or drag point\n pctOfBar = this._pctOfBar(location),\n //number of actual pixels to shift the handle, based on the percentage obtained above\n pxToMove = (elemDim - handleDim) * pctOfBar,\n //percentage of bar to shift the handle\n movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n location = parseFloat(location.toFixed(this.options.decimal));\n // declare empty object for css adjustments, only used with 2 handled-sliders\n var css = {};\n\n this._setValues($hndl, location);\n\n // TODO update to calculate based on values set to respective inputs??\n if (isDbl) {\n var isLeftHndl = this.handles.index($hndl) === 0,\n //empty variable, will be used for min-height/width for fill bar\n dim,\n //percentage w/h of the handle compared to the slider bar\n handlePct = ~~(percent(handleDim, elemDim) * 100);\n //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n if (isLeftHndl) {\n //left or top percentage value to apply to the fill bar.\n css[lOrT] = `${movement}%`;\n //calculate the new min-height/width for the fill bar.\n dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n } else {\n //just caching the value of the left/bottom handle's left/top property\n var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n }\n // assign the min-height/width to our css object\n css[`min-${hOrW}`] = `${dim}%`;\n }\n\n this.$element.one('finished.zf.animate', function() {\n /**\n * Fires when the handle is done moving.\n * @event Slider#moved\n */\n _this.$element.trigger('moved.zf.slider', [$hndl]);\n });\n\n //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n Move(moveTime, $hndl, function() {\n // adjusting the left/top property of the handle, based on the percentage calculated above\n // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n // fall back to next best guess.\n if (isNaN(movement)) {\n $hndl.css(lOrT, `${pctOfBar * 100}%`);\n }\n else {\n $hndl.css(lOrT, `${movement}%`);\n }\n\n if (!_this.options.doubleSided) {\n //if single-handled, a simple method to expand the fill bar\n _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n } else {\n //otherwise, use the css object we created above\n _this.$fill.css(css);\n }\n });\n\n\n /**\n * Fires when the value has not been change for a given time.\n * @event Slider#changed\n */\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.$element.trigger('changed.zf.slider', [$hndl]);\n }, _this.options.changedDelay);\n }\n\n /**\n * Sets the initial attribute for the slider element.\n * @function\n * @private\n * @param {Number} idx - index of the current handle/input to use.\n */\n _setInitAttr(idx) {\n var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n this.inputs.eq(idx).attr({\n 'id': id,\n 'max': this.options.end,\n 'min': this.options.start,\n 'step': this.options.step\n });\n this.inputs.eq(idx).val(initVal);\n this.handles.eq(idx).attr({\n 'role': 'slider',\n 'aria-controls': id,\n 'aria-valuemax': this.options.end,\n 'aria-valuemin': this.options.start,\n 'aria-valuenow': initVal,\n 'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n 'tabindex': 0\n });\n }\n\n /**\n * Sets the input and `aria-valuenow` values for the slider element.\n * @function\n * @private\n * @param {jQuery} $handle - the currently selected handle.\n * @param {Number} val - floating point of the new value.\n */\n _setValues($handle, val) {\n var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n this.inputs.eq(idx).val(val);\n $handle.attr('aria-valuenow', val);\n }\n\n /**\n * Handles events on the slider element.\n * Calculates the new location of the current handle.\n * If there are two handles and the bar was clicked, it determines which handle to move.\n * @function\n * @private\n * @param {Object} e - the `event` object passed from the listener.\n * @param {jQuery} $handle - the current handle to calculate for, if selected.\n * @param {Number} val - floating point number for the new value of the slider.\n * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n */\n _handleEvent(e, $handle, val) {\n var value, hasVal;\n if (!val) {//click or drag events\n e.preventDefault();\n var _this = this,\n vertical = this.options.vertical,\n param = vertical ? 'height' : 'width',\n direction = vertical ? 'top' : 'left',\n eventOffset = vertical ? e.pageY : e.pageX,\n barDim = this.$element[0].getBoundingClientRect()[param],\n windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n var elemOffset = this.$element.offset()[direction];\n\n // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n // best way to guess this is simulated is if clientY == pageY\n if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n var eventFromBar = eventOffset - elemOffset;\n var barXY;\n if (eventFromBar < 0) {\n barXY = 0;\n } else if (eventFromBar > barDim) {\n barXY = barDim;\n } else {\n barXY = eventFromBar;\n }\n var offsetPct = percent(barXY, barDim);\n\n value = this._value(offsetPct);\n\n // turn everything around for RTL, yay math!\n if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n value = _this._adjustValue(null, value);\n //boolean flag for the setHandlePos fn, specifically for vertical sliders\n hasVal = false;\n\n if (!$handle) {//figure out which handle it is, pass it to the next function.\n var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n }\n\n } else {//change event on input\n value = this._adjustValue(null, val);\n hasVal = true;\n }\n\n this._setHandlePos($handle, value);\n }\n\n /**\n * Adjustes value for handle in regard to step value. returns adjusted value\n * @function\n * @private\n * @param {jQuery} $handle - the selected handle.\n * @param {Number} value - value to adjust. used if $handle is falsy\n */\n _adjustValue($handle, value) {\n var val,\n step = this.options.step,\n div = parseFloat(step/2),\n left, prev_val, next_val;\n if (!!$handle) {\n val = parseFloat($handle.attr('aria-valuenow'));\n }\n else {\n val = value;\n }\n if (val >= 0) {\n left = val % step;\n } else {\n left = step + (val % step);\n }\n prev_val = val - left;\n next_val = prev_val + step;\n if (left === 0) {\n return val;\n }\n val = val >= prev_val + div ? next_val : prev_val;\n return val;\n }\n\n /**\n * Adds event listeners to the slider elements.\n * @function\n * @private\n */\n _events() {\n this._eventsForHandle(this.$handle);\n if(this.handles[1]) {\n this._eventsForHandle(this.$handle2);\n }\n }\n\n\n /**\n * Adds event listeners a particular handle\n * @function\n * @private\n * @param {jQuery} $handle - the current handle to apply listeners to.\n */\n _eventsForHandle($handle) {\n var _this = this,\n curHandle;\n\n const handleChangeEvent = function(e) {\n const idx = _this.inputs.index($(this));\n _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n };\n\n // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n // listen for the enter key and trigger a change\n // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n if(e.keyCode == 13) handleChangeEvent.call(this, e);\n });\n\n this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n if (this.options.clickSelect) {\n this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n if (_this.$element.data('dragging')) { return false; }\n\n if (!$(e.target).is('[data-slider-handle]')) {\n if (_this.options.doubleSided) {\n _this._handleEvent(e);\n } else {\n _this._handleEvent(e, _this.$handle);\n }\n }\n });\n }\n\n if (this.options.draggable) {\n this.handles.addTouch();\n\n var $body = $('body');\n $handle\n .off('mousedown.zf.slider')\n .on('mousedown.zf.slider', function(e) {\n $handle.addClass('is-dragging');\n _this.$fill.addClass('is-dragging');//\n _this.$element.data('dragging', true);\n\n curHandle = $(e.currentTarget);\n\n $body.on('mousemove.zf.slider', function(e) {\n e.preventDefault();\n _this._handleEvent(e, curHandle);\n\n }).on('mouseup.zf.slider', function(e) {\n _this._handleEvent(e, curHandle);\n\n $handle.removeClass('is-dragging');\n _this.$fill.removeClass('is-dragging');\n _this.$element.data('dragging', false);\n\n $body.off('mousemove.zf.slider mouseup.zf.slider');\n });\n })\n // prevent events triggered by touch\n .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n e.preventDefault();\n });\n }\n\n $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n var _$handle = $(this),\n idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n oldValue = parseFloat(_this.inputs.eq(idx).val()),\n newValue;\n\n // handle keyboard event with keyboard util\n Keyboard.handleKey(e, 'Slider', {\n decrease: function() {\n newValue = oldValue - _this.options.step;\n },\n increase: function() {\n newValue = oldValue + _this.options.step;\n },\n decrease_fast: function() {\n newValue = oldValue - _this.options.step * 10;\n },\n increase_fast: function() {\n newValue = oldValue + _this.options.step * 10;\n },\n min: function() {\n newValue = _this.options.start;\n },\n max: function() {\n newValue = _this.options.end;\n },\n handled: function() { // only set handle pos when event was handled specially\n e.preventDefault();\n _this._setHandlePos(_$handle, newValue);\n }\n });\n /*if (newValue) { // if pressed key has special function, update value\n e.preventDefault();\n _this._setHandlePos(_$handle, newValue);\n }*/\n });\n }\n\n /**\n * Destroys the slider plugin.\n */\n _destroy() {\n this.handles.off('.zf.slider');\n this.inputs.off('.zf.slider');\n this.$element.off('.zf.slider');\n\n clearTimeout(this.timeout);\n }\n}\n\nSlider.defaults = {\n /**\n * Minimum value for the slider scale.\n * @option\n * @type {number}\n * @default 0\n */\n start: 0,\n /**\n * Maximum value for the slider scale.\n * @option\n * @type {number}\n * @default 100\n */\n end: 100,\n /**\n * Minimum value change per change event.\n * @option\n * @type {number}\n * @default 1\n */\n step: 1,\n /**\n * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n * @option\n * @type {number}\n * @default 0\n */\n initialStart: 0,\n /**\n * Value at which the right handle/second input should be set to on initialization.\n * @option\n * @type {number}\n * @default 100\n */\n initialEnd: 100,\n /**\n * Allows the input to be located outside the container and visible. Set to by the JS\n * @option\n * @type {boolean}\n * @default false\n */\n binding: false,\n /**\n * Allows the user to click/tap on the slider bar to select a value.\n * @option\n * @type {boolean}\n * @default true\n */\n clickSelect: true,\n /**\n * Set to true and use the `vertical` class to change alignment to vertical.\n * @option\n * @type {boolean}\n * @default false\n */\n vertical: false,\n /**\n * Allows the user to drag the slider handle(s) to select a value.\n * @option\n * @type {boolean}\n * @default true\n */\n draggable: true,\n /**\n * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n * @option\n * @type {boolean}\n * @default false\n */\n disabled: false,\n /**\n * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n * @option\n * @type {boolean}\n * @default false\n */\n doubleSided: false,\n /**\n * Potential future feature.\n */\n // steps: 100,\n /**\n * Number of decimal places the plugin should go to for floating point precision.\n * @option\n * @type {number}\n * @default 2\n */\n decimal: 2,\n /**\n * Time delay for dragged elements.\n */\n // dragDelay: 0,\n /**\n * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n * @option\n * @type {number}\n * @default 200\n */\n moveTime: 200,//update this if changing the transition time in the sass\n /**\n * Class applied to disabled sliders.\n * @option\n * @type {string}\n * @default 'disabled'\n */\n disabledClass: 'disabled',\n /**\n * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n * @option\n * @type {boolean}\n * @default false\n */\n invertVertical: false,\n /**\n * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n * @option\n * @type {number}\n * @default 500\n */\n changedDelay: 500,\n /**\n * Basevalue for non-linear sliders\n * @option\n * @type {number}\n * @default 5\n */\n nonLinearBase: 5,\n /**\n * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n * @option\n * @type {string}\n * @default 'linear'\n */\n positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"]}
\No newline at end of file