@instructure/ui-menu 8.10.1-snapshot.8 → 8.10.2
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/CHANGELOG.md +8 -0
- package/es/Menu/MenuItem/index.js +8 -3
- package/es/Menu/MenuItemGroup/index.js +7 -1
- package/es/Menu/MenuItemSeparator/index.js +11 -1
- package/es/Menu/index.js +13 -14
- package/lib/Menu/MenuItem/index.js +8 -3
- package/lib/Menu/MenuItemGroup/index.js +7 -1
- package/lib/Menu/MenuItemSeparator/index.js +11 -1
- package/lib/Menu/index.js +13 -14
- package/package.json +21 -22
- package/src/Menu/MenuItem/index.tsx +10 -6
- package/src/Menu/MenuItemGroup/index.tsx +7 -0
- package/src/Menu/MenuItemSeparator/index.tsx +7 -0
- package/src/Menu/index.tsx +15 -20
- package/types/Menu/MenuItem/index.d.ts +3 -0
- package/types/Menu/MenuItem/index.d.ts.map +1 -1
- package/types/Menu/MenuItemGroup/index.d.ts +2 -0
- package/types/Menu/MenuItemGroup/index.d.ts.map +1 -1
- package/types/Menu/MenuItemSeparator/index.d.ts +2 -0
- package/types/Menu/MenuItemSeparator/index.d.ts.map +1 -1
- package/types/Menu/index.d.ts +3 -1
- package/types/Menu/index.d.ts.map +1 -1
- package/LICENSE.md +0 -27
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [8.10.2](https://github.com/instructure/instructure-ui/compare/v8.10.1...v8.10.2) (2021-10-01)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @instructure/ui-menu
|
|
9
|
+
|
|
10
|
+
## [8.10.1](https://github.com/instructure/instructure-ui/compare/v8.10.0...v8.10.1) (2021-10-01)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @instructure/ui-menu
|
|
13
|
+
|
|
6
14
|
# [8.10.0](https://github.com/instructure/instructure-ui/compare/v8.9.1...v8.10.0) (2021-09-28)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @instructure/ui-menu
|
|
@@ -48,6 +48,13 @@ id: Menu.Item
|
|
|
48
48
|
let MenuItem = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 = testable(), _dec(_class = _dec2(_class = (_temp = _class2 = class MenuItem extends Component {
|
|
49
49
|
constructor(props) {
|
|
50
50
|
super();
|
|
51
|
+
this.ref = null;
|
|
52
|
+
this._node = null;
|
|
53
|
+
|
|
54
|
+
this.handleRef = el => {
|
|
55
|
+
this.ref = el;
|
|
56
|
+
this._node = el;
|
|
57
|
+
};
|
|
51
58
|
|
|
52
59
|
this.handleClick = e => {
|
|
53
60
|
const _this$props = this.props,
|
|
@@ -219,9 +226,7 @@ let MenuItem = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 =
|
|
|
219
226
|
onClick: this.handleClick,
|
|
220
227
|
onKeyUp: createChainedFunction(onKeyUp, this.handleKeyUp),
|
|
221
228
|
onKeyDown: createChainedFunction(onKeyDown, this.handleKeyDown),
|
|
222
|
-
ref:
|
|
223
|
-
this._node = c;
|
|
224
|
-
},
|
|
229
|
+
ref: this.handleRef,
|
|
225
230
|
css: (_this$props$styles4 = this.props.styles) === null || _this$props$styles4 === void 0 ? void 0 : _this$props$styles4.menuItem,
|
|
226
231
|
onMouseOver: this.handleMouseOver
|
|
227
232
|
}), this.renderContent());
|
|
@@ -45,6 +45,11 @@ id: Menu.Group
|
|
|
45
45
|
let MenuItemGroup = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 = testable(), _dec(_class = _dec2(_class = (_temp = _class2 = class MenuItemGroup extends Component {
|
|
46
46
|
constructor(props) {
|
|
47
47
|
super();
|
|
48
|
+
this.ref = null;
|
|
49
|
+
|
|
50
|
+
this.handleRef = el => {
|
|
51
|
+
this.ref = el;
|
|
52
|
+
};
|
|
48
53
|
|
|
49
54
|
this.handleSelect = (e, value, selected, item) => {
|
|
50
55
|
if (this.props.disabled) {
|
|
@@ -171,7 +176,8 @@ let MenuItemGroup = (_dec = withStyle(generateStyle, generateComponentTheme), _d
|
|
|
171
176
|
const props = omitProps(this.props, MenuItemGroup.allowedProps);
|
|
172
177
|
return jsx("span", Object.assign({}, props, {
|
|
173
178
|
css: (_this$props$styles2 = this.props.styles) === null || _this$props$styles2 === void 0 ? void 0 : _this$props$styles2.menuItemGroup,
|
|
174
|
-
role: "presentation"
|
|
179
|
+
role: "presentation",
|
|
180
|
+
ref: this.handleRef
|
|
175
181
|
}), jsx("span", {
|
|
176
182
|
id: this._labelId
|
|
177
183
|
}, this.renderLabel()), jsx("ul", {
|
|
@@ -41,6 +41,15 @@ id: Menu.Separator
|
|
|
41
41
|
@module MenuItemSeparator
|
|
42
42
|
**/
|
|
43
43
|
let MenuItemSeparator = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 = testable(), _dec(_class = _dec2(_class = (_temp = _class2 = class MenuItemSeparator extends Component {
|
|
44
|
+
constructor(...args) {
|
|
45
|
+
super(...args);
|
|
46
|
+
this.ref = null;
|
|
47
|
+
|
|
48
|
+
this.handleRef = el => {
|
|
49
|
+
this.ref = el;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
44
53
|
componentDidMount() {
|
|
45
54
|
this.props.makeStyles();
|
|
46
55
|
}
|
|
@@ -55,7 +64,8 @@ let MenuItemSeparator = (_dec = withStyle(generateStyle, generateComponentTheme)
|
|
|
55
64
|
const props = omitProps(this.props, MenuItemSeparator.allowedProps);
|
|
56
65
|
return jsx("div", Object.assign({}, props, {
|
|
57
66
|
role: "presentation",
|
|
58
|
-
css: (_this$props$styles = this.props.styles) === null || _this$props$styles === void 0 ? void 0 : _this$props$styles.menuItemSeparator
|
|
67
|
+
css: (_this$props$styles = this.props.styles) === null || _this$props$styles === void 0 ? void 0 : _this$props$styles.menuItemSeparator,
|
|
68
|
+
ref: this.handleRef
|
|
59
69
|
}));
|
|
60
70
|
}
|
|
61
71
|
|
package/es/Menu/index.js
CHANGED
|
@@ -60,6 +60,17 @@ let Menu = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 = tes
|
|
|
60
60
|
this._menu = null;
|
|
61
61
|
this._labelId = uid('Menu__label');
|
|
62
62
|
this._activeSubMenu = null;
|
|
63
|
+
this.ref = null;
|
|
64
|
+
|
|
65
|
+
this.handleRef = el => {
|
|
66
|
+
const menuRef = this.props.menuRef;
|
|
67
|
+
this.ref = el;
|
|
68
|
+
this._menu = el;
|
|
69
|
+
|
|
70
|
+
if (typeof menuRef === 'function') {
|
|
71
|
+
menuRef(el);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
63
74
|
|
|
64
75
|
this.registerMenuItem = item => {
|
|
65
76
|
this._menuItems.push(item);
|
|
@@ -327,12 +338,10 @@ let Menu = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 = tes
|
|
|
327
338
|
var _this$props$styles;
|
|
328
339
|
|
|
329
340
|
const _this$props2 = this.props,
|
|
330
|
-
menuRef = _this$props2.menuRef,
|
|
331
341
|
disabled = _this$props2.disabled,
|
|
332
342
|
label = _this$props2.label,
|
|
333
343
|
trigger = _this$props2.trigger,
|
|
334
|
-
onKeyUp = _this$props2.onKeyUp
|
|
335
|
-
contentRef = _this$props2.contentRef;
|
|
344
|
+
onKeyUp = _this$props2.onKeyUp;
|
|
336
345
|
const labelledBy = this.props['aria-labelledby']; // eslint-disable-line react/prop-types
|
|
337
346
|
|
|
338
347
|
const controls = this.props['aria-controls']; // eslint-disable-line react/prop-types
|
|
@@ -352,17 +361,7 @@ let Menu = (_dec = withStyle(generateStyle, generateComponentTheme), _dec2 = tes
|
|
|
352
361
|
"aria-disabled": disabled ? 'true' : null,
|
|
353
362
|
onKeyDown: this.handleMenuKeyDown,
|
|
354
363
|
onKeyUp: onKeyUp,
|
|
355
|
-
ref:
|
|
356
|
-
this._menu = el;
|
|
357
|
-
|
|
358
|
-
if (typeof menuRef === 'function') {
|
|
359
|
-
menuRef(el);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
if (typeof contentRef === 'function') {
|
|
363
|
-
contentRef(el);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
364
|
+
ref: this.handleRef
|
|
366
365
|
}, this.renderChildren()));
|
|
367
366
|
}
|
|
368
367
|
|
|
@@ -50,6 +50,13 @@ id: Menu.Item
|
|
|
50
50
|
let MenuItem = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec2 = (0, _testable.testable)(), _dec(_class = _dec2(_class = (_temp = _class2 = class MenuItem extends _react.Component {
|
|
51
51
|
constructor(props) {
|
|
52
52
|
super();
|
|
53
|
+
this.ref = null;
|
|
54
|
+
this._node = null;
|
|
55
|
+
|
|
56
|
+
this.handleRef = el => {
|
|
57
|
+
this.ref = el;
|
|
58
|
+
this._node = el;
|
|
59
|
+
};
|
|
53
60
|
|
|
54
61
|
this.handleClick = e => {
|
|
55
62
|
const _this$props = this.props,
|
|
@@ -221,9 +228,7 @@ let MenuItem = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default),
|
|
|
221
228
|
onClick: this.handleClick,
|
|
222
229
|
onKeyUp: (0, _createChainedFunction.createChainedFunction)(onKeyUp, this.handleKeyUp),
|
|
223
230
|
onKeyDown: (0, _createChainedFunction.createChainedFunction)(onKeyDown, this.handleKeyDown),
|
|
224
|
-
ref:
|
|
225
|
-
this._node = c;
|
|
226
|
-
},
|
|
231
|
+
ref: this.handleRef,
|
|
227
232
|
css: (_this$props$styles4 = this.props.styles) === null || _this$props$styles4 === void 0 ? void 0 : _this$props$styles4.menuItem,
|
|
228
233
|
onMouseOver: this.handleMouseOver
|
|
229
234
|
}), this.renderContent());
|
|
@@ -42,6 +42,11 @@ id: Menu.Group
|
|
|
42
42
|
let MenuItemGroup = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec2 = (0, _testable.testable)(), _dec(_class = _dec2(_class = (_temp = _class2 = class MenuItemGroup extends _react.Component {
|
|
43
43
|
constructor(props) {
|
|
44
44
|
super();
|
|
45
|
+
this.ref = null;
|
|
46
|
+
|
|
47
|
+
this.handleRef = el => {
|
|
48
|
+
this.ref = el;
|
|
49
|
+
};
|
|
45
50
|
|
|
46
51
|
this.handleSelect = (e, value, selected, item) => {
|
|
47
52
|
if (this.props.disabled) {
|
|
@@ -170,7 +175,8 @@ let MenuItemGroup = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.defa
|
|
|
170
175
|
const props = (0, _omitProps.omitProps)(this.props, MenuItemGroup.allowedProps);
|
|
171
176
|
return (0, _emotion.jsx)("span", Object.assign({}, props, {
|
|
172
177
|
css: (_this$props$styles2 = this.props.styles) === null || _this$props$styles2 === void 0 ? void 0 : _this$props$styles2.menuItemGroup,
|
|
173
|
-
role: "presentation"
|
|
178
|
+
role: "presentation",
|
|
179
|
+
ref: this.handleRef
|
|
174
180
|
}), (0, _emotion.jsx)("span", {
|
|
175
181
|
id: this._labelId
|
|
176
182
|
}, this.renderLabel()), (0, _emotion.jsx)("ul", {
|
|
@@ -31,6 +31,15 @@ id: Menu.Separator
|
|
|
31
31
|
@module MenuItemSeparator
|
|
32
32
|
**/
|
|
33
33
|
let MenuItemSeparator = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec2 = (0, _testable.testable)(), _dec(_class = _dec2(_class = (_temp = _class2 = class MenuItemSeparator extends _react.Component {
|
|
34
|
+
constructor(...args) {
|
|
35
|
+
super(...args);
|
|
36
|
+
this.ref = null;
|
|
37
|
+
|
|
38
|
+
this.handleRef = el => {
|
|
39
|
+
this.ref = el;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
34
43
|
componentDidMount() {
|
|
35
44
|
this.props.makeStyles();
|
|
36
45
|
}
|
|
@@ -45,7 +54,8 @@ let MenuItemSeparator = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.
|
|
|
45
54
|
const props = (0, _omitProps.omitProps)(this.props, MenuItemSeparator.allowedProps);
|
|
46
55
|
return (0, _emotion.jsx)("div", Object.assign({}, props, {
|
|
47
56
|
role: "presentation",
|
|
48
|
-
css: (_this$props$styles = this.props.styles) === null || _this$props$styles === void 0 ? void 0 : _this$props$styles.menuItemSeparator
|
|
57
|
+
css: (_this$props$styles = this.props.styles) === null || _this$props$styles === void 0 ? void 0 : _this$props$styles.menuItemSeparator,
|
|
58
|
+
ref: this.handleRef
|
|
49
59
|
}));
|
|
50
60
|
}
|
|
51
61
|
|
package/lib/Menu/index.js
CHANGED
|
@@ -79,6 +79,17 @@ let Menu = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _de
|
|
|
79
79
|
this._menu = null;
|
|
80
80
|
this._labelId = (0, _uid.uid)('Menu__label');
|
|
81
81
|
this._activeSubMenu = null;
|
|
82
|
+
this.ref = null;
|
|
83
|
+
|
|
84
|
+
this.handleRef = el => {
|
|
85
|
+
const menuRef = this.props.menuRef;
|
|
86
|
+
this.ref = el;
|
|
87
|
+
this._menu = el;
|
|
88
|
+
|
|
89
|
+
if (typeof menuRef === 'function') {
|
|
90
|
+
menuRef(el);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
82
93
|
|
|
83
94
|
this.registerMenuItem = item => {
|
|
84
95
|
this._menuItems.push(item);
|
|
@@ -346,12 +357,10 @@ let Menu = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _de
|
|
|
346
357
|
var _this$props$styles;
|
|
347
358
|
|
|
348
359
|
const _this$props2 = this.props,
|
|
349
|
-
menuRef = _this$props2.menuRef,
|
|
350
360
|
disabled = _this$props2.disabled,
|
|
351
361
|
label = _this$props2.label,
|
|
352
362
|
trigger = _this$props2.trigger,
|
|
353
|
-
onKeyUp = _this$props2.onKeyUp
|
|
354
|
-
contentRef = _this$props2.contentRef;
|
|
363
|
+
onKeyUp = _this$props2.onKeyUp;
|
|
355
364
|
const labelledBy = this.props['aria-labelledby']; // eslint-disable-line react/prop-types
|
|
356
365
|
|
|
357
366
|
const controls = this.props['aria-controls']; // eslint-disable-line react/prop-types
|
|
@@ -371,17 +380,7 @@ let Menu = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _de
|
|
|
371
380
|
"aria-disabled": disabled ? 'true' : null,
|
|
372
381
|
onKeyDown: this.handleMenuKeyDown,
|
|
373
382
|
onKeyUp: onKeyUp,
|
|
374
|
-
ref:
|
|
375
|
-
this._menu = el;
|
|
376
|
-
|
|
377
|
-
if (typeof menuRef === 'function') {
|
|
378
|
-
menuRef(el);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
if (typeof contentRef === 'function') {
|
|
382
|
-
contentRef(el);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
383
|
+
ref: this.handleRef
|
|
385
384
|
}, this.renderChildren()));
|
|
386
385
|
}
|
|
387
386
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/ui-menu",
|
|
3
|
-
"version": "8.10.
|
|
3
|
+
"version": "8.10.2",
|
|
4
4
|
"description": "A dropdown menu component",
|
|
5
5
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -24,28 +24,28 @@
|
|
|
24
24
|
},
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@instructure/ui-babel-preset": "8.10.
|
|
28
|
-
"@instructure/ui-color-utils": "8.10.
|
|
29
|
-
"@instructure/ui-test-locator": "8.10.
|
|
30
|
-
"@instructure/ui-test-queries": "8.10.
|
|
31
|
-
"@instructure/ui-test-utils": "8.10.
|
|
32
|
-
"@instructure/ui-themes": "8.10.
|
|
27
|
+
"@instructure/ui-babel-preset": "8.10.2",
|
|
28
|
+
"@instructure/ui-color-utils": "8.10.2",
|
|
29
|
+
"@instructure/ui-test-locator": "8.10.2",
|
|
30
|
+
"@instructure/ui-test-queries": "8.10.2",
|
|
31
|
+
"@instructure/ui-test-utils": "8.10.2",
|
|
32
|
+
"@instructure/ui-themes": "8.10.2"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@babel/runtime": "^7.13.10",
|
|
36
|
-
"@instructure/console": "8.10.
|
|
37
|
-
"@instructure/emotion": "8.10.
|
|
38
|
-
"@instructure/shared-types": "8.10.
|
|
39
|
-
"@instructure/ui-a11y-utils": "8.10.
|
|
40
|
-
"@instructure/ui-dom-utils": "8.10.
|
|
41
|
-
"@instructure/ui-icons": "8.10.
|
|
42
|
-
"@instructure/ui-popover": "8.10.
|
|
43
|
-
"@instructure/ui-position": "8.10.
|
|
44
|
-
"@instructure/ui-prop-types": "8.10.
|
|
45
|
-
"@instructure/ui-react-utils": "8.10.
|
|
46
|
-
"@instructure/ui-testable": "8.10.
|
|
47
|
-
"@instructure/ui-utils": "8.10.
|
|
48
|
-
"@instructure/uid": "8.10.
|
|
36
|
+
"@instructure/console": "8.10.2",
|
|
37
|
+
"@instructure/emotion": "8.10.2",
|
|
38
|
+
"@instructure/shared-types": "8.10.2",
|
|
39
|
+
"@instructure/ui-a11y-utils": "8.10.2",
|
|
40
|
+
"@instructure/ui-dom-utils": "8.10.2",
|
|
41
|
+
"@instructure/ui-icons": "8.10.2",
|
|
42
|
+
"@instructure/ui-popover": "8.10.2",
|
|
43
|
+
"@instructure/ui-position": "8.10.2",
|
|
44
|
+
"@instructure/ui-prop-types": "8.10.2",
|
|
45
|
+
"@instructure/ui-react-utils": "8.10.2",
|
|
46
|
+
"@instructure/ui-testable": "8.10.2",
|
|
47
|
+
"@instructure/ui-utils": "8.10.2",
|
|
48
|
+
"@instructure/uid": "8.10.2",
|
|
49
49
|
"keycode": "^2",
|
|
50
50
|
"prop-types": "^15"
|
|
51
51
|
},
|
|
@@ -55,6 +55,5 @@
|
|
|
55
55
|
"publishConfig": {
|
|
56
56
|
"access": "public"
|
|
57
57
|
},
|
|
58
|
-
"sideEffects": false
|
|
59
|
-
"gitHead": "21f46f4e342898b019ab943a7e69a455621d9576"
|
|
58
|
+
"sideEffects": false
|
|
60
59
|
}
|
|
@@ -78,6 +78,14 @@ class MenuItem extends Component<MenuItemProps> {
|
|
|
78
78
|
this.labelId = uid('MenuItem__label')
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
ref: Element | null = null
|
|
82
|
+
_node: Element | null = null
|
|
83
|
+
|
|
84
|
+
handleRef = (el: Element | null) => {
|
|
85
|
+
this.ref = el
|
|
86
|
+
this._node = el
|
|
87
|
+
}
|
|
88
|
+
|
|
81
89
|
componentDidMount() {
|
|
82
90
|
// @ts-expect-error ts-migrate(2722) FIXME: Cannot invoke an object which is possibly 'undefin... Remove this comment to see the full error message
|
|
83
91
|
this.props.makeStyles()
|
|
@@ -192,7 +200,6 @@ class MenuItem extends Component<MenuItemProps> {
|
|
|
192
200
|
}
|
|
193
201
|
|
|
194
202
|
get focused() {
|
|
195
|
-
// @ts-expect-error ts-migrate(2339) FIXME: Property '_node' does not exist on type 'MenuItem'... Remove this comment to see the full error message
|
|
196
203
|
return isActiveElement(this._node)
|
|
197
204
|
}
|
|
198
205
|
|
|
@@ -232,6 +239,7 @@ class MenuItem extends Component<MenuItemProps> {
|
|
|
232
239
|
|
|
233
240
|
return (
|
|
234
241
|
<ElementType // eslint-disable-line jsx-a11y/mouse-events-have-key-events
|
|
242
|
+
// @ts-expect-error TODO: `ref` prop causes: "Expression produces a union type that is too complex to represent.ts(2590)"
|
|
235
243
|
tabIndex={-1} // note: tabIndex can be overridden by Menu or MenuItemGroup components
|
|
236
244
|
{...props}
|
|
237
245
|
href={href}
|
|
@@ -250,11 +258,7 @@ class MenuItem extends Component<MenuItemProps> {
|
|
|
250
258
|
onClick={this.handleClick}
|
|
251
259
|
onKeyUp={createChainedFunction(onKeyUp, this.handleKeyUp)}
|
|
252
260
|
onKeyDown={createChainedFunction(onKeyDown, this.handleKeyDown)}
|
|
253
|
-
|
|
254
|
-
ref={(c) => {
|
|
255
|
-
// @ts-expect-error ts-migrate(2339) FIXME: Property '_node' does not exist on type 'MenuItem'... Remove this comment to see the full error message
|
|
256
|
-
this._node = c
|
|
257
|
-
}}
|
|
261
|
+
ref={this.handleRef}
|
|
258
262
|
css={this.props.styles?.menuItem}
|
|
259
263
|
onMouseOver={this.handleMouseOver}
|
|
260
264
|
>
|
|
@@ -83,6 +83,12 @@ class MenuItemGroup extends Component<MenuGroupProps> {
|
|
|
83
83
|
this._labelId = uid('MenuItemGroup')
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
ref: Element | null = null
|
|
87
|
+
|
|
88
|
+
handleRef = (el: Element | null) => {
|
|
89
|
+
this.ref = el
|
|
90
|
+
}
|
|
91
|
+
|
|
86
92
|
componentDidMount() {
|
|
87
93
|
// @ts-expect-error ts-migrate(2722) FIXME: Cannot invoke an object which is possibly 'undefin... Remove this comment to see the full error message
|
|
88
94
|
this.props.makeStyles()
|
|
@@ -238,6 +244,7 @@ class MenuItemGroup extends Component<MenuGroupProps> {
|
|
|
238
244
|
{...props}
|
|
239
245
|
css={this.props.styles?.menuItemGroup}
|
|
240
246
|
role="presentation"
|
|
247
|
+
ref={this.handleRef}
|
|
241
248
|
>
|
|
242
249
|
{/* @ts-expect-error ts-migrate(2339) FIXME: Property '_labelId' does not exist on type 'MenuIt... Remove this comment to see the full error message */}
|
|
243
250
|
<span id={this._labelId}>{this.renderLabel()}</span>
|
|
@@ -50,6 +50,12 @@ class MenuItemSeparator extends Component<MenuSeparatorProps> {
|
|
|
50
50
|
static propTypes = propTypes
|
|
51
51
|
static allowedProps = allowedProps
|
|
52
52
|
|
|
53
|
+
ref: Element | null = null
|
|
54
|
+
|
|
55
|
+
handleRef = (el: Element | null) => {
|
|
56
|
+
this.ref = el
|
|
57
|
+
}
|
|
58
|
+
|
|
53
59
|
componentDidMount() {
|
|
54
60
|
// @ts-expect-error ts-migrate(2722) FIXME: Cannot invoke an object which is possibly 'undefin... Remove this comment to see the full error message
|
|
55
61
|
this.props.makeStyles()
|
|
@@ -67,6 +73,7 @@ class MenuItemSeparator extends Component<MenuSeparatorProps> {
|
|
|
67
73
|
{...props}
|
|
68
74
|
role="presentation"
|
|
69
75
|
css={this.props.styles?.menuItemSeparator}
|
|
76
|
+
ref={this.handleRef}
|
|
70
77
|
/>
|
|
71
78
|
)
|
|
72
79
|
}
|
package/src/Menu/index.tsx
CHANGED
|
@@ -105,10 +105,22 @@ class Menu extends Component<MenuProps> {
|
|
|
105
105
|
_menuItems = []
|
|
106
106
|
_popover = null
|
|
107
107
|
_trigger = null
|
|
108
|
-
_menu = null
|
|
108
|
+
_menu: HTMLUListElement | null = null
|
|
109
109
|
_labelId = uid('Menu__label')
|
|
110
110
|
_activeSubMenu = null
|
|
111
111
|
|
|
112
|
+
ref: HTMLUListElement | null = null
|
|
113
|
+
|
|
114
|
+
handleRef = (el: HTMLUListElement | null) => {
|
|
115
|
+
const { menuRef } = this.props
|
|
116
|
+
|
|
117
|
+
this.ref = el
|
|
118
|
+
this._menu = el
|
|
119
|
+
if (typeof menuRef === 'function') {
|
|
120
|
+
menuRef(el)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
112
124
|
// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'props' implicitly has an 'any' type.
|
|
113
125
|
constructor(props) {
|
|
114
126
|
super(props)
|
|
@@ -433,15 +445,7 @@ class Menu extends Component<MenuProps> {
|
|
|
433
445
|
}
|
|
434
446
|
|
|
435
447
|
renderMenu() {
|
|
436
|
-
const {
|
|
437
|
-
menuRef,
|
|
438
|
-
disabled,
|
|
439
|
-
label,
|
|
440
|
-
trigger,
|
|
441
|
-
onKeyUp,
|
|
442
|
-
// @ts-expect-error ts-migrate(2339) FIXME: Property 'contentRef' does not exist on type 'Read... Remove this comment to see the full error message
|
|
443
|
-
contentRef // eslint-disable-line react/prop-types
|
|
444
|
-
} = this.props
|
|
448
|
+
const { disabled, label, trigger, onKeyUp } = this.props
|
|
445
449
|
|
|
446
450
|
// @ts-expect-error ts-migrate(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
|
|
447
451
|
const labelledBy = this.props['aria-labelledby'] // eslint-disable-line react/prop-types
|
|
@@ -469,16 +473,7 @@ class Menu extends Component<MenuProps> {
|
|
|
469
473
|
aria-disabled={disabled ? 'true' : null}
|
|
470
474
|
onKeyDown={this.handleMenuKeyDown}
|
|
471
475
|
onKeyUp={onKeyUp}
|
|
472
|
-
ref={
|
|
473
|
-
// @ts-expect-error ts-migrate(2322) FIXME: Type 'HTMLUListElement | null' is not assignable t... Remove this comment to see the full error message
|
|
474
|
-
this._menu = el
|
|
475
|
-
if (typeof menuRef === 'function') {
|
|
476
|
-
menuRef(el)
|
|
477
|
-
}
|
|
478
|
-
if (typeof contentRef === 'function') {
|
|
479
|
-
contentRef(el)
|
|
480
|
-
}
|
|
481
|
-
}}
|
|
476
|
+
ref={this.handleRef}
|
|
482
477
|
>
|
|
483
478
|
{this.renderChildren()}
|
|
484
479
|
</ul>
|
|
@@ -52,6 +52,9 @@ declare class MenuItem extends Component<MenuItemProps> {
|
|
|
52
52
|
removeMenuItem: () => void;
|
|
53
53
|
}>;
|
|
54
54
|
constructor(props: any);
|
|
55
|
+
ref: Element | null;
|
|
56
|
+
_node: Element | null;
|
|
57
|
+
handleRef: (el: Element | null) => void;
|
|
55
58
|
componentDidMount(): void;
|
|
56
59
|
componentDidUpdate(): void;
|
|
57
60
|
componentWillUnmount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItem/index.tsx"],"names":[],"mappings":"AAuBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AASjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;GAKG;AACH,cAEM,QAAS,SAAQ,SAAS,CAAC,aAAa,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAc;IAEzC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;MAKT;IAEV,MAAM,CAAC,WAAW;;;OAAc;gBAGpB,KAAK,KAAA;IAcjB,iBAAiB;IAUjB,kBAAkB;IAKlB,oBAAoB;IASpB,WAAW,mBAqBV;IAGD,aAAa,mBAcZ;IAGD,WAAW,mBAaV;IAGD,eAAe,uBAMd;IAED,IAAI,WAAW,wEAEd;IAED,IAAI,IAAI,iEAWP;IAED,IAAI,QAAQ,QAKX;IAED,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItem/index.tsx"],"names":[],"mappings":"AAuBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AASjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;GAKG;AACH,cAEM,QAAS,SAAQ,SAAS,CAAC,aAAa,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAc;IAEzC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;MAKT;IAEV,MAAM,CAAC,WAAW;;;OAAc;gBAGpB,KAAK,KAAA;IAcjB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAC1B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAO;IAE5B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAG9B;IAED,iBAAiB;IAUjB,kBAAkB;IAKlB,oBAAoB;IASpB,WAAW,mBAqBV;IAGD,aAAa,mBAcZ;IAGD,WAAW,mBAaV;IAGD,eAAe,uBAMd;IAED,IAAI,WAAW,wEAEd;IAED,IAAI,IAAI,iEAWP;IAED,IAAI,QAAQ,QAKX;IAED,IAAI,OAAO,YAEV;IAED,KAAK;IAKL,aAAa;IAuBb,MAAM;CAmCP;AAED,eAAe,QAAQ,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -48,6 +48,8 @@ declare class MenuItemGroup extends Component<MenuGroupProps> {
|
|
|
48
48
|
onSelect: (e: any, value: any, selected: any, item: any) => void;
|
|
49
49
|
};
|
|
50
50
|
constructor(props: any);
|
|
51
|
+
ref: Element | null;
|
|
52
|
+
handleRef: (el: Element | null) => void;
|
|
51
53
|
componentDidMount(): void;
|
|
52
54
|
componentDidUpdate(): void;
|
|
53
55
|
handleSelect: (e: any, value: any, selected: any, item: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemGroup/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAY,SAAS,EAAgB,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAgBrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;;;GAKG;AACH,cAEM,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAe;IAE1C,MAAM,CAAC,SAAS;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;;;;;MAUlB;gBAGW,KAAK,KAAA;IAcjB,iBAAiB;IAKjB,kBAAkB;IAMlB,YAAY,yDAsBX;IAGD,cAAc,sEAmBb;IAGD,oBAAoB,CAAC,KAAK,KAAA;IAwB1B,IAAI,QAAQ,UAaX;IAED,WAAW;IAUX,cAAc;IAyCd,MAAM;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemGroup/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAY,SAAS,EAAgB,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAgBrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;;;GAKG;AACH,cAEM,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAe;IAE1C,MAAM,CAAC,SAAS;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;;;;;MAUlB;gBAGW,KAAK,KAAA;IAcjB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAKjB,kBAAkB;IAMlB,YAAY,yDAsBX;IAGD,cAAc,sEAmBb;IAGD,oBAAoB,CAAC,KAAK,KAAA;IAwB1B,IAAI,QAAQ,UAaX;IAED,WAAW;IAUX,cAAc;IAyCd,MAAM;CAuBP;AAED,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -13,6 +13,8 @@ declare class MenuItemSeparator extends Component<MenuSeparatorProps> {
|
|
|
13
13
|
static readonly componentId = "Menu.Separator";
|
|
14
14
|
static propTypes: import("@instructure/shared-types/types/UtilityTypes").PropValidators<never>;
|
|
15
15
|
static allowedProps: readonly never[];
|
|
16
|
+
ref: Element | null;
|
|
17
|
+
handleRef: (el: Element | null) => void;
|
|
16
18
|
componentDidMount(): void;
|
|
17
19
|
componentDidUpdate(): void;
|
|
18
20
|
render(): jsx.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemSeparator/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD;;;;;;GAMG;AACH,cAEM,iBAAkB,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,WAAW,oBAAmB;IAE9C,MAAM,CAAC,SAAS,+EAAY;IAC5B,MAAM,CAAC,YAAY,mBAAe;IAElC,iBAAiB;IAKjB,kBAAkB;IAKlB,MAAM;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemSeparator/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD;;;;;;GAMG;AACH,cAEM,iBAAkB,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,WAAW,oBAAmB;IAE9C,MAAM,CAAC,SAAS,+EAAY;IAC5B,MAAM,CAAC,YAAY,mBAAe;IAElC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAKjB,kBAAkB;IAKlB,MAAM;CAWP;AAED,eAAe,iBAAiB,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
package/types/Menu/index.d.ts
CHANGED
|
@@ -106,9 +106,11 @@ declare class Menu extends Component<MenuProps> {
|
|
|
106
106
|
_menuItems: never[];
|
|
107
107
|
_popover: null;
|
|
108
108
|
_trigger: null;
|
|
109
|
-
_menu: null;
|
|
109
|
+
_menu: HTMLUListElement | null;
|
|
110
110
|
_labelId: string;
|
|
111
111
|
_activeSubMenu: null;
|
|
112
|
+
ref: HTMLUListElement | null;
|
|
113
|
+
handleRef: (el: HTMLUListElement | null) => void;
|
|
112
114
|
constructor(props: any);
|
|
113
115
|
componentDidMount(): void;
|
|
114
116
|
componentDidUpdate(prevProps: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Menu/index.tsx"],"names":[],"mappings":"AAuBA,eAAe;AACf,OAAO,EAAY,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAczD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAMrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC;;;;GAIG;AACH,cAEM,IAAK,SAAQ,SAAS,CAAC,SAAS,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,UAAS;IAEpC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;MAmClB;IAED,MAAM,CAAC,IAAI,kBAAW;IACtB,MAAM,CAAC,KAAK,uBAAgB;IAC5B,MAAM,CAAC,SAAS,2BAAoB;IAEpC,KAAK;;MAAsB;IAC3B,SAAS,OAAO;IAChB,UAAU,UAAK;IACf,QAAQ,OAAO;IACf,QAAQ,OAAO;IACf,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Menu/index.tsx"],"names":[],"mappings":"AAuBA,eAAe;AACf,OAAO,EAAY,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAczD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAMrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC;;;;GAIG;AACH,cAEM,IAAK,SAAQ,SAAS,CAAC,SAAS,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,UAAS;IAEpC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;MAmClB;IAED,MAAM,CAAC,IAAI,kBAAW;IACtB,MAAM,CAAC,KAAK,uBAAgB;IAC5B,MAAM,CAAC,SAAS,2BAAoB;IAEpC,KAAK;;MAAsB;IAC3B,SAAS,OAAO;IAChB,UAAU,UAAK;IACf,QAAQ,OAAO;IACf,QAAQ,OAAO;IACf,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAO;IACrC,QAAQ,SAAqB;IAC7B,cAAc,OAAO;IAErB,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAEnC,SAAS,OAAQ,gBAAgB,GAAG,IAAI,UAQvC;gBAGW,KAAK,KAAA;IAMjB,iBAAiB;IAMjB,kBAAkB,CAAC,SAAS,KAAA;IAK5B,MAAM,CAAC,WAAW;;;OAAc;IAGhC,gBAAgB,sBAGf;IAGD,cAAc,sBAMb;IAED,IAAI,SAAS,YAEZ;IAGD,gBAAgB,wBAEf;IAGD,oBAAoB,uBAMnB;IAED,sBAAsB,aAKrB;IAGD,YAAY,uBAIX;IAGD,iBAAiB,uBAuBhB;IAGD,oBAAoB,6DAQnB;IAED,mBAAmB,aAElB;IAED,kBAAkB,aAEjB;IAGD,uBAAuB,sCAKtB;IAGD,iBAAiB,uBAMhB;IAGD,mBAAmB,qCAIlB;IAGD,oBAAoB,2CAInB;IAGD,IAAI,uBAKH;IAGD,IAAI,uBAKH;IAED,KAAK;IAiBL,OAAO;IAQP,IAAI,YAAY,WAKf;IAGD,SAAS,CAAC,IAAI,KAAA;IAkBd,IAAI,KAAK,QAGR;IAED,cAAc;IA4Gd,UAAU;IAqCV,MAAM;CAiEP;AAED,eAAe,IAAI,CAAA;AACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAA"}
|
package/LICENSE.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: The MIT License (MIT)
|
|
3
|
-
category: Getting Started
|
|
4
|
-
order: 9
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# The MIT License (MIT)
|
|
8
|
-
|
|
9
|
-
Copyright (c) 2015 Instructure, Inc.
|
|
10
|
-
|
|
11
|
-
**Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
-
in the Software without restriction, including without limitation the rights
|
|
14
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
-
furnished to do so, subject to the following conditions.**
|
|
17
|
-
|
|
18
|
-
The above copyright notice and this permission notice shall be included in all
|
|
19
|
-
copies or substantial portions of the Software.
|
|
20
|
-
|
|
21
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
-
SOFTWARE.
|