amis 1.4.2-beta.6 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/lib/Schema.d.ts +11 -3
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/Alert2.d.ts +26 -21
  4. package/lib/components/Alert2.js +11 -4
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.js +2 -2
  14. package/lib/components/Badge.js.map +2 -2
  15. package/lib/components/Button.js +1 -1
  16. package/lib/components/Button.js.map +2 -2
  17. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  18. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  19. package/lib/components/ChainedSelection.js.map +13 -0
  20. package/lib/components/Checkbox.d.ts +20 -20
  21. package/lib/components/Collapse.d.ts +51 -23
  22. package/lib/components/Collapse.js +70 -11
  23. package/lib/components/Collapse.js.map +2 -2
  24. package/lib/components/CollapseGroup.d.ts +88 -0
  25. package/lib/components/CollapseGroup.js +81 -0
  26. package/lib/components/CollapseGroup.js.map +13 -0
  27. package/lib/components/ColorPicker.d.ts +89 -85
  28. package/lib/components/ColorPicker.js +17 -4
  29. package/lib/components/ColorPicker.js.map +2 -2
  30. package/lib/components/DatePicker.d.ts +84 -84
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/Drawer.js +2 -2
  33. package/lib/components/Drawer.js.map +2 -2
  34. package/lib/components/Editor.d.ts +84 -84
  35. package/lib/components/GridNav.d.ts +52 -0
  36. package/lib/components/GridNav.js +123 -0
  37. package/lib/components/GridNav.js.map +13 -0
  38. package/lib/components/GroupedSelection.d.ts +907 -0
  39. package/lib/components/GroupedSelection.js +48 -0
  40. package/lib/components/GroupedSelection.js.map +13 -0
  41. package/lib/components/InputBox.d.ts +22 -21
  42. package/lib/components/InputBox.js +10 -2
  43. package/lib/components/InputBox.js.map +2 -2
  44. package/lib/components/Link.d.ts +29 -36
  45. package/lib/components/Link.js +14 -15
  46. package/lib/components/Link.js.map +2 -2
  47. package/lib/components/ListGroup.d.ts +21 -21
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/NumberInput.d.ts +20 -20
  52. package/lib/components/Overlay.js +5 -0
  53. package/lib/components/Overlay.js.map +2 -2
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/PopOver.d.ts +1 -0
  61. package/lib/components/PopOver.js +12 -1
  62. package/lib/components/PopOver.js.map +2 -2
  63. package/lib/components/Progress.d.ts +85 -0
  64. package/lib/components/Progress.js +81 -0
  65. package/lib/components/Progress.js.map +13 -0
  66. package/lib/components/Radios.d.ts +22 -21
  67. package/lib/components/Radios.js +1 -0
  68. package/lib/components/Radios.js.map +2 -2
  69. package/lib/components/Rating.d.ts +21 -21
  70. package/lib/components/ResultBox.d.ts +84 -84
  71. package/lib/components/ResultBox.js +10 -2
  72. package/lib/components/ResultBox.js.map +2 -2
  73. package/lib/components/SearchBox.d.ts +84 -84
  74. package/lib/components/Select.d.ts +245 -237
  75. package/lib/components/Select.js +25 -4
  76. package/lib/components/Select.js.map +2 -2
  77. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  78. package/lib/components/Selection.js +134 -0
  79. package/lib/components/Selection.js.map +13 -0
  80. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  81. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  82. package/lib/components/TableSelection.js.map +13 -0
  83. package/lib/components/Tabs.d.ts +20 -20
  84. package/lib/components/TabsTransfer.d.ts +84 -84
  85. package/lib/components/TabsTransfer.js +9 -9
  86. package/lib/components/TabsTransfer.js.map +2 -2
  87. package/lib/components/TabsTransferPicker.d.ts +489 -0
  88. package/lib/components/TabsTransferPicker.js +60 -0
  89. package/lib/components/TabsTransferPicker.js.map +13 -0
  90. package/lib/components/Toast.d.ts +90 -87
  91. package/lib/components/Toast.js +15 -5
  92. package/lib/components/Toast.js.map +2 -2
  93. package/lib/components/Transfer.d.ts +908 -274
  94. package/lib/components/Transfer.js +31 -24
  95. package/lib/components/Transfer.js.map +2 -2
  96. package/lib/components/TransferDropDown.d.ts +488 -0
  97. package/lib/components/TransferDropDown.js +59 -0
  98. package/lib/components/TransferDropDown.js.map +13 -0
  99. package/lib/components/TransferPicker.d.ts +493 -0
  100. package/lib/components/TransferPicker.js +60 -0
  101. package/lib/components/TransferPicker.js.map +13 -0
  102. package/lib/components/Tree.d.ts +115 -84
  103. package/lib/components/Tree.js +183 -30
  104. package/lib/components/Tree.js.map +2 -2
  105. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  106. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  107. package/lib/components/TreeSelection.js.map +13 -0
  108. package/lib/components/condition-builder/Field.js +4 -2
  109. package/lib/components/condition-builder/Field.js.map +2 -2
  110. package/lib/components/condition-builder/Func.js +2 -2
  111. package/lib/components/condition-builder/Func.js.map +2 -2
  112. package/lib/components/condition-builder/InputSwitch.js +2 -2
  113. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  114. package/lib/components/condition-builder/Item.js +3 -3
  115. package/lib/components/condition-builder/Item.js.map +2 -2
  116. package/lib/components/icons.js +10 -0
  117. package/lib/components/icons.js.map +2 -2
  118. package/lib/components/index.d.ts +8 -8
  119. package/lib/components/index.js +16 -16
  120. package/lib/components/index.js.map +2 -2
  121. package/lib/envOverwrite.d.ts +1 -1
  122. package/lib/envOverwrite.js +24 -9
  123. package/lib/envOverwrite.js.map +2 -2
  124. package/lib/factory.d.ts +15 -1
  125. package/lib/factory.js +35 -6
  126. package/lib/factory.js.map +2 -2
  127. package/lib/helper.css.map +1 -1
  128. package/lib/hooks/index.d.ts +5 -0
  129. package/lib/hooks/index.js +14 -0
  130. package/lib/hooks/index.js.map +13 -0
  131. package/lib/hooks/use-set-state.d.ts +2 -0
  132. package/lib/hooks/use-set-state.js +15 -0
  133. package/lib/hooks/use-set-state.js.map +13 -0
  134. package/lib/hooks/use-touch.d.ts +16 -0
  135. package/lib/hooks/use-touch.js +73 -0
  136. package/lib/hooks/use-touch.js.map +13 -0
  137. package/lib/hooks/use-update-effect.d.ts +3 -0
  138. package/lib/hooks/use-update-effect.js +17 -0
  139. package/lib/hooks/use-update-effect.js.map +13 -0
  140. package/lib/icons/alert-danger.js +7 -0
  141. package/lib/icons/alert-info.js +7 -0
  142. package/lib/icons/alert-success.js +7 -0
  143. package/lib/icons/alert-warning.js +7 -0
  144. package/lib/icons/download.js +7 -0
  145. package/lib/icons/drag-bar.js +10 -3
  146. package/lib/index.d.ts +5 -0
  147. package/lib/index.js +6 -1
  148. package/lib/index.js.map +2 -2
  149. package/lib/locale/de-DE.js +2 -0
  150. package/lib/locale/de-DE.js.map +2 -2
  151. package/lib/locale/en-US.js +3 -0
  152. package/lib/locale/en-US.js.map +2 -2
  153. package/lib/locale/zh-CN.js +5 -2
  154. package/lib/locale/zh-CN.js.map +2 -2
  155. package/lib/renderers/Action.d.ts +10 -5
  156. package/lib/renderers/Action.js +23 -5
  157. package/lib/renderers/Action.js.map +2 -2
  158. package/lib/renderers/Alert.d.ts +21 -1
  159. package/lib/renderers/Alert.js.map +2 -2
  160. package/lib/renderers/AnchorNav.d.ts +1 -0
  161. package/lib/renderers/AnchorNav.js +2 -2
  162. package/lib/renderers/AnchorNav.js.map +2 -2
  163. package/lib/renderers/Avatar.js +3 -3
  164. package/lib/renderers/Avatar.js.map +2 -2
  165. package/lib/renderers/Breadcrumb.js +1 -1
  166. package/lib/renderers/Breadcrumb.js.map +2 -2
  167. package/lib/renderers/CRUD.d.ts +5 -0
  168. package/lib/renderers/CRUD.js +25 -4
  169. package/lib/renderers/CRUD.js.map +2 -2
  170. package/lib/renderers/Card.d.ts +5 -0
  171. package/lib/renderers/Card.js +34 -23
  172. package/lib/renderers/Card.js.map +2 -2
  173. package/lib/renderers/Collapse.d.ts +25 -20
  174. package/lib/renderers/Collapse.js +10 -72
  175. package/lib/renderers/Collapse.js.map +2 -2
  176. package/lib/renderers/CollapseGroup.d.ts +42 -0
  177. package/lib/renderers/CollapseGroup.js +33 -0
  178. package/lib/renderers/CollapseGroup.js.map +13 -0
  179. package/lib/renderers/Form/ConditionBuilder.js +2 -2
  180. package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
  181. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  182. package/lib/renderers/Form/Editor.d.ts +3 -2
  183. package/lib/renderers/Form/InputCity.d.ts +84 -84
  184. package/lib/renderers/Form/InputCity.js +7 -6
  185. package/lib/renderers/Form/InputCity.js.map +2 -2
  186. package/lib/renderers/Form/InputColor.d.ts +86 -85
  187. package/lib/renderers/Form/InputColor.js +1 -1
  188. package/lib/renderers/Form/InputColor.js.map +2 -2
  189. package/lib/renderers/Form/InputFile.d.ts +6 -0
  190. package/lib/renderers/Form/InputFile.js +28 -8
  191. package/lib/renderers/Form/InputFile.js.map +2 -2
  192. package/lib/renderers/Form/InputImage.js +11 -4
  193. package/lib/renderers/Form/InputImage.js.map +2 -2
  194. package/lib/renderers/Form/Item.d.ts +1 -1
  195. package/lib/renderers/Form/Item.js +2 -1
  196. package/lib/renderers/Form/Item.js.map +2 -2
  197. package/lib/renderers/Form/Options.js +25 -4
  198. package/lib/renderers/Form/Options.js.map +2 -2
  199. package/lib/renderers/Form/Select.d.ts +42 -4
  200. package/lib/renderers/Form/Select.js +37 -3
  201. package/lib/renderers/Form/Select.js.map +2 -2
  202. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  203. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  204. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  205. package/lib/renderers/Form/Transfer.js +18 -3
  206. package/lib/renderers/Form/Transfer.js.map +2 -2
  207. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  208. package/lib/renderers/Form/TransferPicker.js +43 -0
  209. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  210. package/lib/renderers/Form/TreeSelect.js +2 -2
  211. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  212. package/lib/renderers/Form/index.d.ts +5 -0
  213. package/lib/renderers/Form/index.js +5 -3
  214. package/lib/renderers/Form/index.js.map +2 -2
  215. package/lib/renderers/Form/wrapControl.js +13 -1
  216. package/lib/renderers/Form/wrapControl.js.map +2 -2
  217. package/lib/renderers/GridNav.d.ts +99 -0
  218. package/lib/renderers/GridNav.js +82 -0
  219. package/lib/renderers/GridNav.js.map +13 -0
  220. package/lib/renderers/IFrame.js +1 -3
  221. package/lib/renderers/IFrame.js.map +2 -2
  222. package/lib/renderers/Image.js +7 -5
  223. package/lib/renderers/Image.js.map +2 -2
  224. package/lib/renderers/Json.d.ts +4 -0
  225. package/lib/renderers/Json.js +4 -13
  226. package/lib/renderers/Json.js.map +2 -2
  227. package/lib/renderers/Link.d.ts +4 -2
  228. package/lib/renderers/Link.js +15 -8
  229. package/lib/renderers/Link.js.map +2 -2
  230. package/lib/renderers/List.js +1 -1
  231. package/lib/renderers/List.js.map +2 -2
  232. package/lib/renderers/Nav.d.ts +21 -21
  233. package/lib/renderers/Nav.js +37 -19
  234. package/lib/renderers/Nav.js.map +2 -2
  235. package/lib/renderers/Page.d.ts +18 -0
  236. package/lib/renderers/Page.js +53 -9
  237. package/lib/renderers/Page.js.map +2 -2
  238. package/lib/renderers/Portlet.d.ts +125 -0
  239. package/lib/renderers/Portlet.js +156 -0
  240. package/lib/renderers/Portlet.js.map +13 -0
  241. package/lib/renderers/Progress.d.ts +23 -3
  242. package/lib/renderers/Progress.js +15 -19
  243. package/lib/renderers/Progress.js.map +2 -2
  244. package/lib/renderers/Property.js +1 -1
  245. package/lib/renderers/Property.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.js +1 -1
  247. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  248. package/lib/renderers/Table/TableContent.d.ts +4 -1
  249. package/lib/renderers/Table/TableContent.js +21 -1
  250. package/lib/renderers/Table/TableContent.js.map +2 -2
  251. package/lib/renderers/Table/index.d.ts +5 -1
  252. package/lib/renderers/Table/index.js +65 -30
  253. package/lib/renderers/Table/index.js.map +2 -2
  254. package/lib/renderers/Tabs.js +9 -1
  255. package/lib/renderers/Tabs.js.map +2 -2
  256. package/lib/renderers/WebComponent.js +1 -1
  257. package/lib/renderers/WebComponent.js.map +2 -2
  258. package/lib/store/combo.d.ts +2 -2
  259. package/lib/store/form.d.ts +1 -1
  260. package/lib/store/form.js +3 -5
  261. package/lib/store/form.js.map +2 -2
  262. package/lib/store/formItem.js +44 -4
  263. package/lib/store/formItem.js.map +2 -2
  264. package/lib/store/table.d.ts +3 -2
  265. package/lib/store/table.js +35 -12
  266. package/lib/store/table.js.map +2 -2
  267. package/lib/themes/ang-ie11.css +934 -222
  268. package/lib/themes/ang.css +934 -222
  269. package/lib/themes/ang.css.map +1 -1
  270. package/lib/themes/antd-ie11.css +934 -222
  271. package/lib/themes/antd.css +934 -222
  272. package/lib/themes/antd.css.map +1 -1
  273. package/lib/themes/cxd-ie11.css +970 -260
  274. package/lib/themes/cxd.css +970 -260
  275. package/lib/themes/cxd.css.map +1 -1
  276. package/lib/themes/dark-ie11.css +934 -222
  277. package/lib/themes/dark.css +934 -222
  278. package/lib/themes/dark.css.map +1 -1
  279. package/lib/themes/default.css +970 -260
  280. package/lib/themes/default.css.map +1 -1
  281. package/lib/types.d.ts +38 -1
  282. package/lib/types.js +0 -5
  283. package/lib/types.js.map +2 -2
  284. package/lib/utils/api.d.ts +3 -2
  285. package/lib/utils/api.js +90 -17
  286. package/lib/utils/api.js.map +2 -2
  287. package/lib/utils/dom.d.ts +4 -0
  288. package/lib/utils/dom.js +11 -1
  289. package/lib/utils/dom.js.map +2 -2
  290. package/lib/utils/helper.d.ts +12 -23
  291. package/lib/utils/helper.js +62 -166
  292. package/lib/utils/helper.js.map +2 -2
  293. package/lib/utils/tpl-builtin.d.ts +2 -20
  294. package/lib/utils/tpl-builtin.js +25 -743
  295. package/lib/utils/tpl-builtin.js.map +2 -2
  296. package/lib/utils/tpl.js +24 -0
  297. package/lib/utils/tpl.js.map +2 -2
  298. package/package.json +5 -2
  299. package/schema.json +3966 -1263
  300. package/scss/_mixins.scss +1 -3
  301. package/scss/_properties.scss +42 -13
  302. package/scss/base/_common.scss +3 -0
  303. package/scss/base/_normalize.scss +2 -0
  304. package/scss/components/_alert.scss +28 -5
  305. package/scss/components/_anchor-nav.scss +89 -29
  306. package/scss/components/_button.scss +12 -0
  307. package/scss/components/_card.scss +9 -15
  308. package/scss/components/_collapse-group.scss +15 -0
  309. package/scss/components/_collapse.scss +48 -23
  310. package/scss/components/_grid-nav.scss +128 -0
  311. package/scss/components/_images.scss +1 -0
  312. package/scss/components/_input-box.scss +1 -0
  313. package/scss/components/_nav.scss +2 -7
  314. package/scss/components/_page.scss +35 -2
  315. package/scss/components/_picker-columns.scss +124 -0
  316. package/scss/components/_popover.scss +13 -0
  317. package/scss/components/_portlet.scss +51 -0
  318. package/scss/components/_progress.scss +141 -33
  319. package/scss/components/_result-box.scss +1 -0
  320. package/scss/components/_spinner.scss +5 -4
  321. package/scss/components/_status.scss +1 -1
  322. package/scss/components/_table.scss +32 -0
  323. package/scss/components/_toast.scss +41 -11
  324. package/scss/components/form/_checks.scss +0 -351
  325. package/scss/components/form/_color.scss +32 -3
  326. package/scss/components/form/_combo.scss +4 -0
  327. package/scss/components/form/_fieldset.scss +6 -1
  328. package/scss/components/form/_file.scss +11 -0
  329. package/scss/components/form/_form.scss +48 -0
  330. package/scss/components/form/_selection.scss +354 -0
  331. package/scss/components/form/_transfer.scss +76 -18
  332. package/scss/components/form/_tree.scss +42 -0
  333. package/scss/themes/_common.scss +6 -0
  334. package/scss/themes/_cxd-variables.scss +13 -6
  335. package/scss/themes/cxd.scss +19 -20
  336. package/sdk/ang-ie11.css +1065 -246
  337. package/sdk/ang.css +1069 -230
  338. package/sdk/antd-ie11.css +1068 -249
  339. package/sdk/antd.css +1069 -230
  340. package/sdk/charts.js +17 -17
  341. package/sdk/color-picker.js +65 -69
  342. package/sdk/cropperjs.js +3 -3
  343. package/sdk/cxd-ie11.css +1081 -268
  344. package/sdk/cxd.css +1116 -279
  345. package/sdk/dark-ie11.css +1069 -250
  346. package/sdk/dark.css +1069 -230
  347. package/sdk/exceljs.js +1 -1
  348. package/sdk/helper.css.map +1 -1
  349. package/sdk/iconfont.svg +2513 -0
  350. package/sdk/iconfont.ttf +0 -0
  351. package/sdk/iconfont.woff +0 -0
  352. package/sdk/locale/de-DE.js +2 -0
  353. package/sdk/markdown.js +69 -69
  354. package/sdk/papaparse.js +1 -1
  355. package/sdk/renderers/Form/CityDB.js +1 -1
  356. package/sdk/rest.js +20 -28
  357. package/sdk/rich-text.js +62 -62
  358. package/sdk/sdk-ie11.css +1081 -268
  359. package/sdk/sdk.css +1116 -279
  360. package/sdk/sdk.js +1371 -1189
  361. package/sdk/thirds/hls.js/hls.js +18 -18
  362. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  363. package/sdk/tinymce.js +57 -57
  364. package/src/Schema.ts +19 -1
  365. package/src/components/Alert2.tsx +32 -4
  366. package/src/components/AnchorNav.tsx +15 -4
  367. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
  368. package/src/components/Badge.tsx +3 -3
  369. package/src/components/Button.tsx +1 -0
  370. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  371. package/src/components/Collapse.tsx +139 -20
  372. package/src/components/CollapseGroup.tsx +130 -0
  373. package/src/components/ColorPicker.tsx +32 -10
  374. package/src/components/Drawer.tsx +8 -6
  375. package/src/components/GridNav.tsx +233 -0
  376. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  377. package/src/components/InputBox.tsx +10 -9
  378. package/src/components/Link.tsx +28 -37
  379. package/src/components/ModalManager.ts +1 -1
  380. package/src/components/Overlay.tsx +6 -0
  381. package/src/components/PickerColumn.tsx +429 -0
  382. package/src/components/PickerContainer.tsx +128 -0
  383. package/src/components/PopOver.tsx +15 -1
  384. package/src/components/Progress.tsx +140 -0
  385. package/src/components/Radios.tsx +3 -8
  386. package/src/components/ResultBox.tsx +9 -9
  387. package/src/components/Select.tsx +57 -5
  388. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  389. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  390. package/src/components/TabsTransfer.tsx +13 -7
  391. package/src/components/TabsTransferPicker.tsx +85 -0
  392. package/src/components/Toast.tsx +48 -21
  393. package/src/components/Transfer.tsx +71 -50
  394. package/src/components/TransferDropDown.tsx +120 -0
  395. package/src/components/TransferPicker.tsx +91 -0
  396. package/src/components/Tree.tsx +194 -8
  397. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  398. package/src/components/condition-builder/Field.tsx +7 -5
  399. package/src/components/condition-builder/Func.tsx +3 -3
  400. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  401. package/src/components/condition-builder/Item.tsx +5 -12
  402. package/src/components/icons.tsx +10 -0
  403. package/src/components/index.tsx +13 -13
  404. package/src/envOverwrite.ts +20 -8
  405. package/src/factory.tsx +70 -9
  406. package/src/hooks/index.ts +5 -0
  407. package/src/hooks/use-set-state.ts +19 -0
  408. package/src/hooks/use-touch.ts +100 -0
  409. package/src/hooks/use-update-effect.ts +16 -0
  410. package/src/icons/alert-danger.svg +1 -0
  411. package/src/icons/alert-info.svg +1 -0
  412. package/src/icons/alert-success.svg +1 -0
  413. package/src/icons/alert-warning.svg +1 -0
  414. package/src/icons/download.svg +4 -0
  415. package/src/icons/drag-bar.svg +12 -6
  416. package/src/index.tsx +5 -0
  417. package/src/locale/de-DE.ts +2 -0
  418. package/src/locale/en-US.ts +3 -0
  419. package/src/locale/zh-CN.ts +5 -2
  420. package/src/renderers/Action.tsx +58 -3
  421. package/src/renderers/Alert.tsx +31 -1
  422. package/src/renderers/AnchorNav.tsx +4 -0
  423. package/src/renderers/Avatar.tsx +8 -4
  424. package/src/renderers/Breadcrumb.tsx +5 -1
  425. package/src/renderers/CRUD.tsx +29 -3
  426. package/src/renderers/Card.tsx +76 -36
  427. package/src/renderers/Collapse.tsx +70 -115
  428. package/src/renderers/CollapseGroup.tsx +80 -0
  429. package/src/renderers/Form/ConditionBuilder.tsx +2 -2
  430. package/src/renderers/Form/InputCity.tsx +4 -8
  431. package/src/renderers/Form/InputColor.tsx +4 -2
  432. package/src/renderers/Form/InputFile.tsx +65 -24
  433. package/src/renderers/Form/InputImage.tsx +11 -3
  434. package/src/renderers/Form/Item.tsx +3 -2
  435. package/src/renderers/Form/Options.tsx +29 -3
  436. package/src/renderers/Form/Select.tsx +162 -21
  437. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  438. package/src/renderers/Form/Transfer.tsx +19 -4
  439. package/src/renderers/Form/TransferPicker.tsx +145 -0
  440. package/src/renderers/Form/TreeSelect.tsx +25 -0
  441. package/src/renderers/Form/index.tsx +15 -2
  442. package/src/renderers/Form/wrapControl.tsx +26 -1
  443. package/src/renderers/GridNav.tsx +204 -0
  444. package/src/renderers/IFrame.tsx +2 -4
  445. package/src/renderers/Image.tsx +19 -15
  446. package/src/renderers/Json.tsx +9 -9
  447. package/src/renderers/Link.tsx +29 -16
  448. package/src/renderers/List.tsx +1 -1
  449. package/src/renderers/Nav.tsx +105 -56
  450. package/src/renderers/Page.tsx +62 -1
  451. package/src/renderers/Portlet.tsx +423 -0
  452. package/src/renderers/Progress.tsx +56 -38
  453. package/src/renderers/Property.tsx +6 -4
  454. package/src/renderers/Table/ColumnToggler.tsx +1 -1
  455. package/src/renderers/Table/TableContent.tsx +40 -2
  456. package/src/renderers/Table/index.tsx +88 -43
  457. package/src/renderers/Tabs.tsx +9 -1
  458. package/src/renderers/WebComponent.tsx +2 -2
  459. package/src/store/form.ts +3 -9
  460. package/src/store/formItem.ts +94 -2
  461. package/src/store/table.ts +55 -14
  462. package/src/types.ts +58 -1
  463. package/src/utils/api.ts +120 -26
  464. package/src/utils/dom.tsx +12 -0
  465. package/src/utils/helper.ts +55 -185
  466. package/src/utils/tpl-builtin.ts +40 -866
  467. package/src/utils/tpl.ts +33 -0
  468. package/tsconfig-for-declaration.json +1 -1
  469. package/dump.rdb +0 -0
  470. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  471. package/lib/components/AssociatedCheckboxes.js +0 -90
  472. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  473. package/lib/components/ChainedCheckboxes.js.map +0 -13
  474. package/lib/components/Checkboxes.js +0 -101
  475. package/lib/components/Checkboxes.js.map +0 -13
  476. package/lib/components/ListCheckboxes.d.ts +0 -739
  477. package/lib/components/ListCheckboxes.js +0 -48
  478. package/lib/components/ListCheckboxes.js.map +0 -13
  479. package/lib/components/ListRadios.d.ts +0 -763
  480. package/lib/components/ListRadios.js +0 -86
  481. package/lib/components/ListRadios.js.map +0 -13
  482. package/lib/components/TableCheckboxes.js.map +0 -13
  483. package/lib/components/TreeCheckboxes.js.map +0 -13
  484. package/lib/components/TreeRadios.d.ts +0 -838
  485. package/lib/components/TreeRadios.js +0 -116
  486. package/lib/components/TreeRadios.js.map +0 -13
  487. package/src/components/ListRadios.tsx +0 -159
  488. package/src/components/TreeRadios.tsx +0 -202
