@vtx/components 4.0.0-beta.16 → 4.0.0-beta.18

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.
@@ -15,7 +15,7 @@ var _index = require("./style/index");
15
15
  var _ahooks = require("ahooks");
16
16
  var _vtxProvider = require("../vtx-provider");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- var _excluded = ["multiple", "treeData", "placeholder", "treeCheckable", "disabled", "style"],
18
+ var _excluded = ["multiple", "treeData", "placeholder", "treeCheckable", "disabled", "style", "fieldNames", "onChange", "labelInValue"],
19
19
  _excluded2 = ["children"];
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -45,6 +45,14 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
45
45
  _ref$disabled = _ref.disabled,
46
46
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
47
47
  style = _ref.style,
48
+ _ref$fieldNames = _ref.fieldNames,
49
+ fieldNames = _ref$fieldNames === void 0 ? {
50
+ label: "title",
51
+ value: "value",
52
+ children: 'children'
53
+ } : _ref$fieldNames,
54
+ onChange = _ref.onChange,
55
+ labelInValue = _ref.labelInValue,
48
56
  props = _objectWithoutProperties(_ref, _excluded);
49
57
  var intl = (0, _vtxProvider.useIntl)();
50
58
  var _useContext = (0, _react.useContext)(_vtxProvider.VtxProvider),
@@ -73,9 +81,7 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
73
81
  nodes.map(function (item) {
74
82
  var children = item.children,
75
83
  rest = _objectWithoutProperties(item, _excluded2);
76
- keyNodesMapping[item.value || item.key] = _objectSpread(_objectSpread({}, rest), {}, {
77
- id: item.value || item.key
78
- });
84
+ keyNodesMapping[item[fieldNames.value]] = _objectSpread(_objectSpread({}, rest), {}, _defineProperty(_defineProperty({}, fieldNames.value, item[fieldNames.value]), fieldNames.label, item[fieldNames.label]));
79
85
  if (Array.isArray(children) && children.length > 0) {
80
86
  genNodes(children);
81
87
  }
@@ -84,19 +90,17 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
84
90
  return keyNodesMapping;
85
91
  }, [treeData]);
86
92
  var clear = function clear() {
87
- var _props$onChange;
88
- (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, [], [], {});
93
+ onChangeTreeSelect === null || onChangeTreeSelect === void 0 || onChangeTreeSelect([], [], {});
89
94
  };
90
95
  var clearKey = function clearKey(id) {
91
- var _props$onChange2;
92
96
  var newValue = _toConsumableArray(props.value);
93
97
  (0, _pull.default)(newValue, id);
94
98
  var label = newValue.map(function (item) {
95
- return keyNodesMapping[item].title;
99
+ return keyNodesMapping[item[fieldNames.label]];
96
100
  });
97
- (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 || _props$onChange2.call(props, newValue, label, {});
101
+ onChangeTreeSelect === null || onChangeTreeSelect === void 0 || onChangeTreeSelect(newValue, label, {});
98
102
  };
99
- var selectedNodes = (0, _react.useMemo)(function () {
103
+ var getSelectedNodes = function getSelectedNodes(value) {
100
104
  var value_arr = function (val) {
101
105
  if (Array.isArray(val)) {
102
106
  return val;
@@ -105,90 +109,29 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
105
109
  } else {
106
110
  return [];
107
111
  }
108
- }(props.value);
112
+ }(value);
109
113
  var selectedNodes = value_arr.filter(function (k) {
110
- return k in keyNodesMapping;
114
+ if (labelInValue) {
115
+ return k.value in keyNodesMapping;
116
+ } else {
117
+ return k in keyNodesMapping;
118
+ }
111
119
  }).map(function (item) {
112
- return {
113
- id: item,
114
- name: keyNodesMapping[item].title
115
- };
120
+ if (labelInValue) {
121
+ return _objectSpread({}, keyNodesMapping[item.value]);
122
+ }
123
+ return _objectSpread({}, keyNodesMapping[item]);
116
124
  });
117
125
  return selectedNodes;
126
+ };
127
+ var selectedNodes = (0, _react.useMemo)(function () {
128
+ return getSelectedNodes(props.value);
118
129
  }, [props.value, keyNodesMapping]);
119
130
  (0, _react.useEffect)(function () {
120
131
  if (size !== null && size !== void 0 && size.width) {
121
132
  setPopWidth(size === null || size === void 0 ? void 0 : size.width);
122
133
  }
123
134
  }, [size === null || size === void 0 ? void 0 : size.width]);
124
-
125
- // let suffixIconObj = {};
126
- // if (multiple || treeCheckable) {
127
- // suffixIconObj.suffixIcon = (
128
- // <Popover
129
- // content={
130
- // <>
131
- // <div
132
- // className={classnames(`${prefixCls}-count-head`, hashId,)}
133
-
134
- // >
135
- // <span>已选择:{selectedNodes.length}</span>
136
- // <span
137
- // className={classnames(
138
- // selectedNodes.length > 0 && !disabled
139
- // ? 'clear-count'
140
- // : 'disabled-count',
141
- // )}
142
- // onClick={e => {
143
- // if (!disabled) {
144
- // e.stopPropagation();
145
- // clear();
146
- // }
147
- // }}
148
- // >
149
- // 清空已选项
150
- // </span>
151
- // </div>
152
- // {selectedNodes.length > 0 ? (
153
- // selectedNodes.map(item => (
154
- // <Tag
155
- // key={`tab-${item.id}`}
156
- // closable={!disabled}
157
- // onClose={e => {
158
- // e.stopPropagation();
159
- // clearKey(item.id);
160
- // }}
161
- // style={{ marginBottom: '5px' }}
162
- // >
163
- // {item.name && item.name.length > 20
164
- // ? `${item.name.slice(0, 20)}...`
165
- // : item.name}
166
- // </Tag>
167
- // ))
168
- // ) : (
169
- // <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
170
- // )}
171
- // </>
172
- // }
173
- // placement="bottomRight"
174
- // trigger="click"
175
- // // overlayStyle={{ width: popWidth }}
176
- // styles={{ root: { width: popWidth } }}
177
- // >
178
- // <Button
179
- // className={classnames(`${prefixCls}-count`, hashId,)}
180
-
181
- // icon={<MoreOutlined />}
182
- // size="default"
183
- // onClick={e => {
184
- // console.log('click', e)
185
- // e.stopPropagation();
186
- // }}
187
- // />
188
- // </Popover>
189
- // );
190
- // }
191
-
192
135
  var popoverContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
193
136
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
194
137
  className: (0, _classnames.default)("".concat(prefixCls, "-count-head"), hashId),
@@ -205,21 +148,29 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
205
148
  children: intl.getMessage('treeSelect.clearSelectedItems', '清空已选项')
206
149
  })]
