@lemon-fe/components 1.2.3 → 1.2.6

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.
@@ -17,7 +17,7 @@ interface ActionBtn extends ButtonProps {
17
17
  disabled?: boolean;
18
18
  } | ReactElement | null)[] | ReactElement;
19
19
  }
20
- interface Props {
20
+ export interface ActionsProps {
21
21
  actions: (ActionBtn | ReactElement | null)[];
22
22
  style?: CSSProperties;
23
23
  className?: string;
@@ -27,6 +27,10 @@ interface Props {
27
27
  */
28
28
  maxShowCount?: number;
29
29
  trackEventAttr?: string;
30
+ /**
31
+ * @description 默认按钮类型
32
+ */
33
+ defaultButtonType?: ButtonProps['type'];
30
34
  }
31
- declare function Actions(props: Props): JSX.Element;
35
+ declare function Actions(props: ActionsProps): JSX.Element;
32
36
  export default Actions;
@@ -1,34 +1,40 @@
1
+ var _excluded = ["dropDown", "text", "onClick", "action", "label", "type"];
1
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["dropDown", "text", "onClick", "action", "label"];
3
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
3
  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); }
6
4
  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; }
7
5
  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; }
8
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
6
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
7
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
8
  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); }
14
9
  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; }
15
10
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
17
  import { Space, Dropdown, Menu, Button, Popover } from 'antd';
18
- import React, { Fragment, useState, isValidElement } from 'react';
18
+ import React, { Fragment, useState, isValidElement, useContext } from 'react';
19
19
  import classNames from 'classnames';
20
+ import { ComponentConfigureContext } from "../component-configure";
20
21
  import { PREFIX_CLS } from "../constants";
21
22
  import Icons from "../icons";
