rsuite 4.9.2 → 4.10.1

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +48 -17
  2. package/dist/rsuite.js +1568 -299
  3. package/dist/rsuite.min.js +2 -2
  4. package/dist/rsuite.min.js.map +1 -1
  5. package/dist/styles/rsuite-dark-rtl.css +2 -1
  6. package/dist/styles/rsuite-dark-rtl.min.css +1 -1
  7. package/dist/styles/rsuite-dark-rtl.min.css.map +1 -1
  8. package/dist/styles/rsuite-dark.css +2 -1
  9. package/dist/styles/rsuite-dark.min.css +1 -1
  10. package/dist/styles/rsuite-dark.min.css.map +1 -1
  11. package/dist/styles/rsuite-default-rtl.css +2 -1
  12. package/dist/styles/rsuite-default-rtl.min.css +1 -1
  13. package/dist/styles/rsuite-default-rtl.min.css.map +1 -1
  14. package/dist/styles/rsuite-default.css +2 -1
  15. package/dist/styles/rsuite-default.min.css +1 -1
  16. package/dist/styles/rsuite-default.min.css.map +1 -1
  17. package/es/MultiCascader/DropdownMenu.js +1 -1
  18. package/es/MultiCascader/MultiCascader.d.ts +8 -0
  19. package/es/MultiCascader/MultiCascader.js +6 -3
  20. package/es/Nav/Nav.js +5 -4
  21. package/es/Overlay/OverlayTrigger.d.ts +1 -1
  22. package/es/Overlay/OverlayTrigger.js +12 -1
  23. package/es/Table/styles/common.less +2 -1
  24. package/es/Uploader/Uploader.js +2 -0
  25. package/lib/MultiCascader/DropdownMenu.js +1 -1
  26. package/lib/MultiCascader/MultiCascader.d.ts +8 -0
  27. package/lib/MultiCascader/MultiCascader.js +6 -3
  28. package/lib/Nav/Nav.js +4 -3
  29. package/lib/Overlay/OverlayTrigger.d.ts +1 -1
  30. package/lib/Overlay/OverlayTrigger.js +12 -1
  31. package/lib/Table/styles/common.less +2 -1
  32. package/lib/Uploader/Uploader.js +2 -0
  33. package/package.json +2 -2
  34. package/src/MultiCascader/DropdownMenu.tsx +1 -1
  35. package/src/MultiCascader/MultiCascader.d.ts +8 -0
  36. package/src/MultiCascader/MultiCascader.tsx +4 -2
  37. package/src/MultiCascader/test/DropdownMenuSpec.js +17 -0
  38. package/src/MultiCascader/test/MultiCascaderSpec.js +14 -1
  39. package/src/Nav/Nav.tsx +10 -4
  40. package/src/Nav/test/NavSpec.js +35 -0
  41. package/src/Overlay/OverlayTrigger.d.ts +1 -1
  42. package/src/Overlay/OverlayTrigger.tsx +22 -1
  43. package/src/Overlay/test/OverlayTriggerSpec.js +155 -0
  44. package/src/Table/styles/common.less +2 -1
  45. package/src/Uploader/Uploader.tsx +1 -0
