@teamix/pro 1.3.4 → 1.3.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.
Files changed (82) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +58917 -51090
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/dist/pro.min.js.LICENSE.txt +9 -0
  6. package/es/form/docs/ActionResponse.d.ts +7 -0
  7. package/es/form/docs/ActionResponse.js +11 -0
  8. package/es/form/docs/ActionResponse.less +25 -0
  9. package/es/form/index.d.ts +1 -1
  10. package/es/index.d.ts +4 -2
  11. package/es/index.js +5 -5
  12. package/es/info/components/ProInfoItem/index.js +6 -2
  13. package/es/info/components/ProInfoItem/index.scss +3 -0
  14. package/es/info/components/baseInfo/index.js +2 -1
  15. package/es/info/components/baseInfo/index.scss +0 -3
  16. package/es/info/typing.d.ts +2 -0
  17. package/es/info/utils/index.d.ts +8 -0
  18. package/es/info/utils/index.js +28 -1
  19. package/es/sidebar/components/sidebar-container/index.js +114 -9
  20. package/es/sidebar/components/sidebar-container/index.scss +53 -5
  21. package/es/sidebar/components/tree/index.d.ts +2 -0
  22. package/es/sidebar/components/tree/index.js +222 -76
  23. package/es/sidebar/components/tree/index.scss +10 -0
  24. package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.d.ts +15 -0
  25. package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.js +62 -0
  26. package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.scss +7 -0
  27. package/es/sidebar/components/tree-node/componnets/IconAction/index.d.ts +12 -0
  28. package/es/sidebar/components/tree-node/componnets/IconAction/index.js +105 -0
  29. package/es/sidebar/components/tree-node/componnets/IconAction/index.scss +7 -0
  30. package/es/sidebar/components/tree-node/componnets/IconSwitch/index.d.ts +23 -0
  31. package/es/sidebar/components/tree-node/componnets/IconSwitch/index.js +73 -0
  32. package/es/sidebar/components/tree-node/componnets/IconSwitch/index.scss +7 -0
  33. package/es/sidebar/components/tree-node/index.d.ts +7 -0
  34. package/es/sidebar/components/tree-node/index.js +225 -0
  35. package/es/sidebar/components/tree-node/index.scss +58 -0
  36. package/es/sidebar/index.d.ts +2 -0
  37. package/es/sidebar/index.js +147 -12
  38. package/es/sidebar/index.scss +24 -1
  39. package/es/sidebar/typing.d.ts +83 -13
  40. package/es/sidebar/utils/action-ref.d.ts +3 -0
  41. package/es/sidebar/utils/action-ref.js +15 -0
  42. package/es/sidebar/utils/index.d.ts +71 -0
  43. package/es/sidebar/utils/index.js +228 -0
  44. package/lib/form/docs/ActionResponse.d.ts +7 -0
  45. package/lib/form/docs/ActionResponse.js +24 -0
  46. package/lib/form/docs/ActionResponse.less +25 -0
  47. package/lib/form/index.d.ts +1 -1
  48. package/lib/index.d.ts +4 -2
  49. package/lib/index.js +22 -2
  50. package/lib/info/components/ProInfoItem/index.js +6 -2
  51. package/lib/info/components/ProInfoItem/index.scss +3 -0
  52. package/lib/info/components/baseInfo/index.js +1 -0
  53. package/lib/info/components/baseInfo/index.scss +0 -3
  54. package/lib/info/typing.d.ts +2 -0
  55. package/lib/info/utils/index.d.ts +8 -0
  56. package/lib/info/utils/index.js +32 -1
  57. package/lib/sidebar/components/sidebar-container/index.js +120 -8
  58. package/lib/sidebar/components/sidebar-container/index.scss +53 -5
  59. package/lib/sidebar/components/tree/index.d.ts +2 -0
  60. package/lib/sidebar/components/tree/index.js +230 -76
  61. package/lib/sidebar/components/tree/index.scss +10 -0
  62. package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.d.ts +15 -0
  63. package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.js +80 -0
  64. package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.scss +7 -0
  65. package/lib/sidebar/components/tree-node/componnets/IconAction/index.d.ts +12 -0
  66. package/lib/sidebar/components/tree-node/componnets/IconAction/index.js +127 -0
  67. package/lib/sidebar/components/tree-node/componnets/IconAction/index.scss +7 -0
  68. package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.d.ts +23 -0
  69. package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.js +94 -0
  70. package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.scss +7 -0
  71. package/lib/sidebar/components/tree-node/index.d.ts +7 -0
  72. package/lib/sidebar/components/tree-node/index.js +252 -0
  73. package/lib/sidebar/components/tree-node/index.scss +58 -0
  74. package/lib/sidebar/index.d.ts +2 -0
  75. package/lib/sidebar/index.js +173 -10
  76. package/lib/sidebar/index.scss +24 -1
  77. package/lib/sidebar/typing.d.ts +83 -13
  78. package/lib/sidebar/utils/action-ref.d.ts +3 -0
  79. package/lib/sidebar/utils/action-ref.js +22 -0
  80. package/lib/sidebar/utils/index.d.ts +71 -0
  81. package/lib/sidebar/utils/index.js +247 -0
  82. package/package.json +1 -1
