tdesign-react 0.35.2-alpha.1 → 0.35.2-alpha.4

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 (540) hide show
  1. package/dist/tdesign.css +35 -1
  2. package/dist/tdesign.css.map +1 -1
  3. package/dist/tdesign.js +1503 -1249
  4. package/dist/tdesign.js.map +1 -1
  5. package/dist/tdesign.min.css +1 -1
  6. package/dist/tdesign.min.css.map +1 -1
  7. package/dist/tdesign.min.js +3 -3
  8. package/dist/tdesign.min.js.map +1 -1
  9. package/{esm/_chunks/dep-77304ace.js → es/_chunks/dep-30c0a7bc.js} +2 -2
  10. package/es/_chunks/{dep-77304ace.js.map → dep-30c0a7bc.js.map} +1 -1
  11. package/es/_chunks/{dep-daaa76c2.js → dep-7cc0a2e2.js} +2 -2
  12. package/es/_chunks/{dep-daaa76c2.js.map → dep-7cc0a2e2.js.map} +1 -1
  13. package/es/_chunks/{dep-2dcbb9b7.js → dep-85b223d3.js} +2 -2
  14. package/{esm/_chunks/dep-2dcbb9b7.js.map → es/_chunks/dep-85b223d3.js.map} +1 -1
  15. package/es/_chunks/{dep-16cb7f3b.js → dep-aa5a02ef.js} +6 -3
  16. package/es/_chunks/dep-aa5a02ef.js.map +1 -0
  17. package/es/_chunks/{dep-5bfc1a42.js → dep-e97e29d5.js} +22 -4
  18. package/es/_chunks/dep-e97e29d5.js.map +1 -0
  19. package/es/_common/js/tabs/base.js +1 -1
  20. package/es/_common/js/tabs/base.js.map +1 -1
  21. package/es/_common/js/tree/tree-node-model.js +2 -3
  22. package/es/_common/js/tree/tree-node-model.js.map +1 -1
  23. package/es/_common/js/tree/tree-node.d.ts +1 -1
  24. package/es/_common/js/tree/tree-node.js +4 -5
  25. package/es/_common/js/tree/tree-node.js.map +1 -1
  26. package/es/_common/js/tree/tree-store.d.ts +1 -1
  27. package/es/_common/js/tree/tree-store.js +7 -8
  28. package/es/_common/js/tree/tree-store.js.map +1 -1
  29. package/es/_common/js/upload/xhr.js +1 -1
  30. package/es/_common/js/upload/xhr.js.map +1 -1
  31. package/es/calendar/Calendar.js +3 -4
  32. package/es/calendar/Calendar.js.map +1 -1
  33. package/es/calendar/index.js +3 -4
  34. package/es/calendar/index.js.map +1 -1
  35. package/es/cascader/Cascader.js +3 -4
  36. package/es/cascader/Cascader.js.map +1 -1
  37. package/es/cascader/index.js +3 -4
  38. package/es/cascader/index.js.map +1 -1
  39. package/es/cascader/interface.js +2 -3
  40. package/es/cascader/interface.js.map +1 -1
  41. package/es/color-picker/ColorPicker.js +3 -4
  42. package/es/color-picker/ColorPicker.js.map +1 -1
  43. package/es/color-picker/ColorPickerPanel.js +3 -4
  44. package/es/color-picker/ColorPickerPanel.js.map +1 -1
  45. package/es/color-picker/components/panel/format/index.js +2 -3
  46. package/es/color-picker/components/panel/format/index.js.map +1 -1
  47. package/es/color-picker/components/panel/header.js +1 -1
  48. package/es/color-picker/components/panel/index.js +3 -4
  49. package/es/color-picker/components/panel/index.js.map +1 -1
  50. package/es/color-picker/index.js +3 -4
  51. package/es/color-picker/index.js.map +1 -1
  52. package/es/date-picker/DatePicker.js +2 -3
  53. package/es/date-picker/DatePicker.js.map +1 -1
  54. package/es/date-picker/DatePickerPanel.js +2 -3
  55. package/es/date-picker/DatePickerPanel.js.map +1 -1
  56. package/es/date-picker/DateRangePicker.js +2 -3
  57. package/es/date-picker/DateRangePicker.js.map +1 -1
  58. package/es/date-picker/DateRangePickerPanel.js +2 -3
  59. package/es/date-picker/DateRangePickerPanel.js.map +1 -1
  60. package/es/date-picker/base/Header.js +2 -3
  61. package/es/date-picker/base/Header.js.map +1 -1
  62. package/es/date-picker/index.js +2 -3
  63. package/es/date-picker/index.js.map +1 -1
  64. package/es/date-picker/panel/PanelContent.js +2 -3
  65. package/es/date-picker/panel/PanelContent.js.map +1 -1
  66. package/es/date-picker/panel/RangePanel.js +2 -3
  67. package/es/date-picker/panel/RangePanel.js.map +1 -1
  68. package/es/date-picker/panel/SinglePanel.js +2 -3
  69. package/es/date-picker/panel/SinglePanel.js.map +1 -1
  70. package/es/dropdown/Dropdown.js +2 -3
  71. package/es/dropdown/Dropdown.js.map +1 -1
  72. package/es/dropdown/index.js +2 -3
  73. package/es/dropdown/index.js.map +1 -1
  74. package/es/form/Form.js +11 -8
  75. package/es/form/Form.js.map +1 -1
  76. package/es/form/FormItem.d.ts +1 -5
  77. package/es/form/FormItem.js +1188 -34
  78. package/es/form/FormItem.js.map +1 -1
  79. package/es/form/const.d.ts +5 -0
  80. package/es/form/const.js +15 -0
  81. package/es/form/const.js.map +1 -0
  82. package/es/form/defaultProps.d.ts +2 -1
  83. package/es/form/defaultProps.js +2 -1
  84. package/es/form/defaultProps.js.map +1 -1
  85. package/es/form/formModel.d.ts +23 -1
  86. package/es/form/formModel.js +21 -33
  87. package/es/form/formModel.js.map +1 -1
  88. package/es/form/hooks/useFormItemStyle.js +103 -225
  89. package/es/form/hooks/useFormItemStyle.js.map +1 -1
  90. package/es/form/hooks/useInstance.d.ts +2 -1
  91. package/es/form/hooks/useInstance.js +120 -65
  92. package/es/form/hooks/useInstance.js.map +1 -1
  93. package/es/form/index.js +9 -8
  94. package/es/form/index.js.map +1 -1
  95. package/es/form/type.d.ts +22 -11
  96. package/es/form/useInitialData.js +4 -5
  97. package/es/form/useInitialData.js.map +1 -1
  98. package/es/index.d.ts +1 -0
  99. package/es/index.js +12 -7
  100. package/es/index.js.map +1 -1
  101. package/es/pagination/Pagination.js +3 -4
  102. package/es/pagination/Pagination.js.map +1 -1
  103. package/es/pagination/index.js +3 -4
  104. package/es/pagination/index.js.map +1 -1
  105. package/es/radio/Radio.js +1 -1
  106. package/es/radio/RadioGroup.d.ts +2 -1
  107. package/es/radio/RadioGroup.js +1 -1
  108. package/es/radio/index.js +1 -1
  109. package/es/select/base/Select.js +2 -3
  110. package/es/select/base/Select.js.map +1 -1
  111. package/es/select/index.js +2 -3
  112. package/es/select/index.js.map +1 -1
  113. package/es/select-input/SelectInput.js +2 -3
  114. package/es/select-input/SelectInput.js.map +1 -1
  115. package/es/select-input/index.js +2 -3
  116. package/es/select-input/index.js.map +1 -1
  117. package/es/select-input/useSingle.js +2 -3
  118. package/es/select-input/useSingle.js.map +1 -1
  119. package/es/space/Space.d.ts +8 -0
  120. package/{esm/addon/Addon.js → es/space/Space.js} +53 -44
  121. package/es/space/Space.js.map +1 -0
  122. package/es/space/defaultProps.d.ts +5 -0
  123. package/es/space/defaultProps.js +14 -0
  124. package/es/space/defaultProps.js.map +1 -0
  125. package/es/space/index.d.ts +6 -0
  126. package/es/space/index.js +45 -0
  127. package/es/space/index.js.map +1 -0
  128. package/es/space/style/css.d.ts +1 -0
  129. package/es/space/style/css.js +1 -0
  130. package/es/space/style/index.css +31 -0
  131. package/es/space/style/index.d.ts +1 -0
  132. package/es/space/style/index.js +7 -0
  133. package/es/space/style/index.js.map +1 -0
  134. package/es/space/type.d.ts +30 -0
  135. package/es/space/type.js +7 -0
  136. package/es/space/type.js.map +1 -0
  137. package/es/style/index.css +3 -1
  138. package/es/table/BaseTable.js +3 -4
  139. package/es/table/BaseTable.js.map +1 -1
  140. package/es/table/EnhancedTable.js +4 -5
  141. package/es/table/EnhancedTable.js.map +1 -1
  142. package/es/table/FilterController.js +1 -1
  143. package/es/table/PrimaryTable.js +4 -5
  144. package/es/table/PrimaryTable.js.map +1 -1
  145. package/es/table/TBody.js +2 -3
  146. package/es/table/TBody.js.map +1 -1
  147. package/es/table/hooks/useAsyncLoading.js +1 -0
  148. package/es/table/hooks/useAsyncLoading.js.map +1 -1
  149. package/es/table/hooks/useFilter.js +1 -1
  150. package/es/table/hooks/usePagination.js +3 -4
  151. package/es/table/hooks/usePagination.js.map +1 -1
  152. package/es/table/hooks/useRowSelect.js +1 -1
  153. package/es/table/index.js +4 -5
  154. package/es/table/index.js.map +1 -1
  155. package/es/time-picker/TimePicker.js +2 -3
  156. package/es/time-picker/TimePicker.js.map +1 -1
  157. package/es/time-picker/index.js +2 -3
  158. package/es/time-picker/index.js.map +1 -1
  159. package/es/transfer/Transfer.js +5 -6
  160. package/es/transfer/Transfer.js.map +1 -1
  161. package/es/transfer/TransferList.js +3 -4
  162. package/es/transfer/TransferList.js.map +1 -1
  163. package/es/transfer/index.js +5 -6
  164. package/es/transfer/index.js.map +1 -1
  165. package/es/tree/Tree.js +3 -4
  166. package/es/tree/Tree.js.map +1 -1
  167. package/es/tree/index.js +3 -4
  168. package/es/tree/index.js.map +1 -1
  169. package/es/tree/useStore.js +3 -4
  170. package/es/tree/useStore.js.map +1 -1
  171. package/es/tree-select/TreeSelect.js +3 -4
  172. package/es/tree-select/TreeSelect.js.map +1 -1
  173. package/es/tree-select/index.js +3 -4
  174. package/es/tree-select/index.js.map +1 -1
  175. package/es/tree-select/useTreeSelectPassthoughProps.js +2 -3
  176. package/es/tree-select/useTreeSelectPassthoughProps.js.map +1 -1
  177. package/es/tree-select/useTreeSelectUtils.js +4 -5
  178. package/es/tree-select/useTreeSelectUtils.js.map +1 -1
  179. package/{es/_chunks/dep-77304ace.js → esm/_chunks/dep-30c0a7bc.js} +2 -2
  180. package/esm/_chunks/{dep-77304ace.js.map → dep-30c0a7bc.js.map} +1 -1
  181. package/esm/_chunks/{dep-daaa76c2.js → dep-7cc0a2e2.js} +2 -2
  182. package/esm/_chunks/{dep-daaa76c2.js.map → dep-7cc0a2e2.js.map} +1 -1
  183. package/esm/_chunks/{dep-2dcbb9b7.js → dep-85b223d3.js} +2 -2
  184. package/{es/_chunks/dep-2dcbb9b7.js.map → esm/_chunks/dep-85b223d3.js.map} +1 -1
  185. package/esm/_chunks/{dep-16cb7f3b.js → dep-aa5a02ef.js} +6 -3
  186. package/esm/_chunks/dep-aa5a02ef.js.map +1 -0
  187. package/esm/_chunks/{dep-5bfc1a42.js → dep-e97e29d5.js} +22 -4
  188. package/esm/_chunks/dep-e97e29d5.js.map +1 -0
  189. package/esm/_common/js/tabs/base.js +1 -1
  190. package/esm/_common/js/tabs/base.js.map +1 -1
  191. package/esm/_common/js/tree/tree-node-model.js +2 -3
  192. package/esm/_common/js/tree/tree-node-model.js.map +1 -1
  193. package/esm/_common/js/tree/tree-node.d.ts +1 -1
  194. package/esm/_common/js/tree/tree-node.js +4 -5
  195. package/esm/_common/js/tree/tree-node.js.map +1 -1
  196. package/esm/_common/js/tree/tree-store.d.ts +1 -1
  197. package/esm/_common/js/tree/tree-store.js +7 -8
  198. package/esm/_common/js/tree/tree-store.js.map +1 -1
  199. package/esm/_common/js/upload/xhr.js +1 -1
  200. package/esm/_common/js/upload/xhr.js.map +1 -1
  201. package/esm/_common/style/web/_reset.less +3 -1
  202. package/esm/_common/style/web/components/space/_index.less +27 -0
  203. package/esm/_common/style/web/components/space/_var.less +0 -0
  204. package/esm/_common/style/web/components/swiper/_docs.less +2 -2
  205. package/esm/calendar/Calendar.js +3 -4
  206. package/esm/calendar/Calendar.js.map +1 -1
  207. package/esm/calendar/index.js +3 -4
  208. package/esm/calendar/index.js.map +1 -1
  209. package/esm/cascader/Cascader.js +3 -4
  210. package/esm/cascader/Cascader.js.map +1 -1
  211. package/esm/cascader/index.js +3 -4
  212. package/esm/cascader/index.js.map +1 -1
  213. package/esm/cascader/interface.js +2 -3
  214. package/esm/cascader/interface.js.map +1 -1
  215. package/esm/color-picker/ColorPicker.js +3 -4
  216. package/esm/color-picker/ColorPicker.js.map +1 -1
  217. package/esm/color-picker/ColorPickerPanel.js +3 -4
  218. package/esm/color-picker/ColorPickerPanel.js.map +1 -1
  219. package/esm/color-picker/components/panel/format/index.js +2 -3
  220. package/esm/color-picker/components/panel/format/index.js.map +1 -1
  221. package/esm/color-picker/components/panel/header.js +1 -1
  222. package/esm/color-picker/components/panel/index.js +3 -4
  223. package/esm/color-picker/components/panel/index.js.map +1 -1
  224. package/esm/color-picker/index.js +3 -4
  225. package/esm/color-picker/index.js.map +1 -1
  226. package/esm/date-picker/DatePicker.js +2 -3
  227. package/esm/date-picker/DatePicker.js.map +1 -1
  228. package/esm/date-picker/DatePickerPanel.js +2 -3
  229. package/esm/date-picker/DatePickerPanel.js.map +1 -1
  230. package/esm/date-picker/DateRangePicker.js +2 -3
  231. package/esm/date-picker/DateRangePicker.js.map +1 -1
  232. package/esm/date-picker/DateRangePickerPanel.js +2 -3
  233. package/esm/date-picker/DateRangePickerPanel.js.map +1 -1
  234. package/esm/date-picker/base/Header.js +2 -3
  235. package/esm/date-picker/base/Header.js.map +1 -1
  236. package/esm/date-picker/index.js +2 -3
  237. package/esm/date-picker/index.js.map +1 -1
  238. package/esm/date-picker/panel/PanelContent.js +2 -3
  239. package/esm/date-picker/panel/PanelContent.js.map +1 -1
  240. package/esm/date-picker/panel/RangePanel.js +2 -3
  241. package/esm/date-picker/panel/RangePanel.js.map +1 -1
  242. package/esm/date-picker/panel/SinglePanel.js +2 -3
  243. package/esm/date-picker/panel/SinglePanel.js.map +1 -1
  244. package/esm/dropdown/Dropdown.js +2 -3
  245. package/esm/dropdown/Dropdown.js.map +1 -1
  246. package/esm/dropdown/index.js +2 -3
  247. package/esm/dropdown/index.js.map +1 -1
  248. package/esm/form/Form.js +11 -8
  249. package/esm/form/Form.js.map +1 -1
  250. package/esm/form/FormItem.d.ts +1 -5
  251. package/esm/form/FormItem.js +1188 -34
  252. package/esm/form/FormItem.js.map +1 -1
  253. package/esm/form/const.d.ts +5 -0
  254. package/esm/form/const.js +15 -0
  255. package/esm/form/const.js.map +1 -0
  256. package/esm/form/defaultProps.d.ts +2 -1
  257. package/esm/form/defaultProps.js +2 -1
  258. package/esm/form/defaultProps.js.map +1 -1
  259. package/esm/form/formModel.d.ts +23 -1
  260. package/esm/form/formModel.js +21 -33
  261. package/esm/form/formModel.js.map +1 -1
  262. package/esm/form/hooks/useFormItemStyle.js +103 -237
  263. package/esm/form/hooks/useFormItemStyle.js.map +1 -1
  264. package/esm/form/hooks/useInstance.d.ts +2 -1
  265. package/esm/form/hooks/useInstance.js +120 -65
  266. package/esm/form/hooks/useInstance.js.map +1 -1
  267. package/esm/form/index.js +9 -8
  268. package/esm/form/index.js.map +1 -1
  269. package/esm/form/type.d.ts +22 -11
  270. package/esm/form/useInitialData.js +4 -5
  271. package/esm/form/useInitialData.js.map +1 -1
  272. package/esm/index.d.ts +1 -0
  273. package/esm/index.js +13 -7
  274. package/esm/index.js.map +1 -1
  275. package/esm/pagination/Pagination.js +3 -4
  276. package/esm/pagination/Pagination.js.map +1 -1
  277. package/esm/pagination/index.js +3 -4
  278. package/esm/pagination/index.js.map +1 -1
  279. package/esm/radio/Radio.js +1 -1
  280. package/esm/radio/RadioGroup.d.ts +2 -1
  281. package/esm/radio/RadioGroup.js +1 -1
  282. package/esm/radio/index.js +1 -1
  283. package/esm/select/base/Select.js +2 -3
  284. package/esm/select/base/Select.js.map +1 -1
  285. package/esm/select/index.js +2 -3
  286. package/esm/select/index.js.map +1 -1
  287. package/esm/select-input/SelectInput.js +2 -3
  288. package/esm/select-input/SelectInput.js.map +1 -1
  289. package/esm/select-input/index.js +2 -3
  290. package/esm/select-input/index.js.map +1 -1
  291. package/esm/select-input/useSingle.js +2 -3
  292. package/esm/select-input/useSingle.js.map +1 -1
  293. package/esm/space/Space.d.ts +8 -0
  294. package/{es/addon/Addon.js → esm/space/Space.js} +53 -44
  295. package/esm/space/Space.js.map +1 -0
  296. package/esm/space/defaultProps.d.ts +5 -0
  297. package/esm/space/defaultProps.js +14 -0
  298. package/esm/space/defaultProps.js.map +1 -0
  299. package/esm/space/index.d.ts +6 -0
  300. package/esm/space/index.js +45 -0
  301. package/esm/space/index.js.map +1 -0
  302. package/esm/space/style/css.d.ts +1 -0
  303. package/esm/space/style/index.d.ts +1 -0
  304. package/esm/space/style/index.js +1 -0
  305. package/esm/space/type.d.ts +30 -0
  306. package/esm/space/type.js +7 -0
  307. package/esm/space/type.js.map +1 -0
  308. package/esm/table/BaseTable.js +3 -4
  309. package/esm/table/BaseTable.js.map +1 -1
  310. package/esm/table/EnhancedTable.js +4 -5
  311. package/esm/table/EnhancedTable.js.map +1 -1
  312. package/esm/table/FilterController.js +1 -1
  313. package/esm/table/PrimaryTable.js +4 -5
  314. package/esm/table/PrimaryTable.js.map +1 -1
  315. package/esm/table/TBody.js +2 -3
  316. package/esm/table/TBody.js.map +1 -1
  317. package/esm/table/hooks/useAsyncLoading.js +1 -0
  318. package/esm/table/hooks/useAsyncLoading.js.map +1 -1
  319. package/esm/table/hooks/useFilter.js +1 -1
  320. package/esm/table/hooks/usePagination.js +3 -4
  321. package/esm/table/hooks/usePagination.js.map +1 -1
  322. package/esm/table/hooks/useRowSelect.js +1 -1
  323. package/esm/table/index.js +4 -5
  324. package/esm/table/index.js.map +1 -1
  325. package/esm/time-picker/TimePicker.js +2 -3
  326. package/esm/time-picker/TimePicker.js.map +1 -1
  327. package/esm/time-picker/index.js +2 -3
  328. package/esm/time-picker/index.js.map +1 -1
  329. package/esm/transfer/Transfer.js +5 -6
  330. package/esm/transfer/Transfer.js.map +1 -1
  331. package/esm/transfer/TransferList.js +3 -4
  332. package/esm/transfer/TransferList.js.map +1 -1
  333. package/esm/transfer/index.js +5 -6
  334. package/esm/transfer/index.js.map +1 -1
  335. package/esm/tree/Tree.js +3 -4
  336. package/esm/tree/Tree.js.map +1 -1
  337. package/esm/tree/index.js +3 -4
  338. package/esm/tree/index.js.map +1 -1
  339. package/esm/tree/useStore.js +3 -4
  340. package/esm/tree/useStore.js.map +1 -1
  341. package/esm/tree-select/TreeSelect.js +3 -4
  342. package/esm/tree-select/TreeSelect.js.map +1 -1
  343. package/esm/tree-select/index.js +3 -4
  344. package/esm/tree-select/index.js.map +1 -1
  345. package/esm/tree-select/useTreeSelectPassthoughProps.js +2 -3
  346. package/esm/tree-select/useTreeSelectPassthoughProps.js.map +1 -1
  347. package/esm/tree-select/useTreeSelectUtils.js +4 -5
  348. package/esm/tree-select/useTreeSelectUtils.js.map +1 -1
  349. package/lib/_chunks/{dep-18b29c2a.js → dep-024a8c51.js} +2 -2
  350. package/lib/_chunks/{dep-18b29c2a.js.map → dep-024a8c51.js.map} +1 -1
  351. package/lib/_chunks/{dep-94a90ff2.js → dep-0ad41c40.js} +6 -3
  352. package/lib/_chunks/dep-0ad41c40.js.map +1 -0
  353. package/lib/_chunks/{dep-85d2b8ba.js → dep-66ed1106.js} +2 -2
  354. package/lib/_chunks/{dep-85d2b8ba.js.map → dep-66ed1106.js.map} +1 -1
  355. package/lib/_chunks/{dep-fec505b6.js → dep-67a31200.js} +3 -3
  356. package/lib/_chunks/{dep-fec505b6.js.map → dep-67a31200.js.map} +1 -1
  357. package/lib/_chunks/{dep-d66dd060.js → dep-dbc0d9a3.js} +22 -4
  358. package/lib/_chunks/dep-dbc0d9a3.js.map +1 -0
  359. package/lib/_common/js/tabs/base.js +1 -1
  360. package/lib/_common/js/tabs/base.js.map +1 -1
  361. package/lib/_common/js/tree/tree-node-model.js +2 -3
  362. package/lib/_common/js/tree/tree-node-model.js.map +1 -1
  363. package/lib/_common/js/tree/tree-node.d.ts +1 -1
  364. package/lib/_common/js/tree/tree-node.js +4 -5
  365. package/lib/_common/js/tree/tree-node.js.map +1 -1
  366. package/lib/_common/js/tree/tree-store.d.ts +1 -1
  367. package/lib/_common/js/tree/tree-store.js +7 -8
  368. package/lib/_common/js/tree/tree-store.js.map +1 -1
  369. package/lib/_common/js/upload/xhr.js +1 -1
  370. package/lib/_common/js/upload/xhr.js.map +1 -1
  371. package/lib/calendar/Calendar.js +3 -4
  372. package/lib/calendar/Calendar.js.map +1 -1
  373. package/lib/calendar/index.js +3 -4
  374. package/lib/calendar/index.js.map +1 -1
  375. package/lib/cascader/Cascader.js +3 -4
  376. package/lib/cascader/Cascader.js.map +1 -1
  377. package/lib/cascader/index.js +3 -4
  378. package/lib/cascader/index.js.map +1 -1
  379. package/lib/cascader/interface.js +2 -3
  380. package/lib/cascader/interface.js.map +1 -1
  381. package/lib/color-picker/ColorPicker.js +3 -4
  382. package/lib/color-picker/ColorPicker.js.map +1 -1
  383. package/lib/color-picker/ColorPickerPanel.js +3 -4
  384. package/lib/color-picker/ColorPickerPanel.js.map +1 -1
  385. package/lib/color-picker/components/panel/format/index.js +2 -3
  386. package/lib/color-picker/components/panel/format/index.js.map +1 -1
  387. package/lib/color-picker/components/panel/header.js +1 -1
  388. package/lib/color-picker/components/panel/index.js +3 -4
  389. package/lib/color-picker/components/panel/index.js.map +1 -1
  390. package/lib/color-picker/index.js +3 -4
  391. package/lib/color-picker/index.js.map +1 -1
  392. package/lib/date-picker/DatePicker.js +2 -3
  393. package/lib/date-picker/DatePicker.js.map +1 -1
  394. package/lib/date-picker/DatePickerPanel.js +2 -3
  395. package/lib/date-picker/DatePickerPanel.js.map +1 -1
  396. package/lib/date-picker/DateRangePicker.js +2 -3
  397. package/lib/date-picker/DateRangePicker.js.map +1 -1
  398. package/lib/date-picker/DateRangePickerPanel.js +2 -3
  399. package/lib/date-picker/DateRangePickerPanel.js.map +1 -1
  400. package/lib/date-picker/base/Header.js +2 -3
  401. package/lib/date-picker/base/Header.js.map +1 -1
  402. package/lib/date-picker/index.js +2 -3
  403. package/lib/date-picker/index.js.map +1 -1
  404. package/lib/date-picker/panel/PanelContent.js +2 -3
  405. package/lib/date-picker/panel/PanelContent.js.map +1 -1
  406. package/lib/date-picker/panel/RangePanel.js +2 -3
  407. package/lib/date-picker/panel/RangePanel.js.map +1 -1
  408. package/lib/date-picker/panel/SinglePanel.js +2 -3
  409. package/lib/date-picker/panel/SinglePanel.js.map +1 -1
  410. package/lib/dropdown/Dropdown.js +2 -3
  411. package/lib/dropdown/Dropdown.js.map +1 -1
  412. package/lib/dropdown/index.js +2 -3
  413. package/lib/dropdown/index.js.map +1 -1
  414. package/lib/form/Form.js +12 -9
  415. package/lib/form/Form.js.map +1 -1
  416. package/lib/form/FormItem.d.ts +1 -5
  417. package/lib/form/FormItem.js +1188 -35
  418. package/lib/form/FormItem.js.map +1 -1
  419. package/lib/form/const.d.ts +5 -0
  420. package/lib/form/const.js +19 -0
  421. package/lib/form/const.js.map +1 -0
  422. package/lib/form/defaultProps.d.ts +2 -1
  423. package/lib/form/defaultProps.js +2 -0
  424. package/lib/form/defaultProps.js.map +1 -1
  425. package/lib/form/formModel.d.ts +23 -1
  426. package/lib/form/formModel.js +21 -33
  427. package/lib/form/formModel.js.map +1 -1
  428. package/lib/form/hooks/useFormItemStyle.js +108 -213
  429. package/lib/form/hooks/useFormItemStyle.js.map +1 -1
  430. package/lib/form/hooks/useInstance.d.ts +2 -1
  431. package/lib/form/hooks/useInstance.js +119 -64
  432. package/lib/form/hooks/useInstance.js.map +1 -1
  433. package/lib/form/index.js +9 -8
  434. package/lib/form/index.js.map +1 -1
  435. package/lib/form/type.d.ts +22 -11
  436. package/lib/form/useInitialData.js +4 -5
  437. package/lib/form/useInitialData.js.map +1 -1
  438. package/lib/index-lib.js +12 -7
  439. package/lib/index-lib.js.map +1 -1
  440. package/lib/index.d.ts +1 -0
  441. package/lib/index.js +12 -7
  442. package/lib/index.js.map +1 -1
  443. package/lib/pagination/Pagination.js +3 -4
  444. package/lib/pagination/Pagination.js.map +1 -1
  445. package/lib/pagination/index.js +3 -4
  446. package/lib/pagination/index.js.map +1 -1
  447. package/lib/radio/Radio.js +1 -1
  448. package/lib/radio/RadioGroup.d.ts +2 -1
  449. package/lib/radio/RadioGroup.js +1 -1
  450. package/lib/radio/index.js +1 -1
  451. package/lib/select/base/Select.js +2 -3
  452. package/lib/select/base/Select.js.map +1 -1
  453. package/lib/select/index.js +2 -3
  454. package/lib/select/index.js.map +1 -1
  455. package/lib/select-input/SelectInput.js +2 -3
  456. package/lib/select-input/SelectInput.js.map +1 -1
  457. package/lib/select-input/index.js +2 -3
  458. package/lib/select-input/index.js.map +1 -1
  459. package/lib/select-input/useSingle.js +2 -3
  460. package/lib/select-input/useSingle.js.map +1 -1
  461. package/lib/space/Space.d.ts +8 -0
  462. package/lib/{addon/Addon.js → space/Space.js} +52 -43
  463. package/lib/space/Space.js.map +1 -0
  464. package/lib/space/defaultProps.d.ts +5 -0
  465. package/lib/space/defaultProps.js +18 -0
  466. package/lib/space/defaultProps.js.map +1 -0
  467. package/lib/space/index.d.ts +6 -0
  468. package/lib/space/index.js +44 -0
  469. package/lib/space/index.js.map +1 -0
  470. package/lib/space/style/css.d.ts +1 -0
  471. package/lib/space/style/index.d.ts +1 -0
  472. package/lib/space/type.d.ts +30 -0
  473. package/lib/space/type.js +9 -0
  474. package/lib/space/type.js.map +1 -0
  475. package/lib/table/BaseTable.js +3 -4
  476. package/lib/table/BaseTable.js.map +1 -1
  477. package/lib/table/EnhancedTable.js +4 -5
  478. package/lib/table/EnhancedTable.js.map +1 -1
  479. package/lib/table/FilterController.js +1 -1
  480. package/lib/table/PrimaryTable.js +4 -5
  481. package/lib/table/PrimaryTable.js.map +1 -1
  482. package/lib/table/TBody.js +2 -3
  483. package/lib/table/TBody.js.map +1 -1
  484. package/lib/table/hooks/useAsyncLoading.js +1 -0
  485. package/lib/table/hooks/useAsyncLoading.js.map +1 -1
  486. package/lib/table/hooks/useFilter.js +1 -1
  487. package/lib/table/hooks/usePagination.js +3 -4
  488. package/lib/table/hooks/usePagination.js.map +1 -1
  489. package/lib/table/hooks/useRowSelect.js +1 -1
  490. package/lib/table/index.js +4 -5
  491. package/lib/table/index.js.map +1 -1
  492. package/lib/time-picker/TimePicker.js +2 -3
  493. package/lib/time-picker/TimePicker.js.map +1 -1
  494. package/lib/time-picker/index.js +2 -3
  495. package/lib/time-picker/index.js.map +1 -1
  496. package/lib/transfer/Transfer.js +5 -6
  497. package/lib/transfer/Transfer.js.map +1 -1
  498. package/lib/transfer/TransferList.js +3 -4
  499. package/lib/transfer/TransferList.js.map +1 -1
  500. package/lib/transfer/index.js +5 -6
  501. package/lib/transfer/index.js.map +1 -1
  502. package/lib/tree/Tree.js +3 -4
  503. package/lib/tree/Tree.js.map +1 -1
  504. package/lib/tree/index.js +3 -4
  505. package/lib/tree/index.js.map +1 -1
  506. package/lib/tree/useStore.js +3 -4
  507. package/lib/tree/useStore.js.map +1 -1
  508. package/lib/tree-select/TreeSelect.js +3 -4
  509. package/lib/tree-select/TreeSelect.js.map +1 -1
  510. package/lib/tree-select/index.js +3 -4
  511. package/lib/tree-select/index.js.map +1 -1
  512. package/lib/tree-select/useTreeSelectPassthoughProps.js +2 -3
  513. package/lib/tree-select/useTreeSelectPassthoughProps.js.map +1 -1
  514. package/lib/tree-select/useTreeSelectUtils.js +4 -5
  515. package/lib/tree-select/useTreeSelectUtils.js.map +1 -1
  516. package/package.json +1 -1
  517. package/es/_chunks/dep-16cb7f3b.js.map +0 -1
  518. package/es/_chunks/dep-5bfc1a42.js.map +0 -1
  519. package/es/_chunks/dep-d44068e2.js +0 -1159
  520. package/es/_chunks/dep-d44068e2.js.map +0 -1
  521. package/es/_chunks/dep-f8eff6be.js +0 -29
  522. package/es/_chunks/dep-f8eff6be.js.map +0 -1
  523. package/es/addon/Addon.d.ts +0 -8
  524. package/es/addon/Addon.js.map +0 -1
  525. package/esm/_chunks/dep-16cb7f3b.js.map +0 -1
  526. package/esm/_chunks/dep-5bfc1a42.js.map +0 -1
  527. package/esm/_chunks/dep-df0d5d91.js +0 -1159
  528. package/esm/_chunks/dep-df0d5d91.js.map +0 -1
  529. package/esm/_chunks/dep-f8eff6be.js +0 -29
  530. package/esm/_chunks/dep-f8eff6be.js.map +0 -1
  531. package/esm/addon/Addon.d.ts +0 -8
  532. package/esm/addon/Addon.js.map +0 -1
  533. package/lib/_chunks/dep-94a90ff2.js.map +0 -1
  534. package/lib/_chunks/dep-956bf12a.js +0 -30
  535. package/lib/_chunks/dep-956bf12a.js.map +0 -1
  536. package/lib/_chunks/dep-d66dd060.js.map +0 -1
  537. package/lib/_chunks/dep-e683283d.js +0 -1167
  538. package/lib/_chunks/dep-e683283d.js.map +0 -1
  539. package/lib/addon/Addon.d.ts +0 -8
  540. package/lib/addon/Addon.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.js","sources":["../../../../node_modules/lodash/uniqueId.js","../../../../node_modules/lodash/isNil.js","../../../../src/_common/js/tree/tree-node.ts"],"sourcesContent":["var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","import uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport get from 'lodash/get';\nimport { TreeStore } from './tree-store';\nimport {\n TreeNodeValue,\n TreeNodeState,\n TypeIdMap,\n TypeTreeItem,\n TypeSettingOptions,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n} from './types';\nimport {\n createNodeModel,\n updateNodeModel,\n} from './tree-node-model';\n\nconst { hasOwnProperty } = Object.prototype;\n\nconst defaultStatus = {\n expandMutex: false,\n activable: false,\n checkable: false,\n disabled: false,\n draggable: false,\n loading: false,\n};\n\n// vm 开头为视图属性,不可以外部设置\n// 用于触发视图更新\nexport class TreeNode {\n // 节点隶属的树实例\n public tree: TreeStore;\n\n // 节点 id ,唯一标志\n public value: string;\n\n // 节点文本\n public label: string;\n\n // 节点数据\n public data: TypeTreeNodeData;\n\n // 父节点\n public parent: TreeNode;\n\n // 子节点列表\n public children: TreeNode[] | boolean;\n\n // 暴露的 treeNodeModel,这个对象的属性和 api 提供给用户使用\n public model: TypeTreeNodeModel;\n\n // 是否为叶节点\n public vmIsLeaf: boolean;\n\n // 是否为子节点中的第一个\n public vmIsFirst: boolean;\n\n // 是否为子节点中的最后\n public vmIsLast: boolean;\n\n // 节点是否是经过过滤剩下的\n public vmIsRest: boolean;\n\n // 节点是否展示为锁定状态\n public vmIsLocked: boolean;\n\n // 节点在视图上实际的展开状态\n public expanded: boolean;\n\n // 展开时是否收起同级节点,对子节点生效\n public expandMutex: boolean;\n\n // 节点在视图上实际的激活状态\n public actived: boolean;\n\n // 是否可激活\n public activable: boolean;\n\n // 是否可选中\n public checkable: boolean;\n\n // 是否可选中的视图呈现\n public vmCheckable: boolean;\n\n // 节点在视图上实际的选中态\n public checked: boolean;\n\n // 节点实际是否为半选状态\n public indeterminate: boolean;\n\n // 节点是否已禁用\n public disabled: boolean;\n\n // 节点是否可拖动\n public draggable: boolean;\n\n // 节点是否可视\n public visible: boolean;\n\n // 节点在树中的层级\n public level: number;\n\n // 节点是否正在加载数据\n public loading: boolean;\n\n public constructor(\n tree: TreeStore,\n data?: TypeTreeNodeData,\n parent?: TreeNode,\n ) {\n this.data = data;\n this.tree = tree;\n\n const config = tree.config || {};\n const prefix = config.prefix || 't';\n const keys = get(tree, 'config.keys') || {};\n const propChildren = keys.children || 'children';\n const propLabel = keys.label || 'label';\n const propValue = keys.value || 'value';\n\n this.model = null;\n this.children = null;\n this.vmCheckable = false;\n this.vmIsLeaf = false;\n this.vmIsFirst = false;\n this.vmIsLast = false;\n this.vmIsRest = true;\n this.vmIsLocked = false;\n\n const spec = {\n ...defaultStatus,\n actived: false,\n expanded: false,\n checked: false,\n ...data,\n };\n const children = spec[propChildren];\n\n this.set(spec);\n this.label = spec[propLabel] || '';\n this.value = isNil(spec[propValue]) ? uniqueId(prefix) : spec[propValue];\n this.tree.nodeMap.set(this.value, this);\n\n if (parent && parent instanceof TreeNode) {\n this.parent = parent;\n } else {\n this.parent = null;\n }\n\n // 子节点为 true 的状态逻辑需要放到状态计算之前\n // 初始化加载逻辑需要依据这个来进行\n if (children === true) {\n this.children = children;\n }\n\n // 初始化状态计算\n this.level = 0;\n this.visible = true;\n\n this.actived = spec.actived;\n this.initActived();\n\n this.expanded = spec.expanded;\n this.initExpanded();\n\n this.checked = spec.checked;\n this.initChecked();\n\n this.update();\n tree.reflow(this);\n\n // 这里的子节点加载逻辑不能放到状态计算之前\n // 因为子节点状态计算依赖父节点状态\n if (Array.isArray(children)) {\n this.append(children);\n } else if (children === true && !config.lazy) {\n this.loadChildren();\n }\n\n // checked 状态依赖于子节点状态\n // 因此初始化状态放到子节点插入之后\n this.checked = false;\n this.indeterminate = false;\n this.updateChecked();\n }\n\n /* ------ 状态初始化 ------ */\n\n // 初始化选中态\n public initChecked() {\n const { tree, value, parent } = this;\n const { checkStrictly } = tree.config;\n let { checked } = this;\n checked = parent?.isChecked();\n if (checked && !checkStrictly) {\n tree.checkedMap.set(value, true);\n }\n this.checked = checked;\n }\n\n // 初始化节点展开状态\n public initExpanded(): void {\n const { tree } = this;\n let { expanded } = this;\n const { config } = tree;\n if (\n typeof config.expandLevel === 'number'\n && this.getLevel() < config.expandLevel\n ) {\n tree.expandedMap.set(this.value, true);\n expanded = true;\n }\n if (config.expandAll) {\n expanded = true;\n }\n if (this.children === true && config.lazy) {\n expanded = false;\n }\n if (expanded) {\n tree.expandedMap.set(this.value, true);\n } else {\n tree.expandedMap.delete(this.value);\n }\n this.expanded = expanded;\n }\n\n // 初始化高亮状态\n public initActived(): void {\n const { tree, actived } = this;\n if (actived) {\n tree.activedMap.set(this.value, true);\n }\n }\n\n /* ------ 节点操作 ------ */\n\n // 追加数据\n public append(data: TypeTreeNodeData | TypeTreeNodeData[]): void {\n const list = [];\n if (!Array.isArray(data)) {\n list.push(data);\n } else {\n list.push(...data);\n }\n if (list.length <= 0) {\n return;\n }\n if (!Array.isArray(this.children)) {\n this.children = [];\n }\n const { children, tree } = this;\n list.forEach((item) => {\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(this.tree, this);\n } else {\n node = new TreeNode(this.tree, item, this);\n children.push(node);\n }\n });\n tree.reflow(this);\n this.updateRelated();\n }\n\n // 将当前节点追加到某个父节点的子节点列表中\n public appendTo(\n tree: TreeStore,\n parent?: TreeNode,\n index?: number,\n ): void {\n const parentNode = parent;\n if (!parentNode) return;\n\n const targetParents = parentNode.getParents();\n const includeCurrent = targetParents.some((node) => node.value === this.value);\n if (includeCurrent) {\n // 不能将父节点插入到子节点\n return;\n }\n\n if (Array.isArray(parentNode.children)) {\n let targetIndex = 0;\n if (typeof index === 'number') {\n targetIndex = index;\n }\n const targetPosNode = parentNode.children[targetIndex];\n if (targetPosNode.value === this.value) {\n // 无需将节点插入到原位置\n return;\n }\n }\n\n this.remove();\n this.parent = parentNode;\n\n let siblings = null;\n if (parentNode instanceof TreeNode) {\n if (!Array.isArray(parentNode.children)) {\n parentNode.children = [];\n }\n siblings = parent.children;\n } else {\n siblings = tree.children;\n }\n if (Array.isArray(siblings)) {\n if (typeof index === 'number') {\n siblings.splice(index, 0, this);\n } else {\n siblings.push(this);\n }\n }\n\n // 插入节点应当继承展开状态\n // 但建议不要继承选中状态和高亮状态\n const nodes = this.walk();\n nodes.forEach((item) => {\n const node = item;\n node.tree = tree;\n tree.nodeMap.set(node.value, node);\n if (node.expanded) {\n tree.expandedMap.set(node.value, true);\n }\n });\n\n const updateNodes = parentNode.walk();\n updateNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n\n tree.reflow();\n }\n\n // 插入一个同级节点数据\n public insert(\n item: TypeTreeItem,\n index?: number,\n ): void {\n const { tree, parent } = this;\n const siblings = this.getSiblings();\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(tree, parent, index);\n } else if (item) {\n node = new TreeNode(tree, item, parent);\n if (typeof index === 'number') {\n siblings.splice(index, 0, node);\n }\n siblings.forEach((sibling) => {\n sibling.update();\n });\n }\n tree.reflow();\n }\n\n // 在当前节点之前插入节点\n public insertBefore(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index);\n }\n\n // 在当前节点之后插入节点\n public insertAfter(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index + 1);\n }\n\n // 从一个树移除本节点\n public remove(): void {\n const { tree } = this;\n\n const nodes = this.walk();\n const siblings = this.getSiblings();\n const index = this.getIndex();\n // 从父节点的子节点列表中移除自己\n // 但不要将自己的父节点移除,避免渲染与判断失败\n if (Array.isArray(siblings)) {\n siblings.splice(index, 1);\n }\n // 清理与树的关系,但不清理自身状态\n nodes.forEach((node) => {\n node.clean();\n });\n // 同级节点的连线状态会受到影响\n siblings.forEach((node) => {\n node.update();\n });\n // 父节点选中态会受到影响\n this.updateParents();\n tree.reflow();\n }\n\n // 清除本节点与一个树的关系\n public clean(): void {\n const { tree, value } = this;\n tree.activedMap.delete(value);\n tree.checkedMap.delete(value);\n tree.expandedMap.delete(value);\n tree.nodeMap.delete(value);\n }\n\n // 异步加载子节点数据\n public async loadChildren(): Promise<void> {\n const config = get(this, 'tree.config') || {};\n if (this.children === true && !this.loading) {\n if (typeof config.load === 'function') {\n this.loading = true;\n this.update();\n let list = [];\n list = await config.load(this);\n this.tree.emit('load', {\n node: this,\n data: list,\n });\n this.loading = false;\n if (Array.isArray(list) && list.length > 0) {\n this.append(list);\n } else {\n this.children = false;\n }\n this.update();\n }\n }\n }\n\n // 设置状态\n public set(item: TreeNodeState): void {\n const { tree } = this;\n const keys = Object.keys(item);\n keys.forEach((key) => {\n if (hasOwnProperty.call(defaultStatus, key) || key === 'label') {\n this[key] = item[key];\n }\n });\n tree.updated(this);\n }\n\n /* ------ 节点获取 ------- */\n\n // 获取单个父节点\n public getParent(): TreeNode {\n return this.parent;\n }\n\n // 获取所有父节点\n public getParents(): TreeNode[] {\n const parents = [];\n let node = this.parent;\n while (node) {\n parents.push(node);\n node = node.parent;\n }\n return parents;\n }\n\n // 获取兄弟节点,包含自己在内\n public getSiblings(): TreeNode[] {\n const { parent, tree } = this;\n let list: TreeNode[] = [];\n if (parent) {\n if (Array.isArray(parent.children)) {\n list = parent.children;\n }\n } else if (tree) {\n list = tree.children;\n }\n return list;\n }\n\n // 获取根节点\n public getRoot(): TreeNode {\n const parents = this.getParents();\n return parents[parents.length - 1] || null;\n }\n\n // 获取节点在父节点的子节点列表中的位置\n // 如果没有父节点,则获取节点在根节点列表的位置\n public getIndex(): number {\n const list = this.getSiblings();\n return list.indexOf(this);\n }\n\n // 返回路径节点\n public getPath(): TreeNode[] {\n const nodes = this.getParents();\n nodes.unshift(this);\n return nodes.reverse();\n }\n\n // 获取节点所在层级\n public getLevel(): number {\n const parents = this.getParents();\n return parents.length;\n }\n\n /* ------ 节点状态判断 ------ */\n\n // 判断节点是否被过滤\n public isRest(): boolean {\n const {\n config,\n filterMap,\n } = this.tree;\n\n let rest = true;\n if (typeof config.filter === 'function') {\n const nodeModel = this.getModel();\n rest = config.filter(nodeModel);\n }\n\n if (rest) {\n filterMap.set(this.value, true);\n } else if (filterMap.get(this.value)) {\n filterMap.delete(this.value);\n }\n\n return rest;\n }\n\n // 判断节点是否可视\n public isVisible(): boolean {\n const {\n nodeMap,\n } = this.tree;\n\n let visible = true;\n\n // 锁定状态,直接呈现\n if (this.vmIsLocked) {\n return true;\n }\n\n // 在当前树上,未被移除\n if (nodeMap.get(this.value)) {\n // 节点未被过滤\n const filterVisible = this.isRest();\n\n // 所有父节点展开\n let expandVisible = true;\n const parents = this.getParents();\n if (parents.length > 0) {\n expandVisible = parents.every((node: TreeNode) => node.isExpanded());\n }\n\n // 节点为未被过滤节点的父节点\n visible = expandVisible && filterVisible;\n } else {\n visible = false;\n }\n return visible;\n }\n\n // 判断节点是否被禁用\n public isDisabled() {\n if (this.vmIsLocked) return true;\n const treeDisabled = get(this, 'tree.config.disabled');\n return !!(treeDisabled || this.disabled);\n }\n\n // 判断节点是否支持互斥展开\n public isExpandMutex() {\n return !!(get(this, 'tree.config.expandMutex') || this.expandMutex);\n }\n\n // 节点可高亮\n public isActivable() {\n return !!(get(this, 'tree.config.activable') || this.activable);\n }\n\n // 是否可选\n public isCheckable() {\n return !!(get(this, 'tree.config.checkable') || this.checkable);\n }\n\n // 检查节点是否被激活\n public isActived(map?: Map<string, boolean>): boolean {\n const { tree, value } = this;\n const activedMap = map || tree.activedMap;\n return !!(tree.nodeMap.get(value) && activedMap.get(value));\n }\n\n // 检查节点是否已展开\n public isExpanded(map?: Map<string, boolean>): boolean {\n const { tree, value, vmIsLocked } = this;\n if (vmIsLocked) return true;\n const expandedMap = map || tree.expandedMap;\n return !!(tree.nodeMap.get(value) && expandedMap.get(value));\n }\n\n // 计算属性,判断节点是否被选中\n // map: 预期选中项map,用于计算节点在预期环境中的选中态\n public isChecked(map?: TypeIdMap): boolean {\n const { children, tree } = this;\n const { checkStrictly } = tree.config;\n let checked = false;\n const checkedMap = map || tree.checkedMap;\n if (tree.nodeMap.get(this.value)) {\n if (checkedMap.get(this.value)) {\n // 如果在 checked 节点列表中,则直接为 true\n checked = true;\n } else if (\n Array.isArray(children)\n && children.length > 0\n && !checkStrictly\n ) {\n // 如果是父节点,需检查所有子节点状态\n checked = children.every((node) => {\n const childIsChecked = node.isChecked(checkedMap);\n return childIsChecked;\n });\n } else if (!checkStrictly) {\n // 从父节点状态推断子节点状态\n // 这里再调用 isChecked 会导致死循环\n const parents = this.getParents();\n checked = parents.some((node) => checkedMap.get(node.value));\n }\n }\n return !!checked;\n }\n\n // 是否为半选状态\n public isIndeterminate(): boolean {\n const { children, tree } = this;\n const { checkStrictly } = tree.config;\n if (checkStrictly) {\n return false;\n }\n let indeterminate = false;\n if (Array.isArray(children)) {\n // 叶节点不存在半选状态\n let childChecked: null | boolean = null;\n indeterminate = children.some((node: TreeNode) => {\n if (node.isIndeterminate()) {\n // 子节点有任意一个半选,则其为半选状态\n return true;\n }\n if (childChecked === null) {\n childChecked = node.isChecked();\n }\n if (childChecked !== node.isChecked()) {\n // 子节点选中状态不一致,则其为半选状态\n return true;\n }\n return false;\n });\n }\n return indeterminate;\n }\n\n public isFirst(): boolean {\n const siblings = this.getSiblings();\n return siblings[0] === this;\n }\n\n public isLast(): boolean {\n const siblings = this.getSiblings();\n return siblings[siblings.length - 1] === this;\n }\n\n // 是叶节点\n public isLeaf(): boolean {\n let isLeaf = false;\n if (Array.isArray(this.children)) {\n isLeaf = this.children.length <= 0;\n } else {\n isLeaf = !this.children;\n }\n return isLeaf;\n }\n\n /* ------ 节点状态切换 ------ */\n\n // 锁定节点\n // 搜索过滤节点时,路径节点需要固定呈现,视其为锁定态\n public lock(lockState: boolean): void {\n this.vmIsLocked = lockState;\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n }\n\n // 节点展开关闭后需要调用的状态检查函数\n public afterExpanded(): void {\n this.update();\n // 节点展开时检查延迟加载的数据\n if (this.expanded && this.children === true) {\n this.loadChildren();\n }\n }\n\n // 展开或者关闭节点\n public toggleExpanded(): TreeNodeValue[] {\n return this.setExpanded(!this.isExpanded());\n }\n\n // 设置节点展开状态\n public setExpanded(expanded: boolean, opts?: TypeSettingOptions): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n directly: false,\n ...opts,\n };\n\n let map = tree.expandedMap;\n if (!options.directly) {\n map = new Map(tree.expandedMap);\n }\n\n // 手风琴效果,先折叠同级节点\n if (expanded) {\n const shouldExpandNodes = [];\n shouldExpandNodes.push(this);\n if (get(tree, 'config.expandParent')) {\n this.getParents().forEach((node) => {\n shouldExpandNodes.push(node);\n });\n }\n shouldExpandNodes.forEach((node) => {\n let isExpandMutex = false;\n if (node.parent) {\n isExpandMutex = node.parent.isExpandMutex();\n } else {\n isExpandMutex = tree?.config?.expandMutex;\n }\n if (isExpandMutex) {\n const siblings = node.getSiblings();\n siblings.forEach((snode) => {\n map.delete(snode.value);\n });\n }\n map.set(node.value, true);\n });\n } else {\n map.delete(this.value);\n }\n\n if (options.directly) {\n this.afterExpanded();\n this.update();\n this.updateChildren();\n }\n\n return tree.getExpanded(map);\n }\n\n // 切换节点激活态\n public toggleActived(): TreeNodeValue[] {\n return this.setActived(!this.isActived());\n }\n\n // 设置节点激活态\n public setActived(actived: boolean, opts?: TypeSettingOptions): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n directly: false,\n ...opts,\n };\n const config = tree.config || {};\n let map = tree.activedMap;\n if (!options.directly) {\n map = new Map(tree.activedMap);\n }\n if (this.isActivable()) {\n if (actived) {\n if (!config.activeMultiple) {\n map.clear();\n }\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n }\n if (options.directly) {\n this.update();\n }\n return tree.getActived(map);\n }\n\n // 切换选中态\n public toggleChecked(): TreeNodeValue[] {\n return this.setChecked(!this.isChecked());\n }\n\n // 更新单个节点的选中态\n // 返回树选中列表\n public setChecked(checked: boolean, opts?: TypeSettingOptions): TreeNodeValue[] {\n const { tree } = this;\n const config = tree.config || {};\n const options = {\n directly: false,\n ...opts,\n };\n let map = tree.checkedMap;\n if (!options.directly) {\n map = new Map(tree.checkedMap);\n }\n if (this.isCheckable() && checked !== this.isChecked()) {\n if (config.checkStrictly) {\n if (checked) {\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n } else {\n const children = this.walk();\n // 子节点的预期选中态与当前节点同步\n children.forEach((node) => {\n if (checked) {\n map.set(node.value, true);\n } else {\n map.delete(node.value);\n }\n });\n // 消除全部父节点的预期选中态\n // 父节点的预期选中态将通过计算得出\n const parents = this.getParents();\n parents.forEach((node) => {\n map.delete(node.value);\n });\n }\n }\n if (options.directly) {\n if (config.checkStrictly) {\n this.updateChecked();\n } else {\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n return tree.getChecked(map);\n }\n\n /* ------ 节点状态更新 ------ */\n\n // 更新节点状态\n public update(): void {\n this.level = this.getLevel();\n this.actived = this.isActived();\n this.expanded = this.isExpanded();\n this.vmCheckable = this.isCheckable();\n this.visible = this.isVisible();\n this.vmIsRest = this.isRest();\n this.vmIsFirst = this.isFirst();\n this.vmIsLast = this.isLast();\n this.vmIsLeaf = this.isLeaf();\n this.tree.updated(this);\n }\n\n // 更新选中态属性值\n public updateChecked(): void {\n const { tree } = this;\n this.vmCheckable = this.isCheckable();\n if (this.vmCheckable && !this.disabled) {\n this.checked = this.isChecked();\n if (this.checked) {\n tree.checkedMap.set(this.value, true);\n }\n this.indeterminate = this.isIndeterminate();\n tree.updated(this);\n }\n }\n\n // 更新所有子节点状态\n // 注意:不包含自己\n public updateChildren(): void {\n const { children } = this;\n if (Array.isArray(children)) {\n children.forEach((node) => {\n node.update();\n node.updateChecked();\n node.updateChildren();\n });\n }\n }\n\n // 父节点状态更新\n // 注意:不包含自己\n public updateParents(): void {\n const { parent } = this;\n if (parent) {\n parent.update();\n parent.updateChecked();\n parent.updateParents();\n }\n }\n\n // 更新上下游相关节点\n public updateRelated() {\n const { tree } = this;\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n tree.reflow();\n }\n\n /* ------ 节点遍历 ------ */\n\n // 获取包含自己在内所有的子节点\n public walk(): TreeNode[] {\n const { children } = this;\n let list: TreeNode[] = [];\n list.push(this);\n if (Array.isArray(children) && children.length > 0) {\n children.forEach((node) => {\n list = list.concat(node.walk());\n });\n }\n return list;\n }\n\n // TreeNode 对象 => TypeTreeNodeModel 对象\n // 用于 treeNode 对外暴露的 api\n // 经过封装的对象,减少了对外暴露的 api,利于代码重构\n public getModel(): TypeTreeNodeModel {\n let { model } = this;\n if (!model) {\n model = createNodeModel(this);\n this.model = model;\n }\n updateNodeModel(model, this);\n return model;\n }\n}\n\nexport default TreeNode;\n"],"names":["toString","require$$0","idCounter","uniqueId","prefix","id","uniqueId_1","isNil","value","isNil_1","hasOwnProperty","Object","prototype","defaultStatus","expandMutex","activable","checkable","disabled","draggable","loading","TreeNode","tree","data","parent","config","keys","get","propChildren","children","propLabel","label","propValue","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","spec","actived","expanded","checked","set","nodeMap","level","visible","initActived","initExpanded","initChecked","update","reflow","Array","isArray","append","lazy","loadChildren","indeterminate","updateChecked","checkStrictly","isChecked","checkedMap","expandLevel","getLevel","expandedMap","expandAll","activedMap","list","push","length","forEach","item","node","appendTo","updateRelated","index","parentNode","targetParents","getParents","includeCurrent","some","targetIndex","targetPosNode","remove","siblings","splice","nodes","walk","updateNodes","getSiblings","sibling","newData","getIndex","insert","clean","updateParents","_regeneratorRuntime","load","emit","key","call","updated","parents","indexOf","unshift","reverse","filterMap","rest","filter","nodeModel","getModel","filterVisible","isRest","expandVisible","every","isExpanded","treeDisabled","map","childIsChecked","childChecked","isIndeterminate","isLeaf","lockState","isVisible","setExpanded","opts","options","directly","Map","shouldExpandNodes","isExpandMutex","snode","afterExpanded","updateChildren","getExpanded","setActived","isActived","isActivable","activeMultiple","clear","getActived","setChecked","isCheckable","relatedNodes","getRelatedNodes","getChecked","isFirst","isLast","concat","createNodeModel","updateNodeModel"],"mappings":"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"}
