@kdcloudjs/kdesign 1.7.45 → 1.7.47

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 (91) hide show
  1. package/CHANGELOG.md +292 -0
  2. package/dist/kdesign-complete.less +247 -0
  3. package/dist/kdesign.css +368 -1
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +865 -237
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  8. package/dist/kdesign.min.js +10 -10
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.js +1 -1
  11. package/es/breadcrumb/breadcrumb.d.ts +7 -0
  12. package/es/breadcrumb/breadcrumb.js +204 -0
  13. package/es/breadcrumb/breadcrumbItem.d.ts +4 -0
  14. package/es/breadcrumb/breadcrumbItem.js +53 -0
  15. package/es/breadcrumb/index.d.ts +3 -0
  16. package/es/breadcrumb/index.js +3 -0
  17. package/es/breadcrumb/interface.d.ts +33 -0
  18. package/es/breadcrumb/interface.js +2 -0
  19. package/es/breadcrumb/style/css.js +2 -0
  20. package/es/breadcrumb/style/index.css +174 -0
  21. package/es/breadcrumb/style/index.d.ts +2 -0
  22. package/es/breadcrumb/style/index.js +2 -0
  23. package/es/breadcrumb/style/index.less +71 -0
  24. package/es/breadcrumb/style/mixin.less +7 -0
  25. package/es/breadcrumb/style/token.less +27 -0
  26. package/es/city-picker/city-picker.js +3 -1
  27. package/es/config-provider/compDefaultProps.d.ts +11 -0
  28. package/es/config-provider/compDefaultProps.js +12 -1
  29. package/es/divider/divider.d.ts +22 -0
  30. package/es/divider/divider.js +66 -0
  31. package/es/divider/index.d.ts +3 -0
  32. package/es/divider/index.js +3 -0
  33. package/es/divider/style/css.js +2 -0
  34. package/es/divider/style/index.css +191 -0
  35. package/es/divider/style/index.d.ts +2 -0
  36. package/es/divider/style/index.js +2 -0
  37. package/es/divider/style/index.less +105 -0
  38. package/es/divider/style/mixin.less +19 -0
  39. package/es/divider/style/token.less +12 -0
  40. package/es/index.d.ts +2 -0
  41. package/es/index.js +3 -1
  42. package/es/select/select.js +81 -15
  43. package/es/tree/tree.d.ts +1 -0
  44. package/es/tree/tree.js +5 -4
  45. package/es/tree/treeHooks.d.ts +1 -1
  46. package/es/tree/treeHooks.js +3 -3
  47. package/es/tree/utils/treeUtils.d.ts +3 -3
  48. package/es/tree/utils/treeUtils.js +12 -4
  49. package/lib/_utils/usePopper.js +1 -1
  50. package/lib/breadcrumb/breadcrumb.d.ts +7 -0
  51. package/lib/breadcrumb/breadcrumb.js +217 -0
  52. package/lib/breadcrumb/breadcrumbItem.d.ts +4 -0
  53. package/lib/breadcrumb/breadcrumbItem.js +66 -0
  54. package/lib/breadcrumb/index.d.ts +3 -0
  55. package/lib/breadcrumb/index.js +27 -0
  56. package/lib/breadcrumb/interface.d.ts +33 -0
  57. package/lib/breadcrumb/interface.js +9 -0
  58. package/lib/breadcrumb/style/css.js +4 -0
  59. package/lib/breadcrumb/style/index.css +174 -0
  60. package/lib/breadcrumb/style/index.d.ts +2 -0
  61. package/lib/breadcrumb/style/index.js +4 -0
  62. package/lib/breadcrumb/style/index.less +71 -0
  63. package/lib/breadcrumb/style/mixin.less +7 -0
  64. package/lib/breadcrumb/style/token.less +27 -0
  65. package/lib/checkbox/group.js +0 -3
  66. package/lib/city-picker/city-picker.js +3 -1
  67. package/lib/config-provider/compDefaultProps.d.ts +11 -0
  68. package/lib/config-provider/compDefaultProps.js +12 -1
  69. package/lib/date-picker/utils/date-fns.js +1 -5
  70. package/lib/divider/divider.d.ts +22 -0
  71. package/lib/divider/divider.js +82 -0
  72. package/lib/divider/index.d.ts +3 -0
  73. package/lib/divider/index.js +27 -0
  74. package/lib/divider/style/css.js +4 -0
  75. package/lib/divider/style/index.css +191 -0
  76. package/lib/divider/style/index.d.ts +2 -0
  77. package/lib/divider/style/index.js +4 -0
  78. package/lib/divider/style/index.less +105 -0
  79. package/lib/divider/style/mixin.less +19 -0
  80. package/lib/divider/style/token.less +12 -0
  81. package/lib/index.d.ts +2 -0
  82. package/lib/index.js +14 -0
  83. package/lib/select/select.js +81 -15
  84. package/lib/style/components.less +2 -0
  85. package/lib/tree/tree.d.ts +1 -0
  86. package/lib/tree/tree.js +5 -4
  87. package/lib/tree/treeHooks.d.ts +1 -1
  88. package/lib/tree/treeHooks.js +3 -3
  89. package/lib/tree/utils/treeUtils.d.ts +3 -3
  90. package/lib/tree/utils/treeUtils.js +12 -4
  91. package/package.json +1 -1
