@kep-platform/basic-component 0.2.1 → 0.3.2

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.
@@ -0,0 +1,64 @@
1
+ import { PaginationProps } from 'rc-pagination';
2
+ import { Key, ReactNode } from 'react';
3
+ export type SizeType = 'small' | 'large' | 'middle';
4
+ export type PaginationType = Pick<PaginationProps, 'current' | 'pageSize'>;
5
+ export type Direction = 'row' | 'column' | 'row-reverse' | 'column-reverse';
6
+ export type ListItemRender = (record: any, index: number) => ReactNode;
7
+ export type Align = 'left' | 'right' | 'center';
8
+ export type ColumnRender = (value: any, record: any, index: number) => ReactNode;
9
+ export type ColumnType = {
10
+ key: string;
11
+ dataIndex: string;
12
+ width?: number;
13
+ title?: ReactNode;
14
+ render?: ColumnRender;
15
+ align?: Align;
16
+ hideInTable?: boolean;
17
+ fixed?: 'left' | 'right';
18
+ left?: string;
19
+ right?: string;
20
+ bordered?: boolean;
21
+ sorter?: boolean | SorterFunc;
22
+ filter?: boolean;
23
+ };
24
+ export type SorterFunc = (a: any, b: any) => number;
25
+ export type Sorter = 'desc' | 'asc' | undefined;
26
+ export type TriggerType = 'click' | 'mouseover' | 'contextmenu' | 'doubleClick';
27
+ export type MenuItem = {
28
+ key: Key;
29
+ title?: string;
30
+ label: ReactNode;
31
+ };
32
+ export type RequiredTreeNodeKeys = 'key' | 'title' | 'children';
33
+ export type TreeFieldNames = {
34
+ [key in RequiredTreeNodeKeys]: string;
35
+ };
36
+ export type Condition = {
37
+ attribute: string;
38
+ condition?: (value: any) => boolean;
39
+ description: string;
40
+ };
41
+ export type TreeNodeType = {
42
+ [key: string]: any;
43
+ groupBy?: Condition[];
44
+ selectable?: boolean;
45
+ isLeaf?: boolean;
46
+ };
47
+ export type onExpandHandler = (keys: Key[], info: {
48
+ node: TreeNodeType;
49
+ expanded: boolean;
50
+ nativeEvent: React.MouseEvent;
51
+ }) => void;
52
+ export type onSelectHandler = (keys: Key[], info: {
53
+ node: TreeNodeType;
54
+ selected: boolean;
55
+ nativeEvent: React.MouseEvent;
56
+ }) => void;
57
+ export type RowSelection = {
58
+ selectedKeys?: Key[];
59
+ onSelect: (keys: Key[], info: {
60
+ type: 'row' | 'all';
61
+ selected: boolean;
62
+ nativeEvent: React.ChangeEvent;
63
+ }) => void;
64
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,5 @@
1
1
  import React, { HtmlHTMLAttributes, ReactNode } from 'react';
2
+ import { SizeType } from '../@types/type';
2
3
  export type ButtonProps = {
3
4
  type?: 'default' | 'primary' | 'danger';
4
5
  size?: SizeType;
@@ -1,5 +1,6 @@
1
1
  import React, { HtmlHTMLAttributes } from 'react';
2
2
  import { ListItemProps } from '../List/List';
3
+ import { ColumnType } from '../@types/type';
3
4
  export declare const DefaultColumnWidth = 200;
4
5
  export type ColumnsProps = {
5
6
  columns: ColumnType[];
@@ -13,12 +14,12 @@ export declare const Column: import("styled-components/dist/types").IStyledCompo
13
14
  key: React.Key;
14
15
  title?: React.ReactNode;
15
16
  index?: number | undefined;
16
- itemRender?: ListItemRender | undefined;
17
+ itemRender?: import("../@types/type").ListItemRender | undefined;
17
18
  } & Omit<React.HtmlHTMLAttributes<HTMLLIElement>, "title">, Omit<ColumnType, "render" | "dataIndex"> & {
18
19
  key: React.Key;
19
20
  title?: React.ReactNode;
20
21
  index?: number | undefined;
21
- itemRender?: ListItemRender | undefined;
22
+ itemRender?: import("../@types/type").ListItemRender | undefined;
22
23
  } & Omit<React.HtmlHTMLAttributes<HTMLLIElement>, "title"> & {
23
24
  isFlex: boolean;
24
25
  bordered?: boolean | undefined;
@@ -1,4 +1,5 @@
1
1
  import { HtmlHTMLAttributes } from 'react';
2
+ import { Align, Direction } from '../@types/type';
2
3
  export type FlexProps = {
3
4
  direction?: Direction;
4
5
  width?: number;
@@ -1,4 +1,5 @@
1
1
  import React, { HtmlHTMLAttributes, Key, ReactNode } from 'react';
2
+ import { Direction, ListItemRender } from '../@types/type';
2
3
  type ListItemType = {
3
4
  key: string;
4
5
  title?: ReactNode;
@@ -25,5 +26,9 @@ export declare const StyledLi: import("styled-components/dist/types").IStyledCom
25
26
  focused: boolean;
26
27
  }>> & string;
27
28
  export declare const ListItem: React.FC<ListItemProps>;
28
- declare const List: React.FC<ListProps>;
29
+ declare const List: React.ForwardRefExoticComponent<{
30
+ items?: ListItemType[] | undefined;
31
+ direction?: Direction | undefined;
32
+ itemRender?: ListItemRender | undefined;
33
+ } & React.HtmlHTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>;
29
34
  export default List;
package/dist/List/List.js CHANGED
@@ -53,7 +53,7 @@ export var ListItem = function ListItem(props) {
53
53
  };
54
54
 
55
55
  /* 理论上来说所有list相关的数据结构都应该交给List组件来完成,但是List组件只处理List结构不处理任何其他样式问题 */
56
- var List = function List(_ref) {
56
+ var List = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
57
57
  var items = _ref.items,
58
58
  _ref$direction = _ref.direction,
59
59
  direction = _ref$direction === void 0 ? 'row' : _ref$direction,
@@ -62,7 +62,9 @@ var List = function List(_ref) {
62
62
  rest = _objectWithoutProperties(_ref, _excluded2);
63
63
  return /*#__PURE__*/React.createElement(StyledUL, _extends({
64
64
  direction: direction
65
- }, rest), items && Array.isArray(items) ? items.map(function (item, index) {
65
+ }, rest, {
66
+ ref: ref
67
+ }), items && Array.isArray(items) ? items.map(function (item, index) {
66
68
  var key = item.key,
67
69
  title = item.title,
68
70
  rest = _objectWithoutProperties(item, _excluded3);
@@ -73,5 +75,5 @@ var List = function List(_ref) {
73
75
  title: typeof titleStr === 'string' ? titleStr : ''
74
76
  }), titleStr);
75
77
  }) : children);
76
- };
78
+ });
77
79
  export default List;
@@ -1,4 +1,5 @@
1
1
  import React, { ReactNode, type Key } from 'react';
2
+ import { Direction, MenuItem, TriggerType } from '../@types/type';
2
3
  export type MenuProps = {
3
4
  items: MenuItem[];
4
5
  direction?: Direction;
@@ -1,4 +1,5 @@
1
1
  import React, { HtmlHTMLAttributes, type ReactNode } from 'react';
2
+ import { TriggerType } from '../@types/type';
2
3
  export type PopupBoxProps = {
3
4
  children?: ReactNode;
4
5
  left?: number;
@@ -17,5 +18,5 @@ export declare function Popup(props: {
17
18
  trigger?: TriggerType;
18
19
  content?: ReactNode;
19
20
  onVisibleChange?: (visible: boolean) => void;
20
- }): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
21
+ }): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
21
22
  export default PopupBox;
@@ -20,7 +20,7 @@ declare namespace Select {
20
20
  key: React.Key;
21
21
  title?: React.ReactNode;
22
22
  index?: number | undefined;
23
- itemRender?: ListItemRender | undefined;
23
+ itemRender?: import("..").ListItemRender | undefined;
24
24
  } & Omit<React.HtmlHTMLAttributes<HTMLLIElement>, "title">, SelectListItemProps>> & string & Omit<React.FC<ListItemProps>, keyof React.Component<any, {}, any>>;
25
25
  }