1
+ {"version":3,"file":"tree-node.js","sources":["../../../../node_modules/lodash/uniqueId.js","../../../../node_modules/lodash/isNil.js","../../../../src/_common/js/tree/tree-node.ts"],"sourcesContent":["var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","import uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport get from 'lodash/get';\nimport { TreeStore } from './tree-store';\nimport {\n TreeNodeValue,\n TreeNodeState,\n TypeIdMap,\n TypeTreeItem,\n TypeSettingOptions,\n TypeTreeNodeModel,\n TypeTreeNodeData,\n} from './types';\nimport {\n createNodeModel,\n updateNodeModel,\n} from './tree-node-model';\n\nconst { hasOwnProperty } = Object.prototype;\n\nconst defaultStatus = {\n expandMutex: false,\n activable: false,\n checkable: false,\n disabled: false,\n draggable: false,\n loading: false,\n};\n\n// vm 开头为视图属性,不可以外部设置\n// 用于触发视图更新\nexport class TreeNode {\n // 节点隶属的树实例\n public tree: TreeStore;\n\n // 节点 id ,唯一标志\n public value: string;\n\n // 节点文本\n public label: string;\n\n // 节点数据\n public data: TypeTreeNodeData;\n\n // 父节点\n public parent: TreeNode;\n\n // 子节点列表\n public children: TreeNode[] | boolean;\n\n // 暴露的 treeNodeModel,这个对象的属性和 api 提供给用户使用\n public model: TypeTreeNodeModel;\n\n // 是否为叶节点\n public vmIsLeaf: boolean;\n\n // 是否为子节点中的第一个\n public vmIsFirst: boolean;\n\n // 是否为子节点中的最后\n public vmIsLast: boolean;\n\n // 节点是否是经过过滤剩下的\n public vmIsRest: boolean;\n\n // 节点是否展示为锁定状态\n public vmIsLocked: boolean;\n\n // 节点在视图上实际的展开状态\n public expanded: boolean;\n\n // 展开时是否收起同级节点,对子节点生效\n public expandMutex: boolean;\n\n // 节点在视图上实际的激活状态\n public actived: boolean;\n\n // 是否可激活\n public activable: boolean;\n\n // 是否可选中\n public checkable: boolean;\n\n // 是否可选中的视图呈现\n public vmCheckable: boolean;\n\n // 节点在视图上实际的选中态\n public checked: boolean;\n\n // 节点实际是否为半选状态\n public indeterminate: boolean;\n\n // 节点是否已禁用\n public disabled: boolean;\n\n // 节点是否可拖动\n public draggable: boolean;\n\n // 节点是否可视\n public visible: boolean;\n\n // 节点在树中的层级\n public level: number;\n\n // 节点是否正在加载数据\n public loading: boolean;\n\n public constructor(\n tree: TreeStore,\n data?: TypeTreeNodeData,\n parent?: TreeNode,\n ) {\n this.data = data;\n this.tree = tree;\n\n const config = tree.config || {};\n const prefix = config.prefix || 't';\n const keys = get(tree, 'config.keys') || {};\n const propChildren = keys.children || 'children';\n const propLabel = keys.label || 'label';\n const propValue = keys.value || 'value';\n\n this.model = null;\n this.children = null;\n this.vmCheckable = false;\n this.vmIsLeaf = false;\n this.vmIsFirst = false;\n this.vmIsLast = false;\n this.vmIsRest = true;\n this.vmIsLocked = false;\n\n const spec = {\n ...defaultStatus,\n actived: false,\n expanded: false,\n checked: false,\n ...data,\n };\n const children = spec[propChildren];\n\n this.set(spec);\n this.label = spec[propLabel] || '';\n this.value = isNil(spec[propValue]) ? uniqueId(prefix) : spec[propValue];\n this.tree.nodeMap.set(this.value, this);\n\n if (parent && parent instanceof TreeNode) {\n this.parent = parent;\n } else {\n this.parent = null;\n }\n\n // 子节点为 true 的状态逻辑需要放到状态计算之前\n // 初始化加载逻辑需要依据这个来进行\n if (children === true) {\n this.children = children;\n }\n\n // 初始化状态计算\n this.level = 0;\n this.visible = true;\n\n this.actived = spec.actived;\n this.initActived();\n\n this.expanded = spec.expanded;\n this.initExpanded();\n\n this.checked = spec.checked;\n this.initChecked();\n\n this.update();\n tree.reflow(this);\n\n // 这里的子节点加载逻辑不能放到状态计算之前\n // 因为子节点状态计算依赖父节点状态\n if (Array.isArray(children)) {\n this.append(children);\n } else if (children === true && !config.lazy) {\n this.loadChildren();\n }\n\n // checked 状态依赖于子节点状态\n // 因此初始化状态放到子节点插入之后\n this.checked = false;\n this.indeterminate = false;\n this.updateChecked();\n }\n\n /* ------ 状态初始化 ------ */\n\n // 初始化选中态\n public initChecked() {\n const { tree, value, parent } = this;\n const { checkStrictly } = tree.config;\n let { checked } = this;\n checked = parent?.isChecked();\n if (checked && !checkStrictly) {\n tree.checkedMap.set(value, true);\n }\n this.checked = checked;\n }\n\n // 初始化节点展开状态\n public initExpanded(): void {\n const { tree } = this;\n let { expanded } = this;\n const { config } = tree;\n if (\n typeof config.expandLevel === 'number'\n && this.getLevel() < config.expandLevel\n ) {\n tree.expandedMap.set(this.value, true);\n expanded = true;\n }\n if (config.expandAll) {\n expanded = true;\n }\n if (this.children === true && config.lazy) {\n expanded = false;\n }\n if (expanded) {\n tree.expandedMap.set(this.value, true);\n } else {\n tree.expandedMap.delete(this.value);\n }\n this.expanded = expanded;\n }\n\n // 初始化高亮状态\n public initActived(): void {\n const { tree, actived } = this;\n if (actived) {\n tree.activedMap.set(this.value, true);\n }\n }\n\n /* ------ 节点操作 ------ */\n\n // 追加数据\n public append(data: TypeTreeNodeData | TypeTreeNodeData[]): void {\n const list = [];\n if (!Array.isArray(data)) {\n list.push(data);\n } else {\n list.push(...data);\n }\n if (list.length <= 0) {\n return;\n }\n if (!Array.isArray(this.children)) {\n this.children = [];\n }\n const { children, tree } = this;\n list.forEach((item) => {\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(this.tree, this);\n } else {\n node = new TreeNode(this.tree, item, this);\n children.push(node);\n }\n });\n tree.reflow(this);\n this.updateRelated();\n }\n\n // 将当前节点追加到某个父节点的子节点列表中\n public appendTo(\n tree: TreeStore,\n parent?: TreeNode,\n index?: number,\n ): void {\n const parentNode = parent;\n if (!parentNode) return;\n\n const targetParents = parentNode.getParents();\n const includeCurrent = targetParents.some((node) => node.value === this.value);\n if (includeCurrent) {\n // 不能将父节点插入到子节点\n return;\n }\n\n if (Array.isArray(parentNode.children)) {\n let targetIndex = 0;\n if (typeof index === 'number') {\n targetIndex = index;\n }\n const targetPosNode = parentNode.children[targetIndex];\n if (targetPosNode.value === this.value) {\n // 无需将节点插入到原位置\n return;\n }\n }\n\n this.remove();\n this.parent = parentNode;\n\n let siblings = null;\n if (parentNode instanceof TreeNode) {\n if (!Array.isArray(parentNode.children)) {\n parentNode.children = [];\n }\n siblings = parent.children;\n } else {\n siblings = tree.children;\n }\n if (Array.isArray(siblings)) {\n if (typeof index === 'number') {\n siblings.splice(index, 0, this);\n } else {\n siblings.push(this);\n }\n }\n\n // 插入节点应当继承展开状态\n // 但建议不要继承选中状态和高亮状态\n const nodes = this.walk();\n nodes.forEach((item) => {\n const node = item;\n node.tree = tree;\n tree.nodeMap.set(node.value, node);\n if (node.expanded) {\n tree.expandedMap.set(node.value, true);\n }\n });\n\n const updateNodes = parentNode.walk();\n updateNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n\n tree.reflow();\n }\n\n // 插入一个同级节点数据\n public insert(\n item: TypeTreeItem,\n index?: number,\n ): void {\n const { tree, parent } = this;\n const siblings = this.getSiblings();\n let node = null;\n if (item instanceof TreeNode) {\n node = item;\n node.appendTo(tree, parent, index);\n } else if (item) {\n node = new TreeNode(tree, item, parent);\n if (typeof index === 'number') {\n siblings.splice(index, 0, node);\n }\n siblings.forEach((sibling) => {\n sibling.update();\n });\n }\n tree.reflow();\n }\n\n // 在当前节点之前插入节点\n public insertBefore(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index);\n }\n\n // 在当前节点之后插入节点\n public insertAfter(newData: TypeTreeItem): void {\n const index = this.getIndex();\n this.insert(newData, index + 1);\n }\n\n // 从一个树移除本节点\n public remove(): void {\n const { tree } = this;\n\n const nodes = this.walk();\n const siblings = this.getSiblings();\n const index = this.getIndex();\n // 从父节点的子节点列表中移除自己\n // 但不要将自己的父节点移除,避免渲染与判断失败\n if (Array.isArray(siblings)) {\n siblings.splice(index, 1);\n }\n // 清理与树的关系,但不清理自身状态\n nodes.forEach((node) => {\n node.clean();\n });\n // 同级节点的连线状态会受到影响\n siblings.forEach((node) => {\n node.update();\n });\n // 父节点选中态会受到影响\n this.updateParents();\n tree.reflow();\n }\n\n // 清除本节点与一个树的关系\n public clean(): void {\n const { tree, value } = this;\n tree.activedMap.delete(value);\n tree.checkedMap.delete(value);\n tree.expandedMap.delete(value);\n tree.nodeMap.delete(value);\n }\n\n // 异步加载子节点数据\n public async loadChildren(): Promise<void> {\n const config = get(this, 'tree.config') || {};\n if (this.children === true && !this.loading) {\n if (typeof config.load === 'function') {\n this.loading = true;\n this.update();\n let list = [];\n list = await config.load(this);\n this.tree.emit('load', {\n node: this,\n data: list,\n });\n this.loading = false;\n if (Array.isArray(list) && list.length > 0) {\n this.append(list);\n } else {\n this.children = false;\n }\n this.update();\n }\n }\n }\n\n // 设置状态\n public set(item: TreeNodeState): void {\n const { tree } = this;\n const keys = Object.keys(item);\n keys.forEach((key) => {\n if (hasOwnProperty.call(defaultStatus, key) || key === 'label') {\n this[key] = item[key];\n }\n });\n tree.updated(this);\n }\n\n /* ------ 节点获取 ------- */\n\n // 获取单个父节点\n public getParent(): TreeNode {\n return this.parent;\n }\n\n // 获取所有父节点\n public getParents(): TreeNode[] {\n const parents = [];\n let node = this.parent;\n while (node) {\n parents.push(node);\n node = node.parent;\n }\n return parents;\n }\n\n // 获取兄弟节点,包含自己在内\n public getSiblings(): TreeNode[] {\n const { parent, tree } = this;\n let list: TreeNode[] = [];\n if (parent) {\n if (Array.isArray(parent.children)) {\n list = parent.children;\n }\n } else if (tree) {\n list = tree.children;\n }\n return list;\n }\n\n // 获取根节点\n public getRoot(): TreeNode {\n const parents = this.getParents();\n return parents[parents.length - 1] || null;\n }\n\n // 获取节点在父节点的子节点列表中的位置\n // 如果没有父节点,则获取节点在根节点列表的位置\n public getIndex(): number {\n const list = this.getSiblings();\n return list.indexOf(this);\n }\n\n // 返回路径节点\n public getPath(): TreeNode[] {\n const nodes = this.getParents();\n nodes.unshift(this);\n return nodes.reverse();\n }\n\n // 获取节点所在层级\n public getLevel(): number {\n const parents = this.getParents();\n return parents.length;\n }\n\n /* ------ 节点状态判断 ------ */\n\n // 判断节点是否被过滤\n public isRest(): boolean {\n const {\n config,\n filterMap,\n } = this.tree;\n\n let rest = true;\n if (typeof config.filter === 'function') {\n const nodeModel = this.getModel();\n rest = config.filter(nodeModel);\n }\n\n if (rest) {\n filterMap.set(this.value, true);\n } else if (filterMap.get(this.value)) {\n filterMap.delete(this.value);\n }\n\n return rest;\n }\n\n // 判断节点是否可视\n public isVisible(): boolean {\n const {\n nodeMap,\n } = this.tree;\n\n let visible = true;\n\n // 锁定状态,直接呈现\n if (this.vmIsLocked) {\n return true;\n }\n\n // 在当前树上,未被移除\n if (nodeMap.get(this.value)) {\n // 节点未被过滤\n const filterVisible = this.isRest();\n\n // 所有父节点展开\n let expandVisible = true;\n const parents = this.getParents();\n if (parents.length > 0) {\n expandVisible = parents.every((node: TreeNode) => node.isExpanded());\n }\n\n // 节点为未被过滤节点的父节点\n visible = expandVisible && filterVisible;\n } else {\n visible = false;\n }\n return visible;\n }\n\n // 判断节点是否被禁用\n public isDisabled() {\n if (this.vmIsLocked) return true;\n const treeDisabled = get(this, 'tree.config.disabled');\n return !!(treeDisabled || this.disabled);\n }\n\n // 判断节点是否支持互斥展开\n public isExpandMutex() {\n return !!(get(this, 'tree.config.expandMutex') || this.expandMutex);\n }\n\n // 节点可高亮\n public isActivable() {\n return !!(get(this, 'tree.config.activable') || this.activable);\n }\n\n // 是否可选\n public isCheckable() {\n return !!(get(this, 'tree.config.checkable') || this.checkable);\n }\n\n // 检查节点是否被激活\n public isActived(map?: Map<string, boolean>): boolean {\n const { tree, value } = this;\n const activedMap = map || tree.activedMap;\n return !!(tree.nodeMap.get(value) && activedMap.get(value));\n }\n\n // 检查节点是否已展开\n public isExpanded(map?: Map<string, boolean>): boolean {\n const { tree, value, vmIsLocked } = this;\n if (vmIsLocked) return true;\n const expandedMap = map || tree.expandedMap;\n return !!(tree.nodeMap.get(value) && expandedMap.get(value));\n }\n\n // 计算属性,判断节点是否被选中\n // map: 预期选中项map,用于计算节点在预期环境中的选中态\n public isChecked(map?: TypeIdMap): boolean {\n const { children, tree } = this;\n const { checkStrictly } = tree.config;\n let checked = false;\n const checkedMap = map || tree.checkedMap;\n if (tree.nodeMap.get(this.value)) {\n if (checkedMap.get(this.value)) {\n // 如果在 checked 节点列表中,则直接为 true\n checked = true;\n } else if (\n Array.isArray(children)\n && children.length > 0\n && !checkStrictly\n ) {\n // 如果是父节点,需检查所有子节点状态\n checked = children.every((node) => {\n const childIsChecked = node.isChecked(checkedMap);\n return childIsChecked;\n });\n } else if (!checkStrictly) {\n // 从父节点状态推断子节点状态\n // 这里再调用 isChecked 会导致死循环\n const parents = this.getParents();\n checked = parents.some((node) => checkedMap.get(node.value));\n }\n }\n return !!checked;\n }\n\n // 是否为半选状态\n public isIndeterminate(): boolean {\n const { children, tree } = this;\n const { checkStrictly } = tree.config;\n if (checkStrictly) {\n return false;\n }\n let indeterminate = false;\n if (Array.isArray(children)) {\n // 叶节点不存在半选状态\n let childChecked: null | boolean = null;\n indeterminate = children.some((node: TreeNode) => {\n if (node.isIndeterminate()) {\n // 子节点有任意一个半选,则其为半选状态\n return true;\n }\n if (childChecked === null) {\n childChecked = node.isChecked();\n }\n if (childChecked !== node.isChecked()) {\n // 子节点选中状态不一致,则其为半选状态\n return true;\n }\n return false;\n });\n }\n return indeterminate;\n }\n\n public isFirst(): boolean {\n const siblings = this.getSiblings();\n return siblings[0] === this;\n }\n\n public isLast(): boolean {\n const siblings = this.getSiblings();\n return siblings[siblings.length - 1] === this;\n }\n\n // 是叶节点\n public isLeaf(): boolean {\n let isLeaf = false;\n if (Array.isArray(this.children)) {\n isLeaf = this.children.length <= 0;\n } else {\n isLeaf = !this.children;\n }\n return isLeaf;\n }\n\n /* ------ 节点状态切换 ------ */\n\n // 锁定节点\n // 搜索过滤节点时,路径节点需要固定呈现,视其为锁定态\n public lock(lockState: boolean): void {\n this.vmIsLocked = lockState;\n this.expanded = this.isExpanded();\n this.visible = this.isVisible();\n }\n\n // 节点展开关闭后需要调用的状态检查函数\n public afterExpanded(): void {\n this.update();\n // 节点展开时检查延迟加载的数据\n if (this.expanded && this.children === true) {\n this.loadChildren();\n }\n }\n\n // 展开或者关闭节点\n public toggleExpanded(): TreeNodeValue[] {\n return this.setExpanded(!this.isExpanded());\n }\n\n // 设置节点展开状态\n public setExpanded(expanded: boolean, opts?: TypeSettingOptions): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n directly: false,\n ...opts,\n };\n\n let map = tree.expandedMap;\n if (!options.directly) {\n map = new Map(tree.expandedMap);\n }\n\n // 手风琴效果,先折叠同级节点\n if (expanded) {\n const shouldExpandNodes = [];\n shouldExpandNodes.push(this);\n if (get(tree, 'config.expandParent')) {\n this.getParents().forEach((node) => {\n shouldExpandNodes.push(node);\n });\n }\n shouldExpandNodes.forEach((node) => {\n let isExpandMutex = false;\n if (node.parent) {\n isExpandMutex = node.parent.isExpandMutex();\n } else {\n isExpandMutex = tree?.config?.expandMutex;\n }\n if (isExpandMutex) {\n const siblings = node.getSiblings();\n siblings.forEach((snode) => {\n map.delete(snode.value);\n });\n }\n map.set(node.value, true);\n });\n } else {\n map.delete(this.value);\n }\n\n if (options.directly) {\n this.afterExpanded();\n this.update();\n this.updateChildren();\n }\n\n return tree.getExpanded(map);\n }\n\n // 切换节点激活态\n public toggleActived(): TreeNodeValue[] {\n return this.setActived(!this.isActived());\n }\n\n // 设置节点激活态\n public setActived(actived: boolean, opts?: TypeSettingOptions): TreeNodeValue[] {\n const { tree } = this;\n const options = {\n directly: false,\n ...opts,\n };\n const config = tree.config || {};\n let map = tree.activedMap;\n if (!options.directly) {\n map = new Map(tree.activedMap);\n }\n if (this.isActivable()) {\n if (actived) {\n if (!config.activeMultiple) {\n map.clear();\n }\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n }\n if (options.directly) {\n this.update();\n }\n return tree.getActived(map);\n }\n\n // 切换选中态\n public toggleChecked(): TreeNodeValue[] {\n return this.setChecked(!this.isChecked());\n }\n\n // 更新单个节点的选中态\n // 返回树选中列表\n public setChecked(checked: boolean, opts?: TypeSettingOptions): TreeNodeValue[] {\n const { tree } = this;\n const config = tree.config || {};\n const options = {\n directly: false,\n ...opts,\n };\n let map = tree.checkedMap;\n if (!options.directly) {\n map = new Map(tree.checkedMap);\n }\n if (this.isCheckable() && checked !== this.isChecked()) {\n if (config.checkStrictly) {\n if (checked) {\n map.set(this.value, true);\n } else {\n map.delete(this.value);\n }\n } else {\n const children = this.walk();\n // 子节点的预期选中态与当前节点同步\n children.forEach((node) => {\n if (checked) {\n map.set(node.value, true);\n } else {\n map.delete(node.value);\n }\n });\n // 消除全部父节点的预期选中态\n // 父节点的预期选中态将通过计算得出\n const parents = this.getParents();\n parents.forEach((node) => {\n map.delete(node.value);\n });\n }\n }\n if (options.directly) {\n if (config.checkStrictly) {\n this.updateChecked();\n } else {\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n return tree.getChecked(map);\n }\n\n /* ------ 节点状态更新 ------ */\n\n // 更新节点状态\n public update(): void {\n this.level = this.getLevel();\n this.actived = this.isActived();\n this.expanded = this.isExpanded();\n this.vmCheckable = this.isCheckable();\n this.visible = this.isVisible();\n this.vmIsRest = this.isRest();\n this.vmIsFirst = this.isFirst();\n this.vmIsLast = this.isLast();\n this.vmIsLeaf = this.isLeaf();\n this.tree.updated(this);\n }\n\n // 更新选中态属性值\n public updateChecked(isFromValueChange?: boolean): void {\n const { tree } = this;\n this.vmCheckable = this.isCheckable();\n if (this.vmCheckable && (!this.disabled || isFromValueChange)) {\n this.checked = this.isChecked();\n if (this.checked) {\n tree.checkedMap.set(this.value, true);\n }\n this.indeterminate = this.isIndeterminate();\n tree.updated(this);\n }\n }\n\n // 更新所有子节点状态\n // 注意:不包含自己\n public updateChildren(): void {\n const { children } = this;\n if (Array.isArray(children)) {\n children.forEach((node) => {\n node.update();\n node.updateChecked();\n node.updateChildren();\n });\n }\n }\n\n // 父节点状态更新\n // 注意:不包含自己\n public updateParents(): void {\n const { parent } = this;\n if (parent) {\n parent.update();\n parent.updateChecked();\n parent.updateParents();\n }\n }\n\n // 更新上下游相关节点\n public updateRelated() {\n const { tree } = this;\n const relatedNodes = tree.getRelatedNodes([this.value]);\n relatedNodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n tree.reflow();\n }\n\n /* ------ 节点遍历 ------ */\n\n // 获取包含自己在内所有的子节点\n public walk(): TreeNode[] {\n const { children } = this;\n let list: TreeNode[] = [];\n list.push(this);\n if (Array.isArray(children) && children.length > 0) {\n children.forEach((node) => {\n list = list.concat(node.walk());\n });\n }\n return list;\n }\n\n // TreeNode 对象 => TypeTreeNodeModel 对象\n // 用于 treeNode 对外暴露的 api\n // 经过封装的对象,减少了对外暴露的 api,利于代码重构\n public getModel(): TypeTreeNodeModel {\n let { model } = this;\n if (!model) {\n model = createNodeModel(this);\n this.model = model;\n }\n updateNodeModel(model, this);\n return model;\n }\n}\n\nexport default TreeNode;\n"],"names":["toString","require$$0","idCounter","uniqueId","prefix","id","uniqueId_1","isNil","value","isNil_1","hasOwnProperty","Object","prototype","defaultStatus","expandMutex","activable","checkable","disabled","draggable","loading","TreeNode","tree","data","parent","config","keys","get","propChildren","children","propLabel","label","propValue","model","vmCheckable","vmIsLeaf","vmIsFirst","vmIsLast","vmIsRest","vmIsLocked","spec","actived","expanded","checked","set","nodeMap","level","visible","initActived","initExpanded","initChecked","update","reflow","Array","isArray","append","lazy","loadChildren","indeterminate","updateChecked","checkStrictly","isChecked","checkedMap","expandLevel","getLevel","expandedMap","expandAll","activedMap","list","push","length","forEach","item","node","appendTo","updateRelated","index","parentNode","targetParents","getParents","includeCurrent","some","targetIndex","targetPosNode","remove","siblings","splice","nodes","walk","updateNodes","getSiblings","sibling","newData","getIndex","insert","clean","updateParents","_regeneratorRuntime","load","emit","key","call","updated","parents","indexOf","unshift","reverse","filterMap","rest","filter","nodeModel","getModel","filterVisible","isRest","expandVisible","every","isExpanded","treeDisabled","map","childIsChecked","childChecked","isIndeterminate","isLeaf","lockState","isVisible","setExpanded","opts","options","directly","Map","shouldExpandNodes","isExpandMutex","snode","afterExpanded","updateChildren","getExpanded","setActived","isActived","isActivable","activeMultiple","clear","getActived","setChecked","isCheckable","relatedNodes","getRelatedNodes","getChecked","isFirst","isLast","isFromValueChange","concat","createNodeModel","updateNodeModel"],"mappings":"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"}
@@ -60,7 +60,7 @@ export declare class TreeStore {
60
60
  getChecked(map?: TypeIdMap): TreeNodeValue[];
61
61
  getCheckedNodes(item?: TypeTargetNode): TreeNode[];
62
62
  replaceChecked(list: TreeNodeValue[]): void;
63
- setChecked(list: TreeNodeValue[]): void;
63
+ setChecked(list: TreeNodeValue[], isFromValueChange?: boolean): void;
64
64
  resetChecked(): void;
65
65
  updateAll(): void;
66
66
  remove(value?: TypeTargetNode): void;
@@ -6,7 +6,7 @@
6
6
 
7
7
  import { _ as _defineProperty } from '../../../_chunks/dep-97eca916.js';
8
8
  import { _ as _classCallCheck, a as _createClass } from '../../../_chunks/dep-92fcb75a.js';
9
- import { d as difference_1 } from '../../../_chunks/dep-daaa76c2.js';
9
+ import { d as difference_1 } from '../../../_chunks/dep-7cc0a2e2.js';
10
10
  import { c as camelCase_1 } from '../../../_chunks/dep-a4b40e9d.js';
11
11
  import { a as isPlainObject_1 } from '../../../_chunks/dep-019fd669.js';
12
12
  import { TreeNode } from './tree-node.js';
@@ -27,26 +27,25 @@ import '../../../_chunks/dep-c5d62926.js';
27
27
  import '../../../_chunks/dep-acd9bd4c.js';
28
28
  import '../../../_chunks/dep-f3cc8383.js';
29
29
  import '../../../_chunks/dep-3395cd08.js';
30
- import '../../../_chunks/dep-5bfc1a42.js';
30
+ import '../../../_chunks/dep-e97e29d5.js';
31
31
  import '../../../_chunks/dep-ea16aa66.js';
32
32
  import '../../../_chunks/dep-71a9b7bf.js';
33
+ import '../../../_chunks/dep-1e4b6d87.js';
33
34
  import '../../../_chunks/dep-b29a2586.js';
34
35
  import '../../../_chunks/dep-ffc7f845.js';
35
36
  import '../../../_chunks/dep-a34b9aec.js';
36
37
  import '../../../_chunks/dep-03d8815d.js';
37
38
  import '../../../_chunks/dep-d2dd8f3a.js';
38
- import '../../../_chunks/dep-1e4b6d87.js';
39
39
  import '../../../_chunks/dep-3142a411.js';
40
40
  import '../../../_chunks/dep-fe2a15e4.js';
41
41
  import '../../../_chunks/dep-9bd11181.js';
42
42
  import '../../../_chunks/dep-495a8e2f.js';
43
43
  import '../../../_chunks/dep-972fd346.js';
44
44
  import './tree-node-model.js';
45
- import '../../../_chunks/dep-2dcbb9b7.js';
45
+ import '../../../_chunks/dep-85b223d3.js';
46
46
  import '../../../_chunks/dep-e9e8b058.js';
47
47
  import '../../../_chunks/dep-42a1c571.js';
48
48
  import '../../../_chunks/dep-a70aa015.js';
49
- import '../../../_chunks/dep-f8eff6be.js';
50
49
  import '../log/log.js';
51
50
 
52
51
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -538,11 +537,11 @@ var TreeStore = /*#__PURE__*/function () {
538
537
  key: "replaceChecked",
539
538
  value: function replaceChecked(list) {
540
539
  this.resetChecked();
541
- this.setChecked(list);
540
+ this.setChecked(list, true);
542
541
  }
543
542
  }, {
544
543
  key: "setChecked",
545
- value: function setChecked(list) {
544
+ value: function setChecked(list, isFromValueChange) {
546
545
  var _this6 = this;
547
546
 
548
547
  var _this$config = this.config,
@@ -562,7 +561,7 @@ var TreeStore = /*#__PURE__*/function () {
562
561
  } else {
563
562
  _this6.checkedMap.set(val, true);
564
563
 
565
- node.updateChecked();
564
+ node.updateChecked(isFromValueChange);
566
565
  }
567
566
  }
568
567
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tree-store.js","sources":["../../../../src/_common/js/tree/tree-store.ts"],"sourcesContent":["import difference from 'lodash/difference';\nimport camelCase from 'lodash/camelCase';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { TreeNode } from './tree-node';\nimport {\n TreeNodeValue,\n TypeIdMap,\n TypeTimer,\n TypeTargetNode,\n TypeTreeNodeData,\n TypeTreeStoreOptions,\n TypeTreeFilter,\n TypeTreeFilterOptions,\n TypeRelatedNodesOptions,\n TypeTreeEventState,\n} from './types';\n\n// 构建一个树的数据模型\n// 基本设计思想:写入时更新,减少读取消耗,以减少未来实现虚拟滚动所需的计算量\n// 任何一次数据写入,会触发相应节点的状态更新\nexport class TreeStore {\n // 根节点集合\n public children: TreeNode[];\n\n // 所有节点集合\n public nodes: TreeNode[];\n\n // 所有节点映射\n public nodeMap: Map<TreeNodeValue, TreeNode>;\n\n // 配置选项\n public config: TypeTreeStoreOptions;\n\n // 活动节点集合\n public activedMap: TypeIdMap;\n\n // 数据被更新的节点集合\n public updatedMap: TypeIdMap;\n\n // 选中节点集合\n public checkedMap: TypeIdMap;\n\n // 展开节点的集合\n public expandedMap: TypeIdMap;\n\n // 符合过滤条件的节点的集合\n public filterMap: TypeIdMap;\n\n // 数据更新计时器\n public updateTimer: TypeTimer;\n\n // 识别是否需要重排\n public shouldReflow: boolean;\n\n // 树节点过滤器\n public prevFilter: TypeTreeFilter;\n\n public constructor(options: TypeTreeStoreOptions) {\n const config: TypeTreeStoreOptions = {\n prefix: 't',\n keys: {},\n expandAll: false,\n expandLevel: 0,\n expandMutex: false,\n expandParent: false,\n activable: false,\n activeMultiple: false,\n checkable: false,\n checkStrictly: false,\n disabled: false,\n load: null,\n lazy: false,\n valueMode: 'onlyLeaf',\n filter: null,\n onLoad: null,\n onReflow: null,\n onUpdate: null,\n allowFoldNodeOnFilter: false,\n ...options,\n };\n this.config = config;\n this.nodes = [];\n this.children = [];\n this.nodeMap = new Map();\n this.activedMap = new Map();\n this.expandedMap = new Map();\n this.checkedMap = new Map();\n this.updatedMap = new Map();\n this.filterMap = new Map();\n this.prevFilter = null;\n // 这个计时器确保频繁的 update 事件被归纳为1次完整数据更新后的触发\n this.updateTimer = null;\n // 在子节点增删改查时,将此属性设置为 true,来触发视图更新\n this.shouldReflow = false;\n }\n\n // 配置选项\n public setConfig(options: TypeTreeStoreOptions) {\n let hasChanged = false;\n Object.keys(options).forEach((key) => {\n const val = options[key];\n if (val !== this.config[key]) {\n hasChanged = true;\n this.config[key] = val;\n }\n });\n if (hasChanged) {\n // 在 td-tree 的 render 方法中调用 setConfig\n // 这样减少了 watch 属性\n // 仅在属性变更后刷新状态\n // 这样可以避免触发渲染死循环\n this.refreshState();\n }\n }\n\n // 获取根孩子节点列表\n public getChildren() {\n return this.children;\n }\n\n // 获取节点对象\n public getNode(item: TypeTargetNode): TreeNode {\n let node = null;\n if (typeof item === 'string' || typeof item === 'number') {\n node = this.nodeMap.get(item);\n } else if (item instanceof TreeNode) {\n node = this.nodeMap.get(item.value);\n }\n return node;\n }\n\n // 获取节点在总节点列表中的位置\n public getIndex(node: TreeNode): number {\n return this.nodes.indexOf(node);\n }\n\n // 获取指定节点的父节点\n public getParent(value: TypeTargetNode): TreeNode {\n let parent = null;\n const node = this.getNode(value);\n if (node) {\n parent = node.getParent();\n }\n return parent;\n }\n\n // 获取指定节点的所有父节点\n public getParents(value: TypeTargetNode): TreeNode[] {\n const node = this.getNode(value);\n let parents: TreeNode[] = [];\n if (node) {\n parents = node.getParents();\n }\n return parents;\n }\n\n // 获取指定节点在其所在 children 中的位置\n public getNodeIndex(value: TypeTargetNode): number {\n const node = this.getNode(value);\n let index = -1;\n if (node) {\n index = node.getIndex();\n }\n return index;\n }\n\n // 获取所有符合条件的节点\n public getNodes(\n item?: TypeTargetNode,\n options?: TypeTreeFilterOptions,\n ): TreeNode[] {\n let nodes: TreeNode[] = [];\n let val: TreeNodeValue = '';\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item instanceof TreeNode) {\n val = item.value;\n }\n if (!val) {\n nodes = this.nodes.slice(0);\n } else {\n const node = this.getNode(val);\n if (node) {\n nodes = node.walk();\n }\n }\n\n if (options) {\n const conf: TypeTreeFilterOptions = {\n filter: null,\n level: Infinity,\n ...options,\n };\n if (typeof conf.level === 'number' && conf.level !== Infinity) {\n nodes = nodes.filter((node) => node.level <= conf.level);\n }\n if (typeof conf.filter === 'function') {\n nodes = nodes.filter((node) => {\n const nodeModel = node.getModel();\n return conf.filter(nodeModel);\n });\n }\n if (isPlainObject(conf.props)) {\n nodes = nodes.filter((node) => {\n const result = Object.keys(conf.props).every((key) => {\n const propEqual = node[key] === conf.props[key];\n return propEqual;\n });\n return result;\n });\n }\n }\n return nodes;\n }\n\n // 给树添加节点数据\n public append(list: TypeTreeNodeData[]): void {\n list.forEach((item) => {\n const node = new TreeNode(this, item);\n this.children.push(node);\n });\n this.reflow();\n }\n\n // 重新加载数据\n public reload(list: TypeTreeNodeData[]): void {\n this.expandedMap.clear();\n this.checkedMap.clear();\n this.activedMap.clear();\n this.filterMap.clear();\n this.removeAll();\n this.append(list);\n }\n\n // 解析节点数据,适配多种节点类型\n public parseNodeData(\n para: TreeNodeValue | TreeNode | TypeTreeNodeData,\n item: TypeTreeNodeData | TypeTreeNodeData[] | TreeNode,\n ) {\n let value: TreeNodeValue = '';\n let node = null;\n let data = null;\n\n if (typeof para === 'string' || typeof para === 'number') {\n value = para;\n data = item;\n node = this.getNode(value);\n } else if (para instanceof TreeNode) {\n node = para;\n data = item;\n } else {\n data = para;\n }\n const spec = {\n node,\n data,\n };\n return spec;\n }\n\n /**\n * 向指定节点追加节点或者数据\n * 支持下列使用方式\n * item: 节点数据, TreeNode: 节点实例, value: 节点值(ID)\n * appendNodes(item)\n * appendNodes(TreeNode)\n * appendNodes(value, item)\n * appendNodes(value, TreeNode)\n * appendNodes(TreeNode, item)\n * appendNodes(TreeNode, TreeNode)\n */\n public appendNodes(\n para?: TypeTargetNode | TypeTreeNodeData,\n item?: TypeTreeNodeData | TreeNode,\n ): void {\n const spec = this.parseNodeData(para, item);\n if (spec.data) {\n if (!spec.node) {\n // 在根节点插入\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this);\n } else if (Array.isArray(spec.data)) {\n this.append(spec.data);\n } else {\n this.append([spec.data]);\n }\n } else {\n // 插入到目标节点之下\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this, spec.node);\n } else if (Array.isArray(spec.data)) {\n spec.node.append(spec.data);\n } else {\n spec.node.append([spec.data]);\n }\n spec.node.updateRelated();\n }\n }\n }\n\n // 在目标节点之前插入节点\n public insertBefore(value: TypeTargetNode, item: TypeTreeNodeData): void {\n const node = this.getNode(value);\n if (node) {\n node.insertBefore(item);\n }\n }\n\n // 在目标节点之后插入节点\n public insertAfter(value: TypeTargetNode, item: TypeTreeNodeData): void {\n const node = this.getNode(value);\n if (node) {\n node.insertAfter(item);\n }\n }\n\n // 更新树结构\n // 清空 nodes 数组,然后遍历所有根节点重新插入 node\n public refreshNodes(): void {\n const { children, nodes } = this;\n nodes.length = 0;\n children.forEach((node) => {\n const list = node.walk();\n Array.prototype.push.apply(nodes, list);\n });\n }\n\n // 更新所有树节点状态\n public refreshState(): void {\n const { nodes } = this;\n nodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n // 节点重排\n // 应该仅在树节点增删改查时调用\n public reflow(node?: TreeNode): void {\n this.shouldReflow = true;\n this.updated(node);\n }\n\n // 触发更新事件\n // 节点属性变更时调用\n public updated(node?: TreeNode): void {\n if (node?.value) {\n this.updatedMap.set(node.value, true);\n }\n if (this.updateTimer) return;\n this.updateTimer = +setTimeout(() => {\n clearTimeout(this.updateTimer);\n this.updateTimer = null;\n\n // 检查节点是否需要回流,重排数组\n if (this.shouldReflow) {\n this.refreshNodes();\n this.emit('reflow');\n }\n\n // 检查节点是否有被过滤,锁定路径节点\n // 在此之前要遍历节点生成一个经过排序的节点数组\n // 以便于优化锁定检查算法\n if (!this.config?.allowFoldNodeOnFilter) this.lockFilterPathNodes();\n\n const updatedList = Array.from(this.updatedMap.keys());\n if (updatedList.length > 0) {\n // 统计需要更新状态的节点,派发更新事件\n const updatedNodes = updatedList.map((value) => this.getNode(value));\n this.emit('update', {\n nodes: updatedNodes,\n map: this.updatedMap,\n });\n } else if (this.shouldReflow) {\n // 单纯的回流不需要更新节点状态\n // 但需要触发更新事件\n this.emit('update', {\n nodes: [],\n map: this.updatedMap,\n });\n }\n\n // 每次回流检查完毕,还原检查状态\n this.shouldReflow = false;\n this.updatedMap.clear();\n });\n }\n\n // 获取激活节点集合\n public getActived(map?: TypeIdMap): TreeNodeValue[] {\n const activedMap = map || this.activedMap;\n return Array.from(activedMap.keys());\n }\n\n // 获取指定范围的高亮节点\n public getActivedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isActived());\n return nodes;\n }\n\n // 替换激活态\n public replaceActived(list: TreeNodeValue[]): void {\n this.resetActived();\n this.setActived(list);\n }\n\n // 设置激活态\n public setActived(actived: TreeNodeValue[]): void {\n const { activeMultiple } = this.config;\n const list = actived.slice(0);\n if (!activeMultiple) {\n list.length = 1;\n }\n list.forEach((val) => {\n this.activedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.update();\n }\n });\n }\n\n // 重置激活态\n public resetActived(): void {\n const actived = this.getActived();\n this.activedMap.clear();\n const relatedNodes = this.getRelatedNodes(actived);\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n // 获取展开节点集合\n public getExpanded(map?: TypeIdMap): TreeNodeValue[] {\n const expandedMap = map || this.expandedMap;\n return Array.from(expandedMap.keys());\n }\n\n // 替换展开节点\n public replaceExpanded(list: TreeNodeValue[]): void {\n const expanded = this.getExpanded();\n const added = difference(list, expanded);\n const removed = difference(expanded, list);\n this.setExpandedDirectly(removed, false);\n this.updateExpanded(removed);\n this.setExpanded(added);\n }\n\n // 批量设置展开节点\n public setExpanded(list: TreeNodeValue[]): void {\n this.setExpandedDirectly(list);\n this.updateExpanded(list);\n }\n\n // 直接设置展开节点数据,不更新节点状态\n public setExpandedDirectly(list: TreeNodeValue[], expanded = true): void {\n list.forEach((val) => {\n if (expanded) {\n this.expandedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.afterExpanded();\n }\n } else {\n this.expandedMap.delete(val);\n }\n });\n }\n\n // 清除所有展开节点\n public resetExpanded(): void {\n const expanded = this.getExpanded();\n this.expandedMap.clear();\n this.updateExpanded(expanded);\n }\n\n // 更新展开节点相关节点的状态\n public updateExpanded(list: TreeNodeValue[]): void {\n const relatedNodes = this.getRelatedNodes(list, {\n withParents: false,\n });\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n // 获取选中态节点 value 数组\n public getChecked(map?: TypeIdMap): TreeNodeValue[] {\n const { nodes, config } = this;\n const { valueMode, checkStrictly } = config;\n const list: TreeNodeValue[] = [];\n const checkedMap = map || this.checkedMap;\n nodes.forEach((node) => {\n if (node.isChecked(checkedMap)) {\n if (valueMode === 'parentFirst' && !checkStrictly) {\n if (!node.parent || !node.parent.isChecked(checkedMap)) {\n list.push(node.value);\n }\n } else if (valueMode === 'onlyLeaf' && !checkStrictly) {\n if (node.isLeaf()) {\n list.push(node.value);\n }\n } else {\n list.push(node.value);\n }\n }\n });\n return list;\n }\n\n // 获取指定节点下的选中节点\n public getCheckedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isChecked());\n return nodes;\n }\n\n // 替换选中态列表\n public replaceChecked(list: TreeNodeValue[]): void {\n this.resetChecked();\n this.setChecked(list);\n }\n\n // 批量设置选中态\n public setChecked(list: TreeNodeValue[]): void {\n const { valueMode, checkStrictly, checkable } = this.config;\n if (!checkable) return;\n list.forEach((val: TreeNodeValue) => {\n const node = this.getNode(val);\n if (node) {\n if (valueMode === 'parentFirst' && !checkStrictly) {\n const childrenNodes = node.walk();\n childrenNodes.forEach((childNode) => {\n this.checkedMap.set(childNode.value, true);\n });\n } else {\n this.checkedMap.set(val, true);\n node.updateChecked();\n }\n }\n });\n if (!checkStrictly) {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n // 清除所有选中节点\n public resetChecked(): void {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n this.checkedMap.clear();\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n\n // 更新全部节点状态\n public updateAll(): void {\n const nodes = this.getNodes();\n nodes.forEach((node) => {\n node.update();\n });\n }\n\n // 移除指定节点\n public remove(value?: TypeTargetNode): void {\n const node = this.getNode(value);\n if (node) {\n node.remove();\n }\n }\n\n // 清空所有节点\n public removeAll(): void {\n const nodes = this.getNodes();\n nodes.forEach((node) => {\n node.remove();\n });\n }\n\n // 获取节点状态变化可能影响的周边节点\n // 实现最小遍历集合\n public getRelatedNodes(\n list: TreeNodeValue[],\n options?: TypeRelatedNodesOptions,\n ): TreeNode[] {\n const conf = {\n withParents: true,\n ...options,\n };\n const map = new Map();\n list.forEach((value) => {\n if (map.get(value)) return;\n const node = this.getNode(value);\n if (node) {\n const parents = node.getParents();\n const children = node.walk();\n let related = [];\n if (conf.withParents) {\n related = parents.concat(children);\n } else {\n related = children;\n }\n related.forEach((relatedNode) => {\n map.set(relatedNode.value, relatedNode);\n });\n }\n });\n const relatedNodes = Array.from(map.values());\n return relatedNodes;\n }\n\n // 触发绑定的事件\n public emit(name: string, state?: TypeTreeEventState): void {\n const config = this.config || {};\n const methodName = camelCase(`on-${name}`);\n const method = config[methodName];\n if (typeof method === 'function') {\n method(state);\n }\n }\n\n // 锁定过滤节点的路径节点\n // 使得路径节点展开,可见,且不可操作\n public lockFilterPathNodes() {\n const { config } = this;\n const allNodes = this.getNodes();\n\n // 如果之前有进行过滤,则先解锁所有节点\n if (this.prevFilter) {\n allNodes.forEach((node: TreeNode) => {\n node.lock(false);\n });\n }\n\n // 当前没有过滤器\n // 则无需处理锁定节点\n if (!config.filter) {\n return;\n }\n this.prevFilter = config.filter;\n\n // 构造路径节点map\n const map = new Map();\n\n // 全部节点要经过排序,才能使用这个算法\n // 比起每个过滤节点调用 getParents 方法检查父节点状态\n // 算法复杂度 O(N*log(N)) => O(N)\n allNodes.reverse().forEach((item: TreeNode) => {\n const node = item;\n\n // 被过滤节点父节点固定为展开状态\n const parent = node.getParent();\n if (node.vmIsRest) {\n if (parent) {\n // 被过滤节点的父节点固定为展开状态\n parent.expanded = true;\n }\n // 被过滤节点固定为展示状态\n node.visible = true;\n }\n if (node.vmIsRest || map.get(node.value)) {\n if (parent && !parent.vmIsRest) {\n map.set(parent.value, true);\n }\n }\n });\n\n // 锁定路径节点展示样式\n const filterPathValues = Array.from(map.keys());\n filterPathValues.forEach((value: TreeNodeValue) => {\n const node = this.getNode(value);\n if (node) {\n node.lock(true);\n }\n });\n }\n}\n\nexport default TreeStore;\n"],"names":["TreeStore","options","config","prefix","keys","expandAll","expandLevel","expandMutex","expandParent","activable","activeMultiple","checkable","checkStrictly","disabled","load","lazy","valueMode","filter","onLoad","onReflow","onUpdate","allowFoldNodeOnFilter","nodes","children","nodeMap","Map","activedMap","expandedMap","checkedMap","updatedMap","filterMap","prevFilter","updateTimer","shouldReflow","hasChanged","Object","forEach","key","val","refreshState","item","node","get","TreeNode","value","indexOf","parent","getNode","getParent","parents","getParents","index","getIndex","slice","walk","conf","level","Infinity","nodeModel","getModel","isPlainObject","props","result","every","propEqual","list","push","reflow","clear","removeAll","append","para","data","spec","parseNodeData","appendTo","Array","isArray","updateRelated","insertBefore","insertAfter","length","prototype","apply","update","updateChecked","updated","set","setTimeout","clearTimeout","refreshNodes","emit","lockFilterPathNodes","updatedList","from","updatedNodes","map","getNodes","isActived","resetActived","setActived","actived","getActived","relatedNodes","getRelatedNodes","expanded","getExpanded","added","difference","removed","setExpandedDirectly","updateExpanded","setExpanded","afterExpanded","withParents","isChecked","isLeaf","resetChecked","setChecked","childrenNodes","childNode","checked","getChecked","remove","related","concat","relatedNode","values","name","state","methodName","camelCase","method","allNodes","lock","reverse","vmIsRest","visible","filterPathValues"],"mappings":"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"}
1
+ {"version":3,"file":"tree-store.js","sources":["../../../../src/_common/js/tree/tree-store.ts"],"sourcesContent":["import difference from 'lodash/difference';\nimport camelCase from 'lodash/camelCase';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { TreeNode } from './tree-node';\nimport {\n TreeNodeValue,\n TypeIdMap,\n TypeTimer,\n TypeTargetNode,\n TypeTreeNodeData,\n TypeTreeStoreOptions,\n TypeTreeFilter,\n TypeTreeFilterOptions,\n TypeRelatedNodesOptions,\n TypeTreeEventState,\n} from './types';\n\n// 构建一个树的数据模型\n// 基本设计思想:写入时更新,减少读取消耗,以减少未来实现虚拟滚动所需的计算量\n// 任何一次数据写入,会触发相应节点的状态更新\nexport class TreeStore {\n // 根节点集合\n public children: TreeNode[];\n\n // 所有节点集合\n public nodes: TreeNode[];\n\n // 所有节点映射\n public nodeMap: Map<TreeNodeValue, TreeNode>;\n\n // 配置选项\n public config: TypeTreeStoreOptions;\n\n // 活动节点集合\n public activedMap: TypeIdMap;\n\n // 数据被更新的节点集合\n public updatedMap: TypeIdMap;\n\n // 选中节点集合\n public checkedMap: TypeIdMap;\n\n // 展开节点的集合\n public expandedMap: TypeIdMap;\n\n // 符合过滤条件的节点的集合\n public filterMap: TypeIdMap;\n\n // 数据更新计时器\n public updateTimer: TypeTimer;\n\n // 识别是否需要重排\n public shouldReflow: boolean;\n\n // 树节点过滤器\n public prevFilter: TypeTreeFilter;\n\n public constructor(options: TypeTreeStoreOptions) {\n const config: TypeTreeStoreOptions = {\n prefix: 't',\n keys: {},\n expandAll: false,\n expandLevel: 0,\n expandMutex: false,\n expandParent: false,\n activable: false,\n activeMultiple: false,\n checkable: false,\n checkStrictly: false,\n disabled: false,\n load: null,\n lazy: false,\n valueMode: 'onlyLeaf',\n filter: null,\n onLoad: null,\n onReflow: null,\n onUpdate: null,\n allowFoldNodeOnFilter: false,\n ...options,\n };\n this.config = config;\n this.nodes = [];\n this.children = [];\n this.nodeMap = new Map();\n this.activedMap = new Map();\n this.expandedMap = new Map();\n this.checkedMap = new Map();\n this.updatedMap = new Map();\n this.filterMap = new Map();\n this.prevFilter = null;\n // 这个计时器确保频繁的 update 事件被归纳为1次完整数据更新后的触发\n this.updateTimer = null;\n // 在子节点增删改查时,将此属性设置为 true,来触发视图更新\n this.shouldReflow = false;\n }\n\n // 配置选项\n public setConfig(options: TypeTreeStoreOptions) {\n let hasChanged = false;\n Object.keys(options).forEach((key) => {\n const val = options[key];\n if (val !== this.config[key]) {\n hasChanged = true;\n this.config[key] = val;\n }\n });\n if (hasChanged) {\n // 在 td-tree 的 render 方法中调用 setConfig\n // 这样减少了 watch 属性\n // 仅在属性变更后刷新状态\n // 这样可以避免触发渲染死循环\n this.refreshState();\n }\n }\n\n // 获取根孩子节点列表\n public getChildren() {\n return this.children;\n }\n\n // 获取节点对象\n public getNode(item: TypeTargetNode): TreeNode {\n let node = null;\n if (typeof item === 'string' || typeof item === 'number') {\n node = this.nodeMap.get(item);\n } else if (item instanceof TreeNode) {\n node = this.nodeMap.get(item.value);\n }\n return node;\n }\n\n // 获取节点在总节点列表中的位置\n public getIndex(node: TreeNode): number {\n return this.nodes.indexOf(node);\n }\n\n // 获取指定节点的父节点\n public getParent(value: TypeTargetNode): TreeNode {\n let parent = null;\n const node = this.getNode(value);\n if (node) {\n parent = node.getParent();\n }\n return parent;\n }\n\n // 获取指定节点的所有父节点\n public getParents(value: TypeTargetNode): TreeNode[] {\n const node = this.getNode(value);\n let parents: TreeNode[] = [];\n if (node) {\n parents = node.getParents();\n }\n return parents;\n }\n\n // 获取指定节点在其所在 children 中的位置\n public getNodeIndex(value: TypeTargetNode): number {\n const node = this.getNode(value);\n let index = -1;\n if (node) {\n index = node.getIndex();\n }\n return index;\n }\n\n // 获取所有符合条件的节点\n public getNodes(\n item?: TypeTargetNode,\n options?: TypeTreeFilterOptions,\n ): TreeNode[] {\n let nodes: TreeNode[] = [];\n let val: TreeNodeValue = '';\n if (typeof item === 'string' || typeof item === 'number') {\n val = item;\n } else if (item instanceof TreeNode) {\n val = item.value;\n }\n if (!val) {\n nodes = this.nodes.slice(0);\n } else {\n const node = this.getNode(val);\n if (node) {\n nodes = node.walk();\n }\n }\n\n if (options) {\n const conf: TypeTreeFilterOptions = {\n filter: null,\n level: Infinity,\n ...options,\n };\n if (typeof conf.level === 'number' && conf.level !== Infinity) {\n nodes = nodes.filter((node) => node.level <= conf.level);\n }\n if (typeof conf.filter === 'function') {\n nodes = nodes.filter((node) => {\n const nodeModel = node.getModel();\n return conf.filter(nodeModel);\n });\n }\n if (isPlainObject(conf.props)) {\n nodes = nodes.filter((node) => {\n const result = Object.keys(conf.props).every((key) => {\n const propEqual = node[key] === conf.props[key];\n return propEqual;\n });\n return result;\n });\n }\n }\n return nodes;\n }\n\n // 给树添加节点数据\n public append(list: TypeTreeNodeData[]): void {\n list.forEach((item) => {\n const node = new TreeNode(this, item);\n this.children.push(node);\n });\n this.reflow();\n }\n\n // 重新加载数据\n public reload(list: TypeTreeNodeData[]): void {\n this.expandedMap.clear();\n this.checkedMap.clear();\n this.activedMap.clear();\n this.filterMap.clear();\n this.removeAll();\n this.append(list);\n }\n\n // 解析节点数据,适配多种节点类型\n public parseNodeData(\n para: TreeNodeValue | TreeNode | TypeTreeNodeData,\n item: TypeTreeNodeData | TypeTreeNodeData[] | TreeNode,\n ) {\n let value: TreeNodeValue = '';\n let node = null;\n let data = null;\n\n if (typeof para === 'string' || typeof para === 'number') {\n value = para;\n data = item;\n node = this.getNode(value);\n } else if (para instanceof TreeNode) {\n node = para;\n data = item;\n } else {\n data = para;\n }\n const spec = {\n node,\n data,\n };\n return spec;\n }\n\n /**\n * 向指定节点追加节点或者数据\n * 支持下列使用方式\n * item: 节点数据, TreeNode: 节点实例, value: 节点值(ID)\n * appendNodes(item)\n * appendNodes(TreeNode)\n * appendNodes(value, item)\n * appendNodes(value, TreeNode)\n * appendNodes(TreeNode, item)\n * appendNodes(TreeNode, TreeNode)\n */\n public appendNodes(\n para?: TypeTargetNode | TypeTreeNodeData,\n item?: TypeTreeNodeData | TreeNode,\n ): void {\n const spec = this.parseNodeData(para, item);\n if (spec.data) {\n if (!spec.node) {\n // 在根节点插入\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this);\n } else if (Array.isArray(spec.data)) {\n this.append(spec.data);\n } else {\n this.append([spec.data]);\n }\n } else {\n // 插入到目标节点之下\n if (spec.data instanceof TreeNode) {\n spec.data.appendTo(this, spec.node);\n } else if (Array.isArray(spec.data)) {\n spec.node.append(spec.data);\n } else {\n spec.node.append([spec.data]);\n }\n spec.node.updateRelated();\n }\n }\n }\n\n // 在目标节点之前插入节点\n public insertBefore(value: TypeTargetNode, item: TypeTreeNodeData): void {\n const node = this.getNode(value);\n if (node) {\n node.insertBefore(item);\n }\n }\n\n // 在目标节点之后插入节点\n public insertAfter(value: TypeTargetNode, item: TypeTreeNodeData): void {\n const node = this.getNode(value);\n if (node) {\n node.insertAfter(item);\n }\n }\n\n // 更新树结构\n // 清空 nodes 数组,然后遍历所有根节点重新插入 node\n public refreshNodes(): void {\n const { children, nodes } = this;\n nodes.length = 0;\n children.forEach((node) => {\n const list = node.walk();\n Array.prototype.push.apply(nodes, list);\n });\n }\n\n // 更新所有树节点状态\n public refreshState(): void {\n const { nodes } = this;\n nodes.forEach((node) => {\n node.update();\n node.updateChecked();\n });\n }\n\n // 节点重排\n // 应该仅在树节点增删改查时调用\n public reflow(node?: TreeNode): void {\n this.shouldReflow = true;\n this.updated(node);\n }\n\n // 触发更新事件\n // 节点属性变更时调用\n public updated(node?: TreeNode): void {\n if (node?.value) {\n this.updatedMap.set(node.value, true);\n }\n if (this.updateTimer) return;\n this.updateTimer = +setTimeout(() => {\n clearTimeout(this.updateTimer);\n this.updateTimer = null;\n\n // 检查节点是否需要回流,重排数组\n if (this.shouldReflow) {\n this.refreshNodes();\n this.emit('reflow');\n }\n\n // 检查节点是否有被过滤,锁定路径节点\n // 在此之前要遍历节点生成一个经过排序的节点数组\n // 以便于优化锁定检查算法\n if (!this.config?.allowFoldNodeOnFilter) this.lockFilterPathNodes();\n\n const updatedList = Array.from(this.updatedMap.keys());\n if (updatedList.length > 0) {\n // 统计需要更新状态的节点,派发更新事件\n const updatedNodes = updatedList.map((value) => this.getNode(value));\n this.emit('update', {\n nodes: updatedNodes,\n map: this.updatedMap,\n });\n } else if (this.shouldReflow) {\n // 单纯的回流不需要更新节点状态\n // 但需要触发更新事件\n this.emit('update', {\n nodes: [],\n map: this.updatedMap,\n });\n }\n\n // 每次回流检查完毕,还原检查状态\n this.shouldReflow = false;\n this.updatedMap.clear();\n });\n }\n\n // 获取激活节点集合\n public getActived(map?: TypeIdMap): TreeNodeValue[] {\n const activedMap = map || this.activedMap;\n return Array.from(activedMap.keys());\n }\n\n // 获取指定范围的高亮节点\n public getActivedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isActived());\n return nodes;\n }\n\n // 替换激活态\n public replaceActived(list: TreeNodeValue[]): void {\n this.resetActived();\n this.setActived(list);\n }\n\n // 设置激活态\n public setActived(actived: TreeNodeValue[]): void {\n const { activeMultiple } = this.config;\n const list = actived.slice(0);\n if (!activeMultiple) {\n list.length = 1;\n }\n list.forEach((val) => {\n this.activedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.update();\n }\n });\n }\n\n // 重置激活态\n public resetActived(): void {\n const actived = this.getActived();\n this.activedMap.clear();\n const relatedNodes = this.getRelatedNodes(actived);\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n // 获取展开节点集合\n public getExpanded(map?: TypeIdMap): TreeNodeValue[] {\n const expandedMap = map || this.expandedMap;\n return Array.from(expandedMap.keys());\n }\n\n // 替换展开节点\n public replaceExpanded(list: TreeNodeValue[]): void {\n const expanded = this.getExpanded();\n const added = difference(list, expanded);\n const removed = difference(expanded, list);\n this.setExpandedDirectly(removed, false);\n this.updateExpanded(removed);\n this.setExpanded(added);\n }\n\n // 批量设置展开节点\n public setExpanded(list: TreeNodeValue[]): void {\n this.setExpandedDirectly(list);\n this.updateExpanded(list);\n }\n\n // 直接设置展开节点数据,不更新节点状态\n public setExpandedDirectly(list: TreeNodeValue[], expanded = true): void {\n list.forEach((val) => {\n if (expanded) {\n this.expandedMap.set(val, true);\n const node = this.getNode(val);\n if (node) {\n node.afterExpanded();\n }\n } else {\n this.expandedMap.delete(val);\n }\n });\n }\n\n // 清除所有展开节点\n public resetExpanded(): void {\n const expanded = this.getExpanded();\n this.expandedMap.clear();\n this.updateExpanded(expanded);\n }\n\n // 更新展开节点相关节点的状态\n public updateExpanded(list: TreeNodeValue[]): void {\n const relatedNodes = this.getRelatedNodes(list, {\n withParents: false,\n });\n relatedNodes.forEach((node) => {\n node.update();\n });\n }\n\n // 获取选中态节点 value 数组\n public getChecked(map?: TypeIdMap): TreeNodeValue[] {\n const { nodes, config } = this;\n const { valueMode, checkStrictly } = config;\n const list: TreeNodeValue[] = [];\n const checkedMap = map || this.checkedMap;\n nodes.forEach((node) => {\n if (node.isChecked(checkedMap)) {\n if (valueMode === 'parentFirst' && !checkStrictly) {\n if (!node.parent || !node.parent.isChecked(checkedMap)) {\n list.push(node.value);\n }\n } else if (valueMode === 'onlyLeaf' && !checkStrictly) {\n if (node.isLeaf()) {\n list.push(node.value);\n }\n } else {\n list.push(node.value);\n }\n }\n });\n return list;\n }\n\n // 获取指定节点下的选中节点\n public getCheckedNodes(item?: TypeTargetNode): TreeNode[] {\n let nodes = this.getNodes(item);\n nodes = nodes.filter((node) => node.isChecked());\n return nodes;\n }\n\n // 替换选中态列表\n public replaceChecked(list: TreeNodeValue[]): void {\n this.resetChecked();\n this.setChecked(list, true);\n }\n\n // 批量设置选中态\n public setChecked(list: TreeNodeValue[], isFromValueChange?: boolean): void {\n const { valueMode, checkStrictly, checkable } = this.config;\n if (!checkable) return;\n list.forEach((val: TreeNodeValue) => {\n const node = this.getNode(val);\n if (node) {\n if (valueMode === 'parentFirst' && !checkStrictly) {\n const childrenNodes = node.walk();\n childrenNodes.forEach((childNode) => {\n this.checkedMap.set(childNode.value, true);\n });\n } else {\n this.checkedMap.set(val, true);\n node.updateChecked(isFromValueChange);\n }\n }\n });\n if (!checkStrictly) {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n }\n\n // 清除所有选中节点\n public resetChecked(): void {\n const checked = this.getChecked();\n const relatedNodes = this.getRelatedNodes(checked);\n this.checkedMap.clear();\n relatedNodes.forEach((node) => {\n node.updateChecked();\n });\n }\n\n // 更新全部节点状态\n public updateAll(): void {\n const nodes = this.getNodes();\n nodes.forEach((node) => {\n node.update();\n });\n }\n\n // 移除指定节点\n public remove(value?: TypeTargetNode): void {\n const node = this.getNode(value);\n if (node) {\n node.remove();\n }\n }\n\n // 清空所有节点\n public removeAll(): void {\n const nodes = this.getNodes();\n nodes.forEach((node) => {\n node.remove();\n });\n }\n\n // 获取节点状态变化可能影响的周边节点\n // 实现最小遍历集合\n public getRelatedNodes(\n list: TreeNodeValue[],\n options?: TypeRelatedNodesOptions,\n ): TreeNode[] {\n const conf = {\n withParents: true,\n ...options,\n };\n const map = new Map();\n list.forEach((value) => {\n if (map.get(value)) return;\n const node = this.getNode(value);\n if (node) {\n const parents = node.getParents();\n const children = node.walk();\n let related = [];\n if (conf.withParents) {\n related = parents.concat(children);\n } else {\n related = children;\n }\n related.forEach((relatedNode) => {\n map.set(relatedNode.value, relatedNode);\n });\n }\n });\n const relatedNodes = Array.from(map.values());\n return relatedNodes;\n }\n\n // 触发绑定的事件\n public emit(name: string, state?: TypeTreeEventState): void {\n const config = this.config || {};\n const methodName = camelCase(`on-${name}`);\n const method = config[methodName];\n if (typeof method === 'function') {\n method(state);\n }\n }\n\n // 锁定过滤节点的路径节点\n // 使得路径节点展开,可见,且不可操作\n public lockFilterPathNodes() {\n const { config } = this;\n const allNodes = this.getNodes();\n\n // 如果之前有进行过滤,则先解锁所有节点\n if (this.prevFilter) {\n allNodes.forEach((node: TreeNode) => {\n node.lock(false);\n });\n }\n\n // 当前没有过滤器\n // 则无需处理锁定节点\n if (!config.filter) {\n return;\n }\n this.prevFilter = config.filter;\n\n // 构造路径节点map\n const map = new Map();\n\n // 全部节点要经过排序,才能使用这个算法\n // 比起每个过滤节点调用 getParents 方法检查父节点状态\n // 算法复杂度 O(N*log(N)) => O(N)\n allNodes.reverse().forEach((item: TreeNode) => {\n const node = item;\n\n // 被过滤节点父节点固定为展开状态\n const parent = node.getParent();\n if (node.vmIsRest) {\n if (parent) {\n // 被过滤节点的父节点固定为展开状态\n parent.expanded = true;\n }\n // 被过滤节点固定为展示状态\n node.visible = true;\n }\n if (node.vmIsRest || map.get(node.value)) {\n if (parent && !parent.vmIsRest) {\n map.set(parent.value, true);\n }\n }\n });\n\n // 锁定路径节点展示样式\n const filterPathValues = Array.from(map.keys());\n filterPathValues.forEach((value: TreeNodeValue) => {\n const node = this.getNode(value);\n if (node) {\n node.lock(true);\n }\n });\n }\n}\n\nexport default TreeStore;\n"],"names":["TreeStore","options","config","prefix","keys","expandAll","expandLevel","expandMutex","expandParent","activable","activeMultiple","checkable","checkStrictly","disabled","load","lazy","valueMode","filter","onLoad","onReflow","onUpdate","allowFoldNodeOnFilter","nodes","children","nodeMap","Map","activedMap","expandedMap","checkedMap","updatedMap","filterMap","prevFilter","updateTimer","shouldReflow","hasChanged","Object","forEach","key","val","refreshState","item","node","get","TreeNode","value","indexOf","parent","getNode","getParent","parents","getParents","index","getIndex","slice","walk","conf","level","Infinity","nodeModel","getModel","isPlainObject","props","result","every","propEqual","list","push","reflow","clear","removeAll","append","para","data","spec","parseNodeData","appendTo","Array","isArray","updateRelated","insertBefore","insertAfter","length","prototype","apply","update","updateChecked","updated","set","setTimeout","clearTimeout","refreshNodes","emit","lockFilterPathNodes","updatedList","from","updatedNodes","map","getNodes","isActived","resetActived","setActived","actived","getActived","relatedNodes","getRelatedNodes","expanded","getExpanded","added","difference","removed","setExpandedDirectly","updateExpanded","setExpanded","afterExpanded","withParents","isChecked","isLeaf","resetChecked","setChecked","isFromValueChange","childrenNodes","childNode","checked","getChecked","remove","related","concat","relatedNode","values","name","state","methodName","camelCase","method","allNodes","lock","reverse","vmIsRest","visible","filterPathValues"],"mappings":"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"}
@@ -31,7 +31,7 @@ function xhr(_ref) {
31
31
  var formData = new FormData();
32
32
  var sendData = typeof data === "function" ? data(file) : data;
33
33
  Object.keys(sendData).forEach(function (key) {
34
- formData.append(key, data[key]);
34
+ formData.append(key, sendData[key]);
35
35
  });
36
36
  innerFiles.forEach(function (f) {
37
37
  formData.append(name, f && f.raw);