package/es/tree/tree.d.ts CHANGED
@@ -43,6 +43,7 @@ export interface TreeProps {
43
43
  showIcon?: boolean;
44
44
  style?: React.CSSProperties;
45
45
  className?: string;
46
+ expandOnFilterNode?: boolean;
46
47
  }
47
48
  export declare type TreeNodeData = {
48
49
  checkable?: boolean;
package/es/tree/tree.js CHANGED
@@ -82,7 +82,8 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
82
82
  loadData = TreeProps.loadData,
83
83
  notFoundContent = TreeProps.notFoundContent,
84
84
  showLine = TreeProps.showLine,
85
- others = __rest(TreeProps, ["prefixCls", "treeData", "virtual", "showIcon", "switcherIcon", "icon", "checkable", "checkStrictly", "disabled", "draggable", "scrollToKey", "expandedKeys", "checkedKeys", "defaultExpandRoot", "defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys", "defaultCheckedKeys", "defaultSelectedKeys", "height", "onCheck", "onExpand", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect", "selectedKeys", "setTreeNodeStyle", "setTreeNodeClassName", "estimatedItemSize", "style", "className", "filterTreeNode", "filterValue", "expandOnClickNode", "onlyExpandOnClickIcon", "loadData", "notFoundContent", "showLine"]);
85
+ expandOnFilterNode = TreeProps.expandOnFilterNode,
86
+ others = __rest(TreeProps, ["prefixCls", "treeData", "virtual", "showIcon", "switcherIcon", "icon", "checkable", "checkStrictly", "disabled", "draggable", "scrollToKey", "expandedKeys", "checkedKeys", "defaultExpandRoot", "defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys", "defaultCheckedKeys", "defaultSelectedKeys", "height", "onCheck", "onExpand", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect", "selectedKeys", "setTreeNodeStyle", "setTreeNodeClassName", "estimatedItemSize", "style", "className", "filterTreeNode", "filterValue", "expandOnClickNode", "onlyExpandOnClickIcon", "loadData", "notFoundContent", "showLine", "expandOnFilterNode"]);
86
87
  var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
87
88
  var treeNodeClassName = classNames(className, (_classNames = {}, _defineProperty(_classNames, "".concat(treePrefixCls), true), _defineProperty(_classNames, "".concat(treePrefixCls, "-show-line"), showLine), _classNames));
88
89
  var treeRootClassName = "".concat(treePrefixCls, "-root");
@@ -142,7 +143,7 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
142
143
  setSearchStatus('NONE');
143
144
  }
144
145
  }, [filterValue]);
145
- var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue),
146
+ var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue, expandOnFilterNode),
146
147
  _useExpand2 = _slicedToArray(_useExpand, 2),
147
148
  expandedKeys = _useExpand2[0],
148
149
  setExpandedKeys = _useExpand2[1];
@@ -158,8 +159,8 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
158
159
  setCheckedKeys = _useChecked2[2],
159
160
  setHalfCheckedKeys = _useChecked2[3];