26
26
  export default Select;
@@ -1,4 +1,5 @@
1
1
  import React, { CSSProperties, HtmlHTMLAttributes, ReactNode } from 'react';
2
+ import { Direction, SizeType } from '../@types/type';
2
3
  export type SpaceProps = {
3
4
  children?: ReactNode;
4
5
  className?: string;
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- type SorterDesc = Record<string, Sorter>;
2
+ import { ColumnType, PaginationType, RowSelection, Sorter } from '../@types/type';
3
3
  type FilterDesc = Record<string, string>;
4
4
  export type Scroll = {
5
5
  y?: number;
@@ -12,14 +12,19 @@ export type TableProps = {
12
12
  actions?: ReactNode[];
13
13
  title?: ReactNode;
14
14
  scroll?: Scroll;
15
- onChange?: (pagination?: Pagination, sorter?: SorterDesc, fitler?: FilterDesc) => void;
15
+ onChange?: (pagination: PaginationType | false, sorter: SorterController, fitler?: FilterDesc) => void;
16
16
  headerRender?: (column: ColumnType) => ReactNode;
17
17
  groupBy?: string;
18
- pagination?: Pagination | false;
18
+ pagination?: PaginationType | false;
19
19
  empty?: ReactNode;
20
20
  rowSelection?: RowSelection;
21
21
  multiple?: boolean;
22
22
  tableContentRef?: React.RefObject<HTMLDivElement>;
23
+ virtual?: boolean;
23
24
  };
25
+ type SorterController = {
26
+ columnKey: string;
27
+ sorterType: Sorter;
28
+ } | null;
24
29
  export default function Table({ columns, dataSource, rowKey, scroll, onChange, headerRender, pagination: outerPagination, empty, rowSelection, multiple, tableContentRef, }: TableProps): React.JSX.Element;
25
30
  export {};
@@ -35,7 +35,7 @@ import { Popup } from "../PopupBox";
35
35
  import { Space } from "../Space";
36
36
  var TableContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
37
37
  var TableHeaderRow = styled(Columns)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border-bottom: var(--kep-platform-line-width) solid var(--kep-platform-color-table-border);\n position: sticky;\n top: 0;\n left: 0;\n z-index: calc(var(--kep-platform-z-index-fixed) + 5);\n & ", " {\n background-color: var(--kep-platform-header-bg);\n font-weight: 600;\n position: sticky;\n &:not(:last-child):after {\n content: '';\n width: 1px;\n height: calc(100% - 2 * var(--kep-platform-padding-xs));\n position: absolute;\n top: var(--kep-platform-padding-xs);\n right: 0;\n background-color: var(--kep-platform-color-border-secondary);\n }\n }\n"])), Column);
38
- var TableBody = styled(List)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([""])));
38
+ var TableBody = styled(List)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex-direction: column;\n"])));
39
39
  var TableBodyRow = styled(ListItem).withConfig({
40
40
  shouldForwardProp: function shouldForwardProp(prop) {
41
41
  return !['isActive'].includes(prop);
@@ -158,7 +158,7 @@ export default function Table(_ref3) {
158
158
  dataSource = _ref3.dataSource,
159
159
  rowKey = _ref3.rowKey,
160
160
  scroll = _ref3.scroll,
161
- _onChange2 = _ref3.onChange,
161
+ _onChange = _ref3.onChange,
162
162
  headerRender = _ref3.headerRender,
163
163
  outerPagination = _ref3.pagination,
164
164
  _ref3$empty = _ref3.empty,
@@ -277,16 +277,16 @@ export default function Table(_ref3) {
277
277
  data[dataIndex] = /*#__PURE__*/React.createElement(ColumnTitleController, {
278
278
  column: column,
279
279
  onSorterChange: function onSorterChange(sorter) {
280
- var key = column.key;
281
- _onChange2 === null || _onChange2 === void 0 || _onChange2(undefined, _defineProperty({}, key, sorter), undefined);
282
- setSorterController({
280
+ var newSorterController = {
283
281
  columnKey: column.key,
284
282
  sorterType: sorter
285
- });
283
+ };
284
+ _onChange === null || _onChange === void 0 || _onChange(pagination, newSorterController, filterValues);
285
+ setSorterController(newSorterController);
286
286
  },
287
287
  onFilterValueChange: function onFilterValueChange(value) {
288
288
  var newFilterValues = _objectSpread(_objectSpread({}, filterValues), {}, _defineProperty({}, dataIndex, value));
289
- _onChange2 === null || _onChange2 === void 0 || _onChange2(undefined, undefined, newFilterValues);
289
+ _onChange === null || _onChange === void 0 || _onChange(pagination, sorterController, newFilterValues);
290
290
  setFilterValues(newFilterValues);
291
291
  },
292
292
  title: (headerRender === null || headerRender === void 0 ? void 0 : headerRender(column)) || column.title,
@@ -297,7 +297,7 @@ export default function Table(_ref3) {
297
297
  });
298
298
  });
299
299
  return data;
300
- }, [formatedColumns, sorterController, filterValues]);
300
+ }, [formatedColumns, sorterController, filterValues, pagination]);
301
301
  var boxShadowBox = useRef(null);
