shineout 1.7.3 → 1.8.0-rc.3
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/css/AnimationList/AbsoluteList.js +45 -21
- package/css/Form/FieldSet.js +0 -1
- package/css/Menu/styles/menu.css +64 -27
- package/css/Scroll/Bar.js +17 -4
- package/css/Scroll/Scroll.js +6 -3
- package/css/Scroll/styles/scroll.css +29 -8
- package/css/Select/BoxList.js +13 -17
- package/css/Select/Input.js +93 -6
- package/css/Select/Result.js +6 -3
- package/css/Select/Select.js +6 -3
- package/css/Select/index.d.ts +8 -0
- package/css/Select/styles/select.css +128 -46
- package/css/Table/Table.js +3 -1
- package/css/Table/styles/table.css +123 -1
- package/css/hoc/styles/hidable.css +0 -12
- package/css/index.d.ts +1 -1
- package/css/index.js +1 -1
- package/css/utils/dom/element.js +2 -1
- package/css/utils/dom/translate.js +16 -3
- package/dist/shineout.js +338 -206
- package/dist/shineout.js.map +1 -1
- package/dist/shineout.min.js +1 -1
- package/dist/theme.antd.css +1 -1
- package/dist/theme.antd2.css +1 -1
- package/dist/theme.default.css +1 -1
- package/dist/theme.shineout.css +1 -1
- package/es/AnimationList/AbsoluteList.js +26 -13
- package/es/Form/FieldSet.js +0 -1
- package/es/Menu/styles/menu.less +117 -51
- package/es/Scroll/Bar.js +14 -6
- package/es/Scroll/Scroll.js +7 -3
- package/es/Scroll/styles/scroll.less +32 -6
- package/es/Select/BoxList.js +12 -12
- package/es/Select/Input.js +70 -1
- package/es/Select/Result.js +3 -0
- package/es/Select/Select.js +4 -1
- package/es/Select/index.d.ts +8 -0
- package/es/Select/styles/select.less +124 -45
- package/es/Table/Table.js +3 -1
- package/es/Table/styles/table.less +144 -2
- package/es/hoc/styles/hidable.less +10 -10
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/styles/themes/antd.less +1 -0
- package/es/styles/themes/bootstrap.less +1 -0
- package/es/styles/themes/shineout.less +2 -0
- package/es/utils/dom/element.js +2 -1
- package/es/utils/dom/translate.js +14 -3
- package/lib/AnimationList/AbsoluteList.js +45 -21
- package/lib/Form/FieldSet.js +0 -1
- package/lib/Menu/styles/menu.less +117 -51
- package/lib/Scroll/Bar.js +17 -4
- package/lib/Scroll/Scroll.js +6 -3
- package/lib/Scroll/styles/scroll.less +32 -6
- package/lib/Select/BoxList.js +13 -17
- package/lib/Select/Input.js +93 -6
- package/lib/Select/Result.js +6 -3
- package/lib/Select/Select.js +6 -3
- package/lib/Select/index.d.ts +8 -0
- package/lib/Select/styles/select.less +124 -45
- package/lib/Table/Table.js +3 -1
- package/lib/Table/styles/table.less +144 -2
- package/lib/hoc/styles/hidable.less +10 -10
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/styles/themes/antd.less +1 -0
- package/lib/styles/themes/bootstrap.less +1 -0
- package/lib/styles/themes/shineout.less +2 -0
- package/lib/utils/dom/element.js +2 -1
- package/lib/utils/dom/translate.js +16 -3
- package/package.json +1 -1
|
@@ -50,6 +50,16 @@ function initRoot() {
|
|
|
50
50
|
document.body.appendChild(root);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
var getOverDocStyle = function getOverDocStyle() {
|
|
54
|
+
return (0, _config.isRTL)() ? {
|
|
55
|
+
left: 0,
|
|
56
|
+
right: 'auto'
|
|
57
|
+
} : {
|
|
58
|
+
right: 0,
|
|
59
|
+
left: 'auto'
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
|
|
53
63
|
var listPosition = ['drop-down', 'drop-up'];
|
|
54
64
|
var pickerPosition = ['left-bottom', 'left-top', 'right-bottom', 'right-top'];
|
|
55
65
|
var dropdownPosition = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];
|
|
@@ -121,7 +131,8 @@ function _default(List) {
|
|
|
121
131
|
var position = this.props.position;
|
|
122
132
|
var rtl = (0, _config.isRTL)();
|
|
123
133
|
var style = {
|
|
124
|
-
position: 'absolute'
|
|
134
|
+
position: 'absolute',
|
|
135
|
+
right: 'auto'
|
|
125
136
|
};
|
|
126
137
|
|
|
127
138
|
if (fixed) {
|
|
@@ -137,13 +148,8 @@ function _default(List) {
|
|
|
137
148
|
position = (0, _strings.getRTLPosition)(position);
|
|
138
149
|
}
|
|
139
150
|
|
|
140
|
-
var containerScroll
|
|
141
|
-
var containerRect
|
|
142
|
-
left: 0,
|
|
143
|
-
top: 0,
|
|
144
|
-
right: 0,
|
|
145
|
-
bottom: 0
|
|
146
|
-
};
|
|
151
|
+
var containerScroll;
|
|
152
|
+
var containerRect;
|
|
147
153
|
var container = this.container;
|
|
148
154
|
|
|
149
155
|
if (typeof absolute === 'function' && container) {
|
|
@@ -152,6 +158,22 @@ function _default(List) {
|
|
|
152
158
|
left: container.scrollLeft,
|
|
153
159
|
top: container.scrollTop
|
|
154
160
|
};
|
|
161
|
+
|
|
162
|
+
if (rtl) {
|
|
163
|
+
containerScroll.width = container.scrollWidth;
|
|
164
|
+
}
|
|
165
|
+
} else {
|
|
166
|
+
containerRect = {
|
|
167
|
+
left: 0,
|
|
168
|
+
top: 0,
|
|
169
|
+
right: 0,
|
|
170
|
+
bottom: 0
|
|
171
|
+
};
|
|
172
|
+
containerScroll = _document.docScroll;
|
|
173
|
+
|
|
174
|
+
if (rtl) {
|
|
175
|
+
containerRect.width = document.documentElement.clientWidth || document.body.clientWidth;
|
|
176
|
+
}
|
|
155
177
|
}
|
|
156
178
|
|
|
157
179
|
this.containerRect = containerRect;
|
|
@@ -159,10 +181,6 @@ function _default(List) {
|
|
|
159
181
|
if (listPosition.includes(position)) {
|
|
160
182
|
style.left = rect.left - containerRect.left + containerScroll.left;
|
|
161
183
|
|
|
162
|
-
if (rtl) {
|
|
163
|
-
style.left += rect.width;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
184
|
if (position === 'drop-down') {
|
|
167
185
|
style.top = rect.top - containerRect.top + rect.height + containerScroll.top;
|
|
168
186
|
} else {
|
|
@@ -188,6 +206,11 @@ function _default(List) {
|
|
|
188
206
|
}
|
|
189
207
|
}
|
|
190
208
|
|
|
209
|
+
if (rtl && style.left) {
|
|
210
|
+
style.right = containerRect.width - rect.width - style.left;
|
|
211
|
+
style.left = 'auto';
|
|
212
|
+
}
|
|
213
|
+
|
|
191
214
|
return style;
|
|
192
215
|
};
|
|
193
216
|
|
|
@@ -243,7 +266,14 @@ function _default(List) {
|
|
|
243
266
|
left: 0,
|
|
244
267
|
width: 0
|
|
245
268
|
};
|
|
246
|
-
var overdoc
|
|
269
|
+
var overdoc;
|
|
270
|
+
|
|
271
|
+
if ((0, _config.isRTL)()) {
|
|
272
|
+
overdoc = pos.left < containerRect.left;
|
|
273
|
+
} else {
|
|
274
|
+
overdoc = left - containerRect.left + pos.width > (containerRect.width || _document.docSize.width);
|
|
275
|
+
}
|
|
276
|
+
|
|
247
277
|
if (this.state.overdoc === overdoc) return;
|
|
248
278
|
this.ajustdoc = true;
|
|
249
279
|
this.setState({
|
|
@@ -273,10 +303,7 @@ function _default(List) {
|
|
|
273
303
|
props = (0, _objectWithoutPropertiesLoose2.default)(_this$props4, ["parentElement", "absolute", "focus", "rootClass", "position", "scrollLeft", "scrollTop", "scrollElement", "style", "zIndex", "getResetPosition", "autoAdapt"]);
|
|
274
304
|
var parsed = parseInt(zIndex, 10);
|
|
275
305
|
if (!Number.isNaN(parsed)) style.zIndex = parsed;
|
|
276
|
-
var mergeStyle = Object.assign({}, style, this.state.overdoc ?
|
|
277
|
-
right: 0,
|
|
278
|
-
left: 'auto'
|
|
279
|
-
} : undefined);
|
|
306
|
+
var mergeStyle = Object.assign({}, style, this.state.overdoc ? getOverDocStyle() : undefined);
|
|
280
307
|
return _react.default.createElement(List, (0, _extends2.default)({
|
|
281
308
|
getRef: this.handleRef
|
|
282
309
|
}, props, {
|
|
@@ -321,10 +348,7 @@ function _default(List) {
|
|
|
321
348
|
style = _ref.style;
|
|
322
349
|
|
|
323
350
|
this.element.className = mergeClass;
|
|
324
|
-
var mergeStyle = Object.assign({}, style, props.style, this.state.overdoc ?
|
|
325
|
-
right: 0,
|
|
326
|
-
left: 'auto'
|
|
327
|
-
} : undefined);
|
|
351
|
+
var mergeStyle = Object.assign({}, style, props.style, this.state.overdoc ? getOverDocStyle() : undefined);
|
|
328
352
|
if (zIndex || typeof zIndex === 'number') mergeStyle.zIndex = parseInt(zIndex, 10);
|
|
329
353
|
return _reactDom.default.createPortal(_react.default.createElement(List, (0, _extends2.default)({
|
|
330
354
|
getRef: this.handleRef
|
package/css/Form/FieldSet.js
CHANGED
|
@@ -193,7 +193,6 @@ function (_Component) {
|
|
|
193
193
|
result.push(empty(this.handleInsert.bind(this, 0)));
|
|
194
194
|
} else {
|
|
195
195
|
var errorList = (Array.isArray(errors) ? errors : [errors]).filter(Boolean);
|
|
196
|
-
console.log(errorList);
|
|
197
196
|
values.forEach(function (v, i) {
|
|
198
197
|
result.push(_react.default.createElement(Provider, {
|
|
199
198
|
key: i,
|
package/css/Menu/styles/menu.css
CHANGED
|
@@ -533,48 +533,85 @@ ul.so-menu-root {
|
|
|
533
533
|
}
|
|
534
534
|
.so-menu.so-menu-rtl {
|
|
535
535
|
direction: rtl;
|
|
536
|
-
text-align: right;
|
|
537
536
|
}
|
|
538
|
-
.so-menu.so-menu-rtl
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
left: 0px;
|
|
542
|
-
width: 3px;
|
|
543
|
-
height: 100%;
|
|
544
|
-
background: var(--primary-color, #3399ff);
|
|
545
|
-
content: ' ';
|
|
546
|
-
}
|
|
547
|
-
.so-menu.so-menu-rtl:not(.so-menu-horizontal) .so-menu-active.so-menu-no-children a:after {
|
|
548
|
-
content: none;
|
|
537
|
+
.so-menu.so-menu-rtl ul.so-menu-root {
|
|
538
|
+
margin-left: 0;
|
|
539
|
+
margin-right: -1px;
|
|
549
540
|
}
|
|
550
|
-
.so-menu.so-menu-rtl .so-menu-has-children
|
|
551
|
-
padding-left: 32px;
|
|
541
|
+
.so-menu.so-menu-rtl .so-menu-has-children > .so-menu-title {
|
|
552
542
|
padding-right: 16px;
|
|
543
|
+
padding-left: 32px;
|
|
553
544
|
}
|
|
554
|
-
.so-menu.so-menu-rtl .so-menu-has-children
|
|
545
|
+
.so-menu.so-menu-rtl .so-menu-has-children > .so-menu-title .so-menu-expand {
|
|
555
546
|
right: auto;
|
|
556
|
-
left:
|
|
547
|
+
left: 0;
|
|
548
|
+
}
|
|
549
|
+
.so-menu.so-menu-rtl .so-menu-has-children > .so-menu-title .so-menu-expand:after {
|
|
550
|
+
right: 14px;
|
|
557
551
|
}
|
|
558
|
-
.so-menu.so-menu-rtl
|
|
552
|
+
.so-menu.so-menu-rtl.so-menu-inline {
|
|
553
|
+
border-left: solid 1px #e8e8e8;
|
|
554
|
+
border-right: none;
|
|
555
|
+
}
|
|
556
|
+
.so-menu.so-menu-rtl .so-menu-inline .so-menu-active.so-menu-no-children > a:before,
|
|
557
|
+
.so-menu.so-menu-rtl .so-menu-inline .so-menu-active.so-menu-selectable > a:before {
|
|
558
|
+
right: auto;
|
|
559
|
+
left: 0;
|
|
560
|
+
}
|
|
561
|
+
.so-menu.so-menu-rtl .so-menu-horizontal {
|
|
562
|
+
margin-right: 0;
|
|
563
|
+
}
|
|
564
|
+
.so-menu.so-menu-rtl .so-menu-horizontal .so-menu-root .so-menu-list {
|
|
559
565
|
left: auto;
|
|
560
566
|
right: 0;
|
|
561
567
|
}
|
|
562
|
-
.so-menu.so-menu-rtl .so-menu-
|
|
568
|
+
.so-menu.so-menu-rtl ul.so-menu-horizontal.so-menu-root {
|
|
569
|
+
margin-right: 0;
|
|
570
|
+
}
|
|
571
|
+
.so-menu.so-menu-rtl.so-menu-vertical.so-menu-root {
|
|
572
|
+
border-left: solid 1px #e8e8e8;
|
|
573
|
+
border-right: none;
|
|
574
|
+
}
|
|
575
|
+
.so-menu.so-menu-rtl.so-menu-vertical .so-menu-root .so-menu-list {
|
|
576
|
+
left: auto;
|
|
577
|
+
right: 100%;
|
|
578
|
+
margin-left: 0;
|
|
579
|
+
margin-right: 3px;
|
|
580
|
+
}
|
|
581
|
+
.so-menu.so-menu-rtl.so-menu-vertical .so-menu-has-children > .so-menu-title .so-menu-expand:after,
|
|
582
|
+
.so-menu.so-menu-rtl.so-menu-vertical .so-menu-has-children.so-menu-open > .so-menu-title .so-menu-expand:after {
|
|
563
583
|
-webkit-transform: translateY(-50%) rotate(180deg);
|
|
564
584
|
-ms-transform: translateY(-50%) rotate(180deg);
|
|
565
585
|
transform: translateY(-50%) rotate(180deg);
|
|
566
586
|
}
|
|
567
|
-
.so-menu.so-menu-rtl
|
|
587
|
+
.so-menu.so-menu-rtl.so-menu-vertical .so-menu-in-path.so-menu-has-children > a::before {
|
|
588
|
+
right: auto;
|
|
589
|
+
left: 0;
|
|
590
|
+
}
|
|
591
|
+
.so-menu.so-menu-rtl.so-menu-dark:not(.so-menu-horizontal) .so-menu-has-children.so-menu-in-path > a:before {
|
|
592
|
+
left: auto;
|
|
593
|
+
right: 0;
|
|
594
|
+
}
|
|
595
|
+
.so-menu.so-menu-rtl.so-menu-dark.so-menu-vertical ul.so-menu-root {
|
|
568
596
|
margin-right: 0;
|
|
569
|
-
|
|
597
|
+
border-left: none;
|
|
570
598
|
}
|
|
571
|
-
.so-menu.so-menu-rtl
|
|
572
|
-
|
|
573
|
-
|
|
599
|
+
.so-menu.so-menu-rtl.so-menu-dark.so-menu-vertical .so-menu-has-children .so-menu-title::after {
|
|
600
|
+
left: 18px;
|
|
601
|
+
right: auto;
|
|
574
602
|
}
|
|
575
|
-
.so-menu.so-menu-rtl.so-menu-
|
|
603
|
+
.so-menu.so-menu-rtl.so-menu-dark.so-menu-vertical .so-menu-in-path.so-menu-has-children > a::before {
|
|
576
604
|
left: auto;
|
|
577
|
-
right:
|
|
578
|
-
|
|
579
|
-
|
|
605
|
+
right: 0;
|
|
606
|
+
}
|
|
607
|
+
.so-menu.so-menu-rtl .so-menu-has-children.so-menu-caret-solid > .so-menu-title {
|
|
608
|
+
padding-left: 16px;
|
|
609
|
+
}
|
|
610
|
+
.so-menu.so-menu-rtl .so-menu-caret-solid .so-menu-title > .so-menu-caret {
|
|
611
|
+
margin-right: 0;
|
|
612
|
+
margin-left: 8px;
|
|
613
|
+
}
|
|
614
|
+
.so-menu.so-menu-rtl .so-menu-caret-hollow .so-menu-caret {
|
|
615
|
+
margin-right: -4px;
|
|
616
|
+
margin-left: 14px;
|
|
580
617
|
}
|
package/css/Scroll/Bar.js
CHANGED
|
@@ -21,6 +21,8 @@ var _styles = require("./styles");
|
|
|
21
21
|
|
|
22
22
|
var _fixedLength = _interopRequireDefault(require("./fixedLength"));
|
|
23
23
|
|
|
24
|
+
var _config = require("../config");
|
|
25
|
+
|
|
24
26
|
var ScrollBar =
|
|
25
27
|
/*#__PURE__*/
|
|
26
28
|
function (_PureComponent) {
|
|
@@ -96,7 +98,14 @@ function (_PureComponent) {
|
|
|
96
98
|
onScroll = _this$props.onScroll,
|
|
97
99
|
barLength = _this$props.barLength;
|
|
98
100
|
var value = direction === 'x' ? x : y;
|
|
99
|
-
var newOffset
|
|
101
|
+
var newOffset;
|
|
102
|
+
|
|
103
|
+
if (direction === 'x' && (0, _config.isRTL)()) {
|
|
104
|
+
newOffset = this.cacheOffset - value / (length - barLength);
|
|
105
|
+
} else {
|
|
106
|
+
newOffset = this.cacheOffset + value / (length - barLength);
|
|
107
|
+
}
|
|
108
|
+
|
|
100
109
|
if (newOffset < 0) newOffset = 0;
|
|
101
110
|
if (newOffset > 1) newOffset = 1;
|
|
102
111
|
if (newOffset === this.cacheOffset) return;
|
|
@@ -115,11 +124,13 @@ function (_PureComponent) {
|
|
|
115
124
|
var rect = this.handle.getBoundingClientRect();
|
|
116
125
|
var newOffset = offset;
|
|
117
126
|
var page = length / (scrollLength - length);
|
|
127
|
+
var plus = (0, _config.isRTL)() ? event.clientX < rect.left : event.clientX > rect.left;
|
|
128
|
+
var add = (0, _config.isRTL)() ? event.clientX > rect.left : event.clientX < rect.left;
|
|
118
129
|
|
|
119
|
-
if (direction === 'x' &&
|
|
130
|
+
if (direction === 'x' && add || direction === 'y' && event.clientY < rect.top) {
|
|
120
131
|
newOffset = offset - page;
|
|
121
132
|
if (newOffset < 0) newOffset = 0;
|
|
122
|
-
} else if (direction === 'x' &&
|
|
133
|
+
} else if (direction === 'x' && plus || direction === 'y' && event.clientY > rect.top) {
|
|
123
134
|
newOffset = offset + page;
|
|
124
135
|
if (newOffset > 1) newOffset = 1;
|
|
125
136
|
}
|
|
@@ -137,14 +148,16 @@ function (_PureComponent) {
|
|
|
137
148
|
forceHeight = _this$props3.forceHeight;
|
|
138
149
|
var dragging = this.state.dragging;
|
|
139
150
|
var show = scrollLength > length;
|
|
151
|
+
var rtl = (0, _config.isRTL)();
|
|
140
152
|
var className = (0, _classnames.default)((0, _styles.scrollClass)('bar', direction, show && 'show', dragging && 'dragging', !forceHeight && 'padding-y'), this.props.className);
|
|
141
153
|
var value = (length - barLength) * offset;
|
|
154
|
+
var x = rtl ? 'right' : 'left';
|
|
142
155
|
var style = {};
|
|
143
156
|
|
|
144
157
|
if (scrollLength > 0) {
|
|
145
158
|
if (direction === 'x') {
|
|
146
159
|
style.width = length / scrollLength * 100 + "%";
|
|
147
|
-
style
|
|
160
|
+
style[x] = value;
|
|
148
161
|
} else {
|
|
149
162
|
style.height = length / scrollLength * 100 + "%";
|
|
150
163
|
style.top = value;
|
package/css/Scroll/Scroll.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
exports.__esModule = true;
|
|
@@ -29,7 +31,7 @@ var _styles = require("./styles");
|
|
|
29
31
|
|
|
30
32
|
var _Bar = _interopRequireDefault(require("./Bar"));
|
|
31
33
|
|
|
32
|
-
var _config =
|
|
34
|
+
var _config = _interopRequireWildcard(require("../config"));
|
|
33
35
|
|
|
34
36
|
var _context = require("./context");
|
|
35
37
|
|
|
@@ -221,7 +223,7 @@ function (_PureComponent) {
|
|
|
221
223
|
if (target !== this.wheelElement) return;
|
|
222
224
|
var wheel = (0, _normalizeWheel.default)(event);
|
|
223
225
|
this.setBaseScrollHeightRatio(wheel.pixelY);
|
|
224
|
-
if (scrollX) this.pixelX
|
|
226
|
+
if (scrollX) this.pixelX = (0, _config.isRTL)() ? this.pixelX - wheel.pixelX : this.pixelX + wheel.pixelX;
|
|
225
227
|
if (scrollY) this.pixelY += wheel.pixelY * this.baseScrollRatio;
|
|
226
228
|
|
|
227
229
|
if (Math.abs(wheel.pixelX) > Math.abs(wheel.pixelY)) {
|
|
@@ -295,7 +297,8 @@ function (_PureComponent) {
|
|
|
295
297
|
width = _this$getWheelRect2.width,
|
|
296
298
|
height = _this$getWheelRect2.height;
|
|
297
299
|
|
|
298
|
-
var
|
|
300
|
+
var rtl = (0, _config.isRTL)();
|
|
301
|
+
var className = (0, _classnames.default)((0, _styles.scrollClass)('_', scrollX && 'show-x', scrollY && 'show-y', rtl && 'rtl'), this.props.className);
|
|
299
302
|
var yLength = scrollHeight < height ? scrollHeight : height;
|
|
300
303
|
this.wheelY = scrollY && Math.ceil(scrollHeight) > Math.ceil(yLength);
|
|
301
304
|
this.wheelX = scrollX && Math.ceil(scrollWidth) > Math.ceil(width);
|
|
@@ -103,17 +103,38 @@
|
|
|
103
103
|
.so-scroll-show-y .so-scroll-inner {
|
|
104
104
|
bottom: 16px;
|
|
105
105
|
}
|
|
106
|
-
.so-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
.so-
|
|
106
|
+
.so-scroll.so-scroll-rtl {
|
|
107
|
+
direction: rtl;
|
|
108
|
+
}
|
|
109
|
+
.so-scroll.so-scroll-rtl .so-scroll-inner {
|
|
110
|
+
left: auto;
|
|
111
|
+
right: 0;
|
|
112
|
+
}
|
|
113
|
+
.so-scroll.so-scroll-rtl .so-scroll-bar.so-scroll-y {
|
|
114
|
+
right: auto;
|
|
115
|
+
left: 0;
|
|
116
|
+
}
|
|
117
|
+
.so-scroll.so-scroll-rtl .so-scroll-bar.so-scroll-y .so-scroll-handle {
|
|
118
|
+
right: 2px;
|
|
119
|
+
left: auto;
|
|
120
|
+
}
|
|
121
|
+
.so-scroll.so-scroll-rtl .so-scroll-bar.so-scroll-y.so-scroll-padding-y:after {
|
|
122
|
+
right: -1px;
|
|
123
|
+
left: auto;
|
|
124
|
+
}
|
|
125
|
+
.so-scroll.so-scroll-rtl.so-scroll-show-y {
|
|
110
126
|
padding-right: 0;
|
|
111
127
|
padding-left: 16px;
|
|
112
128
|
}
|
|
113
|
-
.so-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
129
|
+
.so-scroll.so-scroll-rtl.so-scroll-show-y .so-scroll-x {
|
|
130
|
+
right: 0;
|
|
131
|
+
left: 16px;
|
|
132
|
+
}
|
|
133
|
+
.so-scroll-show-x .so-scroll.so-scroll-rtl-inner {
|
|
134
|
+
right: 0;
|
|
135
|
+
left: 16px;
|
|
136
|
+
}
|
|
137
|
+
.so-scroll.so-scroll-rtl .so-scroll-bar.so-scroll-y {
|
|
117
138
|
right: auto;
|
|
118
139
|
left: 0;
|
|
119
140
|
}
|
package/css/Select/BoxList.js
CHANGED
|
@@ -17,16 +17,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
17
17
|
|
|
18
18
|
var _locale = require("../locale");
|
|
19
19
|
|
|
20
|
-
var _icons = _interopRequireDefault(require("../icons"));
|
|
21
|
-
|
|
22
20
|
var _uid = require("../utils/uid");
|
|
23
21
|
|
|
24
22
|
var _AnimationList = _interopRequireDefault(require("../AnimationList"));
|
|
25
23
|
|
|
26
24
|
var _Spin = _interopRequireDefault(require("../Spin"));
|
|
27
25
|
|
|
28
|
-
var _Input = _interopRequireDefault(require("../Input"));
|
|
29
|
-
|
|
30
26
|
var _Checkbox = _interopRequireDefault(require("../Checkbox/Checkbox"));
|
|
31
27
|
|
|
32
28
|
var _styles = require("./styles");
|
|
@@ -35,6 +31,8 @@ var _BoxOption = _interopRequireDefault(require("./BoxOption"));
|
|
|
35
31
|
|
|
36
32
|
var _LazyList = _interopRequireDefault(require("../AnimationList/LazyList"));
|
|
37
33
|
|
|
34
|
+
// import icons from '../icons'
|
|
35
|
+
// import Input from '../Input'
|
|
38
36
|
var ScaleList = (0, _AnimationList.default)(['fade', 'scale-y'], 'fast', 'flex');
|
|
39
37
|
|
|
40
38
|
var emptyFunc = function emptyFunc() {};
|
|
@@ -109,18 +107,16 @@ function (_Component) {
|
|
|
109
107
|
renderItem: renderItem
|
|
110
108
|
});
|
|
111
109
|
}));
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}), _icons.default.SEARCH);
|
|
123
|
-
};
|
|
110
|
+
} // renderFilter() {
|
|
111
|
+
// const { filterText } = this.props
|
|
112
|
+
// return (
|
|
113
|
+
// <Input.Group size="small" className={selectClass('filter-input')}>
|
|
114
|
+
// <Input value={filterText} onChange={this.handleSearch} />
|
|
115
|
+
// {icons.SEARCH}
|
|
116
|
+
// </Input.Group>
|
|
117
|
+
// )
|
|
118
|
+
// }
|
|
119
|
+
;
|
|
124
120
|
|
|
125
121
|
_proto.renderHeader = function renderHeader(count) {
|
|
126
122
|
var _this$props4 = this.props,
|
|
@@ -247,7 +243,7 @@ BoxList.propTypes = {
|
|
|
247
243
|
columns: _propTypes.default.number,
|
|
248
244
|
data: _propTypes.default.array,
|
|
249
245
|
datum: _propTypes.default.object.isRequired,
|
|
250
|
-
filterText:
|
|
246
|
+
// filterText: PropTypes.string,
|
|
251
247
|
focus: _propTypes.default.bool,
|
|
252
248
|
keygen: _propTypes.default.any,
|
|
253
249
|
loading: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.bool]),
|
package/css/Select/Input.js
CHANGED
|
@@ -44,6 +44,8 @@ function (_Component) {
|
|
|
44
44
|
_this.bindElement = _this.bindElement.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
|
45
45
|
_this.handleInput = _this.handleInput.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
|
46
46
|
_this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
|
47
|
+
_this.geHandleMax = _this.geHandleMax.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
|
48
|
+
_this.handlePaste = _this.handlePaste.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
|
47
49
|
_this.focusInput = _this.focusInput.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); // for mutiple select
|
|
48
50
|
|
|
49
51
|
_this.props.setInputReset(_this.reset.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)))); // set focus func to Select
|
|
@@ -78,13 +80,91 @@ function (_Component) {
|
|
|
78
80
|
return trim ? text.trim() : text.replace(/\u00A0/g, ' ');
|
|
79
81
|
};
|
|
80
82
|
|
|
83
|
+
_proto.handlePaste = function handlePaste(e) {
|
|
84
|
+
var _this2 = this;
|
|
85
|
+
|
|
86
|
+
(0, _element.preventPasteFile)(e, function (text) {
|
|
87
|
+
if (window.getSelection) {
|
|
88
|
+
var selection = window.getSelection();
|
|
89
|
+
_this2.lastSelect = {
|
|
90
|
+
anchorOffset: selection.anchorOffset,
|
|
91
|
+
focusOffset: selection.focusOffset,
|
|
92
|
+
text: text
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
_proto.geHandleMax = function geHandleMax(e) {
|
|
99
|
+
var maxLength = this.props.maxLength;
|
|
100
|
+
|
|
101
|
+
if (!maxLength) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
var change = true;
|
|
106
|
+
var text = e.target.innerText;
|
|
107
|
+
|
|
108
|
+
if (text.length >= maxLength) {
|
|
109
|
+
var lastPos;
|
|
110
|
+
|
|
111
|
+
if (window.getSelection) {
|
|
112
|
+
lastPos = Math.min(window.getSelection().anchorOffset - (text.length > maxLength ? 1 : 0), maxLength);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (!this.lastMaxValue) {
|
|
116
|
+
this.lastMaxValue = text.slice(0, maxLength);
|
|
117
|
+
} else if (this.lastSelect) {
|
|
118
|
+
var _this$lastSelect = this.lastSelect,
|
|
119
|
+
anchorOffset = _this$lastSelect.anchorOffset,
|
|
120
|
+
focusOffset = _this$lastSelect.focusOffset,
|
|
121
|
+
str = _this$lastSelect.text;
|
|
122
|
+
var start = anchorOffset < focusOffset ? anchorOffset : focusOffset;
|
|
123
|
+
var end = anchorOffset > focusOffset ? anchorOffset : focusOffset;
|
|
124
|
+
|
|
125
|
+
if (end - start > 0) {
|
|
126
|
+
this.lastMaxValue = this.lastMaxValue.slice(0, start) + str.slice(0, end - start) + this.lastMaxValue.slice(end);
|
|
127
|
+
lastPos = focusOffset;
|
|
128
|
+
} else {
|
|
129
|
+
change = false;
|
|
130
|
+
}
|
|
131
|
+
} else {
|
|
132
|
+
change = false;
|
|
133
|
+
} // clear select info
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
this.lastSelect = false;
|
|
137
|
+
e.target.innerText = this.lastMaxValue;
|
|
138
|
+
|
|
139
|
+
if (lastPos) {
|
|
140
|
+
var selection = window.getSelection();
|
|
141
|
+
var range = selection.getRangeAt(0);
|
|
142
|
+
var textNode = range.startContainer;
|
|
143
|
+
|
|
144
|
+
if (textNode.nodeName !== '#text') {
|
|
145
|
+
;
|
|
146
|
+
var _textNode$childNodes = textNode.childNodes;
|
|
147
|
+
textNode = _textNode$childNodes[0];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
range.setStart(textNode, lastPos);
|
|
151
|
+
range.collapse(true);
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
this.lastMaxValue = '';
|
|
155
|
+
} // eslint-disable-next-line consistent-return
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
return change;
|
|
159
|
+
};
|
|
160
|
+
|
|
81
161
|
_proto.reset = function reset() {
|
|
82
162
|
if (this.editElement) this.editElement.innerText = '';
|
|
83
163
|
if (this.blurTimer) clearTimeout(this.blurTimer);
|
|
84
164
|
};
|
|
85
165
|
|
|
86
166
|
_proto.focusInput = function focusInput(flag) {
|
|
87
|
-
var
|
|
167
|
+
var _this3 = this;
|
|
88
168
|
|
|
89
169
|
if (flag === void 0) {
|
|
90
170
|
flag = false;
|
|
@@ -100,17 +180,17 @@ function (_Component) {
|
|
|
100
180
|
this.setState({
|
|
101
181
|
editable: true
|
|
102
182
|
}, function () {
|
|
103
|
-
return
|
|
183
|
+
return _this3.focus();
|
|
104
184
|
});
|
|
105
185
|
};
|
|
106
186
|
|
|
107
187
|
_proto.focus = function focus() {
|
|
108
|
-
var
|
|
188
|
+
var _this4 = this;
|
|
109
189
|
|
|
110
190
|
var focusSelected = this.props.focusSelected;
|
|
111
191
|
var action = focusSelected ? _element.focusElement.select : _element.focusElement.end;
|
|
112
192
|
requestAnimationFrame(function () {
|
|
113
|
-
action(
|
|
193
|
+
action(_this4.editElement);
|
|
114
194
|
});
|
|
115
195
|
};
|
|
116
196
|
|
|
@@ -119,6 +199,12 @@ function (_Component) {
|
|
|
119
199
|
};
|
|
120
200
|
|
|
121
201
|
_proto.handleInput = function handleInput(e) {
|
|
202
|
+
var change = this.geHandleMax(e);
|
|
203
|
+
|
|
204
|
+
if (!change) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
|
|
122
208
|
var text = e.target.innerText.replace('\feff ', '');
|
|
123
209
|
this.lastCursorOffset = (0, _element.getCursorOffset)(text.length);
|
|
124
210
|
var t = this.getProcessedValue(text);
|
|
@@ -161,7 +247,7 @@ function (_Component) {
|
|
|
161
247
|
__html: value
|
|
162
248
|
}
|
|
163
249
|
}, props, {
|
|
164
|
-
onPaste:
|
|
250
|
+
onPaste: this.handlePaste
|
|
165
251
|
}));
|
|
166
252
|
};
|
|
167
253
|
|
|
@@ -180,7 +266,8 @@ FilterInput.propTypes = {
|
|
|
180
266
|
trim: _propTypes.default.bool,
|
|
181
267
|
focusSelected: _propTypes.default.bool,
|
|
182
268
|
bindFocusInputFunc: _propTypes.default.func,
|
|
183
|
-
collapse: _propTypes.default.func
|
|
269
|
+
collapse: _propTypes.default.func,
|
|
270
|
+
maxLength: _propTypes.default.number
|
|
184
271
|
};
|
|
185
272
|
FilterInput.defaultProps = {
|
|
186
273
|
text: '',
|
package/css/Select/Result.js
CHANGED
|
@@ -261,7 +261,8 @@ function (_PureComponent) {
|
|
|
261
261
|
setInputReset = _this$props6.setInputReset,
|
|
262
262
|
focusSelected = _this$props6.focusSelected,
|
|
263
263
|
bindFocusInputFunc = _this$props6.bindFocusInputFunc,
|
|
264
|
-
collapse = _this$props6.collapse
|
|
264
|
+
collapse = _this$props6.collapse,
|
|
265
|
+
maxLength = _this$props6.maxLength;
|
|
265
266
|
return _react.default.createElement(_Input.default, {
|
|
266
267
|
key: key + "." + (focus ? 1 : 0),
|
|
267
268
|
onInputFocus: onInputFocus,
|
|
@@ -275,7 +276,8 @@ function (_PureComponent) {
|
|
|
275
276
|
setInputReset: setInputReset,
|
|
276
277
|
focusSelected: focusSelected,
|
|
277
278
|
bindFocusInputFunc: bindFocusInputFunc,
|
|
278
|
-
collapse: collapse
|
|
279
|
+
collapse: collapse,
|
|
280
|
+
maxLength: maxLength
|
|
279
281
|
});
|
|
280
282
|
};
|
|
281
283
|
|
|
@@ -400,7 +402,8 @@ Result.propTypes = {
|
|
|
400
402
|
showArrow: _propTypes.default.bool,
|
|
401
403
|
focusSelected: _propTypes.default.bool,
|
|
402
404
|
compressedClassName: _propTypes.default.string,
|
|
403
|
-
resultClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func])
|
|
405
|
+
resultClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),
|
|
406
|
+
maxLength: _propTypes.default.number
|
|
404
407
|
};
|
|
405
408
|
var _default = Result;
|
|
406
409
|
exports.default = _default;
|
package/css/Select/Select.js
CHANGED
|
@@ -522,7 +522,7 @@ function (_PureComponent) {
|
|
|
522
522
|
onChange: this.handleChange,
|
|
523
523
|
parentElement: this.element,
|
|
524
524
|
position: position,
|
|
525
|
-
rootClass: (0, _styles.selectClass)(position),
|
|
525
|
+
rootClass: (0, _styles.selectClass)(position, (0, _config.isRTL)() && 'rtl'),
|
|
526
526
|
selectId: this.selectId,
|
|
527
527
|
focus: focus,
|
|
528
528
|
renderPending: this.renderPending,
|
|
@@ -596,7 +596,8 @@ function (_PureComponent) {
|
|
|
596
596
|
renderUnmatched = _this$props12.renderUnmatched,
|
|
597
597
|
showArrow = _this$props12.showArrow,
|
|
598
598
|
compressedClassName = _this$props12.compressedClassName,
|
|
599
|
-
resultClassName = _this$props12.resultClassName
|
|
599
|
+
resultClassName = _this$props12.resultClassName,
|
|
600
|
+
maxLength = _this$props12.maxLength;
|
|
600
601
|
var className = (0, _styles.selectClass)('inner', size, this.state.focus && 'focus', this.state.position, multiple && 'multiple', disabled === true && 'disabled', !trim && 'pre');
|
|
601
602
|
return _react.default.createElement("div", {
|
|
602
603
|
// eslint-disable-next-line
|
|
@@ -610,6 +611,7 @@ function (_PureComponent) {
|
|
|
610
611
|
onKeyUp: this.handleKeyUp
|
|
611
612
|
}, _react.default.createElement(_Result.default, {
|
|
612
613
|
trim: trim,
|
|
614
|
+
maxLength: maxLength,
|
|
613
615
|
filterText: filterText,
|
|
614
616
|
onClear: clearable ? this.handleClear : undefined,
|
|
615
617
|
onCreate: onCreate,
|
|
@@ -674,7 +676,8 @@ Select.propTypes = (0, _objectSpread2.default)({}, (0, _proptypes.getProps)(_pro
|
|
|
674
676
|
onCollapse: _propTypes.default.func,
|
|
675
677
|
resultClassName: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),
|
|
676
678
|
reFocus: _propTypes.default.bool,
|
|
677
|
-
header: _propTypes.default.node
|
|
679
|
+
header: _propTypes.default.node,
|
|
680
|
+
maxLength: _propTypes.default.number
|
|
678
681
|
});
|
|
679
682
|
Select.defaultProps = {
|
|
680
683
|
clearable: false,
|