22
23
  function Actions(props) {
23
- var actions = props.actions,
24
- className = props.className,
25
- style = props.style,
26
- _props$prefixCls = props.prefixCls,
27
- prefixCls = _props$prefixCls === void 0 ? PREFIX_CLS : _props$prefixCls,
28
- _props$maxShowCount = props.maxShowCount,
29
- maxShowCount = _props$maxShowCount === void 0 ? Infinity : _props$maxShowCount,
30
- _props$trackEventAttr = props.trackEventAttr,
31
- trackEventAttr = _props$trackEventAttr === void 0 ? 'data-track-event' : _props$trackEventAttr;
24
+ var _useContext = useContext(ComponentConfigureContext),
25
+ defaultActionsProps = _useContext.Actions;
26
+ var _defaultActionsProps$ = _objectSpread(_objectSpread({}, defaultActionsProps), props),
27
+ actions = _defaultActionsProps$.actions,
28
+ className = _defaultActionsProps$.className,
29
+ style = _defaultActionsProps$.style,
30
+ _defaultActionsProps$2 = _defaultActionsProps$.prefixCls,
31
+ prefixCls = _defaultActionsProps$2 === void 0 ? PREFIX_CLS : _defaultActionsProps$2,
32
+ _defaultActionsProps$3 = _defaultActionsProps$.maxShowCount,
33
+ maxShowCount = _defaultActionsProps$3 === void 0 ? Infinity : _defaultActionsProps$3,
34
+ _defaultActionsProps$4 = _defaultActionsProps$.trackEventAttr,
35
+ trackEventAttr = _defaultActionsProps$4 === void 0 ? 'data-track-event' : _defaultActionsProps$4,
36
+ _defaultActionsProps$5 = _defaultActionsProps$.defaultButtonType,
37
+ defaultButtonType = _defaultActionsProps$5 === void 0 ? 'primary' : _defaultActionsProps$5;
32
38
  var _useState = useState(false),
33
39
  _useState2 = _slicedToArray(_useState, 2),
34
40
  visible = _useState2[0],
@@ -61,6 +67,8 @@ function Actions(props) {
61
67
  onClick = item.onClick,
62
68
  action = item.action,
63
69
  label = item.label,
70
+ _item$type = item.type,
71
+ buttonType = _item$type === void 0 ? defaultButtonType : _item$type,
64
72
  rest = _objectWithoutProperties(item, _excluded);
65
73
  var trackAttr = getTrackAttr(text);
66
74
  if ( /*#__PURE__*/isValidElement(text)) {
@@ -108,13 +116,14 @@ function Actions(props) {
108
116
  overlayStyle: {
109
117
  minWidth: 80
110
118
  },
119
+ type: buttonType,
111
120
  buttonsRender: function buttonsRender(_ref2) {
112
121
  var _ref3 = _slicedToArray(_ref2, 1),
113
122
  leftBtn = _ref3[0];
114
123
  return [leftBtn, /*#__PURE__*/React.createElement(Button, {
115
124
  icon: /*#__PURE__*/React.createElement(Icons.More, null),
116
- type: rest.type,
117
- key: "more"
125
+ key: "more",
126
+ type: buttonType
118
127
  })];
119
128
  }
120
129
  }, rest), /*#__PURE__*/React.createElement("span", trackAttr, text));
@@ -124,7 +133,9 @@ function Actions(props) {
124
133
  disabled: rest.disabled,
125
134
  overlay: overlay,
126
135
  trigger: ['click']
127
- }, /*#__PURE__*/React.createElement(Button, rest, text, /*#__PURE__*/React.createElement(Icons.Down, {
136
+ }, /*#__PURE__*/React.createElement(Button, _extends({
137
+ type: buttonType
138
+ }, rest), text, /*#__PURE__*/React.createElement(Icons.Down, {
128
139
  style: {
129
140
  opacity: 0.7
130
141
  }
@@ -132,7 +143,8 @@ function Actions(props) {
132
143
  }
133
144
  return /*#__PURE__*/React.createElement(Button, _extends({
134
145
  key: text,
135
- onClick: handleClick
146
+ onClick: handleClick,
147
+ type: buttonType
136
148
  }, trackAttr, rest), text);
137
149
  }), collapsedBtns.length > 0 ? /*#__PURE__*/React.createElement(Popover, {
138
150
  placement: "bottomRight",
@@ -1,10 +1,12 @@
1
1
  /// <reference types="react" />
2
+ import type { ActionsProps } from '../actions';
2
3
  import type { FilterProps } from '../filter/typings';
3
4
  import type { AgGridReactProps } from '@ag-grid-community/react';
4
5
  interface ContextProps {
5
6
  /** 目前DataGrid由于是类组件,比较难处理,只支持ag-grid自带的属性 */
6
7
  DataGrid?: Omit<AgGridReactProps<any>, 'rowSelection' | 'pagination'>;
7
8
  Filter?: FilterProps<any>;
9
+ Actions?: Partial<ActionsProps>;
8
10
  }
9
11
  export declare const ComponentConfigureContext: import("react").Context<ContextProps>;
10
12
  export declare const ComponentConfigureProvider: import("react").Provider<ContextProps>;
@@ -91,15 +91,17 @@ export default /*#__PURE__*/forwardRef(function SelectEditor(props, ref) {
91
91
  width: '100%'
92
92
  },
93
93
  optionFilterProp: optionFilterProp,
94
+ onSelect: function onSelect() {
95
+ if (mode === undefined) {
96
+ nextAction();
97
+ }
98
+ },
94
99
  onChange: function onChange(changedValue, opt) {
95
100
  if (valueByOption) {
96
101
  setValue(opt);
97
102
  } else {
98
103
  setValue(changedValue);
99
104
  }
100
- if (mode === undefined) {
101
- nextAction();
102
- }
103
105
  }
104
106
  }));
105
107
  });
@@ -11,6 +11,12 @@ import { useLocaleReceiver } from "../../locale-receiver";
11
11
  import { parseLocalTemplate } from "../../locale/locale";
12
12
  import { editorPrefixClass, navigateCell } from "./utils";
13
13
  import EditorWrapper from "./wrapper";
14
+ function trimInput(val) {
15
+ if (typeof val === 'string') {
16
+ return val.trim();
17
+ }
18
+ return val;
19
+ }
14
20
  export default /*#__PURE__*/forwardRef(function TextEditor(props, ref) {
15
21
  var disabled = props.disabled,
16
22
  maxLength = props.maxLength,
@@ -27,7 +33,7 @@ export default /*#__PURE__*/forwardRef(function TextEditor(props, ref) {
27
33
  if (props.charPress) {
28
34
  return [props.charPress, false];
29
35
  }
30
- return [props.value, true];
36
+ return [trimInput(props.value), true];
31
37
  }, []),
32
38
  _useMemo2 = _slicedToArray(_useMemo, 2),
33
39
  defaultValue = _useMemo2[0],
@@ -63,7 +69,7 @@ export default /*#__PURE__*/forwardRef(function TextEditor(props, ref) {
63
69
  return false;
64
70
  },
65
71
  getValue: function getValue() {
66
- return value;
72
+ return trimInput(value);
67
73
  }
68
74
  };
69
75
  });
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { FieldCol, Node } from './typings';
3
3
  interface Props {
4
+ enableSummary: boolean;
4
5
  open?: boolean | FieldCol;
5
6
  onCancel: () => void;
6
7
  onOk: (field: FieldCol) => void;
@@ -24,7 +24,8 @@ export default function FieldModal(props) {
24
24
  var openProp = props.open,
25
25
  _onCancel = props.onCancel,
26
26
  nodes = props.nodes,
27
- onOk = props.onOk;
27
+ onOk = props.onOk,
28
+ enableSummary = props.enableSummary;
28
29
  var _useState = useState(false),
29
30
  _useState2 = _slicedToArray(_useState, 2),
30
31
  open = _useState2[0],
@@ -188,7 +189,7 @@ export default function FieldModal(props) {
188
189
  style: {
189
190
  height: 120
190
191
  }
191
- })), /*#__PURE__*/React.createElement(Form.Item, {
192
+ })), enableSummary ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Form.Item, {
192
193
  label: " ",
193
194
  name: "summary",
194
195
  valuePropName: "checked"
@@ -209,7 +210,7 @@ export default function FieldModal(props) {
209
210
  label: fieldModal.dataSourceSummaryDataText,
210
211
  value: 2
211
212
  }]
212
- }))))), /*#__PURE__*/React.createElement("div", {
213
+ }))) : null))), /*#__PURE__*/React.createElement("div", {
213
214
  className: prefix('column-panel-modal-gutter')
214
215
  }), /*#__PURE__*/React.createElement("div", {
215
216
  className: prefix('column-panel-modal-right')
@@ -2,4 +2,5 @@
2
2
  import type { IToolPanelParams } from '@ag-grid-community/core';
3
3
  export default function CustomColumnPanel(params: IToolPanelParams & {
4
4
  enableSave: boolean;
5
+ enableSummary: boolean;
5
6
  }): JSX.Element;
@@ -24,7 +24,8 @@ import classNames from 'classnames';
24
24
  export default function CustomColumnPanel(params) {
25
25
  var columnApi = params.columnApi,
26
26
  api = params.api,
27
- enableSave = params.enableSave;
27
+ enableSave = params.enableSave,
28
+ enableSummary = params.enableSummary;
28
29
  var _useState = useState(false),
29
30
  _useState2 = _slicedToArray(_useState, 2),
30
31
  searching = _useState2[0],
@@ -359,6 +360,7 @@ export default function CustomColumnPanel(params) {
359
360
  size: "small"
360
361
  }, dataGridLocale.saveText) : null)), /*#__PURE__*/React.createElement(FieldModal, {
361
362
  open: field,
363
+ enableSummary: enableSummary,
362
364
  nodes: list,
363
365
  onCancel: function onCancel() {
364
366
  setField(false);
@@ -62,7 +62,7 @@ import CellIndexRender from "./renderer/cell-index-renderer";
62
62
  import CellRenderer from "./renderer/cell-renderer";
63
63
  import DetailCellRenderer from "./renderer/detali-cell-renderer";
64
64
  import HeaderRenderer from "./renderer/header-renderer";
65
- import { prefix, getColField, isColumn, withSyncRender, Store, Selection, columnTypes } from "./utils";
65
+ import { prefix, getColField, isColumn, withSyncRender, Store, Selection, getDefaultColumnTypes } from "./utils";
66
66
  import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
67
67
  import { ModuleRegistry, GridApi, ColumnApi } from '@ag-grid-community/core';
68
68
  import { InfiniteRowModelModule } from '@ag-grid-community/infinite-row-model';
@@ -182,7 +182,8 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
182
182
  iconKey: 'columns',
183
183
  toolPanel: CustomColumnPanel,
184
184
  toolPanelParams: {
185
- enableSave: !!_this.props.customColumnPanelStorage
185
+ enableSave: !!_this.props.customColumnPanelStorage,
186
+ enableSummary: _this.isClientMode()
186
187
  }
187
188
  }]
188
189
  });
