@pisell/materials 1.0.478 → 1.0.480

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 (100) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +5 -5
  6. package/build/lowcode/preview.js +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +18 -18
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +17 -17
  11. package/es/components/browserSelect/index.d.ts +8 -2
  12. package/es/components/browserSelect/index.js +32 -10
  13. package/es/components/browserSelect/index.less +50 -6
  14. package/es/components/dataSourceComponents/dataSourceForm/BaseForm.js +2 -1
  15. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.d.ts +1 -0
  16. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.js +2 -1
  17. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.js +5 -3
  18. package/es/components/dataSourceComponents/dataSourceForm/type.d.ts +1 -0
  19. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +4 -1
  20. package/es/components/dataSourceComponents/dataSourceForm/utils.js +12 -9
  21. package/es/components/dataSourceComponents/dataSourceTable/hooks/useFormat.d.ts +1 -0
  22. package/es/components/dataSourceComponents/dataSourceTable/hooks/useFormat.js +35 -2
  23. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +2 -2
  24. package/es/components/dataSourceComponents/fields/Checkbox/index.js +3 -1
  25. package/es/components/dataSourceComponents/fields/ColorPicker/index.d.ts +1 -1
  26. package/es/components/dataSourceComponents/fields/DatePicker/WithMode.js +2 -2
  27. package/es/components/dataSourceComponents/fields/DatePicker/index.js +4 -2
  28. package/es/components/dataSourceComponents/fields/InputNumber/index.js +4 -2
  29. package/es/components/dataSourceComponents/fields/Select/WithMode.js +1 -1
  30. package/es/components/dataSourceComponents/fields/TimePicker/WithMode.d.ts +4 -3
  31. package/es/components/dataSourceComponents/fields/TimePicker/WithMode.js +94 -1
  32. package/es/components/dataSourceComponents/fields/TimePicker/index.d.ts +1 -1
  33. package/es/components/dataSourceComponents/fields/TimePicker/index.js +7 -1
  34. package/es/components/dataSourceComponents/fields/TimePicker/style.less +86 -0
  35. package/es/components/dataSourceComponents/fields/index.d.ts +2 -2
  36. package/es/components/dataSourceComponents/hooks/useActions.js +6 -5
  37. package/es/components/date-picker/datePickerCpt.d.ts +1 -0
  38. package/es/components/date-picker/datePickerCpt.js +7 -3
  39. package/es/components/date-picker/index.js +2 -2
  40. package/es/components/date-picker/index.less +1 -1
  41. package/es/components/page/index.js +6 -0
  42. package/es/components/select/index.d.ts +3 -3
  43. package/es/components/select/index.js +58 -16
  44. package/es/components/table/Table/utils.d.ts +1 -1
  45. package/es/locales/en-US.d.ts +1 -0
  46. package/es/locales/en-US.js +1 -0
  47. package/es/locales/zh-CN.d.ts +1 -0
  48. package/es/locales/zh-CN.js +1 -0
  49. package/es/locales/zh-TW.d.ts +1 -0
  50. package/es/locales/zh-TW.js +1 -0
  51. package/lib/components/browserSelect/index.d.ts +8 -2
  52. package/lib/components/browserSelect/index.js +16 -10
  53. package/lib/components/browserSelect/index.less +50 -6
  54. package/lib/components/dataSourceComponents/dataSourceForm/BaseForm.js +2 -1
  55. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.d.ts +1 -0
  56. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.js +2 -1
  57. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.js +4 -3
  58. package/lib/components/dataSourceComponents/dataSourceForm/type.d.ts +1 -0
  59. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +4 -1
  60. package/lib/components/dataSourceComponents/dataSourceForm/utils.js +11 -10
  61. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useFormat.d.ts +1 -0
  62. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useFormat.js +42 -1
  63. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +2 -2
  64. package/lib/components/dataSourceComponents/fields/Checkbox/index.js +3 -1
  65. package/lib/components/dataSourceComponents/fields/ColorPicker/index.d.ts +1 -1
  66. package/lib/components/dataSourceComponents/fields/DatePicker/WithMode.js +2 -2
  67. package/lib/components/dataSourceComponents/fields/DatePicker/index.js +4 -2
  68. package/lib/components/dataSourceComponents/fields/InputNumber/index.js +4 -2
  69. package/lib/components/dataSourceComponents/fields/Select/WithMode.js +2 -2
  70. package/lib/components/dataSourceComponents/fields/TimePicker/WithMode.d.ts +4 -3
  71. package/lib/components/dataSourceComponents/fields/TimePicker/WithMode.js +89 -3
  72. package/lib/components/dataSourceComponents/fields/TimePicker/index.d.ts +1 -1
  73. package/lib/components/dataSourceComponents/fields/TimePicker/index.js +7 -1
  74. package/lib/components/dataSourceComponents/fields/TimePicker/style.less +86 -0
  75. package/lib/components/dataSourceComponents/fields/index.d.ts +2 -2
  76. package/lib/components/dataSourceComponents/hooks/useActions.js +5 -5
  77. package/lib/components/date-picker/datePickerCpt.d.ts +1 -0
  78. package/lib/components/date-picker/datePickerCpt.js +5 -2
  79. package/lib/components/date-picker/index.js +2 -2
  80. package/lib/components/date-picker/index.less +1 -1
  81. package/lib/components/page/index.js +2 -0
  82. package/lib/components/select/index.d.ts +3 -3
  83. package/lib/components/select/index.js +62 -13
  84. package/lib/components/table/Table/utils.d.ts +1 -1
  85. package/lib/locales/en-US.d.ts +1 -0
  86. package/lib/locales/en-US.js +1 -0
  87. package/lib/locales/zh-CN.d.ts +1 -0
  88. package/lib/locales/zh-CN.js +1 -0
  89. package/lib/locales/zh-TW.d.ts +1 -0
  90. package/lib/locales/zh-TW.js +1 -0
  91. package/lowcode/data-source-form/utils.ts +11 -0
  92. package/lowcode/form-item-date-picker/meta.ts +265 -120
  93. package/lowcode/form-item-date-picker/snippets.ts +43 -40
  94. package/lowcode/form-item-select/meta.ts +2 -1
  95. package/lowcode/form-item-time-picker/meta.ts +99 -30
  96. package/lowcode/form-item-time-picker/snippets.ts +5 -2
  97. package/lowcode/select/meta.ts +17 -0
  98. package/package.json +3 -3
  99. package/es/components/browserSelect/chevron-down.png +0 -0
  100. package/lib/components/browserSelect/chevron-down.png +0 -0
