@chaoswise/ui 2.3.6 → 2.3.8

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.
@@ -146,7 +146,7 @@ var Refresh = /*#__PURE__*/forwardRef(function (props, ref) {
146
146
  title: localeObj["refresh"]
147
147
  }, /*#__PURE__*/React.createElement(_Button, {
148
148
  onClick: onRefresh,
149
- disabled: isDisabledRefresh || !enableAutoRefresh
149
+ disabled: isDisabledRefresh
150
150
  }, /*#__PURE__*/React.createElement(Refresh1Svg, null))), showAutoRefresh && /*#__PURE__*/React.createElement(_Tooltip, {
151
151
  title: localeObj["autoRefresh"]
152
152
  }, /*#__PURE__*/React.createElement(_Button, {
@@ -9,7 +9,7 @@ import _ConfigProvider from "@chaoswise/ui/lib/ConfigProvider";
9
9
  import _Menu from "@chaoswise/ui/lib/Menu";
10
10
  import "antd/es/tree/style";
11
11
  import _Tree from "antd/es/tree";
12
- var _excluded = ["children", "treeData", "menuData", "extendType", "onClickMenu", "menuStyle", "menuRender", "extraFooter", "tooltipPlacement", "searchValue", "multiple", "selectedKeys", "defaultSelectedKeys", "onSelect", "searchHighlight", "draggable", "isDrawer", "searchHighlightStyle", "className"],
12
+ var _excluded = ["children", "treeData", "menuData", "extendType", "onClickMenu", "menuStyle", "menuRender", "extraFooter", "tooltipPlacement", "searchValue", "multiple", "selectedKeys", "defaultSelectedKeys", "onSelect", "searchHighlight", "draggable", "isDrawer", "searchHighlightStyle", "className", "caseSensitive", "onExpand"],
13
13
  _excluded2 = ["icon", "title", "key", "children"];
14
14
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
15
  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; }
@@ -33,9 +33,11 @@ import classnames from "classnames";
33
33
  import DragSvg from "./assets/Drag";
34
34
  import { getLocale } from "./locale";
35
35
  import "./index.less";
36
+ import { createTitle, KMPMatch } from "../QuickTransfer/utils";
36
37
  var TreeNode = _Tree.TreeNode,
37
38
  DirectoryTree = _Tree.DirectoryTree;
38
39
  var SubMenu = _Menu.SubMenu;
40
+
39
41
  /**
40
42
  * 基于antd Tree封 支持自定义功能菜单内容、主要适用于左侧导航树(符合UIUE规范)
41
43
  */
@@ -68,15 +70,23 @@ function CWTree(_ref) {
68
70
  color: "#F5222D"
69
71
  } : _ref$searchHighlightS,
70
72
  className = _ref.className,
73
+ _ref$caseSensitive = _ref.caseSensitive,
74
+ caseSensitive = _ref$caseSensitive === void 0 ? false : _ref$caseSensitive,
75
+ _ref$onExpand = _ref.onExpand,
76
+ onExpand = _ref$onExpand === void 0 ? function () {} : _ref$onExpand,
71
77
  rest = _objectWithoutProperties(_ref, _excluded);
72
78
  var _useState = useState(""),
73
79
  _useState2 = _slicedToArray(_useState, 2),
74
80
  _showExtend = _useState2[0],
75
81
  setShowExtend = _useState2[1];
76
- var _useState3 = useState(defaultSelectedKeys),
82
+ var _useState3 = useState([]),
77
83
  _useState4 = _slicedToArray(_useState3, 2),
78
- selfSelectedKeys = _useState4[0],
79
- setSelfSelectedKeys = _useState4[1];
84
+ expandedKeys = _useState4[0],
85
+ setExpandedKeys = _useState4[1];
86
+ var _useState5 = useState(defaultSelectedKeys),
87
+ _useState6 = _slicedToArray(_useState5, 2),
88
+ selfSelectedKeys = _useState6[0],
89
+ setSelfSelectedKeys = _useState6[1];
80
90
  var _ConfigProvider$useLo = _ConfigProvider.useLocale(),
81
91
  _ConfigProvider$useLo2 = _ConfigProvider$useLo.locale,
82
92
  locale = _ConfigProvider$useLo2 === void 0 ? "zh" : _ConfigProvider$useLo2;
@@ -105,36 +115,41 @@ function CWTree(_ref) {
105
115
  });
106
116
  });
107
117
  }