@@ -1,38 +1,66 @@
1
1
  /// <reference types="react" />
2
2
  import { MessageProps } from '@alifd/next/types/message';
3
3
  import { TreeProps } from '@alifd/next/types/tree';
4
- import { ProCardProps, ProFieldProps } from '..';
4
+ import { CommonRequestConfig, ProTagItem } from '@teamix/utils';
5
+ import { ProActionConfig, ProCardProps, ProFieldProps, ProFieldRenderProps, ProFieldType } from '..';
5
6
  /** ProSidebar 定义 */
6
7
  export declare type ProSidebarProps = {
7
8
  /** 数据源 */
8
9
  dataSource?: ProSidebarDataSource;
10
+ /** 点击的节点 */
11
+ selectedKeys?: TreeProps['selectedKeys'];
12
+ /** 选中的节点 */
13
+ checkedKeys?: TreeProps['checkedKeys'];
9
14
  /** 节点点击回调 */
10
15
  onSelect?: TreeProps['onSelect'];
16
+ /** 节点选中回调 */
17
+ onCheck?: TreeProps['onCheck'];
11
18
  /** 树配置 */
12
19
  treeProps?: TreeProps;
13
20
  /** 卡片配置 */
14
21
  cardProps?: ProCardProps;
15
- } & Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> & Omit<ProSidebarContainerProps, 'onSelect'>;
22
+ /** 显示数量 */
23
+ showExtraNumber?: boolean;
24
+ /** actionRef */
25
+ actionRef?: React.MutableRefObject<ProSidebarActionType | undefined>;
26
+ /** 渲染树节点之前的回调 dataSource 变动时调用 */
27
+ beforeRenderNode?: (item: ProSidebarDataSourceItem, level: number, dataSource: ProSidebarDataSource) => ProSidebarDataSourceItem;
28
+ /** 监听渲染树节点之前的事件 当节点状态改变、dataSource 变动时调用 */
29
+ onBeforeRenderNodeEvent?: (item: ProSidebarDataSourceItem, checkedKeys: TreeProps['checkedKeys'], selectedKeys: TreeProps['selectedKeys'], dataSource: ProSidebarDataSource) => ProSidebarDataSourceItem;
30
+ } & Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> & Omit<ProSidebarContainerProps, 'onSelect'> & ProSidebarRequestProps;
16
31
  /** 数据源定义 */
17
32
  export declare type ProSidebarDataSource = ProSidebarDataSourceItem[];
