assui 2.0.80 → 2.0.84
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/es/index.d.ts +11 -1
- package/es/index.js +5 -0
- package/es/keep-tab/index.js +0 -6
- package/es/label-date-picker/index.d.ts +7 -0
- package/es/label-date-picker/index.js +107 -0
- package/es/label-date-picker/style/index.css +44 -0
- package/es/label-date-picker/style/index.d.ts +2 -0
- package/es/label-date-picker/style/index.js +2 -0
- package/es/label-date-picker/style/index.less +53 -0
- package/es/label-desc-item/demo/index.less +9 -0
- package/es/label-desc-item/index.d.ts +13 -0
- package/es/label-desc-item/index.js +22 -0
- package/es/label-desc-item/style/index.css +23 -0
- package/es/label-desc-item/style/index.d.ts +1 -0
- package/es/label-desc-item/style/index.js +1 -0
- package/es/label-desc-item/style/index.less +26 -0
- package/es/label-input/index.d.ts +23 -0
- package/es/label-input/index.js +104 -0
- package/es/label-input/style/index.css +72 -0
- package/es/label-input/style/index.d.ts +1 -0
- package/es/label-input/style/index.js +1 -0
- package/es/label-input/style/index.less +95 -0
- package/es/label-range-picker/index.d.ts +7 -0
- package/es/label-range-picker/index.js +111 -0
- package/es/label-range-picker/style/index.css +61 -0
- package/es/label-range-picker/style/index.d.ts +2 -0
- package/es/label-range-picker/style/index.js +2 -0
- package/es/label-range-picker/style/index.less +74 -0
- package/es/label-select/index.d.ts +12 -0
- package/es/label-select/index.js +107 -0
- package/es/label-select/style/index.css +56 -0
- package/es/label-select/style/index.d.ts +2 -0
- package/es/label-select/style/index.js +2 -0
- package/es/label-select/style/index.less +70 -0
- package/es/label-text-area/index.d.ts +2 -0
- package/es/label-text-area/index.js +7 -0
- package/es/label-text-area/style/index.d.ts +1 -0
- package/es/label-text-area/style/index.js +0 -0
- package/es/rc-qrcode/index.d.ts +6 -6
- package/es/rc-qrcode/index.js +4 -4
- package/es/rc-qrcode/useQrcode.d.ts +1 -1
- package/es/rc-qrcode/useQrcode.js +4 -0
- package/lib/index.d.ts +11 -1
- package/lib/index.js +45 -0
- package/lib/keep-tab/index.js +0 -6
- package/lib/label-date-picker/index.d.ts +7 -0
- package/lib/label-date-picker/index.js +123 -0
- package/lib/label-date-picker/style/index.css +44 -0
- package/lib/label-date-picker/style/index.d.ts +2 -0
- package/lib/label-date-picker/style/index.js +9 -0
- package/lib/label-date-picker/style/index.less +53 -0
- package/lib/label-desc-item/demo/index.less +9 -0
- package/lib/label-desc-item/index.d.ts +13 -0
- package/lib/label-desc-item/index.js +35 -0
- package/lib/label-desc-item/style/index.css +23 -0
- package/lib/label-desc-item/style/index.d.ts +1 -0
- package/lib/label-desc-item/style/index.js +7 -0
- package/lib/label-desc-item/style/index.less +26 -0
- package/lib/label-input/index.d.ts +23 -0
- package/lib/label-input/index.js +119 -0
- package/lib/label-input/style/index.css +72 -0
- package/lib/label-input/style/index.d.ts +1 -0
- package/lib/label-input/style/index.js +7 -0
- package/lib/label-input/style/index.less +95 -0
- package/lib/label-range-picker/index.d.ts +7 -0
- package/lib/label-range-picker/index.js +128 -0
- package/lib/label-range-picker/style/index.css +61 -0
- package/lib/label-range-picker/style/index.d.ts +2 -0
- package/lib/label-range-picker/style/index.js +9 -0
- package/lib/label-range-picker/style/index.less +74 -0
- package/lib/label-select/index.d.ts +12 -0
- package/lib/label-select/index.js +126 -0
- package/lib/label-select/style/index.css +56 -0
- package/lib/label-select/style/index.d.ts +2 -0
- package/lib/label-select/style/index.js +9 -0
- package/lib/label-select/style/index.less +70 -0
- package/lib/label-text-area/index.d.ts +2 -0
- package/lib/label-text-area/index.js +19 -0
- package/lib/label-text-area/style/index.d.ts +1 -0
- package/lib/label-text-area/style/index.js +0 -0
- package/lib/rc-qrcode/index.d.ts +6 -6
- package/lib/rc-qrcode/index.js +4 -4
- package/lib/rc-qrcode/useQrcode.d.ts +1 -1
- package/lib/rc-qrcode/useQrcode.js +4 -0
- package/package.json +3 -3
package/es/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type { StepNumberInputProps } from './step-number-input';
|
|
|
22
22
|
export { default as StepNumberInput } from './step-number-input';
|
|
23
23
|
export type { RcEchartPropsType } from './rc-echart';
|
|
24
24
|
export { default as RcEcharts } from './rc-echart';
|
|
25
|
-
export type {
|
|
25
|
+
export type { RcQrcodeProps } from './rc-qrcode';
|
|
26
26
|
export { default as RcQRcode } from './rc-qrcode';
|
|
27
27
|
export { default as RcTransitionGroup } from './rc-transition-group';
|
|
28
28
|
export type { SingleImgUploadProps } from './single-img-upload';
|
|
@@ -34,6 +34,16 @@ export type { TAreaProps } from './text-area';
|
|
|
34
34
|
export { default as TextArea } from './text-area';
|
|
35
35
|
export type { TextInputProps } from './text-input';
|
|
36
36
|
export { default as TextInput } from './text-input';
|
|
37
|
+
export type { LabelInputProps } from './label-input';
|
|
38
|
+
export { default as LabelInput } from './label-input';
|
|
39
|
+
export type { LabelSelectProps } from './label-select';
|
|
40
|
+
export { default as LabelSelect } from './label-select';
|
|
41
|
+
export type { LabelRangePickerProps } from './label-range-picker';
|
|
42
|
+
export { default as LabelRangePicker } from './label-range-picker';
|
|
43
|
+
export type { LabelDatePickerProps } from './label-date-picker';
|
|
44
|
+
export { default as LabelDatePicker } from './label-date-picker';
|
|
45
|
+
export type { LabelDescItemProps } from './label-desc-item';
|
|
46
|
+
export { default as LabelDescItem } from './label-desc-item';
|
|
37
47
|
export type { RichTextEditorProps } from './rich-text-editor';
|
|
38
48
|
export { default as RichTextEditor } from './rich-text-editor';
|
|
39
49
|
export { default as beautifulDnd } from './beautiful-dnd';
|
package/es/index.js
CHANGED
|
@@ -17,5 +17,10 @@ export { default as sortableHoc } from './sortable-hoc';
|
|
|
17
17
|
export { default as SplitPane } from './split-pane';
|
|
18
18
|
export { default as TextArea } from './text-area';
|
|
19
19
|
export { default as TextInput } from './text-input';
|
|
20
|
+
export { default as LabelInput } from './label-input';
|
|
21
|
+
export { default as LabelSelect } from './label-select';
|
|
22
|
+
export { default as LabelRangePicker } from './label-range-picker';
|
|
23
|
+
export { default as LabelDatePicker } from './label-date-picker';
|
|
24
|
+
export { default as LabelDescItem } from './label-desc-item';
|
|
20
25
|
export { default as RichTextEditor } from './rich-text-editor';
|
|
21
26
|
export { default as beautifulDnd } from './beautiful-dnd';
|
package/es/keep-tab/index.js
CHANGED
|
@@ -102,12 +102,6 @@ var KeepTab = function KeepTab(props) {
|
|
|
102
102
|
setUrlParams((_a = {}, _a[saveActiveKeyName] = arrayChildren[0].key, _a));
|
|
103
103
|
setTabActiveKey(arrayChildren[0].key);
|
|
104
104
|
}
|
|
105
|
-
} else {
|
|
106
|
-
setTimeout(function () {
|
|
107
|
-
var _a;
|
|
108
|
-
|
|
109
|
-
setUrlParams((_a = {}, _a[saveActiveKeyName] = tabActiveKey, _a));
|
|
110
|
-
}, 50);
|
|
111
105
|
}
|
|
112
106
|
}, [tabActiveKey]);
|
|
113
107
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DatePickerProps } from 'antd/es/date-picker';
|
|
3
|
+
export interface LabelDatePickerProps extends Omit<DatePickerProps, 'label'> {
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
declare const LabelDatePicker: React.FC<LabelDatePickerProps>;
|
|
7
|
+
export default LabelDatePicker;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
|
|
6
|
+
for (var p in s) {
|
|
7
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
var __read = this && this.__read || function (o, n) {
|
|
18
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
+
if (!m) return o;
|
|
20
|
+
var i = m.call(o),
|
|
21
|
+
r,
|
|
22
|
+
ar = [],
|
|
23
|
+
e;
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
27
|
+
ar.push(r.value);
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
e = {
|
|
31
|
+
error: error
|
|
32
|
+
};
|
|
33
|
+
} finally {
|
|
34
|
+
try {
|
|
35
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
36
|
+
} finally {
|
|
37
|
+
if (e) throw e.error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return ar;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
import React from 'react';
|
|
45
|
+
import useControllableValue from 'ahooks/lib/useControllableValue';
|
|
46
|
+
import DatePicker from 'antd/es/date-picker';
|
|
47
|
+
import CalendarOutlined from 'a-icons/lib/CalendarOutlined';
|
|
48
|
+
import classNames from 'classnames';
|
|
49
|
+
|
|
50
|
+
var LabelDatePicker = function LabelDatePicker(props) {
|
|
51
|
+
var className = props.className,
|
|
52
|
+
label = props.label;
|
|
53
|
+
var datePickerRef = React.useRef(null);
|
|
54
|
+
|
|
55
|
+
var _a = __read(useControllableValue(props, {
|
|
56
|
+
valuePropName: 'open',
|
|
57
|
+
trigger: 'setOpen'
|
|
58
|
+
}), 2),
|
|
59
|
+
open = _a[0],
|
|
60
|
+
setOpen = _a[1];
|
|
61
|
+
|
|
62
|
+
var _b = __read(useControllableValue(props), 2),
|
|
63
|
+
value = _b[0],
|
|
64
|
+
setValue = _b[1];
|
|
65
|
+
|
|
66
|
+
var handleChange = function handleChange(nextValue) {
|
|
67
|
+
setValue(nextValue);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var handleLabelClick = function handleLabelClick() {
|
|
71
|
+
var _a;
|
|
72
|
+
|
|
73
|
+
if (!open) {
|
|
74
|
+
setOpen(!open);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
(_a = datePickerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
var onBlur = function onBlur() {
|
|
81
|
+
setOpen(false);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
var onOpenChange = function onOpenChange(nextOpen) {
|
|
85
|
+
setOpen(nextOpen);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
89
|
+
className: classNames({
|
|
90
|
+
'label-date-picker': true,
|
|
91
|
+
'label-date-picker-label-scale': open || value
|
|
92
|
+
}, className)
|
|
93
|
+
}, /*#__PURE__*/React.createElement(DatePicker, __assign({}, props, {
|
|
94
|
+
open: open,
|
|
95
|
+
onChange: handleChange,
|
|
96
|
+
ref: datePickerRef,
|
|
97
|
+
onOpenChange: onOpenChange,
|
|
98
|
+
onBlur: onBlur,
|
|
99
|
+
placeholder: "",
|
|
100
|
+
suffixIcon: /*#__PURE__*/React.createElement(CalendarOutlined, null)
|
|
101
|
+
})), /*#__PURE__*/React.createElement("label", {
|
|
102
|
+
className: "label-date-picker-text",
|
|
103
|
+
onClick: handleLabelClick
|
|
104
|
+
}, label));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export default LabelDatePicker;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */
|
|
2
|
+
/* stylelint-disable no-duplicate-selectors */
|
|
3
|
+
/* stylelint-disable */
|
|
4
|
+
/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */
|
|
5
|
+
.label-date-picker {
|
|
6
|
+
position: relative;
|
|
7
|
+
height: 100%;
|
|
8
|
+
}
|
|
9
|
+
.label-date-picker .ant-picker {
|
|
10
|
+
height: 52px;
|
|
11
|
+
border: 1px solid #e5e5e5;
|
|
12
|
+
border-radius: 12px;
|
|
13
|
+
outline: none;
|
|
14
|
+
}
|
|
15
|
+
.label-date-picker .ant-picker-input input {
|
|
16
|
+
padding-top: 16px;
|
|
17
|
+
padding-left: 4px;
|
|
18
|
+
}
|
|
19
|
+
.label-date-picker .ant-picker-focused {
|
|
20
|
+
border-color: #ff6b00;
|
|
21
|
+
box-shadow: none;
|
|
22
|
+
}
|
|
23
|
+
.label-date-picker .ant-picker-suffix .spotecicon {
|
|
24
|
+
width: 14px;
|
|
25
|
+
color: #323232;
|
|
26
|
+
}
|
|
27
|
+
.label-date-picker-text {
|
|
28
|
+
position: absolute;
|
|
29
|
+
top: 18px;
|
|
30
|
+
left: 16px;
|
|
31
|
+
z-index: 2;
|
|
32
|
+
height: 20px;
|
|
33
|
+
color: #9aa5b5;
|
|
34
|
+
font-size: 14px;
|
|
35
|
+
line-height: 20px;
|
|
36
|
+
transform-origin: top left;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
transition: all 0.2s ease-out;
|
|
39
|
+
}
|
|
40
|
+
.label-date-picker-label-scale .label-date-picker-text {
|
|
41
|
+
transform: translateY(-10px) scale(0.86);
|
|
42
|
+
cursor: text;
|
|
43
|
+
pointer-events: none;
|
|
44
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
@import '~antd/es/style/themes/index';
|
|
2
|
+
|
|
3
|
+
@color_9aa5b5: #9aa5b5;
|
|
4
|
+
@font-size-base: 14px;
|
|
5
|
+
|
|
6
|
+
.label-date-picker {
|
|
7
|
+
position: relative;
|
|
8
|
+
height: 100%;
|
|
9
|
+
|
|
10
|
+
.@{ant-prefix}-picker {
|
|
11
|
+
height: 52px;
|
|
12
|
+
border: 1px solid #e5e5e5;
|
|
13
|
+
border-radius: 12px;
|
|
14
|
+
outline: none;
|
|
15
|
+
|
|
16
|
+
&-input input {
|
|
17
|
+
padding-top: 16px;
|
|
18
|
+
padding-left: 4px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&-focused {
|
|
22
|
+
border-color: #ff6b00;
|
|
23
|
+
box-shadow: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&-suffix .spotecicon {
|
|
27
|
+
width: 14px;
|
|
28
|
+
color: #323232;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&-text {
|
|
33
|
+
position: absolute;
|
|
34
|
+
top: 18px;
|
|
35
|
+
left: 16px;
|
|
36
|
+
z-index: 2;
|
|
37
|
+
height: 20px;
|
|
38
|
+
color: @color_9aa5b5;
|
|
39
|
+
font-size: @font-size-base;
|
|
40
|
+
line-height: 20px;
|
|
41
|
+
transform-origin: top left;
|
|
42
|
+
cursor: pointer;
|
|
43
|
+
transition: all 0.2s ease-out;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&-label-scale {
|
|
47
|
+
.label-date-picker-text {
|
|
48
|
+
transform: translateY(-10px) scale(0.86);
|
|
49
|
+
cursor: text;
|
|
50
|
+
pointer-events: none;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type LabelDescItemProps = {
|
|
3
|
+
/** 自定义class */
|
|
4
|
+
className?: string;
|
|
5
|
+
/** label 标签的文本 */
|
|
6
|
+
label?: React.ReactNode;
|
|
7
|
+
/** descItem的value */
|
|
8
|
+
value?: React.ReactNode;
|
|
9
|
+
/** 带有后缀的 item */
|
|
10
|
+
suffix?: React.ReactNode;
|
|
11
|
+
};
|
|
12
|
+
declare const LabelDescItem: React.FC<LabelDescItemProps>;
|
|
13
|
+
export default LabelDescItem;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
var LabelDescItem = function LabelDescItem(props) {
|
|
5
|
+
var className = props.className,
|
|
6
|
+
label = props.label,
|
|
7
|
+
value = props.value,
|
|
8
|
+
suffix = props.suffix;
|
|
9
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
className: classNames('desc-item', className)
|
|
11
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
12
|
+
className: "desc-item-left-content"
|
|
13
|
+
}, label && /*#__PURE__*/React.createElement("div", {
|
|
14
|
+
className: "desc-item-label"
|
|
15
|
+
}, label), /*#__PURE__*/React.createElement("div", {
|
|
16
|
+
className: "desc-item-value"
|
|
17
|
+
}, value)), suffix && /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: "desc-item-value"
|
|
19
|
+
}, suffix));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default LabelDescItem;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.desc-item {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: space-between;
|
|
5
|
+
padding: 17px 16px;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
background-color: #f8f8f8;
|
|
8
|
+
border-radius: 12px;
|
|
9
|
+
}
|
|
10
|
+
.desc-item-left-content {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
align-items: center;
|
|
14
|
+
}
|
|
15
|
+
.desc-item-label {
|
|
16
|
+
flex-shrink: 0;
|
|
17
|
+
margin-right: 10px;
|
|
18
|
+
color: #b3b3b3;
|
|
19
|
+
font-weight: 500;
|
|
20
|
+
}
|
|
21
|
+
.desc-item-value {
|
|
22
|
+
font-weight: 500;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.desc-item {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: space-between;
|
|
5
|
+
padding: 17px 16px;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
background-color: #f8f8f8;
|
|
8
|
+
border-radius: 12px;
|
|
9
|
+
|
|
10
|
+
&-left-content {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
align-items: center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&-label {
|
|
17
|
+
flex-shrink: 0;
|
|
18
|
+
margin-right: 10px;
|
|
19
|
+
color: #b3b3b3;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&-value {
|
|
24
|
+
font-weight: 500;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface LabelInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'prefix' | 'type' | 'onChange' | 'onFocus' | 'onBlur'> {
|
|
3
|
+
/** 自定义class */
|
|
4
|
+
className?: string;
|
|
5
|
+
/** label 标签的文本 */
|
|
6
|
+
label?: React.ReactNode;
|
|
7
|
+
/** 输入框内容 */
|
|
8
|
+
value?: string;
|
|
9
|
+
/** 带有后缀的 input */
|
|
10
|
+
suffix?: React.ReactNode;
|
|
11
|
+
/** 带有前缀的 input */
|
|
12
|
+
prefix?: React.ReactNode;
|
|
13
|
+
/** 输入框内容变化时的回调 */
|
|
14
|
+
onChange?: (value: string) => void;
|
|
15
|
+
/** 输入框失去焦点的回调 */
|
|
16
|
+
onBlur?: (value: string) => void;
|
|
17
|
+
/** 输入框获取焦点的回调 */
|
|
18
|
+
onFocus?: (value: string) => void;
|
|
19
|
+
/** 组件dom id */
|
|
20
|
+
id?: string;
|
|
21
|
+
}
|
|
22
|
+
declare const LabelInput: React.FC<LabelInputProps>;
|
|
23
|
+
export default LabelInput;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __read = this && this.__read || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o),
|
|
5
|
+
r,
|
|
6
|
+
ar = [],
|
|
7
|
+
e;
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
11
|
+
ar.push(r.value);
|
|
12
|
+
}
|
|
13
|
+
} catch (error) {
|
|
14
|
+
e = {
|
|
15
|
+
error: error
|
|
16
|
+
};
|
|
17
|
+
} finally {
|
|
18
|
+
try {
|
|
19
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
20
|
+
} finally {
|
|
21
|
+
if (e) throw e.error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
import React from 'react';
|
|
29
|
+
import classNames from 'classnames';
|
|
30
|
+
import { useControllableValue } from 'ahooks';
|
|
31
|
+
import { trimStart } from 'lodash';
|
|
32
|
+
|
|
33
|
+
var LabelInput = function LabelInput(props) {
|
|
34
|
+
var className = props.className,
|
|
35
|
+
prefix = props.prefix,
|
|
36
|
+
suffix = props.suffix,
|
|
37
|
+
label = props.label,
|
|
38
|
+
id = props.id,
|
|
39
|
+
onFocus = props.onFocus,
|
|
40
|
+
onBlur = props.onBlur;
|
|
41
|
+
|
|
42
|
+
var _a = __read(React.useState(false), 2),
|
|
43
|
+
focused = _a[0],
|
|
44
|
+
setFocused = _a[1];
|
|
45
|
+
|
|
46
|
+
var _b = __read(useControllableValue(props), 2),
|
|
47
|
+
value = _b[0],
|
|
48
|
+
setValue = _b[1];
|
|
49
|
+
|
|
50
|
+
var InputDomRef = React.useRef(null);
|
|
51
|
+
|
|
52
|
+
var handleFocus = function handleFocus() {
|
|
53
|
+
setFocused(true);
|
|
54
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus(value);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var handleBlur = function handleBlur() {
|
|
58
|
+
setFocused(false);
|
|
59
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(value);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
var handleChange = function handleChange(e) {
|
|
63
|
+
var finallyValue = trimStart(e.target.value);
|
|
64
|
+
setValue(finallyValue);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var handleLabelClick = function handleLabelClick() {
|
|
68
|
+
var _a;
|
|
69
|
+
|
|
70
|
+
(_a = InputDomRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
74
|
+
className: classNames('label-input-control', className),
|
|
75
|
+
id: id
|
|
76
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
77
|
+
className: classNames('label-input-field', {
|
|
78
|
+
'label-input-affix': prefix || suffix,
|
|
79
|
+
'label-input-focused': focused
|
|
80
|
+
})
|
|
81
|
+
}, prefix && /*#__PURE__*/React.createElement("div", {
|
|
82
|
+
className: "label-input-prefix"
|
|
83
|
+
}, prefix), /*#__PURE__*/React.createElement("div", {
|
|
84
|
+
className: "label-input-warper"
|
|
85
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
86
|
+
ref: function ref(el) {
|
|
87
|
+
return InputDomRef.current = el;
|
|
88
|
+
},
|
|
89
|
+
"data-value": value ? value.length : 0,
|
|
90
|
+
className: "label-input",
|
|
91
|
+
type: "text",
|
|
92
|
+
value: value,
|
|
93
|
+
onFocus: handleFocus,
|
|
94
|
+
onBlur: handleBlur,
|
|
95
|
+
onChange: handleChange
|
|
96
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
97
|
+
className: "label-input-text",
|
|
98
|
+
onClick: handleLabelClick
|
|
99
|
+
}, label)), suffix && /*#__PURE__*/React.createElement("div", {
|
|
100
|
+
className: "label-input-suffix"
|
|
101
|
+
}, suffix)));
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default LabelInput;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
.label-input {
|
|
2
|
+
z-index: 1;
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 100%;
|
|
5
|
+
padding: 24px 15px 8px 15px;
|
|
6
|
+
color: #263241;
|
|
7
|
+
font-size: 16px;
|
|
8
|
+
line-height: 16px;
|
|
9
|
+
border: 1px solid #e5e5e5;
|
|
10
|
+
border-radius: 12px;
|
|
11
|
+
outline: 0;
|
|
12
|
+
transition: border 0.3s;
|
|
13
|
+
}
|
|
14
|
+
.label-input:focus {
|
|
15
|
+
border-color: #ff6b00;
|
|
16
|
+
}
|
|
17
|
+
.label-input:focus + label,
|
|
18
|
+
.label-input:not([data-value='0']) + label {
|
|
19
|
+
transform: translateY(-10px) scale(0.86);
|
|
20
|
+
}
|
|
21
|
+
.label-input-control {
|
|
22
|
+
position: relative;
|
|
23
|
+
display: block;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
.label-input-field {
|
|
27
|
+
height: 56px;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
}
|
|
30
|
+
.label-input-affix {
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
border: 1px solid #dfe2e7;
|
|
34
|
+
border-radius: 6px;
|
|
35
|
+
}
|
|
36
|
+
.label-input-affix .label-input {
|
|
37
|
+
border: 0;
|
|
38
|
+
}
|
|
39
|
+
.label-input-affix .label-input:focus {
|
|
40
|
+
border: 0;
|
|
41
|
+
}
|
|
42
|
+
.label-input-focused {
|
|
43
|
+
border-color: #ff6b00;
|
|
44
|
+
}
|
|
45
|
+
.label-input-prefix {
|
|
46
|
+
flex-shrink: 0;
|
|
47
|
+
padding-left: 15px;
|
|
48
|
+
}
|
|
49
|
+
.label-input-suffix {
|
|
50
|
+
flex-shrink: 0;
|
|
51
|
+
padding-right: 15px;
|
|
52
|
+
color: #b3b3b3;
|
|
53
|
+
font-weight: 500;
|
|
54
|
+
}
|
|
55
|
+
.label-input-warper {
|
|
56
|
+
position: relative;
|
|
57
|
+
width: 100%;
|
|
58
|
+
height: 100%;
|
|
59
|
+
}
|
|
60
|
+
.label-input-text {
|
|
61
|
+
position: absolute;
|
|
62
|
+
top: 16px;
|
|
63
|
+
left: 16px;
|
|
64
|
+
z-index: 2;
|
|
65
|
+
height: 20px;
|
|
66
|
+
color: #9aa5b5;
|
|
67
|
+
font-size: 14px;
|
|
68
|
+
line-height: 20px;
|
|
69
|
+
transform-origin: top left;
|
|
70
|
+
cursor: text;
|
|
71
|
+
transition: all 0.2s ease-out;
|
|
72
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
@primary-color: #ff6b00;
|
|
2
|
+
@color_dfe2e7: #dfe2e7;
|
|
3
|
+
@color_9aa5b5: #9aa5b5;
|
|
4
|
+
@color_b3b3b3: #b3b3b3;
|
|
5
|
+
@color_e5e5e5: #e5e5e5;
|
|
6
|
+
|
|
7
|
+
@font-size-base: 14px;
|
|
8
|
+
@font-size-lg: @font-size-base + 2px;
|
|
9
|
+
|
|
10
|
+
@font-weight-500: 500;
|
|
11
|
+
|
|
12
|
+
.label-input {
|
|
13
|
+
z-index: 1;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
padding: 24px 15px 8px 15px;
|
|
17
|
+
color: #263241;
|
|
18
|
+
font-size: @font-size-lg;
|
|
19
|
+
line-height: 16px;
|
|
20
|
+
border: 1px solid @color_e5e5e5;
|
|
21
|
+
border-radius: 12px;
|
|
22
|
+
outline: 0;
|
|
23
|
+
transition: border 0.3s;
|
|
24
|
+
|
|
25
|
+
&:focus {
|
|
26
|
+
border-color: @primary-color;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:focus + label,
|
|
30
|
+
&:not([data-value='0']) + label {
|
|
31
|
+
transform: translateY(-10px) scale(0.86);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&-control {
|
|
35
|
+
position: relative;
|
|
36
|
+
display: block;
|
|
37
|
+
width: 100%;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&-field {
|
|
41
|
+
height: 56px;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&-affix {
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
border: 1px solid @color_dfe2e7;
|
|
49
|
+
border-radius: 6px;
|
|
50
|
+
|
|
51
|
+
.label-input {
|
|
52
|
+
border: 0;
|
|
53
|
+
|
|
54
|
+
&:focus {
|
|
55
|
+
border: 0;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&-focused {
|
|
61
|
+
border-color: @primary-color;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&-prefix {
|
|
65
|
+
flex-shrink: 0;
|
|
66
|
+
padding-left: 15px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&-suffix {
|
|
70
|
+
flex-shrink: 0;
|
|
71
|
+
padding-right: 15px;
|
|
72
|
+
color: @color_b3b3b3;
|
|
73
|
+
font-weight: @font-weight-500;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&-warper {
|
|
77
|
+
position: relative;
|
|
78
|
+
width: 100%;
|
|
79
|
+
height: 100%;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&-text {
|
|
83
|
+
position: absolute;
|
|
84
|
+
top: 16px;
|
|
85
|
+
left: 16px;
|
|
86
|
+
z-index: 2;
|
|
87
|
+
height: 20px;
|
|
88
|
+
color: @color_9aa5b5;
|
|
89
|
+
font-size: @font-size-base;
|
|
90
|
+
line-height: 20px;
|
|
91
|
+
transform-origin: top left;
|
|
92
|
+
cursor: text;
|
|
93
|
+
transition: all 0.2s ease-out;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { RangePickerProps } from 'antd/es/date-picker';
|
|
3
|
+
export interface LabelRangePickerProps extends Omit<RangePickerProps, 'label'> {
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
declare const LabelDatePicker: React.FC<LabelRangePickerProps>;
|
|
7
|
+
export default LabelDatePicker;
|