@@ -0,0 +1,86 @@
1
+ .pisell-h5-time-picker-wrapper {
2
+ position: relative;
3
+ width: 100%;
4
+ display: inline-flex;
5
+ align-items: center;
6
+
7
+ .pisell-h5-time-picker-suffix {
8
+ position: absolute;
9
+ right: 11px;
10
+ color: var(--pisell-lowcode-color-icon, #98A2B3);
11
+ pointer-events: none;
12
+ z-index: 1;
13
+ cursor: pointer;
14
+ }
15
+ }
16
+
17
+ .pisell-h5-time-picker {
18
+ width: 100%;
19
+ padding: 4px 11px;
20
+ color: var(--pisell-lowcode-color-text);
21
+ font-size: 14px;
22
+ line-height: 1.5714285714285714;
23
+ background-color: var(--pisell-lowcode-color-bg-container);
24
+ border: 1px solid var(--pisell-lowcode-color-border);
25
+ border-radius: var(--pisell-lowcode-border-radius);
26
+ transition: all 0.2s;
27
+ outline: none;
28
+ box-sizing: border-box;
29
+
30
+ // 让原生图标透明但保持可点击
31
+ &::-webkit-calendar-picker-indicator {
32
+ opacity: 0;
33
+ width: 20px;
34
+ height: 20px;
35
+ cursor: pointer;
36
+ position: absolute;
37
+ right: 8px;
38
+ }
39
+ &::-webkit-time-picker-indicator {
40
+ opacity: 0;
41
+ width: 20px;
42
+ height: 20px;
43
+ cursor: pointer;
44
+ position: absolute;
45
+ right: 8px;
46
+ }
47
+
48
+ // 默认是 middle 尺寸
49
+ height: 32px;
50
+
51
+ &.pisell-h5-time-picker-lg {
52
+ padding: 7px 11px;
53
+ height: 40px;
54
+ font-size: 16px;
55
+ }
56
+
57
+ &.pisell-h5-time-picker-sm {
58
+ padding: 0px 7px;
59
+ height: 24px;
60
+ }
61
+
62
+ &:hover {
63
+ border-color: var(--pisell-lowcode-color-primary);
64
+ }
65
+
66
+ &:focus {
67
+ border-color: var(--pisell-lowcode-color-primary);
68
+ box-shadow: 0 0 0 2px var(--pisell-lowcode-color-primary-bg-hover);
69
+ outline: 0;
70
+ }
71
+
72
+ &:disabled {
73
+ color: var(--pisell-lowcode-color-text-disabled);
74
+ background-color: var(--pisell-lowcode-color-bg-container-disabled);
75
+ border-color: var(--pisell-lowcode-color-border);
76
+ box-shadow: none;
77
+ cursor: not-allowed;
78
+ }
79
+
80
+ &::placeholder {
81
+ color: var(--pisell-lowcode-color-text-placeholder);
82
+ }
83
+
84
+ // 添加右侧padding以容纳图标
85
+ padding-right: 30px !important;
86
+ }
@@ -30,7 +30,7 @@ declare const formFieldMap: {
30
30
  }) => import("react").JSX.Element;
