@qn-pandora/pandora-component 4.0.3 → 4.0.5
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/CHANGELOG.json +46 -0
- package/CHANGELOG.md +17 -1
- package/es/components/FileResumable/constants.d.ts +33 -0
- package/es/components/FileResumable/constants.js +0 -0
- package/es/components/FileResumable/index.d.ts +13 -0
- package/es/components/FileResumable/index.js +327 -0
- package/es/components/FileResumable/style.css +777 -0
- package/es/components/FileResumable/style.less +94 -0
- package/es/components/FileResumable/utils.d.ts +1 -0
- package/es/components/FileResumable/utils.js +17 -0
- package/es/components/Menu/Option.d.ts +4 -0
- package/es/components/Table/index.js +4 -1
- package/es/components/Table/style.css +3 -0
- package/es/components/Table/style.less +5 -0
- package/es/components/Transfer/List/index.js +15 -8
- package/es/constants/language/en.js +3 -1
- package/es/constants/language/type.d.ts +2 -0
- package/es/constants/language/upload/en.d.ts +3 -0
- package/es/constants/language/upload/en.js +20 -0
- package/es/constants/language/upload/type.d.ts +20 -0
- package/es/constants/language/upload/type.js +4 -0
- package/es/constants/language/upload/zh.d.ts +3 -0
- package/es/constants/language/upload/zh.js +20 -0
- package/es/constants/language/zh.js +3 -1
- package/es/index.css +5545 -4775
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/index.less +16 -15
- package/es/style/theme.less +1 -0
- package/lib/components/FileResumable/constants.d.ts +33 -0
- package/lib/components/FileResumable/constants.js +2 -0
- package/lib/components/FileResumable/index.d.ts +13 -0
- package/lib/components/FileResumable/index.js +340 -0
- package/lib/components/FileResumable/style.css +777 -0
- package/lib/components/FileResumable/style.less +94 -0
- package/lib/components/FileResumable/utils.d.ts +1 -0
- package/lib/components/FileResumable/utils.js +19 -0
- package/lib/components/Menu/Option.d.ts +4 -0
- package/lib/components/Table/index.js +4 -1
- package/lib/components/Table/style.css +3 -0
- package/lib/components/Table/style.less +5 -0
- package/lib/components/Transfer/List/index.js +14 -7
- package/lib/constants/language/en.js +6 -1
- package/lib/constants/language/type.d.ts +2 -0
- package/lib/constants/language/upload/en.d.ts +3 -0
- package/lib/constants/language/upload/en.js +22 -0
- package/lib/constants/language/upload/type.d.ts +20 -0
- package/lib/constants/language/upload/type.js +9 -0
- package/lib/constants/language/upload/zh.d.ts +3 -0
- package/lib/constants/language/upload/zh.js +22 -0
- package/lib/constants/language/zh.js +6 -1
- package/lib/index.css +4039 -3269
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -0
- package/lib/index.less +17 -16
- package/lib/style/theme.less +1 -0
- package/package.json +6 -4
@@ -0,0 +1,94 @@
|
|
1
|
+
@import 'antd/lib/upload/style/index.less';
|
2
|
+
@import '../../style/theme.less';
|
3
|
+
|
4
|
+
.@{sdk-prefix}-file-resumable {
|
5
|
+
cursor: pointer;
|
6
|
+
}
|
7
|
+
|
8
|
+
.@{sdk-prefix}-file-resumable-run-container {
|
9
|
+
text-align: right;
|
10
|
+
.@{sdk-prefix}-file-resumable-run-container-icon {
|
11
|
+
color: @theme-color;
|
12
|
+
cursor: pointer;
|
13
|
+
font-size: 14px;
|
14
|
+
margin: 0 6px;
|
15
|
+
}
|
16
|
+
|
17
|
+
.@{sdk-prefix}-file-resumable-run-container-icon-disabled {
|
18
|
+
color: @font-disable-color;
|
19
|
+
&:hover {
|
20
|
+
cursor: not-allowed;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
.@{sdk-prefix}-file-resumable-upload-icon {
|
26
|
+
font-size: 50px;
|
27
|
+
color: @icon-color;
|
28
|
+
}
|
29
|
+
|
30
|
+
.downloadIcon {
|
31
|
+
color: @theme-color;
|
32
|
+
cursor: pointer;
|
33
|
+
font-size: 20px;
|
34
|
+
}
|
35
|
+
|
36
|
+
.@{sdk-prefix}-file-resumable:hover {
|
37
|
+
border-color: @theme-color;
|
38
|
+
}
|
39
|
+
|
40
|
+
.@{sdk-prefix}-file-resumable-img-container {
|
41
|
+
background: @normal-color;
|
42
|
+
border: 1px dashed @border-color-1;
|
43
|
+
width: 50px;
|
44
|
+
height: 50px;
|
45
|
+
padding: 4px;
|
46
|
+
border-radius: 2px;
|
47
|
+
align-items: center;
|
48
|
+
cursor: pointer;
|
49
|
+
position: relative;
|
50
|
+
font-size: 16px;
|
51
|
+
display: flex;
|
52
|
+
justify-content: center;
|
53
|
+
.@{sdk-prefix}-file-resumable-img-operator {
|
54
|
+
display: flex;
|
55
|
+
justify-content: center;
|
56
|
+
align-items: center;
|
57
|
+
position: absolute;
|
58
|
+
top: 4px;
|
59
|
+
left: 4px;
|
60
|
+
right: 4px;
|
61
|
+
bottom: 4px;
|
62
|
+
.anticon {
|
63
|
+
font-size: 16px;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
.@{sdk-prefix}-file-resumable-img-hidden-plus-icon {
|
67
|
+
display: none;
|
68
|
+
}
|
69
|
+
|
70
|
+
.@{sdk-prefix}-file-resumable-img-box {
|
71
|
+
max-width: 100%;
|
72
|
+
max-height: 100%;
|
73
|
+
padding: 4px;
|
74
|
+
}
|
75
|
+
|
76
|
+
&:hover {
|
77
|
+
.@{sdk-prefix}-file-resumable-img-operator {
|
78
|
+
background: @image-operator-hover-bg;
|
79
|
+
display: flex;
|
80
|
+
.anticon {
|
81
|
+
font-size: 16px;
|
82
|
+
color: @normal-color;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
.@{sdk-prefix}-file-resumable-img.ant-upload.ant-upload-drag {
|
88
|
+
width: 50px;
|
89
|
+
height: 50px;
|
90
|
+
border: none;
|
91
|
+
.@{ant-prefix}-upload-btn {
|
92
|
+
padding: 0;
|
93
|
+
}
|
94
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const isJpgOrPngOrSvg: (type?: string, hexValue?: string) => boolean;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { includes } from 'lodash';
|
2
|
+
var MIME_IMAGE_TYPE = [
|
3
|
+
'image/png',
|
4
|
+
'image/jpeg',
|
5
|
+
'image/jpeg',
|
6
|
+
'image/svg+xml',
|
7
|
+
'image/vnd.microsoft.icon'
|
8
|
+
];
|
9
|
+
export var isJpgOrPngOrSvg = function (type, hexValue) {
|
10
|
+
if (type === void 0) { type = ''; }
|
11
|
+
if (hexValue === void 0) { hexValue = ''; }
|
12
|
+
return (includes(MIME_IMAGE_TYPE, type.toLocaleLowerCase()) &&
|
13
|
+
(includes(hexValue.toLowerCase(), '100') || // ico
|
14
|
+
includes(hexValue.toLowerCase(), 'ffd8ff') ||
|
15
|
+
includes(hexValue.toLowerCase(), '3c3f786d') || // svg
|
16
|
+
includes(hexValue.toLowerCase(), '89504e47')));
|
17
|
+
};
|
@@ -226,9 +226,12 @@ var Table = /** @class */ (function (_super) {
|
|
226
226
|
: rowClassName(record, index, indent));
|
227
227
|
};
|
228
228
|
Table.prototype.getDisabledStatus = function (option) {
|
229
|
+
var _this = this;
|
229
230
|
var noneSelected = this.selectedRowKeys.length === 0;
|
230
231
|
var disabled = typeof option.disabled === 'function'
|
231
|
-
? option.disabled(__spread(this.undisabledData)
|
232
|
+
? option.disabled(__spread(this.undisabledData.filter(function (item, index) {
|
233
|
+
return _this.selectedRowKeys.indexOf(_this.getRowKey(item, index)) !== -1;
|
234
|
+
})))
|
232
235
|
: option.disabled;
|
233
236
|
return noneSelected || disabled;
|
234
237
|
};
|
@@ -1512,6 +1512,9 @@ textarea.ant-pagination-options-quick-jumper input {
|
|
1512
1512
|
.pandora-sdk-table-wrapper .ant-table-tbody > tr > td:last-child {
|
1513
1513
|
padding-right: 20px;
|
1514
1514
|
}
|
1515
|
+
.pandora-sdk-table-wrapper .ant-table-tbody > tr > td:first-child:has(.pandora-sdk-table-empty) {
|
1516
|
+
padding: 0;
|
1517
|
+
}
|
1515
1518
|
.pandora-sdk-table-wrapper .ant-table-thead > tr > th .anticon-filter {
|
1516
1519
|
line-height: 20px;
|
1517
1520
|
}
|
@@ -42,6 +42,11 @@
|
|
42
42
|
.@{ant-prefix}-table-tbody > tr > td:last-child {
|
43
43
|
padding-right: 20px;
|
44
44
|
}
|
45
|
+
.@{ant-prefix}-table-tbody
|
46
|
+
> tr
|
47
|
+
> td:first-child:has(.@{sdk-prefix}-table-empty) {
|
48
|
+
padding: 0;
|
49
|
+
}
|
45
50
|
|
46
51
|
.@{ant-prefix}-table-thead > tr > th .anticon-filter {
|
47
52
|
line-height: 20px;
|
@@ -18,9 +18,10 @@ var __spread = (this && this.__spread) || function () {
|
|
18
18
|
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
19
19
|
return ar;
|
20
20
|
};
|
21
|
-
import React, { useState, useCallback, useContext } from 'react';
|
21
|
+
import React, { useState, useCallback, useContext, useMemo } from 'react';
|
22
22
|
import { Input, Checkbox } from 'antd';
|
23
23
|
import { ConfigContext } from 'antd/es/config-provider';
|
24
|
+
import { includes } from 'lodash';
|
24
25
|
import { Search } from '@qn-pandora/pandora-component-icons';
|
25
26
|
import ListBody from '../ListBody';
|
26
27
|
import { formatString } from '../../../utils/language';
|
@@ -30,17 +31,23 @@ export default function List(props) {
|
|
30
31
|
var _a = __read(useState(''), 2), searchValue = _a[0], setSearchValue = _a[1];
|
31
32
|
var locale = useContext(ConfigContext).locale;
|
32
33
|
var title = props.title, type = props.type, searchPlaceHolder = props.searchPlaceHolder, _b = props.dataSource, dataSource = _b === void 0 ? [] : _b, _c = props.targetKeys, targetKeys = _c === void 0 ? [] : _c, selectAllTitle = props.selectAllTitle, onTargetKeysChange = props.onTargetKeysChange;
|
34
|
+
var filterDataSource = useMemo(function () {
|
35
|
+
return dataSource.filter(function (item) { return item.name.includes(searchValue); });
|
36
|
+
}, [dataSource, searchValue]);
|
33
37
|
var onToggleAll = useCallback(function (e) {
|
38
|
+
var newTargetKeys = [];
|
39
|
+
var allTargetKeys = filterDataSource.map(function (item) { return item.key; });
|
34
40
|
if (e.target.checked === true) {
|
35
|
-
|
36
|
-
onTargetKeysChange(targetKeys_1);
|
41
|
+
newTargetKeys = __spread(new Set(__spread(targetKeys, allTargetKeys)));
|
37
42
|
}
|
38
43
|
else {
|
39
|
-
|
44
|
+
newTargetKeys = targetKeys.filter(function (item) { return !includes(allTargetKeys, item); });
|
40
45
|
}
|
41
|
-
|
42
|
-
|
43
|
-
|
46
|
+
onTargetKeysChange(newTargetKeys);
|
47
|
+
}, [filterDataSource, targetKeys, onTargetKeysChange]);
|
48
|
+
var selectedAllNode = (React.createElement(Checkbox, { className: SDK_PREFIX + "-transfer-mb10", checked: !!filterDataSource.length &&
|
49
|
+
filterDataSource.every(function (item) { return item.checked; }), indeterminate: filterDataSource.some(function (item) { return item.checked; }) &&
|
50
|
+
!filterDataSource.every(function (item) { return item.checked; }), onChange: onToggleAll },
|
44
51
|
React.createElement("strong", null, selectAllTitle || formatString(TransferLocale.select_all, locale))));
|
45
52
|
var onCheckboxChange = useCallback(function (key, checked) {
|
46
53
|
var keys = __spread(targetKeys);
|
@@ -58,5 +65,5 @@ export default function List(props) {
|
|
58
65
|
React.createElement(Input, { placeholder: searchPlaceHolder ||
|
59
66
|
formatString(TransferLocale.placeholder, locale), value: searchValue, onChange: function (e) { return setSearchValue(e.target.value); }, className: SDK_PREFIX + "-transfer-mb10", prefix: React.createElement(Search, { className: SDK_PREFIX + "-search-icon" }) })),
|
60
67
|
type === "source" /* Source */ && selectedAllNode,
|
61
|
-
React.createElement(ListBody, { dataSource:
|
68
|
+
React.createElement(ListBody, { dataSource: filterDataSource, onChange: onCheckboxChange })));
|
62
69
|
}
|
@@ -4,11 +4,13 @@ import { range_input_en } from './range_input/en';
|
|
4
4
|
import { steps_en } from './steps/en';
|
5
5
|
import { table_en } from './table/en';
|
6
6
|
import { transfer_en } from './transfer/en';
|
7
|
+
import upload_en from './upload/en';
|
7
8
|
export var component_en = {
|
8
9
|
check_transform_list: check_transform_list_en,
|
9
10
|
datetime: datetime_en,
|
10
11
|
range_input: range_input_en,
|
11
12
|
steps: steps_en,
|
12
13
|
table: table_en,
|
13
|
-
transfer: transfer_en
|
14
|
+
transfer: transfer_en,
|
15
|
+
upload: upload_en
|
14
16
|
};
|
@@ -4,6 +4,7 @@ import { IRangeInputLocale } from './range_input/type';
|
|
4
4
|
import { IStepsLocale } from './steps/type';
|
5
5
|
import { ITableLocale } from './table/type';
|
6
6
|
import { ITransferLocale } from './transfer/type';
|
7
|
+
import { IUploadLocale } from './upload/type';
|
7
8
|
export interface IComponentLocal {
|
8
9
|
check_transform_list: ICheckTransformListLocale;
|
9
10
|
datetime: IDateTimeLocale;
|
@@ -11,5 +12,6 @@ export interface IComponentLocal {
|
|
11
12
|
steps: IStepsLocale;
|
12
13
|
table: ITableLocale;
|
13
14
|
transfer: ITransferLocale;
|
15
|
+
upload: IUploadLocale;
|
14
16
|
}
|
15
17
|
export declare const ComponentLocale: IComponentLocal;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
var upload_en = {
|
2
|
+
play: 'Play',
|
3
|
+
pause: 'Pause',
|
4
|
+
stop: 'Stop',
|
5
|
+
error: 'Upload failed, try again later',
|
6
|
+
text: 'Drop file here to upload',
|
7
|
+
file: {
|
8
|
+
content: 'Drop your data file here',
|
9
|
+
steps: {
|
10
|
+
upload: 'Uploading',
|
11
|
+
complete: 'Done'
|
12
|
+
}
|
13
|
+
},
|
14
|
+
select_file: 'Selected',
|
15
|
+
min_size_error_msg: 'File size cannot be smaller than',
|
16
|
+
max_size_error_msg: 'File size cannot be larger than',
|
17
|
+
empty_file_error_msg: 'Cannot upload empty files',
|
18
|
+
byte: 'bytes'
|
19
|
+
};
|
20
|
+
export default upload_en;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
export interface IUploadLocale {
|
2
|
+
text: string;
|
3
|
+
play: string;
|
4
|
+
pause: string;
|
5
|
+
stop: string;
|
6
|
+
error: string;
|
7
|
+
file: {
|
8
|
+
content: string;
|
9
|
+
steps: {
|
10
|
+
upload: string;
|
11
|
+
complete: string;
|
12
|
+
};
|
13
|
+
};
|
14
|
+
select_file: string;
|
15
|
+
min_size_error_msg: string;
|
16
|
+
max_size_error_msg: string;
|
17
|
+
empty_file_error_msg: string;
|
18
|
+
byte: string;
|
19
|
+
}
|
20
|
+
export declare const UploadLocale: IUploadLocale;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
var upload_zh = {
|
2
|
+
play: '恢复',
|
3
|
+
pause: '暂停',
|
4
|
+
stop: '停止',
|
5
|
+
error: '上传文件失败,请稍后重试',
|
6
|
+
text: '点击或将配置文件拖拽到这里上传',
|
7
|
+
file: {
|
8
|
+
content: '点击或将文件拖拽到这里上传',
|
9
|
+
steps: {
|
10
|
+
upload: '上传文件',
|
11
|
+
complete: '完成'
|
12
|
+
}
|
13
|
+
},
|
14
|
+
select_file: '选择文件',
|
15
|
+
min_size_error_msg: '文件大小不能小于',
|
16
|
+
max_size_error_msg: '文件大小不能大于',
|
17
|
+
empty_file_error_msg: '不能上传空文件',
|
18
|
+
byte: '字节'
|
19
|
+
};
|
20
|
+
export default upload_zh;
|
@@ -4,11 +4,13 @@ import { range_input_zh } from './range_input/zh';
|
|
4
4
|
import { steps_zh } from './steps/zh';
|
5
5
|
import { table_zh } from './table/zh';
|
6
6
|
import { transfer_zh } from './transfer/zh';
|
7
|
+
import upload_zh from './upload/zh';
|
7
8
|
export var component_zh = {
|
8
9
|
check_transform_list: check_transform_list_zh,
|
9
10
|
datetime: datetime_zh,
|
10
11
|
range_input: range_input_zh,
|
11
12
|
steps: steps_zh,
|
12
13
|
table: table_zh,
|
13
|
-
transfer: transfer_zh
|
14
|
+
transfer: transfer_zh,
|
15
|
+
upload: upload_zh
|
14
16
|
};
|