302
302
  var headerColumns = useMemo(function () {
303
303
  return formatedColumns.map(function (column) {
@@ -420,14 +420,18 @@ export default function Table(_ref3) {
420
420
  total: (pagination === null || pagination === void 0 ? void 0 : pagination.total) || dataSource.length,
421
421
  justifyContent: "right",
422
422
  onChange: function onChange(current, pageSize) {
423
- _onChange2 === null || _onChange2 === void 0 || _onChange2(_objectSpread(_objectSpread({}, pagination), {}, {
423
+ _onChange === null || _onChange === void 0 || _onChange(_objectSpread(_objectSpread({}, pagination), {}, {
424
424
  current: current,
425
425
  pageSize: pageSize
426
- }));
426
+ }), sorterController, filterValues);
427
427
  setPagination(_objectSpread(_objectSpread({}, pagination), {}, {
428
428
  current: current,
429
429
  pageSize: pageSize
430
430
  }));
431
431
  }
432
- })));
432
+ })), /*#__PURE__*/React.createElement("pre", null, JSON.stringify({
433
+ pagination: pagination,
434
+ sorterController: sorterController,
435
+ filterValues: filterValues
436
+ }, null, 4)));
433
437
  }
@@ -1,4 +1,5 @@
1
1
  import React, { Key, ReactNode } from 'react';
