@ucloud-fe/react-components 1.15.0 → 1.16.0

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/index.d.ts CHANGED
@@ -50,6 +50,8 @@ export { default as Breadcrumb } from './lib/components/Breadcrumb';
50
50
 
51
51
  export { default as Nav } from './lib/components/Nav';
52
52
 
53
+ export { default as Skeleton } from './lib/components/Skeleton';
54
+
53
55
  // Button
54
56
  import { ButtonProps } from './lib/components/Button/Button';
55
57
  export { default as Button } from './lib/components/Button';
@@ -82,7 +84,7 @@ export interface RowProps extends HTMLAttributes<HTMLDivElement> {
82
84
  type?: RowType;
83
85
  align?: RowAlign;
84
86
  justify?: RowJustify;
85
- gutter?: number;
87
+ gutter?: number | [number, number];
86
88
  }
87
89
  export declare class Row extends Component<RowProps> {}
88
90
 
@@ -430,12 +432,12 @@ export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
430
432
  borderType?: 'default' | 'circle';
431
433
  suffix?: ReactNode;
432
434
  }
433
- export interface TagGroupProps extends HTMLAttributes<HTMLDivElement>{
435
+ export interface TagGroupProps extends HTMLAttributes<HTMLDivElement> {
434
436
  children?: ReactNode;
435
437
  compact?: boolean;
436
438
  exposeCount?: number;
437
- popoverProps?: PopoverProps
438
- }
439
+ popoverProps?: PopoverProps;
440
+ }
439
441
  export declare class TagIcon extends PureComponent<TagProps> {}
440
442
  export declare class TagGroup extends PureComponent<TagGroupProps> {}
