acud 0.0.71 → 0.0.72
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/dist/acud.css +54 -2
- package/dist/acud.css.map +1 -1
- package/dist/acud.js +1331 -1188
- package/dist/acud.js.map +1 -1
- package/dist/acud.min.css +1 -1
- package/dist/acud.min.css.map +1 -1
- package/dist/acud.min.js +9 -6
- package/dist/acud.min.js.map +1 -1
- package/es/date-picker/src/PickerPanel.js +0 -1
- package/es/date-picker/src/RangePicker.js +0 -1
- package/es/input/AutoComplete.d.ts +12 -0
- package/es/input/AutoComplete.js +53 -0
- package/es/input/TextArea.d.ts +1 -1
- package/es/input/TextArea.js +4 -4
- package/es/input/index.d.ts +2 -0
- package/es/input/index.js +2 -0
- package/es/input/style/index.css +53 -1
- package/es/input/style/index.less +63 -1
- package/es/input-number/src/hooks/useFrame.d.ts +1 -1
- package/es/select/index.d.ts +1 -1
- package/es/virtual-list/List.js +0 -7
- package/lib/date-picker/src/PickerPanel.js +0 -1
- package/lib/date-picker/src/RangePicker.js +0 -1
- package/lib/input/AutoComplete.d.ts +12 -0
- package/lib/input/AutoComplete.js +72 -0
- package/lib/input/TextArea.d.ts +1 -1
- package/lib/input/TextArea.js +4 -2
- package/lib/input/index.d.ts +2 -0
- package/lib/input/index.js +3 -0
- package/lib/input/style/index.css +53 -1
- package/lib/input/style/index.less +63 -1
- package/lib/input-number/src/hooks/useFrame.d.ts +1 -1
- package/lib/select/index.d.ts +1 -1
- package/lib/virtual-list/List.js +0 -7
- package/package.json +1 -1
|
@@ -122,7 +122,6 @@ function PickerPanel(props) {
|
|
|
122
122
|
var now = generateConfig.getNow();
|
|
123
123
|
if (!date) return now; // When value is null and set showTime
|
|
124
124
|
|
|
125
|
-
// When value is null and set showTime
|
|
126
125
|
if (!mergedValue && showTime) {
|
|
127
126
|
if (_typeof(showTime) === 'object') {
|
|
128
127
|
return setDateTime(generateConfig, date, showTime.defaultValue || now);
|
|
@@ -172,7 +172,6 @@ function InnerRangePicker(props) {
|
|
|
172
172
|
} // Fill disabled unit
|
|
173
173
|
|
|
174
174
|
|
|
175
|
-
// Fill disabled unit
|
|
176
175
|
for (var i = 0; i < 2; i += 1) {
|
|
177
176
|
if (mergedDisabled[i] && !getValue(postValues, i) && !getValue(allowEmpty, i)) {
|
|
178
177
|
postValues = updateValues(postValues, generateConfig.getNow(), i);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { InternalSelectProps, SelectInterface } from '../select';
|
|
3
|
+
export interface AutoCompleteProps<ValueType = any> extends Omit<InternalSelectProps<ValueType>, 'inputIcon' | 'loading' | 'mode' | 'optionLabelProp' | 'labelInValue'> {
|
|
4
|
+
}
|
|
5
|
+
declare const RefAutoComplete: (<ValueType = any>(props: AutoCompleteProps<ValueType> & {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
} & {
|
|
8
|
+
ref?: React.Ref<SelectInterface>;
|
|
9
|
+
}) => React.ReactElement) & {
|
|
10
|
+
Option: import("../select/src/Option").OptionFC;
|
|
11
|
+
};
|
|
12
|
+
export default RefAutoComplete;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import Select from '../select';
|
|
6
|
+
import { isValidElement } from '../_util/reactNode';
|
|
7
|
+
import toArray from "rc-util/es/Children/toArray";
|
|
8
|
+
var Option = Select.Option;
|
|
9
|
+
|
|
10
|
+
function isSelectOptionOrSelectOptGroup(child) {
|
|
11
|
+
return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
var AutoComplete = function AutoComplete(props, ref) {
|
|
15
|
+
var _props$prefixCls = props.prefixCls,
|
|
16
|
+
prefixCls = _props$prefixCls === void 0 ? 'acud-select' : _props$prefixCls,
|
|
17
|
+
className = props.className,
|
|
18
|
+
children = props.children;
|
|
19
|
+
var childNodes = toArray(children); // ============================= Input =============================
|
|
20
|
+
|
|
21
|
+
var customizeInput;
|
|
22
|
+
|
|
23
|
+
if (childNodes.length === 1 && isValidElement(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) {
|
|
24
|
+
var _childNodes = _slicedToArray(childNodes, 1);
|
|
25
|
+
|
|
26
|
+
customizeInput = _childNodes[0];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var getInputElement = customizeInput ? function () {
|
|
30
|
+
return customizeInput;
|
|
31
|
+
} : undefined; // ============================ Options ============================
|
|
32
|
+
|
|
33
|
+
var optionChildren;
|
|
34
|
+
|
|
35
|
+
if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) {
|
|
36
|
+
optionChildren = children;
|
|
37
|
+
} else {
|
|
38
|
+
optionChildren = [];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return /*#__PURE__*/React.createElement(Select, _extends({
|
|
42
|
+
ref: ref
|
|
43
|
+
}, props, {
|
|
44
|
+
prefixCls: prefixCls,
|
|
45
|
+
className: classNames("".concat(prefixCls, "-auto-complete"), className),
|
|
46
|
+
mode: Select.SECRET_COMBOBOX_MODE_DO_NOT_USE,
|
|
47
|
+
getInputElement: getInputElement
|
|
48
|
+
}), optionChildren);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var RefAutoComplete = /*#__PURE__*/React.forwardRef(AutoComplete);
|
|
52
|
+
RefAutoComplete.Option = Option;
|
|
53
|
+
export default RefAutoComplete; // export default AutoComplete;
|
package/es/input/TextArea.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export interface TextAreaProps {
|
|
|
17
17
|
readonly?: boolean;
|
|
18
18
|
allowClear?: boolean;
|
|
19
19
|
}
|
|
20
|
-
declare const TextArea: React.
|
|
20
|
+
declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<unknown>>;
|
|
21
21
|
export default TextArea;
|
package/es/input/TextArea.js
CHANGED
|
@@ -25,9 +25,9 @@ import classNames from 'classnames';
|
|
|
25
25
|
import { MultiToneClear } from 'acud-icon';
|
|
26
26
|
import React, { useState, useMemo } from 'react';
|
|
27
27
|
import useMergedState from '../_util/hooks/useMergedState';
|
|
28
|
-
import { resolveTargetValue } from './Input';
|
|
28
|
+
import { resolveTargetValue } from './Input'; // const TextArea:React.FC<TextAreaProps> = props => {
|
|
29
29
|
|
|
30
|
-
var TextArea = function
|
|
30
|
+
var TextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
31
31
|
var _classNames;
|
|
32
32
|
|
|
33
33
|
var _props$prefixCls = props.prefixCls,
|
|
@@ -135,6 +135,7 @@ var TextArea = function TextArea(props) {
|
|
|
135
135
|
className: "".concat(prefixCls, "-outer"),
|
|
136
136
|
style: style
|
|
137
137
|
}, /*#__PURE__*/React.createElement(RcTextArea, _extends({}, rest, {
|
|
138
|
+
ref: ref,
|
|
138
139
|
placeholder: placeholder,
|
|
139
140
|
className: classNames(classes),
|
|
140
141
|
onChange: handleOnChange,
|
|
@@ -156,6 +157,5 @@ var TextArea = function TextArea(props) {
|
|
|
156
157
|
}, /*#__PURE__*/React.createElement("span", {
|
|
157
158
|
className: classNames(limitClassName, 'limit')
|
|
158
159
|
}, currentLength, "/", limitLength)));
|
|
159
|
-
};
|
|
160
|
-
|
|
160
|
+
});
|
|
161
161
|
export default TextArea;
|
package/es/input/index.d.ts
CHANGED
|
@@ -4,11 +4,13 @@ import Label from './Label';
|
|
|
4
4
|
import TextArea from './TextArea';
|
|
5
5
|
import Password from './Password';
|
|
6
6
|
import MultiSelectInput from './MultiSelectInput';
|
|
7
|
+
import AutoComplete from './AutoComplete';
|
|
7
8
|
interface CompoundedComponent extends React.ForwardRefExoticComponent<BaseInputProps & React.RefAttributes<HTMLInputElement>> {
|
|
8
9
|
Label: typeof Label;
|
|
9
10
|
TextArea: typeof TextArea;
|
|
10
11
|
Password: typeof Password;
|
|
11
12
|
MultiSelectInput: typeof MultiSelectInput;
|
|
13
|
+
AutoComplete: typeof AutoComplete;
|
|
12
14
|
__ACUD_CHECKBOX: boolean;
|
|
13
15
|
}
|
|
14
16
|
declare const Input: CompoundedComponent;
|
package/es/input/index.js
CHANGED
|
@@ -3,9 +3,11 @@ import Label from './Label';
|
|
|
3
3
|
import TextArea from './TextArea';
|
|
4
4
|
import Password from './Password';
|
|
5
5
|
import MultiSelectInput from './MultiSelectInput';
|
|
6
|
+
import AutoComplete from './AutoComplete';
|
|
6
7
|
var Input = InputComponent;
|
|
7
8
|
Input.Label = Label;
|
|
8
9
|
Input.TextArea = TextArea;
|
|
9
10
|
Input.Password = Password;
|
|
10
11
|
Input.MultiSelectInput = MultiSelectInput;
|
|
12
|
+
Input.AutoComplete = AutoComplete;
|
|
11
13
|
export default Input;
|
package/es/input/style/index.css
CHANGED
|
@@ -682,7 +682,6 @@
|
|
|
682
682
|
padding-top: 6px;
|
|
683
683
|
padding-right: 24px;
|
|
684
684
|
padding-bottom: 24px;
|
|
685
|
-
min-height: 100px;
|
|
686
685
|
border-radius: 4px;
|
|
687
686
|
font-family: -apple-system, BlinkMacSystemFont, "SF Pro SC", "SF Pro Text", "Helvetica Neue", Helvetica, "PingFang SC", Roboto, 'Arial', 'microsoft yahei ui', "Microsoft YaHei", SimSun, sans-serif;
|
|
688
687
|
color: #151B26;
|
|
@@ -887,3 +886,56 @@
|
|
|
887
886
|
.acud-input-select-tags .acud-select-clear {
|
|
888
887
|
right: 12px;
|
|
889
888
|
}
|
|
889
|
+
.acud-select-auto-complete .acud-select-selector {
|
|
890
|
+
width: 100%;
|
|
891
|
+
display: flex;
|
|
892
|
+
cursor: text;
|
|
893
|
+
position: relative;
|
|
894
|
+
}
|
|
895
|
+
.acud-select-auto-complete {
|
|
896
|
+
width: 100%;
|
|
897
|
+
display: block;
|
|
898
|
+
}
|
|
899
|
+
.acud-select-auto-complete:not(.acud-select-customize-input) .acud-select-selector {
|
|
900
|
+
position: relative;
|
|
901
|
+
background-color: #fff;
|
|
902
|
+
border-radius: 2px;
|
|
903
|
+
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
904
|
+
}
|
|
905
|
+
.acud-select-auto-complete:not(.acud-select-customize-input) .acud-select-selector .acud-select-selection-search .acud-select-selection-search-input {
|
|
906
|
+
cursor: auto;
|
|
907
|
+
margin: 0;
|
|
908
|
+
padding: 0;
|
|
909
|
+
background: 0 0;
|
|
910
|
+
border: none;
|
|
911
|
+
outline: none;
|
|
912
|
+
-webkit-appearance: none;
|
|
913
|
+
-moz-appearance: none;
|
|
914
|
+
appearance: none;
|
|
915
|
+
}
|
|
916
|
+
.acud-select-auto-complete .acud-select-selector {
|
|
917
|
+
width: 100%;
|
|
918
|
+
display: flex;
|
|
919
|
+
cursor: text;
|
|
920
|
+
position: relative;
|
|
921
|
+
}
|
|
922
|
+
.acud-select-auto-complete .acud-select-selector .acud-select-selection-search {
|
|
923
|
+
position: absolute;
|
|
924
|
+
inset: 0 12px;
|
|
925
|
+
z-index: 2;
|
|
926
|
+
}
|
|
927
|
+
.acud-select-auto-complete .acud-select-selector .acud-select-selection-search .acud-select-selection-search-input {
|
|
928
|
+
width: 100%;
|
|
929
|
+
}
|
|
930
|
+
.acud-select-auto-complete .acud-select-selector .acud-select-selection-placeholder {
|
|
931
|
+
flex: 1;
|
|
932
|
+
transition: none;
|
|
933
|
+
pointer-events: none;
|
|
934
|
+
overflow: hidden;
|
|
935
|
+
color: #bfbfbf;
|
|
936
|
+
white-space: nowrap;
|
|
937
|
+
text-overflow: ellipsis;
|
|
938
|
+
padding-left: 12px;
|
|
939
|
+
padding-right: 12px;
|
|
940
|
+
z-index: 1;
|
|
941
|
+
}
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
@input-password-outer-prefix-cls: ~'@{acud-prefix}-input-password-outer';
|
|
10
10
|
@input-password-prefix-cls: ~'@{acud-prefix}-input-password';
|
|
11
|
+
@select-auto-complete-prefix-cls: ~'@{acud-prefix}-select-auto-complete';
|
|
12
|
+
|
|
13
|
+
@select-prefix-cls: ~'@{acud-prefix}-select';
|
|
14
|
+
|
|
11
15
|
// basic logic - line hight, font size
|
|
12
16
|
// content layer - 只处理文字 Icon, 没有开关config,对应四种交互状态配置
|
|
13
17
|
// background layer - 背景层 填色、描边、阴影,可以通过开关config配置, 对应四种交互状态
|
|
@@ -254,7 +258,7 @@
|
|
|
254
258
|
padding-top: 1.5*@padding-xsm;
|
|
255
259
|
padding-right: 2*@padding-m;
|
|
256
260
|
padding-bottom: 6*@padding-xsm;
|
|
257
|
-
min-height: 100px;
|
|
261
|
+
// min-height: 100px;
|
|
258
262
|
border-radius: @input-border-lg-radius;
|
|
259
263
|
font-family: -apple-system, BlinkMacSystemFont, "SF Pro SC", "SF Pro Text", "Helvetica Neue", Helvetica, "PingFang SC", Roboto, 'Arial', 'microsoft yahei ui', "Microsoft YaHei", SimSun, sans-serif;
|
|
260
264
|
&::-webkit-input-placeholder {
|
|
@@ -379,4 +383,62 @@
|
|
|
379
383
|
right:12px;
|
|
380
384
|
}
|
|
381
385
|
}
|
|
386
|
+
.acud-select-auto-complete{
|
|
387
|
+
.acud-select-selector{
|
|
388
|
+
width:100%;
|
|
389
|
+
display: flex;
|
|
390
|
+
cursor: text;
|
|
391
|
+
position: relative;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
.@{select-auto-complete-prefix-cls}{
|
|
395
|
+
width:100%;
|
|
396
|
+
display: block;
|
|
397
|
+
&:not(.acud-select-customize-input) {
|
|
398
|
+
.acud-select-selector{
|
|
399
|
+
position: relative;
|
|
400
|
+
background-color: #fff;
|
|
401
|
+
border-radius: 2px;
|
|
402
|
+
transition: all .3s cubic-bezier(.645,.045,.355,1);
|
|
403
|
+
.acud-select-selection-search{
|
|
404
|
+
.acud-select-selection-search-input{
|
|
405
|
+
cursor: auto;
|
|
406
|
+
margin: 0;
|
|
407
|
+
padding: 0;
|
|
408
|
+
background: 0 0;
|
|
409
|
+
border: none;
|
|
410
|
+
outline: none;
|
|
411
|
+
appearance: none;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
}
|
|
417
|
+
.@{select-prefix-cls}-selector{
|
|
418
|
+
width:100%;
|
|
419
|
+
display: flex;
|
|
420
|
+
cursor: text;
|
|
421
|
+
position: relative;
|
|
422
|
+
.@{select-prefix-cls}-selection-search{
|
|
423
|
+
position: absolute;
|
|
424
|
+
inset: 0 12px;
|
|
425
|
+
z-index: 2;
|
|
426
|
+
.@{select-prefix-cls}-selection-search-input{
|
|
427
|
+
width:100%;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
.@{select-prefix-cls}-selection-placeholder{
|
|
431
|
+
flex:1;
|
|
432
|
+
transition: none;
|
|
433
|
+
pointer-events: none;
|
|
434
|
+
overflow: hidden;
|
|
435
|
+
color: #bfbfbf;
|
|
436
|
+
white-space: nowrap;
|
|
437
|
+
text-overflow: ellipsis;
|
|
438
|
+
padding-left: 12px;
|
|
439
|
+
padding-right: 12px;
|
|
440
|
+
z-index: 1;
|
|
441
|
+
}
|
|
382
442
|
|
|
443
|
+
}
|
|
444
|
+
}
|
package/es/select/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ declare const SelectRef: <VT extends SelectValue = SelectValue>(props: SelectPro
|
|
|
29
29
|
ref?: React.Ref<RefSelectProps>;
|
|
30
30
|
}) => React.ReactElement;
|
|
31
31
|
declare type InternalSelectType = typeof SelectRef;
|
|
32
|
-
interface SelectInterface extends InternalSelectType {
|
|
32
|
+
export interface SelectInterface extends InternalSelectType {
|
|
33
33
|
SECRET_COMBOBOX_MODE_DO_NOT_USE: string;
|
|
34
34
|
Option: typeof Option;
|
|
35
35
|
OptGroup: typeof OptGroup;
|
package/es/virtual-list/List.js
CHANGED
|
@@ -135,7 +135,6 @@ export function RawList(props, ref) {
|
|
|
135
135
|
} // Always use virtual scroll bar in avoid shaking
|
|
136
136
|
|
|
137
137
|
|
|
138
|
-
// Always use virtual scroll bar in avoid shaking
|
|
139
138
|
if (!inVirtual) {
|
|
140
139
|
return {
|
|
141
140
|
scrollHeight: ((_a = fillerInnerRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0,
|
|
@@ -157,14 +156,12 @@ export function RawList(props, ref) {
|
|
|
157
156
|
var cacheHeight = heights.get(key);
|
|
158
157
|
var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight); // Check item top in the range
|
|
159
158
|
|
|
160
|
-
// Check item top in the range
|
|
161
159
|
if (currentItemBottom >= scrollTop && startIndex === undefined) {
|
|
162
160
|
startIndex = i;
|
|
163
161
|
startOffset = itemTop;
|
|
164
162
|
} // Check item bottom in the range. We will render additional one item for motion usage
|
|
165
163
|
|
|
166
164
|
|
|
167
|
-
// Check item bottom in the range. We will render additional one item for motion usage
|
|
168
165
|
if (currentItemBottom > scrollTop + height && endIndex === undefined) {
|
|
169
166
|
endIndex = i;
|
|
170
167
|
}
|
|
@@ -175,9 +172,6 @@ export function RawList(props, ref) {
|
|
|
175
172
|
/* istanbul ignore next */
|
|
176
173
|
|
|
177
174
|
|
|
178
|
-
// Fallback to normal if not match. This code should never reach
|
|
179
|
-
|
|
180
|
-
/* istanbul ignore next */
|
|
181
175
|
if (startIndex === undefined) {
|
|
182
176
|
startIndex = 0;
|
|
183
177
|
startOffset = 0;
|
|
@@ -188,7 +182,6 @@ export function RawList(props, ref) {
|
|
|
188
182
|
} // Give cache to improve scroll experience
|
|
189
183
|
|
|
190
184
|
|
|
191
|
-
// Give cache to improve scroll experience
|
|
192
185
|
endIndex = Math.min(endIndex + 1, mergedData.length);
|
|
193
186
|
return {
|
|
194
187
|
scrollHeight: itemTop,
|
|
@@ -159,7 +159,6 @@ function PickerPanel(props) {
|
|
|
159
159
|
var now = generateConfig.getNow();
|
|
160
160
|
if (!date) return now; // When value is null and set showTime
|
|
161
161
|
|
|
162
|
-
// When value is null and set showTime
|
|
163
162
|
if (!mergedValue && showTime) {
|
|
164
163
|
if ((0, _typeof2["default"])(showTime) === 'object') {
|
|
165
164
|
return (0, _timeUtil.setDateTime)(generateConfig, date, showTime.defaultValue || now);
|
|
@@ -212,7 +212,6 @@ function InnerRangePicker(props) {
|
|
|
212
212
|
} // Fill disabled unit
|
|
213
213
|
|
|
214
214
|
|
|
215
|
-
// Fill disabled unit
|
|
216
215
|
for (var i = 0; i < 2; i += 1) {
|
|
217
216
|
if (mergedDisabled[i] && !(0, _miscUtil.getValue)(postValues, i) && !(0, _miscUtil.getValue)(allowEmpty, i)) {
|
|
218
217
|
postValues = (0, _miscUtil.updateValues)(postValues, generateConfig.getNow(), i);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { InternalSelectProps, SelectInterface } from '../select';
|
|
3
|
+
export interface AutoCompleteProps<ValueType = any> extends Omit<InternalSelectProps<ValueType>, 'inputIcon' | 'loading' | 'mode' | 'optionLabelProp' | 'labelInValue'> {
|
|
4
|
+
}
|
|
5
|
+
declare const RefAutoComplete: (<ValueType = any>(props: AutoCompleteProps<ValueType> & {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
} & {
|
|
8
|
+
ref?: React.Ref<SelectInterface>;
|
|
9
|
+
}) => React.ReactElement) & {
|
|
10
|
+
Option: import("../select/src/Option").OptionFC;
|
|
11
|
+
};
|
|
12
|
+
export default RefAutoComplete;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
|
|
16
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
+
|
|
18
|
+
var _select = _interopRequireDefault(require("../select"));
|
|
19
|
+
|
|
20
|
+
var _reactNode = require("../_util/reactNode");
|
|
21
|
+
|
|
22
|
+
var _toArray = _interopRequireDefault(require("rc-util/lib/Children/toArray"));
|
|
23
|
+
|
|
24
|
+
var Option = _select["default"].Option;
|
|
25
|
+
|
|
26
|
+
function isSelectOptionOrSelectOptGroup(child) {
|
|
27
|
+
return child && child.type && (child.type.isSelectOption || child.type.isSelectOptGroup);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var AutoComplete = function AutoComplete(props, ref) {
|
|
31
|
+
var _props$prefixCls = props.prefixCls,
|
|
32
|
+
prefixCls = _props$prefixCls === void 0 ? 'acud-select' : _props$prefixCls,
|
|
33
|
+
className = props.className,
|
|
34
|
+
children = props.children;
|
|
35
|
+
var childNodes = (0, _toArray["default"])(children); // ============================= Input =============================
|
|
36
|
+
|
|
37
|
+
var customizeInput;
|
|
38
|
+
|
|
39
|
+
if (childNodes.length === 1 && (0, _reactNode.isValidElement)(childNodes[0]) && !isSelectOptionOrSelectOptGroup(childNodes[0])) {
|
|
40
|
+
var _childNodes = (0, _slicedToArray2["default"])(childNodes, 1);
|
|
41
|
+
|
|
42
|
+
customizeInput = _childNodes[0];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var getInputElement = customizeInput ? function () {
|
|
46
|
+
return customizeInput;
|
|
47
|
+
} : undefined; // ============================ Options ============================
|
|
48
|
+
|
|
49
|
+
var optionChildren;
|
|
50
|
+
|
|
51
|
+
if (childNodes.length && isSelectOptionOrSelectOptGroup(childNodes[0])) {
|
|
52
|
+
optionChildren = children;
|
|
53
|
+
} else {
|
|
54
|
+
optionChildren = [];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return /*#__PURE__*/_react["default"].createElement(_select["default"], (0, _extends2["default"])({
|
|
58
|
+
ref: ref
|
|
59
|
+
}, props, {
|
|
60
|
+
prefixCls: prefixCls,
|
|
61
|
+
className: (0, _classnames["default"])("".concat(prefixCls, "-auto-complete"), className),
|
|
62
|
+
mode: _select["default"].SECRET_COMBOBOX_MODE_DO_NOT_USE,
|
|
63
|
+
getInputElement: getInputElement
|
|
64
|
+
}), optionChildren);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var RefAutoComplete = /*#__PURE__*/_react["default"].forwardRef(AutoComplete);
|
|
68
|
+
|
|
69
|
+
RefAutoComplete.Option = Option;
|
|
70
|
+
var _default = RefAutoComplete; // export default AutoComplete;
|
|
71
|
+
|
|
72
|
+
exports["default"] = _default;
|
package/lib/input/TextArea.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export interface TextAreaProps {
|
|
|
17
17
|
readonly?: boolean;
|
|
18
18
|
allowClear?: boolean;
|
|
19
19
|
}
|
|
20
|
-
declare const TextArea: React.
|
|
20
|
+
declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<unknown>>;
|
|
21
21
|
export default TextArea;
|
package/lib/input/TextArea.js
CHANGED
|
@@ -49,7 +49,8 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
49
49
|
*/
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
// const TextArea:React.FC<TextAreaProps> = props => {
|
|
53
|
+
var TextArea = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
53
54
|
var _classNames;
|
|
54
55
|
|
|
55
56
|
var _props$prefixCls = props.prefixCls,
|
|
@@ -157,6 +158,7 @@ var TextArea = function TextArea(props) {
|
|
|
157
158
|
className: "".concat(prefixCls, "-outer"),
|
|
158
159
|
style: style
|
|
159
160
|
}, /*#__PURE__*/_react["default"].createElement(_rcTextarea["default"], (0, _extends2["default"])({}, rest, {
|
|
161
|
+
ref: ref,
|
|
160
162
|
placeholder: placeholder,
|
|
161
163
|
className: (0, _classnames["default"])(classes),
|
|
162
164
|
onChange: handleOnChange,
|
|
@@ -178,7 +180,7 @@ var TextArea = function TextArea(props) {
|
|
|
178
180
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
179
181
|
className: (0, _classnames["default"])(limitClassName, 'limit')
|
|
180
182
|
}, currentLength, "/", limitLength)));
|
|
181
|
-
};
|
|
183
|
+
});
|
|
182
184
|
|
|
183
185
|
var _default = TextArea;
|
|
184
186
|
exports["default"] = _default;
|
package/lib/input/index.d.ts
CHANGED
|
@@ -4,11 +4,13 @@ import Label from './Label';
|
|
|
4
4
|
import TextArea from './TextArea';
|
|
5
5
|
import Password from './Password';
|
|
6
6
|
import MultiSelectInput from './MultiSelectInput';
|
|
7
|
+
import AutoComplete from './AutoComplete';
|
|
7
8
|
interface CompoundedComponent extends React.ForwardRefExoticComponent<BaseInputProps & React.RefAttributes<HTMLInputElement>> {
|
|
8
9
|
Label: typeof Label;
|
|
9
10
|
TextArea: typeof TextArea;
|
|
10
11
|
Password: typeof Password;
|
|
11
12
|
MultiSelectInput: typeof MultiSelectInput;
|
|
13
|
+
AutoComplete: typeof AutoComplete;
|
|
12
14
|
__ACUD_CHECKBOX: boolean;
|
|
13
15
|
}
|
|
14
16
|
declare const Input: CompoundedComponent;
|
package/lib/input/index.js
CHANGED
|
@@ -17,10 +17,13 @@ var _Password = _interopRequireDefault(require("./Password"));
|
|
|
17
17
|
|
|
18
18
|
var _MultiSelectInput = _interopRequireDefault(require("./MultiSelectInput"));
|
|
19
19
|
|
|
20
|
+
var _AutoComplete = _interopRequireDefault(require("./AutoComplete"));
|
|
21
|
+
|
|
20
22
|
var Input = _Input["default"];
|
|
21
23
|
Input.Label = _Label["default"];
|
|
22
24
|
Input.TextArea = _TextArea["default"];
|
|
23
25
|
Input.Password = _Password["default"];
|
|
24
26
|
Input.MultiSelectInput = _MultiSelectInput["default"];
|
|
27
|
+
Input.AutoComplete = _AutoComplete["default"];
|
|
25
28
|
var _default = Input;
|
|
26
29
|
exports["default"] = _default;
|
|
@@ -682,7 +682,6 @@
|
|
|
682
682
|
padding-top: 6px;
|
|
683
683
|
padding-right: 24px;
|
|
684
684
|
padding-bottom: 24px;
|
|
685
|
-
min-height: 100px;
|
|
686
685
|
border-radius: 4px;
|
|
687
686
|
font-family: -apple-system, BlinkMacSystemFont, "SF Pro SC", "SF Pro Text", "Helvetica Neue", Helvetica, "PingFang SC", Roboto, 'Arial', 'microsoft yahei ui', "Microsoft YaHei", SimSun, sans-serif;
|
|
688
687
|
color: #151B26;
|
|
@@ -887,3 +886,56 @@
|
|
|
887
886
|
.acud-input-select-tags .acud-select-clear {
|
|
888
887
|
right: 12px;
|
|
889
888
|
}
|
|
889
|
+
.acud-select-auto-complete .acud-select-selector {
|
|
890
|
+
width: 100%;
|
|
891
|
+
display: flex;
|
|
892
|
+
cursor: text;
|
|
893
|
+
position: relative;
|
|
894
|
+
}
|
|
895
|
+
.acud-select-auto-complete {
|
|
896
|
+
width: 100%;
|
|
897
|
+
display: block;
|
|
898
|
+
}
|
|
899
|
+
.acud-select-auto-complete:not(.acud-select-customize-input) .acud-select-selector {
|
|
900
|
+
position: relative;
|
|
901
|
+
background-color: #fff;
|
|
902
|
+
border-radius: 2px;
|
|
903
|
+
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
904
|
+
}
|
|
905
|
+
.acud-select-auto-complete:not(.acud-select-customize-input) .acud-select-selector .acud-select-selection-search .acud-select-selection-search-input {
|
|
906
|
+
cursor: auto;
|
|
907
|
+
margin: 0;
|
|
908
|
+
padding: 0;
|
|
909
|
+
background: 0 0;
|
|
910
|
+
border: none;
|
|
911
|
+
outline: none;
|
|
912
|
+
-webkit-appearance: none;
|
|
913
|
+
-moz-appearance: none;
|
|
914
|
+
appearance: none;
|
|
915
|
+
}
|
|
916
|
+
.acud-select-auto-complete .acud-select-selector {
|
|
917
|
+
width: 100%;
|
|
918
|
+
display: flex;
|
|
919
|
+
cursor: text;
|
|
920
|
+
position: relative;
|
|
921
|
+
}
|
|
922
|
+
.acud-select-auto-complete .acud-select-selector .acud-select-selection-search {
|
|
923
|
+
position: absolute;
|
|
924
|
+
inset: 0 12px;
|
|
925
|
+
z-index: 2;
|
|
926
|
+
}
|
|
927
|
+
.acud-select-auto-complete .acud-select-selector .acud-select-selection-search .acud-select-selection-search-input {
|
|
928
|
+
width: 100%;
|
|
929
|
+
}
|
|
930
|
+
.acud-select-auto-complete .acud-select-selector .acud-select-selection-placeholder {
|
|
931
|
+
flex: 1;
|
|
932
|
+
transition: none;
|
|
933
|
+
pointer-events: none;
|
|
934
|
+
overflow: hidden;
|
|
935
|
+
color: #bfbfbf;
|
|
936
|
+
white-space: nowrap;
|
|
937
|
+
text-overflow: ellipsis;
|
|
938
|
+
padding-left: 12px;
|
|
939
|
+
padding-right: 12px;
|
|
940
|
+
z-index: 1;
|
|
941
|
+
}
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
@input-password-outer-prefix-cls: ~'@{acud-prefix}-input-password-outer';
|
|
10
10
|
@input-password-prefix-cls: ~'@{acud-prefix}-input-password';
|
|
11
|
+
@select-auto-complete-prefix-cls: ~'@{acud-prefix}-select-auto-complete';
|
|
12
|
+
|
|
13
|
+
@select-prefix-cls: ~'@{acud-prefix}-select';
|
|
14
|
+
|
|
11
15
|
// basic logic - line hight, font size
|
|
12
16
|
// content layer - 只处理文字 Icon, 没有开关config,对应四种交互状态配置
|
|
13
17
|
// background layer - 背景层 填色、描边、阴影,可以通过开关config配置, 对应四种交互状态
|
|
@@ -254,7 +258,7 @@
|
|
|
254
258
|
padding-top: 1.5*@padding-xsm;
|
|
255
259
|
padding-right: 2*@padding-m;
|
|
256
260
|
padding-bottom: 6*@padding-xsm;
|
|
257
|
-
min-height: 100px;
|
|
261
|
+
// min-height: 100px;
|
|
258
262
|
border-radius: @input-border-lg-radius;
|
|
259
263
|
font-family: -apple-system, BlinkMacSystemFont, "SF Pro SC", "SF Pro Text", "Helvetica Neue", Helvetica, "PingFang SC", Roboto, 'Arial', 'microsoft yahei ui', "Microsoft YaHei", SimSun, sans-serif;
|
|
260
264
|
&::-webkit-input-placeholder {
|
|
@@ -379,4 +383,62 @@
|
|
|
379
383
|
right:12px;
|
|
380
384
|
}
|
|
381
385
|
}
|
|
386
|
+
.acud-select-auto-complete{
|
|
387
|
+
.acud-select-selector{
|
|
388
|
+
width:100%;
|
|
389
|
+
display: flex;
|
|
390
|
+
cursor: text;
|
|
391
|
+
position: relative;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
.@{select-auto-complete-prefix-cls}{
|
|
395
|
+
width:100%;
|
|
396
|
+
display: block;
|
|
397
|
+
&:not(.acud-select-customize-input) {
|
|
398
|
+
.acud-select-selector{
|
|
399
|
+
position: relative;
|
|
400
|
+
background-color: #fff;
|
|
401
|
+
border-radius: 2px;
|
|
402
|
+
transition: all .3s cubic-bezier(.645,.045,.355,1);
|
|
403
|
+
.acud-select-selection-search{
|
|
404
|
+
.acud-select-selection-search-input{
|
|
405
|
+
cursor: auto;
|
|
406
|
+
margin: 0;
|
|
407
|
+
padding: 0;
|
|
408
|
+
background: 0 0;
|
|
409
|
+
border: none;
|
|
410
|
+
outline: none;
|
|
411
|
+
appearance: none;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
}
|
|
417
|
+
.@{select-prefix-cls}-selector{
|
|
418
|
+
width:100%;
|
|
419
|
+
display: flex;
|
|
420
|
+
cursor: text;
|
|
421
|
+
position: relative;
|
|
422
|
+
.@{select-prefix-cls}-selection-search{
|
|
423
|
+
position: absolute;
|
|
424
|
+
inset: 0 12px;
|
|
425
|
+
z-index: 2;
|
|
426
|
+
.@{select-prefix-cls}-selection-search-input{
|
|
427
|
+
width:100%;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
.@{select-prefix-cls}-selection-placeholder{
|
|
431
|
+
flex:1;
|
|
432
|
+
transition: none;
|
|
433
|
+
pointer-events: none;
|
|
434
|
+
overflow: hidden;
|
|
435
|
+
color: #bfbfbf;
|
|
436
|
+
white-space: nowrap;
|
|
437
|
+
text-overflow: ellipsis;
|
|
438
|
+
padding-left: 12px;
|
|
439
|
+
padding-right: 12px;
|
|
440
|
+
z-index: 1;
|
|
441
|
+
}
|
|
382
442
|
|
|
443
|
+
}
|
|
444
|
+
}
|