18
33
  export declare type ProSidebarDataSourceItem = {
19
34
  /** 展示值 */
20
- label?: React.ReactNode;
35
+ label?: string;
21
36
  /** 绑定值 */
22
37
  value?: any;
23
- /** icon */
24
- icon?: React.ReactNode;
25
38
  /** 标签 */
26
- tag?: React.ReactNode;
39
+ tag?: ProTagItem;
27
40
  /** 右侧操作、状态区 */
28
- extra?: React.ReactNode;
41
+ extra?: ProSidebarExtraProps;
29
42
  /** 子项 */
30
43
  children?: ProSidebarDataSourceItem[];
44
+ /** label 类型 对应 ProFieldType */
45
+ valueType?: ProFieldType;
46
+ /** 渲染 label 的 render 对应 ProFieldRenderProps */
47
+ render?: ProFieldRenderProps;
48
+ /** ProField 的其他配置项 */
49
+ fieldProps?: ProFieldProps;
31
50
  };
32
- /** tag 定义 */
33
- export declare type ProSidebarDataSourceTag = {
34
- /** 显示值 */
35
- value: string;
51
+ /** 单项 extra 配置项 */
52
+ export declare type ProSidebarExtraProps = React.ReactNode | (ProSidebarExtraPropsItem | React.ReactNode)[];
53
+ export declare type ProSidebarExtraPropsItem = {
54
+ /** 相应功能项 */
55
+ type: 'action' | 'iconSwitch' | 'iconAction' | 'custom';
56
+ /** action 相应配置 */
57
+ action: ProActionConfig;
58
+ /** 相应配置 */
59
+ props: any;
60
+ /** 是否 hover 显示 */
61
+ hover?: boolean;
62
+ /** 自定义渲染 仅在 custom 有效 */
63
+ trigger?: any;
36
64
  };
37
65
  /** sidebar 容器定义 */
38
66
  export declare type ProSidebarContainerProps = {
@@ -53,12 +81,54 @@ export declare type ProSidebarContainerProps = {
53
81
  customMessage?: React.ReactNode;
54
82
  /** 消息通知区域的其他参数 */
55
83
  messageProps?: MessageProps;
84
+ /** 滚动区域 仅在使用 ProPageContainer 时有效 */
85
+ scrollArea?: 'all' | 'tree';
86
+ /** 是否显示展开全部 */
87
+ showExpandAll?: boolean;
88
+ /** 是否显示展开层级 */
89
+ showExpandLevel?: boolean;
90
+ /** 展开全部变化回调 */
91
+ onExpandAllChange?: (state: boolean) => void;
92
+ /** 展开层级变化回调 */
93
+ onExpandLevelChange?: (state: number) => void;
94
+ /** 展开层级 层级 */
95
+ expandLevel?: number;
96
+ /** 列表 or tree */
97
+ isTree?: boolean;
56
98
  } & ProCardProps;
57
99
  /** ProSidebarTree 内容定义 */
58
100
  export declare type ProSidebarTreeProps = {
59
101
  dataSource?: ProSidebarDataSource;
60
102
  /** 搜索过滤关键词 */
61
103
  searchKey?: string;
62
- /** 节点点击回调 */
63
- onChange?: ProSidebarProps['onChange'];
104
+ /** 显示数量 */
105
+ showExtraNumber?: ProSidebarProps['showExtraNumber'];
106
+ /** actionRef */
107
+ actionRef: React.MutableRefObject<ProSidebarActionType | undefined>;
108
+ /** 渲染树节点之前的回调 */
109
+ onBeforeRenderNodeEvent?: ProSidebarProps['onBeforeRenderNodeEvent'];
110
+ /** 渲染树节点之前的回调 dataSource 变动时调用 */
111
+ beforeRenderNode?: ProSidebarProps['beforeRenderNode'];
112
+ /** 展开全部 */
113
+ expandAll?: boolean;
114
+ /** 展开节点层级 */
115
+ expandLevel?: number;
116
+ /** dataSource 变化的回调 */
117
+ onDataSourceChange?: (dataSource: ProSidebarDataSource) => void;
64
118
  } & TreeProps;
119
+ /** ProSidebarTreeNode 内容定义 */
120
+ export declare type ProSidebarTreeNodeProps = {
121
+ dataSource?: ProSidebarDataSource;
122
+ };
123
+ /** ProSidebar ActionRef 定义 */
124
+ export declare type ProSidebarActionType = {
125
+ /** 设置树节点 */
126
+ setTreeNode?: (treeNode: ProSidebarDataSourceItem) => void;
127
+ /** 刷新 */
128
+ refresh?: () => void;
129
+ };
130
+ /** ProSidebar 请求相关定义 */
131
+ export declare type ProSidebarRequestProps = {
132
+ /** 请求地址 */
133
+ url?: string;
134
+ } & Omit<CommonRequestConfig, 'url'>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { ProSidebarActionType } from '../typing';
3
+ export declare function useActionType<T>(ref: React.MutableRefObject<ProSidebarActionType | undefined>, action: ProSidebarActionType): void;
@@ -0,0 +1,15 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ export function useActionType(ref, action) {
8
+ var _ref$current;
9
+
10
+ var oldActions = (_ref$current = ref.current) !== null && _ref$current !== void 0 ? _ref$current : {}; // 合并自定义事件
11
+
12
+ var userAction = _objectSpread(_objectSpread({}, oldActions), action);
13
+
14
+ ref.current = userAction;
15
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * 深度遍历节点
3
+ * @param data 数据
4
+ * @param func 处理方法
5
+ * @param aliasMap 标识
6
+ * @param level 深度
7
+ */
8
+ export declare function loop<T>(data: T[], func: any, aliasMap?: {
9
+ children: string;
10
+ }, level?: number): void;
11
+ /**
12
+ * 深度遍历并查找节点(只保留二级路径)
13
+ * @param data 数据
14
+ * @param predicate 条件
15
+ * @param aliasMap 标识
16
+ * @returns
17
+ */
18
+ export declare function findNodeWithoutPath<T>(data: any[], predicate: (node: T) => boolean, aliasMap?: {
19
+ children: string;
20
+ }): any;
21
+ /**
22
+ * 深度遍历并查找节点(保留全部路径)
23
+ * @param data 数据
24
+ * @param predicate 条件
25
+ * @param aliasMap 标识
26
+ * @returns
27
+ */
28
+ export declare function findNodeWithPath<T>(data: T[], predicate: (node: T) => boolean, aliasMap?: {
29
+ children: string;
30
+ }): T[];
31
+ /**
32
+ * 获取树所有节点 key
33
+ * @param data 数据
34
+ * @param aliasMap 标识
35
+ * @returns
36
+ */
37
+ export declare function getAllNodeKey<T>(data: T[], aliasMap?: {
38
+ key: string;
39
+ children: string;
40
+ }): any[];
41
+ /**
42
+ * 获取当前节点的层级
43
+ * @param data 数据
44
+ * @param value 需要获取层级的 key
45
+ * @param aliasMap 标识
46
+ * @returns
47
+ */
48
+ export declare function getTreeNodeLevel(data: any[], value: any, aliasMap?: {
49
+ key: string;
50
+ children: string;
51
+ }): number;
52
+ /**
53
+ * 获取树的层级
54
+ * @param data 数据
55
+ * @param aliasMap 标识
56
+ * @returns
57
+ */
58
+ export declare function getTreeLevel(data: any[], aliasMap?: {
59
+ children: string;
60
+ }): number;
61
+ /**
62
+ * 获取树层级对应的所有 key
63
+ * @param data
64
+ * @param level
65
+ * @param aliasMap
66
+ * @returns
67
+ */
68
+ export declare function getTreeLevelKey(data: any[], level: number, aliasMap?: {
69
+ key: string;
70
+ children: string;
71
+ }): any[];
@@ -0,0 +1,228 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12
+
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+
15
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
16
+
17
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
+
19
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
20
+
21
+ /**
22
+ * 深度遍历节点
23
+ * @param data 数据
24
+ * @param func 处理方法
25
+ * @param aliasMap 标识
26
+ * @param level 深度
27
+ */
28
+ export function loop(data, func, aliasMap) {
29
+ var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
30
+
31
+ var _ref = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
32
+ _ref$children = _ref.children,
33
+ children = _ref$children === void 0 ? 'children' : _ref$children;
34
+
35
+ if (data && data.length > 0) {
36
+ data.forEach(function (item) {
37
+ func(item, level, data);
38
+
39
+ if (Array.isArray(item[children])) {
40
+ loop(item[children], func, {
41
+ children: children
42
+ }, level + 1);
43
+ }
44
+ });
45
+ }
46
+ }
47
+ /**
48
+ * 深度遍历并查找节点(只保留二级路径)
49
+ * @param data 数据
50
+ * @param predicate 条件
51
+ * @param aliasMap 标识
52
+ * @returns
53
+ */
54
+
55
+ export function findNodeWithoutPath(data, predicate, aliasMap) {
56
+ var _ref2 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
57
+ _ref2$children = _ref2.children,
58
+ children = _ref2$children === void 0 ? 'children' : _ref2$children; // 如果已经没有节点了,结束递归
59
+
60
+
61
+ if (!(data && data.length)) {
62
+ return [];
63
+ }
64
+
65
+ var newChildren = [];
66
+
67
+ var _iterator = _createForOfIteratorHelper(data),
68
+ _step;
69
+
70
+ try {
71
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
72
+ var node = _step.value;
73
+
74
+ if (predicate(node)) {
75
+ var _node$children;
76
+
77
+ // 如果节点符合条件,直接加入新的节点集
78
+ newChildren.push(node);
79
+ node.children = findNodeWithoutPath((_node$children = node[children]) !== null && _node$children !== void 0 ? _node$children : [], predicate);
80
+ } else {
81
+ var _node$children2;
82
+
83
+ // 如果当前节点不符合条件,递归过滤子节点,
84
+ // 把符合条件的子节点提升上来,并入新节点集
85
+ newChildren.push.apply(newChildren, _toConsumableArray(findNodeWithoutPath((_node$children2 = node[children]) !== null && _node$children2 !== void 0 ? _node$children2 : [], predicate)));
86
+ }
87
+ }
88
+ } catch (err) {
89
+ _iterator.e(err);
90
+ } finally {
91
+ _iterator.f();
92
+ }
93
+
94
+ return newChildren;
95
+ }
96
+ /**
97
+ * 深度遍历并查找节点(保留全部路径)
98
+ * @param data 数据
99
+ * @param predicate 条件
100
+ * @param aliasMap 标识
101
+ * @returns
102
+ */
103
+
104
+ export function findNodeWithPath(data, predicate, aliasMap) {
105
+ var _ref3 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
106
+ _ref3$children = _ref3.children,
107
+ children = _ref3$children === void 0 ? 'children' : _ref3$children;
108
+
109
+ var getNodes = function getNodes(result, node) {
110
+ if (predicate(node)) {
111
+ result.push(node);
112
+ return result;
113
+ }
114
+
115
+ if (Array.isArray(node[children])) {
116
+ var nodes = node[children].reduce(getNodes, []);
117
+
118
+ if (nodes.length) {
119
+ result.push(_objectSpread(_objectSpread({}, node), {}, {
120
+ nodes: nodes
121
+ }));
122
+ }
123
+ }
124
+
125
+ return result;
126
+ };
127
+
128
+ return data.reduce(getNodes, []);
129
+ }
130
+ /**
131
+ * 获取树所有节点 key
132
+ * @param data 数据
133
+ * @param aliasMap 标识
134
+ * @returns
135
+ */
136
+
137
+ export function getAllNodeKey(data, aliasMap) {
138
+ var _ref4 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
139
+ _ref4$key = _ref4.key,
140
+ key = _ref4$key === void 0 ? 'value' : _ref4$key,
141
+ _ref4$children = _ref4.children,
142
+ children = _ref4$children === void 0 ? 'children' : _ref4$children;
143
+
144
+ var keyList = [];
145
+ loop(data, function (node) {
146
+ keyList.push(node[key]);
147
+ }, {
148
+ children: children
149
+ });
150
+ return keyList;
151
+ }
152
+ /**
153
+ * 获取当前节点的层级
154
+ * @param data 数据
155
+ * @param value 需要获取层级的 key
156
+ * @param aliasMap 标识
157
+ * @returns
158
+ */
159
+
160
+ export function getTreeNodeLevel(data, value, aliasMap) {
161
+ var _ref5 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
162
+ _ref5$key = _ref5.key,
163
+ key = _ref5$key === void 0 ? 'value' : _ref5$key,
164
+ _ref5$children = _ref5.children,
165
+ children = _ref5$children === void 0 ? 'children' : _ref5$children;
166
+
167
+ var result = 0;
168
+ loop(data, function (item, level) {
169
+ if (item[key] === value) {
170
+ result = level !== null && level !== void 0 ? level : 0;
171
+ }
172
+ }, {
173
+ children: children
174
+ });
175
+ return result;
176
+ }
177
+ /**
178
+ * 获取树的层级
179
+ * @param data 数据
180
+ * @param aliasMap 标识
181
+ * @returns
182
+ */
183
+
184
+ export function getTreeLevel(data, aliasMap) {
185
+ var _ref6 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
186
+ _ref6$children = _ref6.children,
187
+ children = _ref6$children === void 0 ? 'children' : _ref6$children;
188
+
189
+ var result = 1;
190
+ loop(data, function (item, level) {
191
+ if (result < level) {
192
+ result = level;
193
+ }
194
+
195
+ if ('children' in item) {
196
+ result += 1;
197
+ }
198
+ }, {
199
+ children: children
200
+ });
201
+ return result;
202
+ }
203
+ /**
204
+ * 获取树层级对应的所有 key
205
+ * @param data
206
+ * @param level
207
+ * @param aliasMap
208
+ * @returns
209
+ */
210
+
211
+ export function getTreeLevelKey(data, level, aliasMap) {
212
+ var _ref7 = aliasMap !== null && aliasMap !== void 0 ? aliasMap : {},
213
+ _ref7$key = _ref7.key,
214
+ key = _ref7$key === void 0 ? 'value' : _ref7$key,
215
+ _ref7$children = _ref7.children,
216
+ children = _ref7$children === void 0 ? 'children' : _ref7$children;
217
+
218
+ var result = []; // TODO 此处可做性能优化
219
+
220
+ loop(data, function (item, currentLevel) {
221
+ if (currentLevel + 1 <= level) {
222
+ result.push(item === null || item === void 0 ? void 0 : item[key]);
223
+ }
224
+ }, {
225
+ children: children
226
+ });
227
+ return result;
228
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './ActionResponse.less';
3
+ declare type ActionResponseProps = {
4
+ response?: React.ReactNode;
5
+ };
6
+ export declare const ActionResponse: React.FC<ActionResponseProps>;
7
+ export {};
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ActionResponse = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ require("./ActionResponse.less");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ var ActionResponse = function ActionResponse(props) {
15
+ return /*#__PURE__*/_react.default.createElement("div", {
16
+ className: "as-wrapper"
17
+ }, /*#__PURE__*/_react.default.createElement("div", {
18
+ className: "as-actions"
19
+ }, props.children), props.response && /*#__PURE__*/_react.default.createElement("div", {
20
+ className: "as-response"
21
+ }, "Response\uFF1A", props.response));
22
+ };
23
+
24
+ exports.ActionResponse = ActionResponse;
@@ -0,0 +1,25 @@
1
+ .as-wrapper {
2
+ .as-actions {
3
+ & button {
4
+ margin-right: 5px;
5
+ background-color: #fff;
6
+ border: 2px solid #d4bbbb;
7
+ border-radius: 6px;
8
+ outline: none;
9
+ padding: 8px 20px;
10
+ cursor: pointer;
11
+ transition: all 0.15s ease-in-out;
12
+ &:hover {
13
+ border: 2px solid #9db8f3;
14
+ }
15
+ }
16
+ }
17
+
18
+ .as-response {
19
+ border: 2px dashed #f0bdbd;
20
+ font-size: 14px;
21
+ border-radius: 6px;
22
+ padding: 8px 20px;
23
+ margin-top: 10px;
24
+ }
25
+ }
@@ -91,7 +91,7 @@ declare const formilyReact: {
91
91
  }>>;
92
92
  connect<T_2 extends originalFormilyReact.JSXComponent>(target: T_2, ...args: originalFormilyReact.IComponentMapper<T_2>[]): import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<Partial<import("react").ComponentProps<T_2>>> & import("react").RefAttributes<unknown>>;
93
93
  observer: typeof originalFormilyReact.observer;
94
- Observer: import("react").MemoExoticComponent<import("react").FunctionComponent<import("_@formily_reactive-react@2.0.11@@formily/reactive-react").IObserverProps>>;
94
+ Observer: import("react").MemoExoticComponent<import("react").FunctionComponent<import("@formily/reactive-react").IObserverProps>>;
95
95
  useForm: <T_3 extends object = any>() => import("@formily/core").Form<T_3>;
96
96
  useField: <T_4 = import("@formily/core").GeneralField>() => T_4;
97
97
  useParentForm: () => import("@formily/core").Form<any> | import("@formily/core").ObjectField<any, any>;
package/lib/index.d.ts CHANGED
@@ -9,6 +9,7 @@ import ProPageHeader from './page-header';
9
9
  import ProTable from './table';
10
10
  import ProSkeleton from './skeleton';
11
11
  import utils from './utils';
12
+ import ProSidebar from './sidebar';
12
13
  import { ProTimeline } from './timeline';
13
14
  import * as nocode from './nocode';
14
15
  import * as templates from './templates';
@@ -22,7 +23,8 @@ export * from './page-container';
22
23
  export * from './page-header';
23
24
  export * from './skeleton';
24
25
  export * from './table';
26
+ export * from './sidebar';
25
27
  export * from './utils';
26
28
  export * from './timeline';
27
- declare const version = "1.3.4";
28
- export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProTimeline, hooks, nocode, templates, utils, };
29
+ declare const version = "1.3.5";
30
+ export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProSidebar, ProTimeline, hooks, nocode, templates, utils, };
package/lib/index.js CHANGED
@@ -18,6 +18,7 @@ var _exportNames = {
18
18
  ProTable: true,
19
19
  ProSkeleton: true,
20
20
  utils: true,
21
+ ProSidebar: true,
21
22
  ProTimeline: true,
22
23
  nocode: true,
23
24
  templates: true
@@ -64,6 +65,12 @@ Object.defineProperty(exports, "ProPageHeader", {
64
65
  return _pageHeader.default;
65
66
  }
66
67
  });
68
+ Object.defineProperty(exports, "ProSidebar", {
69
+ enumerable: true,
70
+ get: function get() {
71
+ return _sidebar.default;
72
+ }
73
+ });
67
74
  Object.defineProperty(exports, "ProSkeleton", {
68
75
  enumerable: true,
69
76
  get: function get() {
@@ -239,6 +246,20 @@ Object.keys(_utils).forEach(function (key) {
239
246
  });
240
247
  });
241
248
 
249
+ var _sidebar = _interopRequireWildcard(require("./sidebar"));
250
+
251
+ Object.keys(_sidebar).forEach(function (key) {
252
+ if (key === "default" || key === "__esModule") return;
253
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
254
+ if (key in exports && exports[key] === _sidebar[key]) return;
255
+ Object.defineProperty(exports, key, {
256
+ enumerable: true,
257
+ get: function get() {
258
+ return _sidebar[key];
259
+ }
260
+ });
261
+ });
262
+
242
263
  var _timeline = require("./timeline");
243
264
 
244
265
  Object.keys(_timeline).forEach(function (key) {
@@ -281,9 +302,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
281
302
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
282
303
 
283
304
  // import ProLayout from './layout';
284
- // import ProSidebar from './sidebar'
285
305
  // 设置图标源
286
306
  _icon.default.setConfig(_utils.default.getTeamixIconConfig());
287
307
 
288
- var version = '1.3.4';
308
+ var version = '1.3.5';
289
309
  exports.version = version;
@@ -28,13 +28,17 @@ var ProInfoItem = function ProInfoItem(prop) {
28
28
  headerInfoLayout = prop.headerInfoLayout,
29
29
  loading = prop.loading,
30
30
  tooltip = prop.tooltip,
31
- tooltipIcon = prop.tooltipIcon;
31
+ tooltipIcon = prop.tooltipIcon,
32
+ _isLastRow = prop._isLastRow;
32
33
 
33
34
  if (baseInfoLayout) {
34
35
  var labelCol = baseInfoLayout.labelCol,
35
36
  wrapperCol = baseInfoLayout.wrapperCol;
36
37
  return /*#__PURE__*/_react.default.createElement("div", {
37
- className: cls()
38
+ className: cls({
39
+ '': true,
40
+ isLastRow: _isLastRow
41
+ })
38
42
  }, /*#__PURE__*/_react.default.createElement(Row, {
39
43
  gutter: 10,
40
44
  className: cls('base-row')
@@ -17,6 +17,9 @@ $item-padding-bottom: 8px;
17
17
  .teamix-pro-field-info-form-item {
18
18
  width: 100%;
19
19
  padding-bottom: $item-padding-bottom;
20
+ &-isLastRow{
21
+ padding-bottom: unset;
22
+ }
20
23
 
21
24
  &-header-row {
22
25
  display: flex;
@@ -84,6 +84,7 @@ var ProBaseInfo = function ProBaseInfo(props) {
84
84
  }, /*#__PURE__*/_react.default.createElement(_ProInfoItem.default, {
85
85
  label: (_item$title = item === null || item === void 0 ? void 0 : item.title) !== null && _item$title !== void 0 ? _item$title : '',
86
86
  loading: loading,
87
+ _isLastRow: !!(0, _utils2.isLastRow)(columns.length, layoutSpan, index),
87
88
  value: /*#__PURE__*/_react.default.createElement(_InfoValueItem.default, {
88
89
  type: (_item$valueType = item === null || item === void 0 ? void 0 : item.valueType) !== null && _item$valueType !== void 0 ? _item$valueType : 'text',
89
90
  value: (0, _utils2.getDataIndexValue)(item.dataIndex, (_ref = dataSource !== null && dataSource !== void 0 ? dataSource : result) !== null && _ref !== void 0 ? _ref : {}),
@@ -1,6 +1,3 @@
1
- $item-padding-bottom: -8px;
2
- // /** 消除 baseInfo 被其他组件包裹后没有居中的问题*/
3
1
  .teamix-pro-info {
4
2
  width: 100%;
5
- margin-bottom: $item-padding-bottom;
6
3
  }
@@ -113,6 +113,8 @@ export declare type IProProInfoItem = {
113
113
  headerInfoLayout?: ProHeaderInfoLayoutProps;
114
114
  /** loading 状态 */
115
115
  loading?: boolean;
116
+ /** isLastRow 是否是最后一行的元素 */
117
+ _isLastRow?: boolean;
116
118
  } & Pick<ProInfoColumnsProps, 'tooltip' | 'tooltipIcon'>;
117
119
  /** header info 定义 */
118
120
  export declare type IProHeaderInfo = {
@@ -10,3 +10,11 @@ export declare const ProInfoGroupContext: React.Context<ProInfoGroupContextProps
10
10
  * @returns
11
11
  */
12
12
  export declare function getDataIndexValue(dataIndex: ProInfoColumnsProps['dataIndex'], dataSource: object): any;
13
+ /**
14
+ * 是否是最后一样的元素
15
+ * @param columnsLength
16
+ * @param layoutSpan
17
+ * @params itemIndex
18
+ * @returns
19
+ */
20
+ export declare const isLastRow: (columnsLength: number, layoutSpan: number, itemIndex: number) => boolean | undefined;