@qn-pandora/pandora-component 4.0.2 → 4.0.4

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.
Files changed (71) hide show
  1. package/CHANGELOG.json +43 -0
  2. package/CHANGELOG.md +17 -1
  3. package/es/components/AutoComplete/index.js +21 -1
  4. package/es/components/DateTimePicker/transform.d.ts +4 -1
  5. package/es/components/DateTimePicker/transform.js +2 -2
  6. package/es/components/Drawer/index.d.ts +30 -2
  7. package/es/components/Drawer/index.js +165 -5
  8. package/es/components/Drawer/style.css +18 -1
  9. package/es/components/Drawer/style.less +23 -1
  10. package/es/components/FileResumable/constants.d.ts +33 -0
  11. package/es/components/FileResumable/constants.js +0 -0
  12. package/es/components/FileResumable/index.d.ts +13 -0
  13. package/es/components/FileResumable/index.js +327 -0
  14. package/es/components/FileResumable/style.css +777 -0
  15. package/es/components/FileResumable/style.less +94 -0
  16. package/es/components/FileResumable/utils.d.ts +1 -0
  17. package/es/components/FileResumable/utils.js +17 -0
  18. package/es/components/Selector/SelectorWidthChildren.d.ts +15 -0
  19. package/es/components/Selector/SelectorWidthChildren.js +59 -0
  20. package/es/components/Selector/index.d.ts +2 -0
  21. package/es/components/Selector/index.js +17 -3
  22. package/es/components/TreeSelector/index.js +1 -1
  23. package/es/constants/language/en.js +3 -1
  24. package/es/constants/language/type.d.ts +2 -0
  25. package/es/constants/language/upload/en.d.ts +3 -0
  26. package/es/constants/language/upload/en.js +20 -0
  27. package/es/constants/language/upload/type.d.ts +20 -0
  28. package/es/constants/language/upload/type.js +4 -0
  29. package/es/constants/language/upload/zh.d.ts +3 -0
  30. package/es/constants/language/upload/zh.js +20 -0
  31. package/es/constants/language/zh.js +3 -1
  32. package/es/index.css +1282 -498
  33. package/es/index.d.ts +2 -0
  34. package/es/index.js +2 -0
  35. package/es/index.less +12 -11
  36. package/es/style/theme.less +1 -0
  37. package/lib/components/AutoComplete/index.js +21 -1
  38. package/lib/components/DateTimePicker/transform.d.ts +4 -1
  39. package/lib/components/DateTimePicker/transform.js +2 -0
  40. package/lib/components/Drawer/index.d.ts +30 -2
  41. package/lib/components/Drawer/index.js +164 -12
  42. package/lib/components/Drawer/style.css +18 -1
  43. package/lib/components/Drawer/style.less +23 -1
  44. package/lib/components/FileResumable/constants.d.ts +33 -0
  45. package/lib/components/FileResumable/constants.js +2 -0
  46. package/lib/components/FileResumable/index.d.ts +13 -0
  47. package/lib/components/FileResumable/index.js +340 -0
  48. package/lib/components/FileResumable/style.css +777 -0
  49. package/lib/components/FileResumable/style.less +94 -0
  50. package/lib/components/FileResumable/utils.d.ts +1 -0
  51. package/lib/components/FileResumable/utils.js +19 -0
  52. package/lib/components/Selector/SelectorWidthChildren.d.ts +15 -0
  53. package/lib/components/Selector/SelectorWidthChildren.js +72 -0
  54. package/lib/components/Selector/index.d.ts +2 -0
  55. package/lib/components/Selector/index.js +16 -2
  56. package/lib/components/TreeSelector/index.js +1 -1
  57. package/lib/constants/language/en.js +6 -1
  58. package/lib/constants/language/type.d.ts +2 -0
  59. package/lib/constants/language/upload/en.d.ts +3 -0
  60. package/lib/constants/language/upload/en.js +22 -0
  61. package/lib/constants/language/upload/type.d.ts +20 -0
  62. package/lib/constants/language/upload/type.js +9 -0
  63. package/lib/constants/language/upload/zh.d.ts +3 -0
  64. package/lib/constants/language/upload/zh.js +22 -0
  65. package/lib/constants/language/zh.js +6 -1
  66. package/lib/index.css +977 -193
  67. package/lib/index.d.ts +2 -0
  68. package/lib/index.js +4 -0
  69. package/lib/index.less +9 -8
  70. package/lib/style/theme.less +1 -0
  71. 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
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ISelectorProps, SelectValue } from './index';
3
+ declare type IValue = string | number;
4
+ export interface ISelectorOption {
5
+ key?: string;
6
+ text: string | React.ReactNode;
7
+ value: IValue;
8
+ disabled?: boolean;
9
+ filterText?: string;
10
+ }
11
+ export interface ISelectorWidthChildrenProps<VT> extends ISelectorProps<VT> {
12
+ options?: ISelectorOption[];
13
+ }
14
+ export default function SelectorWidthChildren<VT extends SelectValue>(props: ISelectorWidthChildrenProps<VT>): JSX.Element;
15
+ export {};
@@ -0,0 +1,59 @@
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
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ var __read = (this && this.__read) || function (o, n) {
24
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
25
+ if (!m) return o;
26
+ var i = m.call(o), r, ar = [], e;
27
+ try {
28
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
29
+ }
30
+ catch (error) { e = { error: error }; }
31
+ finally {
32
+ try {
33
+ if (r && !r.done && (m = i["return"])) m.call(i);
34
+ }
35
+ finally { if (e) throw e.error; }
36
+ }
37
+ return ar;
38
+ };
39
+ import React, { useEffect, useMemo, useState } from 'react';
40
+ import { includes } from 'lodash';
41
+ import Selector from './index';
42
+ // 下拉选项的是element时用于筛选过滤options
43
+ export default function SelectorWidthChildren(props) {
44
+ var _a = __read(useState(''), 2), prefix = _a[0], setPrefix = _a[1];
45
+ var options = props.options, rest = __rest(props, ["options"]);
46
+ useEffect(function () {
47
+ setPrefix('');
48
+ }, []);
49
+ var filterOptions = useMemo(function () {
50
+ var search = prefix.toLowerCase();
51
+ return prefix && options
52
+ ? options.filter(function (option) {
53
+ return option.filterText &&
54
+ includes(option.filterText.toLowerCase(), search);
55
+ })
56
+ : options;
57
+ }, [prefix, options]);
58
+ return (React.createElement(Selector, __assign({}, rest, { onSearch: setPrefix, searchValue: prefix, options: filterOptions, isCustomFilter: true })));
59
+ }
@@ -52,6 +52,7 @@ export interface ISelectorProps<VT> extends Omit<SelectProps<VT>, 'options'> {
52
52
  * 下拉选项超出时用 '...' 来表示,默认 true
53
53
  */
54
54
  ellipsis?: boolean;
55
+ isCustomFilter?: boolean;
55
56
  }