160
161
  var filterData = React.useMemo(function () {
161
- return getFilterData(spreadAttrData, filterTreeNode, isSearching, posData, keysData);
162
- }, [spreadAttrData, isSearching, posData, keysData, filterValue]);
162
+ return getFilterData(spreadAttrData, filterTreeNode, isSearching, posData, keysData, expandOnFilterNode);
163
+ }, [spreadAttrData, isSearching, posData, keysData, filterValue, expandOnFilterNode]);
163
164
  useEffect(function () {
164
165
  var _a, _b;
165
166
  if (typeof scrollKey === 'undefined') {
@@ -4,6 +4,6 @@ export declare const useViewportHeight: (height: number, listRef: React.RefObjec
4
4
  export declare const useVisibleDataMemo: (virtual: boolean, filterData: TreeNodeData[], viewportHeight: number, estimatedItemSize: number, start: number) => TreeNodeData[][];
5
5
  export declare const usePlantomHeightEffect: (plantomRef: React.RefObject<HTMLElement>, filterData: TreeNodeData[], estimatedItemSize: number) => void;
6
6
  export declare const useChecked: (checkStrictly: boolean, checkedKeysProps: string[], defaultCheckedKeys: string[], _flattenAllData: any[], _maxLevel: number, checkable: boolean, keysData: KeysDataType) => readonly [string[], string[], React.Dispatch<React.SetStateAction<string[]>>, React.Dispatch<React.SetStateAction<string[]>>];
7
- export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchStatus: SearchStatus, filterValue: string) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
7
+ export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchStatus: SearchStatus, filterValue: string, expandOnFilterNode: boolean) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
8
8
  export declare const useScrollToKey: (scrollKey: string, index: number, estimatedItemSize: number, scrollRef: any, viewportHeight: number, treeNodePrefixCls: string) => void;
9
9
  export declare const useSelect: (selectedKeysProps: string[], defaultSelectedKeys: string[]) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
@@ -59,15 +59,15 @@ export var useChecked = function useChecked(checkStrictly, checkedKeysProps, def
59
59
  }, [nextHalfCheckedKeys]);
60
60
  return [checkedKeys, halfCheckedKeys, setCheckedKeys, setHalfCheckedKeys];
61
61
  };
62
- export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue) {
62
+ export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus, filterValue, expandOnFilterNode) {
63
63
  var expandScrollkeys = [];
64
64
  if (scrollKey) {
65
65
  var pos = getPos(flattenAllData, scrollKey);
66
66
  expandScrollkeys = getAllParentKeys(flattenAllData, pos);
67
67
  }
68
68
  var initialExpandedKeys = React.useMemo(function () {
69
- return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, isInit, searchStatus);
70
- }, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, isInit, searchStatus, filterValue]);
69
+ return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, isInit, searchStatus, expandOnFilterNode);
70
+ }, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, isInit, searchStatus, filterValue, expandOnFilterNode]);
71
71
  var _React$useState7 = React.useState(initialExpandedKeys),
72
72
  _React$useState8 = _slicedToArray(_React$useState7, 2),
73
73
  expandedKeys = _React$useState8[0],
@@ -17,8 +17,8 @@ export declare const getChecked: (checkedKeys: string[], key: string) => boolean
17
17
  export declare const getSelected: (selectedKeys: string[], key: string) => boolean;
18
18
  export declare const getHalfChecked: (halfCheckedKeys: string[], key: string) => boolean;
19
19
  export declare function findfilterChildrenKeys(node: any, allFilterKeys: Set<any>): Set<string>;
20
- export declare const getAllFilterKeys: (data: any[], filterTreeNode: FunctionConstructor, keysData: KeysDataType) => any;
21
- export declare const getFilterData: (data: any[], filterTreeNode: FunctionConstructor, isSearching: boolean, posData?: {}, keysData?: {}) => any[];
20
+ export declare const getAllFilterKeys: (data: any[], filterTreeNode: FunctionConstructor, keysData: KeysDataType, expandOnFilterNode: boolean) => any;
21
+ export declare const getFilterData: (data: any[], filterTreeNode: FunctionConstructor, isSearching: boolean, posData: {} | undefined, keysData: {} | undefined, expandOnFilterNode: boolean) => any[];
22
22
  export declare const getMaxLevel: (data: any[]) => number;
