react-aria-menubutton 7.0.3 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -122
- package/dist/index.d.ts +59 -0
- package/dist/react-aria-menubutton.cjs.js +1 -0
- package/dist/react-aria-menubutton.es.js +566 -0
- package/dist/react-aria-menubutton.umd.js +1 -0
- package/package.json +62 -57
- package/CHANGELOG.md +0 -176
- package/CODE_OF_CONDUCT.md +0 -22
- package/dist/Button.js +0 -140
- package/dist/ManagerContext.js +0 -7
- package/dist/Menu.js +0 -131
- package/dist/MenuItem.js +0 -96
- package/dist/Wrapper.js +0 -74
- package/dist/createManager.js +0 -163
- package/dist/externalStateControl.js +0 -32
- package/dist/index.js +0 -12
- package/dist/propTypes.js +0 -7
- package/dist/specialAssign.js +0 -11
- package/src/Button.js +0 -129
- package/src/ManagerContext.js +0 -5
- package/src/Menu.js +0 -118
- package/src/MenuItem.js +0 -84
- package/src/Wrapper.js +0 -62
- package/src/__tests__/Button.test.js +0 -169
- package/src/__tests__/Menu.test.js +0 -130
- package/src/__tests__/MenuItem.test.js +0 -106
- package/src/__tests__/__snapshots__/Button.test.js.snap +0 -41
- package/src/__tests__/__snapshots__/Menu.test.js.snap +0 -54
- package/src/__tests__/__snapshots__/MenuItem.test.js.snap +0 -37
- package/src/__tests__/createManager.test.js +0 -190
- package/src/__tests__/helpers/MockWrapper.js +0 -24
- package/src/__tests__/helpers/createMockKeyEvent.js +0 -7
- package/src/__tests__/helpers/createMockManager.js +0 -22
- package/src/__tests__/helpers/jest-setup.js +0 -5
- package/src/__tests__/helpers/raf.js +0 -3
- package/src/createManager.js +0 -173
- package/src/externalStateControl.js +0 -31
- package/src/index.js +0 -10
- package/src/propTypes.js +0 -8
- package/src/specialAssign.js +0 -9
- package/umd/ReactAriaMenuButton.js +0 -1
- package/webpack-demo.config.js +0 -14
- package/webpack-umd.config.js +0 -35
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/* globals Promise */
|
|
2
|
-
|
|
3
|
-
var createManager = require('../createManager');
|
|
4
|
-
var createMockKeyEvent = require('./helpers/createMockKeyEvent');
|
|
5
|
-
|
|
6
|
-
var mockNode = document.createElement('button');
|
|
7
|
-
var nodeOne = document.createElement('button');
|
|
8
|
-
nodeOne.focus = jest.fn();
|
|
9
|
-
var nodeTwo = document.createElement('button');
|
|
10
|
-
nodeTwo.focus = jest.fn();
|
|
11
|
-
document.body.appendChild(nodeOne);
|
|
12
|
-
document.body.appendChild(nodeTwo);
|
|
13
|
-
|
|
14
|
-
function createManagerWithMockedElements(options) {
|
|
15
|
-
var manager = createManager(options);
|
|
16
|
-
manager.focusGroup.addMember({
|
|
17
|
-
node: nodeOne,
|
|
18
|
-
text: 'first'
|
|
19
|
-
});
|
|
20
|
-
manager.focusGroup.addMember({
|
|
21
|
-
node: nodeTwo,
|
|
22
|
-
text: 'second'
|
|
23
|
-
});
|
|
24
|
-
manager.button = {
|
|
25
|
-
ref: { current: mockNode },
|
|
26
|
-
setState: jest.fn()
|
|
27
|
-
};
|
|
28
|
-
manager.menu = {
|
|
29
|
-
setState: jest.fn()
|
|
30
|
-
};
|
|
31
|
-
manager.focusItem = jest.fn();
|
|
32
|
-
return manager;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
describe('createManager', function() {
|
|
36
|
-
it('initalizes', function() {
|
|
37
|
-
var manager = createManagerWithMockedElements();
|
|
38
|
-
expect(manager.isOpen).toBe(false);
|
|
39
|
-
expect(manager.options.closeOnSelection).toBeTruthy();
|
|
40
|
-
expect(manager.options.closeOnBlur).toBeTruthy();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('Manager#update', function() {
|
|
44
|
-
var manager = createManagerWithMockedElements({
|
|
45
|
-
onMenuToggle: jest.fn()
|
|
46
|
-
});
|
|
47
|
-
manager.update();
|
|
48
|
-
expect(manager.menu.setState).toHaveBeenCalledTimes(1);
|
|
49
|
-
expect(manager.menu.setState.mock.calls[0]).toEqual([
|
|
50
|
-
{ isOpen: manager.isOpen }
|
|
51
|
-
]);
|
|
52
|
-
expect(manager.button.setState).toHaveBeenCalledTimes(1);
|
|
53
|
-
expect(manager.button.setState.mock.calls[0]).toEqual([
|
|
54
|
-
{ menuOpen: manager.isOpen }
|
|
55
|
-
]);
|
|
56
|
-
expect(manager.options.onMenuToggle).toHaveBeenCalledTimes(1);
|
|
57
|
-
expect(manager.options.onMenuToggle.mock.calls[0]).toEqual([
|
|
58
|
-
{ isOpen: manager.isOpen }
|
|
59
|
-
]);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('Manager#openMenu without focusing in menu', function() {
|
|
63
|
-
var manager = createManagerWithMockedElements();
|
|
64
|
-
manager.openMenu({ focusMenu: false });
|
|
65
|
-
expect(manager.isOpen).toBe(true);
|
|
66
|
-
expect(manager.menu.setState).toHaveBeenCalledTimes(1);
|
|
67
|
-
expect(manager.menu.setState.mock.calls[0]).toEqual([{ isOpen: true }]);
|
|
68
|
-
expect(manager.button.setState).toHaveBeenCalledTimes(1);
|
|
69
|
-
expect(manager.button.setState.mock.calls[0]).toEqual([{ menuOpen: true }]);
|
|
70
|
-
|
|
71
|
-
return new Promise(function(resolve) {
|
|
72
|
-
setTimeout(function() {
|
|
73
|
-
expect(manager.focusItem).toHaveBeenCalledTimes(0);
|
|
74
|
-
resolve();
|
|
75
|
-
}, 0);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it('Manager#openMenu focusing in menu', function() {
|
|
80
|
-
var manager = createManagerWithMockedElements();
|
|
81
|
-
manager.openMenu();
|
|
82
|
-
expect(manager.isOpen).toBe(true);
|
|
83
|
-
expect(manager.menu.setState).toHaveBeenCalledTimes(1);
|
|
84
|
-
expect(manager.menu.setState.mock.calls[0]).toEqual([{ isOpen: true }]);
|
|
85
|
-
expect(manager.button.setState).toHaveBeenCalledTimes(1);
|
|
86
|
-
expect(manager.button.setState.mock.calls[0]).toEqual([{ menuOpen: true }]);
|
|
87
|
-
|
|
88
|
-
return new Promise(function(resolve) {
|
|
89
|
-
setTimeout(function() {
|
|
90
|
-
expect(manager.focusItem).toHaveBeenCalledTimes(1);
|
|
91
|
-
expect(manager.focusItem.mock.calls[0]).toEqual([0]);
|
|
92
|
-
resolve();
|
|
93
|
-
}, 0);
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it('Manager#closeMenu focusing on button', function() {
|
|
98
|
-
mockNode.focus = jest.fn();
|
|
99
|
-
|
|
100
|
-
var manager = createManagerWithMockedElements();
|
|
101
|
-
manager.isOpen = true;
|
|
102
|
-
manager.closeMenu({ focusButton: true });
|
|
103
|
-
|
|
104
|
-
expect(manager.isOpen).toBe(false);
|
|
105
|
-
expect(manager.menu.setState).toHaveBeenCalledTimes(1);
|
|
106
|
-
expect(manager.menu.setState.mock.calls[0]).toEqual([{ isOpen: false }]);
|
|
107
|
-
expect(manager.button.setState).toHaveBeenCalledTimes(1);
|
|
108
|
-
expect(manager.button.setState.mock.calls[0]).toEqual([
|
|
109
|
-
{ menuOpen: false }
|
|
110
|
-
]);
|
|
111
|
-
expect(mockNode.focus).toHaveBeenCalledTimes(1);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('Manager#closeMenu without focusing on button', function() {
|
|
115
|
-
mockNode.focus = jest.fn();
|
|
116
|
-
|
|
117
|
-
var manager = createManagerWithMockedElements();
|
|
118
|
-
manager.isOpen = true;
|
|
119
|
-
manager.closeMenu({ focusButton: false });
|
|
120
|
-
|
|
121
|
-
expect(mockNode.focus).not.toHaveBeenCalled();
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
it('Manager#toggleMenu when closed', function() {
|
|
125
|
-
var manager = createManagerWithMockedElements();
|
|
126
|
-
manager.openMenu = jest.fn();
|
|
127
|
-
manager.closeMenu = jest.fn();
|
|
128
|
-
manager.toggleMenu();
|
|
129
|
-
expect(manager.openMenu).toHaveBeenCalledTimes(1);
|
|
130
|
-
expect(manager.closeMenu).not.toHaveBeenCalled();
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
it('Manager#toggleMenu when open', function() {
|
|
134
|
-
var manager = createManagerWithMockedElements();
|
|
135
|
-
manager.isOpen = true;
|
|
136
|
-
manager.openMenu = jest.fn();
|
|
137
|
-
manager.closeMenu = jest.fn();
|
|
138
|
-
manager.toggleMenu();
|
|
139
|
-
expect(manager.openMenu).not.toHaveBeenCalled();
|
|
140
|
-
expect(manager.closeMenu).toHaveBeenCalledTimes(1);
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
it('Manager#handleSelection A', function() {
|
|
144
|
-
var mockOnSelection = jest.fn();
|
|
145
|
-
var manager = createManagerWithMockedElements({
|
|
146
|
-
onSelection: mockOnSelection
|
|
147
|
-
});
|
|
148
|
-
manager.closeMenu = jest.fn();
|
|
149
|
-
manager.handleSelection('foo', { bar: 1 });
|
|
150
|
-
expect(manager.closeMenu).toHaveBeenCalledTimes(1);
|
|
151
|
-
expect(manager.closeMenu.mock.calls[0]).toEqual([{ focusButton: true }]);
|
|
152
|
-
expect(mockOnSelection).toHaveBeenCalledTimes(1);
|
|
153
|
-
expect(mockOnSelection.mock.calls[0]).toEqual(['foo', { bar: 1 }]);
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
it('Manager#handleSelection B', function() {
|
|
157
|
-
var mockOnSelection = jest.fn();
|
|
158
|
-
var manager = createManagerWithMockedElements({
|
|
159
|
-
onSelection: mockOnSelection,
|
|
160
|
-
closeOnSelection: false
|
|
161
|
-
});
|
|
162
|
-
manager.closeMenu = jest.fn();
|
|
163
|
-
manager.handleSelection('foo', { bar: 1 });
|
|
164
|
-
expect(manager.closeMenu).not.toHaveBeenCalled();
|
|
165
|
-
expect(mockOnSelection).toHaveBeenCalledTimes(1);
|
|
166
|
-
expect(mockOnSelection.mock.calls[0]).toEqual(['foo', { bar: 1 }]);
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
it('Manager#handleMenuKey on closed menu', function() {
|
|
170
|
-
var escapeEvent = createMockKeyEvent('Escape');
|
|
171
|
-
var manager = createManagerWithMockedElements();
|
|
172
|
-
manager.closeMenu = jest.fn();
|
|
173
|
-
|
|
174
|
-
manager.handleMenuKey(escapeEvent);
|
|
175
|
-
expect(escapeEvent.preventDefault).not.toHaveBeenCalled();
|
|
176
|
-
expect(manager.closeMenu).not.toHaveBeenCalled();
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
it('Manager#handleMenuKey on open menu', function() {
|
|
180
|
-
var escapeEvent = createMockKeyEvent('Escape');
|
|
181
|
-
var manager = createManagerWithMockedElements();
|
|
182
|
-
manager.isOpen = true;
|
|
183
|
-
manager.closeMenu = jest.fn();
|
|
184
|
-
|
|
185
|
-
manager.handleMenuKey(escapeEvent);
|
|
186
|
-
expect(escapeEvent.preventDefault).toHaveBeenCalledTimes(1);
|
|
187
|
-
expect(manager.closeMenu).toHaveBeenCalledTimes(1);
|
|
188
|
-
expect(manager.closeMenu.mock.calls[0]).toEqual([{ focusButton: true }]);
|
|
189
|
-
});
|
|
190
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const React = require('react');
|
|
2
|
-
const PropTypes = require('prop-types');
|
|
3
|
-
const ManagerContext = require('../../ManagerContext');
|
|
4
|
-
|
|
5
|
-
class MockWrapper extends React.Component {
|
|
6
|
-
static propTypes = {
|
|
7
|
-
mockManager: PropTypes.object.isRequired,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
constructor(props) {
|
|
11
|
-
super(props);
|
|
12
|
-
this.manager = this.props.mockManager;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
render() {
|
|
16
|
-
return React.createElement(
|
|
17
|
-
ManagerContext.Provider,
|
|
18
|
-
{ value: this.props.mockManager },
|
|
19
|
-
React.createElement('div', null, this.props.children)
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
module.exports = MockWrapper;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module.exports = function() {
|
|
2
|
-
return {
|
|
3
|
-
isOpen: false,
|
|
4
|
-
toggleMenu: jest.fn(),
|
|
5
|
-
handleMenuKey: jest.fn(),
|
|
6
|
-
moveFocusDown: jest.fn(),
|
|
7
|
-
openMenu: jest.fn(),
|
|
8
|
-
handleKeyDown: jest.fn(),
|
|
9
|
-
handleClick: jest.fn(),
|
|
10
|
-
handleSelection: jest.fn(),
|
|
11
|
-
handleButtonNonArrowKey: jest.fn(),
|
|
12
|
-
focusItem: jest.fn(),
|
|
13
|
-
menuItems: [1, 2],
|
|
14
|
-
clearItems: jest.fn(),
|
|
15
|
-
currentFocus: -1,
|
|
16
|
-
addItem: jest.fn(),
|
|
17
|
-
options: {
|
|
18
|
-
closeOnBlur: true,
|
|
19
|
-
closeOnSelection: true
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
}
|
package/src/createManager.js
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
const createFocusGroup = require('focus-group');
|
|
2
|
-
const externalStateControl = require('./externalStateControl');
|
|
3
|
-
|
|
4
|
-
const focusGroupOptions = {
|
|
5
|
-
wrap: true,
|
|
6
|
-
stringSearch: true
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const protoManager = {
|
|
10
|
-
init(options) {
|
|
11
|
-
this.updateOptions(options);
|
|
12
|
-
|
|
13
|
-
this.handleBlur = handleBlur.bind(this);
|
|
14
|
-
this.handleSelection = handleSelection.bind(this);
|
|
15
|
-
this.handleMenuKey = handleMenuKey.bind(this);
|
|
16
|
-
|
|
17
|
-
// "With focus on the drop-down menu, the Up and Down Arrow
|
|
18
|
-
// keys move focus within the menu items, "wrapping" at the top and bottom."
|
|
19
|
-
// "Typing a letter (printable character) key moves focus to the next
|
|
20
|
-
// instance of a visible node whose title begins with that printable letter."
|
|
21
|
-
//
|
|
22
|
-
// All of the above is handled by focus-group.
|
|
23
|
-
this.focusGroup = createFocusGroup(focusGroupOptions);
|
|
24
|
-
|
|
25
|
-
// These component references are added when the relevant components mount
|
|
26
|
-
this.button = null;
|
|
27
|
-
this.menu = null;
|
|
28
|
-
|
|
29
|
-
// State trackers
|
|
30
|
-
this.isOpen = false;
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
updateOptions(options) {
|
|
34
|
-
const oldOptions = this.options;
|
|
35
|
-
|
|
36
|
-
this.options = options || this.options || {};
|
|
37
|
-
|
|
38
|
-
if (typeof this.options.closeOnSelection === 'undefined') {
|
|
39
|
-
this.options.closeOnSelection = true;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (typeof this.options.closeOnBlur === 'undefined') {
|
|
43
|
-
this.options.closeOnBlur = true;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (this.options.id) {
|
|
47
|
-
externalStateControl.registerManager(this.options.id, this);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (oldOptions && oldOptions.id && oldOptions.id !== this.options.id) {
|
|
51
|
-
externalStateControl.unregisterManager(this.options.id, this);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
},
|
|
55
|
-
|
|
56
|
-
focusItem(index) {
|
|
57
|
-
this.focusGroup.focusNodeAtIndex(index);
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
addItem(item) {
|
|
61
|
-
this.focusGroup.addMember(item);
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
clearItems() {
|
|
65
|
-
this.focusGroup.clearMembers();
|
|
66
|
-
},
|
|
67
|
-
|
|
68
|
-
handleButtonNonArrowKey(event) {
|
|
69
|
-
this.focusGroup._handleUnboundKey(event);
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
destroy() {
|
|
73
|
-
this.button = null;
|
|
74
|
-
this.menu = null;
|
|
75
|
-
this.focusGroup.deactivate();
|
|
76
|
-
clearTimeout(this.blurTimer);
|
|
77
|
-
clearTimeout(this.moveFocusTimer);
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
update() {
|
|
81
|
-
this.menu.setState({ isOpen: this.isOpen });
|
|
82
|
-
this.button.setState({ menuOpen: this.isOpen });
|
|
83
|
-
this.options.onMenuToggle &&
|
|
84
|
-
this.options.onMenuToggle({ isOpen: this.isOpen });
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
openMenu(openOptions) {
|
|
88
|
-
if (this.isOpen) return;
|
|
89
|
-
openOptions = openOptions || {};
|
|
90
|
-
if (openOptions.focusMenu === undefined) {
|
|
91
|
-
openOptions.focusMenu = true;
|
|
92
|
-
}
|
|
93
|
-
this.isOpen = true;
|
|
94
|
-
this.update();
|
|
95
|
-
this.focusGroup.activate();
|
|
96
|
-
if (openOptions.focusMenu) {
|
|
97
|
-
const self = this;
|
|
98
|
-
this.moveFocusTimer = setTimeout(function() {
|
|
99
|
-
self.focusItem(0);
|
|
100
|
-
}, 0);
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
|
|
104
|
-
closeMenu(closeOptions) {
|
|
105
|
-
if (!this.isOpen) return;
|
|
106
|
-
closeOptions = closeOptions || {};
|
|
107
|
-
this.isOpen = false;
|
|
108
|
-
this.update();
|
|
109
|
-
if (closeOptions.focusButton) {
|
|
110
|
-
this.button.ref.current.focus();
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
toggleMenu(closeOptions, openOptions) {
|
|
115
|
-
closeOptions = closeOptions || {};
|
|
116
|
-
openOptions = openOptions || {};
|
|
117
|
-
if (this.isOpen) {
|
|
118
|
-
this.closeMenu(closeOptions);
|
|
119
|
-
} else {
|
|
120
|
-
this.openMenu(openOptions);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
function handleBlur() {
|
|
126
|
-
const self = this;
|
|
127
|
-
self.blurTimer = setTimeout(function() {
|
|
128
|
-
if (!self.button) return;
|
|
129
|
-
const buttonNode = self.button.ref.current;
|
|
130
|
-
if (!buttonNode) return;
|
|
131
|
-
const activeEl = buttonNode.ownerDocument.activeElement;
|
|
132
|
-
if (buttonNode && activeEl === buttonNode) return;
|
|
133
|
-
const menuNode = self.menu.ref.current;
|
|
134
|
-
if (menuNode === activeEl) {
|
|
135
|
-
self.focusItem(0);
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
if (menuNode && menuNode.contains(activeEl)) return;
|
|
139
|
-
if (self.isOpen) self.closeMenu({ focusButton: false });
|
|
140
|
-
}, 0);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function handleSelection(value, event) {
|
|
144
|
-
if (this.options.closeOnSelection) this.closeMenu({ focusButton: true });
|
|
145
|
-
if (this.options.onSelection) this.options.onSelection(value, event);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function handleMenuKey(event) {
|
|
149
|
-
if (this.isOpen) {
|
|
150
|
-
switch (event.key) {
|
|
151
|
-
// With focus on the drop-down menu, pressing Escape closes
|
|
152
|
-
// the menu and returns focus to the button.
|
|
153
|
-
case 'Escape':
|
|
154
|
-
event.preventDefault();
|
|
155
|
-
this.closeMenu({ focusButton: true });
|
|
156
|
-
break;
|
|
157
|
-
case 'Home':
|
|
158
|
-
event.preventDefault();
|
|
159
|
-
this.focusGroup.moveFocusToFirst();
|
|
160
|
-
break;
|
|
161
|
-
case 'End':
|
|
162
|
-
event.preventDefault();
|
|
163
|
-
this.focusGroup.moveFocusToLast();
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
module.exports = function(options) {
|
|
170
|
-
const newManager = Object.create(protoManager);
|
|
171
|
-
newManager.init(options);
|
|
172
|
-
return newManager;
|
|
173
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
const registeredManagers = {};
|
|
2
|
-
|
|
3
|
-
const errorCommon =
|
|
4
|
-
'a menu outside a mounted Wrapper with an id, or a menu that does not exist';
|
|
5
|
-
|
|
6
|
-
function registerManager(menuId, manager) {
|
|
7
|
-
registeredManagers[menuId] = manager;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
function unregisterManager(menuId) {
|
|
11
|
-
delete registeredManagers[menuId];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function openMenu(menuId, openOptions) {
|
|
15
|
-
const manager = registeredManagers[menuId];
|
|
16
|
-
if (!manager) throw new Error('Cannot open ' + errorCommon);
|
|
17
|
-
manager.openMenu(openOptions);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function closeMenu(menuId, closeOptions) {
|
|
21
|
-
const manager = registeredManagers[menuId];
|
|
22
|
-
if (!manager) throw new Error('Cannot close ' + errorCommon);
|
|
23
|
-
manager.closeMenu(closeOptions);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
module.exports = {
|
|
27
|
-
registerManager: registerManager,
|
|
28
|
-
unregisterManager: unregisterManager,
|
|
29
|
-
openMenu: openMenu,
|
|
30
|
-
closeMenu: closeMenu
|
|
31
|
-
};
|
package/src/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
const externalStateControl = require('./externalStateControl');
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
Wrapper: require('./Wrapper'),
|
|
5
|
-
Button: require('./Button'),
|
|
6
|
-
Menu: require('./Menu'),
|
|
7
|
-
MenuItem: require('./MenuItem'),
|
|
8
|
-
openMenu: externalStateControl.openMenu,
|
|
9
|
-
closeMenu: externalStateControl.closeMenu
|
|
10
|
-
};
|
package/src/propTypes.js
DELETED
package/src/specialAssign.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactAriaMenuButton=t(require("react")):e.ReactAriaMenuButton=t(e.React)}(window,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=17)}([function(e,t,n){e.exports=n(15)()},function(t,n){t.exports=e},function(e,t,n){"use strict";e.exports=function(e,t,n){for(var r in n=n||{},t)t.hasOwnProperty(r)&&(n[r]||(e[r]=t[r]))}},function(e,t,n){"use strict";var r=n(0);e.exports={refType:r.oneOfType([r.func,r.shape({current:r.elementType})])}},function(e,t,n){"use strict";var r=n(1).createContext();e.exports=r},function(e,t,n){"use strict";var r={},o="a menu outside a mounted Wrapper with an id, or a menu that does not exist";e.exports={registerManager:function(e,t){r[e]=t},unregisterManager:function(e){delete r[e]},openMenu:function(e,t){var n=r[e];if(!n)throw new Error("Cannot open "+o);n.openMenu(t)},closeMenu:function(e,t){var n=r[e];if(!n)throw new Error("Cannot close "+o);n.closeMenu(t)}}},function(e,t,n){"use strict";function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var o=n(1),i=n(0),s=n(4),a=n(3).refType,u=n(2),c={ambManager:i.object.isRequired,children:i.node.isRequired,forwardedRef:a,tag:i.string,text:i.string,value:i.any},f=function(e){function t(){var n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,a=Array(s),u=0;u<s;u++)a[u]=arguments[u];return n=i=r(this,e.call.apply(e,[this].concat(a))),i.ref=o.createRef(),i.handleKeyDown=function(e){"Enter"!==e.key&&" "!==e.key||"a"===i.props.tag&&i.props.href||(e.preventDefault(),i.selectItem(e))},i.selectItem=function(e){var t=void 0!==i.props.value?i.props.value:i.props.children;i.props.ambManager.handleSelection(t,e)},i.setRef=function(e){i.ref.current=e,"function"==typeof i.props.forwardedRef?i.props.forwardedRef(e):i.props.forwardedRef&&(i.props.forwardedRef.current=e)},r(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentDidMount=function(){this.props.ambManager.addItem({node:this.ref.current,text:this.props.text})},t.prototype.render=function(){var e={onClick:this.selectItem,onKeyDown:this.handleKeyDown,role:"menuitem",tabIndex:"-1",ref:this.setRef};return u(e,this.props,c),o.createElement(this.props.tag,e,this.props.children)},t}(o.Component);f.propTypes=c,f.defaultProps={tag:"div"},e.exports=o.forwardRef(function(e,t){return o.createElement(s.Consumer,null,function(n){var r={ambManager:n,forwardedRef:t};return u(r,e,{ambManager:c.ambManager,children:c.children,forwardedRef:c.forwardedRef}),o.createElement(f,r,e.children)})})},function(e,t){e.exports=function(e,t,n){var r=0,o=0,i=!1,s=!1,a=!1;function u(e){a||t(e)}function c(t){a=!0,i||(i=!0,e.addEventListener("touchmove",f,n),e.addEventListener("touchend",p,n),e.addEventListener("touchcancel",l,n),s=!1,r=t.touches[0].clientX,o=t.touches[0].clientY)}function f(e){s||Math.abs(e.touches[0].clientX-r)<=10&&Math.abs(e.touches[0].clientY-o)<=10||(s=!0)}function p(e){i=!1,d(),s||t(e)}function l(){i=!1,s=!1,r=0,o=0}function d(){e.removeEventListener("touchmove",f,n),e.removeEventListener("touchend",p,n),e.removeEventListener("touchcancel",l,n)}return e.addEventListener("click",u,n),e.addEventListener("touchstart",c,n),{remove:function(){e.removeEventListener("click",u,n),e.removeEventListener("touchstart",c,n),d()}}}},function(e,t,n){"use strict";function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var o=n(1),i=n(0),s=n(7),a=n(4),u=n(3).refType,c=n(2),f={ambManager:i.object.isRequired,children:i.oneOfType([i.func,i.node]).isRequired,forwardedRef:u,tag:i.string},p=function(e){function t(){var n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=i=r(this,e.call.apply(e,[this].concat(u))),i.ref=o.createRef(),i.addTapListener=function(){var e=i.ref.current;if(e){var t=e.ownerDocument;t&&(i.tapListener=s(t.documentElement,i.handleTap))}},i.handleTap=function(e){i.ref.current.contains(e.target)||i.props.ambManager.button.ref.current.contains(e.target)||i.props.ambManager.closeMenu()},i.setRef=function(e){i.ref.current=e,"function"==typeof i.props.forwardedRef?i.props.forwardedRef(e):i.props.forwardedRef&&(i.props.forwardedRef.current=e)},r(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentDidMount=function(){this.props.ambManager.menu=this},t.prototype.componentDidUpdate=function(){var e=this.props.ambManager;e.options.closeOnBlur&&(e.isOpen&&!this.tapListener?this.addTapListener():!e.isOpen&&this.tapListener&&(this.tapListener.remove(),delete this.tapListener),e.isOpen||e.clearItems())},t.prototype.componentWillUnmount=function(){this.tapListener&&this.tapListener.remove(),this.props.ambManager.destroy()},t.prototype.render=function(){var e=this.props,t=this.props.ambManager,n="function"==typeof e.children?e.children({isOpen:t.isOpen}):!!t.isOpen&&e.children;if(!n)return!1;var r={onKeyDown:t.handleMenuKey,role:"menu",tabIndex:-1};return t.options.closeOnBlur&&(r.onBlur=t.handleBlur),c(r,e,f),c(r,{ref:this.setRef}),o.createElement(e.tag,r,n)},t}(o.Component);p.propTypes=f,p.defaultProps={tag:"div"},e.exports=o.forwardRef(function(e,t){return o.createElement(a.Consumer,null,function(n){var r={ambManager:n,forwardedRef:t};return c(r,e,{ambManager:f.ambManager,children:f.children,forwardedRef:f.forwardedRef}),o.createElement(p,r,e.children)})})},function(e,t,n){"use strict";function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var o=n(1),i=n(0),s=n(4),a=n(3).refType,u=n(2),c={ambManager:i.object.isRequired,children:i.node.isRequired,disabled:i.bool,forwardedRef:a,tag:i.string},f=function(e){function t(){var n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,a=Array(s),u=0;u<s;u++)a[u]=arguments[u];return n=i=r(this,e.call.apply(e,[this].concat(a))),i.ref=o.createRef(),i.handleKeyDown=function(e){if(!i.props.disabled){var t=i.props.ambManager;switch(e.key){case"ArrowDown":e.preventDefault(),t.isOpen?t.focusItem(0):t.openMenu();break;case"Enter":case" ":e.preventDefault(),t.toggleMenu();break;case"Escape":t.handleMenuKey(e);break;default:t.handleButtonNonArrowKey(e)}}},i.handleClick=function(){i.props.disabled||i.props.ambManager.toggleMenu({},{focusMenu:!1})},i.setRef=function(e){i.ref.current=e,"function"==typeof i.props.forwardedRef?i.props.forwardedRef(e):i.props.forwardedRef&&(i.props.forwardedRef.current=e)},r(i,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentDidMount=function(){this.props.ambManager.button=this},t.prototype.componentWillUnmount=function(){this.props.ambManager.destroy()},t.prototype.render=function(){var e=this.props,t=this.props.ambManager,n={role:"button",tabIndex:e.disabled?"":"0","aria-haspopup":!0,"aria-expanded":t.isOpen,"aria-disabled":e.disabled,onKeyDown:this.handleKeyDown,onClick:this.handleClick},r={};return u(r,c),["button","fieldset","input","optgroup","option","select","textarea"].indexOf(e.tag)>=0&&delete r.disabled,t.options.closeOnBlur&&(n.onBlur=t.handleBlur),u(n,e,r),u(n,{ref:this.setRef}),o.createElement(e.tag,n,e.children)},t}(o.Component);f.propTypes=c,f.defaultProps={tag:"span"},e.exports=o.forwardRef(function(e,t){return o.createElement(s.Consumer,null,function(n){var r={ambManager:n,forwardedRef:t};return u(r,e,{ambManager:c.ambManager,children:c.children,forwardedRef:c.forwardedRef}),o.createElement(f,r,e.children)})})},function(e,t){function n(e){var t,n,r=(e=e||{}).keybindings||{};for(t in this._settings={keybindings:{next:r.next||{keyCode:40},prev:r.prev||{keyCode:38},first:r.first,last:r.last},wrap:e.wrap,stringSearch:e.stringSearch,stringSearchDelay:800},this._keybindingsLookup=[],this._settings.keybindings)(n=this._settings.keybindings[t])&&[].concat(n).forEach(function(e){e.metaKey=e.metaKey||!1,e.ctrlKey=e.ctrlKey||!1,e.altKey=e.altKey||!1,e.shiftKey=e.shiftKey||!1,this._keybindingsLookup.push({action:t,eventMatcher:e})}.bind(this));this._searchString="",this._members=[],e.members&&this.setMembers(e.members),this._boundHandleKeydownEvent=this._handleKeydownEvent.bind(this)}function r(e){e&&e.focus&&(e.focus(),"input"===e.tagName.toLowerCase()&&e.select())}n.prototype.activate=function(){return document.addEventListener("keydown",this._boundHandleKeydownEvent,!0),this},n.prototype.deactivate=function(){return document.removeEventListener("keydown",this._boundHandleKeydownEvent,!0),this._clearSearchStringRefreshTimer(),this},n.prototype._handleKeydownEvent=function(e){if(-1!==this._getActiveElementIndex()){var t=!1;this._keybindingsLookup.forEach(function(n){if(function(e,t){for(var n in e)if(void 0!==t[n]&&e[n]!==t[n])return!1;return!0}(n.eventMatcher,e))switch(t=!0,e.preventDefault(),n.action){case"next":this.moveFocusForward();break;case"prev":this.moveFocusBack();break;case"first":this.moveFocusToFirst();break;case"last":this.moveFocusToLast();break;default:return}}.bind(this)),t||this._handleUnboundKey(e)}},n.prototype.moveFocusForward=function(){var e,t=this._getActiveElementIndex();return e=t<this._members.length-1?t+1:this._settings.wrap?0:t,this.focusNodeAtIndex(e),e},n.prototype.moveFocusBack=function(){var e,t=this._getActiveElementIndex();return e=t>0?t-1:this._settings.wrap?this._members.length-1:t,this.focusNodeAtIndex(e),e},n.prototype.moveFocusToFirst=function(){this.focusNodeAtIndex(0)},n.prototype.moveFocusToLast=function(){this.focusNodeAtIndex(this._members.length-1)},n.prototype._handleUnboundKey=function(e){if(this._settings.stringSearch){if(""!==this._searchString&&(" "===e.key||32===e.keyCode))return e.preventDefault(),-1;if(!function(e){return e>=65&&e<=90}(e.keyCode))return-1;if(e.ctrlKey||e.metaKey||e.altKey)return-1;e.preventDefault(),this._addToSearchString(String.fromCharCode(e.keyCode)),this._runStringSearch()}},n.prototype._clearSearchString=function(){this._searchString=""},n.prototype._addToSearchString=function(e){this._searchString+=e.toLowerCase()},n.prototype._startSearchStringRefreshTimer=function(){var e=this;this._clearSearchStringRefreshTimer(),this._stringSearchTimer=setTimeout(function(){e._clearSearchString()},this._settings.stringSearchDelay)},n.prototype._clearSearchStringRefreshTimer=function(){clearTimeout(this._stringSearchTimer)},n.prototype._runStringSearch=function(){this._startSearchStringRefreshTimer(),this.moveFocusByString(this._searchString)},n.prototype.moveFocusByString=function(e){for(var t,n=0,o=this._members.length;n<o;n++)if((t=this._members[n]).text&&0===t.text.indexOf(e))return r(t.node)},n.prototype._findIndexOfNode=function(e){for(var t=0,n=this._members.length;t<n;t++)if(this._members[t].node===e)return t;return-1},n.prototype._getActiveElementIndex=function(){return this._findIndexOfNode(document.activeElement)},n.prototype.focusNodeAtIndex=function(e){var t=this._members[e];return t&&r(t.node),this},n.prototype.addMember=function(e,t){var n=e.node||e,r=e.text||n.getAttribute("data-focus-group-text")||n.textContent||"";this._checkNode(n);var o={node:n,text:r.replace(/[\W_]/g,"").toLowerCase()};return null!==t&&void 0!==t?this._members.splice(t,0,o):this._members.push(o),this},n.prototype.removeMember=function(e){var t="number"==typeof e?e:this._findIndexOfNode(e);if(-1!==t)return this._members.splice(t,1),this},n.prototype.clearMembers=function(){return this._members=[],this},n.prototype.setMembers=function(e){this.clearMembers();for(var t=0,n=e.length;t<n;t++)this.addMember(e[t]);return this},n.prototype.getMembers=function(){return this._members},n.prototype._checkNode=function(e){if(!e.nodeType||e.nodeType!==window.Node.ELEMENT_NODE)throw new Error("focus-group: only DOM nodes allowed");return e},e.exports=function(e){return new n(e)}},function(e,t,n){"use strict";var r=n(10),o=n(5),i={wrap:!0,stringSearch:!0},s={init:function(e){this.updateOptions(e),this.handleBlur=function(){var e=this;e.blurTimer=setTimeout(function(){if(e.button){var t=e.button.ref.current;if(t){var n=t.ownerDocument.activeElement;if(!t||n!==t){var r=e.menu.ref.current;r!==n?r&&r.contains(n)||e.isOpen&&e.closeMenu({focusButton:!1}):e.focusItem(0)}}}},0)}.bind(this),this.handleSelection=function(e,t){this.options.closeOnSelection&&this.closeMenu({focusButton:!0});this.options.onSelection&&this.options.onSelection(e,t)}.bind(this),this.handleMenuKey=function(e){if(this.isOpen)switch(e.key){case"Escape":e.preventDefault(),this.closeMenu({focusButton:!0});break;case"Home":e.preventDefault(),this.focusGroup.moveFocusToFirst();break;case"End":e.preventDefault(),this.focusGroup.moveFocusToLast()}}.bind(this),this.focusGroup=r(i),this.button=null,this.menu=null,this.isOpen=!1},updateOptions:function(e){var t=this.options;this.options=e||this.options||{},void 0===this.options.closeOnSelection&&(this.options.closeOnSelection=!0),void 0===this.options.closeOnBlur&&(this.options.closeOnBlur=!0),this.options.id&&o.registerManager(this.options.id,this),t&&t.id&&t.id!==this.options.id&&o.unregisterManager(this.options.id,this)},focusItem:function(e){this.focusGroup.focusNodeAtIndex(e)},addItem:function(e){this.focusGroup.addMember(e)},clearItems:function(){this.focusGroup.clearMembers()},handleButtonNonArrowKey:function(e){this.focusGroup._handleUnboundKey(e)},destroy:function(){this.button=null,this.menu=null,this.focusGroup.deactivate(),clearTimeout(this.blurTimer),clearTimeout(this.moveFocusTimer)},update:function(){this.menu.setState({isOpen:this.isOpen}),this.button.setState({menuOpen:this.isOpen}),this.options.onMenuToggle&&this.options.onMenuToggle({isOpen:this.isOpen})},openMenu:function(e){if(!this.isOpen&&(void 0===(e=e||{}).focusMenu&&(e.focusMenu=!0),this.isOpen=!0,this.update(),this.focusGroup.activate(),e.focusMenu)){var t=this;this.moveFocusTimer=setTimeout(function(){t.focusItem(0)},0)}},closeMenu:function(e){this.isOpen&&(e=e||{},this.isOpen=!1,this.update(),e.focusButton&&this.button.ref.current.focus())},toggleMenu:function(e,t){e=e||{},t=t||{},this.isOpen?this.closeMenu(e):this.openMenu(t)}};e.exports=function(e){var t=Object.create(s);return t.init(e),t}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,s,a,u){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var f=[n,o,i,s,a,u],p=0;(c=new Error(t.replace(/%s/g,function(){return f[p++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(14),o=n(13),i=n(12);e.exports=function(){function e(e,t,n,r,s,a){a!==i&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";var r=n(1),o=n(0),i=n(11),s=n(4),a=n(3).refType,u=n(2),c={children:o.node.isRequired,forwardedRef:a,onMenuToggle:o.func,onSelection:o.func,closeOnSelection:o.bool,closeOnBlur:o.bool,tag:o.string},f=function(e){return{onMenuToggle:e.onMenuToggle,onSelection:e.onSelection,closeOnSelection:e.closeOnSelection,closeOnBlur:e.closeOnBlur,id:e.id}},p=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return r.manager=i(f(n)),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentDidUpdate=function(){this.manager.updateOptions(f(this.props))},t.prototype.render=function(){var e={};return u(e,this.props,c),r.createElement(s.Provider,{value:this.manager},r.createElement(this.props.tag,e,this.props.children))},t}(r.Component);p.propTypes=c,p.defaultProps={tag:"div"},e.exports=r.forwardRef(function(e,t){var n={forwardedRef:t};return u(n,e,{children:c.children,forwardedRef:c.forwardedRef}),u(n,{forwardedRef:t}),r.createElement(p,n,e.children)})},function(e,t,n){"use strict";var r=n(5);e.exports={Wrapper:n(16),Button:n(9),Menu:n(8),MenuItem:n(6),openMenu:r.openMenu,closeMenu:r.closeMenu}}])});
|
package/webpack-demo.config.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const path = require("path");
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
entry: {
|
|
5
|
-
demo: "./demo/js/index.js"
|
|
6
|
-
},
|
|
7
|
-
output: {
|
|
8
|
-
path: path.join(__dirname, "demo"),
|
|
9
|
-
filename: "demo-bundle.js"
|
|
10
|
-
},
|
|
11
|
-
module: {
|
|
12
|
-
rules: [{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }]
|
|
13
|
-
}
|
|
14
|
-
};
|
package/webpack-umd.config.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const path = require("path");
|
|
2
|
-
|
|
3
|
-
const filename = process.env.MINIFY
|
|
4
|
-
? "ReactAriaMenuButton.min.js"
|
|
5
|
-
: "ReactAriaMenuButton.js";
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
8
|
-
entry: {
|
|
9
|
-
AriaMenuButton: "./src/index.js"
|
|
10
|
-
},
|
|
11
|
-
output: {
|
|
12
|
-
library: "ReactAriaMenuButton",
|
|
13
|
-
libraryTarget: "umd",
|
|
14
|
-
path: path.join(__dirname, "umd"),
|
|
15
|
-
filename: filename
|
|
16
|
-
},
|
|
17
|
-
externals: [
|
|
18
|
-
{
|
|
19
|
-
react: {
|
|
20
|
-
root: "React",
|
|
21
|
-
commonjs2: "react",
|
|
22
|
-
commonjs: "react",
|
|
23
|
-
amd: "react"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
module: {
|
|
28
|
-
rules: [{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }]
|
|
29
|
-
},
|
|
30
|
-
node: {
|
|
31
|
-
Buffer: false,
|
|
32
|
-
process: false,
|
|
33
|
-
setImmediate: false
|
|
34
|
-
}
|
|
35
|
-
};
|