118
+ var createTree = function createTree(list, searchValue, caseSensitive, isAppend) {
119
+ return list.reduce(function (t, c) {
120
+ var children = c.children,
121
+ title = c.title;
122
+ var isHit = KMPMatch(caseSensitive ? title.toLowerCase() : title, caseSensitive ? searchValue.toLowerCase() : searchValue) > -1;
123
+ if (children && children.length) {
124
+ var res = createTree(children, searchValue, caseSensitive, isAppend);
125
+ if (isHit) {
126
+ if (res.length > 0) {
127
+ return t.concat(_objectSpread(_objectSpread({}, c), {}, {
128
+ children: res
129
+ }));
130
+ } else {
131
+ return isAppend ? t.concat(_objectSpread({}, c)) : t.concat(_objectSpread(_objectSpread({}, c), {}, {
132
+ children: undefined
133
+ }));
134
+ }
135
+ } else {
136
+ if (res.length > 0) {
137
+ return t.concat(_objectSpread(_objectSpread({}, c), {}, {
138
+ children: res
139
+ }));
140
+ } else {
141
+ return t;
142
+ }
143
+ }
144
+ }
145
+ return isHit ? t.concat(c) : t;
146
+ }, []);
147
+ };
108
148
  var _treeData = useMemo(function () {
109
149
  var addRootTreeData = addRoot(treeData, "/");
110
150
  if (!searchHighlight) return addRootTreeData;
111
- var loop = function loop(treeData) {
112
- return treeData.map(function (item) {
113
- var index = 0;
114
- if (typeof item.title === "string") {
115
- index = item.title.indexOf(searchValue);
116
- }
117
- if (item.children && item.children.length > 0) {
118
- var _children = loop(item.children);
119
- return _objectSpread(_objectSpread({}, item), {}, {
120
- title: index > -1 || _children.length ? item.title : null,
121
- children: _children !== null && _children !== void 0 && _children.length ? _children : undefined
122
- });
123
- }
124
- return index > -1 ? _objectSpread({}, item) : _objectSpread(_objectSpread({}, item), {}, {
125
- title: null
126
- });
127
- }).filter(function (item) {
128
- return !!item.title;
129
- });
130
- };
131
- addRootTreeData = loop(addRootTreeData);
132
- return rest.checkable ? treeData.filter(function (i) {
133
- return addRootTreeData.find(function (item) {
134
- return item.key === i.key;
135
- });
136
- }) : addRootTreeData;
137
- }, [searchHighlight, treeData, searchValue, rest.checkable]);
151
+ return createTree(addRootTreeData, searchValue, caseSensitive, rest.checkable);
152
+ }, [searchHighlight, treeData, searchValue, rest.checkable, caseSensitive]);
138
153
  function buildMenu(array) {
139
154
  // 递归构建菜单解构
140
155
  return array.map(function (item) {
@@ -234,24 +249,26 @@ function CWTree(_ref) {
234
249
  }
235
250
  function creatTreeNode(data) {
236
251
  // 创建树结构
237
- return data.map(function () {
238
- var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : item;
239
- var icon = _ref3.icon,
240
- title = _ref3.title,
241
- key = _ref3.key,
242
- children = _ref3.children,
243
- props = _objectWithoutProperties(_ref3, _excluded2);
252
+ return data.map(function (_props) {
253
+ var icon = _props.icon,
254
+ title = _props.title,
255
+ key = _props.key,
256
+ children = _props.children,
257
+ props = _objectWithoutProperties(_props, _excluded2);
244
258
  var _title = title;
245
259
  if (searchHighlight && typeof title === "string") {
246
- var index = title.indexOf(searchValue);
247
- var beforeStr = title.substr(0, index);
248
- var afterStr = title.substr(index + (searchValue === null || searchValue === void 0 ? void 0 : searchValue.length));
249
- _title = index > -1 ? /*#__PURE__*/React.createElement("span", null, beforeStr, /*#__PURE__*/React.createElement("span", {
260
+ var _createTitle = createTitle(caseSensitive, searchValue, title),
261
+ index = _createTitle.index,
262
+ beforeTitle = _createTitle.beforeTitle,
263
+ afterTitle = _createTitle.afterTitle,
264
+ searchStr = _createTitle.searchStr;
265
+ _title = index > -1 ? /*#__PURE__*/React.createElement("span", null, beforeTitle, /*#__PURE__*/React.createElement("span", {
250
266
  style: searchHighlightStyle
251
- }, searchValue), afterStr) : /*#__PURE__*/React.createElement("span", null, title);
267
+ }, searchStr), afterTitle) : /*#__PURE__*/React.createElement("span", null, title);
252
268
  }
253
269
  return /*#__PURE__*/React.createElement(TreeNode, _extends({
254
270
  className: "cw-tree-treenode",
271
+ record: _props,
255
272
  icon: icon ? icon : null,
256
273
  title: menuData(_title, key, props) || menuRender ? creatTitle(icon, _title, key, children, props) : /*#__PURE__*/React.createElement("span", {
257
274
  className: "cw-tree-treenode-content"
@@ -266,6 +283,39 @@ function CWTree(_ref) {
266
283
  }, props), children && creatTreeNode(children));
267
284
  });
268
285
  }
286
+ var _onExpand = function _onExpand(keys, e) {
287
+ setExpandedKeys(keys);
288
+ onExpand(keys, e);
289
+ };
290
+ useEffect(function () {
291
+ if (searchValue) {
292
+ var _expandedKeys = [];
293
+ // 遍历树获取所有父节点key
294
+ var loop = function loop(treeData) {
295
+ treeData.forEach(function (item) {
296
+ if (item.children && item.children.length > 0) {
297
+ _expandedKeys.push(item.key);
298
+ loop(item.children);
299
+ }
300
+ });
301
+ };
302
+ loop(_treeData);
303
+ setExpandedKeys(_expandedKeys);
304
+ }
305
+ }, [searchValue, _treeData]);
306
+
307
+ // 有搜索内容默认展开搜索节点
308
+ var expandedConfig = useMemo(function () {
309
+ // 获取全部父节点key
310
+ if (searchValue) {
311
+ return {
312
+ expandedKeys: expandedKeys
313
+ // autoExpandParent: true,
314
+ };
315
+ }
316
+
317
+ return {};
318
+ }, [searchValue, expandedKeys]);
269
319
  return /*#__PURE__*/React.createElement("div", {
270
320
  className: "cw-tree-outer-wrapper"
271
321
  }, /*#__PURE__*/React.createElement("div", {
@@ -292,8 +342,9 @@ function CWTree(_ref) {
292
342
  onMouseLeave: function onMouseLeave(e) {
293
343
  return hideExtend(e);
294
344
  },
295
- draggable: draggable
296
- }, rest), children ? children : creatTreeNode(_treeData))))), /*#__PURE__*/React.createElement("div", {
345
+ draggable: draggable,
346
+ onExpand: _onExpand
347
+ }, expandedConfig, rest), children ? children : creatTreeNode(_treeData))))), /*#__PURE__*/React.createElement("div", {
297
348
  className: "cw-tree-footer"
298
349
  }, extraFooter));
299
350
  }