441
443
  export declare class Tag extends PureComponent<TagProps> {
@@ -518,7 +520,7 @@ interface ModalConfirmHandle {
518
520
  destroy(): void;
519
521
  }
520
522
  interface ModalConfirm {
521
- (options: ModalProps): ModalConfirmHandle;
523
+ (options: ModalProps, contentNode?: ReactNode): ModalConfirmHandle;
522
524
  }
523
525
  export declare class ModalContent extends Component<HTMLAttributes<HTMLDivElement>> {}
524
526
  export declare class Modal extends Component<ModalProps> {
@@ -551,7 +553,7 @@ export interface TableScroll {
551
553
  y?: number;
552
554
  onScroll?: (e: WheelEvent) => void;
553
555
  }
554
- type RowKey = () => string;
556
+ type RowKey = (row: any) => string;
555
557
  export interface RowSelection {
556
558
  fixed?: boolean;
557
559
  onChange?: Function;
@@ -562,8 +564,9 @@ export interface RowSelection {
562
564
  selectedTip?: boolean | 'button';
563
565
  disabled?: boolean;
564
566
  }
565
- interface GetRowClassName {
566
- (): string;
567
+ interface DragSorting {
568
+ fixed: boolean;
569
+ onChange: (record: any, fromIndex: number, toIndex: number) => void;
567
570
  }
568
571
  interface ColumnRender {
569
572
  (col: any, row?: any): ReactNode;
@@ -585,18 +588,17 @@ export interface Column {
585
588
  interface DefaultColumnConfig {
586
589
  [key: string]: string;
587
590
  }
588
- interface TableRowBack extends HTMLTableDataCellElement {}
589
591
  interface TableCustomStyle {
590
592
  outerPadding?: string;
591
593
  [key: string]: any;
592
594
  }
593
- interface TableDefaultOrder {
595
+ interface TableOrder {
594
596
  key: string;
595
597
  state: 'desc' | 'asc';
596
598
  }
597
599
  export interface TableConditionChangeEventOrder {
598
- order: string;
599
- filter: string[];
600
+ order: TableOrder;
601
+ filters: { key: string; value: string }[];
600
602
  searchValue: string;
601
603
  }
602
604
  interface ConditionChangeEvent {
@@ -621,11 +623,13 @@ export interface TableProps {
621
623
  defaultExpandAllRows?: boolean;
622
624
  onExpandedRowsChange?: (row: any) => void;
623
625
  onExpand?: Function;
624
- onRow?: (row: any, index: number) => TableRowBack;
625
- onHeaderRow?: (row: any, index: number) => TableRowBack;
626
+ onRow?: (row: any, index: number) => any;
627
+ onHeaderRow?: (row: any, index: number) => any;
626
628
  rowSelection?: RowSelection | true;
629
+ dragSorting?: boolean | DragSorting;
627
630
  onRowSelect?: (keys: string[]) => void;
628
631
  showHeader?: boolean;
632
+ columnResizable?: boolean;
629
633
  title?: () => ReactNode;
630
634
  footer?: () => ReactNode;
631
635
  emptyContent?: ReactNode;
@@ -637,12 +641,12 @@ export interface TableProps {
637
641
  rowKey?: string | RowKey;
638
642
  zebraCrossing?: boolean;
639
643
  components?: any;
640
- defaultOrder?: TableDefaultOrder;
644
+ defaultOrder?: TableOrder;
645
+ order?: TableOrder;
641
646
  onConditionChange?: ConditionChangeEvent;
642
647
  doNotHandleCondition?: boolean;
643
648
  contextMenu?: TableContextMenu;
644
649
  className?: string;
645
- rowClassName?: string | GetRowClassName;
646
650
  }
647
651
  interface ColumnConfigButtonProps extends ButtonProps {
648
652
  modalProps?: ModalProps;
@@ -729,12 +733,12 @@ interface Step {
729
733
  remark?: ReactNode;
730
734
  status?: 'disabled' | 'error' | 'success' | 'normal';
731
735
  }
732
- export interface StepsProps extends HTMLAttributes<HTMLDivElement> {
736
+ export interface StepsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
733
737
  steps: Step[];
734
738
  current?: string | number;
735
739
  status?: 'current' | 'loading' | 'error';
736
740
  direction?: 'horizontal' | 'vertical';
737
- nowrap?:boolean;
741
+ nowrap?: boolean;
738
742
  onChange?: (current: string | number) => void;
739
743
  }
740
744
  export declare class Steps extends Component<StepsProps> {}
@@ -14,11 +14,16 @@ declare const CascadeSearchResult: React.NamedExoticComponent<{
14
14
  empty?: boolean | undefined;
15
15
  error?: Error | undefined;
16
16
  } & SharedProps>;
17
- declare const _default: React.MemoExoticComponent<({ dataSource, value, onChange, expandedValue, onExpand, loadData }: {
17
+ declare const _default: React.MemoExoticComponent<({ dataSource, value, onChange, expandedValue, onExpand, loadData, topExtraRender }: {
18
18
  dataSource?: CascadeData[] | undefined;
19
19
  value?: string[] | undefined;
20
20
  expandedValue: string[];
21
21
  loadData?: LoadData | undefined;
22
+ topExtraRender?: ((props: {
23
+ index: number;
24
+ parents?: CascadeData[] | undefined;
25
+ items?: CascadeData[] | undefined;
26
+ }) => React.ReactNode) | undefined;
22
27
  } & SharedProps) => JSX.Element>;
23
28
  export default _default;
24
29
  export { CascadeSearchResult };
@@ -163,7 +163,8 @@ var Cascade = function Cascade(_ref2) {
163
163
  onChange = _ref2.onChange,
164
164
  expandedValue = _ref2.expandedValue,
165
165
  onExpand = _ref2.onExpand,
166
- loadData = _ref2.loadData;
166
+ loadData = _ref2.loadData,
167
+ topExtraRender = _ref2.topExtraRender;
167
168
  var locale = (0, _useLocale.default)(_zh_CN.default, 'Cascader');
168
169
  var expandedItems = (0, _react.useMemo)(function () {
169
170
  (0, _newArrowCheck2.default)(this, _this6);
@@ -194,6 +195,8 @@ var Cascade = function Cascade(_ref2) {
194
195
  selectedKey: value === null || value === void 0 ? void 0 : value[index],
195
196
  expandedKey: expandedValue === null || expandedValue === void 0 ? void 0 : expandedValue[index],
196
197
  parents: parents,
198
+ index: index,
199
+ topExtraRender: topExtraRender,
197
200
  disabled: parents.some(function (parent) {
198
201
  (0, _newArrowCheck2.default)(this, _this7);
199
202
  return parent.disabled;
@@ -37,7 +37,14 @@ export interface DefinedCascaderProps {
37
37
  };
38
38
  /** 分隔符 */
39
39
  separator?: string;
40
+ /** 渲染级联顶部的插槽 */
41
+ topExtraRender?: (props: {
42
+ /** 当前级联索引 */
43
+ index: number;
44
+ parents?: CascadeData[];
45
+ items?: CascadeData[];
46
+ }) => React.ReactNode;
40
47
  }
41
48
  export declare type CascaderProps = DefinedCascaderProps;
42
- declare const _default: React.MemoExoticComponent<({ dataSource, value: _value, defaultValue, onChange: _onChange, disabled, size, search, clearable, placeholder, loadData, status, popoverProps, separator, }: DefinedCascaderProps) => JSX.Element>;
49
+ declare const _default: React.MemoExoticComponent<({ dataSource, value: _value, defaultValue, onChange: _onChange, disabled, size, search, clearable, placeholder, loadData, status, popoverProps, separator, topExtraRender }: DefinedCascaderProps) => JSX.Element>;
43
50
  export default _default;
@@ -184,7 +184,8 @@ var Cascader = function Cascader(_ref3) {
184
184
  loadData = _ref3.loadData,
185
185
  status = _ref3.status,
186
186
  popoverProps = _ref3.popoverProps,
187
- separator = _ref3.separator;
187
+ separator = _ref3.separator,
188
+ topExtraRender = _ref3.topExtraRender;
188
189
 
189
190
  var _useUncontrolled = (0, _useUncontrolled3.default)(_value, defaultValue, _onChange),
190
191
  _useUncontrolled2 = (0, _slicedToArray2.default)(_useUncontrolled, 2),
@@ -323,6 +324,7 @@ var Cascader = function Cascader(_ref3) {
323
324
  onChange: handleSelect,
324
325
  expandedValue: expandedValue,
325
326
  onExpand: handleExpand,
327
+ topExtraRender: topExtraRender,
326
328
  loadData: loadData
327
329
  })),
328
330
  trigger: [],
@@ -360,7 +362,8 @@ Cascader.propTypes = {
360
362
  clearable: _propTypes.default.bool,
361
363
  placeholder: _propTypes.default.string,
362
364
  popoverProps: _propTypes.default.objectOf(_propTypes.default.any),
363
- separator: _propTypes.default.string
365
+ separator: _propTypes.default.string,
366
+ topExtraRender: _propTypes.default.func
364
367
  };
365
368
 
366
369
  var _default = /*#__PURE__*/_react.default.memo(Cascader);
@@ -1,11 +1,17 @@
1
1
  import React from 'react';
2
2
  import { CascadeData, LoadData } from './interface';
3
- declare const _default: React.MemoExoticComponent<({ items, selectedKey, expandedKey, disabled, parents, loadData }: {
3
+ declare const _default: React.MemoExoticComponent<({ items, selectedKey, expandedKey, disabled, parents, loadData, topExtraRender, index }: {
4
4
  items?: CascadeData[] | undefined;
5
5
  selectedKey?: string | undefined;
6
6
  expandedKey?: string | undefined;
7
7
  disabled?: boolean | undefined;
8
8
  parents?: CascadeData[] | undefined;
9
9
  loadData?: LoadData | undefined;
10
+ topExtraRender?: ((props: {
11
+ index: number;
12
+ parents?: CascadeData[] | undefined;
13
+ items?: CascadeData[] | undefined;
14
+ }) => React.ReactNode) | undefined;
15
+ index: number;
10
16
  }) => JSX.Element>;
11
17
  export default _default;
@@ -46,7 +46,9 @@ var Items = function Items(_ref) {
46
46
  expandedKey = _ref.expandedKey,
47
47
  disabled = _ref.disabled,
48
48
  parents = _ref.parents,
49
- loadData = _ref.loadData;
49
+ loadData = _ref.loadData,
50
+ topExtraRender = _ref.topExtraRender,
51
+ index = _ref.index;
50
52
 
51
53
  var _useState = (0, _react.useState)(true),
52
54
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -134,6 +136,17 @@ var Items = function Items(_ref) {
134
136
  exited = true;
135
137
  }.bind(this);
136
138
  }.bind(this), [items, loadData, parents]);
139
+
140
+ var topExtraRenderDom = _react.default.useMemo(function () {
141
+ (0, _newArrowCheck2.default)(this, _this2);
142
+ if (typeof topExtraRender !== 'function') return null;
143
+ return topExtraRender({
144
+ index: index,
145
+ items: items,
146
+ parents: parents
147
+ });
148
+ }.bind(this), [index, items, parents, topExtraRender]);
149
+
137
150
  return /*#__PURE__*/_react.default.createElement(_Loading.default, {
138
151
  loading: loading
139
152
  }, error ? /*#__PURE__*/_react.default.createElement("div", {
@@ -143,11 +156,11 @@ var Items = function Items(_ref) {
143
156
  closable: false
144
157
  }, error.message)) : initial || loading ? /*#__PURE__*/_react.default.createElement("div", {
145
158
  className: _cascade.itemsCls
146
- }) : !items || !items.length ? /*#__PURE__*/_react.default.createElement("div", {
159
+ }, topExtraRenderDom) : !items || !items.length ? /*#__PURE__*/_react.default.createElement("div", {
147
160
  className: _cascade.emptyCls
148
161
  }, locale.emptyTip) : /*#__PURE__*/_react.default.createElement("div", {
149
162
  className: _cascade.itemsCls
150
- }, items.map(function (item) {
163
+ }, topExtraRenderDom, items.map(function (item) {
151
164
  (0, _newArrowCheck2.default)(this, _this2);
152
165
  var value = item.key,
153
166
  itemDisabled = item.disabled,
@@ -93,7 +93,7 @@ var DatePickerForDate = function DatePickerForDate(props) {
93
93
  return /*#__PURE__*/_react.default.createElement(_style.PickerContainer, (0, _extends2.default)({}, containerProps, {
94
94
  hasTime: hasTime
95
95
  }), /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({}, popoverProps, {
96
- popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(_style.Arrow, null), /*#__PURE__*/_react.default.createElement(_Calendar.default, (0, _extends2.default)({}, calendarProps, {
96
+ popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(_Calendar.default, (0, _extends2.default)({}, calendarProps, {
97
97
  sidebar: hasTime ? /*#__PURE__*/_react.default.createElement(_Time.default, timeProps) : null
98
98
  })), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerProps, {
99
99
  tip: error,
@@ -71,7 +71,7 @@ var Month = function Month(props) {
71
71
  return /*#__PURE__*/_react.default.createElement(_style.PickerContainer, (0, _extends2.default)({
72
72
  isMonth: true
73
73
  }, containerProps), /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({
74
- popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(_style.Arrow, null), /*#__PURE__*/_react.default.createElement(_Calendar.default.Month, calendarProps), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerProps, {
74
+ popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(_Calendar.default.Month, calendarProps), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerProps, {
75
75
  tip: error,
76
76
  isError: !!error
77
77
  })))
@@ -455,10 +455,6 @@ var Range = function Range(_ref2) {
455
455
  visible: activeS || activeE,
456
456
  popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, (0, _extends2.default)({}, popupProps, {
457
457
  endInputHighlight: activeE
458
- }), /*#__PURE__*/_react.default.createElement(_style.Arrow, {
459
- style: {
460
- left: activeE ? startRangeInputWidth + 'px' : '20px'
461
- }
462
458
  }), /*#__PURE__*/_react.default.createElement(_style.RangeCalendarWrap, {
463
459
  visible: activeS
464
460
  }, /*#__PURE__*/_react.default.createElement(CalendarComp, (0, _extends2.default)({}, calendarPropsS, {
@@ -99,7 +99,7 @@ var trigger = [];
99
99
  var align = {
100
100
  points: ['tl', 'bl'],
101
101
  overflow: {
102
- adjustX: 0,
102
+ adjustX: 1,
103
103
  adjustY: 1
104
104
  },
105
105
  offset: [0, 10],
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = {
8
- selectAll: 'select all'
8
+ selectAll: 'Select all'
9
9
  };
10
10
  exports.default = _default;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = {
8
- confirm: 'confirm',
9
- cancel: 'cancel'
8
+ confirm: 'Confirm',
9
+ cancel: 'Cancel'
10
10
  };
11
11
  exports.default = _default;
@@ -7,17 +7,17 @@ exports.default = void 0;
7
7
  var _default = {
8
8
  // Options.jsx
9
9
  itemsPerPage: 'items/page',
10
- jumpTo: 'jump to',
11
- jumpToConfirm: 'confirm',
12
- page: 'page',
10
+ jumpTo: 'Jump to',
11
+ jumpToConfirm: 'Confirm',
12
+ page: 'Page',
13
13
  // Pagination.jsx
14
- prevPage: 'prev page',
15
- nextPage: 'next page',
16
- prev5: 'prev 5 page',
17
- next5: 'next 5 page',
18
- prev3: 'prev 3 page',
19
- next3: 'next 3 page',
20
- total: 'total',
21
- items: 'items'
14
+ prevPage: 'Prev page',
15
+ nextPage: 'Next page',
16
+ prev5: 'Prev 5 page',
17
+ next5: 'Next 5 page',
18
+ prev3: 'Prev 3 page',
19
+ next3: 'Next 3 page',
20
+ total: 'Total',
21
+ items: 'Items'
22
22
  };
23
23
  exports.default = _default;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = {
8
- confirm: 'confirm',
9
- cancel: 'cancel'
8
+ confirm: 'Confirm',
9
+ cancel: 'Cancel'
10
10
  };
11
11
  exports.default = _default;
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = {
8
- placeholder: 'please select',
9
- selected: 'selected ',
8
+ placeholder: 'Please select',
9
+ selected: 'Selected ',
10
10
  items: ' items',
11
- emptyTip: 'data is empty',
11
+ emptyTip: 'Data is empty',
12
12
  selectAll: 'Select All'
13
13
  };
14
14
  exports.default = _default;
@@ -5,15 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = {
8
- currentValueIs: 'current value is ',
9
- inputValueIs: 'input value is ',
8
+ currentValueIs: 'Current value is ',
9
+ inputValueIs: 'Input value is ',
10
10
  period: '.',
11
11
  semicolon: ';',
12
12
  colon: ':',
13
13
  comma: ', ',
14
- input: 'input',
14
+ input: 'Input',
15
15
  isValid: ' is valid',
16
16
  isInvalid: ' is invalid',
17
- tip: 'please press enter or click other place to accept valid value'
17
+ tip: 'Please press enter or click other place to accept valid value'
18
18
  };
19
19
  exports.default = _default;
@@ -5,19 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = {
8
- emptyTip: 'data is empty',
9
- search: 'search',
10
- filter: 'filter',
11
- searchResult: 'search result',
12
- items: 'items',
13
- reset: 'reset search and filter',
8
+ emptyTip: 'Data is empty',
9
+ search: 'Search',
10
+ filter: 'Filter',
11
+ searchResult: 'Search result',
12
+ items: 'Items',
13
+ reset: 'Reset search and filter',
14
14
  period: '.',
15
15
  semicolon: ';',
16
16
  colon: ': ',
17
- selected: 'selected',
18
- cancelSelect: 'cancel select',
19
- columnConfigHeader: 'custom columns',
20
- columnConfigTip: 'when you clean cache or change browser, the saving record will lost.',
21
- columnConfigSelected: 'selected'
17
+ selected: 'Selected',
18
+ cancelSelect: 'Cancel select',
19
+ columnConfigHeader: 'Custom columns',
20
+ columnConfigTip: 'When you clean cache or change browser, the saving record will lost.',
21
+ columnConfigSelected: 'Selected'
22
22
  };
23
23
  exports.default = _default;
@@ -71,10 +71,40 @@ var controllerDecorator = function controllerDecorator(options) {
71
71
  zName = _this$props.zName,
72
72
  zOptions = _this$props.zOptions,
73
73
  controllerProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
74
+ var rules = (zOptions && zOptions.rules ? zOptions.rules : []).map(function (rule) {
75
+ (0, _newArrowCheck2.default)(this, _this2);
76
+
77
+ if (rule.validator) {
78
+ var propValidator = rule.validator;
79
+ return _objectSpread(_objectSpread({}, rule), {}, {
80
+ validator: function validator(rule, value, callback) {
81
+ var _this3 = this;
82
+
83
+ for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
84
+ args[_key - 3] = arguments[_key];
85
+ }
86
+
87
+ propValidator.apply(void 0, [rule, value, function (res) {
88
+ (0, _newArrowCheck2.default)(this, _this3);
89
+
90
+ if (res !== null) {
91
+ callback(res);
92
+ } else {
93
+ callback();
94
+ }
95
+ }.bind(this)].concat(args));
96
+ }
97
+ });
98
+ } else {
99
+ return rule;
100
+ }
101
+ }.bind(this));
74
102
  return /*#__PURE__*/_react.default.createElement(_ZForm.ZFormContext.Consumer, null, function (_ref) {
75
103
  (0, _newArrowCheck2.default)(this, _this2);
76
104
  var form = _ref.form;
77
- return form.getFieldDecorator(zName, _objectSpread(_objectSpread({}, options), zOptions))( /*#__PURE__*/_react.default.createElement(Controller, controllerProps));
105
+ return form.getFieldDecorator(zName, _objectSpread(_objectSpread({}, options), _objectSpread(_objectSpread({}, zOptions), {}, {
106
+ rules: rules
107
+ })))( /*#__PURE__*/_react.default.createElement(Controller, controllerProps));
78
108
  }.bind(this));
79
109
  }
80
110
  }]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ucloud-fe/react-components",
3
- "version": "1.15.0",
3
+ "version": "1.16.0",
4
4
  "title": "UCloud react components",
5
5
  "description": "UCloud react components",
6
6
  "keywords": [