assui 2.0.82 → 2.0.86
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/copy-to-clipboard/index.d.ts +1 -1
- package/es/index.d.ts +8 -0
- package/es/index.js +4 -0
- 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/index.d.ts +3 -3
- package/es/label-desc-item/index.js +2 -2
- 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.js +1 -1
- package/es/label-select/style/index.css +1 -0
- package/es/label-select/style/index.less +9 -8
- package/es/label-text-area/index.d.ts +20 -1
- package/es/label-text-area/index.js +95 -2
- package/es/label-text-area/style/index.css +44 -0
- package/es/label-text-area/style/index.d.ts +1 -1
- package/es/label-text-area/style/index.js +1 -0
- package/es/label-text-area/style/index.less +59 -0
- package/lib/copy-to-clipboard/index.d.ts +1 -1
- package/lib/index.d.ts +8 -0
- package/lib/index.js +36 -0
- 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/index.d.ts +3 -3
- package/lib/label-desc-item/index.js +2 -2
- 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.js +3 -3
- package/lib/label-select/style/index.css +1 -0
- package/lib/label-select/style/index.less +9 -8
- package/lib/label-text-area/index.d.ts +20 -1
- package/lib/label-text-area/index.js +98 -2
- package/lib/label-text-area/style/index.css +44 -0
- package/lib/label-text-area/style/index.d.ts +1 -1
- package/lib/label-text-area/style/index.js +7 -0
- package/lib/label-text-area/style/index.less +59 -0
- package/package.json +3 -3
|
@@ -1,7 +1,100 @@
|
|
|
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
|
+
|
|
1
28
|
import React from 'react';
|
|
29
|
+
import classNames from 'classnames';
|
|
30
|
+
import { useControllableValue } from 'ahooks';
|
|
31
|
+
import { trimStart } from 'lodash';
|
|
32
|
+
|
|
33
|
+
var LabelTextArea = function LabelTextArea(props) {
|
|
34
|
+
var className = props.className,
|
|
35
|
+
label = props.label,
|
|
36
|
+
id = props.id,
|
|
37
|
+
formatter = props.formatter,
|
|
38
|
+
onFocus = props.onFocus,
|
|
39
|
+
onBlur = props.onBlur;
|
|
40
|
+
|
|
41
|
+
var _a = __read(React.useState(false), 2),
|
|
42
|
+
focused = _a[0],
|
|
43
|
+
setFocused = _a[1];
|
|
44
|
+
|
|
45
|
+
var _b = __read(useControllableValue(props), 2),
|
|
46
|
+
value = _b[0],
|
|
47
|
+
setValue = _b[1];
|
|
48
|
+
|
|
49
|
+
var TextAreaDomRef = React.useRef(null);
|
|
50
|
+
|
|
51
|
+
var handleFocus = function handleFocus() {
|
|
52
|
+
setFocused(true);
|
|
53
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus(value);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var handleBlur = function handleBlur() {
|
|
57
|
+
setFocused(false);
|
|
58
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(value);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var handleLabelClick = function handleLabelClick() {
|
|
62
|
+
var _a;
|
|
63
|
+
|
|
64
|
+
(_a = TextAreaDomRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var handleChange = function handleChange(e) {
|
|
68
|
+
var finallyValue = trimStart(e.target.value);
|
|
69
|
+
|
|
70
|
+
if (formatter) {
|
|
71
|
+
finallyValue = formatter(finallyValue);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
setValue(finallyValue);
|
|
75
|
+
};
|
|
2
76
|
|
|
3
|
-
|
|
4
|
-
|
|
77
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
78
|
+
className: classNames('label-input-control', className),
|
|
79
|
+
id: id
|
|
80
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
81
|
+
className: classNames('label-textarea-warper', {
|
|
82
|
+
'textarea-warper-focused': focused
|
|
83
|
+
}),
|
|
84
|
+
onClick: handleLabelClick
|
|
85
|
+
}, /*#__PURE__*/React.createElement("textarea", {
|
|
86
|
+
ref: function ref(el) {
|
|
87
|
+
return TextAreaDomRef.current = el;
|
|
88
|
+
},
|
|
89
|
+
"data-value": value ? value.length : 0,
|
|
90
|
+
className: "label-textarea",
|
|
91
|
+
value: value,
|
|
92
|
+
onFocus: handleFocus,
|
|
93
|
+
onChange: handleChange,
|
|
94
|
+
onBlur: handleBlur
|
|
95
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
96
|
+
className: "label-textarea-text"
|
|
97
|
+
}, label)));
|
|
5
98
|
};
|
|
6
99
|
|
|
7
100
|
export default LabelTextArea;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
.label-textarea {
|
|
2
|
+
z-index: 1;
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 100%;
|
|
5
|
+
min-height: 28px;
|
|
6
|
+
margin-bottom: -4px;
|
|
7
|
+
padding: 0 15px 0 15px;
|
|
8
|
+
color: #263241;
|
|
9
|
+
font-size: 16px;
|
|
10
|
+
border: 0;
|
|
11
|
+
border-radius: 12px;
|
|
12
|
+
outline: 0;
|
|
13
|
+
transition: border 0.3s;
|
|
14
|
+
}
|
|
15
|
+
.label-textarea:focus + label,
|
|
16
|
+
.label-textarea:not([data-value='0']) + label {
|
|
17
|
+
transform: translateY(-10px) scale(0.86);
|
|
18
|
+
}
|
|
19
|
+
.label-textarea-warper {
|
|
20
|
+
position: relative;
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 100%;
|
|
23
|
+
padding-top: 24px;
|
|
24
|
+
border: 1px solid #e5e5e5;
|
|
25
|
+
border-radius: 12px;
|
|
26
|
+
outline: 0;
|
|
27
|
+
cursor: text;
|
|
28
|
+
}
|
|
29
|
+
.label-textarea-text {
|
|
30
|
+
position: absolute;
|
|
31
|
+
top: 16px;
|
|
32
|
+
left: 16px;
|
|
33
|
+
z-index: 2;
|
|
34
|
+
height: 20px;
|
|
35
|
+
color: #9aa5b5;
|
|
36
|
+
font-size: 14px;
|
|
37
|
+
line-height: 20px;
|
|
38
|
+
transform-origin: top left;
|
|
39
|
+
cursor: text;
|
|
40
|
+
transition: all 0.2s ease-out;
|
|
41
|
+
}
|
|
42
|
+
.textarea-warper-focused {
|
|
43
|
+
border-color: #ff6b00;
|
|
44
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.less';
|
|
@@ -0,0 +1,59 @@
|
|
|
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-textarea {
|
|
13
|
+
z-index: 1;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
min-height: 28px;
|
|
17
|
+
margin-bottom: -4px;
|
|
18
|
+
padding: 0 15px 0 15px;
|
|
19
|
+
color: #263241;
|
|
20
|
+
font-size: @font-size-lg;
|
|
21
|
+
border: 0;
|
|
22
|
+
border-radius: 12px;
|
|
23
|
+
outline: 0;
|
|
24
|
+
transition: border 0.3s;
|
|
25
|
+
|
|
26
|
+
&:focus + label,
|
|
27
|
+
&:not([data-value='0']) + label {
|
|
28
|
+
transform: translateY(-10px) scale(0.86);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&-warper {
|
|
32
|
+
position: relative;
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
padding-top: 24px;
|
|
36
|
+
border: 1px solid @color_e5e5e5;
|
|
37
|
+
border-radius: 12px;
|
|
38
|
+
outline: 0;
|
|
39
|
+
cursor: text;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&-text {
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 16px;
|
|
45
|
+
left: 16px;
|
|
46
|
+
z-index: 2;
|
|
47
|
+
height: 20px;
|
|
48
|
+
color: @color_9aa5b5;
|
|
49
|
+
font-size: @font-size-base;
|
|
50
|
+
line-height: 20px;
|
|
51
|
+
transform-origin: top left;
|
|
52
|
+
cursor: text;
|
|
53
|
+
transition: all 0.2s ease-out;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.textarea-warper-focused {
|
|
58
|
+
border-color: @primary-color;
|
|
59
|
+
}
|
|
@@ -8,7 +8,7 @@ export interface CopyToClipboardProps {
|
|
|
8
8
|
/** 文本被复制时候的回调 */
|
|
9
9
|
onCopy?: (text: string, result: boolean) => void;
|
|
10
10
|
/** ant design Tooltip props */
|
|
11
|
-
tooltipProps
|
|
11
|
+
tooltipProps?: Omit<TooltipProps, 'title'>;
|
|
12
12
|
/** 复制成功的Tooltip提示文案 */
|
|
13
13
|
tooltipTitle?: React.ReactNode;
|
|
14
14
|
/** 依赖底层组件 https://github.com/sudodoki/copy-to-clipboard 的 options */
|
package/lib/index.d.ts
CHANGED
|
@@ -36,6 +36,14 @@ export type { TextInputProps } from './text-input';
|
|
|
36
36
|
export { default as TextInput } from './text-input';
|
|
37
37
|
export type { LabelInputProps } from './label-input';
|
|
38
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';
|
|
39
47
|
export type { RichTextEditorProps } from './rich-text-editor';
|
|
40
48
|
export { default as RichTextEditor } from './rich-text-editor';
|
|
41
49
|
export { default as beautifulDnd } from './beautiful-dnd';
|
package/lib/index.js
CHANGED
|
@@ -184,6 +184,42 @@ Object.defineProperty(exports, "LabelInput", {
|
|
|
184
184
|
}
|
|
185
185
|
});
|
|
186
186
|
|
|
187
|
+
var label_select_1 = require("./label-select");
|
|
188
|
+
|
|
189
|
+
Object.defineProperty(exports, "LabelSelect", {
|
|
190
|
+
enumerable: true,
|
|
191
|
+
get: function get() {
|
|
192
|
+
return label_select_1["default"];
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
var label_range_picker_1 = require("./label-range-picker");
|
|
197
|
+
|
|
198
|
+
Object.defineProperty(exports, "LabelRangePicker", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function get() {
|
|
201
|
+
return label_range_picker_1["default"];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
var label_date_picker_1 = require("./label-date-picker");
|
|
206
|
+
|
|
207
|
+
Object.defineProperty(exports, "LabelDatePicker", {
|
|
208
|
+
enumerable: true,
|
|
209
|
+
get: function get() {
|
|
210
|
+
return label_date_picker_1["default"];
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
var label_desc_item_1 = require("./label-desc-item");
|
|
215
|
+
|
|
216
|
+
Object.defineProperty(exports, "LabelDescItem", {
|
|
217
|
+
enumerable: true,
|
|
218
|
+
get: function get() {
|
|
219
|
+
return label_desc_item_1["default"];
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
|
|
187
223
|
var rich_text_editor_1 = require("./rich-text-editor");
|
|
188
224
|
|
|
189
225
|
Object.defineProperty(exports, "RichTextEditor", {
|
|
@@ -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
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare type
|
|
2
|
+
export declare type LabelDescItemProps = {
|
|
3
3
|
/** 自定义class */
|
|
4
4
|
className?: string;
|
|
5
5
|
/** label 标签的文本 */
|
|
@@ -9,5 +9,5 @@ export declare type DescItemProps = {
|
|
|
9
9
|
/** 带有后缀的 item */
|
|
10
10
|
suffix?: React.ReactNode;
|
|
11
11
|
};
|
|
12
|
-
declare const
|
|
13
|
-
export default
|
|
12
|
+
declare const LabelDescItem: React.FC<LabelDescItemProps>;
|
|
13
|
+
export default LabelDescItem;
|
|
@@ -14,7 +14,7 @@ var react_1 = __importDefault(require("react"));
|
|
|
14
14
|
|
|
15
15
|
var classnames_1 = __importDefault(require("classnames"));
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var LabelDescItem = function LabelDescItem(props) {
|
|
18
18
|
var className = props.className,
|
|
19
19
|
label = props.label,
|
|
20
20
|
value = props.value,
|
|
@@ -32,4 +32,4 @@ var DescItem = function DescItem(props) {
|
|
|
32
32
|
}, suffix));
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
exports["default"] =
|
|
35
|
+
exports["default"] = LabelDescItem;
|
|
@@ -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;
|
|
@@ -0,0 +1,128 @@
|
|
|
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 classnames_1 = __importDefault(require("classnames"));
|
|
63
|
+
|
|
64
|
+
var CalendarOutlined_1 = __importDefault(require("a-icons/lib/CalendarOutlined"));
|
|
65
|
+
|
|
66
|
+
var RangePicker = date_picker_1["default"].RangePicker;
|
|
67
|
+
|
|
68
|
+
var LabelDatePicker = function LabelDatePicker(props) {
|
|
69
|
+
var className = props.className,
|
|
70
|
+
label = props.label;
|
|
71
|
+
var datePickerRef = react_1["default"].useRef(null);
|
|
72
|
+
|
|
73
|
+
var _a = __read(useControllableValue_1["default"](props, {
|
|
74
|
+
valuePropName: 'open',
|
|
75
|
+
trigger: 'setOpen'
|
|
76
|
+
}), 2),
|
|
77
|
+
open = _a[0],
|
|
78
|
+
setOpen = _a[1];
|
|
79
|
+
|
|
80
|
+
var _b = __read(useControllableValue_1["default"](props), 2),
|
|
81
|
+
value = _b[0],
|
|
82
|
+
setValue = _b[1];
|
|
83
|
+
|
|
84
|
+
var handleChange = function handleChange(nextValue) {
|
|
85
|
+
setValue(nextValue);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
var handleLabelClick = function handleLabelClick() {
|
|
89
|
+
var _a;
|
|
90
|
+
|
|
91
|
+
if (!open) {
|
|
92
|
+
setOpen(!open);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
(_a = datePickerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
var onBlur = function onBlur() {
|
|
99
|
+
setOpen(false);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
var onOpenChange = function onOpenChange(nextOpen) {
|
|
103
|
+
setOpen(nextOpen);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return react_1["default"].createElement("div", {
|
|
107
|
+
className: classnames_1["default"]({
|
|
108
|
+
'label-range-picker': true,
|
|
109
|
+
'label-range-picker-label-scale': open || value
|
|
110
|
+
}, className)
|
|
111
|
+
}, react_1["default"].createElement(RangePicker, __assign({
|
|
112
|
+
format: "YYYY.MM.DD",
|
|
113
|
+
allowEmpty: [true, true]
|
|
114
|
+
}, props, {
|
|
115
|
+
separator: "\u2013",
|
|
116
|
+
open: open,
|
|
117
|
+
onChange: handleChange,
|
|
118
|
+
ref: datePickerRef,
|
|
119
|
+
onOpenChange: onOpenChange,
|
|
120
|
+
onBlur: onBlur,
|
|
121
|
+
suffixIcon: react_1["default"].createElement(CalendarOutlined_1["default"], null)
|
|
122
|
+
})), react_1["default"].createElement("label", {
|
|
123
|
+
className: "label-range-picker-text",
|
|
124
|
+
onClick: handleLabelClick
|
|
125
|
+
}, label));
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
exports["default"] = LabelDatePicker;
|