@@ -413,7 +414,8 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
413
414
  return shallowEqual(prev[0], next[0]);
414
415
  }));
415
416
  _defineProperty(_assertThisInitialized(_this), "getMemoizedColumnTypes", memoizeOne(function (columnTypesProp) {
416
- return _objectSpread(_objectSpread({}, columnTypes), columnTypesProp);
417
+ var locale = _this.props.locale;
418
+ return _objectSpread(_objectSpread({}, getDefaultColumnTypes(locale)), columnTypesProp);
417
419
  }));
418
420
  _defineProperty(_assertThisInitialized(_this), "getMemoizedLocaleText", memoizeOne(function (localeTextProp) {
419
421
  return _objectSpread(_objectSpread({}, _this.props.localeText), localeTextProp);
@@ -824,8 +826,7 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
824
826
  }
825
827
  var _this$props6 = this.props,
826
828
  mColumnTypes = _this$props6.columnTypes,
827
- mDefaultColDef = _this$props6.defaultColDef,
828
- locale = _this$props6.locale;
829
+ mDefaultColDef = _this$props6.defaultColDef;
829
830
  var colTypes = this.getMemoizedColumnTypes(mColumnTypes);
830
831
  var result = {};
831
832
  var types;
@@ -208,6 +208,7 @@
208
208
 
209
209
  &-left {
210
210
  width: 360px;
211
+ min-height: 210px;
211
212
  padding-right: @padding-md;
212
213
  }
213
214
 
@@ -50,6 +50,7 @@ var locale = {
50
50
  selectedTipText: '${length} Selected',
51
51
  clearSelectedText: 'Clear',
52
52
  moreText: 'More',
53
- actionText: 'Action'
53
+ actionText: 'Action',
54
+ index: 'IDX'
54
55
  };
55
56
  export default locale;
@@ -32,4 +32,5 @@ export interface DataGridLocale {
32
32
  searchNextText: string;
33
33
  selectedTipText: string;
34
34
  clearSelectedText: string;
35
+ index: string;
35
36
  }
@@ -50,6 +50,7 @@ var locale = {
50
50
  selectedTipText: '已选${length}条',
51
51
  clearSelectedText: '清空已选',
52
52
  moreText: '更多',
53
- actionText: '操作'
53
+ actionText: '操作',
54
+ index: '序号'
54
55
  };
55
56
  export default locale;
@@ -1,3 +1,4 @@
1
+ import type { DataGridLocale } from './locale/locale';
1
2
  import type { ColType, ColGroupType, PathType } from './typings';
2
3
  import type { ColDef, ColGroupDef } from '@ag-grid-community/core';
3
4
  import { Subject } from '@lemon-fe/utils';
@@ -49,3 +50,4 @@ export declare class Selection<T> {
49
50
  listen(cb: (keys: string[]) => void): () => void;
50
51
  }
51
52
  export declare const columnTypes: Record<string, ColDef>;
53
+ export declare function getDefaultColumnTypes(locale: DataGridLocale): Record<string, ColDef<any>>;
@@ -290,4 +290,8 @@ export var columnTypes = {
290
290
  cellClass: prefix('center-aligned-cell'),
291
291
  headerClass: prefix('center-aligned-header')
292
292
  }
293
- };
293
+ };
294
+ export function getDefaultColumnTypes(locale) {
295
+ columnTypes.index.headerName = locale.index;
296
+ return columnTypes;
297
+ }
@@ -78,10 +78,6 @@ export default function SelectView(props) {
78
78
  _useState12 = _slicedToArray(_useState11, 2),
79
79
  siderWidth = _useState12[0],
80
80
  setSiderWidth = _useState12[1];
81
- var _useState13 = useState(false),
82
- _useState14 = _slicedToArray(_useState13, 2),
83
- dragging = _useState14[0],
84
- setDragging = _useState14[1];
85
81
  var filterForm = mergeProp(Form.useForm()[0], filter === null || filter === void 0 ? void 0 : filter.form);
86
82
  var cParams = (filter === null || filter === void 0 ? void 0 : filter.value) || params;
87
83
  var getRowKey = function getRowKey(item) {
@@ -203,12 +199,6 @@ export default function SelectView(props) {
203
199
  axis: "x",
204
200
  height: 0,
205
201
  width: siderWidth,
206
- onResizeStart: function onResizeStart() {
207
- setDragging(true);
208
- },
209
- onResizeStop: function onResizeStop() {
210
- setDragging(false);
211
- },
212
202
  onResize: function onResize(_, _ref2) {
213
203
  var size = _ref2.size;
214
204
  setSiderWidth(size.width);
@@ -217,11 +207,13 @@ export default function SelectView(props) {
217
207
  className: prefix('sider-resizable')
218
208
  })
219
209
  }, /*#__PURE__*/React.createElement("div", {
210
+ className: prefix('sider-wrapper'),
220
211
  style: {
221
212
  width: "".concat(siderWidth, "px")
222
- },
223
- className: classNames(prefix('sider'), _defineProperty({}, prefix('sider-resizing'), dragging))
224
- }, siderNode)), /*#__PURE__*/React.createElement("div", {
213
+ }
214
+ }, /*#__PURE__*/React.createElement("div", {
215
+ className: classNames(prefix('sider'))
216
+ }, siderNode))), /*#__PURE__*/React.createElement("div", {
225
217
  className: prefix('main')
226
218
  }, headerNode !== null && /*#__PURE__*/React.createElement("div", {
227
219
  className: prefix('head')
@@ -28,12 +28,18 @@
28
28
  }
29
29
 
30
30
  &-sider {
31
- position: relative;
32
- width: 200px;
31
+ width: 100%;
32
+ height: 100%;
33
33
  padding: @padding-md @padding-md @padding-md 0;
34
34
  overflow: auto;
35
35
  border-right: 1px solid @border-color-split;
36
36
 
37
+ &-wrapper {
38
+ position: relative;
39
+ width: 200px;
40
+ height: 100%;
41
+ }
42
+
37
43
  &-resizable {
38
44
  position: absolute;
39
45
  top: 0;
@@ -42,14 +48,8 @@
42
48
  width: 17px;
43
49
  height: 100%;
44
50
  padding: 0 8px;
45
- background-color: @border-color-split;
46
- background-clip: content-box;
47
51
  cursor: col-resize;
48
52
  }
49
-
50
- &:not(&-resizing) {
51
- transition: width 0.2s;
52
- }
53
53
  }
54
54
 
55
55
  &-main {
@@ -60,7 +60,7 @@
60
60
  padding: @padding-md 0;
61
61
  }
62
62
 
63
- &-sider + &-main {
63
+ &-sider-wrapper + &-main {
64
64
  padding-left: @padding-md;
65
65
  }
66
66
 
@@ -4,44 +4,69 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
4
4
  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."); }
5
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
6
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ 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); }
7
8
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
9
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
10
  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); }