@@ -5,6 +5,8 @@ import "@chaoswise/ui/lib/CWTree/index.less";
5
5
  import _CWTree from "@chaoswise/ui/lib/CWTree";
6
6
  import "@chaoswise/ui/lib/CWTable/index.less";
7
7
  import _CWTable from "@chaoswise/ui/lib/CWTable";
8
+ import "@chaoswise/ui/lib/TooltipText/index.less";
9
+ import _TooltipText from "@chaoswise/ui/lib/TooltipText";
8
10
  import "@chaoswise/ui/lib/Checkbox/index.less";
9
11
  import _Checkbox from "@chaoswise/ui/lib/Checkbox";
10
12
  import _ConfigProvider from "@chaoswise/ui/lib/ConfigProvider";
@@ -35,7 +37,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
37
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
36
38
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
37
39
  import React, { useState, useEffect, Fragment, forwardRef, useMemo } from "react";
38
- import { filterTreeByName, filterTree, filterTreeByNameTable, filterObj, getNotSelectKeys, getKeysAndTitle, getBottomKey, renderLeafNodetree, renderRelationNode } from "./utils";
40
+ import { filterTreeByName, filterTree, filterTreeByNameTable, filterObj, getNotSelectKeys, getKeysAndTitle, getBottomKey, renderLeafNodetree, renderRelationNode, createTitle } from "./utils";
39
41
  import classnames from "classnames";
40
42
  import CheckList from "./CheckList";
41
43
  import PropTypes from "prop-types";