31
31
  InputNumber: import("react").FC<any>;
32
32
  Percent: import("react").FC<any>;
33
- TimePicker: import("react").FC<import("antd").TimePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
33
+ TimePicker: import("react").FC<import("./TimePicker/type").TimePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
34
34
  'Input.JSON': import("react").FC<any>;
35
35
  'Input.URL': import("react").FC<import("antd").InputProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
36
36
  'Input.Password': import("react").FC<import("antd/es/input").PasswordProps & import("react").RefAttributes<import("antd").InputRef> & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
@@ -60,5 +60,5 @@ declare const getFieldComponent: (fieldComponent: string) => import("react").FC<
60
60
  valueField: string;
61
61
  } & {
62
62
  dataSource?: any;
63
- }) => import("react").JSX.Element) | import("react").FC<import("antd").TimePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./DateRangePicker/type").DateRangePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
63
+ }) => import("react").JSX.Element) | import("react").FC<import("./TimePicker/type").TimePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps> | import("react").FC<import("./DateRangePicker/type").DateRangePickerProps & import("../dataSourceForm/utils").WithModeProps & import("../dataSourceForm/utils").WithFormItemProps>;
64
64
  export { getFieldComponent, formFieldMap };
@@ -35,7 +35,8 @@ var useActions = function useActions() {
35
35
  fields: fields || []
36
36
  }),
37
37
  formatListResult = _useFormat.formatListResult,
38
- formatListParams = _useFormat.formatListParams;
38
+ formatListParams = _useFormat.formatListParams,
39
+ formatCreateUpdateParams = _useFormat.formatCreateUpdateParams;
39
40
  var getParsedActions = useMemoizedFn(function () {
40
41
  return parseActions(originalActions, {});
41
42
  });
@@ -103,7 +104,7 @@ var useActions = function useActions() {
103
104
  }
104
105
  actions = getParsedActions();
105
106
  createApi = genCustomApi(actions === null || actions === void 0 ? void 0 : actions.create);
106
- return _context2.abrupt("return", createApi(values));
107
+ return _context2.abrupt("return", createApi(formatCreateUpdateParams(values)));
107
108
  case 6:
