| 1 | "use strict";
|
|---|
| 2 |
|
|---|
| 3 | function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|---|
| 4 | function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|---|
| 5 | function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|---|
| 6 | function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|---|
| 7 | function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|---|
| 8 | /* eslint-disable global-require */
|
|---|
| 9 | var flatConfigBase = require('./configs/flat-config-base');
|
|---|
| 10 | var legacyConfigBase = require('./configs/legacy-config-base');
|
|---|
| 11 | var _require = require('../package.json'),
|
|---|
| 12 | name = _require.name,
|
|---|
| 13 | version = _require.version;
|
|---|
| 14 | var allRules = {
|
|---|
| 15 | 'accessible-emoji': require('./rules/accessible-emoji'),
|
|---|
| 16 | 'alt-text': require('./rules/alt-text'),
|
|---|
| 17 | 'anchor-ambiguous-text': require('./rules/anchor-ambiguous-text'),
|
|---|
| 18 | 'anchor-has-content': require('./rules/anchor-has-content'),
|
|---|
| 19 | 'anchor-is-valid': require('./rules/anchor-is-valid'),
|
|---|
| 20 | 'aria-activedescendant-has-tabindex': require('./rules/aria-activedescendant-has-tabindex'),
|
|---|
| 21 | 'aria-props': require('./rules/aria-props'),
|
|---|
| 22 | 'aria-proptypes': require('./rules/aria-proptypes'),
|
|---|
| 23 | 'aria-role': require('./rules/aria-role'),
|
|---|
| 24 | 'aria-unsupported-elements': require('./rules/aria-unsupported-elements'),
|
|---|
| 25 | 'autocomplete-valid': require('./rules/autocomplete-valid'),
|
|---|
| 26 | 'click-events-have-key-events': require('./rules/click-events-have-key-events'),
|
|---|
| 27 | 'control-has-associated-label': require('./rules/control-has-associated-label'),
|
|---|
| 28 | 'heading-has-content': require('./rules/heading-has-content'),
|
|---|
| 29 | 'html-has-lang': require('./rules/html-has-lang'),
|
|---|
| 30 | 'iframe-has-title': require('./rules/iframe-has-title'),
|
|---|
| 31 | 'img-redundant-alt': require('./rules/img-redundant-alt'),
|
|---|
| 32 | 'interactive-supports-focus': require('./rules/interactive-supports-focus'),
|
|---|
| 33 | 'label-has-associated-control': require('./rules/label-has-associated-control'),
|
|---|
| 34 | 'label-has-for': require('./rules/label-has-for'),
|
|---|
| 35 | lang: require('./rules/lang'),
|
|---|
| 36 | 'media-has-caption': require('./rules/media-has-caption'),
|
|---|
| 37 | 'mouse-events-have-key-events': require('./rules/mouse-events-have-key-events'),
|
|---|
| 38 | 'no-access-key': require('./rules/no-access-key'),
|
|---|
| 39 | 'no-aria-hidden-on-focusable': require('./rules/no-aria-hidden-on-focusable'),
|
|---|
| 40 | 'no-autofocus': require('./rules/no-autofocus'),
|
|---|
| 41 | 'no-distracting-elements': require('./rules/no-distracting-elements'),
|
|---|
| 42 | 'no-interactive-element-to-noninteractive-role': require('./rules/no-interactive-element-to-noninteractive-role'),
|
|---|
| 43 | 'no-noninteractive-element-interactions': require('./rules/no-noninteractive-element-interactions'),
|
|---|
| 44 | 'no-noninteractive-element-to-interactive-role': require('./rules/no-noninteractive-element-to-interactive-role'),
|
|---|
| 45 | 'no-noninteractive-tabindex': require('./rules/no-noninteractive-tabindex'),
|
|---|
| 46 | 'no-onchange': require('./rules/no-onchange'),
|
|---|
| 47 | 'no-redundant-roles': require('./rules/no-redundant-roles'),
|
|---|
| 48 | 'no-static-element-interactions': require('./rules/no-static-element-interactions'),
|
|---|
| 49 | 'prefer-tag-over-role': require('./rules/prefer-tag-over-role'),
|
|---|
| 50 | 'role-has-required-aria-props': require('./rules/role-has-required-aria-props'),
|
|---|
| 51 | 'role-supports-aria-props': require('./rules/role-supports-aria-props'),
|
|---|
| 52 | scope: require('./rules/scope'),
|
|---|
| 53 | 'tabindex-no-positive': require('./rules/tabindex-no-positive')
|
|---|
| 54 | };
|
|---|
| 55 | var recommendedRules = {
|
|---|
| 56 | 'jsx-a11y/alt-text': 'error',
|
|---|
| 57 | 'jsx-a11y/anchor-ambiguous-text': 'off',
|
|---|
| 58 | // TODO: error
|
|---|
| 59 | 'jsx-a11y/anchor-has-content': 'error',
|
|---|
| 60 | 'jsx-a11y/anchor-is-valid': 'error',
|
|---|
| 61 | 'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
|
|---|
| 62 | 'jsx-a11y/aria-props': 'error',
|
|---|
| 63 | 'jsx-a11y/aria-proptypes': 'error',
|
|---|
| 64 | 'jsx-a11y/aria-role': 'error',
|
|---|
| 65 | 'jsx-a11y/aria-unsupported-elements': 'error',
|
|---|
| 66 | 'jsx-a11y/autocomplete-valid': 'error',
|
|---|
| 67 | 'jsx-a11y/click-events-have-key-events': 'error',
|
|---|
| 68 | 'jsx-a11y/control-has-associated-label': ['off', {
|
|---|
| 69 | ignoreElements: ['audio', 'canvas', 'embed', 'input', 'textarea', 'tr', 'video'],
|
|---|
| 70 | ignoreRoles: ['grid', 'listbox', 'menu', 'menubar', 'radiogroup', 'row', 'tablist', 'toolbar', 'tree', 'treegrid'],
|
|---|
| 71 | includeRoles: ['alert', 'dialog']
|
|---|
| 72 | }],
|
|---|
| 73 | 'jsx-a11y/heading-has-content': 'error',
|
|---|
| 74 | 'jsx-a11y/html-has-lang': 'error',
|
|---|
| 75 | 'jsx-a11y/iframe-has-title': 'error',
|
|---|
| 76 | 'jsx-a11y/img-redundant-alt': 'error',
|
|---|
| 77 | 'jsx-a11y/interactive-supports-focus': ['error', {
|
|---|
| 78 | tabbable: ['button', 'checkbox', 'link', 'searchbox', 'spinbutton', 'switch', 'textbox']
|
|---|
| 79 | }],
|
|---|
| 80 | 'jsx-a11y/label-has-associated-control': 'error',
|
|---|
| 81 | 'jsx-a11y/label-has-for': 'off',
|
|---|
| 82 | 'jsx-a11y/media-has-caption': 'error',
|
|---|
| 83 | 'jsx-a11y/mouse-events-have-key-events': 'error',
|
|---|
| 84 | 'jsx-a11y/no-access-key': 'error',
|
|---|
| 85 | 'jsx-a11y/no-autofocus': 'error',
|
|---|
| 86 | 'jsx-a11y/no-distracting-elements': 'error',
|
|---|
| 87 | 'jsx-a11y/no-interactive-element-to-noninteractive-role': ['error', {
|
|---|
| 88 | tr: ['none', 'presentation'],
|
|---|
| 89 | canvas: ['img']
|
|---|
| 90 | }],
|
|---|
| 91 | 'jsx-a11y/no-noninteractive-element-interactions': ['error', {
|
|---|
| 92 | handlers: ['onClick', 'onError', 'onLoad', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
|
|---|
| 93 | alert: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
|
|---|
| 94 | body: ['onError', 'onLoad'],
|
|---|
| 95 | dialog: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
|
|---|
| 96 | iframe: ['onError', 'onLoad'],
|
|---|
| 97 | img: ['onError', 'onLoad']
|
|---|
| 98 | }],
|
|---|
| 99 | 'jsx-a11y/no-noninteractive-element-to-interactive-role': ['error', {
|
|---|
| 100 | ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
|
|---|
| 101 | ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
|
|---|
| 102 | li: ['menuitem', 'menuitemradio', 'menuitemcheckbox', 'option', 'row', 'tab', 'treeitem'],
|
|---|
| 103 | table: ['grid'],
|
|---|
| 104 | td: ['gridcell'],
|
|---|
| 105 | fieldset: ['radiogroup', 'presentation']
|
|---|
| 106 | }],
|
|---|
| 107 | 'jsx-a11y/no-noninteractive-tabindex': ['error', {
|
|---|
| 108 | tags: [],
|
|---|
| 109 | roles: ['tabpanel'],
|
|---|
| 110 | allowExpressionValues: true
|
|---|
| 111 | }],
|
|---|
| 112 | 'jsx-a11y/no-redundant-roles': 'error',
|
|---|
| 113 | 'jsx-a11y/no-static-element-interactions': ['error', {
|
|---|
| 114 | allowExpressionValues: true,
|
|---|
| 115 | handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp']
|
|---|
| 116 | }],
|
|---|
| 117 | 'jsx-a11y/role-has-required-aria-props': 'error',
|
|---|
| 118 | 'jsx-a11y/role-supports-aria-props': 'error',
|
|---|
| 119 | 'jsx-a11y/scope': 'error',
|
|---|
| 120 | 'jsx-a11y/tabindex-no-positive': 'error'
|
|---|
| 121 | };
|
|---|
| 122 | var strictRules = {
|
|---|
| 123 | 'jsx-a11y/alt-text': 'error',
|
|---|
| 124 | 'jsx-a11y/anchor-has-content': 'error',
|
|---|
| 125 | 'jsx-a11y/anchor-is-valid': 'error',
|
|---|
| 126 | 'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
|
|---|
| 127 | 'jsx-a11y/aria-props': 'error',
|
|---|
| 128 | 'jsx-a11y/aria-proptypes': 'error',
|
|---|
| 129 | 'jsx-a11y/aria-role': 'error',
|
|---|
| 130 | 'jsx-a11y/aria-unsupported-elements': 'error',
|
|---|
| 131 | 'jsx-a11y/autocomplete-valid': 'error',
|
|---|
| 132 | 'jsx-a11y/click-events-have-key-events': 'error',
|
|---|
| 133 | 'jsx-a11y/control-has-associated-label': ['off', {
|
|---|
| 134 | ignoreElements: ['audio', 'canvas', 'embed', 'input', 'textarea', 'tr', 'video'],
|
|---|
| 135 | ignoreRoles: ['grid', 'listbox', 'menu', 'menubar', 'radiogroup', 'row', 'tablist', 'toolbar', 'tree', 'treegrid'],
|
|---|
| 136 | includeRoles: ['alert', 'dialog']
|
|---|
| 137 | }],
|
|---|
| 138 | 'jsx-a11y/heading-has-content': 'error',
|
|---|
| 139 | 'jsx-a11y/html-has-lang': 'error',
|
|---|
| 140 | 'jsx-a11y/iframe-has-title': 'error',
|
|---|
| 141 | 'jsx-a11y/img-redundant-alt': 'error',
|
|---|
| 142 | 'jsx-a11y/interactive-supports-focus': ['error', {
|
|---|
| 143 | tabbable: ['button', 'checkbox', 'link', 'progressbar', 'searchbox', 'slider', 'spinbutton', 'switch', 'textbox']
|
|---|
| 144 | }],
|
|---|
| 145 | 'jsx-a11y/label-has-for': 'off',
|
|---|
| 146 | 'jsx-a11y/label-has-associated-control': 'error',
|
|---|
| 147 | 'jsx-a11y/media-has-caption': 'error',
|
|---|
| 148 | 'jsx-a11y/mouse-events-have-key-events': 'error',
|
|---|
| 149 | 'jsx-a11y/no-access-key': 'error',
|
|---|
| 150 | 'jsx-a11y/no-autofocus': 'error',
|
|---|
| 151 | 'jsx-a11y/no-distracting-elements': 'error',
|
|---|
| 152 | 'jsx-a11y/no-interactive-element-to-noninteractive-role': 'error',
|
|---|
| 153 | 'jsx-a11y/no-noninteractive-element-interactions': ['error', {
|
|---|
| 154 | body: ['onError', 'onLoad'],
|
|---|
| 155 | iframe: ['onError', 'onLoad'],
|
|---|
| 156 | img: ['onError', 'onLoad']
|
|---|
| 157 | }],
|
|---|
| 158 | 'jsx-a11y/no-noninteractive-element-to-interactive-role': 'error',
|
|---|
| 159 | 'jsx-a11y/no-noninteractive-tabindex': 'error',
|
|---|
| 160 | 'jsx-a11y/no-redundant-roles': 'error',
|
|---|
| 161 | 'jsx-a11y/no-static-element-interactions': 'error',
|
|---|
| 162 | 'jsx-a11y/role-has-required-aria-props': 'error',
|
|---|
| 163 | 'jsx-a11y/role-supports-aria-props': 'error',
|
|---|
| 164 | 'jsx-a11y/scope': 'error',
|
|---|
| 165 | 'jsx-a11y/tabindex-no-positive': 'error'
|
|---|
| 166 | };
|
|---|
| 167 |
|
|---|
| 168 | /** Base plugin object */
|
|---|
| 169 | var jsxA11y = {
|
|---|
| 170 | meta: {
|
|---|
| 171 | name,
|
|---|
| 172 | version
|
|---|
| 173 | },
|
|---|
| 174 | rules: _objectSpread({}, allRules)
|
|---|
| 175 | };
|
|---|
| 176 |
|
|---|
| 177 | /**
|
|---|
| 178 | * Given a ruleset and optionally a flat config name, generate a config.
|
|---|
| 179 | * @param {object} rules - ruleset for this config
|
|---|
| 180 | * @param {string} flatConfigName - name for the config if flat
|
|---|
| 181 | * @returns Config for this set of rules.
|
|---|
| 182 | */
|
|---|
| 183 | var createConfig = function createConfig(rules, flatConfigName) {
|
|---|
| 184 | return _objectSpread(_objectSpread({}, flatConfigName ? _objectSpread(_objectSpread({}, flatConfigBase), {}, {
|
|---|
| 185 | name: "jsx-a11y/".concat(flatConfigName),
|
|---|
| 186 | plugins: {
|
|---|
| 187 | 'jsx-a11y': jsxA11y
|
|---|
| 188 | }
|
|---|
| 189 | }) : _objectSpread(_objectSpread({}, legacyConfigBase), {}, {
|
|---|
| 190 | plugins: ['jsx-a11y']
|
|---|
| 191 | })), {}, {
|
|---|
| 192 | rules: _objectSpread({}, rules)
|
|---|
| 193 | });
|
|---|
| 194 | };
|
|---|
| 195 |
|
|---|
| 196 | // Create configs for the plugin object
|
|---|
| 197 | var configs = {
|
|---|
| 198 | recommended: createConfig(recommendedRules),
|
|---|
| 199 | strict: createConfig(strictRules)
|
|---|
| 200 | };
|
|---|
| 201 | var flatConfigs = {
|
|---|
| 202 | recommended: createConfig(recommendedRules, 'recommended'),
|
|---|
| 203 | strict: createConfig(strictRules, 'strict')
|
|---|
| 204 | };
|
|---|
| 205 | module.exports = _objectSpread(_objectSpread({}, jsxA11y), {}, {
|
|---|
| 206 | configs,
|
|---|
| 207 | flatConfigs
|
|---|
| 208 | }); |
|---|