10
11
  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; }
11
12
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
- 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); }
14
14
  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; }
15
15
  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; }
16
16
  import { Input, Tabs, Tree } from 'antd';
17
17
  import React, { useMemo, useState } from 'react';
18
- import { PREFIX_CLS } from "../constants";
19
18
  import { EmptyImage } from "../empty";
20
19
  import Icons from "../icons";
21
20
  import { useLocaleReceiver } from "../locale-receiver";
21
+ import Select from "../select";
22
22
  import { mapChildren, prefixClassName } from "../utils";
23
23
  import TreeNodeTitle from "./tree-node-title";
24
24
  import { useDebounce } from '@lemon-fe/hooks';
25
25
  import ResizeObserver from 'rc-resize-observer';
26
+ var prefix = prefixClassName('tree');
26
27
  function SiderTreeTabs(props) {
28
+ var _items$;
27
29
  var tabs = props.tabs,
28
30
  children = props.children,
29
31
  restProps = _objectWithoutProperties(props, _excluded);
30
32
  var getKey = function getKey(item) {
31
33
  return item.key || item.title;
32
34
  };
33
- var prefixCls = "".concat(PREFIX_CLS, "-tree");
34
- return /*#__PURE__*/React.createElement(Tabs, _extends({
35
- className: "".concat(prefixCls, "-tabs")
36
- }, restProps), mapChildren(children, function (child, index) {
35
+ var items = mapChildren(children, function (child, index) {
37
36
  var tab = tabs[index];
38
- return /*#__PURE__*/React.createElement(Tabs.TabPane, {
39
- tab: tab.title,
40
- key: getKey(tab)
41
- }, child);
37
+ return {
38
+ key: getKey(tab),
39
+ label: tab.title,
40
+ children: child
41
+ };
42
+ });
43
+ var _useState = useState((_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.key),
44
+ _useState2 = _slicedToArray(_useState, 2),
45
+ activeKey = _useState2[0],
46
+ setActiveKey = _useState2[1];
47
+ return /*#__PURE__*/React.createElement(Tabs, _extends({
48
+ className: prefix('tabs')
49
+ }, restProps, {
50
+ items: items,
51
+ activeKey: activeKey,
52
+ renderTabBar: function renderTabBar() {
53
+ return /*#__PURE__*/React.createElement("div", {
54
+ className: prefix('tabbar')
55
+ }, /*#__PURE__*/React.createElement(Select, {
56
+ value: activeKey,
57
+ onChange: function onChange(val) {
58
+ setActiveKey(val);
59
+ },
60
+ options: items.map(function (item) {
61
+ return {
62
+ label: item.label,
63
+ value: item.key
64
+ };
65
+ })
66
+ }));
67
+ }
42
68
  }));
43
69
  }
44
- var prefix = prefixClassName('tree');
45
70
  export default function SiderTree(props) {
46
71
  var _props$data = props.data,
47
72
  mData = _props$data === void 0 ? [] : _props$data,
@@ -54,14 +79,14 @@ export default function SiderTree(props) {
54
79
  footer = props.footer,
55
80
  heightProp = props.height,
56
81
  restProps = _objectWithoutProperties(props, _excluded2);
57
- var _useState = useState(''),
58
- _useState2 = _slicedToArray(_useState, 2),
59
- keywords = _useState2[0],
60
- setKeywords = _useState2[1];
61
- var _useState3 = useState(heightProp !== 'auto' ? heightProp : 0),
82
+ var _useState3 = useState(''),
62
83
  _useState4 = _slicedToArray(_useState3, 2),
63
- height = _useState4[0],
64
- setHeight = _useState4[1];
84
+ keywords = _useState4[0],
85
+ setKeywords = _useState4[1];
86
+ var _useState5 = useState(heightProp !== 'auto' ? heightProp : 0),
87
+ _useState6 = _slicedToArray(_useState5, 2),
88
+ height = _useState6[0],
89
+ setHeight = _useState6[1];
65
90
  var _useLocaleReceiver = useLocaleReceiver('SiderTree'),
66
91
  _useLocaleReceiver2 = _slicedToArray(_useLocaleReceiver, 1),
67
92
  SiderTreeLocale = _useLocaleReceiver2[0];
@@ -46,6 +46,15 @@
46
46
  .fullTabs();
47
47
  }
48
48
 
49
+ &-tabbar {
50
+ width: 100%;
51
+ margin-bottom: @padding-md;
52
+
53
+ .@{ant-prefix}-select {
54
+ width: 100%;
55
+ }
56
+ }
57
+
49
58
  &-body {
50
59
  min-height: 0;
51
60
  overflow: auto;
@@ -110,7 +119,7 @@
110
119
  &-empty {
111
120
  width: 72px;
112
121
  margin: 0 auto;
113
- padding-top: 75px;
122
+ padding-top: 60px;
114
123
  text-align: center;
115
124
 
116
125
  img {
@@ -120,7 +129,6 @@
120
129
  }
121
130
 
122
131
  div {
123
- margin-top: 8px;
124
132
  color: rgba(51, 51, 51, 0.5);
125
133
  font-size: 14px;
126
134
  line-height: 22px;
@@ -145,6 +153,10 @@
145
153
  }
146
154
  }
147
155
 
156
+ .@{prefixCls}-tree-tabbar {
157
+ padding-right: @padding-sm;
158
+ }
159
+
148
160
  .@{ant-prefix}-tabs-tabpane > .@{prefixCls}-tree-wrapper {
149
161
  padding: 0;
150
162
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemon-fe/components",
3
- "version": "1.2.3",
3
+ "version": "1.2.6",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "",
6
6
  "license": "ISC",
@@ -67,5 +67,5 @@
67
67
  "publishConfig": {
68
68
  "registry": "https://registry.npmjs.org"
69
69
  },
70
- "gitHead": "831556422221ead3da6a017b786192be272de57e"
70
+ "gitHead": "7b763aefca55e7824e8d525383b3bf13b9163bcc"
71
71
  }