@@ -0,0 +1,155 @@
1
+ import React from 'react';
2
+ import ReactTestUtils from 'react-dom/test-utils';
3
+ import { getDOMNode } from '@test/testUtils';
4
+
5
+ import OverlayTrigger from '../OverlayTrigger';
6
+ import Tooltip from '../../Tooltip';
7
+
8
+ describe('OverlayTrigger', () => {
9
+ it('Should create Whisper element', () => {
10
+ const instance = getDOMNode(
11
+ <OverlayTrigger speaker={<Tooltip>tooltip</Tooltip>}>
12
+ <button type="button">button</button>
13
+ </OverlayTrigger>
14
+ );
15
+ assert.equal(instance.nodeName, 'BUTTON');
16
+ });
17
+
18
+ it('Should maintain overlay classname when trigger click', () => {
19
+ const whisper = getDOMNode(
20
+ <OverlayTrigger
21
+ trigger="click"
22
+ speaker={<Tooltip className="test-whisper_click">test</Tooltip>}
23
+ >
24
+ <button>button</button>
25
+ </OverlayTrigger>
26
+ );
27
+ ReactTestUtils.Simulate.click(whisper);
28
+ assert.equal(document.getElementsByClassName('test-whisper_click').length, 1);
29
+ });
30
+
31
+ it('Should maintain overlay classname when trigger contextMenu', () => {
32
+ const whisper = getDOMNode(
33
+ <OverlayTrigger
34
+ trigger="contextMenu"
35
+ speaker={<Tooltip className="test-whisper_context-menu">test</Tooltip>}
36
+ >
37
+ <button>button</button>
38
+ </OverlayTrigger>
39
+ );
40
+ ReactTestUtils.Simulate.contextMenu(whisper);
41
+ assert.equal(document.getElementsByClassName('test-whisper_context-menu').length, 1);
42
+ });
43
+
44
+ it('Should maintain overlay classname when trigger focus', () => {
45
+ const whisper = getDOMNode(
46
+ <OverlayTrigger
47
+ trigger="focus"
48
+ speaker={<Tooltip className="test-whisper_focus">test</Tooltip>}
49
+ >
50
+ <button>button</button>
51
+ </OverlayTrigger>
52
+ );
53
+
54
+ ReactTestUtils.Simulate.focus(whisper);
55
+ assert.equal(document.getElementsByClassName('test-whisper_focus').length, 1);
56
+ });
57
+
58
+ it('Should maintain overlay classname when trigger mouseOver and setting [trigger="hover"]', () => {
59
+ const whisper = getDOMNode(
60
+ <OverlayTrigger
61
+ trigger="hover"
62
+ speaker={<Tooltip className="test-whisper_hover">test</Tooltip>}
63
+ >
64
+ <button>button</button>
65
+ </OverlayTrigger>
66
+ );
67
+
68
+ ReactTestUtils.Simulate.mouseOver(whisper);
69
+ assert.equal(document.getElementsByClassName('test-whisper_hover').length, 1);
70
+ });
71
+
72
+ it('Should maintain overlay classname when trigger click and setting [trigger="active"] ', () => {
73
+ const whisper = getDOMNode(
74
+ <OverlayTrigger
75
+ trigger="active"
76
+ speaker={<Tooltip className="test-whisper_active">test</Tooltip>}
77
+ >
78
+ <button>button</button>
79
+ </OverlayTrigger>
80
+ );
81
+
82
+ ReactTestUtils.Simulate.click(whisper);
83
+ assert.equal(document.getElementsByClassName('test-whisper_active').length, 1);
84
+ });
85
+
86
+ it('Should call onClick callback', done => {
87
+ const doneOp = () => {
88
+ done();
89
+ };
90
+
91
+ const whisper = getDOMNode(
92
+ <OverlayTrigger onClick={doneOp} trigger="click" speaker={<Tooltip />}>
93
+ <button>button</button>
94
+ </OverlayTrigger>
95
+ );
96
+
97
+ ReactTestUtils.Simulate.click(whisper);
98
+ });
99
+
100
+ it('Should call onContextMenu callback', done => {
101
+ const doneOp = () => {
102
+ done();
103
+ };
104
+
105
+ const whisper = getDOMNode(
106
+ <OverlayTrigger onContextMenu={doneOp} trigger="contextMenu" speaker={<Tooltip />}>
107
+ <button>button</button>
108
+ </OverlayTrigger>
109
+ );
110
+
111
+ ReactTestUtils.Simulate.contextMenu(whisper);
112
+ });
113
+
114
+ it('Should call onFocus callback', done => {
115
+ const doneOp = () => {
116
+ done();
117
+ };
118
+
119
+ const whisper = getDOMNode(
120
+ <OverlayTrigger onFocus={doneOp} trigger="focus" speaker={<Tooltip />}>
121
+ <button>button</button>
122
+ </OverlayTrigger>
123
+ );
124
+
125
+ ReactTestUtils.Simulate.focus(whisper);
126
+ });
127
+
128
+ it('Should call onMouseOver callback', done => {
129
+ const doneOp = () => {
130
+ done();
131
+ };
132
+
133
+ const whisper = getDOMNode(
134
+ <OverlayTrigger onMouseOver={doneOp} trigger="hover" speaker={<Tooltip />}>
135
+ <button>button</button>
136
+ </OverlayTrigger>
137
+ );
138
+
139
+ ReactTestUtils.Simulate.mouseOver(whisper);
140
+ });
141
+
142
+ it('Should call onMouseOut callback', done => {
143
+ const doneOp = () => {
144
+ done();
145
+ };
146
+
147
+ const whisper = getDOMNode(
148
+ <OverlayTrigger onMouseOut={doneOp} trigger="hover" speaker={<Tooltip />}>
149
+ <button>button</button>
150
+ </OverlayTrigger>
151
+ );
152
+
153
+ ReactTestUtils.Simulate.mouseOut(whisper);
154
+ });
155
+ });
@@ -166,11 +166,12 @@
166
166
  border-style: solid;
167
167
  border-width: 0;
168
168
  border-color: @table-border-color;
169
- display: block;
170
169
  overflow: hidden;
171
170
  position: absolute;
172
171
  white-space: normal;
173
172
  background: @table-body-background;
173
+ display: table;
174
+ table-layout: fixed;
174
175
 
175
176
  &.first {
176
177
  border-left-width: 0;
@@ -132,6 +132,7 @@ class Uploader extends React.Component<UploaderProps, UploaderState> {
132
132
 
133
133
  this.props.onRemove?.(file);
134
134
  this.props.onChange?.(nextFileList);
135
+ this.cleanInputValue();
135
136
  };
136
137
 
137
138
  handleUploadTriggerChange = (event: React.ChangeEvent<HTMLInputElement>) => {