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
|
@@ -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,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __assign = this && this.__assign || function () {
|
|
4
|
+
__assign = Object.assign || function (t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
|
|
8
|
+
for (var p in s) {
|
|
9
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
return __assign.apply(this, arguments);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
var __read = this && this.__read || function (o, n) {
|
|
20
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
21
|
+
if (!m) return o;
|
|
22
|
+
var i = m.call(o),
|
|
23
|
+
r,
|
|
24
|
+
ar = [],
|
|
25
|
+
e;
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
29
|
+
ar.push(r.value);
|
|
30
|
+
}
|
|
31
|
+
} catch (error) {
|
|
32
|
+
e = {
|
|
33
|
+
error: error
|
|
34
|
+
};
|
|
35
|
+
} finally {
|
|
36
|
+
try {
|
|
37
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
38
|
+
} finally {
|
|
39
|
+
if (e) throw e.error;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return ar;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var __importDefault = this && this.__importDefault || function (mod) {
|
|
47
|
+
return mod && mod.__esModule ? mod : {
|
|
48
|
+
"default": mod
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
Object.defineProperty(exports, "__esModule", {
|
|
53
|
+
value: true
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
var react_1 = __importDefault(require("react"));
|
|
57
|
+
|
|
58
|
+
var useControllableValue_1 = __importDefault(require("ahooks/lib/useControllableValue"));
|
|
59
|
+
|
|
60
|
+
var date_picker_1 = __importDefault(require("antd/es/date-picker"));
|
|
61
|
+
|
|
62
|
+
var CalendarOutlined_1 = __importDefault(require("a-icons/lib/CalendarOutlined"));
|
|
63
|
+
|
|
64
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
65
|
+
|
|
66
|
+
var LabelDatePicker = function LabelDatePicker(props) {
|
|
67
|
+
var className = props.className,
|
|
68
|
+
label = props.label;
|
|
69
|
+
var datePickerRef = react_1["default"].useRef(null);
|
|
70
|
+
|
|
71
|
+
var _a = __read(useControllableValue_1["default"](props, {
|
|
72
|
+
valuePropName: 'open',
|
|
73
|
+
trigger: 'setOpen'
|
|
74
|
+
}), 2),
|
|
75
|
+
open = _a[0],
|
|
76
|
+
setOpen = _a[1];
|
|
77
|
+
|
|
78
|
+
var _b = __read(useControllableValue_1["default"](props), 2),
|
|
79
|
+
value = _b[0],
|
|
80
|
+
setValue = _b[1];
|
|
81
|
+
|
|
82
|
+
var handleChange = function handleChange(nextValue) {
|
|
83
|
+
setValue(nextValue);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var handleLabelClick = function handleLabelClick() {
|
|
87
|
+
var _a;
|
|
88
|
+
|
|
89
|
+
if (!open) {
|
|
90
|
+
setOpen(!open);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
(_a = datePickerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
var onBlur = function onBlur() {
|
|
97
|
+
setOpen(false);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
var onOpenChange = function onOpenChange(nextOpen) {
|
|
101
|
+
setOpen(nextOpen);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
return react_1["default"].createElement("div", {
|
|
105
|
+
className: classnames_1["default"]({
|
|
106
|
+
'label-date-picker': true,
|
|
107
|
+
'label-date-picker-label-scale': open || value
|
|
108
|
+
}, className)
|
|
109
|
+
}, react_1["default"].createElement(date_picker_1["default"], __assign({}, props, {
|
|
110
|
+
open: open,
|
|
111
|
+
onChange: handleChange,
|
|
112
|
+
ref: datePickerRef,
|
|
113
|
+
onOpenChange: onOpenChange,
|
|
114
|
+
onBlur: onBlur,
|
|
115
|
+
placeholder: "",
|
|
116
|
+
suffixIcon: react_1["default"].createElement(CalendarOutlined_1["default"], null)
|
|
117
|
+
})), react_1["default"].createElement("label", {
|
|
118
|
+
className: "label-date-picker-text",
|
|
119
|
+
onClick: handleLabelClick
|
|
120
|
+
}, label));
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
exports["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,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __importDefault = this && this.__importDefault || function (mod) {
|
|
4
|
+
return mod && mod.__esModule ? mod : {
|
|
5
|
+
"default": mod
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var react_1 = __importDefault(require("react"));
|
|
14
|
+
|
|
15
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
16
|
+
|
|
17
|
+
var LabelDescItem = function LabelDescItem(props) {
|
|
18
|
+
var className = props.className,
|
|
19
|
+
label = props.label,
|
|
20
|
+
value = props.value,
|
|
21
|
+
suffix = props.suffix;
|
|
22
|
+
return react_1["default"].createElement("div", {
|
|
23
|
+
className: classnames_1["default"]('desc-item', className)
|
|
24
|
+
}, react_1["default"].createElement("div", {
|
|
25
|
+
className: "desc-item-left-content"
|
|
26
|
+
}, label && react_1["default"].createElement("div", {
|
|
27
|
+
className: "desc-item-label"
|
|
28
|
+
}, label), react_1["default"].createElement("div", {
|
|
29
|
+
className: "desc-item-value"
|
|
30
|
+
}, value)), suffix && react_1["default"].createElement("div", {
|
|
31
|
+
className: "desc-item-value"
|
|
32
|
+
}, suffix));
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
exports["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,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,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
13
|
+
ar.push(r.value);
|
|
14
|
+
}
|
|
15
|
+
} catch (error) {
|
|
16
|
+
e = {
|
|
17
|
+
error: error
|
|
18
|
+
};
|
|
19
|
+
} finally {
|
|
20
|
+
try {
|
|
21
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
22
|
+
} finally {
|
|
23
|
+
if (e) throw e.error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var __importDefault = this && this.__importDefault || function (mod) {
|
|
31
|
+
return mod && mod.__esModule ? mod : {
|
|
32
|
+
"default": mod
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
Object.defineProperty(exports, "__esModule", {
|
|
37
|
+
value: true
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
var react_1 = __importDefault(require("react"));
|
|
41
|
+
|
|
42
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
43
|
+
|
|
44
|
+
var ahooks_1 = require("ahooks");
|
|
45
|
+
|
|
46
|
+
var lodash_1 = require("lodash");
|
|
47
|
+
|
|
48
|
+
var LabelInput = function LabelInput(props) {
|
|
49
|
+
var className = props.className,
|
|
50
|
+
prefix = props.prefix,
|
|
51
|
+
suffix = props.suffix,
|
|
52
|
+
label = props.label,
|
|
53
|
+
id = props.id,
|
|
54
|
+
onFocus = props.onFocus,
|
|
55
|
+
onBlur = props.onBlur;
|
|
56
|
+
|
|
57
|
+
var _a = __read(react_1["default"].useState(false), 2),
|
|
58
|
+
focused = _a[0],
|
|
59
|
+
setFocused = _a[1];
|
|
60
|
+
|
|
61
|
+
var _b = __read(ahooks_1.useControllableValue(props), 2),
|
|
62
|
+
value = _b[0],
|
|
63
|
+
setValue = _b[1];
|
|
64
|
+
|
|
65
|
+
var InputDomRef = react_1["default"].useRef(null);
|
|
66
|
+
|
|
67
|
+
var handleFocus = function handleFocus() {
|
|
68
|
+
setFocused(true);
|
|
69
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus(value);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
var handleBlur = function handleBlur() {
|
|
73
|
+
setFocused(false);
|
|
74
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(value);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
var handleChange = function handleChange(e) {
|
|
78
|
+
var finallyValue = lodash_1.trimStart(e.target.value);
|
|
79
|
+
setValue(finallyValue);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var handleLabelClick = function handleLabelClick() {
|
|
83
|
+
var _a;
|
|
84
|
+
|
|
85
|
+
(_a = InputDomRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
return react_1["default"].createElement("div", {
|
|
89
|
+
className: classnames_1["default"]('label-input-control', className),
|
|
90
|
+
id: id
|
|
91
|
+
}, react_1["default"].createElement("div", {
|
|
92
|
+
className: classnames_1["default"]('label-input-field', {
|
|
93
|
+
'label-input-affix': prefix || suffix,
|
|
94
|
+
'label-input-focused': focused
|
|
95
|
+
})
|
|
96
|
+
}, prefix && react_1["default"].createElement("div", {
|
|
97
|
+
className: "label-input-prefix"
|
|
98
|
+
}, prefix), react_1["default"].createElement("div", {
|
|
99
|
+
className: "label-input-warper"
|
|
100
|
+
}, react_1["default"].createElement("input", {
|
|
101
|
+
ref: function ref(el) {
|
|
102
|
+
return InputDomRef.current = el;
|
|
103
|
+
},
|
|
104
|
+
"data-value": value ? value.length : 0,
|
|
105
|
+
className: "label-input",
|
|
106
|
+
type: "text",
|
|
107
|
+
value: value,
|
|
108
|
+
onFocus: handleFocus,
|
|
109
|
+
onBlur: handleBlur,
|
|
110
|
+
onChange: handleChange
|
|
111
|
+
}), react_1["default"].createElement("label", {
|
|
112
|
+
className: "label-input-text",
|
|
113
|
+
onClick: handleLabelClick
|
|
114
|
+
}, label)), suffix && react_1["default"].createElement("div", {
|
|
115
|
+
className: "label-input-suffix"
|
|
116
|
+
}, suffix)));
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
exports["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,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;
|