108
109
  if (name) {
109
110
  _context2.next = 8;
@@ -113,7 +114,7 @@ var useActions = function useActions() {
113
114
  case 8:
114
115
  return _context2.abrupt("return", createNocobaseData({
115
116
  key: name,
116
- data: values,
117
+ data: formatCreateUpdateParams(values),
117
118
  headers: getHeaders()
118
119
  }));
119
120
  case 9:
@@ -186,7 +187,7 @@ var useActions = function useActions() {
186
187
  return _context4.abrupt("return", {});
187
188
  case 4:
188
189
  updateApi = genCustomApi(actions === null || actions === void 0 ? void 0 : actions.update);
189
- return _context4.abrupt("return", updateApi(values));
190
+ return _context4.abrupt("return", updateApi(formatCreateUpdateParams(values)));
190
191
  case 8:
191
192
  id = values === null || values === void 0 ? void 0 : values.id;
192
193
  if (!(!id || !name)) {
@@ -199,7 +200,7 @@ var useActions = function useActions() {
199
200
  return _context4.abrupt("return", updateNocobaseData({
200
201
  key: name,
201
202
  id: id,
202
- data: values,
203
+ data: formatCreateUpdateParams(values),
203
204
  headers: getHeaders()
204
205
  }));
205
206
  case 13:
@@ -3,6 +3,7 @@ import { PickerDateProps } from 'antd/es/date-picker/generatePicker';
3
3
  import { Dayjs } from 'dayjs';
4
4
  import './index.less';
5
5
  interface DatePickerCptProps extends PickerDateProps<Dayjs> {
6
+ showTime: any;
6
7
  }
7
8
  declare const DatePickerCpt: (props: DatePickerCptProps) => React.JSX.Element;
8
9
  export default DatePickerCpt;
@@ -128,7 +128,7 @@ var DatePickerCpt = function DatePickerCpt(props) {
128
128
  if (isFunction(propsFormat)) {
129
129
  return propsFormat(value);
130
130
  }
131
- return propsFormat;
131
+ return propsFormat + (showTime !== null && showTime !== void 0 && showTime.format ? " ".concat(showTime === null || showTime === void 0 ? void 0 : showTime.format) : '');
132
132
  }
133
133
  var localeValue = locale === null || locale === void 0 ? void 0 : locale.locale;
134
134
  return localeValue === 'en' || localeValue === 'en-US' ? 'DD/MM/YYYY' : 'YYYY/MM/DD';
@@ -161,8 +161,12 @@ var DatePickerCpt = function DatePickerCpt(props) {
161
161
  setPopupOpen(visible);
162
162
  };
163
163
  var handleOk = function handleOk(val) {
164
- var returnValue = val || _value;
165
- onChange === null || onChange === void 0 ? void 0 : onChange(returnValue, returnValue === null || returnValue === void 0 ? void 0 : returnValue.format('YYYY-MM-DD'));
164
+ var _returnValue;
165
+ var returnValue = val;
166
+ if (returnValue !== null) {
167
+ returnValue = returnValue || _value;
168
+ }
169
+ onChange === null || onChange === void 0 ? void 0 : onChange(returnValue, (_returnValue = returnValue) === null || _returnValue === void 0 ? void 0 : _returnValue.format('YYYY-MM-DD'));
166
170
  handleOpenChange(false);
167
171
  };
168
172
  var handleChange = function handleChange(val, valStr, isNotChange) {
@@ -1,15 +1,15 @@
1
+ import { DatePicker as OriginalDatePicker } from 'antd';
1
2
  import { withMomentProps } from "../../utils/hoc";
2
3
  import dayjs from 'dayjs';
3
4
  import { RangePicker, OldPisellDateRangePicker } from "@pisell/date-picker";
4
5
  import localeData from 'dayjs/plugin/localeData';
5
6
  import weekday from 'dayjs/plugin/weekday';
6
- import DatePickerCpt from "./datePickerCpt";
7
7
  dayjs.extend(weekday);
8
8
  dayjs.extend(localeData);
9
9
 
10
10
  // const OriginalRangePicker = OriginalDatePicker.RangePicker;
11
11
 
12
- var DatePicker = withMomentProps(DatePickerCpt, ['defaultPickerValue', 'defaultValue', 'showTime.defaultValue', 'value']);
12
+ var DatePicker = withMomentProps(OriginalDatePicker, ['defaultPickerValue', 'defaultValue', 'showTime.defaultValue', 'value']);
13
13
 
14
14
  // const RangePicker = withMomentProps(OriginalRangePicker, [
15
15
  // 'defaultPickerValue',
@@ -231,7 +231,7 @@ textarea.pisell-lowcode-picker.pisell-lowcode-mode-date-picker
231
231
  color: #667085;
232
232
  }
233
233
  .pisell-lowcode-picker-large {
234
- padding: 7px 11px 7px;
234
+ padding: 7px 11px 7px !important;
235
235
  }
236
236
  .pisell-lowcode-picker-large .pisell-lowcode-picker-input > input {
237
237
  font-size: 16px;
@@ -60,6 +60,9 @@ var Page = function Page(props) {
60
60
  if (props !== null && props !== void 0 && props.theme) {
61
61
  var _props$theme, _props$theme$token;
62
62
  return _objectSpread(_objectSpread({}, props.theme), {}, {
63
+ cssVar: {
64
+ key: 'app'
65
+ },
63
66
  token: _objectSpread(_objectSpread({}, props.theme.token), {}, {
64
67
  // 外部透传主题时,如果没有传入colorPrimary 默认使用主项目内主题色
65
68
  colorPrimary: (props === null || props === void 0 ? void 0 : (_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : (_props$theme$token = _props$theme.token) === null || _props$theme$token === void 0 ? void 0 : _props$theme$token.colorPrimary) || themeColor || '#7F56D9'
@@ -67,6 +70,9 @@ var Page = function Page(props) {
67
70
  });
68
71
  }
69
72
  return {
73
+ cssVar: {
74
+ key: 'app'
75
+ },
70
76
  components: {
71
77
  Table: {
72
78
  colorFillContent: '#EAECF0',
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
2
- import "./index.less";
3
- declare const Select: (props: any) => import("react").JSX.Element;
1
+ import React from 'react';
2
+ import './index.less';
3
+ declare const Select: (props: any) => React.JSX.Element;
4
4
  export default Select;
@@ -5,58 +5,100 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
5
5
  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; }
6
6
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
7
7
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- import { Checkbox, Divider, Select as OriginalSelect } from "antd";
9
- import { useCallback, useMemo, forwardRef } from "react";
8
+ import React, { useCallback, useMemo, forwardRef, useState } from 'react';
9
+ import { Checkbox, Divider, Select as OriginalSelect, Input } from 'antd';
10
+ import { useControllableValue, useMemoizedFn } from 'ahooks';
11
+ import Iconfont from "../iconfont";
10
12
  import { getText } from "../../locales";
11
13
  import { withWrap } from "../../utils/hoc";
12
- import { useControllableValue, useMemoizedFn } from "ahooks";
14
+ import BrowserSelect from "../browserSelect";
13
15
  import "./index.less";
14
- var prefix = "pisell-lowcode-";
16
+ var prefix = 'pisell-lowcode-';
15
17
  var SelectBase = /*#__PURE__*/forwardRef(function (props, ref) {
16
18
  var isShowDropdown = props.isShowDropdown,
17
19
  selectAll = props.selectAll,
18
20
  mode = props.mode,
19
21
  options = props.options,
20
- propsDropdownRender = props.dropdownRender;
22
+ propsDropdownRender = props.dropdownRender,
23
+ showSearch = props.showSearch,
24
+ styleType = props.styleType,
25
+ _props$optionFilterPr = props.optionFilterProp,
26
+ optionFilterProp = _props$optionFilterPr === void 0 ? 'value' : _props$optionFilterPr;
21
27
  var _useControllableValue = useControllableValue(props),
22
28
  _useControllableValue2 = _slicedToArray(_useControllableValue, 2),
23
29
  state = _useControllableValue2[0],
24
30
  setState = _useControllableValue2[1];
31
+ var _useState = useState(''),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ searchValue = _useState2[0],
34
+ setSearchValue = _useState2[1];
35
+ var filteredOptions = useMemo(function () {
36
+ if (!searchValue) return options;
37
+ return options.filter(function (option) {
38
+ var _option$optionFilterP;
39
+ var optionValue = ((_option$optionFilterP = option[optionFilterProp]) === null || _option$optionFilterP === void 0 ? void 0 : _option$optionFilterP.toString().toLowerCase()) || '';
40
+ return optionValue.includes(searchValue.toLowerCase());
41
+ });
42
+ }, [options, searchValue, optionFilterProp]);
25
43
  var onSelectAllChange = useMemoizedFn(function (e) {
26
44
  if (e.target.checked) {
27
- setState(options.map(function (item) {
45
+ setState(filteredOptions.map(function (item) {
28
46
  return item.value;
29
- }), options);
47
+ }), filteredOptions);
30
48
  } else {
31
49
  setState([], []);
32
50
  }
33
51
  });
34
52
  var isShowSelectAll = useMemo(function () {
35
- return mode === "multiple" && isShowDropdown && selectAll;
53
+ return mode === 'multiple' && isShowDropdown && selectAll;
36
54
  }, [mode, selectAll, isShowDropdown]);
37
55
  var checkboxChecked = useMemo(function () {
38
- if (mode !== "multiple") return false;
39
- return (state === null || state === void 0 ? void 0 : state.length) === (options === null || options === void 0 ? void 0 : options.length) && state.sort().join("") === options.map(function (item) {
56
+ if (mode !== 'multiple') return false;
57
+ return (state === null || state === void 0 ? void 0 : state.length) === (filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length) && state.sort().join('') === filteredOptions.map(function (item) {
40
58
  return item.value;
41
- }).sort().join("");
42
- }, [state, options]);
59
+ }).sort().join('');
60
+ }, [state, filteredOptions]);
43
61
  var dropdownRender = useCallback(propsDropdownRender ? propsDropdownRender : function (originNode) {
44
- return /*#__PURE__*/React.createElement(React.Fragment, null, originNode, isShowDropdown && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Divider, {
62
+ return /*#__PURE__*/React.createElement(React.Fragment, null, showSearch && /*#__PURE__*/React.createElement(Input
63
+ // size="large"
64
+ , {
65
+ placeholder: getText('select-dropdown-render-search'),
66
+ value: searchValue,
67
+ onChange: function onChange(e) {
68
+ return setSearchValue(e.target.value);
69
+ },
70
+ style: {
71
+ width: '100%',
72
+ marginBottom: '4px'
73
+ },
74
+ bordered: false,
75
+ prefix: /*#__PURE__*/React.createElement(Iconfont, {
76
+ style: {
77
+ color: '#98A2B3'
78
+ },
79
+ type: "pisell2-search-lg"
80
+ })
81
+ }), originNode, isShowDropdown && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Divider, {
45
82
  className: "".concat(prefix, "select-dropdown-render-divider")
46
83
  }), /*#__PURE__*/React.createElement("div", {
47
84
  className: "".concat(prefix, "select-dropdown-render-options-wrap")
48
85
  }, isShowSelectAll && /*#__PURE__*/React.createElement(Checkbox, {
49
86
  onChange: onSelectAllChange,
50
87
  checked: checkboxChecked
51
- }, getText("select-dropdown-render-select-all")))));
52
- }, [isShowDropdown, isShowSelectAll, checkboxChecked, propsDropdownRender]);
88
+ }, getText('select-dropdown-render-select-all')))));
89
+ }, [isShowDropdown, isShowSelectAll, checkboxChecked, propsDropdownRender, searchValue, showSearch]);
90
+ if (styleType === 'system') {
91
+ return /*#__PURE__*/React.createElement(BrowserSelect, props);
92
+ }
53
93
  return /*#__PURE__*/React.createElement(OriginalSelect, _extends({}, props, {
94
+ showSearch: false,
54
95
  ref: ref,
55
96
  value: state,
56
97
  onChange: function onChange(value, option) {
57
98
  return setState(value, option);
58
99
  },
59
- dropdownRender: dropdownRender
100
+ dropdownRender: dropdownRender,
101
+ options: filteredOptions
60
102
  }));
61
103
  });
62
104
  var Select = withWrap(SelectBase);
@@ -167,7 +167,7 @@ export declare const getSettingKeyArrByMode: ({ filter, columnSetting, dataSourc
167
167
  sort?: SortType | undefined;
168
168
  mode: "" | "localStorage" | "remote";
169
169
  currentViewMode: ModeType;
170
- }) => ("filter_setting" | "column_setting" | "gallery_setting" | "view_mode" | "group_by" | "order_by")[];
170
+ }) => ("view_mode" | "column_setting" | "order_by" | "group_by" | "gallery_setting" | "filter_setting")[];
171
171
  export declare const omit: (obj: Record<string, any>, keys: string[]) => Record<string, any>;
172
172
  export declare const stringify: (obj: Record<string, any>) => string;
173
173
  export {};
@@ -8,6 +8,7 @@ declare const _default: {
8
8
  "table-pagination-next": string;
9
9
  "table-pagination-total": (current: string, total: string) => string;
10
10
  "select-dropdown-render-select-all": string;
11
+ "select-dropdown-render-search": string;
11
12
  "sort-button-text": string;
12
13
  "sort-oldest-to-newest": string;
13
14
  "sort-newest-to-oldest": string;
@@ -10,6 +10,7 @@ export default {
10
10
  return "Page ".concat(current, " of ").concat(total);
11
11
  },
12
12
  "select-dropdown-render-select-all": "Select all",
13
+ "select-dropdown-render-search": "Search",
13
14
  "sort-button-text": "Sort",
14
15
  "sort-oldest-to-newest": "Oldest to newest",
15
16
  "sort-newest-to-oldest": "Newest to oldest",
@@ -8,6 +8,7 @@ declare const _default: {
8
8
  "table-pagination-next": string;
9
9
  "table-pagination-total": (current: string, total: string) => string;
10
10
  "select-dropdown-render-select-all": string;
11
+ "select-dropdown-render-search": string;
11
12
  "sort-button-text": string;
12
13
  "sort-oldest-to-newest": string;
13
14
  "sort-newest-to-oldest": string;
@@ -10,6 +10,7 @@ export default {
10
10
  return "\u7B2C".concat(current, "\u9875 \u5171").concat(total, "\u9875");
11
11
  },
12
12
  "select-dropdown-render-select-all": "全选",
13
+ "select-dropdown-render-search": "搜索",
13
14
  "sort-button-text": "排序",
14
15
  "sort-oldest-to-newest": "从旧到新",
15
16
  "sort-newest-to-oldest": "从新到旧",
@@ -8,6 +8,7 @@ declare const _default: {
8
8
  "table-pagination-next": string;
9
9
  "table-pagination-total": (current: string, total: string) => string;
10
10
  "select-dropdown-render-select-all": string;
11
+ "select-dropdown-render-search": string;
11
12
  "sort-button-text": string;
12
13
  "sort-oldest-to-newest": string;
13
14
  "sort-newest-to-oldest": string;
@@ -10,6 +10,7 @@ export default {
10
10
  return "\u7B2C".concat(current, "\u9801 \u5171").concat(total, "\u9801");
11
11
  },
12
12
  "select-dropdown-render-select-all": "全選",
13
+ "select-dropdown-render-search": "搜索",
13
14
  "sort-button-text": "排序",
14
15
  "sort-oldest-to-newest": "從舊到新",
15
16
  "sort-newest-to-oldest": "從新到舊",
@@ -1,7 +1,13 @@
1
1
  import React from "react";
2
2
  import "./index.less";
3
- interface BrowserSelectProps extends React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> {
4
- options: any[];
3
+ interface Option {
4
+ label: React.ReactNode;
5
+ value: string | number;
6
+ }
7
+ interface BrowserSelectProps extends Omit<React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, 'value' | 'onChange'> {
8
+ options: Option[];
9
+ value?: string | number;
10
+ onChange?: (value: string | number, option: Option) => void;
5
11
  }
6
12
  /**
7
13
  * @title: 系统级别的下拉框
@@ -34,26 +34,32 @@ __export(browserSelect_exports, {
34
34
  module.exports = __toCommonJS(browserSelect_exports);
35
35
  var import_react = __toESM(require("react"));
36
36
  var import_classnames = __toESM(require("classnames"));
37
+ var import_icons = require("@ant-design/icons");
37
38
  var import_index = require("./index.less");
38
39
  var BrowserSelect = (props) => {
39
- const { options, ...resetProps } = props;
40
+ const { options, onChange, value, style, ...resetProps } = props;
40
41
  const _options = (0, import_react.useMemo)(() => {
41
- return (props.options || []).map((d) => {
42
+ return (options || []).map((d) => {
42
43
  return /* @__PURE__ */ import_react.default.createElement("option", { value: d.value, key: d.value }, d.label);
43
44
  });
44
- }, [props.options]);
45
- return /* @__PURE__ */ import_react.default.createElement(
45
+ }, [options]);
46
+ const handleChange = (e) => {
47
+ e.persist();
48
+ const selectedValue = e.target.value;
49
+ const selectedOption = options.find((opt) => String(opt.value) === selectedValue);
50
+ if (selectedOption) {
51
+ onChange == null ? void 0 : onChange(selectedOption.value, selectedOption);
52
+ }
53
+ };
54
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "browser-select-wrapper", style: { ...style } }, /* @__PURE__ */ import_react.default.createElement(
46
55
  "select",
47
56
  {
48
57
  ...resetProps,
58
+ value,
49
59
  className: (0, import_classnames.default)("date-picker-pisell-browser-select", resetProps.className),
50
- onChange: (e) => {
51
- var _a;
52
- e.persist();
53
- (_a = resetProps.onChange) == null ? void 0 : _a.call(resetProps, e);
54
- }
60
+ onChange: handleChange
55
61
  },
56
62
  _options
57
- );
63
+ ), /* @__PURE__ */ import_react.default.createElement(import_icons.DownOutlined, { className: "browser-select-icon" }));
58
64
  };