@@ -21,6 +21,11 @@ var TreeSelector = /** @class */ (function (_super) {
21
21
  function TreeSelector(props) {
22
22
  var _this = _super.call(this, props) || this;
23
23
  _this.unfolded = new WeakMap();
24
+ _this.startPoint = {
25
+ x: 0,
26
+ y: 0
27
+ };
28
+ _this.root = react_1.default.createRef();
24
29
  _this.state = {
25
30
  value: (0, Select_1.value2array)(props.value, {
26
31
  multiple: props.multiple,
@@ -34,7 +39,8 @@ var TreeSelector = /** @class */ (function (_super) {
34
39
  addingParent: null,
35
40
  isAdding: false,
36
41
  isEditing: false,
37
- editingItem: null
42
+ editingItem: null,
43
+ dropIndicator: undefined
38
44
  };
39
45
  _this.syncUnFolded(props);
40
46
  return _this;
@@ -349,9 +355,121 @@ var TreeSelector = /** @class */ (function (_super) {
349
355
  react_1.default.createElement("a", { "data-tooltip": __('confirm'), onClick: this.handleConfirm },
350
356
  react_1.default.createElement(icons_1.Icon, { icon: "check", className: "icon" })))));
351
357
  };
358
+ TreeSelector.prototype.getOffsetPosition = function (element) {
359
+ var left = 0;
360
+ var top = 0;
361
+ while (element.offsetParent) {
362
+ left += element.offsetLeft;
363
+ top += element.offsetTop;
364
+ element = element.offsetParent;
365
+ }
366
+ return { left: left, top: top };
367
+ };
368
+ TreeSelector.prototype.getDropInfo = function (e, node) {
369
+ var _a;
370
+ var rect = e.currentTarget.getBoundingClientRect();
371
+ var dragNode = this.dragNode;
372
+ var deltaX = Math.min(50, rect.width * 0.3);
373
+ var gap = ((_a = node === null || node === void 0 ? void 0 : node.children) === null || _a === void 0 ? void 0 : _a.length) ? 0 : 16;
374
+ // 计算相对位置
375
+ var offset = this.getOffsetPosition(this.root.current);
376
+ var targetOffset = this.getOffsetPosition(e.currentTarget);
377
+ var left = targetOffset.left - offset.left;
378
+ var top = targetOffset.top - offset.top;
379
+ var clientX = e.clientX, clientY = e.clientY;
380
+ var position = clientY >= rect.top + rect.height / 2 ? 'bottom' : 'top';
381
+ var indicator;
382
+ if (position === 'bottom' && clientX >= this.startPoint.x + deltaX) {
383
+ position = 'self';
384
+ indicator = {
385
+ top: top,
386
+ left: left,
387
+ width: rect.width,
388
+ height: rect.height
389
+ };
390
+ }
391
+ else {
392
+ indicator = {
393
+ top: position === 'bottom' ? top + rect.height : top,
394
+ left: left + gap,
395
+ width: rect.width - gap
396
+ };
397
+ }
398
+ return {
399
+ node: node,
400
+ dragNode: dragNode,
401
+ position: position,
402
+ indicator: indicator
403
+ };
404
+ };
405
+ TreeSelector.prototype.updateDropIndicator = function (e, node) {
406
+ var _a;
407
+ var gap = ((_a = node === null || node === void 0 ? void 0 : node.children) === null || _a === void 0 ? void 0 : _a.length) ? 0 : 16;
408
+ this.dropInfo = this.getDropInfo(e, node);
409
+ var _b = this.dropInfo, dragNode = _b.dragNode, indicator = _b.indicator;
410
+ if (node === dragNode) {
411
+ this.setState({ dropIndicator: undefined });
412
+ return;
413
+ }
414
+ this.setState({
415
+ dropIndicator: indicator
416
+ });
417
+ };
418
+ TreeSelector.prototype.onDragStart = function (node) {
419
+ var _this = this;
420
+ var draggable = this.props.draggable;
421
+ return function (e) {
422
+ var _a;
423
+ if (draggable) {
424
+ e.dataTransfer.effectAllowed = 'copyMove';
425
+ _this.dragNode = node;
426
+ _this.dropInfo = null;
427
+ _this.startPoint = {
428
+ x: e.clientX,
429
+ y: e.clientY
430
+ };
431
+ if ((_a = node === null || node === void 0 ? void 0 : node.children) === null || _a === void 0 ? void 0 : _a.length) {
432
+ _this.unfolded.set(node, false);
433
+ _this.forceUpdate();
434
+ }
435
+ }
436
+ else {
437
+ _this.dragNode = null;
438
+ _this.dropInfo = null;
439
+ }
440
+ e.stopPropagation();
441
+ };
442
+ };
443
+ TreeSelector.prototype.onDragOver = function (node) {
444
+ var _this = this;
445
+ return function (e) {
446
+ if (!_this.dragNode) {
447
+ return;
448
+ }
449
+ _this.updateDropIndicator(e, node);
450
+ e.preventDefault();
451
+ };
452
+ };
453
+ TreeSelector.prototype.onDragEnd = function (dragNode) {
454
+ var _this = this;
455
+ return function (e) {
456
+ var _a, _b, _c;
457
+ _this.setState({
458
+ dropIndicator: undefined
459
+ });
460
+ var node = (_a = _this.dropInfo) === null || _a === void 0 ? void 0 : _a.node;
461
+ if (!_this.dropInfo || !node || dragNode === node) {
462
+ return;
463
+ }
464
+ (_c = (_b = _this.props).onMove) === null || _c === void 0 ? void 0 : _c.call(_b, _this.dropInfo);
465
+ _this.dragNode = null;
466
+ _this.dropInfo = null;
467
+ e.preventDefault();
468
+ };
469
+ };
352
470
  TreeSelector.prototype.renderList = function (list, value, uncheckable) {
353
471
  var _this = this;
354
- var _a = this.props, itemClassName = _a.itemClassName, showIcon = _a.showIcon, showRadio = _a.showRadio, multiple = _a.multiple, disabled = _a.disabled, labelField = _a.labelField, valueField = _a.valueField, iconField = _a.iconField, disabledField = _a.disabledField, cascade = _a.cascade, selfDisabledAffectChildren = _a.selfDisabledAffectChildren, onlyChildren = _a.onlyChildren, cx = _a.classnames, highlightTxt = _a.highlightTxt, options = _a.options, maxLength = _a.maxLength, minLength = _a.minLength, creatable = _a.creatable, editable = _a.editable, removable = _a.removable, createTip = _a.createTip, editTip = _a.editTip, removeTip = _a.removeTip, __ = _a.translate;
472
+ var _a = this.props, itemClassName = _a.itemClassName, showIcon = _a.showIcon, showRadio = _a.showRadio, multiple = _a.multiple, disabled = _a.disabled, labelField = _a.labelField, valueField = _a.valueField, iconField = _a.iconField, disabledField = _a.disabledField, cascade = _a.cascade, selfDisabledAffectChildren = _a.selfDisabledAffectChildren, onlyChildren = _a.onlyChildren, cx = _a.classnames, highlightTxt = _a.highlightTxt, options = _a.options, maxLength = _a.maxLength, minLength = _a.minLength, creatable = _a.creatable, editable = _a.editable, removable = _a.removable, createTip = _a.createTip, editTip = _a.editTip, removeTip = _a.removeTip, __ = _a.translate, draggable = _a.draggable;
355
473
  var _b = this.state, stateValue = _b.value, isAdding = _b.isAdding, addingParent = _b.addingParent, editingItem = _b.editingItem, isEditing = _b.isEditing;
356
474
  var childrenChecked = 0;
357
475
  var ret = list.map(function (item, key) {
@@ -396,7 +514,9 @@ var TreeSelector = /** @class */ (function (_super) {
396
514
  'is-children-checked': multiple && !cascade && selfChildrenChecked && !nodeDisabled,
397
515
  'is-checked': checked,
398
516
  'is-disabled': nodeDisabled
399
- }) },
517
+ }), draggable: draggable, onDragStart: _this.onDragStart(item), onDragOver: _this.onDragOver(item), onDragEnd: _this.onDragEnd(item) },
518
+ draggable && (react_1.default.createElement("a", { className: cx('Tree-itemDrager drag-bar') },
519
+ react_1.default.createElement(icons_1.Icon, { icon: "drag-bar", className: "icon" }))),
400
520
  item.loading ? (react_1.default.createElement(Spinner_1.default, { size: "sm", show: true, icon: "reload", spinnerClassName: cx('Tree-spinner') })) : !isLeaf || (item.defer && !item.loaded) ? (react_1.default.createElement("div", { onClick: function () { return _this.toggleUnfolded(item); }, className: cx('Tree-itemArrow', {
401
521
  'is-folded': !_this.isUnfolded(item)
402
522
  }) },
@@ -407,9 +527,7 @@ var TreeSelector = /** @class */ (function (_super) {
407
527
  (multiple
408
528
  ? _this.handleCheck(item, !selfChecked)
409
529
  : _this.handleSelect(item));
410
- } }, (0, icons_1.getIcon)(iconValue)
411
- ? react_1.default.createElement(icons_1.Icon, { icon: iconValue, className: "icon" })
412
- : react_1.default.createElement("i", { className: iconValue }))) : null,
530
+ } }, (0, icons_1.getIcon)(iconValue) ? (react_1.default.createElement(icons_1.Icon, { icon: iconValue, className: "icon" })) : (react_1.default.createElement("i", { className: iconValue })))) : null,
413
531
  react_1.default.createElement("span", { className: cx('Tree-itemText'), onClick: function () {
414
532
  return !nodeDisabled &&
415
533
  (multiple
@@ -446,9 +564,9 @@ var TreeSelector = /** @class */ (function (_super) {
446
564
  };
447
565
  };
448
566
  TreeSelector.prototype.render = function () {
449
- var _a = this.props, className = _a.className, placeholder = _a.placeholder, hideRoot = _a.hideRoot, rootLabel = _a.rootLabel, showOutline = _a.showOutline, showIcon = _a.showIcon, cx = _a.classnames, creatable = _a.creatable, rootCreatable = _a.rootCreatable, rootCreateTip = _a.rootCreateTip, disabled = _a.disabled, __ = _a.translate;
567
+ var _a = this.props, className = _a.className, placeholder = _a.placeholder, hideRoot = _a.hideRoot, rootLabel = _a.rootLabel, showOutline = _a.showOutline, showIcon = _a.showIcon, cx = _a.classnames, creatable = _a.creatable, rootCreatable = _a.rootCreatable, rootCreateTip = _a.rootCreateTip, disabled = _a.disabled, draggable = _a.draggable, __ = _a.translate;
450
568
  var options = this.props.options;
451
- var _b = this.state, value = _b.value, isAdding = _b.isAdding, addingParent = _b.addingParent, isEditing = _b.isEditing, inputValue = _b.inputValue;
569
+ var _b = this.state, value = _b.value, isAdding = _b.isAdding, addingParent = _b.addingParent, isEditing = _b.isEditing, inputValue = _b.inputValue, dropIndicator = _b.dropIndicator;
452
570
  var addBtn = null;
453
571
  if (creatable && rootCreatable !== false && hideRoot) {
454
572
  addBtn = (react_1.default.createElement("a", { className: cx('Tree-addTopBtn', {
@@ -459,29 +577,34 @@ var TreeSelector = /** @class */ (function (_super) {
459
577
  }
460
578
  return (react_1.default.createElement("div", { className: cx("Tree " + (className || ''), {
461
579
  'Tree--outline': showOutline,
462
- 'is-disabled': disabled
463
- }) }, (options && options.length) || addBtn || hideRoot === false ? (react_1.default.createElement("ul", { className: cx('Tree-list') }, hideRoot ? (react_1.default.createElement(react_1.default.Fragment, null,
464
- addBtn,
465
- isAdding && !addingParent ? (react_1.default.createElement("li", { className: cx('Tree-item') }, this.renderInput())) : null,
466
- this.renderList(options, value, false).dom)) : (react_1.default.createElement("li", { className: cx('Tree-rootItem', {
467
- 'is-checked': !value || !value.length
468
- }) },
469
- react_1.default.createElement("div", { className: cx('Tree-itemLabel') },
470
- react_1.default.createElement("span", { className: cx('Tree-itemText'), onClick: this.clearSelect },
471
- showIcon ? (react_1.default.createElement("i", { className: cx('Tree-itemIcon Tree-rootIcon') },
472
- react_1.default.createElement(icons_1.Icon, { icon: "home", className: "icon" }))) : null,
473
- rootLabel),
474
- !disabled &&
475
- creatable &&
476
- rootCreatable !== false &&
477
- !isAdding &&
478
- !isEditing ? (react_1.default.createElement("div", { className: cx('Tree-item-icons') }, creatable ? (react_1.default.createElement("a", { onClick: this.handleAdd.bind(this, null), "data-tooltip": rootCreateTip, "data-position": "left" },
479
- react_1.default.createElement(icons_1.Icon, { icon: "plus", className: "icon" }))) : null)) : null),
480
- react_1.default.createElement("ul", { className: cx('Tree-sublist') },
580
+ 'is-disabled': disabled,
581
+ 'is-draggable': draggable
582
+ }), ref: this.root },
583
+ (options && options.length) || addBtn || hideRoot === false ? (react_1.default.createElement("ul", { className: cx('Tree-list') }, hideRoot ? (react_1.default.createElement(react_1.default.Fragment, null,
584
+ addBtn,
481
585
  isAdding && !addingParent ? (react_1.default.createElement("li", { className: cx('Tree-item') }, this.renderInput())) : null,
482
- this.renderList(options, value, false).dom))))) : (react_1.default.createElement("div", { className: cx('Tree-placeholder') }, placeholder))));
586
+ this.renderList(options, value, false).dom)) : (react_1.default.createElement("li", { className: cx('Tree-rootItem', {
587
+ 'is-checked': !value || !value.length
588
+ }) },
589
+ react_1.default.createElement("div", { className: cx('Tree-itemLabel') },
590
+ react_1.default.createElement("span", { className: cx('Tree-itemText'), onClick: this.clearSelect },
591
+ showIcon ? (react_1.default.createElement("i", { className: cx('Tree-itemIcon Tree-rootIcon') },
592
+ react_1.default.createElement(icons_1.Icon, { icon: "home", className: "icon" }))) : null,
593
+ rootLabel),
594
+ !disabled &&
595
+ creatable &&
596
+ rootCreatable !== false &&
597
+ !isAdding &&
598
+ !isEditing ? (react_1.default.createElement("div", { className: cx('Tree-item-icons') }, creatable ? (react_1.default.createElement("a", { onClick: this.handleAdd.bind(this, null), "data-tooltip": rootCreateTip, "data-position": "left" },
599
+ react_1.default.createElement(icons_1.Icon, { icon: "plus", className: "icon" }))) : null)) : null),
600
+ react_1.default.createElement("ul", { className: cx('Tree-sublist') },
601
+ isAdding && !addingParent ? (react_1.default.createElement("li", { className: cx('Tree-item') }, this.renderInput())) : null,
602
+ this.renderList(options, value, false).dom))))) : (react_1.default.createElement("div", { className: cx('Tree-placeholder') }, placeholder)),
603
+ dropIndicator && (react_1.default.createElement("div", { className: cx('Tree-dropIndicator', {
604
+ 'Tree-dropIndicator--hover': !!dropIndicator.height
605
+ }), style: dropIndicator }))));
483
606
  };
484
- var _a, _b, _c, _d, _e;
607
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
485
608
  TreeSelector.defaultProps = {
486
609
  showIcon: true,
487
610
  showOutline: false,
@@ -577,7 +700,37 @@ var TreeSelector = /** @class */ (function (_super) {
577
700
  (0, tslib_1.__decorate)([
578
701
  helper_1.autobind,
579
702
  (0, tslib_1.__metadata)("design:type", Function),
580
- (0, tslib_1.__metadata)("design:paramtypes", [typeof (_e = typeof Select_1.Options !== "undefined" && Select_1.Options) === "function" ? _e : Object, Array, Boolean]),
703
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_e = typeof react_1.default !== "undefined" && react_1.default.DragEvent) === "function" ? _e : Object, typeof (_f = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _f : Object]),
704
+ (0, tslib_1.__metadata)("design:returntype", Object)
705
+ ], TreeSelector.prototype, "getDropInfo", null);
706
+ (0, tslib_1.__decorate)([
707
+ helper_1.autobind,
708
+ (0, tslib_1.__metadata)("design:type", Function),
709
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_g = typeof react_1.default !== "undefined" && react_1.default.DragEvent) === "function" ? _g : Object, typeof (_h = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _h : Object]),
710
+ (0, tslib_1.__metadata)("design:returntype", void 0)
711
+ ], TreeSelector.prototype, "updateDropIndicator", null);
712
+ (0, tslib_1.__decorate)([
713
+ helper_1.autobind,
714
+ (0, tslib_1.__metadata)("design:type", Function),
715
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_j = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _j : Object]),
716
+ (0, tslib_1.__metadata)("design:returntype", void 0)
717
+ ], TreeSelector.prototype, "onDragStart", null);
718
+ (0, tslib_1.__decorate)([
719
+ helper_1.autobind,
720
+ (0, tslib_1.__metadata)("design:type", Function),
721
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_k = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _k : Object]),
722
+ (0, tslib_1.__metadata)("design:returntype", void 0)
723
+ ], TreeSelector.prototype, "onDragOver", null);
724
+ (0, tslib_1.__decorate)([
725
+ helper_1.autobind,
726
+ (0, tslib_1.__metadata)("design:type", Function),
727
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_l = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _l : Object]),
728
+ (0, tslib_1.__metadata)("design:returntype", void 0)
729
+ ], TreeSelector.prototype, "onDragEnd", null);
730
+ (0, tslib_1.__decorate)([
731
+ helper_1.autobind,
732
+ (0, tslib_1.__metadata)("design:type", Function),
733
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_m = typeof Select_1.Options !== "undefined" && Select_1.Options) === "function" ? _m : Object, Array, Boolean]),
581
734
  (0, tslib_1.__metadata)("design:returntype", Object)
