@unicom-cloud/ui 0.8.95 → 0.8.97

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 (326) hide show
  1. package/Affix.js +1 -1
  2. package/Carousel.js +1 -1
  3. package/LiquidFill.js +4 -0
  4. package/Message.js +1 -1
  5. package/Notification.js +1 -1
  6. package/OverflowEllipsis.js +1 -1
  7. package/PageHeader.js +1 -1
  8. package/QrCode.js +57 -0
  9. package/Switch.js +1 -1
  10. package/Tour.js +63 -0
  11. package/Trigger.js +2 -2
  12. package/_virtual/_commonjsHelpers.js +6 -0
  13. package/_virtual/index.js +7 -0
  14. package/_virtual/index2.js +4 -0
  15. package/affix/index.js +70 -72
  16. package/alert/index.js +52 -51
  17. package/anchor/Anchor.js +55 -55
  18. package/anchor/Link.js +34 -34
  19. package/anchor/util.js +5 -5
  20. package/auto-complete/index.js +116 -122
  21. package/avatar/Avatar.js +33 -33
  22. package/avatar/Group.js +26 -26
  23. package/back-top/index.js +58 -61
  24. package/badge/index.js +46 -46
  25. package/breadcrumb/Item.js +42 -43
  26. package/breadcrumb/index.js +47 -47
  27. package/button/Group.js +6 -6
  28. package/button/index.js +91 -91
  29. package/calendar/Month.js +75 -75
  30. package/calendar/Year.js +35 -35
  31. package/calendar/header/index.js +25 -25
  32. package/calendar/index.js +103 -103
  33. package/card/Grid.js +8 -8
  34. package/card/Meta.js +16 -16
  35. package/card/index.js +49 -49
  36. package/carousel/Arrow.js +19 -19
  37. package/carousel/Indicator.js +26 -26
  38. package/carousel/index.js +108 -108
  39. package/cascader/Cascader.js +178 -191
  40. package/cascader/base/node.js +133 -136
  41. package/cascader/base/store.js +82 -85
  42. package/cascader/panel/List.js +126 -130
  43. package/cascader/panel/Search.js +79 -81
  44. package/cascader/util.js +13 -13
  45. package/checkbox/Checkbox.js +94 -96
  46. package/checkbox/Group.js +54 -56
  47. package/checkbox/GroupBlock.js +28 -29
  48. package/collapse/Collapse.js +45 -45
  49. package/collapse/Item.js +53 -55
  50. package/color-picker/ControlBar.js +43 -43
  51. package/color-picker/InputAlpha.js +12 -12
  52. package/color-picker/InputHex.js +30 -31
  53. package/color-picker/InputRgb.js +24 -24
  54. package/color-picker/Palette.js +18 -18
  55. package/color-picker/Panel.js +122 -125
  56. package/color-picker/hooks/useColorPicker.js +85 -88
  57. package/color-picker/hooks/useControlBlock.js +38 -40
  58. package/color-picker/index.js +47 -47
  59. package/comment/index.js +29 -29
  60. package/components/common/higher-order/with-speech-synthesis/index.js +37 -40
  61. package/components/common/hooks/useForceUpdate.js +6 -2
  62. package/components/common/hooks/useId.js +4 -4
  63. package/components/common/hooks/useInView.js +16 -16
  64. package/components/common/hooks/useIntersectionObserver.js +1 -1
  65. package/components/common/hooks/useKeyboardEvent.js +9 -10
  66. package/components/common/hooks/useOverflowHidden.js +1 -4
  67. package/components/common/hooks/usePersistCallback.js +7 -7
  68. package/components/common/hooks/useStateCallback.js +9 -10
  69. package/components/common/hooks/useWindowSize.js +8 -8
  70. package/components/common/space/index.js +11 -10
  71. package/components/common/utils/PqbCSSTransition.js +1 -1
  72. package/components/common/utils/convertToDurationBasedOnTimeUnits.js +6 -0
  73. package/components/common/utils/dom.js +27 -29
  74. package/components/common/utils/findScrollParent.js +17 -0
  75. package/components/common/utils/intersectionObserver.js +21 -0
  76. package/components/common/utils/is.js +99 -109
  77. package/components/common/utils/mutationObserver.js +19 -0
  78. package/components/common/utils/reactDOM.js +34 -34
  79. package/components/common/utils/resizeObserver.js +21 -0
  80. package/copy/index.js +38 -40
  81. package/date-picker/Picker.js +290 -295
  82. package/date-picker/RangePicker.js +367 -372
  83. package/date-picker/index.js +33 -35
  84. package/date-picker/panel/Body.js +46 -47
  85. package/date-picker/panel/Header.js +33 -33
  86. package/date-picker/panel/Shortcut.js +31 -31
  87. package/date-picker/panel/date/index.js +85 -85
  88. package/date-picker/panel/month/index.js +59 -59
  89. package/date-picker/panel/quarter/index.js +67 -70
  90. package/date-picker/panel/range/index.js +101 -101
  91. package/date-picker/panel/year/index.js +39 -39
  92. package/date-picker/util.js +17 -18
  93. package/descriptions/index.js +62 -62
  94. package/details/index.js +55 -56
  95. package/development/index.js +9 -9
  96. package/dist/react-transition-group/src/CSSTransition.js +1 -1
  97. package/dist/react-transition-group/src/SwitchTransition.js +1 -1
  98. package/dist/tinycolor/chunk/BOzCVdr0.js +1 -1
  99. package/dist/tween/src/tween.js +24 -25
  100. package/dist/validate/src/index.js +5 -5
  101. package/dist/validate/src/util.js +1 -1
  102. package/divider/index.js +21 -21
  103. package/draggable/Item.js +35 -35
  104. package/draggable/index.js +22 -22
  105. package/drawer/Drawer.js +142 -147
  106. package/dropdown/Button.js +48 -48
  107. package/dropdown/index.js +88 -92
  108. package/empty/index.js +16 -16
  109. package/form/Control.js +211 -225
  110. package/form/Form.js +109 -113
  111. package/form/FormItem.js +118 -120
  112. package/form/FormList.js +60 -66
  113. package/form/FormProvider.js +31 -34
  114. package/form/hook/useContext.js +17 -19
  115. package/form/hook/useState.js +22 -23
  116. package/form/hook/useWatch.js +26 -27
  117. package/form/promisify.js +14 -18
  118. package/form/store.js +304 -316
  119. package/form/util.js +14 -15
  120. package/grid/Col.js +64 -64
  121. package/grid/Grid.js +51 -51
  122. package/grid/GridItem.js +48 -48
  123. package/grid/Row.js +39 -39
  124. package/hooks/index.js +50 -52
  125. package/hooks/useVerificationCode.js +41 -43
  126. package/hooks/useWatermark.js +89 -92
  127. package/icon/index.js +23 -24
  128. package/icon-hover/index.js +16 -16
  129. package/icons/file.js +11 -11
  130. package/image/Image.js +140 -141
  131. package/image/ImagePreview.js +252 -255
  132. package/image/ImagePreviewArrow.js +25 -25
  133. package/image/ImagePreviewGroup.js +62 -62
  134. package/image/util/getScale.js +25 -28
  135. package/index.js +682 -679
  136. package/input/Button.js +48 -50
  137. package/input/Group.js +9 -9
  138. package/input/Input.js +145 -154
  139. package/input/InputElement.js +108 -115
  140. package/input/Password.js +38 -38
  141. package/input/Search.js +51 -55
  142. package/input/Textarea.js +80 -81
  143. package/input/useComposition.js +23 -23
  144. package/input-number/decimal.js +59 -62
  145. package/input-number/index.js +139 -141
  146. package/input-tag/InputTag.js +223 -231
  147. package/layout/Content.js +6 -6
  148. package/layout/Footer.js +8 -8
  149. package/layout/Header.js +7 -7
  150. package/layout/Sider.js +88 -90
  151. package/layout/index.js +30 -30
  152. package/link/index.js +45 -46
  153. package/liquid-fill/LiquidFill.js +189 -0
  154. package/liquid-fill/LiquidFill2.js +3 -0
  155. package/liquid-fill/index.js +4 -0
  156. package/liquid-fill/interface.js +1 -0
  157. package/list/Item.js +28 -28
  158. package/list/Meta.js +12 -12
  159. package/list/index.js +146 -148
  160. package/mentions/index.js +75 -76
  161. package/menu/Item.js +58 -58
  162. package/menu/Menu.js +125 -127
  163. package/menu/OverflowWrap.js +39 -40
  164. package/menu/sub-menu/Inline.js +45 -45
  165. package/menu/util.js +26 -28
  166. package/message/index.js +97 -100
  167. package/message/useMessage.js +26 -27
  168. package/modal/Confirm.js +47 -49
  169. package/modal/Modal.js +250 -257
  170. package/modal/use-modal/Hook.js +26 -28
  171. package/modal/use-modal/index.js +46 -49
  172. package/notice/index.js +89 -90
  173. package/notification/index.js +61 -66
  174. package/notification/withNotification.js +35 -35
  175. package/overflow-ellipsis/OverflowItem.js +19 -20
  176. package/overflow-ellipsis/index.js +45 -46
  177. package/package.json +1 -1
  178. package/page-header/index.js +45 -45
  179. package/pagination/PageItem.js +87 -91
  180. package/pagination/PageJumper.js +40 -41
  181. package/pagination/PageOption.js +31 -35
  182. package/pagination/Pagination.js +162 -163
  183. package/picker/Input.js +90 -96
  184. package/picker/InputRange.js +115 -122
  185. package/popconfirm/index.js +98 -100
  186. package/popover/index.js +28 -28
  187. package/portal/Portal.js +10 -11
  188. package/progress/index.js +36 -36
  189. package/qr-code/index.js +99 -0
  190. package/qr-code/interface.js +1 -0
  191. package/radio/Group.js +48 -48
  192. package/radio/GroupBlock.js +32 -33
  193. package/radio/Radio.js +62 -64
  194. package/rate/index.js +88 -88
  195. package/resize-box/ResizeTrigger.js +39 -39
  196. package/resize-box/Split.js +92 -96
  197. package/resize-box/SplitGroup.js +116 -122
  198. package/resize-box/index.js +112 -115
  199. package/result/index.js +44 -44
  200. package/select/Option.js +53 -56
  201. package/select/Select.js +365 -381
  202. package/select/util.js +95 -99
  203. package/select-view/Core.js +159 -160
  204. package/skeleton/index.js +23 -23
  205. package/slider/Button.js +84 -92
  206. package/slider/Input.js +47 -49
  207. package/slider/Tick.js +28 -31
  208. package/slider/index.js +108 -108
  209. package/slider/util.js +1 -1
  210. package/space/index.js +26 -26
  211. package/space-/index.js +51 -51
  212. package/spin/DotLoading.js +8 -8
  213. package/spin/index.js +47 -47
  214. package/statistic/Countdown.js +37 -37
  215. package/statistic/index.js +61 -61
  216. package/steps/Step.js +42 -42
  217. package/steps/index.js +54 -54
  218. package/style.css +1 -1
  219. package/switch/index.js +78 -79
  220. package/table/ColGroup.js +36 -37
  221. package/table/Table.js +447 -450
  222. package/table/hook/useExpand.js +24 -24
  223. package/table/hook/useRowSelection.js +62 -62
  224. package/table/summary/Row.js +16 -17
  225. package/table/tbody/Td.js +119 -118
  226. package/table/tbody/Tr.js +119 -121
  227. package/table/tbody/index.js +62 -63
  228. package/table/th-resizable/index.js +30 -30
  229. package/table/thead/Column.js +148 -148
  230. package/table/thead/index.js +87 -88
  231. package/tabs/Tab.js +55 -55
  232. package/tabs/TabContent.js +8 -8
  233. package/tabs/TabPane.js +15 -15
  234. package/tabs/hook/useHeaderScroll.js +36 -36
  235. package/tabs/tab-header/TabInk.js +31 -33
  236. package/tabs/tab-header/TabNavIcon.js +34 -35
  237. package/tabs/tab-header/index.js +192 -195
  238. package/tag/index.js +94 -97
  239. package/time-picker/Picker.js +167 -172
  240. package/time-picker/RangePicker.js +28 -28
  241. package/time-picker/TimePicker.js +146 -146
  242. package/time-picker/util.js +4 -4
  243. package/timeline/Item.js +46 -46
  244. package/timeline/Timeline.js +52 -52
  245. package/tooltip/index.js +89 -95
  246. package/tour/index.js +289 -0
  247. package/transfer/Item.js +54 -54
  248. package/transfer/List.js +134 -136
  249. package/transfer/index.js +91 -91
  250. package/tree/Animation.js +49 -52
  251. package/tree/Node.js +114 -122
  252. package/tree/NodeList.js +51 -51
  253. package/tree/Tree.js +386 -393
  254. package/tree-select/List.js +71 -72
  255. package/tree-select/Select.js +135 -143
  256. package/tree-select/hook/useKeyCache.js +39 -39
  257. package/tree-select/hook/useStateValue.js +12 -12
  258. package/trigger/getPopupStyle.js +60 -61
  259. package/trigger/index.js +338 -347
  260. package/types/common/space/interface.d.ts +1 -1
  261. package/types/common/utils/convertToDurationBasedOnTimeUnits.d.ts +3 -0
  262. package/types/common/utils/findScrollParent.d.ts +2 -0
  263. package/types/common/utils/index.d.ts +5 -0
  264. package/types/common/utils/intersectionObserver.d.ts +2 -0
  265. package/types/common/utils/math.d.ts +1 -1
  266. package/types/common/utils/mutationObserver.d.ts +2 -0
  267. package/types/common/utils/resizeObserver.d.ts +2 -0
  268. package/types/pc/alert/interface.d.ts +2 -2
  269. package/types/pc/details/interface.d.ts +2 -2
  270. package/types/pc/hooks/index.d.ts +0 -1
  271. package/types/pc/index.d.ts +3 -0
  272. package/types/pc/liquid-fill/LiquidFill.d.ts +30 -0
  273. package/types/pc/liquid-fill/LiquidFill2.d.ts +1 -0
  274. package/types/pc/liquid-fill/index.d.ts +4 -0
  275. package/types/pc/liquid-fill/interface.d.ts +0 -0
  276. package/types/pc/qr-code/index.d.ts +34 -0
  277. package/types/pc/qr-code/interface.d.ts +39 -0
  278. package/types/pc/table/interface.d.ts +2 -2
  279. package/types/pc/tour/index.d.ts +42 -0
  280. package/types/pc/utils/convertToDurationBasedOnTimeUnits.d.ts +3 -0
  281. package/types/pc/utils/findScrollParent.d.ts +2 -0
  282. package/types/pc/utils/index.d.ts +5 -0
  283. package/types/pc/utils/intersectionObserver.d.ts +2 -0
  284. package/types/pc/utils/math.d.ts +1 -1
  285. package/types/pc/utils/mutationObserver.d.ts +2 -0
  286. package/types/pc/utils/names.d.ts +18 -0
  287. package/types/pc/utils/resizeObserver.d.ts +2 -0
  288. package/typography/Base.js +79 -81
  289. package/typography/EditContent.js +30 -33
  290. package/typography/Ellipsis.js +78 -75
  291. package/typography/Operations.js +50 -52
  292. package/typography/Paragraph.js +7 -7
  293. package/typography/Typography.js +7 -7
  294. package/typography/useEllipsis.js +105 -106
  295. package/upload/TriggerNode.js +69 -76
  296. package/upload/Upload.js +84 -87
  297. package/upload/Uploader.js +115 -118
  298. package/upload/list/PictureItem.js +61 -71
  299. package/upload/list/TextItem.js +61 -67
  300. package/upload/list/UploadProgress.js +42 -49
  301. package/upload/list/index.js +49 -50
  302. package/upload/request_.js +37 -38
  303. package/upload/util.js +39 -39
  304. package/utils/convertToDurationBasedOnTimeUnits.js +6 -0
  305. package/utils/findScrollParent.js +4 -0
  306. package/utils/index.js +274 -275
  307. package/utils/intersectionObserver.js +4 -0
  308. package/utils/math.js +7 -11
  309. package/utils/mutationObserver.js +4 -0
  310. package/utils/names.js +12 -0
  311. package/utils/reactTransitionGroup.js +1 -1
  312. package/utils/resizeObserver.js +4 -0
  313. package/verification-code/VerificationCode.js +50 -51
  314. package/version/index.js +1 -1
  315. package/virtual-list/VirtualList.js +243 -244
  316. package/virtual-list/util/item.js +3 -4
  317. package/watermark/Watermark.js +27 -31
  318. package/components/common/hooks/useComputedState.js +0 -11
  319. package/components/common/utils/resizeObserverEffect.js +0 -23
  320. package/hooks/useComputedState.js +0 -4
  321. package/types/common/hooks/useComputedState.d.ts +0 -4
  322. package/types/common/utils/resizeObserverEffect.d.ts +0 -2
  323. package/types/pc/hooks/useComputedState.d.ts +0 -1
  324. package/types/pc/utils/resizeObserverEffect.d.ts +0 -2
  325. package/utils/resizeObserverEffect.js +0 -4
  326. /package/dist/react-transition-group/chunk/{C6QwjD4L.js → CPfP7aNL.js} +0 -0
