UNPKG

react-a11y

Version:

Warns about potential accessibility issues with your React elements.

1,703 lines (1,393 loc) 188 kB
var A11y = /******/ (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__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _a11y = __webpack_require__(1); var _a11y2 = _interopRequireDefault(_a11y); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var instance = false; var a11y = function a11y() { for (var _len = arguments.length, opts = Array(_len), _key = 0; _key < _len; _key++) { opts[_key] = arguments[_key]; } if (instance) { throw new Error('react-a11y is already installed'); } else { instance = new (Function.prototype.bind.apply(_a11y2.default, [null].concat(opts)))(); } }; a11y.restoreAll = function () { if (instance) { // restore handlers instance.restoreAll(); // remove instance instance = false; } }; exports.default = a11y; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = __webpack_require__(2); var _extends3 = _interopRequireDefault(_extends2); var _typeof2 = __webpack_require__(18); var _typeof3 = _interopRequireDefault(_typeof2); var _objectWithoutProperties2 = __webpack_require__(40); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _classCallCheck2 = __webpack_require__(41); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = __webpack_require__(42); var _createClass3 = _interopRequireDefault(_createClass2); var _after = __webpack_require__(45); var _after2 = _interopRequireDefault(_after); var _options2 = __webpack_require__(46); var _options3 = _interopRequireDefault(_options2); var _browser = __webpack_require__(83); var _browser2 = _interopRequireDefault(_browser); var _test = __webpack_require__(84); var _test2 = _interopRequireDefault(_test); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var A11y = function () { /** * @arg {object} React - The React instance you want to patch * @arg {object} ReactDOM - The ReactDOM instance you'll be using * @arg {object} options - the options * @returns {A11y} The react-a11y instance */ function A11y() { (0, _classCallCheck3.default)(this, A11y); var _validate = _options3.default.apply(undefined, arguments), React = _validate.React, ReactDOM = _validate.ReactDOM, options = (0, _objectWithoutProperties3.default)(_validate, ['React', 'ReactDOM']); this.options = options; this.React = React; this.ReactDOM = ReactDOM; this.suite = new _test2.default(React, ReactDOM, this.options); this.patchReact(); } /** * Patch React, replacing its createElement by our implementation * so we can run the tests * @returns {undefined} */ (0, _createClass3.default)(A11y, [{ key: 'patchReact', value: function patchReact() { // save old createElement this._createElement = this.React.createElement; var _this = this; this.React.createElement = function (klass) { var _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // fix for props = null var props = _props || {}; // create a refs object to hold the ref. // this needs to be an object so that it can be passed // by reference, and hold changing state. var refs = typeof props.ref === 'string' || (0, _typeof3.default)(props.ref) === 'object' ? props.ref : {}; var ref = typeof props.ref === 'string' || (0, _typeof3.default)(props.ref) === 'object' ? props.ref : function (node) { refs.node = node; // maintain behaviour when ref prop was already set if (typeof props.ref === 'function') { props.ref(node); } }; var newProps = typeof klass === 'string' ? (0, _extends3.default)({}, props, { ref: ref }) : props; for (var _len = arguments.length, children = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { children[_key - 2] = arguments[_key]; } var reactEl = _this._createElement.apply(_this, [klass, newProps].concat(children)); // only test html elements if (typeof klass === 'string') { var handler = _this.failureHandler(reactEl, refs); var childrenForTest = children.length === 0 ? props.children || [] : children; _this.suite.test(klass, props, childrenForTest, handler); } return reactEl; }; } /** * Restore React and all components as if we were never here * @returns {undefined} */ }, { key: 'restoreAll', value: function restoreAll() { this.React.createElement = this._createElement; _after2.default.restorePatchedMethods(); } /** * Creates a failure handler based on the element that was created * @arg {object} reactEl - The react element this failure is for * @arg {object} ref - The object that holds the DOM node (passed by ref) * @returns {function} A handler that knows everything it needs to know */ }, { key: 'failureHandler', value: function failureHandler(reactEl, ref) { var _options = this.options, reporter = _options.reporter, filterFn = _options.filterFn; /** * @arg {string} errInfo - All the error info (see docs what this means) * @returns {undefined} */ return function (errInfo) { // get the owning component (the one that has // the element in its render fn) var owner = reactEl._owner; // if there is an owner, use its name // if not, use the tagname of the violating elemnent var displayName = ''; if (owner) { displayName = owner.type ? owner.type.name : owner.getName(); } else { displayName = errInfo.tagName + '#' + errInfo.props.id; } // stop if we're not allowed to proceed if (!filterFn(displayName, errInfo.props.id, errInfo.msg)) { return; } // gather all info for the reporter var info = (0, _extends3.default)({}, errInfo, { displayName: displayName }); var DOMNode = false; if (_browser2.default && !this.__sync) { // Make a best-effort attempt to grab the DOMNode var instance = owner && owner._instance; if (owner && owner.stateNode) { // Fiber DOMNode = this.ReactDOM.findDOMNode(owner.stateNode); } else if (typeof ref === 'string' && instance) { DOMNode = this.ReactDOM.findDOMNode(instance.refs[ref]); // TODO: replace use of findDOMNode } else if ('node' in ref) { DOMNode = ref.node; } } if (DOMNode) { reporter((0, _extends3.default)({}, info, { DOMNode: DOMNode })); } else { reporter(info); } }.bind(this); } }]); return A11y; }(); exports.default = A11y; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _Object$assign = __webpack_require__(3)["default"]; exports["default"] = _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; }; exports.__esModule = true; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(4), __esModule: true }; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(5); module.exports = __webpack_require__(8).Object.assign; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(6); $export($export.S + $export.F, 'Object', {assign: __webpack_require__(11)}); /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7) , core = __webpack_require__(8) , ctx = __webpack_require__(9) , PROTOTYPE = 'prototype'; var $export = function(type, name, source){ var IS_FORCED = type & $export.F , IS_GLOBAL = type & $export.G , IS_STATIC = type & $export.S , IS_PROTO = type & $export.P , IS_BIND = type & $export.B , IS_WRAP = type & $export.W , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] , key, own, out; if(IS_GLOBAL)source = name; for(key in source){ // contains in native own = !IS_FORCED && target && key in target; if(own && key in exports)continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function(C){ var F = function(param){ return this instanceof C ? new C(param) : C(param); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap module.exports = $export; /***/ }), /* 7 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef /***/ }), /* 8 */ /***/ (function(module, exports) { var core = module.exports = {version: '1.2.6'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(10); module.exports = function(fn, that, length){ aFunction(fn); if(that === undefined)return fn; switch(length){ case 1: return function(a){ return fn.call(that, a); }; case 2: return function(a, b){ return fn.call(that, a, b); }; case 3: return function(a, b, c){ return fn.call(that, a, b, c); }; } return function(/* ...args */){ return fn.apply(that, arguments); }; }; /***/ }), /* 10 */ /***/ (function(module, exports) { module.exports = function(it){ if(typeof it != 'function')throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.1 Object.assign(target, source, ...) var $ = __webpack_require__(12) , toObject = __webpack_require__(13) , IObject = __webpack_require__(15); // should work with symbols and should have deterministic property order (V8 bug) module.exports = __webpack_require__(17)(function(){ var a = Object.assign , A = {} , B = {} , S = Symbol() , K = 'abcdefghijklmnopqrst'; A[S] = 7; K.split('').forEach(function(k){ B[k] = k; }); return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K; }) ? function assign(target, source){ // eslint-disable-line no-unused-vars var T = toObject(target) , $$ = arguments , $$len = $$.length , index = 1 , getKeys = $.getKeys , getSymbols = $.getSymbols , isEnum = $.isEnum; while($$len > index){ var S = IObject($$[index++]) , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) , length = keys.length , j = 0 , key; while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; } return T; } : Object.assign; /***/ }), /* 12 */ /***/ (function(module, exports) { var $Object = Object; module.exports = { create: $Object.create, getProto: $Object.getPrototypeOf, isEnum: {}.propertyIsEnumerable, getDesc: $Object.getOwnPropertyDescriptor, setDesc: $Object.defineProperty, setDescs: $Object.defineProperties, getKeys: $Object.keys, getNames: $Object.getOwnPropertyNames, getSymbols: $Object.getOwnPropertySymbols, each: [].forEach }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(14); module.exports = function(it){ return Object(defined(it)); }; /***/ }), /* 14 */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function(it){ if(it == undefined)throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(16); module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), /* 16 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function(it){ return toString.call(it).slice(8, -1); }; /***/ }), /* 17 */ /***/ (function(module, exports) { module.exports = function(exec){ try { return !!exec(); } catch(e){ return true; } }; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _Symbol = __webpack_require__(19)["default"]; exports["default"] = function (obj) { return obj && obj.constructor === _Symbol ? "symbol" : typeof obj; }; exports.__esModule = true; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(20), __esModule: true }; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(21); __webpack_require__(39); module.exports = __webpack_require__(8).Symbol; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; // ECMAScript 6 symbols shim var $ = __webpack_require__(12) , global = __webpack_require__(7) , has = __webpack_require__(22) , DESCRIPTORS = __webpack_require__(23) , $export = __webpack_require__(6) , redefine = __webpack_require__(24) , $fails = __webpack_require__(17) , shared = __webpack_require__(27) , setToStringTag = __webpack_require__(28) , uid = __webpack_require__(30) , wks = __webpack_require__(29) , keyOf = __webpack_require__(31) , $names = __webpack_require__(33) , enumKeys = __webpack_require__(34) , isArray = __webpack_require__(35) , anObject = __webpack_require__(36) , toIObject = __webpack_require__(32) , createDesc = __webpack_require__(26) , getDesc = $.getDesc , setDesc = $.setDesc , _create = $.create , getNames = $names.get , $Symbol = global.Symbol , $JSON = global.JSON , _stringify = $JSON && $JSON.stringify , setter = false , HIDDEN = wks('_hidden') , isEnum = $.isEnum , SymbolRegistry = shared('symbol-registry') , AllSymbols = shared('symbols') , useNative = typeof $Symbol == 'function' , ObjectProto = Object.prototype; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDesc = DESCRIPTORS && $fails(function(){ return _create(setDesc({}, 'a', { get: function(){ return setDesc(this, 'a', {value: 7}).a; } })).a != 7; }) ? function(it, key, D){ var protoDesc = getDesc(ObjectProto, key); if(protoDesc)delete ObjectProto[key]; setDesc(it, key, D); if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc); } : setDesc; var wrap = function(tag){ var sym = AllSymbols[tag] = _create($Symbol.prototype); sym._k = tag; DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, { configurable: true, set: function(value){ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; setSymbolDesc(this, tag, createDesc(1, value)); } }); return sym; }; var isSymbol = function(it){ return typeof it == 'symbol'; }; var $defineProperty = function defineProperty(it, key, D){ if(D && has(AllSymbols, key)){ if(!D.enumerable){ if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {})); it[HIDDEN][key] = true; } else { if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; D = _create(D, {enumerable: createDesc(0, false)}); } return setSymbolDesc(it, key, D); } return setDesc(it, key, D); }; var $defineProperties = function defineProperties(it, P){ anObject(it); var keys = enumKeys(P = toIObject(P)) , i = 0 , l = keys.length , key; while(l > i)$defineProperty(it, key = keys[i++], P[key]); return it; }; var $create = function create(it, P){ return P === undefined ? _create(it) : $defineProperties(_create(it), P); }; var $propertyIsEnumerable = function propertyIsEnumerable(key){ var E = isEnum.call(this, key); return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ var D = getDesc(it = toIObject(it), key); if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; return D; }; var $getOwnPropertyNames = function getOwnPropertyNames(it){ var names = getNames(toIObject(it)) , result = [] , i = 0 , key; while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key); return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ var names = getNames(toIObject(it)) , result = [] , i = 0 , key; while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]); return result; }; var $stringify = function stringify(it){ if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined var args = [it] , i = 1 , $$ = arguments , replacer, $replacer; while($$.length > i)args.push($$[i++]); replacer = args[1]; if(typeof replacer == 'function')$replacer = replacer; if($replacer || !isArray(replacer))replacer = function(key, value){ if($replacer)value = $replacer.call(this, key, value); if(!isSymbol(value))return value; }; args[1] = replacer; return _stringify.apply($JSON, args); }; var buggyJSON = $fails(function(){ var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; }); // 19.4.1.1 Symbol([description]) if(!useNative){ $Symbol = function Symbol(){ if(isSymbol(this))throw TypeError('Symbol is not a constructor'); return wrap(uid(arguments.length > 0 ? arguments[0] : undefined)); }; redefine($Symbol.prototype, 'toString', function toString(){ return this._k; }); isSymbol = function(it){ return it instanceof $Symbol; }; $.create = $create; $.isEnum = $propertyIsEnumerable; $.getDesc = $getOwnPropertyDescriptor; $.setDesc = $defineProperty; $.setDescs = $defineProperties; $.getNames = $names.get = $getOwnPropertyNames; $.getSymbols = $getOwnPropertySymbols; if(DESCRIPTORS && !__webpack_require__(38)){ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } } var symbolStatics = { // 19.4.2.1 Symbol.for(key) 'for': function(key){ return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) keyFor: function keyFor(key){ return keyOf(SymbolRegistry, key); }, useSetter: function(){ setter = true; }, useSimple: function(){ setter = false; } }; // 19.4.2.2 Symbol.hasInstance // 19.4.2.3 Symbol.isConcatSpreadable // 19.4.2.4 Symbol.iterator // 19.4.2.6 Symbol.match // 19.4.2.8 Symbol.replace // 19.4.2.9 Symbol.search // 19.4.2.10 Symbol.species // 19.4.2.11 Symbol.split // 19.4.2.12 Symbol.toPrimitive // 19.4.2.13 Symbol.toStringTag // 19.4.2.14 Symbol.unscopables $.each.call(( 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' + 'species,split,toPrimitive,toStringTag,unscopables' ).split(','), function(it){ var sym = wks(it); symbolStatics[it] = useNative ? sym : wrap(sym); }); setter = true; $export($export.G + $export.W, {Symbol: $Symbol}); $export($export.S, 'Symbol', symbolStatics); $export($export.S + $export.F * !useNative, 'Object', { // 19.1.2.2 Object.create(O [, Properties]) create: $create, // 19.1.2.4 Object.defineProperty(O, P, Attributes) defineProperty: $defineProperty, // 19.1.2.3 Object.defineProperties(O, Properties) defineProperties: $defineProperties, // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) getOwnPropertyDescriptor: $getOwnPropertyDescriptor, // 19.1.2.7 Object.getOwnPropertyNames(O) getOwnPropertyNames: $getOwnPropertyNames, // 19.1.2.8 Object.getOwnPropertySymbols(O) getOwnPropertySymbols: $getOwnPropertySymbols }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify}); // 19.4.3.5 Symbol.prototype[@@toStringTag] setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] setToStringTag(global.JSON, 'JSON', true); /***/ }), /* 22 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function(it, key){ return hasOwnProperty.call(it, key); }; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(17)(function(){ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(25); /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(12) , createDesc = __webpack_require__(26); module.exports = __webpack_require__(23) ? function(object, key, value){ return $.setDesc(object, key, createDesc(1, value)); } : function(object, key, value){ object[key] = value; return object; }; /***/ }), /* 26 */ /***/ (function(module, exports) { module.exports = function(bitmap, value){ return { enumerable : !(bitmap & 1), configurable: !(bitmap & 2), writable : !(bitmap & 4), value : value }; }; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7) , SHARED = '__core-js_shared__' , store = global[SHARED] || (global[SHARED] = {}); module.exports = function(key){ return store[key] || (store[key] = {}); }; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(12).setDesc , has = __webpack_require__(22) , TAG = __webpack_require__(29)('toStringTag'); module.exports = function(it, tag, stat){ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); }; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(27)('wks') , uid = __webpack_require__(30) , Symbol = __webpack_require__(7).Symbol; module.exports = function(name){ return store[name] || (store[name] = Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); }; /***/ }), /* 30 */ /***/ (function(module, exports) { var id = 0 , px = Math.random(); module.exports = function(key){ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(12) , toIObject = __webpack_require__(32); module.exports = function(object, el){ var O = toIObject(object) , keys = $.getKeys(O) , length = keys.length , index = 0 , key; while(length > index)if(O[key = keys[index++]] === el)return key; }; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(15) , defined = __webpack_require__(14); module.exports = function(it){ return IObject(defined(it)); }; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = __webpack_require__(32) , getNames = __webpack_require__(12).getNames , toString = {}.toString; var windowNames = typeof window == 'object' && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function(it){ try { return getNames(it); } catch(e){ return windowNames.slice(); } }; module.exports.get = function getOwnPropertyNames(it){ if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it); return getNames(toIObject(it)); }; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols var $ = __webpack_require__(12); module.exports = function(it){ var keys = $.getKeys(it) , getSymbols = $.getSymbols; if(getSymbols){ var symbols = getSymbols(it) , isEnum = $.isEnum , i = 0 , key; while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key); } return keys; }; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(16); module.exports = Array.isArray || function(arg){ return cof(arg) == 'Array'; }; /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(37); module.exports = function(it){ if(!isObject(it))throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 37 */ /***/ (function(module, exports) { module.exports = function(it){ return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 38 */ /***/ (function(module, exports) { module.exports = true; /***/ }), /* 39 */ /***/ (function(module, exports) { /***/ }), /* 40 */ /***/ (function(module, exports) { "use strict"; exports.__esModule = true; exports.default = 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; }; /***/ }), /* 41 */ /***/ (function(module, exports) { "use strict"; exports.__esModule = true; exports.default = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _defineProperty = __webpack_require__(43); var _defineProperty2 = _interopRequireDefault(_defineProperty); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = 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; (0, _defineProperty2.default)(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(44), __esModule: true }; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(12); module.exports = function defineProperty(it, key, desc){ return $.setDesc(it, key, desc); }; /***/ }), /* 45 */ /***/ (function(module, exports) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); // store how to undo these changes var restoreFunctions = []; // does nothing var noop = function noop() { return null; }; var after = function after(host, name, cb) { if (!host) { throw new Error('cannot replace function on undefined'); } // save original var original = host[name] || noop; // override host host[name] = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } // perform original original.apply(host, args); // perform cb cb.apply(undefined, args); }; // save restoring function restoreFunctions.push(function () { host[name] = original; }); }; after.restorePatchedMethods = function () { // perform each restoring function restoreFunctions.forEach(function (restore) { return restore(); }); // clear the list of functions to restore restoreFunctions = []; }; after.render = function (component, fn) { after(component, 'componentDidMount', fn); after(component, 'componentDidUpdate', fn); }; exports.default = after; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray2 = __webpack_require__(47); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _toConsumableArray2 = __webpack_require__(66); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); exports.default = function () { // signature is a11y(React, opts) or a11y(React, ReactDOM, opts) // so destructure args based on number of args passed var props = []; for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } if (args.length === 2) { if (args[1].findDOMNode === undefined) { props = [args[0], null, args[1] || {}]; } else { props = [args[0], args[1], {}]; } } else { props = args; } var _props = props, _props2 = (0, _slicedToArray3.default)(_props, 3), React = _props2[0], ReactDOM = _props2[1], opts = _props2[2]; if (!React || !React.createElement) { throw new Error(LOG_PREFIX + ' missing argument \'React\''); } // make sure ReactDOM is passed in in browser code if (_util.browser && !(ReactDOM && ReactDOM.findDOMNode)) { throw new Error(LOG_PREFIX + ' missing argument \'ReactDOM\''); } deprecate(opts, 'includeSrcNode', msg); deprecate(opts, 'throw', msg); deprecate(opts, 'warningPrefix', msg); var _opts$reporter = opts.reporter, reporter = _opts$reporter === undefined ? mkReporter(opts) : _opts$reporter, _opts$filterFn = opts.filterFn, filterFn = _opts$filterFn === undefined ? always : _opts$filterFn, _opts$plugins = opts.plugins, plugins = _opts$plugins === undefined ? [] : _opts$plugins, _opts$rules = opts.rules, rules = _opts$rules === undefined ? {} : _opts$rules; return { React: React, ReactDOM: ReactDOM, filterFn: filterFn, reporter: reporter, plugins: plugins, rules: rules }; }; var _util = __webpack_require__(74); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var LOG_PREFIX = '[react-a11y]:'; /** * Throws an error based on the warning * If the last argument is a DOM node, it * coerces it to a string before throwing. * @returns {undefined} */ /* eslint-disable babel/new-cap,no-console */ var throwError = function throwError() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var last = args[args.length - 1]; if (last.outerHTML) { args[args.length - 1] = 'Element: \n ' + last.outerHTML; } var error = new Error(args.join(' ')); error.element = last; throw error; }; /** * Show a warning * @returns {undefined} */ var showWarning = function showWarning() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } if (_util.browser) { var _console; (_console = console).warn.apply(_console, args); } else { console.warn(args.join('\n ')); } }; /** * Creates a reporter function based on deprecated options * @arg {object} opts - The options passed by the user * @returns {function} The reporter */ var mkReporter = function mkReporter(opts) { var _opts$doThrow = opts.doThrow, doThrow = _opts$doThrow === undefined ? false : _opts$doThrow, _opts$warningPrefix = opts.warningPrefix, warningPrefix = _opts$warningPrefix === undefined ? LOG_PREFIX : _opts$warningPrefix; return function (info) { var msg = info.msg, displayName = info.displayName, DOMNode = info.DOMNode, url = info.url, tagName = info.tagName, severity = info.severity, AX = info.AX; // build warning var warning = [warningPrefix, (displayName || tagName) + ' - ' + msg].concat((0, _toConsumableArray3.default)(url ? ['See \'' + url + '\' for more info.'] : []), (0, _toConsumableArray3.default)(AX ? ['See \'' + (0, _util.AXURL)(AX) + '\' for more info.'] : []), [DOMNode || tagName]); if (doThrow || severity === 'error') { throwError.apply(undefined, (0, _toConsumableArray3.default)(warning)); } else { showWarning.apply(undefined, (0, _toConsumableArray3.default)(warning)); } }; }; /** * Generate a deprecation warning when a key is present * in the options object * @arg {object} opts - the options object under scrutiny * @arg {string} name - the name of the deprecated option * @arg {string} msg - an optional reason for the deprecation * @returns {undefined} */ var deprecate = function deprecate(opts, name) { var msg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if (name in opts) { console.warn(LOG_PREFIX + ' the `' + name + '` options is deprecated. ' + msg); } }; /** * Make a certain option mandatory * @arg {object} opts - the options object under scrutiny * @arg {string} name - the name of the mandatory option * @arg {string} msg - an optional reason * @returns {undefined} */ var mandatory = function mandatory(opts, name) { var msg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if (!(name in opts)) { throw new Error(LOG_PREFIX + ' the `' + name + '` option is mandatory. ' + msg); } }; // always resolve to true var always = function always() { return true; }; // deprecation message var msg = 'Use the `reporter` option to change how warnings are displayed.'; /** * Normalize and validate the options that the user passed in. * @arg {object} opts - The opts the user passed in * @returns {object} the validated options */ /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _isIterable2 = __webpack_require__(48); var _isIterable3 = _interopRequireDefault(_isIterable2); var _getIterator2 = __webpack_require__(62); var _getIterator3 = _interopRequireDefault(_getIterator2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if ((0, _isIterable3.default)(Object(arr))) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(49), __esModule: true }; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(50); __webpack_require__(57); module.exports = __webpack_require__(60); /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(51); var Iterators = __webpack_require__(54); Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var addToUnscopables = __webpack_require__(52) , step = __webpack_require__(53) , Iterators = __webpack_require__(54) , toIObject = __webpack_require__(32); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(55)(Array, 'Array', function(iterated, kind){ this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function(){ var O = this._t , kind = this._k , index = this._i++; if(!O || index >= O.length){ this._t = undefined; return step(1); } if(kind == 'keys' )return step(0, index); if(kind == 'values')return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /* 52 */ /***/ (function(module, exports) { module.exports = function(){ /* empty */ }; /***/ }), /* 53 */ /***/ (function(module, exports) { module.exports = function(done, value){ return {value: value, done: !!done}; }; /***/ }), /* 54 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var LIBRARY = __webpack_require__(38) , $export = __webpack_require__(6) , redefine = __webpack_require__(24) , hide = __webpack_require__(25) , has = __webpack_require__(22) , Iterators = __webpack_require__(54) , $iterCreate = __webpack_require__(56) , setToStringTag = __webpack_require__(28) , getProto = __webpack_require__(12).getProto , ITERATOR = __webpack_require__(29)('iterator') , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` , FF_ITERATOR = '@@iterator' , KEYS = 'keys' , VALUES = 'values'; var returnThis = function(){ return this; }; module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ $iterCreate(Constructor, NAME, next); var getMethod = function(kind){ if(!BUGGY && kind in proto)return proto[kind]; switch(kind){ case KEYS: return function keys(){ return new Constructor(this, kind); }; case VALUES: return function values(){ return new Constructor(this, kind); }; } return function entries(){ return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator' , DEF_VALUES = DEFAULT == VALUES , VALUES_BUG = false , proto = Base.prototype , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] , $default = $native || getMethod(DEFAULT) , methods, key; // Fix native if($native){ var IteratorPrototype = getProto($default.call(new Base)); // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // FF fix if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); // fix Array#{values, @@iterator}.name in V8 / FF if(DEF_VALUES && $native.name !== VALUES){ VALUES_BUG = true; $default = function values(){ return $native.call(this); }; } } // Define iterator if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if(DEFAULT){ methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: !DEF_VALUES ? $default : getMethod('entries') }; if(FORCED)for(key in methods){ if(!(key in proto))redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var $ = __webpack_require__(12) , descriptor = __webpack_require__(26) , setToStringTag = __webpack_require__(28) , IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(25)(IteratorPrototype, __webpack_require__(29)('iterator'), function(){ return this; }); module.exports = function(Constructor, NAME, next){ Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)}); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; var $at = __webpack_require__(58)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(55)(String, 'String', function(iterated){ this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function(){ var O = this._t , index = this._i , point; if(index >= O.length)return {value: undefined, done: true}; point = $at(O, index); this._i += point.length; return {value: point, done: false}; }); /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(59) , defined = __webpack_require__(14); // true -> String#at // false -> String#codePointAt module.exports = function(TO_STRING){ return function(that, pos){ var s = String(defined(that)) , i = toInteger(pos) , l = s.length , a, b; if(i < 0 || i >= l)return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }), /* 59 */ /***/ (function(module, exports) { // 7.1.4 ToInteger var ceil = Math.ceil , floor = Math.floor; module.exports = function(it){ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(61) , ITERATOR = __webpack_require__(29)('iterator') , Iterators = __webpack_require__(54); module.exports = __webpack_require__(8).isIterable = function(it){ var O = Object(it); return O[ITERATOR] !== undefined || '@@iterator' in O || Iterators.hasOwnProperty(classof(O)); }; /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(16) , TAG = __webpack_require__(29)('toStringTag') // ES3 wrong here , ARG = cof(function(){ return arguments; }()) == 'Arguments'; module.exports = function(it){ var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = (O = Object(it))[TAG]) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(63), __esModule: true }; /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(50); __webpack_require__(57); module.exports = __webpack_require__(64); /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(36) , get = __webpack_require__(65); module.exports = __webpack_require__(8).getIterator = function(it){ var iterFn = get(it); if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!'); return anObject(iterFn.call(it)); }; /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(61) , ITERATOR = __webpack_require__(