@@ -94,7 +96,9 @@ var QuickTransfer = /*#__PURE__*/forwardRef(function (props, ref) {
94
96
  _props$showBorder = props.showBorder,
95
97
  showBorder = _props$showBorder === void 0 ? false : _props$showBorder,
96
98
  _props$searchOption = props.searchOption,
97
- searchOption = _props$searchOption === void 0 ? {} : _props$searchOption;
99
+ searchOption = _props$searchOption === void 0 ? {} : _props$searchOption,
100
+ _props$caseSensitive = props.caseSensitive,
101
+ caseSensitive = _props$caseSensitive === void 0 ? false : _props$caseSensitive;
98
102
  var _searchOption$leftSea = searchOption.leftSearchOption,
99
103
  _searchOption$leftSea2 = _searchOption$leftSea === void 0 ? {} : _searchOption$leftSea,
100
104
  _searchOption$leftSea3 = _searchOption$leftSea2.onChange,
@@ -340,10 +344,10 @@ var QuickTransfer = /*#__PURE__*/forwardRef(function (props, ref) {
340
344
  setData(newData);
341
345
  setListCheckedStyle(listCheckedKeys_, newData);
342
346
  }
343
- if (type === "tree") {
344
- newData = filterTree(dataSource, searchValue);
345
- setData(newData);
346
- }
347
+ // if (type === "tree") {
348
+ // newData = filterTree(dataSource, searchValue);
349
+ // setData(newData);
350
+ // }
347
351
  if (type === "table") {
348
352
  newData = filterTreeByNameTable(dataSource, searchValue, searchColumns ? searchColumns : newSearchColumns);
349
353
  setData(newData);
@@ -449,15 +453,9 @@ var QuickTransfer = /*#__PURE__*/forwardRef(function (props, ref) {
449
453
  var renderTreeData = function renderTreeData(data) {
450
454
  return data.map(function (item) {
451
455
  if (item.children) {
452
- if (item.children.length === 0) {
453
- return _objectSpread(_objectSpread({}, item), {}, {
454
- title: treeSelect === "leafNode" ? /*#__PURE__*/React.createElement("span", null, item.title, /*#__PURE__*/React.createElement("small", null, "(", localeObj.noAddItem, ")")) : item.title
455
- });
456
- } else {
457
- return _objectSpread(_objectSpread({}, item), {}, {
458
- children: renderTreeData(item.children)
459
- });
460
- }
456
+ return _objectSpread(_objectSpread({}, item), {}, {
457
+ children: renderTreeData(item.children)
458
+ });
461
459
  } else {
462
460
  return item;
463
461
  }
@@ -646,10 +644,11 @@ var QuickTransfer = /*#__PURE__*/forwardRef(function (props, ref) {
646
644
  onChange: onCheckAllChange,
647
645
  checked: checkAll
648
646
  }, allSelectedTextRender ? allSelectedTextRender(listCheckedKeys, data) : allSelectedText), data.map(function (value) {
649
- var index = value.title.toLowerCase().indexOf(saveSearchValueLeft.toLowerCase());
650
- var beforeTitle = value.title.substr(0, index);
651
- var searchValue = value.title.substr(index, saveSearchValueLeft.length);
652
- var afterTitle = value.title.substr(index + saveSearchValueLeft.length);
647
+ var _createTitle = createTitle(caseSensitive, saveSearchValueLeft, value.title),
648
+ index = _createTitle.index,
649
+ beforeTitle = _createTitle.beforeTitle,
650
+ afterTitle = _createTitle.afterTitle,
651
+ searchStr = _createTitle.searchStr;
653
652
  return /*#__PURE__*/React.createElement(_Checkbox, {
654
653
  key: value.key,
655
654
  checked: listCheckedKeys.includes(value.key),
@@ -657,11 +656,14 @@ var QuickTransfer = /*#__PURE__*/forwardRef(function (props, ref) {
657
656
  return onChangeChecked(e, value);
658
657
  },
659
658
  disabled: value.disabled
660
- }, index > -1 ? /*#__PURE__*/React.createElement("span", null, beforeTitle, /*#__PURE__*/React.createElement("span", {
659
+ }, /*#__PURE__*/React.createElement(_TooltipText, {
660
+ title: value.title,
661
+ placement: 'topLeft'
662
+ }, /*#__PURE__*/React.createElement("span", null, index > -1 ? /*#__PURE__*/React.createElement(React.Fragment, null, beforeTitle, /*#__PURE__*/React.createElement("span", {
661
663
  style: {
662
664
  color: "#F5222D"
663
665
  }
664
- }, searchValue), afterTitle) : value.title);
666
+ }, searchStr), afterTitle) : value.title)));
665
667
  }));
666
668
  }
667
669
  if (type === "table") {
@@ -685,7 +687,8 @@ var QuickTransfer = /*#__PURE__*/forwardRef(function (props, ref) {
685
687
  selectable: false,
686
688
  defaultExpandAll: defaultExpandAll,
687
689
  searchValue: saveSearchValueLeft,
688
- searchHighlight: true
690
+ searchHighlight: true,
691
+ caseSensitive: caseSensitive
689
692
  }, treeRest));
690
693
  }
691
694
  };
@@ -903,6 +906,13 @@ QuickTransfer.propTypes = {
903
906
  * allSelectedTextRender(listCheckedKeys,data)
904
907
  * }
905
908
  */
906
- leftContentOption: PropTypes.object
909
+ leftContentOption: PropTypes.object,
910
+ /**
911
+ * 是否区分大小写
912
+ * leftContentOption = {
913
+ * allSelectedTextRender(listCheckedKeys,data)
914
+ * }
915
+ */
916
+ caseSensitive: PropTypes.bool
907
917
  };
908
918
  export default QuickTransfer;
@@ -3,362 +3,400 @@
3
3
  @table-padding-horizontal-md: 12px; // ui规范
4
4
 
5
5
  .cw-transfer-main {
6
- display: flex;
7
- background: @component-background;
6
+ display: flex;
7
+ background: @component-background;
8
+ height: 100%;
9
+
10
+ &.cw-transfer-main-has-border {
11
+ border: @border-width-base @border-style-base @border-color-split;
12
+ border-radius: @border-radius-base;
13
+ }
14
+
15
+ .cw-transfer-left {
16
+ width: 50%;
8
17
  height: 100%;
18
+ display: flex;
19
+ flex-direction: column;
9
20
 
10
- &.cw-transfer-main-has-border {
11
- border: @border-width-base @border-style-base @border-color-split;
12
- border-radius: @border-radius-base;
13
- }
21
+ .cw-transfer-left-content {
22
+ width: 100%;
23
+ flex: 1;
24
+ display: flex;
25
+ flex-direction: column;
26
+ overflow: hidden;
14
27
 
15
- .cw-transfer-left {
16
- width: 50%;
17
- height: 100%;
18
- display: flex;
19
- flex-direction: column;
20
- .cw-transfer-left-content {
21
- width: 100%;
22
- flex: 1;
23
- display: flex;
24
- flex-direction: column;
25
- overflow: hidden;
28
+ .cw-transfer-left-top {
29
+ padding: 8px 16px 0;
30
+ }
26
31
 
27
- .cw-transfer-left-top {
28
- padding: 8px 16px 0;
29
- }
30
- .cw-transfer-left-main-wrapper{
31
- flex: 1;
32
- overflow: auto;
33
- // table
34
- .cw-common-table {
35
- border: none;
36
- .cw-common-table-title-box {
37
- border: none;
38
- }
39
- }
40
- .cw-transfer-table {
41
- padding: 0 16px;
42
- }
43
- }
44
- small {
45
- display: none;
46
- margin-left: 8px;
47
- color: #faad14
48
- }
32
+ .cw-transfer-left-main-wrapper {
33
+ flex: 1;
34
+ overflow: auto;
35
+ // table
36
+ .cw-common-table {
37
+ border: none;
49
38
 
50
- .@{ant-prefix}-tree-treenode-checkbox-checked {
51
- small {
52
- display: inline;
53
- }
54
- }
39
+ .cw-common-table-title-box {
40
+ border: none;
41
+ }
42
+ }
43
+
44
+ .cw-transfer-table {
45
+ padding: 0 16px;
46
+ }
47
+
48
+ }
49
+
50
+ small {
51
+ display: none;
52
+ margin-left: 8px;
53
+ color: #faad14
54
+ }
55
55
 
56
+ .@{ant-prefix}-tree-treenode-checkbox-checked {
57
+ small {
58
+ display: inline;
59
+ }
60
+ }
56
61
 
57
- .cw-transfer-left-content-checkbox {
58
- display: flex;
59
- flex-direction: column;
60
62
 
61
- .@{checkbox-prefix-cls}-wrapper+.@{checkbox-prefix-cls}-wrapper {
62
- margin: 0;
63
- }
63
+ .cw-transfer-left-content-checkbox {
64
+ display: flex;
65
+ flex-direction: column;
64
66
 
65
- .@{checkbox-prefix-cls}-wrapper {
66
- flex: 1;
67
- padding: 8px 16px;
68
- }
67
+ .@{checkbox-prefix-cls}-wrapper + .@{checkbox-prefix-cls}-wrapper {
68
+ margin: 0;
69
+ }
69
70
 
70
- .@{checkbox-prefix-cls}-wrapper:hover {
71
- background: @item-hover-bg; // 符合UI规范
72
- }
73
- }
71
+ .@{checkbox-prefix-cls}-wrapper {
72
+ flex: 1;
73
+ padding: 8px 16px;
74
+ display: flex;
75
+ width: 100%;
76
+ align-items: center;
74
77
  }
78
+
79
+ .@{checkbox-prefix-cls}-wrapper span:nth-of-type(2) {
80
+ width: 100%;
81
+ }
82
+
83
+ .@{checkbox-prefix-cls}-wrapper:hover {
84
+ background: @item-hover-bg; // 符合UI规范
85
+ }
86
+ }
75
87
  }
76
- .cw-transfer-footer {
77
- height: 40px;
88
+ }
89
+
90
+ .cw-transfer-footer {
91
+ height: 40px;
92
+ display: flex;
93
+ align-items: center;
94
+ // border-top: 1px solid #e8e8e8;
95
+ padding: 8px 16px;
96
+ }
97
+
98
+ .cw-transfer-division {
99
+ width: @border-width-base;
100
+ background-color: @background-color-base;
101
+ }
102
+
103
+ .cw-transfer-right {
104
+ width: 50%;
105
+ height: 100%;
106
+ display: flex;
107
+ flex-direction: column;
108
+
109
+ .cw-transfer-right-content {
110
+ // border: 1px solid #e8e8e8;
111
+ display: flex;
112
+ flex: 1;
113
+ width: 100%;
114
+ overflow: hidden;
115
+ flex-direction: column;
116
+
117
+ .cw-transfer-right-header {
78
118
  display: flex;
119
+ text-align: center;
79
120
  align-items: center;
80
- // border-top: 1px solid #e8e8e8;
81
- padding: 8px 16px;
82
- }
83
- .cw-transfer-division {
84
- width: @border-width-base;
85
- background-color: @background-color-base;
86
- }
121
+ padding: 12px 16px; // 符合UI规范
122
+ &.cw-transfer-right-header-has-search {
123
+ padding: 8px 16px; // 符合UI规范
124
+ }
87
125
 
88
- .cw-transfer-right {
89
- width: 50%;
90
- height: 100%;
91
- display: flex;
92
- flex-direction: column;
93
- .cw-transfer-right-content {
94
- // border: 1px solid #e8e8e8;
126
+ .cw-transfer-right-header-top {
127
+ display: flex;
128
+ justify-content: space-between;
129
+ width: 100%;
130
+ line-height: 20px;
131
+ cursor: pointer;
132
+
133
+ .cw-transfer-right-header-clear {
134
+ color: @primary-color;
135
+ }
136
+ }
137
+
138
+ }
139
+
140
+ .cw-transfer-right-main-wrapper {
141
+ flex: 1;
142
+ overflow: auto;
143
+
144
+ .cw-transfer-right-content-main {
145
+ line-height: 20px; // 符合UI规范
146
+ padding: 8px 16px;
147
+ display: flex;
148
+ justify-content: space-between;
149
+ align-items: center;
150
+ position: relative;
151
+
152
+ &.drop-over-downward {
153
+ border-bottom: 1px dashed @primary-color;
154
+ padding-bottom: 7px;
155
+ }
156
+
157
+ &.drop-over-upward {
158
+ border-top: 1px dashed @primary-color;
159
+ padding-top: 7px;
160
+ }
161
+
162
+ .cw-transfer-right-content-drag {
163
+ color: @text-color;
164
+ position: absolute;
165
+ left: 8px;
166
+ display: block;
167
+ }
168
+
169
+ &:hover {
170
+ background-color: @item-hover-bg; // 符合UI规范
171
+
172
+ .cw-transfer-right-content-drag {
173
+ color: @primary-color;
174
+ display: block;
175
+ }
176
+ }
177
+
178
+ .cw-transfer-right-content-item {
95
179
  display: flex;
96
- flex: 1;
180
+ align-items: center;
97
181
  width: 100%;
98
- overflow: hidden;
99
- flex-direction: column;
100
-
101
- .cw-transfer-right-header {
102
- display: flex;
103
- text-align: center;
104
- align-items: center;
105
- padding: 12px 16px; // 符合UI规范
106
- &.cw-transfer-right-header-has-search{
107
- padding: 8px 16px; // 符合UI规范
108
- }
109
- .cw-transfer-right-header-top {
110
- display: flex;
111
- justify-content: space-between;
112
- width: 100%;
113
- line-height: 20px;
114
- cursor: pointer;
115
-
116
- .cw-transfer-right-header-clear {
117
- color: @primary-color;
118
- }
119
- }
120
182
 
183
+ .cw-transfer-right-content-item-drag-wrapper {
184
+ display: flex;
185
+ justify-content: center;
186
+ align-items: center;
187
+ width: 14px;
188
+ height: 14px;
189
+ margin-right: 8px;
121
190
  }
122
- .cw-transfer-right-main-wrapper{
123
- flex: 1;
124
- overflow: auto;
125
- .cw-transfer-right-content-main {
126
- line-height: 20px; // 符合UI规范
127
- padding: 8px 16px;
128
- display: flex;
129
- justify-content: space-between;
130
- align-items: center;
131
- position: relative;
132
- &.drop-over-downward{
133
- border-bottom: 1px dashed @primary-color;
134
- padding-bottom: 7px;
135
- }
136
- &.drop-over-upward{
137
- border-top: 1px dashed @primary-color;
138
- padding-top: 7px;
139
- }
140
- .cw-transfer-right-content-drag {
141
- color: @text-color;
142
- position: absolute;
143
- left: 8px;
144
- display: block;
145
- }
146
-
147
- &:hover {
148
- background-color: @item-hover-bg; // 符合UI规范
149
-
150
- .cw-transfer-right-content-drag {
151
- color: @primary-color;
152
- display: block;
153
- }
154
- }
155
- .cw-transfer-right-content-item{
156
- display: flex;
157
- align-items: center;
158
- width: 100%;
159
- .cw-transfer-right-content-item-drag-wrapper{
160
- display: flex;
161
- justify-content: center;
162
- align-items: center;
163
- width: 14px;
164
- height: 14px;
165
- margin-right: 8px;
166
- }
167
- .cw-transfer-right-content-item-text-wrapper{
168
- flex: 1;
169
- }
170
- }
171
- }
172
-
173
- .cw-transfer-right-content-del {
174
- cursor: pointer;
175
- // font-size: 14px;
176
- }
177
-
178
- .cw-transfer-right-content-del:hover {
179
- color: @primary-5;
180
- }
191
+
192
+ .cw-transfer-right-content-item-text-wrapper {
193
+ flex: 1;
181
194
  }
195
+ }
182
196
  }
197
+
198
+ .cw-transfer-right-content-del {
199
+ cursor: pointer;
200
+ // font-size: 14px;
201
+ }
202
+
203
+ .cw-transfer-right-content-del:hover {
204
+ color: @primary-5;
205
+ }
206
+ }
183
207
  }
184
- .cw-transfer-search {
185
- display: flex;
186
- text-align: center;
187
- align-items: center;
188
- padding: 8px 16px; // 符合UI规范
189
- }
208
+ }
209
+
210
+ .cw-transfer-search {
211
+ display: flex;
212
+ text-align: center;
213
+ align-items: center;
214
+ padding: 8px 16px; // 符合UI规范
215
+ }
190
216
  }
191
217
 
192
218
  .cw-transfer-left-main-wrapper {
193
- .cw-tree-location-box {
194
- .cw-tree-box {
195
- .cw-tree {
196
- .@{ant-prefix}-tree li .@{ant-prefix}-tree-node-content-wrapper {
197
- height: 36px !important;
198
- line-height: 36px !important;
199
- }
200
- line-height: 36px;
201
- .@{ant-prefix}-tree-node-content-wrapper {
202
- .@{ant-prefix}-tree-title {
203
- height: 36px;
204
- line-height: 36px;
205
- .cw-tree-treenode-title {
206
- height: 36px;
207
- line-height: 36px;
208
- }
209
- // 使用ant变量
210
- .cw-tree-treenode-extend {
211
- .cw-tree-treenode-extend-dropdown {
212
- height: 36px;
213
- line-height: 36px;
214
-
215
- }
216
- }
217
- }
218
- }
219
- }
219
+ .cw-tree-location-box {
220
+ .cw-tree-box {
221
+ .cw-tree {
222
+ .@{ant-prefix}-tree li .@{ant-prefix}-tree-node-content-wrapper {
223
+ height: 36px !important;
224
+ line-height: 36px !important;
225
+ }
220
226
 
227
+ line-height: 36px;
221
228
 
222
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-node-content-wrapper::before,
223
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-node-content-wrapper::before {
224
- height: 36px;
225
- line-height: 36px;
229
+ .@{ant-prefix}-tree-node-content-wrapper {
230
+ .@{ant-prefix}-tree-title {
231
+ height: 36px;
232
+ line-height: 36px;
233
+
234
+ .cw-tree-treenode-title {
235
+ height: 36px;
236
+ line-height: 36px;
226
237
  }
227
238
 
228
- .cw-tree.@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-node-content-wrapper>span,
229
- .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-node-content-wrapper>span {
239
+ // 使用ant变量
240
+ .cw-tree-treenode-extend {
241
+ .cw-tree-treenode-extend-dropdown {
230
242
  height: 36px;
231
243
  line-height: 36px;
244
+
245
+ }
232
246
  }
247
+ }
233
248
  }
234
- .cw-tree-drag {
235
- .cw-tree {
249
+ }
250
+
236
251
 
237
- .@{ant-prefix}-tree li .@{ant-prefix}-tree-node-content-wrapper {
238
- height: 36px !important;
239
- line-height: 36px !important;
240
- }
252
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-node-content-wrapper::before,
253
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-node-content-wrapper::before {
254
+ height: 36px;
255
+ line-height: 36px;
256
+ }
257
+
258
+ .cw-tree.@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-node-content-wrapper > span,
259
+ .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-node-content-wrapper > span {
260
+ height: 36px;
261
+ line-height: 36px;
262
+ }
263
+ }
264
+
265
+ .cw-tree-drag {
266
+ .cw-tree {
267
+
268
+ .@{ant-prefix}-tree li .@{ant-prefix}-tree-node-content-wrapper {
269
+ height: 36px !important;
270
+ line-height: 36px !important;
271
+ }
272
+
273
+ line-height: 36px;
274
+
275
+ .@{ant-prefix}-tree-node-content-wrapper {
276
+ .@{ant-prefix}-tree-title {
277
+ height: 36px;
278
+ line-height: 36px;
279
+
280
+ .cw-tree-treenode-content {
281
+ .cw-tree-treenode-title {
282
+ height: 36px;
241
283
  line-height: 36px;
242
- .@{ant-prefix}-tree-node-content-wrapper {
243
- .@{ant-prefix}-tree-title {
244
- height: 36px;
245
- line-height: 36px;
246
- .cw-tree-treenode-content {
247
- .cw-tree-treenode-title {
248
- height: 36px;
249
- line-height: 36px;
250
- }
251
- }
252
-
253
- // 使用ant变量
254
- .cw-tree-treenode-extend {
255
- display: inline-flex;
256
- background-color: transparent;
257
- // background-color: @primary-1;
258
- transition: all 0.3s;
259
-
260
- .cw-tree-treenode-extend-dropdown-drag {
261
- line-height: 36px;
262
- }
263
- }
264
-
265
- .cw-tree-treenode-extend-show {
266
- .cw-tree-treenode-extend-dropdown-drag {
267
- height: 36px;
268
- }
269
- }
270
- }
271
- }
284
+ }
272
285
  }
273
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-node-content-wrapper::before,
274
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-node-content-wrapper::before {
275
- height: 36px;
286
+
287
+ // 使用ant变量
288
+ .cw-tree-treenode-extend {
289
+ display: inline-flex;
290
+ background-color: transparent;
291
+ // background-color: @primary-1;
292
+ transition: all 0.3s;
293
+
294
+ .cw-tree-treenode-extend-dropdown-drag {
276
295
  line-height: 36px;
296
+ }
277
297
  }
278
298
 
279
- .cw-tree.@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-node-content-wrapper>span,
280
- .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-node-content-wrapper>span {
299
+ .cw-tree-treenode-extend-show {
300
+ .cw-tree-treenode-extend-dropdown-drag {
281
301
  height: 36px;
282
- line-height: 36px;
302
+ }
283
303
  }
304
+ }
284
305
  }
306
+ }
285
307
 
286
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-switcher,
287
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-switcher {
288
- height: 36px !important;
289
- line-height: 36px !important;
290
- }
308
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-node-content-wrapper::before,
309
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-node-content-wrapper::before {
310
+ height: 36px;
311
+ line-height: 36px;
312
+ }
291
313
 
292
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-node-content-wrapper::before,
293
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-node-content-wrapper::before {
294
- height: 36px;
295
- line-height: 36px;
296
- }
314
+ .cw-tree.@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-node-content-wrapper > span,
315
+ .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-node-content-wrapper > span {
316
+ height: 36px;
317
+ line-height: 36px;
318
+ }
319
+ }
297
320
 
298
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory>li.@{ant-prefix}-tree-treenode-selected>span.@{ant-prefix}-tree-node-content-wrapper::before,
299
- .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li.@{ant-prefix}-tree-treenode-selected>span.@{ant-prefix}-tree-node-content-wrapper::before {
300
- height: 36px;
301
- line-height: 36px;
302
- }
303
- .@{ant-prefix}-tree-directory>li span.@{ant-prefix}-tree-node-content-wrapper>span,
304
- .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li span.@{ant-prefix}-tree-node-content-wrapper>span {
305
- height: 36px;
306
- line-height: 36px;
307
- }
321
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-switcher,
322
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-switcher {
323
+ height: 36px !important;
324
+ line-height: 36px !important;
325
+ }
308
326
 
309
- .@{ant-prefix}-tree-node-content-wrapper>span {
310
- height: 36px !important;
311
- line-height: 36px !important;
312
- }
313
- .cw-tree-treenode {
314
- .@{ant-prefix}-tree-checkbox {
315
- transform: translateY(0); // 修复选择框与文字未对齐
316
- }
317
- }
327
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-node-content-wrapper::before,
328
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-node-content-wrapper::before {
329
+ height: 36px;
330
+ line-height: 36px;
318
331
  }
319
332
 
320
- .cw-tree-location-box .cw-tree-box .cw-tree.@{ant-prefix}-tree-directory>li.@{ant-prefix}-tree-treenode-selected>span.@{ant-prefix}-tree-node-content-wrapper::before,
321
- .cw-tree-location-box .cw-tree-box .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree>li.@{ant-prefix}-tree-treenode-selected>span.@{ant-prefix}-tree-node-content-wrapper::before {
322
- height: 36px !important;
323
- line-height: 36px !important;
333
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory > li.@{ant-prefix}-tree-treenode-selected > span.@{ant-prefix}-tree-node-content-wrapper::before,
334
+ .@{ant-prefix}-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li.@{ant-prefix}-tree-treenode-selected > span.@{ant-prefix}-tree-node-content-wrapper::before {
335
+ height: 36px;
336
+ line-height: 36px;
324
337
  }
325
338
 
326
- .cw-tree-location-box .cw-tree-box .cw-tree .cw-tree-treenode .@{ant-prefix}-tree-node-content-wrapper {
327
- height: 36px;
328
- line-height: 36px;
339
+ .@{ant-prefix}-tree-directory > li span.@{ant-prefix}-tree-node-content-wrapper > span,
340
+ .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li span.@{ant-prefix}-tree-node-content-wrapper > span {
341
+ height: 36px;
342
+ line-height: 36px;
329
343
  }
330
344
 
331
- .@{ant-prefix}-tree li.drag-over::before {
332
- height: 36px;
345
+ .@{ant-prefix}-tree-node-content-wrapper > span {
346
+ height: 36px !important;
347
+ line-height: 36px !important;
333
348
  }
334
349
 
350
+ .cw-tree-treenode {
351
+ .@{ant-prefix}-tree-checkbox {
352
+ transform: translateY(0); // 修复选择框与文字未对齐
353
+ }
354
+ }
355
+ }
335
356
 
336
- .@{table-prefix-cls}-middle {
337
- > .@{table-prefix-cls}-title,
338
- > .@{table-prefix-cls}-content > .@{table-prefix-cls}-footer {
339
- padding: 8px @table-padding-horizontal-md 7px;
340
- }
341
- > .@{table-prefix-cls}-content {
342
- > .@{table-prefix-cls}-header > table,
343
- > .@{table-prefix-cls}-body > table,
344
- > .@{table-prefix-cls}-scroll > .@{table-prefix-cls}-header > table,
345
- > .@{table-prefix-cls}-scroll > .@{table-prefix-cls}-body > table,
346
- > .@{table-prefix-cls}-fixed-left > .@{table-prefix-cls}-header > table,
347
- > .@{table-prefix-cls}-fixed-right > .@{table-prefix-cls}-header > table,
348
- > .@{table-prefix-cls}-fixed-left
349
- > .@{table-prefix-cls}-body-outer
350
- > .@{table-prefix-cls}-body-inner
351
- > table,
352
- > .@{table-prefix-cls}-fixed-right
353
- > .@{table-prefix-cls}-body-outer
354
- > .@{table-prefix-cls}-body-inner
355
- > table {
356
- > .@{table-prefix-cls}-thead > tr > th,
357
- > .@{table-prefix-cls}-tbody > tr > td {
358
- padding: 8px @table-padding-horizontal-md 7px;
359
- }
360
- }
357
+ .cw-tree-location-box .cw-tree-box .cw-tree.@{ant-prefix}-tree-directory > li.@{ant-prefix}-tree-treenode-selected > span.@{ant-prefix}-tree-node-content-wrapper::before,
358
+ .cw-tree-location-box .cw-tree-box .cw-tree.@{ant-prefix}-tree-directory .@{ant-prefix}-tree-child-tree > li.@{ant-prefix}-tree-treenode-selected > span.@{ant-prefix}-tree-node-content-wrapper::before {
359
+ height: 36px !important;
360
+ line-height: 36px !important;
361
+ }
362
+
363
+ .cw-tree-location-box .cw-tree-box .cw-tree .cw-tree-treenode .@{ant-prefix}-tree-node-content-wrapper {
364
+ height: 36px;
365
+ line-height: 36px;
366
+ }
367
+
368
+ .@{ant-prefix}-tree li.drag-over::before {
369
+ height: 36px;
370
+ }
371
+
372
+
373
+ .@{table-prefix-cls}-middle {
374
+ > .@{table-prefix-cls}-title,
375
+ > .@{table-prefix-cls}-content > .@{table-prefix-cls}-footer {
376
+ padding: 8px @table-padding-horizontal-md 7px;
377
+ }
378
+
379
+ > .@{table-prefix-cls}-content {
380
+ > .@{table-prefix-cls}-header > table,
381
+ > .@{table-prefix-cls}-body > table,
382
+ > .@{table-prefix-cls}-scroll > .@{table-prefix-cls}-header > table,
383
+ > .@{table-prefix-cls}-scroll > .@{table-prefix-cls}-body > table,
384
+ > .@{table-prefix-cls}-fixed-left > .@{table-prefix-cls}-header > table,
385
+ > .@{table-prefix-cls}-fixed-right > .@{table-prefix-cls}-header > table,
386
+ > .@{table-prefix-cls}-fixed-left
387
+ > .@{table-prefix-cls}-body-outer
388
+ > .@{table-prefix-cls}-body-inner
389
+ > table,
390
+ > .@{table-prefix-cls}-fixed-right
391
+ > .@{table-prefix-cls}-body-outer
392
+ > .@{table-prefix-cls}-body-inner
393
+ > table {
394
+ > .@{table-prefix-cls}-thead > tr > th,
395
+ > .@{table-prefix-cls}-tbody > tr > td {
396
+ padding: 8px @table-padding-horizontal-md 7px;
361
397
  }
362
-
363
398
  }
364
- }
399
+ }
400
+
401
+ }
402
+ }
@@ -67,6 +67,18 @@ export var KMPMatch = function KMPMatch(str, pattern) {
67
67
  return -1;
68
68
  }
69
69
  };
70
+ export var createTitle = function createTitle(caseSensitive, searchValue, title) {
71
+ var index = caseSensitive ? KMPMatch(title, searchValue) : KMPMatch(title.toLowerCase(), searchValue.toLowerCase());
72
+ var beforeTitle = title.substr(0, index);
73
+ var searchStr = title.substr(index, searchValue.length);
74
+ var afterTitle = title.substr(index + searchValue.length);
75
+ return {
76
+ beforeTitle: beforeTitle,
77
+ afterTitle: afterTitle,
78
+ searchStr: searchStr,
79
+ index: index
80
+ };
81
+ };
70
82
  function generateNextArr(pattern) {
71
83
  var i = 0;
72
84
  var j = -1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chaoswise/ui",
3
- "version": "2.3.6",
3
+ "version": "2.3.8",
4
4
  "description": "公共UI库",
5
5
  "keywords": [
6
6
  "ui",
@@ -140,5 +140,5 @@
140
140
  "access": "public"
141
141
  },
142
142
  "license": "MIT",
143
- "gitHead": "6c8d75666cf9208346704fc975f2aa9bbe148e11"
143
+ "gitHead": "5c3d424c7a7595e63664d10264230b8b3132e023"
144
144
  }