582
735
  ], TreeSelector.prototype, "renderList", null);
583
736
  return TreeSelector;
@@ -6,8 +6,8 @@
6
6
  "/src/components/Tree.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "/**\n * @file Tree\n * @description 树形组件\n * @author fex\n */\n\nimport React from 'react';\nimport {\n eachTree,\n isVisible,\n autobind,\n findTreeIndex,\n hasAbility,\n createObject,\n getTreeParent,\n getTreeAncestors,\n cloneObject\n} from '../utils/helper';\nimport {Option, Options, value2array} from './Select';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {highlight} from '../renderers/Form/Options';\nimport {Icon, getIcon} from './icons';\nimport Checkbox from './Checkbox';\nimport {LocaleProps, localeable} from '../locale';\nimport Spinner from './Spinner';\n\ninterface TreeSelectorProps extends ThemeProps, LocaleProps {\n highlightTxt?: string;\n\n showIcon?: boolean;\n // 是否默认都展开\n initiallyOpen?: boolean;\n // 默认展开的级数,从1开始,只有initiallyOpen不是true时生效\n unfoldedLevel?: number;\n // 单选时,是否展示radio\n showRadio?: boolean;\n multiple?: boolean;\n // 是否都不可用\n disabled?: boolean;\n // 多选时,选中父节点时,是否将其所有子节点也融合到取值中,默认是不融合\n withChildren?: boolean;\n // 多选时,选中父节点时,是否只将起子节点加入到值中。\n onlyChildren?: boolean;\n // 名称、取值等字段名映射\n labelField: string;\n valueField: string;\n iconField: string;\n unfoldedField: string;\n foldedField: string;\n disabledField: string;\n\n // 是否显示 outline 辅助线\n showOutline?: boolean;\n\n className?: string;\n itemClassName?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n delimiter?: string;\n options: Options;\n value: any;\n onChange: Function;\n placeholder?: string;\n hideRoot?: boolean;\n rootLabel?: string;\n rootValue?: any;\n // 是否开启节点路径记录\n enableNodePath?: boolean;\n // 路径节点的分隔符\n pathSeparator?: string;\n // 已选择节点路径\n nodePath: any[];\n\n // 这个配置名字没取好,目前的含义是,如果这个配置成true,点父级的时候,子级点不会自选中。\n // 否则点击父级,子节点选中。\n cascade?: boolean;\n selfDisabledAffectChildren?: boolean;\n minLength?: number;\n maxLength?: number;\n\n // 是否为内建 增、改、删。当有复杂表单的时候直接抛出去让外层能统一处理\n bultinCUD?: boolean;\n rootCreatable?: boolean;\n rootCreateTip?: string;\n creatable?: boolean;\n createTip?: string;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n editable?: boolean;\n editTip?: string;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n removable?: boolean;\n removeTip?: string;\n onDelete?: (value: Option) => void;\n onDeferLoad?: (option: Option) => void;\n onExpandTree?: (nodePathArr: any[]) => void;\n}\n\ninterface TreeSelectorState {\n value: Array<any>;\n inputValue: string;\n addingParent: Option | null;\n isAdding: boolean;\n isEditing: boolean;\n editingItem: Option | null;\n}\n\nexport class TreeSelector extends React.Component<\n TreeSelectorProps,\n TreeSelectorState\n> {\n static defaultProps = {\n showIcon: true,\n showOutline: false,\n initiallyOpen: true,\n unfoldedLevel: 0,\n showRadio: false,\n multiple: false,\n disabled: false,\n withChildren: false,\n onlyChildren: false,\n labelField: 'label',\n valueField: 'value',\n iconField: 'icon',\n unfoldedField: 'unfolded',\n foldedField: 'foled',\n disabledField: 'disabled',\n joinValues: true,\n extractValue: false,\n delimiter: ',',\n hideRoot: true,\n rootLabel: 'Tree.root',\n rootValue: 0,\n cascade: false,\n selfDisabledAffectChildren: true,\n rootCreateTip: 'Tree.addRoot',\n createTip: 'Tree.addChild',\n editTip: 'Tree.editNode',\n removeTip: 'Tree.removeNode',\n enableNodePath: false,\n pathSeparator: '/',\n nodePath: []\n };\n\n unfolded: WeakMap<Object, boolean> = new WeakMap();\n\n constructor(props: TreeSelectorProps) {\n super(props);\n\n this.state = {\n value: value2array(\n props.value,\n {\n multiple: props.multiple,\n delimiter: props.delimiter,\n valueField: props.valueField,\n labelField: props.labelField,\n options: props.options,\n pathSeparator: props.pathSeparator\n },\n props.enableNodePath\n ),\n\n inputValue: '',\n addingParent: null,\n isAdding: false,\n isEditing: false,\n editingItem: null\n };\n\n this.syncUnFolded(props);\n }\n\n componentDidMount() {\n const {enableNodePath} = this.props;\n enableNodePath && this.expandLazyLoadNodes();\n }\n\n componentDidUpdate(prevProps: TreeSelectorProps) {\n const props = this.props;\n\n if (prevProps.options !== props.options) {\n this.syncUnFolded(props);\n }\n\n if (\n prevProps.value !== props.value ||\n prevProps.options !== props.options\n ) {\n this.setState({\n value: value2array(\n props.value,\n {\n multiple: props.multiple,\n delimiter: props.delimiter,\n valueField: props.valueField,\n options: props.options\n },\n props.enableNodePath\n )\n });\n }\n }\n\n /**\n * 展开懒加载节点的父节点\n */\n expandLazyLoadNodes() {\n const {pathSeparator, onExpandTree, nodePath = []} = this.props;\n const nodePathArr = nodePath.map(path =>\n path ? path.toString().split(pathSeparator) : []\n );\n onExpandTree?.(nodePathArr);\n }\n\n syncUnFolded(props: TreeSelectorProps) {\n // 初始化树节点的展开状态\n let unfolded = this.unfolded;\n const {foldedField, unfoldedField} = this.props;\n\n eachTree(props.options, (node: Option, index, level) => {\n if (unfolded.has(node)) {\n return;\n }\n\n if (node.children && node.children.length) {\n let ret: any = true;\n\n if (node.defer && node.loaded) {\n ret = true;\n } else if (\n unfoldedField &&\n typeof node[unfoldedField] !== 'undefined'\n ) {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n } else {\n ret = !!props.initiallyOpen;\n if (!ret && level <= (props.unfoldedLevel as number)) {\n ret = true;\n }\n }\n unfolded.set(node, ret);\n }\n });\n\n return unfolded;\n }\n\n @autobind\n toggleUnfolded(node: any) {\n const unfolded = this.unfolded;\n const {onDeferLoad} = this.props;\n\n if (node.defer && !node.loaded) {\n onDeferLoad?.(node);\n return;\n }\n\n unfolded.set(node, !unfolded.get(node));\n this.forceUpdate();\n }\n\n isUnfolded(node: any) {\n const unfolded = this.unfolded;\n return unfolded.get(node);\n }\n\n @autobind\n clearSelect() {\n this.setState(\n {\n value: []\n },\n () => {\n const {joinValues, rootValue, onChange} = this.props;\n\n onChange(joinValues ? rootValue : []);\n }\n );\n }\n\n /**\n * enableNodePath为true时,将label和value转换成node path格式\n */\n transform2NodePath(value: any) {\n const {\n multiple,\n options,\n valueField,\n labelField,\n joinValues,\n extractValue,\n pathSeparator,\n delimiter\n } = this.props;\n\n const nodesValuePath: string[] = [];\n const selectedNodes = Array.isArray(value) ? value.concat() : [value];\n const selectedNodesPath = selectedNodes.map(node => {\n const nodePath = getTreeAncestors(options, node, true)?.reduce(\n (acc, node) => {\n acc[labelField as string].push(node[labelField as string]);\n acc[valueField as string].push(node[valueField as string]);\n return acc;\n },\n {[labelField as string]: [], [valueField as string]: []}\n );\n const nodeValuePath = nodePath[valueField as string].join(pathSeparator);\n\n nodesValuePath.push(nodeValuePath);\n return {\n ...node,\n [labelField]: nodePath[labelField as string].join(pathSeparator),\n [valueField]: nodeValuePath\n };\n });\n\n if (multiple) {\n return joinValues\n ? nodesValuePath.join(delimiter)\n : extractValue\n ? nodesValuePath\n : selectedNodesPath;\n } else {\n return joinValues || extractValue\n ? selectedNodesPath[0][valueField]\n : selectedNodesPath[0];\n }\n }\n\n @autobind\n handleSelect(node: any, value?: any) {\n const {joinValues, valueField, onChange, enableNodePath} = this.props;\n\n if (node[valueField as string] === undefined) {\n if (node.defer && !node.loaded) {\n this.toggleUnfolded(node);\n }\n\n return;\n }\n\n this.setState(\n {\n value: [node]\n },\n () => {\n onChange(\n enableNodePath\n ? this.transform2NodePath(node)\n : joinValues\n ? node[valueField as string]\n : node\n );\n }\n );\n }\n\n @autobind\n handleCheck(item: any, checked: boolean) {\n const props = this.props;\n const value = this.state.value.concat();\n const idx = value.indexOf(item);\n const onlyChildren = props.onlyChildren;\n\n if (checked) {\n ~idx || value.push(item);\n\n // cascade 为 true 表示父节点跟子节点没有级联关系。\n if (!props.cascade) {\n const children = item.children ? item.children.concat([]) : [];\n\n if (onlyChildren) {\n // 父级选中的时候,子节点也都选中,但是自己不选中\n !~idx && children.length && value.pop();\n\n while (children.length) {\n let child = children.shift();\n let index = value.indexOf(child);\n\n if (child.children && child.children.length) {\n children.push.apply(children, child.children);\n } else if (!~index && child.value !== 'undefined') {\n value.push(child);\n }\n }\n } else {\n // 只要父节点选择了,子节点就不需要了,全部去掉勾选. withChildren时相反\n while (children.length) {\n let child = children.shift();\n let index = value.indexOf(child);\n\n if (~index) {\n value.splice(index, 1);\n }\n\n if (props.withChildren) {\n value.push(child);\n }\n\n if (child.children && child.children.length) {\n children.push.apply(children, child.children);\n }\n }\n\n let toCheck = item;\n\n while (true) {\n const parent = getTreeParent(props.options, toCheck);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (\n parent.children.every((child: any) => ~value.indexOf(child))\n ) {\n if (!props.withChildren) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index) {\n value.splice(index, 1);\n }\n });\n }\n value.push(parent);\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n }\n } else {\n ~idx && value.splice(idx, 1);\n\n if (!props.cascade && (props.withChildren || onlyChildren)) {\n const children = item.children ? item.children.concat([]) : [];\n while (children.length) {\n let child = children.shift();\n let index = value.indexOf(child);\n\n if (~index) {\n value.splice(index, 1);\n }\n\n if (child.children && child.children.length) {\n children.push.apply(children, child.children);\n }\n }\n }\n }\n\n this.setState(\n {\n value\n },\n () => {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n onChange,\n enableNodePath\n } = props;\n\n onChange(\n enableNodePath\n ? this.transform2NodePath(value)\n : joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value\n );\n }\n );\n }\n\n @autobind\n handleAdd(parent: Option | null = null) {\n const {bultinCUD, onAdd, options} = this.props;\n\n if (!bultinCUD) {\n const idxes = findTreeIndex(options, item => item === parent) || [];\n return onAdd && onAdd(idxes.concat(0));\n } else {\n this.setState({\n isEditing: false,\n isAdding: true,\n addingParent: parent\n });\n }\n }\n\n @autobind\n handleEdit(item: Option) {\n const {bultinCUD, onEdit, labelField, options} = this.props;\n\n if (!bultinCUD) {\n onEdit?.(item);\n } else {\n this.setState({\n isEditing: true,\n isAdding: false,\n editingItem: item,\n inputValue: item[labelField]\n });\n }\n }\n\n @autobind\n handleRemove(item: Option) {\n const {onDelete} = this.props;\n\n onDelete && onDelete(item);\n }\n\n @autobind\n handleInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n this.setState({\n inputValue: e.currentTarget.value\n });\n }\n\n @autobind\n handleConfirm() {\n const {\n inputValue: value,\n isAdding,\n addingParent,\n editingItem,\n isEditing\n } = this.state;\n\n if (!value) {\n return;\n }\n\n const {labelField, onAdd, options, onEdit} = this.props;\n this.setState(\n {\n inputValue: '',\n isAdding: false,\n isEditing: false\n },\n () => {\n if (isAdding && onAdd) {\n const idxes =\n (addingParent &&\n findTreeIndex(options, item => item === addingParent)) ||\n [];\n onAdd(idxes.concat(0), {[labelField]: value}, true);\n } else if (isEditing && onEdit) {\n onEdit(\n {\n ...editingItem,\n [labelField]: value\n },\n editingItem!,\n true\n );\n }\n }\n );\n }\n\n @autobind\n handleCancel() {\n this.setState({\n inputValue: '',\n isAdding: false,\n isEditing: false\n });\n }\n\n renderInput(prfix: JSX.Element | null = null) {\n const {classnames: cx, translate: __} = this.props;\n const {inputValue} = this.state;\n\n return (\n <div className={cx('Tree-itemLabel')}>\n <div className={cx('Tree-itemInput')}>\n {prfix}\n <input\n onChange={this.handleInputChange}\n value={inputValue}\n placeholder={__('placeholder.enter')}\n />\n <a data-tooltip={__('cancel')} onClick={this.handleCancel}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n <a data-tooltip={__('confirm')} onClick={this.handleConfirm}>\n <Icon icon=\"check\" className=\"icon\" />\n </a>\n </div>\n </div>\n );\n }\n\n @autobind\n renderList(\n list: Options,\n value: Option[],\n uncheckable: boolean\n ): {dom: Array<JSX.Element | null>; childrenChecked: number} {\n const {\n itemClassName,\n showIcon,\n showRadio,\n multiple,\n disabled,\n labelField,\n valueField,\n iconField,\n disabledField,\n cascade,\n selfDisabledAffectChildren,\n onlyChildren,\n classnames: cx,\n highlightTxt,\n options,\n maxLength,\n minLength,\n creatable,\n editable,\n removable,\n createTip,\n editTip,\n removeTip,\n translate: __\n } = this.props;\n const {\n value: stateValue,\n isAdding,\n addingParent,\n editingItem,\n isEditing\n } = this.state;\n\n let childrenChecked = 0;\n let ret = list.map((item, key) => {\n if (!isVisible(item as any, options)) {\n return null;\n }\n\n const checked = !!~value.indexOf(item);\n const selfDisabled = item[disabledField];\n let selfChecked = !!uncheckable || checked;\n\n let childrenItems = null;\n let selfChildrenChecked = false;\n if (item.children && item.children.length) {\n childrenItems = this.renderList(\n item.children,\n value,\n cascade\n ? false\n : uncheckable ||\n (selfDisabledAffectChildren ? selfDisabled : false) ||\n (multiple && checked)\n );\n selfChildrenChecked = !!childrenItems.childrenChecked;\n if (\n !selfChecked &&\n onlyChildren &&\n item.children.length === childrenItems.childrenChecked\n ) {\n selfChecked = true;\n }\n childrenItems = childrenItems.dom;\n }\n\n if ((onlyChildren ? selfChecked : selfChildrenChecked) || checked) {\n childrenChecked++;\n }\n\n let nodeDisabled = !!uncheckable || !!disabled || selfDisabled;\n\n if (\n !nodeDisabled &&\n ((maxLength && !selfChecked && stateValue.length >= maxLength) ||\n (minLength && selfChecked && stateValue.length <= minLength))\n ) {\n nodeDisabled = true;\n }\n\n const checkbox: JSX.Element | null = multiple ? (\n <Checkbox\n size=\"sm\"\n disabled={nodeDisabled}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n onChange={this.handleCheck.bind(this, item, !selfChecked)}\n />\n ) : showRadio ? (\n <Checkbox\n size=\"sm\"\n disabled={nodeDisabled}\n checked={checked}\n onChange={this.handleSelect.bind(this, item)}\n />\n ) : null;\n\n const isLeaf =\n (!item.children || !item.children.length) && !item.placeholder;\n\n const iconValue = item[iconField] || (childrenItems ? 'folder' : 'file');\n\n return (\n <li\n key={key}\n className={cx(`Tree-item ${itemClassName || ''}`, {\n 'Tree-item--isLeaf': isLeaf\n })}\n >\n {isEditing && editingItem === item ? (\n this.renderInput(checkbox)\n ) : (\n <div\n className={cx('Tree-itemLabel', {\n 'is-children-checked':\n multiple && !cascade && selfChildrenChecked && !nodeDisabled,\n 'is-checked': checked,\n 'is-disabled': nodeDisabled\n })}\n >\n {item.loading ? (\n <Spinner\n size=\"sm\"\n show\n icon=\"reload\"\n spinnerClassName={cx('Tree-spinner')}\n />\n ) : !isLeaf || (item.defer && !item.loaded) ? (\n <div\n onClick={() => this.toggleUnfolded(item)}\n className={cx('Tree-itemArrow', {\n 'is-folded': !this.isUnfolded(item)\n })}\n >\n <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n </div>\n ) : (\n <span className={cx('Tree-itemArrowPlaceholder')} />\n )}\n\n {checkbox}\n\n {showIcon ? (\n <i\n className={cx(\n `Tree-itemIcon ${\n (childrenItems ? 'Tree-folderIcon' : 'Tree-leafIcon')\n }`\n )}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(item, !selfChecked)\n : this.handleSelect(item))\n }\n >\n {getIcon(iconValue)\n ? <Icon icon={iconValue} className=\"icon\"/>\n : <i className={iconValue}></i>}\n </i>\n ) : null}\n\n <span\n className={cx('Tree-itemText')}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(item, !selfChecked)\n : this.handleSelect(item))\n }\n >\n {highlightTxt\n ? highlight(`${item[labelField]}`, highlightTxt)\n : `${item[labelField]}`}\n </span>\n\n {!nodeDisabled &&\n !isAdding &&\n !isEditing &&\n !(item.defer && !item.loaded) ? (\n <div className={cx('Tree-item-icons')}>\n {creatable && hasAbility(item, 'creatable') ? (\n <a\n onClick={this.handleAdd.bind(this, item)}\n data-tooltip={__(createTip)}\n data-position=\"left\"\n >\n <Icon icon=\"plus\" className=\"icon\" />\n </a>\n ) : null}\n\n {removable && hasAbility(item, 'removable') ? (\n <a\n onClick={this.handleRemove.bind(this, item)}\n data-tooltip={__(removeTip)}\n data-position=\"left\"\n >\n <Icon icon=\"minus\" className=\"icon\" />\n </a>\n ) : null}\n\n {editable && hasAbility(item, 'editable') ? (\n <a\n onClick={this.handleEdit.bind(this, item)}\n data-tooltip={__(editTip)}\n data-position=\"left\"\n >\n <Icon icon=\"pencil\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n ) : null}\n </div>\n )}\n {/* 有children而且为展开状态 或者 添加child时 */}\n {(childrenItems && this.isUnfolded(item)) ||\n (isAdding && addingParent === item) ? (\n <ul className={cx('Tree-sublist')}>\n {isAdding && addingParent === item ? (\n <li className={cx('Tree-item')}>\n {this.renderInput(\n checkbox\n ? React.cloneElement(checkbox, {\n checked: false,\n disabled: true\n })\n : null\n )}\n </li>\n ) : null}\n {childrenItems}\n </ul>\n ) : !childrenItems && item.placeholder && this.isUnfolded(item) ? (\n <ul className={cx('Tree-sublist')}>\n <li className={cx('Tree-item')}>\n <div className={cx('Tree-placeholder')}>{item.placeholder}</div>\n </li>\n </ul>\n ) : null}\n </li>\n );\n });\n\n return {\n dom: ret,\n childrenChecked\n };\n }\n\n render() {\n const {\n className,\n placeholder,\n hideRoot,\n rootLabel,\n showOutline,\n showIcon,\n classnames: cx,\n creatable,\n rootCreatable,\n rootCreateTip,\n disabled,\n translate: __\n } = this.props;\n let options = this.props.options;\n const {value, isAdding, addingParent, isEditing, inputValue} = this.state;\n let addBtn = null;\n\n if (creatable && rootCreatable !== false && hideRoot) {\n addBtn = (\n <a\n className={cx('Tree-addTopBtn', {\n 'is-disabled': isAdding || isEditing\n })}\n onClick={this.handleAdd.bind(this, null)}\n >\n <Icon icon=\"plus\" className=\"icon\" />\n <span>{__(rootCreateTip)}</span>\n </a>\n );\n }\n\n return (\n <div\n className={cx(`Tree ${className || ''}`, {\n 'Tree--outline': showOutline,\n 'is-disabled': disabled\n })}\n >\n {(options && options.length) || addBtn || hideRoot === false ? (\n <ul className={cx('Tree-list')}>\n {hideRoot ? (\n <>\n {addBtn}\n {isAdding && !addingParent ? (\n <li className={cx('Tree-item')}>{this.renderInput()}</li>\n ) : null}\n {this.renderList(options, value, false).dom}\n </>\n ) : (\n <li\n className={cx('Tree-rootItem', {\n 'is-checked': !value || !value.length\n })}\n >\n <div className={cx('Tree-itemLabel')}>\n <span\n className={cx('Tree-itemText')}\n onClick={this.clearSelect}\n >\n {showIcon ? (\n <i className={cx('Tree-itemIcon Tree-rootIcon')}>\n <Icon icon=\"home\" className=\"icon\" />\n </i>\n ) : null}\n {rootLabel}\n </span>\n {!disabled &&\n creatable &&\n rootCreatable !== false &&\n !isAdding &&\n !isEditing ? (\n <div className={cx('Tree-item-icons')}>\n {creatable ? (\n <a\n onClick={this.handleAdd.bind(this, null)}\n data-tooltip={rootCreateTip}\n data-position=\"left\"\n >\n <Icon icon=\"plus\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n ) : null}\n </div>\n <ul className={cx('Tree-sublist')}>\n {isAdding && !addingParent ? (\n <li className={cx('Tree-item')}>{this.renderInput()}</li>\n ) : null}\n {this.renderList(options, value, false).dom}\n </ul>\n </li>\n )}\n </ul>\n ) : (\n <div className={cx('Tree-placeholder')}>{placeholder}</div>\n )}\n </div>\n );\n }\n}\n\nexport default themeable(localeable(TreeSelector));\n"
11
+ "/**\n * @file Tree\n * @description 树形组件\n * @author fex\n */\n\nimport React from 'react';\nimport {\n eachTree,\n isVisible,\n autobind,\n findTreeIndex,\n hasAbility,\n createObject,\n getTreeParent,\n getTreeAncestors,\n cloneObject\n} from '../utils/helper';\nimport {Option, Options, value2array} from './Select';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {highlight} from '../renderers/Form/Options';\nimport {Icon, getIcon} from './icons';\nimport Checkbox from './Checkbox';\nimport {LocaleProps, localeable} from '../locale';\nimport Spinner from './Spinner';\n\ninterface IDropIndicator {\n left: number;\n top: number;\n width: number;\n height?: number;\n}\n\nexport interface IDropInfo {\n dragNode: Option | null;\n node: Option;\n position: 'top' | 'bottom' | 'self';\n indicator: IDropIndicator;\n}\n\ninterface TreeSelectorProps extends ThemeProps, LocaleProps {\n highlightTxt?: string;\n\n showIcon?: boolean;\n // 是否默认都展开\n initiallyOpen?: boolean;\n // 默认展开的级数,从1开始,只有initiallyOpen不是true时生效\n unfoldedLevel?: number;\n // 单选时,是否展示radio\n showRadio?: boolean;\n multiple?: boolean;\n // 是否都不可用\n disabled?: boolean;\n // 多选时,选中父节点时,是否将其所有子节点也融合到取值中,默认是不融合\n withChildren?: boolean;\n // 多选时,选中父节点时,是否只将起子节点加入到值中。\n onlyChildren?: boolean;\n // 名称、取值等字段名映射\n labelField: string;\n valueField: string;\n iconField: string;\n unfoldedField: string;\n foldedField: string;\n disabledField: string;\n\n // 是否显示 outline 辅助线\n showOutline?: boolean;\n\n className?: string;\n itemClassName?: string;\n joinValues?: boolean;\n extractValue?: boolean;\n delimiter?: string;\n options: Options;\n value: any;\n onChange: Function;\n placeholder?: string;\n hideRoot?: boolean;\n rootLabel?: string;\n rootValue?: any;\n // 是否开启节点路径记录\n enableNodePath?: boolean;\n // 路径节点的分隔符\n pathSeparator?: string;\n // 已选择节点路径\n nodePath: any[];\n\n // 这个配置名字没取好,目前的含义是,如果这个配置成true,点父级的时候,子级点不会自选中。\n // 否则点击父级,子节点选中。\n cascade?: boolean;\n selfDisabledAffectChildren?: boolean;\n minLength?: number;\n maxLength?: number;\n\n // 是否为内建 增、改、删。当有复杂表单的时候直接抛出去让外层能统一处理\n bultinCUD?: boolean;\n rootCreatable?: boolean;\n rootCreateTip?: string;\n creatable?: boolean;\n createTip?: string;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n editable?: boolean;\n editTip?: string;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n removable?: boolean;\n removeTip?: string;\n onDelete?: (value: Option) => void;\n onDeferLoad?: (option: Option) => void;\n onExpandTree?: (nodePathArr: any[]) => void;\n draggable?: boolean;\n onMove?: (dropInfo: IDropInfo) => void;\n}\n\ninterface TreeSelectorState {\n value: Array<any>;\n inputValue: string;\n addingParent: Option | null;\n isAdding: boolean;\n isEditing: boolean;\n editingItem: Option | null;\n\n // 拖拽指示器\n dropIndicator?: IDropIndicator;\n}\n\nexport class TreeSelector extends React.Component<\n TreeSelectorProps,\n TreeSelectorState\n> {\n static defaultProps = {\n showIcon: true,\n showOutline: false,\n initiallyOpen: true,\n unfoldedLevel: 0,\n showRadio: false,\n multiple: false,\n disabled: false,\n withChildren: false,\n onlyChildren: false,\n labelField: 'label',\n valueField: 'value',\n iconField: 'icon',\n unfoldedField: 'unfolded',\n foldedField: 'foled',\n disabledField: 'disabled',\n joinValues: true,\n extractValue: false,\n delimiter: ',',\n hideRoot: true,\n rootLabel: 'Tree.root',\n rootValue: 0,\n cascade: false,\n selfDisabledAffectChildren: true,\n rootCreateTip: 'Tree.addRoot',\n createTip: 'Tree.addChild',\n editTip: 'Tree.editNode',\n removeTip: 'Tree.removeNode',\n enableNodePath: false,\n pathSeparator: '/',\n nodePath: []\n };\n\n unfolded: WeakMap<Object, boolean> = new WeakMap();\n dragNode: Option | null;\n dropInfo: IDropInfo | null;\n startPoint: {\n x: number;\n y: number;\n } = {\n x: 0,\n y: 0\n };\n root = React.createRef<HTMLDivElement>();\n\n constructor(props: TreeSelectorProps) {\n super(props);\n\n this.state = {\n value: value2array(\n props.value,\n {\n multiple: props.multiple,\n delimiter: props.delimiter,\n valueField: props.valueField,\n labelField: props.labelField,\n options: props.options,\n pathSeparator: props.pathSeparator\n },\n props.enableNodePath\n ),\n\n inputValue: '',\n addingParent: null,\n isAdding: false,\n isEditing: false,\n editingItem: null,\n dropIndicator: undefined\n };\n\n this.syncUnFolded(props);\n }\n\n componentDidMount() {\n const {enableNodePath} = this.props;\n enableNodePath && this.expandLazyLoadNodes();\n }\n\n componentDidUpdate(prevProps: TreeSelectorProps) {\n const props = this.props;\n\n if (prevProps.options !== props.options) {\n this.syncUnFolded(props);\n }\n\n if (\n prevProps.value !== props.value ||\n prevProps.options !== props.options\n ) {\n this.setState({\n value: value2array(\n props.value,\n {\n multiple: props.multiple,\n delimiter: props.delimiter,\n valueField: props.valueField,\n options: props.options\n },\n props.enableNodePath\n )\n });\n }\n }\n\n /**\n * 展开懒加载节点的父节点\n */\n expandLazyLoadNodes() {\n const {pathSeparator, onExpandTree, nodePath = []} = this.props;\n const nodePathArr = nodePath.map(path =>\n path ? path.toString().split(pathSeparator) : []\n );\n onExpandTree?.(nodePathArr);\n }\n\n syncUnFolded(props: TreeSelectorProps) {\n // 初始化树节点的展开状态\n let unfolded = this.unfolded;\n const {foldedField, unfoldedField} = this.props;\n\n eachTree(props.options, (node: Option, index, level) => {\n if (unfolded.has(node)) {\n return;\n }\n\n if (node.children && node.children.length) {\n let ret: any = true;\n\n if (node.defer && node.loaded) {\n ret = true;\n } else if (\n unfoldedField &&\n typeof node[unfoldedField] !== 'undefined'\n ) {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n } else {\n ret = !!props.initiallyOpen;\n if (!ret && level <= (props.unfoldedLevel as number)) {\n ret = true;\n }\n }\n unfolded.set(node, ret);\n }\n });\n\n return unfolded;\n }\n\n @autobind\n toggleUnfolded(node: any) {\n const unfolded = this.unfolded;\n const {onDeferLoad} = this.props;\n\n if (node.defer && !node.loaded) {\n onDeferLoad?.(node);\n return;\n }\n\n unfolded.set(node, !unfolded.get(node));\n this.forceUpdate();\n }\n\n isUnfolded(node: any) {\n const unfolded = this.unfolded;\n return unfolded.get(node);\n }\n\n @autobind\n clearSelect() {\n this.setState(\n {\n value: []\n },\n () => {\n const {joinValues, rootValue, onChange} = this.props;\n\n onChange(joinValues ? rootValue : []);\n }\n );\n }\n\n /**\n * enableNodePath为true时,将label和value转换成node path格式\n */\n transform2NodePath(value: any) {\n const {\n multiple,\n options,\n valueField,\n labelField,\n joinValues,\n extractValue,\n pathSeparator,\n delimiter\n } = this.props;\n\n const nodesValuePath: string[] = [];\n const selectedNodes = Array.isArray(value) ? value.concat() : [value];\n const selectedNodesPath = selectedNodes.map(node => {\n const nodePath = getTreeAncestors(options, node, true)?.reduce(\n (acc, node) => {\n acc[labelField as string].push(node[labelField as string]);\n acc[valueField as string].push(node[valueField as string]);\n return acc;\n },\n {[labelField as string]: [], [valueField as string]: []}\n );\n const nodeValuePath = nodePath[valueField as string].join(pathSeparator);\n\n nodesValuePath.push(nodeValuePath);\n return {\n ...node,\n [labelField]: nodePath[labelField as string].join(pathSeparator),\n [valueField]: nodeValuePath\n };\n });\n\n if (multiple) {\n return joinValues\n ? nodesValuePath.join(delimiter)\n : extractValue\n ? nodesValuePath\n : selectedNodesPath;\n } else {\n return joinValues || extractValue\n ? selectedNodesPath[0][valueField]\n : selectedNodesPath[0];\n }\n }\n\n @autobind\n handleSelect(node: any, value?: any) {\n const {joinValues, valueField, onChange, enableNodePath} = this.props;\n\n if (node[valueField as string] === undefined) {\n if (node.defer && !node.loaded) {\n this.toggleUnfolded(node);\n }\n\n return;\n }\n\n this.setState(\n {\n value: [node]\n },\n () => {\n onChange(\n enableNodePath\n ? this.transform2NodePath(node)\n : joinValues\n ? node[valueField as string]\n : node\n );\n }\n );\n }\n\n @autobind\n handleCheck(item: any, checked: boolean) {\n const props = this.props;\n const value = this.state.value.concat();\n const idx = value.indexOf(item);\n const onlyChildren = props.onlyChildren;\n\n if (checked) {\n ~idx || value.push(item);\n\n // cascade 为 true 表示父节点跟子节点没有级联关系。\n if (!props.cascade) {\n const children = item.children ? item.children.concat([]) : [];\n\n if (onlyChildren) {\n // 父级选中的时候,子节点也都选中,但是自己不选中\n !~idx && children.length && value.pop();\n\n while (children.length) {\n let child = children.shift();\n let index = value.indexOf(child);\n\n if (child.children && child.children.length) {\n children.push.apply(children, child.children);\n } else if (!~index && child.value !== 'undefined') {\n value.push(child);\n }\n }\n } else {\n // 只要父节点选择了,子节点就不需要了,全部去掉勾选. withChildren时相反\n while (children.length) {\n let child = children.shift();\n let index = value.indexOf(child);\n\n if (~index) {\n value.splice(index, 1);\n }\n\n if (props.withChildren) {\n value.push(child);\n }\n\n if (child.children && child.children.length) {\n children.push.apply(children, child.children);\n }\n }\n\n let toCheck = item;\n\n while (true) {\n const parent = getTreeParent(props.options, toCheck);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (\n parent.children.every((child: any) => ~value.indexOf(child))\n ) {\n if (!props.withChildren) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index) {\n value.splice(index, 1);\n }\n });\n }\n value.push(parent);\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n }\n } else {\n ~idx && value.splice(idx, 1);\n\n if (!props.cascade && (props.withChildren || onlyChildren)) {\n const children = item.children ? item.children.concat([]) : [];\n while (children.length) {\n let child = children.shift();\n let index = value.indexOf(child);\n\n if (~index) {\n value.splice(index, 1);\n }\n\n if (child.children && child.children.length) {\n children.push.apply(children, child.children);\n }\n }\n }\n }\n\n this.setState(\n {\n value\n },\n () => {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n onChange,\n enableNodePath\n } = props;\n\n onChange(\n enableNodePath\n ? this.transform2NodePath(value)\n : joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value\n );\n }\n );\n }\n\n @autobind\n handleAdd(parent: Option | null = null) {\n const {bultinCUD, onAdd, options} = this.props;\n\n if (!bultinCUD) {\n const idxes = findTreeIndex(options, item => item === parent) || [];\n return onAdd && onAdd(idxes.concat(0));\n } else {\n this.setState({\n isEditing: false,\n isAdding: true,\n addingParent: parent\n });\n }\n }\n\n @autobind\n handleEdit(item: Option) {\n const {bultinCUD, onEdit, labelField, options} = this.props;\n\n if (!bultinCUD) {\n onEdit?.(item);\n } else {\n this.setState({\n isEditing: true,\n isAdding: false,\n editingItem: item,\n inputValue: item[labelField]\n });\n }\n }\n\n @autobind\n handleRemove(item: Option) {\n const {onDelete} = this.props;\n\n onDelete && onDelete(item);\n }\n\n @autobind\n handleInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n this.setState({\n inputValue: e.currentTarget.value\n });\n }\n\n @autobind\n handleConfirm() {\n const {\n inputValue: value,\n isAdding,\n addingParent,\n editingItem,\n isEditing\n } = this.state;\n\n if (!value) {\n return;\n }\n\n const {labelField, onAdd, options, onEdit} = this.props;\n this.setState(\n {\n inputValue: '',\n isAdding: false,\n isEditing: false\n },\n () => {\n if (isAdding && onAdd) {\n const idxes =\n (addingParent &&\n findTreeIndex(options, item => item === addingParent)) ||\n [];\n onAdd(idxes.concat(0), {[labelField]: value}, true);\n } else if (isEditing && onEdit) {\n onEdit(\n {\n ...editingItem,\n [labelField]: value\n },\n editingItem!,\n true\n );\n }\n }\n );\n }\n\n @autobind\n handleCancel() {\n this.setState({\n inputValue: '',\n isAdding: false,\n isEditing: false\n });\n }\n\n renderInput(prfix: JSX.Element | null = null) {\n const {classnames: cx, translate: __} = this.props;\n const {inputValue} = this.state;\n\n return (\n <div className={cx('Tree-itemLabel')}>\n <div className={cx('Tree-itemInput')}>\n {prfix}\n <input\n onChange={this.handleInputChange}\n value={inputValue}\n placeholder={__('placeholder.enter')}\n />\n <a data-tooltip={__('cancel')} onClick={this.handleCancel}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n <a data-tooltip={__('confirm')} onClick={this.handleConfirm}>\n <Icon icon=\"check\" className=\"icon\" />\n </a>\n </div>\n </div>\n );\n }\n\n getOffsetPosition(element: HTMLElement) {\n let left = 0;\n let top = 0;\n\n while (element.offsetParent) {\n left += element.offsetLeft;\n top += element.offsetTop;\n element = element.offsetParent as HTMLElement;\n }\n return {left, top};\n }\n\n @autobind\n getDropInfo(e: React.DragEvent<Element>, node: Option): IDropInfo {\n let rect = e.currentTarget.getBoundingClientRect();\n\n const dragNode = this.dragNode;\n const deltaX = Math.min(50, rect.width * 0.3);\n const gap = node?.children?.length ? 0 : 16;\n\n // 计算相对位置\n let offset = this.getOffsetPosition(this.root.current!);\n let targetOffset = this.getOffsetPosition(e.currentTarget as HTMLElement);\n let left = targetOffset.left - offset.left;\n let top = targetOffset.top - offset.top;\n\n let {clientX, clientY} = e;\n\n let position: IDropInfo['position'] =\n clientY >= rect.top + rect.height / 2 ? 'bottom' : 'top';\n let indicator;\n if (position === 'bottom' && clientX >= this.startPoint.x + deltaX) {\n position = 'self';\n indicator = {\n top: top,\n left: left,\n width: rect.width,\n height: rect.height\n };\n } else {\n indicator = {\n top: position === 'bottom' ? top + rect.height : top,\n left: left + gap,\n width: rect.width - gap\n };\n }\n\n return {\n node,\n dragNode,\n position,\n indicator\n };\n }\n\n @autobind\n updateDropIndicator(e: React.DragEvent<Element>, node: Option) {\n const gap = node?.children?.length ? 0 : 16;\n this.dropInfo = this.getDropInfo(e, node);\n let {dragNode, indicator} = this.dropInfo;\n if (node === dragNode) {\n this.setState({dropIndicator: undefined});\n return;\n }\n this.setState({\n dropIndicator: indicator\n });\n }\n\n @autobind\n onDragStart(node: Option) {\n let draggable = this.props.draggable;\n return (e: React.DragEvent<Element>) => {\n if (draggable) {\n e.dataTransfer.effectAllowed = 'copyMove';\n\n this.dragNode = node;\n this.dropInfo = null;\n this.startPoint = {\n x: e.clientX,\n y: e.clientY\n };\n\n if (node?.children?.length) {\n this.unfolded.set(node, false);\n this.forceUpdate();\n }\n } else {\n this.dragNode = null;\n this.dropInfo = null;\n }\n e.stopPropagation();\n };\n }\n\n @autobind\n onDragOver(node: Option) {\n return (e: React.DragEvent<Element>) => {\n if (!this.dragNode) {\n return;\n }\n this.updateDropIndicator(e, node);\n e.preventDefault();\n };\n }\n\n @autobind\n onDragEnd(dragNode: Option) {\n return (e: React.DragEvent<Element>) => {\n this.setState({\n dropIndicator: undefined\n });\n let node = this.dropInfo?.node;\n if (!this.dropInfo || !node || dragNode === node) {\n return;\n }\n this.props.onMove?.(this.dropInfo);\n this.dragNode = null;\n this.dropInfo = null;\n e.preventDefault();\n };\n }\n\n @autobind\n renderList(\n list: Options,\n value: Option[],\n uncheckable: boolean\n ): {dom: Array<JSX.Element | null>; childrenChecked: number} {\n const {\n itemClassName,\n showIcon,\n showRadio,\n multiple,\n disabled,\n labelField,\n valueField,\n iconField,\n disabledField,\n cascade,\n selfDisabledAffectChildren,\n onlyChildren,\n classnames: cx,\n highlightTxt,\n options,\n maxLength,\n minLength,\n creatable,\n editable,\n removable,\n createTip,\n editTip,\n removeTip,\n translate: __,\n draggable\n } = this.props;\n const {\n value: stateValue,\n isAdding,\n addingParent,\n editingItem,\n isEditing\n } = this.state;\n\n let childrenChecked = 0;\n let ret = list.map((item, key) => {\n if (!isVisible(item as any, options)) {\n return null;\n }\n\n const checked = !!~value.indexOf(item);\n const selfDisabled = item[disabledField];\n let selfChecked = !!uncheckable || checked;\n\n let childrenItems = null;\n let selfChildrenChecked = false;\n if (item.children && item.children.length) {\n childrenItems = this.renderList(\n item.children,\n value,\n cascade\n ? false\n : uncheckable ||\n (selfDisabledAffectChildren ? selfDisabled : false) ||\n (multiple && checked)\n );\n selfChildrenChecked = !!childrenItems.childrenChecked;\n if (\n !selfChecked &&\n onlyChildren &&\n item.children.length === childrenItems.childrenChecked\n ) {\n selfChecked = true;\n }\n childrenItems = childrenItems.dom;\n }\n\n if ((onlyChildren ? selfChecked : selfChildrenChecked) || checked) {\n childrenChecked++;\n }\n\n let nodeDisabled = !!uncheckable || !!disabled || selfDisabled;\n\n if (\n !nodeDisabled &&\n ((maxLength && !selfChecked && stateValue.length >= maxLength) ||\n (minLength && selfChecked && stateValue.length <= minLength))\n ) {\n nodeDisabled = true;\n }\n\n const checkbox: JSX.Element | null = multiple ? (\n <Checkbox\n size=\"sm\"\n disabled={nodeDisabled}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n onChange={this.handleCheck.bind(this, item, !selfChecked)}\n />\n ) : showRadio ? (\n <Checkbox\n size=\"sm\"\n disabled={nodeDisabled}\n checked={checked}\n onChange={this.handleSelect.bind(this, item)}\n />\n ) : null;\n\n const isLeaf =\n (!item.children || !item.children.length) && !item.placeholder;\n\n const iconValue = item[iconField] || (childrenItems ? 'folder' : 'file');\n\n return (\n <li\n key={key}\n className={cx(`Tree-item ${itemClassName || ''}`, {\n 'Tree-item--isLeaf': isLeaf\n })}\n >\n {isEditing && editingItem === item ? (\n this.renderInput(checkbox)\n ) : (\n <div\n className={cx('Tree-itemLabel', {\n 'is-children-checked':\n multiple && !cascade && selfChildrenChecked && !nodeDisabled,\n 'is-checked': checked,\n 'is-disabled': nodeDisabled\n })}\n draggable={draggable}\n onDragStart={this.onDragStart(item)}\n onDragOver={this.onDragOver(item)}\n onDragEnd={this.onDragEnd(item)}\n >\n {draggable && (\n <a className={cx('Tree-itemDrager drag-bar')}>\n <Icon icon=\"drag-bar\" className=\"icon\" />\n </a>\n )}\n\n {item.loading ? (\n <Spinner\n size=\"sm\"\n show\n icon=\"reload\"\n spinnerClassName={cx('Tree-spinner')}\n />\n ) : !isLeaf || (item.defer && !item.loaded) ? (\n <div\n onClick={() => this.toggleUnfolded(item)}\n className={cx('Tree-itemArrow', {\n 'is-folded': !this.isUnfolded(item)\n })}\n >\n <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n </div>\n ) : (\n <span className={cx('Tree-itemArrowPlaceholder')} />\n )}\n\n {checkbox}\n\n {showIcon ? (\n <i\n className={cx(\n `Tree-itemIcon ${\n childrenItems ? 'Tree-folderIcon' : 'Tree-leafIcon'\n }`\n )}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(item, !selfChecked)\n : this.handleSelect(item))\n }\n >\n {getIcon(iconValue) ? (\n <Icon icon={iconValue} className=\"icon\" />\n ) : (\n <i className={iconValue}></i>\n )}\n </i>\n ) : null}\n\n <span\n className={cx('Tree-itemText')}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(item, !selfChecked)\n : this.handleSelect(item))\n }\n >\n {highlightTxt\n ? highlight(`${item[labelField]}`, highlightTxt)\n : `${item[labelField]}`}\n </span>\n\n {!nodeDisabled &&\n !isAdding &&\n !isEditing &&\n !(item.defer && !item.loaded) ? (\n <div className={cx('Tree-item-icons')}>\n {creatable && hasAbility(item, 'creatable') ? (\n <a\n onClick={this.handleAdd.bind(this, item)}\n data-tooltip={__(createTip)}\n data-position=\"left\"\n >\n <Icon icon=\"plus\" className=\"icon\" />\n </a>\n ) : null}\n\n {removable && hasAbility(item, 'removable') ? (\n <a\n onClick={this.handleRemove.bind(this, item)}\n data-tooltip={__(removeTip)}\n data-position=\"left\"\n >\n <Icon icon=\"minus\" className=\"icon\" />\n </a>\n ) : null}\n\n {editable && hasAbility(item, 'editable') ? (\n <a\n onClick={this.handleEdit.bind(this, item)}\n data-tooltip={__(editTip)}\n data-position=\"left\"\n >\n <Icon icon=\"pencil\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n ) : null}\n </div>\n )}\n {/* 有children而且为展开状态 或者 添加child时 */}\n {(childrenItems && this.isUnfolded(item)) ||\n (isAdding && addingParent === item) ? (\n <ul className={cx('Tree-sublist')}>\n {isAdding && addingParent === item ? (\n <li className={cx('Tree-item')}>\n {this.renderInput(\n checkbox\n ? React.cloneElement(checkbox, {\n checked: false,\n disabled: true\n })\n : null\n )}\n </li>\n ) : null}\n {childrenItems}\n </ul>\n ) : !childrenItems && item.placeholder && this.isUnfolded(item) ? (\n <ul className={cx('Tree-sublist')}>\n <li className={cx('Tree-item')}>\n <div className={cx('Tree-placeholder')}>{item.placeholder}</div>\n </li>\n </ul>\n ) : null}\n </li>\n );\n });\n\n return {\n dom: ret,\n childrenChecked\n };\n }\n\n render() {\n const {\n className,\n placeholder,\n hideRoot,\n rootLabel,\n showOutline,\n showIcon,\n classnames: cx,\n creatable,\n rootCreatable,\n rootCreateTip,\n disabled,\n draggable,\n translate: __\n } = this.props;\n let options = this.props.options;\n const {\n value,\n isAdding,\n addingParent,\n isEditing,\n inputValue,\n dropIndicator\n } = this.state;\n\n let addBtn = null;\n\n if (creatable && rootCreatable !== false && hideRoot) {\n addBtn = (\n <a\n className={cx('Tree-addTopBtn', {\n 'is-disabled': isAdding || isEditing\n })}\n onClick={this.handleAdd.bind(this, null)}\n >\n <Icon icon=\"plus\" className=\"icon\" />\n <span>{__(rootCreateTip)}</span>\n </a>\n );\n }\n\n return (\n <div\n className={cx(`Tree ${className || ''}`, {\n 'Tree--outline': showOutline,\n 'is-disabled': disabled,\n 'is-draggable': draggable\n })}\n ref={this.root}\n >\n {(options && options.length) || addBtn || hideRoot === false ? (\n <ul className={cx('Tree-list')}>\n {hideRoot ? (\n <>\n {addBtn}\n {isAdding && !addingParent ? (\n <li className={cx('Tree-item')}>{this.renderInput()}</li>\n ) : null}\n {this.renderList(options, value, false).dom}\n </>\n ) : (\n <li\n className={cx('Tree-rootItem', {\n 'is-checked': !value || !value.length\n })}\n >\n <div className={cx('Tree-itemLabel')}>\n <span\n className={cx('Tree-itemText')}\n onClick={this.clearSelect}\n >\n {showIcon ? (\n <i className={cx('Tree-itemIcon Tree-rootIcon')}>\n <Icon icon=\"home\" className=\"icon\" />\n </i>\n ) : null}\n {rootLabel}\n </span>\n {!disabled &&\n creatable &&\n rootCreatable !== false &&\n !isAdding &&\n !isEditing ? (\n <div className={cx('Tree-item-icons')}>\n {creatable ? (\n <a\n onClick={this.handleAdd.bind(this, null)}\n data-tooltip={rootCreateTip}\n data-position=\"left\"\n >\n <Icon icon=\"plus\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n ) : null}\n </div>\n <ul className={cx('Tree-sublist')}>\n {isAdding && !addingParent ? (\n <li className={cx('Tree-item')}>{this.renderInput()}</li>\n ) : null}\n {this.renderList(options, value, false).dom}\n </ul>\n </li>\n )}\n </ul>\n ) : (\n <div className={cx('Tree-placeholder')}>{placeholder}</div>\n )}\n\n {dropIndicator && (\n <div\n className={cx('Tree-dropIndicator', {\n 'Tree-dropIndicator--hover': !!dropIndicator.height\n })}\n style={dropIndicator}\n />\n )}\n </div>\n );\n }\n}\n\nexport default themeable(localeable(TreeSelector));\n"
12
12
  ]
13
13
  }