@@ -1,142 +1,139 @@
1
- var b = Object.defineProperty;
2
- var k = (d, e, t) => e in d ? b(d, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[e] = t;
3
- var a = (d, e, t) => k(d, typeof e != "symbol" ? e + "" : e, t);
4
- import c from "lodash/get";
5
- import { DefaultFieldNames as g } from "../Cascader.js";
6
- class _ {
7
- constructor(e, t, h) {
8
- a(this, "value");
9
- a(this, "label");
10
- // 是否禁用
11
- a(this, "disabled");
12
- a(this, "_level");
13
- a(this, "_index");
14
- a(this, "isLeaf");
15
- a(this, "disableCheckbox");
16
- // 是否选中
17
- a(this, "_checked");
18
- /** 是否半选 */
19
- a(this, "_halfChecked");
20
- /** 当前选项节点的父节点 */
21
- a(this, "parent");
22
- /** 当前选项节点路径的所有节点的值 */
23
- a(this, "pathValue", []);
24
- a(this, "pathLabel", []);
25
- /** 下一级选项 */
26
- a(this, "children");
27
- /** 是否在加载中 */
28
- a(this, "loading");
29
- /** 是否加载完成 */
30
- a(this, "loaded");
31
- a(this, "config", {});
32
- // 保存暴露给外部的属性
33
- a(this, "_data");
34
- a(this, "_initNode", (e, t = null) => {
35
- const { showEmptyChildren: h, lazyload: i } = this.config, l = { ...g, ...this.config.fieldNames }, n = c(e, l.children) || e[l.children];
36
- let f = Array.isArray(n) ? h ? !1 : n.length === 0 : !0;
37
- i && (l.isLeaf in e ? f = !!c(e, l.isLeaf) || !!e[l.isLeaf] : f = !1);
38
- const u = c(e, l.value) || e[l.value], o = c(e, l.label) || e[l.label], r = {
39
- ...e,
40
- value: u,
41
- label: o,
42
- isLeaf: f,
43
- loading: !1,
44
- loaded: !1,
45
- disabled: t && t.disabled || c(e, l.disabled) || e[l.disabled],
46
- parent: t,
47
- pathValue: t ? [...t.pathValue, u] : [u],
48
- pathLabel: t ? [...t.pathLabel, o] : [o],
49
- _level: t ? t._level + 1 : 0,
50
- _checked: !1,
51
- _halfChecked: !1
52
- };
53
- this._data = {
54
- ...r,
55
- parent: r.parent && r.parent._data
56
- }, Object.keys(r).forEach((s) => {
57
- this[s] = r[s];
58
- }), n && n.length && (this.children = n.map((s, C) => new _({ ...s, _index: C }, this.config, this)), this._data.children = this.children.map((s) => s._data));
59
- });
60
- /**
61
- * 根据this.children 计算是否当前node半选状态
62
- * 假设半选是 0.5,全选是1,不选是0
63
- * 那么只有当前节点的所有children加起来等于children.length,才是全选,否则和大于0,就是半选。
64
- */
65
- a(this, "_isHalfChecked", () => {
66
- const e = this.children.reduce((t, h) => {
67
- const i = h._halfChecked ? 0.5 : h._checked ? 1 : 0;
68
- return t + i;
69
- }, 0);
70
- return e !== this.children.length && e > 0;
71
- });
72
- /**
73
- *
74
- * @param checked 选中状态
75
- * @param ignoreDisabled 是否忽略节点禁用设置选中状态,一般在初始化设置选中状态时传参为true
76
- */
77
- a(this, "_setNodeChildrenChecked", (e, t) => {
78
- !t && this.disabled || this.children && this.children.length && (this.children.forEach((h) => {
79
- h.disabled ? t && h.setCheckedStateIgnoreDisabled(e) : h.setCheckedState(e);
80
- }), this.updateHalfState(e));
81
- });
82
- a(this, "getSelfChildrenValue", () => {
83
- const e = [], t = (h, i) => {
84
- if (!i || !i.length) {
85
- e.push(h);
86
- return;
87
- }
88
- (i || []).forEach((l) => {
89
- t(l.pathValue, l.children);
90
- });
91
- };
92
- return t(this.pathValue, this.children), e;
93
- });
94
- a(this, "updateHalfState", (e) => {
95
- this._halfChecked = this._isHalfChecked(), this._checked = this._halfChecked ? !1 : e;
96
- });
97
- // 直接设置选中状态
98
- a(this, "setCheckedProperty", (e) => {
99
- this._checked = e, this._halfChecked = !1;
100
- });
101
- // 设置当前节点选中状态
102
- a(this, "setCheckedState", (e) => {
103
- const t = e ? this._checked : !this._checked && !this._halfChecked;
104
- if (!(this.disabled || t) && (this.setCheckedProperty(e), !this.config.changeOnSelect)) {
105
- this._setNodeChildrenChecked(e);
106
- let h = this.parent;
107
- for (; h && !h.disabled; )
108
- h.updateHalfState(e), h = h.parent;
109
- }
110
- });
111
- // 忽略禁用设置选中状态
112
- a(this, "setCheckedStateIgnoreDisabled", (e) => {
113
- if (e !== !!this._checked && (this.setCheckedProperty(e), !this.config.changeOnSelect)) {
114
- this._setNodeChildrenChecked(e, !0);
115
- let t = this.parent;
116
- for (; t; )
117
- t.updateHalfState(e), t = t.parent;
1
+ import n from "lodash/get";
2
+ import { DefaultFieldNames as _ } from "../Cascader.js";
3
+ class u {
4
+ value;
5
+ label;
6
+ // 是否禁用
7
+ disabled;
8
+ _level;
9
+ _index;
10
+ isLeaf;
11
+ disableCheckbox;
12
+ // 是否选中
13
+ _checked;
14
+ /** 是否半选 */
15
+ _halfChecked;
16
+ /** 当前选项节点的父节点 */
17
+ parent;
18
+ /** 当前选项节点路径的所有节点的值 */
19
+ pathValue = [];
20
+ pathLabel = [];
21
+ /** 下一级选项 */
22
+ children;
23
+ /** 是否在加载中 */
24
+ loading;
25
+ /** 是否加载完成 */
26
+ loaded;
27
+ config = {};
28
+ // 保存暴露给外部的属性
29
+ _data;
30
+ constructor(e, t, a) {
31
+ this.config = t || {}, this._initNode(e, a || null);
32
+ }
33
+ _initNode = (e, t = null) => {
34
+ const { showEmptyChildren: a, lazyload: l } = this.config, h = { ..._, ...this.config.fieldNames }, s = n(e, h.children) || e[h.children];
35
+ let r = Array.isArray(s) ? a ? !1 : s.length === 0 : !0;
36
+ l && (h.isLeaf in e ? r = !!n(e, h.isLeaf) || !!e[h.isLeaf] : r = !1);
37
+ const c = n(e, h.value) || e[h.value], f = n(e, h.label) || e[h.label], d = {
38
+ ...e,
39
+ value: c,
40
+ label: f,
41
+ isLeaf: r,
42
+ loading: !1,
43
+ loaded: !1,
44
+ disabled: t && t.disabled || n(e, h.disabled) || e[h.disabled],
45
+ parent: t,
46
+ pathValue: t ? [...t.pathValue, c] : [c],
47
+ pathLabel: t ? [...t.pathLabel, f] : [f],
48
+ _level: t ? t._level + 1 : 0,
49
+ _checked: !1,
50
+ _halfChecked: !1
51
+ };
52
+ this._data = {
53
+ ...d,
54
+ parent: d.parent && d.parent._data
55
+ }, Object.keys(d).forEach((i) => {
56
+ this[i] = d[i];
57
+ }), s && s.length && (this.children = s.map((i, o) => new u({ ...i, _index: o }, this.config, this)), this._data.children = this.children.map((i) => i._data));
58
+ };
59
+ /**
60
+ * 根据this.children 计算是否当前node半选状态
61
+ * 假设半选是 0.5,全选是1,不选是0。
62
+ * 那么只有当前节点的所有children加起来等于children.length,才是全选,否则和大于0,就是半选。
63
+ */
64
+ _isHalfChecked = () => {
65
+ const e = this.children.reduce((t, a) => {
66
+ const l = a._halfChecked ? 0.5 : a._checked ? 1 : 0;
67
+ return t + l;
68
+ }, 0);
69
+ return e !== this.children.length && e > 0;
70
+ };
71
+ /**
72
+ *
73
+ * @param checked 选中状态
74
+ * @param ignoreDisabled 是否忽略节点禁用设置选中状态,一般在初始化设置选中状态时传参为true
75
+ */
76
+ _setNodeChildrenChecked = (e, t) => {
77
+ !t && this.disabled || this.children && this.children.length && (this.children.forEach((a) => {
78
+ a.disabled ? t && a.setCheckedStateIgnoreDisabled(e) : a.setCheckedState(e);
79
+ }), this.updateHalfState(e));
80
+ };
81
+ getSelfChildrenValue = () => {
82
+ const e = [], t = (a, l) => {
83
+ if (!l || !l.length) {
84
+ e.push(a);
85
+ return;
118
86
  }
119
- });
120
- /**
121
- * 遍历节点的parent,获取当前节点的路径节点。
122
- * node: { label: '1-1-1', parent: { label: '1-1', parent: { label: '1' }, ... }, ...}
123
- * @return [node.parent.parent, node.parent, node]
124
- * @memberof Store
125
- */
126
- a(this, "getPathNodes", () => {
127
- const e = [this];
87
+ (l || []).forEach((h) => {
88
+ t(h.pathValue, h.children);
89
+ });
90
+ };
91
+ return t(this.pathValue, this.children), e;
92
+ };
93
+ updateHalfState = (e) => {
94
+ this._halfChecked = this._isHalfChecked(), this._checked = this._halfChecked ? !1 : e;
95
+ };
96
+ // 直接设置选中状态
97
+ setCheckedProperty = (e) => {
98
+ this._checked = e, this._halfChecked = !1;
99
+ };
100
+ // 设置当前节点选中状态
101
+ setCheckedState = (e) => {
102
+ const t = e ? this._checked : !this._checked && !this._halfChecked;
103
+ if (!(this.disabled || t) && (this.setCheckedProperty(e), !this.config.changeOnSelect)) {
104
+ this._setNodeChildrenChecked(e);
105
+ let a = this.parent;
106
+ for (; a && !a.disabled; )
107
+ a.updateHalfState(e), a = a.parent;
108
+ }
109
+ };
110
+ // 忽略禁用设置选中状态
111
+ setCheckedStateIgnoreDisabled = (e) => {
112
+ if (e !== !!this._checked && (this.setCheckedProperty(e), !this.config.changeOnSelect)) {
113
+ this._setNodeChildrenChecked(e, !0);
128
114
  let t = this.parent;
129
115
  for (; t; )
130
- e.unshift(t), t = t.parent;
131
- return e;
132
- });
133
- a(this, "getChildren", () => this.children);
134
- a(this, "setLoading", (e) => {
135
- this.loading = e, (e || e === void 0) && (this.loaded = !1), e === !1 && (this.loaded = !0);
136
- });
137
- this.config = t || {}, this._initNode(e, h || null);
138
- }
116
+ t.updateHalfState(e), t = t.parent;
117
+ }
118
+ };
119
+ /**
120
+ * 遍历节点的parent,获取当前节点的路径节点。
121
+ * node: { label: '1-1-1', parent: { label: '1-1', parent: { label: '1' }, ... }, ...}
122
+ * @return [node.parent.parent, node.parent, node]
123
+ * @memberof Store
124
+ */
125
+ getPathNodes = () => {
126
+ const e = [this];
127
+ let t = this.parent;
128
+ for (; t; )
129
+ e.unshift(t), t = t.parent;
130
+ return e;
131
+ };
132
+ getChildren = () => this.children;
133
+ setLoading = (e) => {
134
+ this.loading = e, (e || e === void 0) && (this.loaded = !1), e === !1 && (this.loaded = !0);
135
+ };
139
136
  }
140
137
  export {
141
- _ as default
138
+ u as default
142
139
  };
@@ -1,93 +1,90 @@
1
- var l = Object.defineProperty;
2
- var c = (i, e, t) => e in i ? l(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
- var a = (i, e, t) => c(i, typeof e != "symbol" ? e + "" : e, t);
4
- import d from "lodash/isArray";
5
- import u from "lodash/isEqualWith";
6
- import N from "lodash/isFunction";
7
- import g from "lodash/isString";
8
- import { transformValuesToSet as m, valueInSet as n } from "../util.js";
9
- import p from "./node.js";
10
- class P {
1
+ import n from "lodash/isArray";
2
+ import f from "lodash/isEqualWith";
3
+ import l from "lodash/isFunction";
4
+ import c from "lodash/isString";
5
+ import { transformValuesToSet as d, valueInSet as o } from "../util.js";
6
+ import u from "./node.js";
7
+ class S {
8
+ nodes = [];
9
+ flatNodes = [];
10
+ config = {};
11
11
  constructor(e, t, s) {
12
- a(this, "nodes", []);
13
- a(this, "flatNodes", []);
14
- a(this, "config", {});
15
- // 初始化节点状态,附加状态信息字段: _checked,_halfChecked,parent,disabled
16
- a(this, "_calcNodes", (e, t) => e ? e.map((s, r) => new p({ ...s, _index: r }, this.config, t)) : []);
17
- // this.flatNodes 保存所有可能的选中项
18
- a(this, "_updateFlatNodes", () => {
19
- const e = !this.config.changeOnSelect;
20
- this.flatNodes = [];
21
- const t = (s) => {
22
- s && ((!e || s.isLeaf) && this.flatNodes.push(s), d(s.children) && s.children.forEach((r) => {
23
- t(r);
24
- }));
25
- };
26
- this.nodes.forEach((s) => {
27
- t(s);
28
- });
29
- });
30
- /**
31
- * values: 全部的选中值
32
- * 根据values更新节点状态。不包含在values的节点都设置为未选中状态
33
- * @memberof Store
34
- */
35
- a(this, "setNodeCheckedByValue", (e) => {
36
- const t = m(e);
37
- this.flatNodes.forEach((s) => {
38
- let r = !1;
39
- this.config.showParent ? s.pathValue.some(
40
- (o, h, f) => n(t, f.slice(0, h + 1))
41
- ) && (r = !0) : n(t, s.pathValue) && (r = !0), s.setCheckedStateIgnoreDisabled(r);
42
- });
43
- });
44
- /**
45
- * 为当前节点插入子节点。动态加载时候用到
46
- */
47
- a(this, "appendOptionChildren", (e, t) => {
48
- if (t && e) {
49
- const s = this._calcNodes(t, e);
50
- e.children = s, this._updateFlatNodes(), this.config.changeOnSelect || e.setCheckedState(!1);
51
- }
52
- });
53
- /**
54
- * 通过 value 查找对应的node节点。
55
- * value: 是路径节点的value组成的数组
56
- */
57
- a(this, "findNodeByValue", (e) => {
58
- let t = null;
59
- return !e || !e.length || this.flatNodes.some((s) => {
60
- u(s.pathValue, e) && (t = s);
61
- }), t;
62
- });
63
- /**
64
- * 搜索所有label含有关键字的节点
65
- */
66
- a(this, "searchNodeByLabel", (e) => {
67
- if (!e)
68
- return this.flatNodes;
69
- const { filterOption: t } = this.config, s = N(t) ? t : (r, o) => g(o.label) && o.label.indexOf(r) > -1;
70
- return this.flatNodes.filter((r) => r.getPathNodes().some((h) => s(e, h._data)));
71
- });
72
- /** 获取所有节点 */
73
- a(this, "getOptions", () => this.nodes);
74
- /** 获取所有选中状态的节点。 aggregation: 是否聚合节点 */
75
- a(this, "getCheckedNodes", () => this.config.showParent ? this.getCheckedParentNodes() : this.flatNodes.filter((e) => e._checked));
76
- // 按照父节点纬度聚合当前所有选中节点。
77
- a(this, "getCheckedParentNodes", () => {
78
- const e = /* @__PURE__ */ new Set();
79
- return this.flatNodes.forEach((t) => {
80
- t._checked && t.getPathNodes().some((r) => {
81
- if (r._checked)
82
- return e.has(r) || e.add(r), !0;
83
- });
84
- }), Array.from(e);
85
- });
86
12
  this.config = { ...s };
87
13
  const r = Array.isArray(t) ? t : [];
88
14
  this.nodes = this._calcNodes(e, null), this._updateFlatNodes(), this.setNodeCheckedByValue(r);
89
15
  }
16
+ // 初始化节点状态,附加状态信息字段: _checked,_halfChecked,parent,disabled
17
+ _calcNodes = (e, t) => e ? e.map((s, r) => new u({ ...s, _index: r }, this.config, t)) : [];
18
+ // this.flatNodes 保存所有可能的选中项
19
+ _updateFlatNodes = () => {
20
+ const e = !this.config.changeOnSelect;
21
+ this.flatNodes = [];
22
+ const t = (s) => {
23
+ s && ((!e || s.isLeaf) && this.flatNodes.push(s), n(s.children) && s.children.forEach((r) => {
24
+ t(r);
25
+ }));
26
+ };
27
+ this.nodes.forEach((s) => {
28
+ t(s);
29
+ });
30
+ };
31
+ /**
32
+ * values: 全部的选中值
33
+ * 根据values更新节点状态。不包含在values的节点都设置为未选中状态
34
+ * @memberof Store
35
+ */
36
+ setNodeCheckedByValue = (e) => {
37
+ const t = d(e);
38
+ this.flatNodes.forEach((s) => {
39
+ let r = !1;
40
+ this.config.showParent ? s.pathValue.some(
41
+ (a, i, h) => o(t, h.slice(0, i + 1))
42
+ ) && (r = !0) : o(t, s.pathValue) && (r = !0), s.setCheckedStateIgnoreDisabled(r);
43
+ });
44
+ };
45
+ /**
46
+ * 为当前节点插入子节点。动态加载时候用到
47
+ */
48
+ appendOptionChildren = (e, t) => {
49
+ if (t && e) {
50
+ const s = this._calcNodes(t, e);
51
+ e.children = s, this._updateFlatNodes(), this.config.changeOnSelect || e.setCheckedState(!1);
52
+ }
53
+ };
54
+ /**
55
+ * 通过 value 查找对应的node节点。
56
+ * value: 是路径节点的value组成的数组
57
+ */
58
+ findNodeByValue = (e) => {
59
+ let t = null;
60
+ return !e || !e.length || this.flatNodes.some((s) => {
61
+ f(s.pathValue, e) && (t = s);
62
+ }), t;
63
+ };
64
+ /**
65
+ * 搜索所有label含有关键字的节点
66
+ */
67
+ searchNodeByLabel = (e) => {
68
+ if (!e)
69
+ return this.flatNodes;
70
+ const { filterOption: t } = this.config, s = l(t) ? t : (r, a) => c(a.label) && a.label.indexOf(r) > -1;
71
+ return this.flatNodes.filter((r) => r.getPathNodes().some((i) => s(e, i._data)));
72
+ };
73
+ /** 获取所有节点 */
74
+ getOptions = () => this.nodes;
75
+ /** 获取所有选中状态的节点。 aggregation: 是否聚合节点 */
76
+ getCheckedNodes = () => this.config.showParent ? this.getCheckedParentNodes() : this.flatNodes.filter((e) => e._checked);
77
+ // 按照父节点纬度聚合当前所有选中节点。
78
+ getCheckedParentNodes = () => {
79
+ const e = /* @__PURE__ */ new Set();
80
+ return this.flatNodes.forEach((t) => {
81
+ t._checked && t.getPathNodes().some((r) => {
82
+ if (r._checked)
83
+ return e.has(r) || e.add(r), !0;
84
+ });
85
+ }), Array.from(e);
86
+ };
90
87
  }
91
88
  export {
92
- P as default
89
+ S as default
93
90
  };