2
+ import { ColumnType, MenuItem, onExpandHandler, onSelectHandler, TreeFieldNames, TreeNodeType } from '../@types/type';
2
3
  export type TreeProps = {
3
4
  treeData: TreeNodeType[];
4
5
  expandedKeys?: Key[];
@@ -1,4 +1,5 @@
1
1
  import React, { Key, ReactNode } from 'react';
2
+ import { ColumnType, MenuItem, onExpandHandler, onSelectHandler, TreeFieldNames, TreeNodeType } from '../@types/type';
2
3
  export type TreeNodeControllerProps = {
3
4
  node: TreeNodeType;
4
5
  selectedKeys: Key[];
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './@types/type';
2
+ export * from './__styles';
1
3
  export * from './Button';
2
4
  export * from './Columns';
3
5
  export * from './Flex';
@@ -14,4 +16,3 @@ export * from './Table';
14
16
  export * from './Tree';
15
17
  export * from './ViewPort';
16
18
  export * from './Window';
17
- export * from './__styles';
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ export * from "./@types/type";
2
+ export * from "./__styles";
1
3
  export * from "./Button";
2
4
  export * from "./Columns";
3
5
  export * from "./Flex";
@@ -13,5 +15,4 @@ export * from "./Spin";
13
15
  export * from "./Table";
14
16
  export * from "./Tree";
15
17
  export * from "./ViewPort";
16
- export * from "./Window";
17
- export * from "./__styles";
18
+ export * from "./Window";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kep-platform/basic-component",
3
- "version": "0.2.1",
3
+ "version": "0.3.2",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@ant-design/icons": "^5.3.7",
50
- "@kep-platform/hooks": "^0.2.1",
50
+ "@kep-platform/hooks": "^0.3.2",
51
51
  "color": "^4.2.3",
52
52
  "rc-pagination": "^4.1.0"
53
53
  },
@@ -87,5 +87,5 @@
87
87
  "authors": [
88
88
  "less-step-jss 1599925910@qq.com"
89
89
  ],
90
- "gitHead": "e421f2be24cf17cde085ef02116c37be24976822"
90
+ "gitHead": "d6167a607e46012935e3ee7e301c3714be7fffc0"
91
91
  }
