react-widgets
Version:
An à la carte set of polished, extensible, and accessible inputs built for React
1,649 lines (1,294 loc) • 278 kB
JavaScript
/*! (c) 2015 Jason Quense | https://github.com/jquense/react-widgets/blob/master/License.txt */
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"), require("react-dom"));
else if(typeof define === 'function' && define.amd)
define([, ], factory);
else if(typeof exports === 'object')
exports["ReactWidgets"] = factory(require("react"), require("react-dom"));
else
root["ReactWidgets"] = factory(root["React"], root["ReactDOM"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_21__, __WEBPACK_EXTERNAL_MODULE_32__) {
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] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = 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;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {'use strict';
var babelHelpers = __webpack_require__(2);
var configure = __webpack_require__(3);
if (process.env.NODE_ENV !== 'production') {
[Array.prototype.some, Array.prototype.filter, Array.prototype.reduce].forEach(function (method) {
if (!method) throw new Error('One or more ES5 features is not available to ReactWidgets: http://jquense.github.io/react-widgets/docs/#/getting-started/browser');
});
}
module.exports = babelHelpers._extends({}, configure, {
DropdownList: __webpack_require__(22),
Combobox: __webpack_require__(57),
Calendar: __webpack_require__(61),
DateTimePicker: __webpack_require__(75),
NumberPicker: __webpack_require__(78),
Multiselect: __webpack_require__(81),
SelectList: __webpack_require__(84),
utils: {
ReplaceTransitionGroup: __webpack_require__(73),
SlideTransition: __webpack_require__(72)
}
});
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
/***/ },
/* 1 */
/***/ function(module, exports) {
// shim for using process in browser
var process = module.exports = {};
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;
function cleanUpNextTick() {
draining = false;
if (currentQueue.length) {
queue = currentQueue.concat(queue);
} else {
queueIndex = -1;
}
if (queue.length) {
drainQueue();
}
}
function drainQueue() {
if (draining) {
return;
}
var timeout = setTimeout(cleanUpNextTick);
draining = true;
var len = queue.length;
while(len) {
currentQueue = queue;
queue = [];
while (++queueIndex < len) {
if (currentQueue) {
currentQueue[queueIndex].run();
}
}
queueIndex = -1;
len = queue.length;
}
currentQueue = null;
draining = false;
clearTimeout(timeout);
}
process.nextTick = function (fun) {
var args = new Array(arguments.length - 1);
if (arguments.length > 1) {
for (var i = 1; i < arguments.length; i++) {
args[i - 1] = arguments[i];
}
}
queue.push(new Item(fun, args));
if (queue.length === 1 && !draining) {
setTimeout(drainQueue, 0);
}
};
// v8 likes predictible objects
function Item(fun, array) {
this.fun = fun;
this.array = array;
}
Item.prototype.run = function () {
this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};
function noop() {}
process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.binding = function (name) {
throw new Error('process.binding is not supported');
};
process.cwd = function () { return '/' };
process.chdir = function (dir) {
throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };
/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {
if (true) {
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else if (typeof exports === "object") {
factory(exports);
} else {
factory(root.babelHelpers = {});
}
})(this, function (global) {
var babelHelpers = global;
babelHelpers.createDecoratedObject = function (descriptors) {
var target = {};
for (var i = 0; i < descriptors.length; i++) {
var descriptor = descriptors[i];
var decorators = descriptor.decorators;
var key = descriptor.key;
delete descriptor.key;
delete descriptor.decorators;
descriptor.enumerable = true;
descriptor.configurable = true;
if ("value" in descriptor || descriptor.initializer) descriptor.writable = true;
if (decorators) {
for (var f = 0; f < decorators.length; f++) {
var decorator = decorators[f];
if (typeof decorator === "function") {
descriptor = decorator(target, key, descriptor) || descriptor;
} else {
throw new TypeError("The decorator for method " + descriptor.key + " is of the invalid type " + typeof decorator);
}
}
}
if (descriptor.initializer) {
descriptor.value = descriptor.initializer.call(target);
}
Object.defineProperty(target, key, descriptor);
}
return target;
};
babelHelpers.objectWithoutProperties = function (obj, keys) {
var target = {};
for (var i in obj) {
if (keys.indexOf(i) >= 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
};
babelHelpers.interopRequireWildcard = function (obj) {
if (obj && obj.__esModule) {
return obj;
} else {
var newObj = {};
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
}
}
newObj["default"] = obj;
return newObj;
}
};
babelHelpers.interopRequireDefault = function (obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
};
babelHelpers._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;
};
})
/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var babelHelpers = __webpack_require__(2);
exports.__esModule = true;
var _utilConfiguration = __webpack_require__(4);
var _utilConfiguration2 = babelHelpers.interopRequireDefault(_utilConfiguration);
var _utilLocalizers = __webpack_require__(18);
var localizers = babelHelpers.interopRequireWildcard(_utilLocalizers);
exports['default'] = {
setAnimate: function setAnimate(animatefn) {
_utilConfiguration2['default'].animate = animatefn;
},
setLocalizers: function setLocalizers(_ref) {
var date = _ref.date;
var number = _ref.number;
date && this.setDateLocalizer(date);
number && this.setNumberLocalizer(number);
},
setDateLocalizer: localizers.setDate,
setNumberLocalizer: localizers.setNumber
};
module.exports = exports['default'];
/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var babelHelpers = __webpack_require__(2);
exports.__esModule = true;
var _domAnimate = __webpack_require__(5);
var _domAnimate2 = babelHelpers.interopRequireDefault(_domAnimate);
exports['default'] = { animate: _domAnimate2['default'] };
module.exports = exports['default'];
/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var babelHelpers = __webpack_require__(2);
exports.__esModule = true;
exports['default'] = animate;
var _domHelpersUtilHyphenate = __webpack_require__(6);
var _domHelpersUtilHyphenate2 = babelHelpers.interopRequireDefault(_domHelpersUtilHyphenate);
var _domHelpersStyle = __webpack_require__(7);
var _domHelpersStyle2 = babelHelpers.interopRequireDefault(_domHelpersStyle);
var _domHelpersEventsOn = __webpack_require__(14);
var _domHelpersEventsOn2 = babelHelpers.interopRequireDefault(_domHelpersEventsOn);
var _domHelpersEventsOff = __webpack_require__(16);
var _domHelpersEventsOff2 = babelHelpers.interopRequireDefault(_domHelpersEventsOff);
var _domHelpersTransitionProperties = __webpack_require__(17);
var _domHelpersTransitionProperties2 = babelHelpers.interopRequireDefault(_domHelpersTransitionProperties);
var has = Object.prototype.hasOwnProperty,
reset = {},
TRANSLATION_MAP = {
left: 'translateX',
right: 'translateX',
top: 'translateY',
bottom: 'translateY'
};
reset[_domHelpersTransitionProperties2['default'].property] = reset[_domHelpersTransitionProperties2['default'].duration] = reset[_domHelpersTransitionProperties2['default'].delay] = reset[_domHelpersTransitionProperties2['default'].timing] = '';
animate.endEvent = _domHelpersTransitionProperties2['default'].end;
animate.transform = _domHelpersTransitionProperties2['default'].transform;
animate.TRANSLATION_MAP = TRANSLATION_MAP;
// super lean animate function for transitions
// doesn't support all translations to keep it matching the jquery API
/**
* code in part from: Zepto 1.1.4 | zeptojs.com/license
*/
function animate(node, properties, duration, easing, callback) {
var cssProperties = [],
fakeEvent = { target: node, currentTarget: node },
cssValues = {},
transforms = '',
fired;
if (typeof easing === 'function') callback = easing, easing = null;
if (!_domHelpersTransitionProperties2['default'].end) duration = 0;
if (duration === undefined) duration = 200;
for (var key in properties) if (has.call(properties, key)) {
if (/(top|bottom)/.test(key)) transforms += TRANSLATION_MAP[key] + '(' + properties[key] + ') ';else {
cssValues[key] = properties[key];
cssProperties.push(_domHelpersUtilHyphenate2['default'](key));
}
}
if (transforms) {
cssValues[_domHelpersTransitionProperties2['default'].transform] = transforms;
cssProperties.push(_domHelpersTransitionProperties2['default'].transform);
}
if (duration > 0) {
cssValues[_domHelpersTransitionProperties2['default'].property] = cssProperties.join(', ');
cssValues[_domHelpersTransitionProperties2['default'].duration] = duration / 1000 + 's';
cssValues[_domHelpersTransitionProperties2['default'].delay] = 0 + 's';
cssValues[_domHelpersTransitionProperties2['default'].timing] = easing || 'linear';
_domHelpersEventsOn2['default'](node, _domHelpersTransitionProperties2['default'].end, done);
setTimeout(function () {
if (!fired) done(fakeEvent);
}, duration + 500);
}
node.clientLeft; // trigger page reflow
_domHelpersStyle2['default'](node, cssValues);
if (duration <= 0) setTimeout(done.bind(null, fakeEvent), 0);
function done(event) {
if (event.target !== event.currentTarget) return;
fired = true;
_domHelpersEventsOff2['default'](event.target, _domHelpersTransitionProperties2['default'].end, done);
_domHelpersStyle2['default'](node, reset);
callback && callback.call(this);
}
}
module.exports = exports['default'];
/***/ },
/* 6 */
/***/ function(module, exports) {
'use strict';
var rUpper = /([A-Z])/g;
module.exports = function hyphenate(string) {
return string.replace(rUpper, '-$1').toLowerCase();
};
/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var camelize = __webpack_require__(8),
hyphenate = __webpack_require__(10),
_getComputedStyle = __webpack_require__(11),
removeStyle = __webpack_require__(13);
var has = Object.prototype.hasOwnProperty;
module.exports = function style(node, property, value) {
var css = '',
props = property;
if (typeof property === 'string') {
if (value === undefined) return node.style[camelize(property)] || _getComputedStyle(node).getPropertyValue(hyphenate(property));else (props = {})[property] = value;
}
for (var key in props) if (has.call(props, key)) {
!props[key] && props[key] !== 0 ? removeStyle(node, hyphenate(key)) : css += hyphenate(key) + ':' + props[key] + ';';
}
node.style.cssText += ';' + css;
};
/***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) {
/**
* Copyright 2014-2015, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
*/
'use strict';
var camelize = __webpack_require__(9);
var msPattern = /^-ms-/;
module.exports = function camelizeStyleName(string) {
return camelize(string.replace(msPattern, 'ms-'));
};
/***/ },
/* 9 */
/***/ function(module, exports) {
"use strict";
var rHyphen = /-(.)/g;
module.exports = function camelize(string) {
return string.replace(rHyphen, function (_, chr) {
return chr.toUpperCase();
});
};
/***/ },
/* 10 */
/***/ function(module, exports, __webpack_require__) {
/**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
"use strict";
var hyphenate = __webpack_require__(6);
var msPattern = /^ms-/;
module.exports = function hyphenateStyleName(string) {
return hyphenate(string).replace(msPattern, "-ms-");
};
/***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var babelHelpers = __webpack_require__(12);
var _utilCamelizeStyle = __webpack_require__(8);
var _utilCamelizeStyle2 = babelHelpers.interopRequireDefault(_utilCamelizeStyle);
var rposition = /^(top|right|bottom|left)$/;
var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
module.exports = function _getComputedStyle(node) {
if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
var doc = node.ownerDocument;
return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
getPropertyValue: function getPropertyValue(prop) {
var style = node.style;
prop = (0, _utilCamelizeStyle2['default'])(prop);
if (prop == 'float') prop = 'styleFloat';
var current = node.currentStyle[prop] || null;
if (current == null && style && style[prop]) current = style[prop];
if (rnumnonpx.test(current) && !rposition.test(prop)) {
// Remember the original values
var left = style.left;
var runStyle = node.runtimeStyle;
var rsLeft = runStyle && runStyle.left;
// Put in the new values to get a computed value out
if (rsLeft) runStyle.left = node.currentStyle.left;
style.left = prop === 'fontSize' ? '1em' : current;
current = style.pixelLeft + 'px';
// Revert the changed values
style.left = left;
if (rsLeft) runStyle.left = rsLeft;
}
return current;
}
};
};
/***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {
if (true) {
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else if (typeof exports === "object") {
factory(exports);
} else {
factory(root.babelHelpers = {});
}
})(this, function (global) {
var babelHelpers = global;
babelHelpers.interopRequireDefault = function (obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
};
babelHelpers._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;
};
})
/***/ },
/* 13 */
/***/ function(module, exports) {
'use strict';
module.exports = function removeStyle(node, key) {
return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
};
/***/ },
/* 14 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var canUseDOM = __webpack_require__(15);
var on = function on() {};
if (canUseDOM) {
on = (function () {
if (document.addEventListener) return function (node, eventName, handler, capture) {
return node.addEventListener(eventName, handler, capture || false);
};else if (document.attachEvent) return function (node, eventName, handler) {
return node.attachEvent('on' + eventName, handler);
};
})();
}
module.exports = on;
/***/ },
/* 15 */
/***/ function(module, exports) {
'use strict';
module.exports = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
/***/ },
/* 16 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var canUseDOM = __webpack_require__(15);
var off = function off() {};
if (canUseDOM) {
off = (function () {
if (document.addEventListener) return function (node, eventName, handler, capture) {
return node.removeEventListener(eventName, handler, capture || false);
};else if (document.attachEvent) return function (node, eventName, handler) {
return node.detachEvent('on' + eventName, handler);
};
})();
}
module.exports = off;
/***/ },
/* 17 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var canUseDOM = __webpack_require__(15);
var has = Object.prototype.hasOwnProperty,
transform = 'transform',
transition = {},
transitionTiming,
transitionDuration,
transitionProperty,
transitionDelay;
if (canUseDOM) {
transition = getTransitionProperties();
transform = transition.prefix + transform;
transitionProperty = transition.prefix + 'transition-property';
transitionDuration = transition.prefix + 'transition-duration';
transitionDelay = transition.prefix + 'transition-delay';
transitionTiming = transition.prefix + 'transition-timing-function';
}
module.exports = {
transform: transform,
end: transition.end,
property: transitionProperty,
timing: transitionTiming,
delay: transitionDelay,
duration: transitionDuration
};
function getTransitionProperties() {
var endEvent,
prefix = '',
transitions = {
O: 'otransitionend',
Moz: 'transitionend',
Webkit: 'webkitTransitionEnd',
ms: 'MSTransitionEnd'
};
var element = document.createElement('div');
for (var vendor in transitions) if (has.call(transitions, vendor)) {
if (element.style[vendor + 'TransitionProperty'] !== undefined) {
prefix = '-' + vendor.toLowerCase() + '-';
endEvent = transitions[vendor];
break;
}
}
if (!endEvent && element.style.transitionProperty !== undefined) endEvent = 'transitionend';
return { end: endEvent, prefix: prefix };
}
/***/ },
/* 18 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {'use strict';
var babelHelpers = __webpack_require__(2);
exports.__esModule = true;
exports.setNumber = setNumber;
exports.setDate = setDate;
var _invariant = __webpack_require__(19);
var _invariant2 = babelHelpers.interopRequireDefault(_invariant);
var _ = __webpack_require__(20);
var _react = __webpack_require__(21);
var _react2 = babelHelpers.interopRequireDefault(_react);
var localePropType = _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.func]);
var REQUIRED_NUMBER_FORMATS = ['default'];
var REQUIRED_DATE_FORMATS = ['default', 'date', 'time', 'header', 'footer', 'dayOfMonth', 'month', 'year', 'decade', 'century'];
function _format(localizer, formatter, value, format, culture) {
var result = typeof format === 'function' ? format(value, culture, localizer) : formatter.call(localizer, value, format, culture);
_invariant2['default'](result == null || typeof result === 'string', '`localizer format(..)` must return a string, null, or undefined');
return result;
}
function checkFormats(requiredFormats, formats) {
if (process.env.NODE_ENV !== 'production') requiredFormats.forEach(function (f) {
return _invariant2['default'](_.has(formats, f), 'localizer missing required format: `%s`', f);
});
}
var _numberLocalizer = createWrapper('NumberPicker');
function setNumber(_ref) {
var _format2 = _ref.format;
var _parse = _ref.parse;
var _ref$precision = _ref.precision;
var precision = _ref$precision === undefined ? function () {
return null;
} : _ref$precision;
var formats = _ref.formats;
var propType = _ref.propType;
_invariant2['default'](typeof _format2 === 'function', 'number localizer `format(..)` must be a function');
_invariant2['default'](typeof _parse === 'function', 'number localizer `parse(..)` must be a function');
checkFormats(REQUIRED_NUMBER_FORMATS, formats);
_numberLocalizer = {
formats: formats,
precision: precision,
propType: propType || localePropType,
format: function format(value, str, culture) {
return _format(this, _format2, value, str, culture);
},
parse: function parse(value, culture) {
var result = _parse.call(this, value, culture);
_invariant2['default'](result == null || typeof result === 'number', 'number localizer `parse(..)` must return a number, null, or undefined');
return result;
}
};
}
var _dateLocalizer = createWrapper('DateTimePicker');
function setDate(spec) {
_invariant2['default'](typeof spec.format === 'function', 'date localizer `format(..)` must be a function');
_invariant2['default'](typeof spec.parse === 'function', 'date localizer `parse(..)` must be a function');
_invariant2['default'](typeof spec.firstOfWeek === 'function', 'date localizer `firstOfWeek(..)` must be a function');
checkFormats(REQUIRED_DATE_FORMATS, spec.formats);
_dateLocalizer = {
formats: spec.formats,
propType: spec.propType || localePropType,
startOfWeek: spec.firstOfWeek,
format: function format(value, str, culture) {
return _format(this, spec.format, value, str, culture);
},
parse: function parse(value, culture) {
var result = spec.parse.call(this, value, culture);
_invariant2['default'](result == null || result instanceof Date && !isNaN(result.getTime()), 'date localizer `parse(..)` must return a valid Date, null, or undefined');
return result;
}
};
}
var number = {
propType: function propType() {
var _numberLocalizer2;
return (_numberLocalizer2 = _numberLocalizer).propType.apply(_numberLocalizer2, arguments);
},
getFormat: function getFormat(key, format) {
return format || _numberLocalizer.formats[key];
},
parse: function parse() {
var _numberLocalizer3;
return (_numberLocalizer3 = _numberLocalizer).parse.apply(_numberLocalizer3, arguments);
},
format: function format() {
var _numberLocalizer4;
return (_numberLocalizer4 = _numberLocalizer).format.apply(_numberLocalizer4, arguments);
},
precision: function precision() {
var _numberLocalizer5;
return (_numberLocalizer5 = _numberLocalizer).precision.apply(_numberLocalizer5, arguments);
}
};
exports.number = number;
var date = {
propType: function propType() {
var _dateLocalizer2;
return (_dateLocalizer2 = _dateLocalizer).propType.apply(_dateLocalizer2, arguments);
},
getFormat: function getFormat(key, format) {
return format || _dateLocalizer.formats[key];
},
parse: function parse() {
var _dateLocalizer3;
return (_dateLocalizer3 = _dateLocalizer).parse.apply(_dateLocalizer3, arguments);
},
format: function format() {
var _dateLocalizer4;
return (_dateLocalizer4 = _dateLocalizer).format.apply(_dateLocalizer4, arguments);
},
startOfWeek: function startOfWeek() {
var _dateLocalizer5;
return (_dateLocalizer5 = _dateLocalizer).startOfWeek.apply(_dateLocalizer5, arguments);
}
};
exports.date = date;
exports['default'] = { number: number, date: date };
function createWrapper() {
var dummy = {};
['formats', 'parse', 'format', 'firstOfWeek', 'precision'].forEach(function (name) {
return Object.defineProperty(dummy, name, {
enumerable: true,
get: function get() {
throw new Error('[React Widgets] You are attempting to use a widget that requires localization ' + '(Calendar, DateTimePicker, NumberPicker). ' + 'However there is no localizer set. Please configure a localizer. \n\n' + 'see http://jquense.github.io/react-widgets/docs/#/i18n for more info.');
}
});
});
return dummy;
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
/***/ },
/* 19 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule invariant
*/
'use strict';
/**
* Use invariant() to assert state which your program assumes to be true.
*
* Provide sprintf-style format (only %s is supported) and arguments
* to provide information about what broke and what you were
* expecting.
*
* The invariant message will be stripped in production, but the invariant
* will remain to ensure logic does not differ in production.
*/
var invariant = function(condition, format, a, b, c, d, e, f) {
if (process.env.NODE_ENV !== 'production') {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
}
if (!condition) {
var error;
if (format === undefined) {
error = new Error(
'Minified exception occurred; use the non-minified dev environment ' +
'for the full error message and additional helpful warnings.'
);
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error(
'Invariant Violation: ' +
format.replace(/%s/g, function() { return args[argIndex++]; })
);
}
error.framesToPop = 1; // we don't care about invariant's own frame
throw error;
}
};
module.exports = invariant;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
/***/ },
/* 20 */
/***/ function(module, exports) {
'use strict';
var idCount = 0;
var _ = module.exports = {
has: has,
result: function result(value) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return typeof value === 'function' ? value.apply(undefined, args) : value;
},
isShallowEqual: function isShallowEqual(a, b) {
if (a === b) return true;
if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
if (typeof a !== 'object' && typeof b !== 'object') return a === b;
if (typeof a !== typeof b) return false;
return shallowEqual(a, b);
},
transform: function transform(obj, cb, seed) {
_.each(obj, cb.bind(null, seed = seed || (Array.isArray(obj) ? [] : {})));
return seed;
},
each: function each(obj, cb, thisArg) {
if (Array.isArray(obj)) return obj.forEach(cb, thisArg);
for (var key in obj) if (has(obj, key)) cb.call(thisArg, obj[key], key, obj);
},
pick: function pick(obj, keys) {
keys = [].concat(keys);
return _.transform(obj, function (mapped, val, key) {
if (keys.indexOf(key) !== -1) mapped[key] = val;
}, {});
},
omit: function omit(obj, keys) {
keys = [].concat(keys);
return _.transform(obj, function (mapped, val, key) {
if (keys.indexOf(key) === -1) mapped[key] = val;
}, {});
},
find: function find(arr, cb, thisArg) {
var result;
if (Array.isArray(arr)) {
arr.every(function (val, idx) {
if (cb.call(thisArg, val, idx, arr)) return (result = val, false);
return true;
});
return result;
} else for (var key in arr) if (has(arr, key)) if (cb.call(thisArg, arr[key], key, arr)) return arr[key];
},
chunk: function chunk(array, chunkSize) {
var index = 0,
length = array ? array.length : 0,
result = [];
chunkSize = Math.max(+chunkSize || 1, 1);
while (index < length) result.push(array.slice(index, index += chunkSize));
return result;
},
splat: function splat(obj) {
return obj == null ? [] : [].concat(obj);
},
noop: function noop() {},
uniqueId: function uniqueId(prefix) {
return '' + ((prefix == null ? '' : prefix) + ++idCount);
}
};
function has(o, k) {
return o ? Object.prototype.hasOwnProperty.call(o, k) : false;
}
function eql(a, b) {
return a === b;
}
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*/
function shallowEqual(objA, objB) {
if (objA == null || objB == null) return false;
var keysA = Object.keys(objA),
keysB = Object.keys(objB);
if (keysA.length !== keysB.length) return false;
for (var i = 0; i < keysA.length; i++) if (!has(objB, keysA[i]) || !eql(objA[keysA[i]], objB[keysA[i]])) return false;
return true;
}
/***/ },
/* 21 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_21__;
/***/ },
/* 22 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var babelHelpers = __webpack_require__(2);
exports.__esModule = true;
var _react = __webpack_require__(21);
var _react2 = babelHelpers.interopRequireDefault(_react);
var _domHelpersActiveElement = __webpack_require__(23);
var _domHelpersActiveElement2 = babelHelpers.interopRequireDefault(_domHelpersActiveElement);
var _domHelpersQueryContains = __webpack_require__(25);
var _domHelpersQueryContains2 = babelHelpers.interopRequireDefault(_domHelpersQueryContains);
var _classnames = __webpack_require__(26);
var _classnames2 = babelHelpers.interopRequireDefault(_classnames);
var _util_ = __webpack_require__(20);
var _util_2 = babelHelpers.interopRequireDefault(_util_);
var _Popup = __webpack_require__(27);
var _Popup2 = babelHelpers.interopRequireDefault(_Popup);
var _utilCompat = __webpack_require__(31);
var _utilCompat2 = babelHelpers.interopRequireDefault(_utilCompat);
var _utilPropTypes = __webpack_require__(33);
var _utilPropTypes2 = babelHelpers.interopRequireDefault(_utilPropTypes);
var _List = __webpack_require__(35);
var _List2 = babelHelpers.interopRequireDefault(_List);
var _ListGroupable = __webpack_require__(42);
var _ListGroupable2 = babelHelpers.interopRequireDefault(_ListGroupable);
var _utilValidateListInterface = __webpack_require__(44);
var _utilValidateListInterface2 = babelHelpers.interopRequireDefault(_utilValidateListInterface);
var _uncontrollable = __webpack_require__(45);
var _uncontrollable2 = babelHelpers.interopRequireDefault(_uncontrollable);
var _utilDataHelpers = __webpack_require__(37);
var _utilInteraction = __webpack_require__(39);
var _utilWidgetHelpers = __webpack_require__(38);
var omit = _util_2['default'].omit;
var pick = _util_2['default'].pick;
var result = _util_2['default'].result;
var propTypes = {
//-- controlled props -----------
value: _react2['default'].PropTypes.any,
onChange: _react2['default'].PropTypes.func,
open: _react2['default'].PropTypes.bool,
onToggle: _react2['default'].PropTypes.func,
//------------------------------------
data: _react2['default'].PropTypes.array,
valueField: _react2['default'].PropTypes.string,
textField: _utilPropTypes2['default'].accessor,
valueComponent: _utilPropTypes2['default'].elementType,
itemComponent: _utilPropTypes2['default'].elementType,
listComponent: _utilPropTypes2['default'].elementType,
groupComponent: _utilPropTypes2['default'].elementType,
groupBy: _utilPropTypes2['default'].accessor,
onSelect: _react2['default'].PropTypes.func,
searchTerm: _react2['default'].PropTypes.string,
onSearch: _react2['default'].PropTypes.func,
busy: _react2['default'].PropTypes.bool,
delay: _react2['default'].PropTypes.number,
dropUp: _react2['default'].PropTypes.bool,
duration: _react2['default'].PropTypes.number, //popup
disabled: _utilPropTypes2['default'].disabled.acceptsArray,
readOnly: _utilPropTypes2['default'].readOnly.acceptsArray,
messages: _react2['default'].PropTypes.shape({
open: _utilPropTypes2['default'].message,
emptyList: _utilPropTypes2['default'].message,
emptyFilter: _utilPropTypes2['default'].message,
filterPlaceholder: _utilPropTypes2['default'].message
})
};
var DropdownList = _react2['default'].createClass(babelHelpers.createDecoratedObject([{
key: 'displayName',
initializer: function initializer() {
return 'DropdownList';
}
}, {
key: 'mixins',
initializer: function initializer() {
return [__webpack_require__(48), __webpack_require__(49), __webpack_require__(50), __webpack_require__(51), __webpack_require__(56), __webpack_require__(41)()];
}
}, {
key: 'propTypes',
initializer: function initializer() {
return propTypes;
}
}, {
key: 'getDefaultProps',
value: function getDefaultProps() {
return {
delay: 500,
value: '',
open: false,
data: [],
searchTerm: '',
messages: msgs(),
ariaActiveDescendantKey: 'dropdownlist'
};
}
}, {
key: 'getInitialState',
value: function getInitialState() {
var _props = this.props;
var open = _props.open;
var filter = _props.filter;
var value = _props.value;
var data = _props.data;
var searchTerm = _props.searchTerm;
var valueField = _props.valueField;
var processed = filter ? this.filter(data, searchTerm) : data,
initialIdx = _utilDataHelpers.dataIndexOf(data, value, valueField);
return {
filteredData: open && filter ? processed : null,
selectedItem: processed[initialIdx],
focusedItem: processed[initialIdx] || data[0]
};
}
}, {
key: 'componentDidUpdate',
value: function componentDidUpdate() {
this.refs.list && _utilValidateListInterface2['default'](this.refs.list);
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(props) {
var open = props.open;
var filter = props.filter;
var value = props.value;
var data = props.data;
var searchTerm = props.searchTerm;
var valueField = props.valueField;
var processed = filter ? this.filter(data, searchTerm) : data,
idx = _utilDataHelpers.dataIndexOf(data, value, valueField);
this.setState({
filteredData: open && filter ? processed : null,
selectedItem: processed[idx],
focusedItem: processed[! ~idx ? 0 : idx]
});
}
}, {
key: 'render',
value: function render() {
var _cx,
_this = this;
var _props2 = this.props;
var className = _props2.className;
var tabIndex = _props2.tabIndex;
var filter = _props2.filter;
var valueField = _props2.valueField;
var textField = _props2.textField;
var groupBy = _props2.groupBy;
var messages = _props2.messages;
var data = _props2.data;
var busy = _props2.busy;
var dropUp = _props2.dropUp;
var placeholder = _props2.placeholder;
var value = _props2.value;
var open = _props2.open;
var ValueComponent = _props2.valueComponent;
var List = _props2.listComponent;
List = List || groupBy && _ListGroupable2['default'] || _List2['default'];
var elementProps = omit(this.props, Object.keys(propTypes));
var listProps = pick(this.props, Object.keys(List.propTypes));
var popupProps = pick(this.props, Object.keys(_Popup2['default'].propTypes));
var _state = this.state;
var focusedItem = _state.focusedItem;
var selectedItem = _state.selectedItem;
var focused = _state.focused;
var items = this._data(),
disabled = _utilInteraction.isDisabled(this.props),
readOnly = _utilInteraction.isReadOnly(this.props),
valueItem = _utilDataHelpers.dataItem(data, value, valueField),
// take value from the raw data
listID = _utilWidgetHelpers.instanceId(this, '__listbox');
var shouldRenderList = _utilWidgetHelpers.isFirstFocusedRender(this) || open;
messages = msgs(messages);
return _react2['default'].createElement(
'div',
babelHelpers._extends({}, elementProps, {
ref: 'input',
role: 'combobox',
tabIndex: tabIndex || '0',
'aria-expanded': open,
'aria-haspopup': true,
'aria-owns': listID,
'aria-busy': !!busy,
'aria-live': !open && 'polite',
'aria-autocomplete': 'list',
'aria-disabled': disabled,
'aria-readonly': readOnly,
onKeyDown: this._keyDown,
onKeyPress: this._keyPress,
onClick: this._click,
onFocus: this._focus.bind(null, true),
onBlur: this._focus.bind(null, false),
className: _classnames2['default'](className, 'rw-dropdownlist', 'rw-widget', (_cx = {
'rw-state-disabled': disabled,
'rw-state-readonly': readOnly,
'rw-state-focus': focused,
'rw-rtl': this.isRtl()
}, _cx['rw-open' + (dropUp ? '-up' : '')] = open, _cx)) }),
_react2['default'].createElement(
'span',
{ className: 'rw-dropdownlist-picker rw-select rw-btn' },
_react2['default'].createElement(
'i',
{ className: 'rw-i rw-i-caret-down' + (busy ? ' rw-loading' : '') },
_react2['default'].createElement(
'span',
{ className: 'rw-sr' },
result(messages.open, this.props)
)
)
),
_react2['default'].createElement(
'div',
{
className: 'rw-input'
},
!valueItem && placeholder ? _react2['default'].createElement(
'span',
{ className: 'rw-placeholder' },
placeholder
) : this.props.valueComponent ? _react2['default'].createElement(ValueComponent, { item: valueItem }) : _utilDataHelpers.dataText(valueItem, textField)
),
_react2['default'].createElement(
_Popup2['default'],
babelHelpers._extends({}, popupProps, {
onOpen: function () {
return _this.focus();
},
onOpening: function () {
return _this.refs.list.forceUpdate();
}
}),
_react2['default'].createElement(
'div',
null,
filter && this._renderFilter(messages),
shouldRenderList && _react2['default'].createElement(List, babelHelpers._extends({ ref: 'list'
}, listProps, {
data: items,
id: listID,
'aria-live': open && 'polite',
'aria-labelledby': _utilWidgetHelpers.instanceId(this),
'aria-hidden': !this.props.open,
selected: selectedItem,
focused: open ? focusedItem : null,
onSelect: this._onSelect,
onMove: this._scrollTo,
messages: {
emptyList: data.length ? messages.emptyFilter : messages.emptyList
} }))
)
)
);
}
}, {
key: '_renderFilter',
value: function _renderFilter(messages) {
var _this2 = this;
return _react2['default'].createElement(
'div',
{ ref: 'filterWrapper', className: 'rw-filter-input' },
_react2['default'].createElement(
'span',
{ className: 'rw-select rw-btn' },
_react2['default'].createElement('i', { className: 'rw-i rw-i-search' })
),
_react2['default'].createElement('input', { ref: 'filter', className: 'rw-input',
placeholder: _util_2['default'].result(messages.filterPlaceholder, this.props),
value: this.props.searchTerm,
onChange: function (e) {
return _utilWidgetHelpers.notify(_this2.props.onSearch, e.target.value);
} })
);
}
}, {
key: '_focus',
decorators: [_utilInteraction.widgetEnabled],
value: function _focus(focused, e) {
var _this3 = this;
this.setTimeout('focus', function () {
if (!focused) _this3.close();
if (focused !== _this3.state.focused) {
_utilWidgetHelpers.notify(_this3.props[focused ? 'onFocus' : 'onBlur'], e);
_this3.setState({ focused: focused });
}
});
}
}, {
key: '_onSelect',
decorators: [_utilInteraction.widgetEditable],
value: function _onSelect(data) {
this.close();
_utilWidgetHelpers.notify(this.props.onSelect, data);
this.change(data);
this.focus(this);
}
}, {
key: '_click',
decorators: [_utilInteraction.widgetEditable],
value: function _click(e) {
var wrapper = this.refs.filterWrapper;
if (!this.props.filter || !this.props.open) this.toggle();else if (!_domHelpersQueryContains2['default'](_utilCompat2['default'].findDOMNode(wrapper), e.target)) this.close();
_utilWidgetHelpers.notify(this.props.onClick, e);
}
}, {
key: '_keyDown',
decorators: [_utilInteraction.widgetEditable],
value: function _keyDown(e) {
var _this4 = this;
var self = this,
key = e.key,
alt = e.altKey,
list = this.refs.list,
filtering = this.props.filter,
focusedItem = this.state.focusedItem,
selectedItem = this.state.selectedItem,
isOpen = this.props.open,
closeWithFocus = function closeWithFocus() {
_this4.close(), _utilCompat2['default'].findDOMNode(_this4).focus();
};
_utilWidgetHelpers.notify(this.props.onKeyDown, [e]);
if (e.defaultPrevented) return;
if (key === 'End') {
if (isOpen) this.setState({ focusedItem: list.last() });else change(list.last());
e.preventDefault();
} else if (key === 'Home') {
if (isOpen) this.setState({ focusedItem: list.first() });else change(list.first());
e.preventDefault();
} else if (key === 'Escape' && isOpen) {
closeWithFocus();
} else if ((key === 'Enter' || key === ' ' && !filtering) && isOpen) {
change(this.state.focusedItem, true);
} else if (key === 'ArrowDown') {
if (alt) this.open();else if (isOpen) this.setState({ focusedItem: list.next(focusedItem) });else change(list.next(selectedItem));
e.preventDefault();
} else if (key === 'ArrowUp') {
if (alt) closeWithFocus();else if (isOpen) this.setState({ focusedItem: list.prev(focusedItem) });else change(list.prev(selectedItem));
e.preventDefault();
}
function change(item, fromList) {
if (!item) return;
fromList ? self._onSelect(item) : self.change(item);
}
}
}, {
key: '_keyPress',
decorators: [_utilInteraction.widgetEditable],
value: function _keyPress(e) {
var _this5 = this;
_utilWidgetHelpers.notify(this.props.onKeyPress, [e]);
if (e.defaultPrevented) return;
if (!(this.props.filter && this.props.open)) this.search(String.fromCharCode(e.which), function (item) {
_this5.isMounted() && _this5.props.open ? _this5.setState({ focusedItem: item }) : item && _this5.change(item);
});
}
}, {
key: 'change',
value: function change(data) {
if (!_utilDataHelpers.valueMatcher(data, this.props.value, this.props.valueField)) {
_utilWidgetHelpers.notify(this.props.onChange, data);
_utilWidgetHelpers.notify(this.props.onSearch, '');
this.close();
}
}
}, {
key: 'focus',
value: function focus(target) {
var inst = target || (this.props.filter && this.props.open ? this.refs.filter : this.refs.input);
if (_domHelpersActiveElement2['default']() !== _utilCompat2['default'].findDOMNode(inst)) _utilCompat2['default'].findDOMNode(inst).focus();
}
}, {
key: '_data',
value: function _data() {
return this.state.filteredData || this.props.data.concat();
}
}, {
key: 'search',
value: function search(character, cb) {
var _this6 = this;
var word = ((this._searchTerm || '') + character).toLowerCase();
if (!character) return;
this._searchTerm = word;
this.setTimeout('search', function () {
var list = _this6.refs.list,
key = _this6.props.open ? 'focusedItem' : 'selectedItem',
item = list.next(_this6.state[key], word);
_this6._searchTerm = '';
if (item) cb(item);
}, this.props.delay);
}
}, {
key: 'open',
value: function open() {
_utilWidgetHelpers.notify(this.props.onToggle, true);
}
}, {
key: 'close',
value: function close() {
_utilWidgetHelpers.notify(this.props.onToggle, false);
}
}, {
key: 'toggle',
value: function toggle() {
this.props.open ? this.close() : this.open();
}
}]));
function msgs(msgs) {
return babelHelpers._extends({
open: 'open dropdown',
filterPlaceholder: '',
emptyList: 'There are no items in this list',
emptyFilter: 'The filter returned no results'
}, msgs);
}
exports['default'] = _uncontrollable2['default'](DropdownList, { open: 'onToggle', value: 'onChange', searchTerm: 'onSearch' });
module.exports = exports['default'];
/***/ },
/* 23 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var babelHelpers = __webpack_require__(12);
exports.__esModule = true;
/**
* document.activeElement
*/
exports['default'] = activeElement;
var _ownerDocument = __webpack_require__(24);
var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument);
function activeElement() {
var doc = arguments[0] === undefined ? document : arguments[0];
try {
return doc.activeElement;
} catch (e) {}
}
module.exports = exports['default'];
/***/ },
/* 24 */
/***/ function(module, exports) {
"use strict";
exports.__esModule = true;
exports["default"] = ownerDocument;
function ownerDocument(node) {
return node && node.ownerDocument || document;
}
module.exports = exports["default"];
/***/ },
/* 25 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var canUseDOM = __webpack_require__(15);
var contains = (function () {
var root = canUseDOM && document.documentElement;
return root && root.contains ? function (context, node) {
return context.contains(node);
} : root && root.compareDocumentPosition ? function (context, node) {
return context === node || !!(context.compareDocumentPosition(node) & 16);
} : function (context, node) {
if (node) do {
if (node === context) return true;
} while (node = node.parentNode