56
57
  /**
57
58
  * 下拉选择组件封装
@@ -64,5 +65,6 @@ export default class Selector<VT extends SelectValue> extends React.Component<IS
64
65
  ellipsis: boolean;
65
66
  };
66
67
  handleCreateClick(e: any): void;
68
+ handleFilter(inputValue: string, option: any): boolean;
67
69
  render(): JSX.Element;
68
70
  }
@@ -43,7 +43,7 @@ var __rest = (this && this.__rest) || function (s, e) {
43
43
  return t;
44
44
  };
45
45
  import * as React from 'react';
46
- import { isArray, concat, isNumber, toString } from 'lodash';
46
+ import { isArray, concat, isNumber, toString, isString } from 'lodash';
47
47
  import classnames from 'classnames';
48
48
  import { Checkbox, Select } from 'antd';
49
49
  import PropTypes from 'prop-types';
@@ -117,10 +117,18 @@ var Selector = /** @class */ (function (_super) {
117
117
  createOptionClick();
118
118
  }
119
119
  };
120
+ Selector.prototype.handleFilter = function (inputValue, option) {
121
+ if (this.props.isCustomFilter) {
122
+ return true;
123
+ }
124
+ return isString(option === null || option === void 0 ? void 0 : option.children)
125
+ ? (option === null || option === void 0 ? void 0 : option.children.toLowerCase().indexOf(inputValue.toLowerCase())) >= 0
126
+ : true;
127
+ };
120
128
  Selector.prototype.render = function () {
121
129
  var _a;
122
- var _b = this.props, options = _b.options, groupOptions = _b.groupOptions, createOptionText = _b.createOptionText, selectAllOptionText = _b.selectAllOptionText, className = _b.className, dropdownClassName = _b.dropdownClassName, getPopupContainer = _b.getPopupContainer, ellipsis = _b.ellipsis, _c = _b.showArrow, showArrow = _c === void 0 ? true : _c, otherProps = __rest(_b, ["options", "groupOptions", "createOptionText", "selectAllOptionText", "className", "dropdownClassName", "getPopupContainer", "ellipsis", "showArrow"]);
123
- return (React.createElement(Select, __assign({ className: classnames(SDK_PREFIX + "-selector", className), dropdownClassName: classnames(SDK_PREFIX + "-selector-dropdown", (_a = {}, _a[SDK_PREFIX + "-selector-no-ellipsis"] = !ellipsis, _a), dropdownClassName), getPopupContainer: getPopupContainer || this.context.getPopupContainer }, otherProps, { removeIcon: React.createElement(Icon, { type: "close-circle", theme: "filled", className: SDK_PREFIX + "-close-icon" }), showArrow: showArrow }),
130
+ var _b = this.props, options = _b.options, groupOptions = _b.groupOptions, createOptionText = _b.createOptionText, selectAllOptionText = _b.selectAllOptionText, className = _b.className, dropdownClassName = _b.dropdownClassName, getPopupContainer = _b.getPopupContainer, ellipsis = _b.ellipsis, _c = _b.showArrow, showArrow = _c === void 0 ? true : _c, isCustomFilter = _b.isCustomFilter, otherProps = __rest(_b, ["options", "groupOptions", "createOptionText", "selectAllOptionText", "className", "dropdownClassName", "getPopupContainer", "ellipsis", "showArrow", "isCustomFilter"]);
131
+ return (React.createElement(Select, __assign({ className: classnames(SDK_PREFIX + "-selector", className), dropdownClassName: classnames(SDK_PREFIX + "-selector-dropdown", (_a = {}, _a[SDK_PREFIX + "-selector-no-ellipsis"] = !ellipsis, _a), dropdownClassName), getPopupContainer: getPopupContainer || this.context.getPopupContainer, filterOption: this.handleFilter }, otherProps, { removeIcon: React.createElement(Icon, { type: "close-circle", theme: "filled", className: SDK_PREFIX + "-close-icon" }), showArrow: showArrow, showSearch: true }),
124
132
  createOptionText && (React.createElement(Select.Option, __assign({}, { className: SDK_PREFIX + "-selector-create-option" }, { key: "selector_create", disabled: true }, noneValueOption),
125
133
  React.createElement("a", { className: SDK_PREFIX + "-selector-create-lint", onClick: this.handleCreateClick }, createOptionText))),
126
134
  selectAllOptionText && (React.createElement(Select.Option, __assign({}, { className: SDK_PREFIX + "-selector-create-option" }, { key: "selector_select_all", disabled: true }, noneValueOption),
@@ -139,6 +147,12 @@ var Selector = /** @class */ (function (_super) {
139
147
  __metadata("design:paramtypes", [Object]),
140
148
  __metadata("design:returntype", void 0)
141
149
  ], Selector.prototype, "handleCreateClick", null);
150
+ __decorate([
151
+ bind,
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [String, Object]),
154
+ __metadata("design:returntype", void 0)
155
+ ], Selector.prototype, "handleFilter", null);
142
156
  return Selector;
143
157
  }(React.Component));
144
158
  export default Selector;
@@ -26,7 +26,7 @@ import { TreeSelect } from 'antd';
26
26
  import { SDK_PREFIX } from '../../constants/style';
27
27
  export function TreeSelector(props) {
28
28
  var className = props.className, dropdownClassName = props.dropdownClassName, restProps = __rest(props, ["className", "dropdownClassName"]);
29
- return (React.createElement(TreeSelect, __assign({ className: classnames(SDK_PREFIX + "-tree-select", className), dropdownClassName: classnames(SDK_PREFIX + "-tree-select-dropdown", dropdownClassName) }, restProps)));
29
+ return (React.createElement(TreeSelect, __assign({ className: classnames(SDK_PREFIX + "-tree-select", className), dropdownClassName: classnames(SDK_PREFIX + "-tree-select-dropdown", dropdownClassName), showSearch: true, treeNodeFilterProp: "title" }, restProps)));
30
30
  }
31
31
  export default TreeSelector;
32
32
  TreeSelector.SHOW_ALL = TreeSelect.SHOW_ALL;
@@ -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,3 @@
1
+ import { IUploadLocale } from './type';
2
+ declare const upload_en: IUploadLocale;
3
+ export default upload_en;
@@ -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,4 @@
1
+ import { languageLocale } from '../../../utils/languageLocale';
2
+ import upload_zh from './zh';
3
+ var prefix = 'upload.';
4
+ export var UploadLocale = languageLocale(prefix, upload_zh);
@@ -0,0 +1,3 @@
1
+ import { IUploadLocale } from './type';
2
+ declare const upload_zh: IUploadLocale;
3
+ export default upload_zh;
@@ -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
  };