@@ -1,81 +0,0 @@
1
- import { keyframes } from 'styled-components';
2
- import { PaginationProps } from '../Pagination';
3
- declare global {
4
- type SizeType = 'small' | 'large' | 'middle';
5
- type Keyframes = ReturnType<typeof keyframes>;
6
- type Direction = 'row' | 'column' | 'row-reverse' | 'column-reverse';
7
- type ListItemRender = (record: any, index: number) => ReactNode;
8
- type Align = 'left' | 'right' | 'center';
9
- type Pagination = PaginationProps;
10
- type ColumnRender = (value: any, record: Record<string, any>, index: number) => ReactNode;
11
- type ColumnType = {
12
- key: string;
13
- dataIndex: string;
14
- width?: number;
15
- title?: ReactNode;
16
- render?: ColumnRender;
17
- align?: Align;
18
- hideInTable?: boolean;
19
- fixed?: 'left' | 'right';
20
- left?: string;
21
- right?: string;
22
- bordered?: boolean;
23
- sorter?: boolean | SorterFunc;
24
- filter?: boolean;
25
- };
26
- type SorterFunc = (a: any, b: any) => number;
27
- type Sorter = 'desc' | 'asc' | undefined;
28
- type TriggerType = 'click' | 'mouseover' | 'contextmenu' | 'doubleClick';
29
- type MenuItem = {
30
- key: Key;
31
- title?: string;
32
- label: ReactNode;
33
- };
34
- type RequiredTreeNodeKeys = 'key' | 'title' | 'children';
35
-
36
- type TreeFieldNames = {
37
- [key in RequiredTreeNodeKeys]: string;
38
- };
39
-
40
- type Condition = {
41
- attribute: string;
42
- condition?: (value: any) => boolean;
43
- description: string;
44
- };
45
-
46
- type TreeNodeType = {
47
- [key: string]: any;
48
- groupBy?: Condition[];
49
- selectable?: boolean;
50
- isLeaf?: boolean;
51
- };
52
-
53
- type onExpandHandler = (
54
- keys: Key[],
55
- info: {
56
- node: TreeNodeType;
57
- expanded: boolean;
58
- nativeEvent: React.MouseEvent;
59
- },
60
- ) => void;
61
-
62
- type onSelectHandler = (
63
- keys: Key[],
64
- info: {
65
- node: TreeNodeType;
66
- selected: boolean;
67
- nativeEvent: React.MouseEvent;
68
- },
69
- ) => void;
70
- type RowSelection = {
71
- selectedKeys?: Key[];
72
- onSelect: (
73
- keys: Key[],
74
- info: {
75
- type: 'row' | 'all';
76
- selected: boolean;
77
- nativeEvent: React.ChangeEvent;
78
- },
79
- ) => void;
80
- };
81
- }