207
150
  }), selectedNodes.length > 0 ? selectedNodes.map(function (item) {
151
+ var _item$fieldNames$labe;
208
152
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Tag, {
209
153
  closable: !disabled,
210
154
  onClose: function onClose(e) {
211
155
  e.stopPropagation();
212
- clearKey(item.id);
156
+ clearKey(item[fieldNames.value]);
213
157
  },
214
- style: {
215
- marginBottom: 5
158
+ styles: {
159
+ root: {
160
+ marginBottom: 5,
161
+ marginRight: 5
162
+ }
216
163
  },
217
- children: item.name.length > 20 ? "".concat(item.name.slice(0, 20), "...") : item.name
218
- }, "tab-".concat(item.id));
164
+ children: ((_item$fieldNames$labe = item[fieldNames.label]) === null || _item$fieldNames$labe === void 0 ? void 0 : _item$fieldNames$labe.length) > 20 ? "".concat(item[fieldNames.label].slice(0, 20), "...") : item[fieldNames.label]
165
+ }, "tab-".concat(item[fieldNames.value]));
219
166
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Empty, {
220
167
  image: _antd.Empty.PRESENTED_IMAGE_SIMPLE
221
168
  })]
222
169
  });
170
+ var onChangeTreeSelect = function onChangeTreeSelect(value, label, extra) {
171
+ extra.list = getSelectedNodes(value);
172
+ onChange === null || onChange === void 0 || onChange(value, label, extra);
173
+ };
223
174
  return wrapSSR( /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
224
175
  ref: ref,
225
176
  style: style,
@@ -228,7 +179,7 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
228
179
  style: {
229
180
  width: '100%'
230
181
  },
231
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.TreeSelect, _objectSpread({
182
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.TreeSelect, _objectSpread(_objectSpread({
232
183
  showSearch: true,
233
184
  placeholder: placeholder,
234
185
  treeData: treeData,
@@ -252,8 +203,14 @@ var VtxTreeSelect = exports.VtxTreeSelect = function VtxTreeSelect(_ref) {
252
203
  popup: (0, _classnames.default)("".concat(prefixCls, "-popup"), hashId)
253
204
  },
254
205
  maxTagCount: "responsive",
255
- treeDefaultExpandAll: true
256
- }, props)), (multiple || treeCheckable) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Popover, {
206
+ treeDefaultExpandAll: true,
207
+ fieldNames: fieldNames,
208
+ labelInValue: labelInValue
209
+ }, props), {}, {
210
+ onChange: function onChange(value, label, extra) {
211
+ return onChangeTreeSelect(value, label, extra, selectedNodes);
212
+ }
213
+ })), (multiple || treeCheckable) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_antd.Popover, {
257
214
  open: popOpen,
258
215
  onOpenChange: setPopOpen,
259
216
  placement: "bottomRight",
@@ -34,14 +34,16 @@ var genVtxTreeSelectStyle = function genVtxTreeSelectStyle(token) {
34
34
  color: '@input-placeholder-color'
35
35
  }), '&-count', {
36
36
  marginRight: '-12px'
37
- })), "".concat(componentCls, "-popup"), _defineProperty({}, '&', _defineProperty(_defineProperty({}, '.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title', {
37
+ })), "".concat(componentCls, "-popup"), _defineProperty({}, '&', _defineProperty(_defineProperty(_defineProperty({}, '.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title', {
38
38
  color: '#1890ff'
39
39
  }), '.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-node-selected', {
40
40
  backgroundColor: '#e6f7ff'
41
+ }), '.ant-select-tree .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper', {
42
+ flex: 1
41
43
  }))), "".concat(componentCls, "-count-head"), {
42
44
  display: 'flex',
43
45
  justifyContent: 'space-between',
44
- marginBottom: '5px',
46
+ marginBottom: 5,
45
47
  '.disabled-count': {
46
48
  color: '#aaa',
47
49
  cursor: 'not-allowed'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/components",
3
- "version": "4.0.0-beta.16",
3
+ "version": "4.0.0-beta.18",
4
4
  "description": "React components for Vortex",
5
5
  "keywords": [
6
6
  "react",