59
65
  var browserSelect_default = BrowserSelect;
@@ -1,8 +1,24 @@
1
+ .browser-select-wrapper {
2
+ position: relative;
3
+ width: 100%;
4
+ display: inline-block;
5
+ }
6
+
7
+ .browser-select-icon {
8
+ position: absolute;
9
+ right: 10px;
10
+ top: 50%;
11
+ transform: translateY(-50%);
12
+ color: #D0D5DD;
13
+ pointer-events: none;
14
+ font-size: 16px;
15
+ }
16
+
1
17
  .date-picker-pisell-browser-select {
2
- padding: 9px 16px;
18
+ padding: 10px 16px;
19
+ padding-right: 30px;
3
20
  border-radius: 8px;
4
21
  background-color: #fff;
5
- background-image: url('./chevron-down.png');
6
22
  color: var(--Gray-true-900, #141414);
7
23
  font-size: 16px;
8
24
  font-style: normal;
@@ -12,7 +28,35 @@
12
28
  appearance: none;
13
29
  -webkit-appearance: none;
14
30
  -moz-appearance: none;
15
- background-position: right 10px center;
16
- background-size: 12px;
17
- background-repeat: no-repeat;
18
- }
31
+ width: 100%;
32
+
33
+ &:hover {
34
+ border-color: var(--theme-color, #7F56D9);
35
+ & + .browser-select-icon {
36
+ color: var(--theme-color, #7F56D9);
37
+ }
38
+ }
39
+
40
+ &:focus {
41
+ border-color: var(--theme-color, #7F56D9);
42
+ box-shadow: 0 0 0 2px rgba(5, 145, 255, 0.1);
43
+ outline: none;
44
+ & + .browser-select-icon {
45
+ color: var(--theme-color, #7F56D9);
46
+ }
47
+ }
48
+
49
+ &:active {
50
+ border-color: var(--theme-color, #7F56D9);
51
+ }
52
+
53
+ &:disabled {
54
+ background-color: rgba(0, 0, 0, 0.04);
55
+ border-color: #d9d9d9;
56
+ cursor: not-allowed;
57
+ color: rgba(0, 0, 0, 0.25);
58
+ & + .browser-select-icon {
59
+ color: rgba(0, 0, 0, 0.25);
60
+ }
61
+ }
62
+ }
@@ -77,7 +77,8 @@ var BaseForm = (0, import_react.forwardRef)(
77
77
  {
78
78
  renderMode,
79
79
  groupInfoPosition,
80
- currentValue
80
+ currentValue,
81
+ size: others.size
81
82
  },
82
83
  /* @__PURE__ */ import_react.default.createElement(
83
84
  import_form.default,
@@ -5,6 +5,7 @@ export interface FormSettingContextType {
5
5
  groupInfoPosition?: 'top' | 'side';
6
6
  children?: React.ReactNode;
7
7
  currentValue?: 'server' | 'local';
8
+ size?: 'small' | 'middle' | 'large';
8
9
  }
9
10
  export declare const FormSettingContext: import("react").Context<FormSettingContextType>;
10
11
  export default FormSettingContext;
@@ -25,7 +25,8 @@ __export(FormSettingContext_exports, {
25
25
  module.exports = __toCommonJS(FormSettingContext_exports);
26
26
  var import_react = require("react");
27
27
  var initialContext = {
28
- renderMode: "edit"
28
+ renderMode: "edit",
29
+ size: "large"
29
30
  };
30
31
  var FormSettingContext = (0, import_react.createContext)(initialContext);
31
32
  var FormSettingContext_default = FormSettingContext;
@@ -35,14 +35,15 @@ module.exports = __toCommonJS(FormSettingProvider_exports);
35
35
  var import_react = __toESM(require("react"));
36
36
  var import_FormSettingContext = __toESM(require("./FormSettingContext"));
37
37
  var FormSettingProvider = (props) => {
38
- const { children, renderMode, groupInfoPosition, currentValue } = props;
38
+ const { children, renderMode, groupInfoPosition, currentValue, size } = props;
39
39
  const value = import_react.default.useMemo(() => {
40
40
  return {
41
41
  renderMode,
42
42
  groupInfoPosition,
43
- currentValue
43
+ currentValue,
44
+ size
44
45
  };
45
- }, [renderMode, groupInfoPosition, currentValue]);
46
+ }, [renderMode, groupInfoPosition, currentValue, size]);
46
47
  return /* @__PURE__ */ import_react.default.createElement(
47
48
  import_FormSettingContext.default.Provider,
48
49
  {
@@ -13,4 +13,5 @@ export interface DataSourceFormProps {
13
13
  currentValue?: 'server' | 'local';
14
14
  children: React.ReactNode;
15
15
  className?: string;
16
+ size?: 'small' | 'middle' | 'large';
16
17
  }
@@ -31,7 +31,10 @@ export declare const formItemNameReverse: (name: string) => string;
31
31
  * @Author: shengjie.zuo
32
32
  * @Date: 2024-11-23 17:14:25
33
33
  */
34
- export declare const withFormItem: <P extends object>(WrappedComponent: React.ComponentType<P>, otherFormItemProps?: Record<string, any>) => React.FC<P & WithFormItemProps>;
34
+ export declare const withFormItem: <P extends object>(WrappedComponent: React.ComponentType<P>, overlayProps?: {
35
+ otherFormItemProps?: Record<string, any>;
36
+ innerProps?: Record<string, any>;
37
+ }) => React.FC<P & WithFormItemProps>;
35
38
  export declare const withDataSource: <P extends unknown>(WrappedComponent: React.ComponentType<P>) => (props: P & {
36
39
  dataSource?: any;
37
40
  }) => React.JSX.Element;