Spaces:
Running
Running
(function webpackUniversalModuleDefinition(root, factory) { | |
if(typeof exports === 'object' && typeof module === 'object') | |
module.exports = factory(); | |
else if(typeof define === 'function' && define.amd) | |
define([], factory); | |
else if(typeof exports === 'object') | |
exports["bulmaSlider"] = factory(); | |
else | |
root["bulmaSlider"] = factory(); | |
})(typeof self !== 'undefined' ? self : this, function() { | |
return /******/ (function(modules) { // webpackBootstrap | |
/******/ // The module cache | |
/******/ var installedModules = {}; | |
/******/ | |
/******/ // The require function | |
/******/ function __webpack_require__(moduleId) { | |
/******/ | |
/******/ // Check if module is in cache | |
/******/ if(installedModules[moduleId]) { | |
/******/ return installedModules[moduleId].exports; | |
/******/ } | |
/******/ // Create a new module (and put it into the cache) | |
/******/ var module = installedModules[moduleId] = { | |
/******/ i: moduleId, | |
/******/ l: false, | |
/******/ exports: {} | |
/******/ }; | |
/******/ | |
/******/ // Execute the module function | |
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | |
/******/ | |
/******/ // Flag the module as loaded | |
/******/ module.l = true; | |
/******/ | |
/******/ // Return the exports of the module | |
/******/ return module.exports; | |
/******/ } | |
/******/ | |
/******/ | |
/******/ // expose the modules object (__webpack_modules__) | |
/******/ __webpack_require__.m = modules; | |
/******/ | |
/******/ // expose the module cache | |
/******/ __webpack_require__.c = installedModules; | |
/******/ | |
/******/ // define getter function for harmony exports | |
/******/ __webpack_require__.d = function(exports, name, getter) { | |
/******/ if(!__webpack_require__.o(exports, name)) { | |
/******/ Object.defineProperty(exports, name, { | |
/******/ configurable: false, | |
/******/ enumerable: true, | |
/******/ get: getter | |
/******/ }); | |
/******/ } | |
/******/ }; | |
/******/ | |
/******/ // getDefaultExport function for compatibility with non-harmony modules | |
/******/ __webpack_require__.n = function(module) { | |
/******/ var getter = module && module.__esModule ? | |
/******/ function getDefault() { return module['default']; } : | |
/******/ function getModuleExports() { return module; }; | |
/******/ __webpack_require__.d(getter, 'a', getter); | |
/******/ return getter; | |
/******/ }; | |
/******/ | |
/******/ // Object.prototype.hasOwnProperty.call | |
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | |
/******/ | |
/******/ // __webpack_public_path__ | |
/******/ __webpack_require__.p = ""; | |
/******/ | |
/******/ // Load entry module and return exports | |
/******/ return __webpack_require__(__webpack_require__.s = 0); | |
/******/ }) | |
/************************************************************************/ | |
/******/ ([ | |
/* 0 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
; | |
Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isString", function() { return isString; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__events__ = __webpack_require__(1); | |
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | |
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | |
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | |
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | |
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | |
var isString = function isString(unknown) { | |
return typeof unknown === 'string' || !!unknown && (typeof unknown === 'undefined' ? 'undefined' : _typeof(unknown)) === 'object' && Object.prototype.toString.call(unknown) === '[object String]'; | |
}; | |
var bulmaSlider = function (_EventEmitter) { | |
_inherits(bulmaSlider, _EventEmitter); | |
function bulmaSlider(selector) { | |
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | |
_classCallCheck(this, bulmaSlider); | |
var _this = _possibleConstructorReturn(this, (bulmaSlider.__proto__ || Object.getPrototypeOf(bulmaSlider)).call(this)); | |
_this.element = typeof selector === 'string' ? document.querySelector(selector) : selector; | |
// An invalid selector or non-DOM node has been provided. | |
if (!_this.element) { | |
throw new Error('An invalid selector or non-DOM node has been provided.'); | |
} | |
_this._clickEvents = ['click']; | |
/// Set default options and merge with instance defined | |
_this.options = _extends({}, options); | |
_this.onSliderInput = _this.onSliderInput.bind(_this); | |
_this.init(); | |
return _this; | |
} | |
/** | |
* Initiate all DOM element containing selector | |
* @method | |
* @return {Array} Array of all slider instances | |
*/ | |
_createClass(bulmaSlider, [{ | |
key: 'init', | |
/** | |
* Initiate plugin | |
* @method init | |
* @return {void} | |
*/ | |
value: function init() { | |
this._id = 'bulmaSlider' + new Date().getTime() + Math.floor(Math.random() * Math.floor(9999)); | |
this.output = this._findOutputForSlider(); | |
this._bindEvents(); | |
if (this.output) { | |
if (this.element.classList.contains('has-output-tooltip')) { | |
// Get new output position | |
var newPosition = this._getSliderOutputPosition(); | |
// Set output position | |
this.output.style['left'] = newPosition.position; | |
} | |
} | |
this.emit('bulmaslider:ready', this.element.value); | |
} | |
}, { | |
key: '_findOutputForSlider', | |
value: function _findOutputForSlider() { | |
var _this2 = this; | |
var result = null; | |
var outputs = document.getElementsByTagName('output') || []; | |
Array.from(outputs).forEach(function (output) { | |
if (output.htmlFor == _this2.element.getAttribute('id')) { | |
result = output; | |
return true; | |
} | |
}); | |
return result; | |
} | |
}, { | |
key: '_getSliderOutputPosition', | |
value: function _getSliderOutputPosition() { | |
// Update output position | |
var newPlace, minValue; | |
var style = window.getComputedStyle(this.element, null); | |
// Measure width of range input | |
var sliderWidth = parseInt(style.getPropertyValue('width'), 10); | |
// Figure out placement percentage between left and right of input | |
if (!this.element.getAttribute('min')) { | |
minValue = 0; | |
} else { | |
minValue = this.element.getAttribute('min'); | |
} | |
var newPoint = (this.element.value - minValue) / (this.element.getAttribute('max') - minValue); | |
// Prevent bubble from going beyond left or right (unsupported browsers) | |
if (newPoint < 0) { | |
newPlace = 0; | |
} else if (newPoint > 1) { | |
newPlace = sliderWidth; | |
} else { | |
newPlace = sliderWidth * newPoint; | |
} | |
return { | |
'position': newPlace + 'px' | |
}; | |
} | |
/** | |
* Bind all events | |
* @method _bindEvents | |
* @return {void} | |
*/ | |
}, { | |
key: '_bindEvents', | |
value: function _bindEvents() { | |
if (this.output) { | |
// Add event listener to update output when slider value change | |
this.element.addEventListener('input', this.onSliderInput, false); | |
} | |
} | |
}, { | |
key: 'onSliderInput', | |
value: function onSliderInput(e) { | |
e.preventDefault(); | |
if (this.element.classList.contains('has-output-tooltip')) { | |
// Get new output position | |
var newPosition = this._getSliderOutputPosition(); | |
// Set output position | |
this.output.style['left'] = newPosition.position; | |
} | |
// Check for prefix and postfix | |
var prefix = this.output.hasAttribute('data-prefix') ? this.output.getAttribute('data-prefix') : ''; | |
var postfix = this.output.hasAttribute('data-postfix') ? this.output.getAttribute('data-postfix') : ''; | |
// Update output with slider value | |
this.output.value = prefix + this.element.value + postfix; | |
this.emit('bulmaslider:ready', this.element.value); | |
} | |
}], [{ | |
key: 'attach', | |
value: function attach() { | |
var _this3 = this; | |
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'input[type="range"].slider'; | |
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | |
var instances = new Array(); | |
var elements = isString(selector) ? document.querySelectorAll(selector) : Array.isArray(selector) ? selector : [selector]; | |
elements.forEach(function (element) { | |
if (typeof element[_this3.constructor.name] === 'undefined') { | |
var instance = new bulmaSlider(element, options); | |
element[_this3.constructor.name] = instance; | |
instances.push(instance); | |
} else { | |
instances.push(element[_this3.constructor.name]); | |
} | |
}); | |
return instances; | |
} | |
}]); | |
return bulmaSlider; | |
}(__WEBPACK_IMPORTED_MODULE_0__events__["a" /* default */]); | |
/* harmony default export */ __webpack_exports__["default"] = (bulmaSlider); | |
/***/ }), | |
/* 1 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
; | |
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | |
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | |
var EventEmitter = function () { | |
function EventEmitter() { | |
var listeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; | |
_classCallCheck(this, EventEmitter); | |
this._listeners = new Map(listeners); | |
this._middlewares = new Map(); | |
} | |
_createClass(EventEmitter, [{ | |
key: "listenerCount", | |
value: function listenerCount(eventName) { | |
if (!this._listeners.has(eventName)) { | |
return 0; | |
} | |
var eventListeners = this._listeners.get(eventName); | |
return eventListeners.length; | |
} | |
}, { | |
key: "removeListeners", | |
value: function removeListeners() { | |
var _this = this; | |
var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; | |
var middleware = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | |
if (eventName !== null) { | |
if (Array.isArray(eventName)) { | |
name.forEach(function (e) { | |
return _this.removeListeners(e, middleware); | |
}); | |
} else { | |
this._listeners.delete(eventName); | |
if (middleware) { | |
this.removeMiddleware(eventName); | |
} | |
} | |
} else { | |
this._listeners = new Map(); | |
} | |
} | |
}, { | |
key: "middleware", | |
value: function middleware(eventName, fn) { | |
var _this2 = this; | |
if (Array.isArray(eventName)) { | |
name.forEach(function (e) { | |
return _this2.middleware(e, fn); | |
}); | |
} else { | |
if (!Array.isArray(this._middlewares.get(eventName))) { | |
this._middlewares.set(eventName, []); | |
} | |
this._middlewares.get(eventName).push(fn); | |
} | |
} | |
}, { | |
key: "removeMiddleware", | |
value: function removeMiddleware() { | |
var _this3 = this; | |
var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; | |
if (eventName !== null) { | |
if (Array.isArray(eventName)) { | |
name.forEach(function (e) { | |
return _this3.removeMiddleware(e); | |
}); | |
} else { | |
this._middlewares.delete(eventName); | |
} | |
} else { | |
this._middlewares = new Map(); | |
} | |
} | |
}, { | |
key: "on", | |
value: function on(name, callback) { | |
var _this4 = this; | |
var once = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; | |
if (Array.isArray(name)) { | |
name.forEach(function (e) { | |
return _this4.on(e, callback); | |
}); | |
} else { | |
name = name.toString(); | |
var split = name.split(/,|, | /); | |
if (split.length > 1) { | |
split.forEach(function (e) { | |
return _this4.on(e, callback); | |
}); | |
} else { | |
if (!Array.isArray(this._listeners.get(name))) { | |
this._listeners.set(name, []); | |
} | |
this._listeners.get(name).push({ once: once, callback: callback }); | |
} | |
} | |
} | |
}, { | |
key: "once", | |
value: function once(name, callback) { | |
this.on(name, callback, true); | |
} | |
}, { | |
key: "emit", | |
value: function emit(name, data) { | |
var _this5 = this; | |
var silent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; | |
name = name.toString(); | |
var listeners = this._listeners.get(name); | |
var middlewares = null; | |
var doneCount = 0; | |
var execute = silent; | |
if (Array.isArray(listeners)) { | |
listeners.forEach(function (listener, index) { | |
// Start Middleware checks unless we're doing a silent emit | |
if (!silent) { | |
middlewares = _this5._middlewares.get(name); | |
// Check and execute Middleware | |
if (Array.isArray(middlewares)) { | |
middlewares.forEach(function (middleware) { | |
middleware(data, function () { | |
var newData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; | |
if (newData !== null) { | |
data = newData; | |
} | |
doneCount++; | |
}, name); | |
}); | |
if (doneCount >= middlewares.length) { | |
execute = true; | |
} | |
} else { | |
execute = true; | |
} | |
} | |
// If Middleware checks have been passed, execute | |
if (execute) { | |
if (listener.once) { | |
listeners[index] = null; | |
} | |
listener.callback(data); | |
} | |
}); | |
// Dirty way of removing used Events | |
while (listeners.indexOf(null) !== -1) { | |
listeners.splice(listeners.indexOf(null), 1); | |
} | |
} | |
} | |
}]); | |
return EventEmitter; | |
}(); | |
/* harmony default export */ __webpack_exports__["a"] = (EventEmitter); | |
/***/ }) | |
/******/ ])["default"]; | |
}); |