@hi-ui/check-cascader 4.5.1 → 5.0.0-alpha.0
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.
- package/CHANGELOG.md +112 -0
- package/lib/cjs/CheckCascader.js +125 -12
- package/lib/cjs/CheckCascaderMenu.js +101 -65
- package/lib/cjs/CheckCascaderMenuList.js +14 -5
- package/lib/cjs/hooks/use-check.js +3 -9
- package/lib/cjs/styles/index.scss.js +1 -1
- package/lib/cjs/ui/virtual-list/lib/esm/_virtual/index.js +28 -0
- package/lib/cjs/ui/virtual-list/lib/esm/_virtual/index2.js +28 -0
- package/lib/cjs/ui/virtual-list/lib/esm/_virtual/react-is.development.js +26 -0
- package/lib/cjs/ui/virtual-list/lib/esm/_virtual/react-is.production.min.js +26 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/classnames/index.js +74 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/es/index.js +200 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +52 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +44 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +71 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +45 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-util/es/Dom/canUseDom.js +28 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-util/es/Dom/findDOMNode.js +44 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-util/es/hooks/useLayoutEffect.js +54 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-util/es/raf.js +71 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/Filler.js +128 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/Item.js +57 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/List.js +476 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/ScrollBar.js +363 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useChildren.js +63 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +115 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +64 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useHeights.js +161 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +87 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +61 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +141 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/utils/CacheMap.js +68 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +84 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/utils/isFirefox.js +35 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/react-is/cjs/react-is.development.js +189 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +139 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/react-is/index.js +31 -0
- package/lib/cjs/ui/virtual-list/lib/esm/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +970 -0
- package/lib/cjs/utils/index.js +89 -30
- package/lib/esm/CheckCascader.js +134 -22
- package/lib/esm/CheckCascaderMenu.js +108 -72
- package/lib/esm/CheckCascaderMenuList.js +19 -10
- package/lib/esm/context.js +1 -1
- package/lib/esm/hooks/use-check.js +1 -7
- package/lib/esm/icons/index.js +4 -4
- package/lib/esm/styles/index.scss.js +1 -1
- package/lib/esm/ui/virtual-list/lib/esm/_virtual/index.js +22 -0
- package/lib/esm/ui/virtual-list/lib/esm/_virtual/index2.js +22 -0
- package/lib/esm/ui/virtual-list/lib/esm/_virtual/react-is.development.js +20 -0
- package/lib/esm/ui/virtual-list/lib/esm/_virtual/react-is.production.min.js +20 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/classnames/index.js +62 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/es/index.js +164 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +40 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +32 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +57 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +36 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-util/es/Dom/canUseDom.js +22 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-util/es/Dom/findDOMNode.js +32 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-util/es/hooks/useLayoutEffect.js +28 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-util/es/raf.js +65 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/Filler.js +102 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/Item.js +31 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/List.js +450 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/ScrollBar.js +337 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useChildren.js +37 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +89 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +59 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useHeights.js +136 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +82 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +56 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +115 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/utils/CacheMap.js +62 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +78 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/utils/isFirefox.js +29 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/react-is/cjs/react-is.development.js +177 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +127 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/react-is/index.js +29 -0
- package/lib/esm/ui/virtual-list/lib/esm/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +964 -0
- package/lib/esm/utils/index.js +87 -31
- package/lib/types/CheckCascader.d.ts +28 -4
- package/lib/types/CheckCascaderMenuList.d.ts +8 -0
- package/lib/types/context.d.ts +1 -0
- package/lib/types/types.d.ts +7 -1
- package/lib/types/utils/index.d.ts +3 -0
- package/package.json +27 -26
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,117 @@
|
|
|
1
1
|
# @hi-ui/check-cascader
|
|
2
2
|
|
|
3
|
+
## 5.0.0-alpha.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 1b05b44a4: feat: 组件的 package.json 中的 exports 统一加上 types 配置 (5.0)
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- 77ed66eac: <br>
|
|
12
|
+
- feat(picker): 下拉选择类组件增加 xs 尺寸 (5.0)
|
|
13
|
+
- feat(input): 输入框组件增加 xs 尺寸 (5.0)
|
|
14
|
+
- cee645726: feat(check-cascader): 增加 checkbox 级联禁用功能和相关样式调整 (5.0)
|
|
15
|
+
- 74ca77b9c: feat(check-cascader): add showOnlyShowChecked api (5.0)
|
|
16
|
+
- 632dbda3a: feat: 下拉选择组件增加 showIndicator 参数 & 修改 appearance 中的 unset 样式 (5.0)
|
|
17
|
+
- 1b51c1bbe: feat: 下拉选择类组件 appearance 参数增加 contained 类型 (5.0)
|
|
18
|
+
- 6eac4b78b: feat: 输入框和选择器组件增加 borderless 形态 (5.0)
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 5de7a848b: chore: 将代码中 v4 改为 v5 (5.0)
|
|
23
|
+
- eb5506b8d: style(picker): 移除 picker 组件中的 \_\_text 样式定义 (5.0)
|
|
24
|
+
- 5de7a848b: fix: 修复 5.0 UI 问题 (5.0)
|
|
25
|
+
- da1f63a55: feat(check-cascader): 增加全选功能
|
|
26
|
+
- 958805d8b: fix(tag-input): 修复 contained 模式下 displayRender 设置无效问题 (5.0)
|
|
27
|
+
- 8116f0304: fix: 修改 UI 问题 (5.0)
|
|
28
|
+
- cfaf8c48d: perf: 对下拉选择类组件的 customRender 的内容增加 memoization 以优化性能 (5.0)
|
|
29
|
+
- b29639844: style(cascader&check-cascader): 调整下拉框样式,增加搜索框宽度设置 (5.0)
|
|
30
|
+
- 2e0eca2d3: perf(cascader): 性能优化 (5.0)
|
|
31
|
+
- eaa96c960: <br>
|
|
32
|
+
- style(cascader&check-cascader): 增加 white-space: nowrap; 样式以防止文本换行 (5.0)
|
|
33
|
+
- style(cascader&check-cascader): 调整搜索框默认宽度为 100px (5.0)
|
|
34
|
+
- feat(check-cascader): 增加 flattedSearchResult 属性,用于控制搜索结果的展现形式 (5.0)
|
|
35
|
+
- fix(cascader): 修复当搜索结果为空时,下拉框没有显示空状态问题 (5.0)
|
|
36
|
+
- 61d132802: build: 将 package.json 中 exports 配置中的 types 配置放在最上面 (5.0)
|
|
37
|
+
- e39572f8f: style(tag-input): 增加 flex-wrap 属性以优化标签换行展示 (5.0)
|
|
38
|
+
- 9f2ee08cf: <br>
|
|
39
|
+
- style(tag-input): 间距调整 (5.0)
|
|
40
|
+
- style(select): 选择类组件选项圆角改为 4px (5.0)
|
|
41
|
+
- style(picker): 搜索框样式调整 (5.0)
|
|
42
|
+
- 1fc825e2f: <br>
|
|
43
|
+
- fix(cascader): 处理当 value 为空时清空选项的选中态(5.0)
|
|
44
|
+
- style(cascader&check-cascader): 调整选项容器最小宽度为 160px (5.0)
|
|
45
|
+
- style(cascader&check-cascader): 优化下拉框宽度,让内容和搜索框默认宽度对齐 (5.0)
|
|
46
|
+
- perf(cascader&check-cascader): 优化 customRender 函数,支持传递选中项和当前值 (5.0)
|
|
47
|
+
- 85bb84874: style: 统一调整选择类组件 hover 时的背景色 (5.0)
|
|
48
|
+
- c125e4c48: fix: 修复 UI 问题 (5.0)
|
|
49
|
+
- Updated dependencies [abebb5eed]
|
|
50
|
+
- Updated dependencies [7bda04e64]
|
|
51
|
+
- Updated dependencies [7ac9bc99a]
|
|
52
|
+
- Updated dependencies [77ed66eac]
|
|
53
|
+
- Updated dependencies [ddd2acc79]
|
|
54
|
+
- Updated dependencies [5de7a848b]
|
|
55
|
+
- Updated dependencies [1b05b44a4]
|
|
56
|
+
- Updated dependencies [0cd15438e]
|
|
57
|
+
- Updated dependencies [958805d8b]
|
|
58
|
+
- Updated dependencies [eb69f0baa]
|
|
59
|
+
- Updated dependencies [a01771e8d]
|
|
60
|
+
- Updated dependencies [67960d871]
|
|
61
|
+
- Updated dependencies [cee645726]
|
|
62
|
+
- Updated dependencies [de7f92b26]
|
|
63
|
+
- Updated dependencies [b35327262]
|
|
64
|
+
- Updated dependencies [8116f0304]
|
|
65
|
+
- Updated dependencies [85bb84874]
|
|
66
|
+
- Updated dependencies [77ed66eac]
|
|
67
|
+
- Updated dependencies [632dbda3a]
|
|
68
|
+
- Updated dependencies [2c7c65a5a]
|
|
69
|
+
- Updated dependencies [36bb992d3]
|
|
70
|
+
- Updated dependencies [1b51c1bbe]
|
|
71
|
+
- Updated dependencies [2e0eca2d3]
|
|
72
|
+
- Updated dependencies [61d132802]
|
|
73
|
+
- Updated dependencies [e39572f8f]
|
|
74
|
+
- Updated dependencies [6ebf40f96]
|
|
75
|
+
- Updated dependencies [9f2ee08cf]
|
|
76
|
+
- Updated dependencies [6eac4b78b]
|
|
77
|
+
- Updated dependencies [bcd3d08dd]
|
|
78
|
+
- Updated dependencies [4fb586f6f]
|
|
79
|
+
- Updated dependencies [c125e4c48]
|
|
80
|
+
- Updated dependencies [b7ad460d8]
|
|
81
|
+
- Updated dependencies [df25ec39b]
|
|
82
|
+
- @hi-ui/picker@5.0.0-alpha.0
|
|
83
|
+
- @hi-ui/input@5.0.0-alpha.0
|
|
84
|
+
- @hi-ui/tag-input@5.0.0-alpha.0
|
|
85
|
+
- @hi-ui/core@5.0.0-alpha.0
|
|
86
|
+
- @hi-ui/use-check@5.0.0-alpha.0
|
|
87
|
+
- @hi-ui/use-data-source@5.0.0-alpha.0
|
|
88
|
+
- @hi-ui/use-latest@5.0.0-alpha.0
|
|
89
|
+
- @hi-ui/use-merge-refs@5.0.0-alpha.0
|
|
90
|
+
- @hi-ui/use-outside-click@5.0.0-alpha.0
|
|
91
|
+
- @hi-ui/use-search-mode@5.0.0-alpha.0
|
|
92
|
+
- @hi-ui/use-toggle@5.0.0-alpha.0
|
|
93
|
+
- @hi-ui/use-uncontrolled-state@5.0.0-alpha.0
|
|
94
|
+
- @hi-ui/icons@5.0.0-alpha.0
|
|
95
|
+
- @hi-ui/checkbox@5.0.0-alpha.0
|
|
96
|
+
- @hi-ui/popper@5.0.0-alpha.0
|
|
97
|
+
- @hi-ui/spinner@5.0.0-alpha.0
|
|
98
|
+
- @hi-ui/array-utils@5.0.0-alpha.0
|
|
99
|
+
- @hi-ui/classname@5.0.0-alpha.0
|
|
100
|
+
- @hi-ui/env@5.0.0-alpha.0
|
|
101
|
+
- @hi-ui/func-utils@5.0.0-alpha.0
|
|
102
|
+
- @hi-ui/times@5.0.0-alpha.0
|
|
103
|
+
- @hi-ui/tree-utils@5.0.0-alpha.0
|
|
104
|
+
- @hi-ui/type-assertion@5.0.0-alpha.0
|
|
105
|
+
|
|
106
|
+
## 4.5.2
|
|
107
|
+
|
|
108
|
+
### Patch Changes
|
|
109
|
+
|
|
110
|
+
- [#3336](https://github.com/XiaoMi/hiui/pull/3336) [`9356e8c`](https://github.com/XiaoMi/hiui/commit/9356e8ca43ae75f2886bd5225723ee9afad501a6) Thanks [@zyprepare](https://github.com/zyprepare)! - fix(use-search-mode): 优化初次搜索逻辑 (#3335)
|
|
111
|
+
|
|
112
|
+
- Updated dependencies [[`9356e8c`](https://github.com/XiaoMi/hiui/commit/9356e8ca43ae75f2886bd5225723ee9afad501a6)]:
|
|
113
|
+
- @hi-ui/use-search-mode@4.2.3
|
|
114
|
+
|
|
3
115
|
## 4.5.1
|
|
4
116
|
|
|
5
117
|
### Patch Changes
|
package/lib/cjs/CheckCascader.js
CHANGED
|
@@ -30,6 +30,7 @@ var treeUtils = require('@hi-ui/tree-utils');
|
|
|
30
30
|
var useLatest = require('@hi-ui/use-latest');
|
|
31
31
|
var typeAssertion = require('@hi-ui/type-assertion');
|
|
32
32
|
var core = require('@hi-ui/core');
|
|
33
|
+
var Checkbox = require('@hi-ui/checkbox');
|
|
33
34
|
var funcUtils = require('@hi-ui/func-utils');
|
|
34
35
|
function _interopDefaultCompat(e) {
|
|
35
36
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
@@ -37,6 +38,7 @@ function _interopDefaultCompat(e) {
|
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
40
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
41
|
+
var Checkbox__default = /*#__PURE__*/_interopDefaultCompat(Checkbox);
|
|
40
42
|
var _prefix = classname.getPrefixCls('check-cascader');
|
|
41
43
|
var NOOP_ARRAY = [];
|
|
42
44
|
/**
|
|
@@ -73,6 +75,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
73
75
|
overlayClassName = _a.overlayClassName,
|
|
74
76
|
_a$type = _a.type,
|
|
75
77
|
type = _a$type === void 0 ? 'tree' : _a$type,
|
|
78
|
+
_a$flattedSearchResul = _a.flattedSearchResult,
|
|
79
|
+
flattedSearchResult = _a$flattedSearchResul === void 0 ? true : _a$flattedSearchResul,
|
|
76
80
|
checkedMode = _a.checkedMode,
|
|
77
81
|
visible = _a.visible,
|
|
78
82
|
onOpen = _a.onOpen,
|
|
@@ -86,7 +90,13 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
86
90
|
dropdownColumnRender = _a.dropdownColumnRender,
|
|
87
91
|
customRender = _a.customRender,
|
|
88
92
|
fieldNames = _a.fieldNames,
|
|
89
|
-
|
|
93
|
+
label = _a.label,
|
|
94
|
+
showOnlyShowChecked = _a.showOnlyShowChecked,
|
|
95
|
+
virtual = _a.virtual,
|
|
96
|
+
showCheckAll = _a.showCheckAll,
|
|
97
|
+
_a$showIndicator = _a.showIndicator,
|
|
98
|
+
showIndicator = _a$showIndicator === void 0 ? true : _a$showIndicator,
|
|
99
|
+
rest = tslib.__rest(_a, ["prefixCls", "className", "defaultValue", "value", "onChange", "data", "placeholder", "clearable", "onClear", "onSelect", "expandTrigger", "disabled", "emptyContent", "changeOnSelect", "render", "displayRender", "checkCascaded", "searchPlaceholder", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "overlayClassName", "type", "flattedSearchResult", "checkedMode", "visible", "onOpen", "onClose", "tagInputProps", "size", "prefix", "suffix", "renderExtraFooter", "dropdownColumnRender", "customRender", "fieldNames", "label", "showOnlyShowChecked", "virtual", "showCheckAll", "showIndicator"]);
|
|
90
100
|
var i18n = core.useLocaleContext();
|
|
91
101
|
var pickerInnerRef = React.useRef(null);
|
|
92
102
|
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
|
|
@@ -99,6 +109,11 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
99
109
|
}),
|
|
100
110
|
menuVisible = _useUncontrolledToggl[0],
|
|
101
111
|
menuVisibleAction = _useUncontrolledToggl[1];
|
|
112
|
+
var _useState = React.useState(null),
|
|
113
|
+
filterItems = _useState[0],
|
|
114
|
+
setFilterItems = _useState[1];
|
|
115
|
+
var expandedViewRef = React.useRef('normal');
|
|
116
|
+
var activeExpandable = showOnlyShowChecked && !!filterItems && menuVisible;
|
|
102
117
|
var _useCache = index.useCache(data),
|
|
103
118
|
cascaderData = _useCache[0],
|
|
104
119
|
setCascaderData = _useCache[1];
|
|
@@ -115,9 +130,11 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
115
130
|
_value = _useUncontrolledState[0],
|
|
116
131
|
tryChangeValue = _useUncontrolledState[1];
|
|
117
132
|
// 内部实现使用尾部 id
|
|
118
|
-
var value =
|
|
119
|
-
return
|
|
120
|
-
|
|
133
|
+
var value = React.useMemo(function () {
|
|
134
|
+
return _value.map(function (path) {
|
|
135
|
+
return path[path.length - 1];
|
|
136
|
+
});
|
|
137
|
+
}, [_value]);
|
|
121
138
|
var proxyOnChange = useLatest.useLatestCallback(function (value, item, shouldChecked) {
|
|
122
139
|
var dataItemsPaths = [];
|
|
123
140
|
var itemsPaths = value.map(function (lastId) {
|
|
@@ -207,7 +224,7 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
207
224
|
}, [titleRender, searchValue, searchMode]);
|
|
208
225
|
var shouldUseSearch = !!searchValue;
|
|
209
226
|
var selectProps = {
|
|
210
|
-
data: shouldUseSearch ? stateInSearch.data : flattedData,
|
|
227
|
+
data: filterItems || (shouldUseSearch ? stateInSearch.data : flattedData),
|
|
211
228
|
titleRender: proxyTitleRender
|
|
212
229
|
};
|
|
213
230
|
var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
|
|
@@ -216,13 +233,46 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
216
233
|
return flattedDataMap.get(selectedId);
|
|
217
234
|
});
|
|
218
235
|
}, [flattedDataMap, value]);
|
|
219
|
-
React.
|
|
236
|
+
var _useMemo2 = React.useMemo(function () {
|
|
237
|
+
if (!showCheckAll) return [];
|
|
238
|
+
var parsedCheckedIds = index$1.parseCheckDataDirty(checkedMode, value, flattedData, index$1.allowCheck);
|
|
239
|
+
return index$1.getAllCheckedStatus(flattedData, parsedCheckedIds);
|
|
240
|
+
}, [showCheckAll, value, flattedData, checkedMode]),
|
|
241
|
+
currentAllChecked = _useMemo2[0],
|
|
242
|
+
hasCheckedAll = _useMemo2[1];
|
|
243
|
+
var toggleCheckAll = React.useCallback(function () {
|
|
244
|
+
var shouldChecked = !currentAllChecked;
|
|
245
|
+
// 全选操作
|
|
246
|
+
if (!currentAllChecked && !hasCheckedAll) {
|
|
247
|
+
var checkedIds = index$1.processCheckedIds(checkedMode, flattedData.filter(function (item) {
|
|
248
|
+
return index$1.allowCheck(item);
|
|
249
|
+
}).map(function (_ref2) {
|
|
250
|
+
var id = _ref2.id;
|
|
251
|
+
return id;
|
|
252
|
+
}), flattedData, index$1.allowCheck);
|
|
253
|
+
proxyOnChange(checkedIds, null, shouldChecked);
|
|
254
|
+
} else {
|
|
255
|
+
proxyOnChange([], null, shouldChecked);
|
|
256
|
+
}
|
|
257
|
+
}, [checkedMode, flattedData, currentAllChecked, hasCheckedAll, proxyOnChange]);
|
|
258
|
+
var renderDefaultFooter = React.useCallback(function () {
|
|
259
|
+
if (!showCheckAll) return null;
|
|
260
|
+
return /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
|
261
|
+
indeterminate: hasCheckedAll,
|
|
262
|
+
checked: currentAllChecked,
|
|
263
|
+
onChange: toggleCheckAll
|
|
264
|
+
}, i18n.get('checkSelect.checkAll'));
|
|
265
|
+
}, [i18n, showCheckAll, currentAllChecked, hasCheckedAll, toggleCheckAll]);
|
|
266
|
+
var customRenderContent = React.useMemo(function () {
|
|
267
|
+
return customRender ? typeof customRender === 'function' ? customRender(selectedItems, value) : customRender : null;
|
|
268
|
+
}, [customRender, selectedItems, value]);
|
|
269
|
+
var handleMenuListChange = React.useCallback(function () {
|
|
220
270
|
var _a;
|
|
221
271
|
if (menuVisible) {
|
|
222
272
|
// 数据改变时更新弹窗显示位置,避免弹窗内容被遮挡
|
|
223
273
|
(_a = pickerInnerRef.current) === null || _a === void 0 ? void 0 : _a.update();
|
|
224
274
|
}
|
|
225
|
-
}, [menuVisible
|
|
275
|
+
}, [menuVisible]);
|
|
226
276
|
return /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
|
|
227
277
|
ref: ref,
|
|
228
278
|
innerRef: pickerInnerRef,
|
|
@@ -242,10 +292,14 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
242
292
|
onClose: menuVisibleAction.off,
|
|
243
293
|
searchable: searchable,
|
|
244
294
|
scrollable: false,
|
|
245
|
-
footer: typeAssertion.isFunction(renderExtraFooter)
|
|
295
|
+
footer: typeAssertion.isFunction(renderExtraFooter) ? renderExtraFooter() : renderDefaultFooter(),
|
|
246
296
|
keyword: keywordProp,
|
|
247
297
|
onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
|
|
248
|
-
trigger: customRender ?
|
|
298
|
+
trigger: customRender ? customRenderContent : ( /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({
|
|
299
|
+
style: {
|
|
300
|
+
maxWidth: appearance === 'contained' ? '360px' : undefined
|
|
301
|
+
}
|
|
302
|
+
}, tagInputProps, {
|
|
249
303
|
size: size,
|
|
250
304
|
clearable: clearable,
|
|
251
305
|
onClear: onClear,
|
|
@@ -253,6 +307,7 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
253
307
|
// @ts-ignore
|
|
254
308
|
displayRender: displayRender,
|
|
255
309
|
prefix: prefix,
|
|
310
|
+
showIndicator: showIndicator,
|
|
256
311
|
suffix: [menuVisible ? /*#__PURE__*/React__default["default"].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null), suffix],
|
|
257
312
|
focused: menuVisible,
|
|
258
313
|
appearance: appearance,
|
|
@@ -260,7 +315,63 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
260
315
|
// @ts-ignore
|
|
261
316
|
onChange: proxyOnChange,
|
|
262
317
|
data: flattedData,
|
|
263
|
-
invalid: invalid
|
|
318
|
+
invalid: invalid,
|
|
319
|
+
label: label,
|
|
320
|
+
// onExpand={() => {
|
|
321
|
+
// // setViewSelected(true)
|
|
322
|
+
// menuVisibleAction.on()
|
|
323
|
+
// }}
|
|
324
|
+
onClick: function onClick(evt) {
|
|
325
|
+
if (!showOnlyShowChecked) return;
|
|
326
|
+
evt.preventDefault();
|
|
327
|
+
if (filterItems) {
|
|
328
|
+
setFilterItems(null);
|
|
329
|
+
}
|
|
330
|
+
if (menuVisible) {
|
|
331
|
+
if (expandedViewRef.current === 'normal') {
|
|
332
|
+
menuVisibleAction.off();
|
|
333
|
+
}
|
|
334
|
+
} else {
|
|
335
|
+
menuVisibleAction.on();
|
|
336
|
+
}
|
|
337
|
+
expandedViewRef.current = 'normal';
|
|
338
|
+
},
|
|
339
|
+
expandable: showOnlyShowChecked,
|
|
340
|
+
activeExpandable: activeExpandable,
|
|
341
|
+
onExpand: function onExpand(evt) {
|
|
342
|
+
if (!showOnlyShowChecked) return;
|
|
343
|
+
// 阻止冒泡触发外层 onClick
|
|
344
|
+
evt.preventDefault();
|
|
345
|
+
evt.stopPropagation();
|
|
346
|
+
// 选中数据
|
|
347
|
+
setFilterItems(function () {
|
|
348
|
+
var filterFunc = function filterFunc(node) {
|
|
349
|
+
var _a;
|
|
350
|
+
if (value.includes(node.id)) {
|
|
351
|
+
return true;
|
|
352
|
+
}
|
|
353
|
+
if (node.children && ((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
354
|
+
return node.children.some(function (child) {
|
|
355
|
+
return filterFunc(child);
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
return false;
|
|
359
|
+
};
|
|
360
|
+
// filterTree 过滤树结构,将不包含value中的节点分支过滤掉
|
|
361
|
+
// 返回过滤后的树结构
|
|
362
|
+
var treeData = treeUtils.filterTree(data, filterFunc);
|
|
363
|
+
return index$1.flattenTreeData(treeData, fieldNames);
|
|
364
|
+
});
|
|
365
|
+
// 展开/关闭操作
|
|
366
|
+
if (menuVisible) {
|
|
367
|
+
if (expandedViewRef.current !== 'normal') {
|
|
368
|
+
menuVisibleAction.off();
|
|
369
|
+
}
|
|
370
|
+
} else {
|
|
371
|
+
menuVisibleAction.on();
|
|
372
|
+
}
|
|
373
|
+
expandedViewRef.current = 'onlyChecked';
|
|
374
|
+
}
|
|
264
375
|
})))
|
|
265
376
|
}), typeAssertion.isArrayNonEmpty(selectProps.data) ? ( /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenuList.CheckCascaderMenuList, {
|
|
266
377
|
disabled: disabled,
|
|
@@ -273,14 +384,16 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
273
384
|
onSelect: onSelect,
|
|
274
385
|
onLoadChildren: onLoadChildren,
|
|
275
386
|
titleRender: proxyTitleRender,
|
|
276
|
-
flatted: flatted || !!searchValue,
|
|
387
|
+
flatted: flatted || !!searchValue && flattedSearchResult || activeExpandable,
|
|
277
388
|
// @ts-ignore
|
|
278
389
|
flattedData: selectProps.data,
|
|
279
390
|
originalFlattedData: flattedData,
|
|
280
391
|
data: cascaderData,
|
|
281
392
|
onChangeData: setCascaderData,
|
|
282
393
|
checkedMode: checkedMode,
|
|
283
|
-
dropdownColumnRender: dropdownColumnRender
|
|
394
|
+
dropdownColumnRender: dropdownColumnRender,
|
|
395
|
+
virtual: virtual,
|
|
396
|
+
onMenuListChange: handleMenuListChange
|
|
284
397
|
})) : null);
|
|
285
398
|
});
|
|
286
399
|
if (env.__DEV__) {
|
|
@@ -20,6 +20,8 @@ var Checkbox = require('@hi-ui/checkbox');
|
|
|
20
20
|
var context = require('./context.js');
|
|
21
21
|
var index = require('./utils/index.js');
|
|
22
22
|
var treeUtils = require('@hi-ui/tree-utils');
|
|
23
|
+
var List = require('./ui/virtual-list/lib/esm/node_modules/rc-virtual-list/es/List.js');
|
|
24
|
+
var env = require('@hi-ui/env');
|
|
23
25
|
function _interopDefaultCompat(e) {
|
|
24
26
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
25
27
|
'default': e
|
|
@@ -39,17 +41,59 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
|
39
41
|
menu = _ref.data,
|
|
40
42
|
getCascaderItemRequiredProps = _ref.getCascaderItemRequiredProps;
|
|
41
43
|
var _useCheckCascaderCont = context.useCheckCascaderContext(),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
virtual = _useCheckCascaderCont.virtual;
|
|
45
|
+
var isCheckableMenu = menu.some(function (_ref2) {
|
|
46
|
+
var checkable = _ref2.checkable;
|
|
47
|
+
return checkable;
|
|
48
|
+
});
|
|
49
|
+
var cls = classname.cx(prefixCls, className, isCheckableMenu && prefixCls + "--checkable");
|
|
50
|
+
var virtualListProps = {
|
|
51
|
+
virtual: virtual,
|
|
52
|
+
data: menu,
|
|
53
|
+
height: 260,
|
|
54
|
+
itemHeight: 32
|
|
55
|
+
};
|
|
56
|
+
return /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
57
|
+
className: cls,
|
|
58
|
+
style: style,
|
|
59
|
+
role: role
|
|
60
|
+
}, virtual ? ( /*#__PURE__*/React__default["default"].createElement(List["default"], Object.assign({
|
|
61
|
+
itemKey: 'id',
|
|
62
|
+
fullHeight: false
|
|
63
|
+
}, virtualListProps), function (option) {
|
|
64
|
+
return /*#__PURE__*/React__default["default"].createElement(MenuItem, {
|
|
65
|
+
key: option.id,
|
|
66
|
+
option: option,
|
|
67
|
+
prefixCls: prefixCls,
|
|
68
|
+
getCascaderItemRequiredProps: getCascaderItemRequiredProps
|
|
69
|
+
});
|
|
70
|
+
})) : menu.map(function (option) {
|
|
71
|
+
return /*#__PURE__*/React__default["default"].createElement(MenuItem, {
|
|
72
|
+
key: option.id,
|
|
73
|
+
option: option,
|
|
74
|
+
prefixCls: prefixCls,
|
|
75
|
+
getCascaderItemRequiredProps: getCascaderItemRequiredProps
|
|
76
|
+
});
|
|
77
|
+
}));
|
|
78
|
+
};
|
|
79
|
+
var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
80
|
+
var option = _ref3.option,
|
|
81
|
+
_ref3$prefixCls = _ref3.prefixCls,
|
|
82
|
+
prefixCls = _ref3$prefixCls === void 0 ? _prefix : _ref3$prefixCls,
|
|
83
|
+
getCascaderItemRequiredProps = _ref3.getCascaderItemRequiredProps;
|
|
84
|
+
var _a;
|
|
85
|
+
var _useCheckCascaderCont2 = context.useCheckCascaderContext(),
|
|
86
|
+
_useCheckCascaderCont3 = _useCheckCascaderCont2.flatted,
|
|
87
|
+
flatted = _useCheckCascaderCont3 === void 0 ? false : _useCheckCascaderCont3,
|
|
88
|
+
_useCheckCascaderCont4 = _useCheckCascaderCont2.changeOnSelect,
|
|
89
|
+
changeOnSelect = _useCheckCascaderCont4 === void 0 ? false : _useCheckCascaderCont4,
|
|
90
|
+
_useCheckCascaderCont5 = _useCheckCascaderCont2.disabled,
|
|
91
|
+
disabledContext = _useCheckCascaderCont5 === void 0 ? false : _useCheckCascaderCont5,
|
|
92
|
+
onLoadChildren = _useCheckCascaderCont2.onLoadChildren,
|
|
93
|
+
expandTrigger = _useCheckCascaderCont2.expandTrigger,
|
|
94
|
+
onCheck = _useCheckCascaderCont2.onCheck,
|
|
95
|
+
onSelect = _useCheckCascaderCont2.onSelect,
|
|
96
|
+
titleRender = _useCheckCascaderCont2.titleRender;
|
|
53
97
|
var renderTitle = React.useCallback(function (option) {
|
|
54
98
|
// 如果 titleRender 返回 `true`,则使用默认 title
|
|
55
99
|
var title = titleRender ? titleRender(option) : true;
|
|
@@ -67,63 +111,55 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
|
67
111
|
className: "title__text"
|
|
68
112
|
}, option.title));
|
|
69
113
|
}, [titleRender, flatted]);
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
93
|
-
role: "menu-item",
|
|
94
|
-
className: prefixCls + "-item",
|
|
95
|
-
key: option.id
|
|
96
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
97
|
-
className: optionCls,
|
|
98
|
-
onClick: function onClick(evt) {
|
|
99
|
-
if (disabled) return;
|
|
100
|
-
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
|
|
101
|
-
if (changeOnSelect) {
|
|
102
|
-
onCheck === null || onCheck === void 0 ? void 0 : onCheck(eventOption, !checked);
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
onMouseEnter: function onMouseEnter(evt) {
|
|
106
|
-
if (expandTrigger === 'hover') {
|
|
107
|
-
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}, option.checkable ? ( /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
|
111
|
-
className: prefixCls + "-checkbox",
|
|
112
|
-
indeterminate: semiChecked,
|
|
113
|
-
checked: checked,
|
|
114
|
-
disabled: disabled || option.disabledCheckbox,
|
|
115
|
-
onClick: function onClick(evt) {
|
|
116
|
-
return evt.stopPropagation();
|
|
117
|
-
},
|
|
118
|
-
// 当前是半选时,点击将设置为全选,
|
|
119
|
-
// 又因子节点某个选项未选中但是禁用,当前态将一直是半选,那操作将一直是设置全选操作
|
|
120
|
-
onChange: function onChange(evt) {
|
|
114
|
+
var eventOption = index.getCascaderItemEventData(option, getCascaderItemRequiredProps(option));
|
|
115
|
+
var selected = eventOption.selected,
|
|
116
|
+
checked = eventOption.checked,
|
|
117
|
+
loading = eventOption.loading,
|
|
118
|
+
semiChecked = eventOption.semiChecked;
|
|
119
|
+
var disabled = disabledContext || option.disabled;
|
|
120
|
+
var optionCls = classname.cx(prefixCls + "-option", option.checkable && checked && prefixCls + "-option--checked",
|
|
121
|
+
// 此处 option.children?.length || !option.checkable 的含义是
|
|
122
|
+
// 如果存在子节点,则可以展现选择态
|
|
123
|
+
// 不存在子节点,如不是可勾选item,则可以展现勾选态
|
|
124
|
+
selected && (((_a = option.children) === null || _a === void 0 ? void 0 : _a.length) || !option.checkable) && prefixCls + "-option--selected", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled");
|
|
125
|
+
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
126
|
+
ref: ref,
|
|
127
|
+
role: "menu-item",
|
|
128
|
+
className: prefixCls + "-item",
|
|
129
|
+
key: option.id
|
|
130
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
131
|
+
className: optionCls,
|
|
132
|
+
onClick: function onClick(evt) {
|
|
133
|
+
if (disabled) return;
|
|
134
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
|
|
135
|
+
if (changeOnSelect) {
|
|
121
136
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(eventOption, !checked);
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
onMouseEnter: function onMouseEnter(evt) {
|
|
140
|
+
if (expandTrigger === 'hover') {
|
|
122
141
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
|
|
123
142
|
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
143
|
+
}
|
|
144
|
+
}, option.checkable ? ( /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
|
145
|
+
className: prefixCls + "-checkbox",
|
|
146
|
+
indeterminate: semiChecked,
|
|
147
|
+
checked: checked,
|
|
148
|
+
disabled: disabled || option.disabledCheckbox || option.disabledCheckboxCascaded,
|
|
149
|
+
onClick: function onClick(evt) {
|
|
150
|
+
return evt.stopPropagation();
|
|
151
|
+
},
|
|
152
|
+
// 当前是半选时,点击将设置为全选,
|
|
153
|
+
// 又因子节点某个选项未选中但是禁用,当前态将一直是半选,那操作将一直是设置全选操作
|
|
154
|
+
onChange: function onChange(evt) {
|
|
155
|
+
onCheck === null || onCheck === void 0 ? void 0 : onCheck(eventOption, !checked);
|
|
156
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
|
|
157
|
+
}
|
|
158
|
+
})) : null, renderTitle(eventOption), flatted ? null : renderSuffix(prefixCls, option, loading, onLoadChildren)));
|
|
159
|
+
});
|
|
160
|
+
if (env.__DEV__) {
|
|
161
|
+
MenuItem.displayName = 'MenuItem';
|
|
162
|
+
}
|
|
127
163
|
/**
|
|
128
164
|
* 渲染菜单子项的展开提示图标
|
|
129
165
|
*/
|
|
@@ -61,7 +61,9 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
61
61
|
flatted = _a.flatted,
|
|
62
62
|
_a$checkedMode = _a.checkedMode,
|
|
63
63
|
checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
|
|
64
|
-
|
|
64
|
+
virtual = _a.virtual,
|
|
65
|
+
onMenuListChange = _a.onMenuListChange,
|
|
66
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "originalFlattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode", "virtual", "onMenuListChange"]);
|
|
65
67
|
if (checkCascaded === false) {
|
|
66
68
|
checkedMode = 'SEPARATE';
|
|
67
69
|
}
|
|
@@ -101,10 +103,17 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
101
103
|
changeOnSelect: changeOnSelect,
|
|
102
104
|
titleRender: titleRender,
|
|
103
105
|
onLoadChildren: onLoadChildren,
|
|
104
|
-
disabled: disabled
|
|
106
|
+
disabled: disabled,
|
|
107
|
+
virtual: virtual
|
|
105
108
|
};
|
|
106
|
-
}, [expandTrigger, onOptionCheck, onItemExpand, flatted, changeOnSelect, titleRender, onLoadChildren, disabled]);
|
|
107
|
-
var
|
|
109
|
+
}, [expandTrigger, onOptionCheck, onItemExpand, flatted, changeOnSelect, titleRender, onLoadChildren, disabled, virtual]);
|
|
110
|
+
var filteredMenus = React.useMemo(function () {
|
|
111
|
+
var menus = flatted ? index.getFlattedMenus(originalFlattedData) : index.getActiveMenus(originalFlattedData, selectedId);
|
|
112
|
+
return index.getFilteredMenuList(menus, flattedData);
|
|
113
|
+
}, [flatted, flattedData, originalFlattedData, selectedId]);
|
|
114
|
+
React.useEffect(function () {
|
|
115
|
+
onMenuListChange === null || onMenuListChange === void 0 ? void 0 : onMenuListChange(filteredMenus);
|
|
116
|
+
}, [filteredMenus, onMenuListChange]);
|
|
108
117
|
var cls = classname.cx(prefixCls, className, flatted && prefixCls + "--flatted", changeOnSelect && prefixCls + "--selectchange");
|
|
109
118
|
return /*#__PURE__*/React__default["default"].createElement(context.CheckCascaderProvider, {
|
|
110
119
|
value: providedValue
|
|
@@ -112,7 +121,7 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
112
121
|
ref: ref,
|
|
113
122
|
role: role,
|
|
114
123
|
className: cls
|
|
115
|
-
}, rest),
|
|
124
|
+
}, rest), filteredMenus.map(function (menu, menuIndex) {
|
|
116
125
|
var menuContent = /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenu.CheckCascaderMenu, {
|
|
117
126
|
key: menuIndex,
|
|
118
127
|
data: menu,
|
|
@@ -30,7 +30,7 @@ var useCheck = function useCheck(checkedMode, disabled, flattedData, defaultChec
|
|
|
30
30
|
checkedIds = _useUncontrolledState[0],
|
|
31
31
|
trySetCheckedIds = _useUncontrolledState[1];
|
|
32
32
|
// 入口数据处理
|
|
33
|
-
var parsedCheckedIds = index.parseCheckDataDirty(checkedMode, checkedIds, flattedData, allowCheck);
|
|
33
|
+
var parsedCheckedIds = index.parseCheckDataDirty(checkedMode, checkedIds, flattedData, index.allowCheck);
|
|
34
34
|
// 合并 checkedIds,防止部分模式(PARENT和CHILD)在搜索场景下 id 丢失 (https://github.com/XiaoMi/hiui/issues/2750)
|
|
35
35
|
var mergedCheckedIds = Array.from(new Set([].concat(parsedCheckedIds, checkedIds)));
|
|
36
36
|
var cascaded = checkedMode !== 'SEPARATE';
|
|
@@ -41,16 +41,10 @@ var useCheck = function useCheck(checkedMode, disabled, flattedData, defaultChec
|
|
|
41
41
|
checkedIds: mergedCheckedIds,
|
|
42
42
|
onCheck: function onCheck(checkedIds, checkedNode, shouldChecked, semiCheckedIds) {
|
|
43
43
|
// 出口数据处理
|
|
44
|
-
var processedIds = index.processCheckedIds(checkedMode, checkedIds, flattedData, allowCheck);
|
|
44
|
+
var processedIds = index.processCheckedIds(checkedMode, checkedIds, flattedData, index.allowCheck);
|
|
45
45
|
trySetCheckedIds(processedIds, checkedNode, shouldChecked, semiCheckedIds);
|
|
46
46
|
},
|
|
47
|
-
allowCheck: allowCheck
|
|
47
|
+
allowCheck: index.allowCheck
|
|
48
48
|
});
|
|
49
49
|
};
|
|
50
|
-
var allowCheck = function allowCheck(targetItem) {
|
|
51
|
-
if (targetItem.disabled || targetItem.disabledCheckbox || targetItem.checkable === false) {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
return true;
|
|
55
|
-
};
|
|
56
50
|
exports.useCheck = useCheck;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
Object.defineProperty(exports, '__esModule', {
|
|
13
13
|
value: true
|
|
14
14
|
});
|
|
15
|
-
var css_248z = "@charset \"UTF-8\";.hi-
|
|
15
|
+
var css_248z = "@charset \"UTF-8\";.hi-v5-check-cascader__popper .hi-v5-picker__panel {-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 160px;}.hi-v5-check-cascader__popper .hi-v5-picker__search .hi-v5-input__text {width: 100px;}.hi-v5-check-cascader__popper .hi-v5-picker__body {padding-left: 0;padding-right: 0;overflow-y: hidden;}.hi-v5-check-cascader__popper .hi-v5-picker__loading, .hi-v5-check-cascader__popper .hi-v5-picker__empty {padding: var(--hi-v5-spacing-5, 10px) var(--hi-v5-spacing-8, 16px);}.hi-v5-check-cascader-panel {white-space: nowrap;-webkit-box-sizing: border-box;box-sizing: border-box;}.hi-v5-check-cascader-panel-search {-webkit-box-sizing: border-box;box-sizing: border-box;padding: 0 10px 10px;position: relative;}.hi-v5-check-cascader-panel-search .hi-v5-input__prefix {font-size: 16px;padding-left: 0;}.hi-v5-check-cascader-panel-search__empty {display: inline-block;margin-top: 20px;font-size: 14px;font-weight: 400;color: #999;line-height: 20px;}.hi-v5-check-cascader-menus {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-sizing: border-box;box-sizing: border-box;overflow-x: auto;}.hi-v5-check-cascader-menus--flatted .hi-v5-check-cascader-menu {-ms-flex-preferred-size: 100%;flex-basis: 100%;}.hi-v5-check-cascader-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;border: none;outline: none;font-size: var(--hi-v5-text-size-md, 0.875rem);vertical-align: middle;list-style: none;width: auto;box-sizing: border-box;-ms-flex-negative: 0;flex-shrink: 0;display: inline-block;min-width: 160px;max-height: 260px;overflow: auto;padding: 0 var(--hi-v5-spacing-2, 4px);border-right: var(--hi-v5-border-size-normal, 1px solid) var(--hi-v5-color-gray-200, #e6e8eb);}.hi-v5-check-cascader-menu:last-of-type {border: none;}.hi-v5-check-cascader-menu--checkable .hi-v5-check-cascader-menu-checkbox + .title__text {padding-left: 8px;}.hi-v5-check-cascader-menu-item {width: 100%;position: relative;cursor: pointer;display: -webkit-box;display: -ms-flexbox;display: flex;}.hi-v5-check-cascader-menu-checkbox {position: relative;}.hi-v5-check-cascader-menu-checkbox::after {right: 0;top: -8px;bottom: -8px;left: -8px;content: \"\";position: absolute;display: block;}.hi-v5-check-cascader-menu-option {padding: var(--hi-v5-spacing-1, 2px) var(--hi-v5-spacing-4, 8px);-webkit-box-sizing: border-box;box-sizing: border-box;height: var(--hi-v5-height-8, 32px);width: 100%;display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;position: relative;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between;border-radius: var(--hi-v5-border-radius-md, 4px);white-space: nowrap;}.hi-v5-check-cascader-menu-option:hover {background-color: var(--hi-v5-color-gray-50, #f2f4f7);}.hi-v5-check-cascader-menus--selectchange .hi-v5-check-cascader-menu-option:hover .hi-v5-checkbox__icon {border-color: var(--hi-v5-color-primary-500, var(--hi-v5-color-brandblue-500, #2660ff));}.hi-v5-check-cascader-menu-option.hi-v5-check-cascader-menu-option--selected {background: var(--hi-v5-color-primary-50, var(--hi-v5-color-brandblue-50, #edf2ff));color: var(--hi-v5-color-primary-500, var(--hi-v5-color-brandblue-500, #2660ff));}.hi-v5-check-cascader-menu-option.hi-v5-check-cascader-menu-option--selected .hi-v5-check-cascader-menu-switcher {color: var(--hi-v5-color-primary-500, var(--hi-v5-color-brandblue-500, #2660ff));}.hi-v5-check-cascader-menu-option--focused {background-color: var(--hi-v5-color-primary-50, var(--hi-v5-color-brandblue-50, #edf2ff));}.hi-v5-check-cascader-menu-option--disabled {cursor: not-allowed;color: var(--hi-v5-color-gray-500, #91959e);background: transparent;}.hi-v5-check-cascader-menu-option--disabled .hi-v5-check-cascader-menu-switcher {color: var(--hi-v5-color-gray-400, #babcc2);}.hi-v5-check-cascader-menu .title__text {-webkit-box-flex: 1;-ms-flex: 1 1;flex: 1 1;}.hi-v5-check-cascader-menu .title__text--cols {display: block;width: 100%;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;border: none;outline: none;font-size: var(--hi-v5-text-size-md, 0.875rem);vertical-align: middle;list-style: none;}.hi-v5-check-cascader-menu .title__text--col {display: inline-block;}.hi-v5-check-cascader-menu .title__text--col::after {content: \" / \";}.hi-v5-check-cascader-menu .title__text--col:last-child::after {content: none;}.hi-v5-check-cascader-menu .title__text--matched {color: var(--hi-v5-color-primary-500, var(--hi-v5-color-brandblue-500, #2660ff));}.hi-v5-check-cascader-menu-switcher {-ms-flex-negative: 0;flex-shrink: 0;font-size: 16px;color: var(--hi-v5-color-gray-500, #91959e);}.hi-v5-check-cascader-menu-switcher--loading {color: var(--hi-v5-color-primary-500, var(--hi-v5-color-brandblue-500, #2660ff));}.hi-v5-tree--icon-loading {-webkit-animation-name: hi-rotate;animation-name: hi-rotate;-webkit-animation-duration: 2s;animation-duration: 2s;-webkit-animation-iteration-count: infinite;animation-iteration-count: infinite;}@-webkit-keyframes hi-rotate {from {-webkit-transform: rotate(0);transform: rotate(0);}to {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}@keyframes hi-rotate {from {-webkit-transform: rotate(0);transform: rotate(0);}to {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}";
|
|
16
16
|
var __styleInject__ = require('@hi-ui/style-inject')["default"];
|
|
17
17
|
__styleInject__(css_248z);
|
|
18
18
|
exports["default"] = css_248z;
|