23
23
  /**
24
24
  *计算node的属性后返回新的 treedata
@@ -60,6 +60,6 @@ export declare const getDataCheckededStateStrictly: (checkedKeys: string[]) => {
60
60
  };
61
61
  export declare const delKey: (prevKeys: string[], delKeys: string[]) => never[] & string[];
62
62
  export declare const getAllNodeKeys: (data: any[]) => string[];
63
- export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, isInit: boolean, searchStatus: SearchStatus) => string[];
63
+ export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, isInit: boolean, searchStatus: SearchStatus, expandOnFilterNode: boolean) => string[];
64
64
  export declare const getExpandedKeys: (expandedKeys: string[], expandScrollkeys?: string[]) => string[];
65
65
  export declare const calcDropPosition: (event: React.MouseEvent, dropNode: HTMLElement) => 0 | 1 | -1;
@@ -118,7 +118,7 @@ export function findfilterChildrenKeys(node, allFilterKeys) {
118
118
  }
119
119
  return nodes;
120
120
  }
121
- export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData) {
121
+ export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, keysData, expandOnFilterNode) {
122
122
  var allFilterKeys = new _Set();
123
123
  var filterExpandKeys = new _Set();
124
124
  var filterKeys = _filterInstanceProperty(data).call(data, function (item) {
@@ -128,10 +128,15 @@ export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, ke
128
128
  findfilterChildrenKeys(item, allFilterKeys);
129
129
  });
130
130
  filterKeys.forEach(function (item) {
131
+ var firstIteration = true;
131
132
  var node = _extends({}, item);
132
133
  while (node) {
133
134
  allFilterKeys.add(node.key);
134
- filterExpandKeys.add(node.key);
135
+ // expandOnFilterNode为true时,不将filterKeys中的节点添加到filterExpandKeys
136
+ if (!expandOnFilterNode || !firstIteration) {
137
+ filterExpandKeys.add(node.key);
138
+ }
139
+ firstIteration = false;
135
140
  node = (keysData === null || keysData === void 0 ? void 0 : keysData[node === null || node === void 0 ? void 0 : node.parentKey]) || null;
136
141
  }
137
142
  });
@@ -143,10 +148,11 @@ export var getAllFilterKeys = function getAllFilterKeys(data, filterTreeNode, ke
143
148
  export var getFilterData = function getFilterData(data, filterTreeNode, isSearching) {
144
149
  var posData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
145
150
  var keysData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
151
+ var expandOnFilterNode = arguments.length > 5 ? arguments[5] : undefined;
146
152
  var filterData = data;
147
153
  var allFilterKeys = null;
148
154
  if (isSearching) {
149
- allFilterKeys = getAllFilterKeys(filterData, filterTreeNode, keysData).allFilterKeys;
155
+ allFilterKeys = getAllFilterKeys(filterData, filterTreeNode, keysData, expandOnFilterNode).allFilterKeys;
150
156
  filterData = _filterInstanceProperty(filterData).call(filterData, function (item) {
151
157
  return _includesInstanceProperty(allFilterKeys).call(allFilterKeys, item.key);
152
158
  });
@@ -464,6 +470,7 @@ export function getAllCheckedKeys(key, checked, checkedKeys, keysNodeProps, half
464
470
  halfCheckedKeysSet.delete(key);
465
471
  childKeys.forEach(function (v) {
466
472
  allKeys.add(v);
473
+ halfCheckedKeysSet.delete(v);
467
474
  });
468
475
  } else {
469
476
  halfCheckedKeysSet.delete(key);
@@ -585,6 +592,7 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
585
592
  var keysData = arguments.length > 9 ? arguments[9] : undefined;
586
593
  var isInit = arguments.length > 10 ? arguments[10] : undefined;
587
594
  var searchStatus = arguments.length > 11 ? arguments[11] : undefined;
595
+ var expandOnFilterNode = arguments.length > 12 ? arguments[12] : undefined;
588
596
  var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : _concatInstanceProperty(expandedKeys).call(expandedKeys, expandScrollkeys)) || (defaultExpandedKeys === null || defaultExpandedKeys === void 0 ? void 0 : _concatInstanceProperty(defaultExpandedKeys).call(defaultExpandedKeys, expandScrollkeys)) || [];
589
597
  if (isInit) {
590
598
  if (defaultExpandAll) {
@@ -606,7 +614,7 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
606
614
  }
607
615
  }
608
616
  if (isSearching && searchStatus === 'SEARCH_START') {
609
- keys = _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys);
617
+ keys = _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData, expandOnFilterNode).filterExpandKeys);
610
618
  }
611
619
  return keys;
612
620
  };
@@ -94,7 +94,7 @@ var getBorderWidth = function getBorderWidth(el) {
94
94
  var _context, _context2;
95
95
  var parentBorder = getBorderWidth(el.offsetParent);
96
96
  border.top += parentBorder.top + parseInt((0, _slice.default)(_context = getComputedStyle(el.offsetParent, null).borderTopWidth).call(_context, 0, -2));
97
- border.left += parentBorder.left + parseInt((0, _slice.default)(_context2 = getComputedStyle(el.offsetParent, null).borderTopWidth).call(_context2, 0, -2));
97
+ border.left += parentBorder.left + parseInt((0, _slice.default)(_context2 = getComputedStyle(el.offsetParent, null).borderLeftWidth).call(_context2, 0, -2));
98
98
  }
99
99
  return border;
100
100
  };
@@ -0,0 +1,7 @@
1
+ import { FunctionComponentElement } from 'react';
2
+ import { IBreadcrumbProps } from './interface';
3
+ declare const Breadcrumb: {
4
+ (props: IBreadcrumbProps): FunctionComponentElement<IBreadcrumbProps>;
5
+ displayName: string;
6
+ };
7
+ export default Breadcrumb;
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
14
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
15
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
16
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
17
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
18
+ var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
19
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
20
+ var _react = _interopRequireWildcard(require("react"));
21
+ var _classnames = _interopRequireDefault(require("classnames"));
22
+ var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
23
+ var _utils = require("../_utils");
24
+ var _breadcrumbItem = _interopRequireDefault(require("./breadcrumbItem"));
25
+ var _icon = _interopRequireDefault(require("../icon"));
26
+ var _tooltip = _interopRequireDefault(require("../tooltip"));
27
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
+ 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; }
29
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
30
+ var t = {};
31
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
32
+ if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
33
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
34
+ }
35
+ return t;
36
+ };
37
+ var Breadcrumb = function Breadcrumb(props) {
38
+ // prefixCls 是默认提供的类名前缀,默认值是'kd';
39
+ // compDefaultProps存放了所有组件全局化配置的默认值,用户可以通过ConfigProvider这个组件区去做修改;
40
+ var _useContext = (0, _react.useContext)(_ConfigContext.default),
41
+ getPrefixCls = _useContext.getPrefixCls,
42
+ prefixCls = _useContext.prefixCls,
43
+ userDefaultProps = _useContext.compDefaultProps;
44
+ // 这里将用户传入的 props 和 Breadcrumb 组件的全局化默认配置 userDefaultProps 做了合并处理,得到最终 Breadcrumb 组件渲染的prop
45
+ var breadcrumbProps = (0, _utils.getCompProps)('Breadcrumb', userDefaultProps, props);
46
+ // 解构获取需要的操作的属性值 customPrefixcls最终组件的默认类名前缀,如果用户不通过ConfigProvider全局化配置传入,则默认为‘kd’,否则为用户传入值
47
+ var className = breadcrumbProps.className,
48
+ customPrefixcls = breadcrumbProps.prefixCls,
49
+ items = breadcrumbProps.items,
50
+ separator = breadcrumbProps.separator,
51
+ colorModel = breadcrumbProps.colorModel,
52
+ onItemClick = breadcrumbProps.onItemClick,
53
+ others = __rest(breadcrumbProps, ["className", "prefixCls", "items", "separator", "colorModel", "onItemClick"]);
54
+ var breadcrumbRef = (0, _react.useRef)(null);
55
+ var breadcrumbHideIconRef = (0, _react.useRef)(null);
56
+ var _React$useState = _react.default.useState(items),
57
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
58
+ itemsConfig = _React$useState2[0],
59
+ setItemsConfig = _React$useState2[1];
60
+ var _React$useState3 = _react.default.useState(),
61
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
62
+ itemsArray = _React$useState4[0],
63
+ setItemsArray = _React$useState4[1];
64
+ var _React$useState5 = _react.default.useState(),
65
+ _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
66
+ breadcrumbWidth = _React$useState6[0],
67
+ setBreadcrumbWidth = _React$useState6[1];
68
+ var _React$useState7 = _react.default.useState(false),
69
+ _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
70
+ openEllipsis = _React$useState8[0],
71
+ setOpenEllipsis = _React$useState8[1];
72
+ // 获取组件的基类样式前缀,此时breadcrumbPrefixCls的值为 kd-breadcrumb ,后续的Breadcrumb组件的样式名都以此开头,使用中划线连接
73
+ var breadcrumbPrefixCls = getPrefixCls(prefixCls, 'breadcrumb', customPrefixcls);
74
+ // 混合用户传入的类名 与 组件内部定义的样式名
75
+ var breadcrumbClass = (0, _classnames.default)(breadcrumbPrefixCls, className);
76
+ var breadcrumbPopperClass = (0, _classnames.default)("".concat(breadcrumbPrefixCls, "-popper"));
77
+ var breadcrumbMorePanelClass = (0, _classnames.default)("".concat(breadcrumbPrefixCls, "-more-panel"));
78
+ var breadcrumbSeparatorClass = (0, _classnames.default)("".concat(breadcrumbPrefixCls, "-item-separator"));
79
+ var breadcrumbHideIconClass = (0, _classnames.default)("".concat(breadcrumbPrefixCls, "-hide-icon"));
80
+ var getBreadcrumbItemClass = function getBreadcrumbItemClass(item, isLast) {
81
+ var _context, _context2, _classNames;
82
+ return (0, _classnames.default)(item.className, "".concat(breadcrumbPrefixCls, "-item"), (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(breadcrumbPrefixCls, "-item-link"), (item === null || item === void 0 ? void 0 : item.path) || (item === null || item === void 0 ? void 0 : item.href)), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context = "".concat(breadcrumbPrefixCls, "-item-")).call(_context, colorModel || 'emphasize', "-model-current"), isLast), (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context2 = "".concat(breadcrumbPrefixCls, "-item-")).call(_context2, colorModel || 'emphasize', "-model"), !isLast), _classNames));
83
+ };
84
+ var minItem = 3; // 加上more只显示3个元素的时候,末尾元素开启省略号
85
+ var isLastItem = function isLastItem(index, items) {
86
+ return index === (items === null || items === void 0 ? void 0 : items.length) - 1;
87
+ };
88
+ var getSeparator = function getSeparator(index, items) {
89
+ if (isLastItem(index, items)) {
90
+ return null;
91
+ } else {
92
+ return /*#__PURE__*/_react.default.createElement("span", {
93
+ className: breadcrumbSeparatorClass
94
+ }, separator);
95
+ }
96
+ };
97
+ var getMoreIconContent = function getMoreIconContent(items) {
98
+ var MoreItems = function MoreItems() {
99
+ return /*#__PURE__*/_react.default.createElement("div", {
100
+ className: breadcrumbMorePanelClass
101
+ }, (0, _map.default)(items).call(items, function (item, index) {
102
+ return /*#__PURE__*/_react.default.createElement(_breadcrumbItem.default, {
103
+ key: index,
104
+ index: index,
105
+ item: (0, _extends2.default)((0, _extends2.default)({}, item), {
106
+ className: getBreadcrumbItemClass(item, false)
107
+ }),
108
+ separator: getSeparator(index, items)
109
+ });
110
+ }));
111
+ };
112
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
113
+ popperClassName: breadcrumbPopperClass,
114
+ arrow: false,
115
+ tip: /*#__PURE__*/_react.default.createElement(MoreItems, null),
116
+ trigger: "hover",
117
+ placement: "bottomLeft"
118
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
119
+ type: "more"
120
+ })));
121
+ };
122
+ var getElementWidth = function getElementWidth(ref) {
123
+ if (ref.current) {
124
+ return ref.current.offsetWidth;
125
+ } else {
126
+ return 0;
127
+ }
128
+ };
129
+ var getItemsConfig = function getItemsConfig(widthArr, breadcrumbWidth) {
130
+ var difference = getElementWidth(breadcrumbRef) - breadcrumbWidth;
131
+ if (difference < 0) {
132
+ var number = -difference;
133
+ var removeItem = widthArr === null || widthArr === void 0 ? void 0 : widthArr.reduce(function (acc, cur, ind) {
134
+ if (ind > 0 && ind < widthArr.length - 1) {
135
+ if (acc.width < number + getElementWidth(breadcrumbHideIconRef)) {
136
+ acc.width += cur.width;
137
+ acc.index = ind;
138
+ return acc;
139
+ } else {
140
+ return acc;
141
+ }
142
+ } else {
143
+ return acc;
144
+ }
145
+ }, {
146
+ width: 0,
147
+ index: 0
148
+ });
149
+ if (removeItem.index > 0 && removeItem.index < itemsConfig.length - 1) {
150
+ var _context3;
151
+ var newItemsConfig = JSON.parse((0, _stringify.default)(itemsConfig));
152
+ (0, _splice.default)(newItemsConfig).call(newItemsConfig, 1, removeItem.index, {
153
+ title: getMoreIconContent((0, _splice.default)(_context3 = JSON.parse((0, _stringify.default)(itemsConfig))).call(_context3, 1, removeItem.index))
154
+ });
155
+ setItemsConfig(newItemsConfig);
156
+ }
157
+ } else {
158
+ setItemsConfig(items);
159
+ }
160
+ };
161
+ (0, _react.useEffect)(function () {
162
+ var isMore = itemsConfig === null || itemsConfig === void 0 ? void 0 : itemsConfig.some(function (item) {
163
+ var _a, _b;
164
+ return ((_b = (_a = item === null || item === void 0 ? void 0 : item.title) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.children.type.displayName) === 'Tooltip';
165
+ });
166
+ setOpenEllipsis(isMore && itemsConfig.length === minItem);
167
+ }, [itemsConfig]);
168
+ (0, _react.useEffect)(function () {
169
+ if (breadcrumbRef === null || breadcrumbRef === void 0 ? void 0 : breadcrumbRef.current) {
170
+ var _itemsArray = (0, _from.default)(breadcrumbRef.current.children, function (item, index) {
171
+ return {
172
+ width: item.offsetWidth,
173
+ index: index
174
+ };
175
+ });
176
+ var _breadcrumbWidth = _itemsArray.reduce(function (acc, cur) {
177
+ return acc + cur.width;
178
+ }, 0);
179
+ setItemsArray(_itemsArray);
180
+ setBreadcrumbWidth(_breadcrumbWidth);
181
+ getItemsConfig(_itemsArray, _breadcrumbWidth);
182
+ }
183
+ }, []);
184
+ (0, _react.useEffect)(function () {
185
+ if (itemsArray && breadcrumbWidth) {
186
+ window.addEventListener('resize', function () {
187
+ getItemsConfig(itemsArray, breadcrumbWidth);
188
+ });
189
+ }
190
+ }, [itemsArray, breadcrumbWidth]);
191
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
192
+ className: breadcrumbClass
193
+ }, others, {
194
+ ref: breadcrumbRef
195
+ }), (itemsConfig === null || itemsConfig === void 0 ? void 0 : itemsConfig.length) > 0 && (0, _map.default)(itemsConfig).call(itemsConfig, function (item, index) {
196
+ return /*#__PURE__*/_react.default.createElement(_breadcrumbItem.default, {
197
+ key: index,
198
+ item: (0, _extends2.default)((0, _extends2.default)({}, item), {
199
+ className: getBreadcrumbItemClass(item, isLastItem(index, itemsConfig))
200
+ }),
201
+ onItemClick: onItemClick,
202
+ index: index,
203
+ separator: getSeparator(index, itemsConfig),
204
+ openEllipsis: isLastItem(index, itemsConfig) ? openEllipsis : false
205
+ });
206
+ })), /*#__PURE__*/_react.default.createElement("div", {
207
+ className: breadcrumbHideIconClass,
208
+ ref: breadcrumbHideIconRef
209
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
210
+ type: "more"
211
+ }), /*#__PURE__*/_react.default.createElement("span", {
212
+ className: breadcrumbSeparatorClass
213
+ }, separator)));
214
+ };
215
+ Breadcrumb.displayName = 'Breadcrumb';
216
+ var _default = Breadcrumb;
217
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { IBreadcrumbItems } from './interface';
3
+ declare const BreadcrumbItem: FC<IBreadcrumbItems>;
4
+ export default BreadcrumbItem;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _dropdown = _interopRequireDefault(require("../dropdown"));
14
+ var _icon = _interopRequireDefault(require("../icon"));
15
+ var _devwarning = _interopRequireDefault(require("../_utils/devwarning"));
16
+ var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+ 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; }
19
+ var BreadcrumbItem = function BreadcrumbItem(props) {
20
+ var _useContext = (0, _react.useContext)(_ConfigContext.default),
21
+ getPrefixCls = _useContext.getPrefixCls,
22
+ prefixCls = _useContext.prefixCls;
23
+ var item = props.item,
24
+ index = props.index,
25
+ separator = props.separator,
26
+ openEllipsis = props.openEllipsis,
27
+ onItemClick = props.onItemClick;
28
+ var title = item.title,
29
+ className = item.className,
30
+ dropdownProps = item.dropdownProps,
31
+ href = item.href,
32
+ path = item.path,
33
+ icon = item.icon;
34
+ var breadcrumbPrefixCls = getPrefixCls(prefixCls, 'breadcrumb');
35
+ var itemTextCls = "".concat(breadcrumbPrefixCls, "-item-text");
36
+ var itemIconCls = "".concat(breadcrumbPrefixCls, "-item-icon");
37
+ var handleItemClick = function handleItemClick() {
38
+ if (href && !path) {
39
+ window.open(href, '_self');
40
+ } else if (!href && path) {
41
+ window.location.pathname = path + (title && "/".concat(title));
42
+ } else if (href && path) {
43
+ (0, _devwarning.default)(true, 'breadcrumb', '`href` and `path` not coexist within the `item` object');
44
+ }
45
+ onItemClick && onItemClick(item, index);
46
+ };
47
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
48
+ className: className,
49
+ onClick: handleItemClick
50
+ }, icon && /*#__PURE__*/_react.default.createElement("div", {
51
+ className: itemIconCls
52
+ }, icon), /*#__PURE__*/_react.default.createElement("div", {
53
+ className: itemTextCls,
54
+ title: typeof title === 'string' ? title : '',
55
+ style: {
56
+ maxWidth: openEllipsis ? '170px' : 'unset',
57
+ overflow: openEllipsis ? 'hidden' : 'inherit'
58
+ }
59
+ }, title), dropdownProps && 'menu' in dropdownProps && /*#__PURE__*/_react.default.createElement(_dropdown.default, (0, _extends2.default)({
60
+ placement: "bottomRight"
61
+ }, dropdownProps), /*#__PURE__*/_react.default.createElement(_icon.default, {
62
+ type: "arrow-down"
63
+ })), separator));
64
+ };
65
+ var _default = BreadcrumbItem;
66
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import Breadcrumb from './breadcrumb';
2
+ export * from './breadcrumb';
3
+ export default Breadcrumb;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ var _exportNames = {};
11
+ exports.default = void 0;
12
+ var _breadcrumb = _interopRequireWildcard(require("./breadcrumb"));
13
+ _Object$keys(_breadcrumb).forEach(function (key) {
14
+ if (key === "default" || key === "__esModule") return;
15
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
+ if (key in exports && exports[key] === _breadcrumb[key]) return;
17
+ Object.defineProperty(exports, key, {
18
+ enumerable: true,
19
+ get: function get() {
20
+ return _breadcrumb[key];
21
+ }
22
+ });
23
+ });
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+ 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; }
26
+ var _default = _breadcrumb.default;
27
+ exports.default = _default;
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from 'react';
2
+ import { DropDownProps } from '../dropdown';
3
+ export declare const ColorModelTypes: ["emphasize", "weaken"];
4
+ export declare type ColorModelType = typeof ColorModelTypes[number];
5
+ export interface IBreadcrumbProps {
6
+ style?: Record<string, unknown>;
7
+ className?: string;
8
+ colorModel?: ColorModelType;
9
+ prefixCls?: string;
10
+ items: Array<IBreadcrumbItem>;
11
+ separator?: ReactNode;
12
+ children?: ReactNode;
13
+ onItemClick?: (item: IBreadcrumbItem, index: number) => void;
14
+ }
15
+ export interface IBreadcrumbItems {
16
+ item: IBreadcrumbItem;
17
+ index: number;
18
+ separator?: ReactNode;
19
+ openEllipsis?: boolean;
20
+ onItemClick?: (item: IBreadcrumbItem, index: number) => void;
21
+ }
22
+ export interface IBreadcrumbItem {
23
+ className?: string;
24
+ title?: ReactNode;
25
+ dropdownProps?: DropDownProps;
26
+ href?: string;
27
+ path?: string;
28
+ icon?: ReactNode;
29
+ }
30
+ export interface IItemsWidth {
31
+ width: number;
32
+ index: number;
33
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ColorModelTypes = void 0;
7
+ var _type = require("../_utils/type");
8
+ var ColorModelTypes = (0, _type.tuple)('emphasize', 'weaken');
9
+ exports.ColorModelTypes = ColorModelTypes;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ require("../../style/index.css");
4
+ require("./index.css");