1 line
68 KiB
Plaintext
1 line
68 KiB
Plaintext
{"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.core\"],\"amd\":\"./foundation.core.plugin\",\"commonjs\":\"./foundation.core.plugin\",\"commonjs2\":\"./foundation.core.plugin\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.utils\",\"commonjs\":\"./foundation.core.utils\",\"commonjs2\":\"./foundation.core.utils\"}","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":["Foundation","plugin","Slider","element","options","$element","$","extend","defaults","data","className","Touch","init","Triggers","_init","Keyboard","register","inputs","find","handles","$handle","eq","$input","length","attr","$fill","css","vertical","isDbl","_this","disabled","hasClass","disabledClass","addClass","add","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_events","_setHandlePos","val","value","pctOfBar","percent","start","end","positionValueFunction","_logTransform","_powTransform","toFixed","parseFloat","baseLog","nonLinearBase","Math","pow","$hndl","location","noInvert","cb","index","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","getBoundingClientRect","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","style","handlePos","isNaN","initialStart","one","trigger","moveTime","Move","clearTimeout","timeout","setTimeout","changedDelay","idx","initVal","initialEnd","id","GetYoDigits","e","hasVal","preventDefault","param","direction","eventOffset","pageY","pageX","halfOfHandle","barDim","windowScroll","window","scrollTop","scrollLeft","elemOffset","offset","clientY","eventFromBar","barXY","offsetPct","_value","Rtl","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","left","prev_val","next_val","_eventsForHandle","curHandle","timer","handleChangeEvent","_handleEvent","off","on","keyCode","call","clickSelect","target","is","draggable","addTouch","$body","currentTarget","removeClass","_$handle","oldValue","newValue","handleKey","decrease","increase","decrease_fast","increase_fast","min","max","handled","Plugin","invertVertical","frac","num","dir","clickPos","abs","position","base","log","MutationObserver","prefixes","i","triggers","el","type","split","forEach","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","stopPropagation","animation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","plugins","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","concat","console","error","listeners","map","name","join","debounceGlobalListener","debounce","listener","args","Array","prototype","slice","arguments","apply","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","onLoad","triggersInitialized","IHearYou"],"mappings":"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","file":"foundation.slider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.motion\"), require(\"./foundation.core.utils\"), require(\"./foundation.core.plugin\"), require(\"./foundation.util.touch\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.util.keyboard\", \"./foundation.core\", \"jquery\", \"./foundation.util.motion\", \"./foundation.core.utils\", \"./foundation.core.plugin\", \"./foundation.util.touch\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.slider\"] = factory(require(\"./foundation.util.keyboard\"), require(\"./foundation.core\"), require(\"jquery\"), require(\"./foundation.util.motion\"), require(\"./foundation.core.utils\"), require(\"./foundation.core.plugin\"), require(\"./foundation.util.touch\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.slider\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__, __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__) {\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_core_plugin__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__;","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 isDbl = false,\n _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 isDbl = true;\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(), true, () => {\n this._setHandlePos(this.$handle2, this.inputs.eq(1).val(), true);\n });\n } else {\n this._setHandlePos(this.$handle, this.inputs.eq(0).val(), true);\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 var value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\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, noInvert, 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 //this is for single-handled vertical sliders, it adjusts the value to account for the slider being \"upside-down\"\n //for click and drag events, it's weird due to the scale(-1, 1) css property\n if (this.options.vertical && !noInvert) {\n location = this.options.end - location;\n }\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 halfOfHandle = this.$handle[0].getBoundingClientRect()[param] / 2,\n barDim = this.$element[0].getBoundingClientRect()[param],\n windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\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, hasVal);\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 timer;\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, true);\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 e.stopPropagation();\n let animation = $(this).data('closable');\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.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__;"],"sourceRoot":""} |