shineout 1.7.0 → 1.7.1-beta.3

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 (497) hide show
  1. package/css/Alert/index.d.ts +63 -0
  2. package/css/AnimationList/AbsoluteList.js +89 -48
  3. package/css/Breadcrumb/index.d.ts +68 -0
  4. package/css/Button/index.d.ts +160 -0
  5. package/css/Card/index.d.ts +161 -0
  6. package/css/CardGroup/CardGroup.js +1 -1
  7. package/css/CardGroup/index.d.ts +119 -0
  8. package/css/Carousel/index.d.ts +59 -0
  9. package/css/Cascader/index.d.ts +185 -0
  10. package/css/Checkbox/index.d.ts +120 -0
  11. package/css/DataList/index.d.ts +197 -0
  12. package/css/DatePicker/Container.js +1 -1
  13. package/css/DatePicker/index.d.ts +262 -0
  14. package/css/DatePicker/utils.js +1 -1
  15. package/css/Datum/List.js +54 -17
  16. package/css/Divider/index.d.ts +40 -0
  17. package/css/Drawer/index.d.ts +165 -0
  18. package/css/Dropdown/index.d.ts +122 -0
  19. package/css/EditableArea/index.d.ts +99 -0
  20. package/css/Form/Item.js +6 -3
  21. package/css/Form/formContext.js +6 -3
  22. package/css/Form/index.d.ts +466 -0
  23. package/css/Form/index.js +1 -1
  24. package/css/Form/inputable.js +63 -52
  25. package/css/Form/styles/form.css +12 -0
  26. package/css/Gap/index.d.ts +28 -0
  27. package/css/Grid/index.d.ts +38 -0
  28. package/css/Icon/index.d.ts +69 -0
  29. package/css/Image/index.d.ts +194 -0
  30. package/css/Input/Number.js +3 -1
  31. package/css/Input/index.d.ts +258 -0
  32. package/css/Menu/index.d.ts +147 -0
  33. package/css/Message/index.d.ts +72 -0
  34. package/css/Modal/events.js +71 -13
  35. package/css/Modal/index.d.ts +330 -0
  36. package/css/Pagination/index.d.ts +129 -0
  37. package/css/Popover/index.d.ts +241 -0
  38. package/css/Popover/styles/popover.css +1 -1
  39. package/css/Progress/index.d.ts +108 -0
  40. package/css/Radio/index.d.ts +61 -0
  41. package/css/Rate/index.d.ts +65 -0
  42. package/css/Rule/index.d.ts +90 -0
  43. package/css/Select/BoxList.js +5 -3
  44. package/css/Select/OptionList.js +5 -3
  45. package/css/Select/OptionTree.js +5 -3
  46. package/css/Select/Select.js +28 -8
  47. package/css/Select/index.d.ts +366 -0
  48. package/css/Slider/index.d.ts +102 -0
  49. package/css/Spin/index.d.ts +74 -0
  50. package/css/Sticky/index.d.ts +56 -0
  51. package/css/Switch/index.d.ts +47 -0
  52. package/css/Table/SeperateTable.js +26 -18
  53. package/css/Table/Table.js +1 -2
  54. package/css/Table/index.d.ts +541 -0
  55. package/css/Tabs/index.d.ts +225 -0
  56. package/css/Tag/Tag.js +8 -2
  57. package/css/Tag/index.d.ts +79 -0
  58. package/css/Textarea/index.d.ts +104 -0
  59. package/css/Tooltip/index.d.ts +69 -0
  60. package/css/Transfer/Transfer.js +13 -8
  61. package/css/Transfer/btns.js +25 -14
  62. package/css/Transfer/index.d.ts +157 -0
  63. package/css/Tree/index.d.ts +225 -0
  64. package/css/Tree/styles/tree.css +1 -1
  65. package/css/TreeSelect/TreeSelect.js +1 -1
  66. package/css/TreeSelect/index.d.ts +297 -0
  67. package/css/TreeSelect/styles/treeSelect.css +2 -4
  68. package/css/Upload/ImageResult.js +14 -3
  69. package/css/Upload/index.d.ts +529 -0
  70. package/css/index.d.ts +58 -0
  71. package/css/index.js +1 -1
  72. package/css/styles/expose.css +4 -1
  73. package/css/utils/numbers.js +59 -0
  74. package/css/utils/vars-inject.js +13 -0
  75. package/dist/shineout.js +4110 -3763
  76. package/dist/shineout.js.map +1 -1
  77. package/dist/shineout.min.js +1 -1
  78. package/dist/theme.antd.css +1 -1
  79. package/dist/theme.antd2.css +1 -1
  80. package/dist/theme.default.css +1 -1
  81. package/dist/theme.shineout.css +1 -1
  82. package/es/@types/common.d.ts +1 -1
  83. package/es/Alert/index.js +127 -107
  84. package/es/Alert/styles/index.js +3 -4
  85. package/es/AnimationList/AbsoluteList.js +267 -178
  86. package/es/AnimationList/LazyList.js +120 -92
  87. package/es/AnimationList/List.js +43 -23
  88. package/es/AnimationList/index.js +19 -14
  89. package/es/AnimationList/styles/index.js +3 -4
  90. package/es/Breadcrumb/index.js +77 -69
  91. package/es/Breadcrumb/styles/index.js +3 -4
  92. package/es/Button/Button.js +91 -74
  93. package/es/Button/Group.js +42 -28
  94. package/es/Button/Once.js +39 -23
  95. package/es/Button/index.js +7 -10
  96. package/es/Button/styles/index.js +3 -4
  97. package/es/Card/Accordion.js +58 -45
  98. package/es/Card/Body.js +55 -42
  99. package/es/Card/Card.js +85 -79
  100. package/es/Card/Footer.js +38 -15
  101. package/es/Card/Header.js +52 -34
  102. package/es/Card/Submit.js +51 -33
  103. package/es/Card/context.js +22 -16
  104. package/es/Card/index.js +16 -19
  105. package/es/Card/styles/index.js +3 -4
  106. package/es/CardGroup/CardGroup.js +94 -70
  107. package/es/CardGroup/Item.js +61 -43
  108. package/es/CardGroup/context.js +12 -10
  109. package/es/CardGroup/index.js +7 -10
  110. package/es/CardGroup/styles/index.js +3 -4
  111. package/es/Carousel/Item.js +31 -17
  112. package/es/Carousel/index.js +156 -123
  113. package/es/Carousel/styles/index.js +3 -4
  114. package/es/Cascader/Cascader.js +397 -346
  115. package/es/Cascader/FilterList.js +185 -142
  116. package/es/Cascader/Input.js +102 -79
  117. package/es/Cascader/List.js +66 -41
  118. package/es/Cascader/Node.js +153 -110
  119. package/es/Cascader/Result.js +286 -230
  120. package/es/Cascader/filter.js +92 -61
  121. package/es/Cascader/index.js +13 -18
  122. package/es/Cascader/styles/index.js +3 -4
  123. package/es/Checkbox/CheckItem.js +168 -154
  124. package/es/Checkbox/Checkbox.js +2 -3
  125. package/es/Checkbox/Group.js +106 -85
  126. package/es/Checkbox/context.js +12 -10
  127. package/es/Checkbox/index.js +14 -21
  128. package/es/Checkbox/styles/index.js +3 -4
  129. package/es/DataList/BaseItem.js +39 -21
  130. package/es/DataList/Extra.js +33 -17
  131. package/es/DataList/List.js +166 -140
  132. package/es/DataList/Meta.js +109 -74
  133. package/es/DataList/Pagination.js +9 -10
  134. package/es/DataList/index.js +13 -19
  135. package/es/DataList/styles/index.js +3 -4
  136. package/es/DatePicker/Container.js +469 -450
  137. package/es/DatePicker/Day.js +265 -258
  138. package/es/DatePicker/Icon.js +34 -20
  139. package/es/DatePicker/Month.js +101 -79
  140. package/es/DatePicker/Picker.js +110 -83
  141. package/es/DatePicker/Quick.js +52 -39
  142. package/es/DatePicker/Range.js +241 -192
  143. package/es/DatePicker/Text.js +103 -91
  144. package/es/DatePicker/Time.js +165 -147
  145. package/es/DatePicker/TimeScroll.js +148 -116
  146. package/es/DatePicker/Year.js +74 -53
  147. package/es/DatePicker/index.d.ts +5 -13
  148. package/es/DatePicker/index.js +16 -18
  149. package/es/DatePicker/paramUtils.js +92 -58
  150. package/es/DatePicker/styles/index.js +3 -4
  151. package/es/DatePicker/utils.js +189 -198
  152. package/es/DatePicker/value.js +139 -98
  153. package/es/Datum/Form.js +333 -282
  154. package/es/Datum/List.js +329 -181
  155. package/es/Datum/Tree.js +298 -239
  156. package/es/Datum/hoc.js +104 -69
  157. package/es/Datum/index.js +7 -8
  158. package/es/Datum/types.js +20 -25
  159. package/es/Divider/index.js +50 -32
  160. package/es/Divider/styles/index.js +3 -4
  161. package/es/Drawer/index.d.ts +165 -0
  162. package/es/Drawer/index.js +14 -9
  163. package/es/Dropdown/Item.js +56 -43
  164. package/es/Dropdown/index.js +273 -259
  165. package/es/Dropdown/styles/index.js +3 -4
  166. package/es/EditableArea/EditableArea.js +157 -136
  167. package/es/EditableArea/index.js +8 -15
  168. package/es/EditableArea/styles/index.js +3 -4
  169. package/es/Form/Block.js +83 -57
  170. package/es/Form/BlockField.js +32 -17
  171. package/es/Form/Field.js +56 -36
  172. package/es/Form/FieldError.js +27 -21
  173. package/es/Form/FieldSet.js +214 -156
  174. package/es/Form/Flow.js +51 -32
  175. package/es/Form/Form.js +178 -144
  176. package/es/Form/Item.js +182 -154
  177. package/es/Form/Loop.js +202 -146
  178. package/es/Form/formButton.js +58 -42
  179. package/es/Form/formContext.js +104 -83
  180. package/es/Form/index.d.ts +40 -24
  181. package/es/Form/index.js +40 -45
  182. package/es/Form/inputable.js +369 -285
  183. package/es/Form/mode.js +15 -9
  184. package/es/Form/styles/form.less +12 -0
  185. package/es/Form/styles/index.js +4 -5
  186. package/es/Gap/index.js +71 -47
  187. package/es/Gap/styles/index.js +3 -4
  188. package/es/Gap/support.js +11 -14
  189. package/es/Grid/index.js +88 -58
  190. package/es/Grid/utils.js +57 -58
  191. package/es/Icon/Icon.js +43 -42
  192. package/es/Icon/index.d.ts +2 -3
  193. package/es/Icon/index.js +39 -22
  194. package/es/Icon/styles/index.js +3 -4
  195. package/es/Image/Gallery.js +128 -113
  196. package/es/Image/Group.js +60 -36
  197. package/es/Image/Image.js +227 -153
  198. package/es/Image/Magnify.js +123 -94
  199. package/es/Image/events.js +29 -26
  200. package/es/Image/index.js +6 -9
  201. package/es/Image/styles/index.js +3 -4
  202. package/es/Input/Group.js +17 -11
  203. package/es/Input/Input.js +158 -134
  204. package/es/Input/Number.js +199 -174
  205. package/es/Input/Password.js +54 -31
  206. package/es/Input/clear.js +41 -25
  207. package/es/Input/index.js +23 -35
  208. package/es/Input/styles/index.js +3 -4
  209. package/es/Lazyload/index.js +63 -42
  210. package/es/Lazyload/styles/index.js +3 -4
  211. package/es/Menu/Item.js +275 -236
  212. package/es/Menu/List.js +75 -67
  213. package/es/Menu/Root.js +372 -334
  214. package/es/Menu/context.js +18 -12
  215. package/es/Menu/index.js +3 -5
  216. package/es/Menu/styles/index.js +3 -4
  217. package/es/Message/Container.js +155 -119
  218. package/es/Message/index.js +42 -30
  219. package/es/Message/messager.js +29 -33
  220. package/es/Message/styles/index.js +3 -4
  221. package/es/Modal/Modal.js +80 -60
  222. package/es/Modal/Panel.js +258 -234
  223. package/es/Modal/context.js +15 -15
  224. package/es/Modal/events.js +220 -155
  225. package/es/Modal/index.js +12 -14
  226. package/es/Modal/styles/index.js +3 -4
  227. package/es/Pagination/Item.js +46 -32
  228. package/es/Pagination/Jumper.js +77 -67
  229. package/es/Pagination/Links.js +110 -82
  230. package/es/Pagination/Next.js +52 -31
  231. package/es/Pagination/PageSizeList.js +57 -40
  232. package/es/Pagination/Pagination.js +78 -54
  233. package/es/Pagination/Prev.js +49 -30
  234. package/es/Pagination/Simple.js +32 -18
  235. package/es/Pagination/index.js +68 -41
  236. package/es/Pagination/styles/index.js +3 -4
  237. package/es/Popover/Confirm.js +107 -64
  238. package/es/Popover/Panel.js +284 -231
  239. package/es/Popover/context.js +15 -12
  240. package/es/Popover/events.js +80 -86
  241. package/es/Popover/index.js +12 -14
  242. package/es/Popover/styles/index.js +3 -4
  243. package/es/Popover/styles/popover.less +3 -3
  244. package/es/Progress/Circle.js +70 -59
  245. package/es/Progress/Line.js +51 -39
  246. package/es/Progress/Popup.js +42 -24
  247. package/es/Progress/analyzeColor.js +18 -9
  248. package/es/Progress/index.js +13 -15
  249. package/es/Progress/styles/index.js +3 -4
  250. package/es/Radio/Group.js +105 -94
  251. package/es/Radio/Radio.js +2 -3
  252. package/es/Radio/index.js +15 -17
  253. package/es/Radio/styles/index.js +1 -1
  254. package/es/Rate/Rate.js +216 -167
  255. package/es/Rate/index.js +17 -10
  256. package/es/Rate/styles/index.js +3 -4
  257. package/es/Rule/convert.js +48 -57
  258. package/es/Rule/index.js +63 -40
  259. package/es/Rule/length.js +53 -38
  260. package/es/Rule/regExp.js +23 -14
  261. package/es/Rule/required.js +26 -18
  262. package/es/Rule/styles/index.js +1 -1
  263. package/es/Rule/type.js +26 -18
  264. package/es/Scroll/Bar.js +145 -117
  265. package/es/Scroll/Scroll.js +277 -217
  266. package/es/Scroll/context.js +20 -13
  267. package/es/Scroll/fixedLength.js +33 -24
  268. package/es/Scroll/index.js +89 -55
  269. package/es/Scroll/styles/index.js +3 -4
  270. package/es/Select/BoxList.js +218 -188
  271. package/es/Select/BoxOption.js +64 -38
  272. package/es/Select/FlexBox.js +107 -75
  273. package/es/Select/FlexResult.js +65 -49
  274. package/es/Select/Input.js +137 -113
  275. package/es/Select/More.js +119 -118
  276. package/es/Select/Option.js +73 -52
  277. package/es/Select/OptionList.js +236 -198
  278. package/es/Select/OptionTree.js +111 -94
  279. package/es/Select/Result.js +294 -269
  280. package/es/Select/Select.js +523 -480
  281. package/es/Select/filter.js +221 -148
  282. package/es/Select/group.js +74 -45
  283. package/es/Select/index.d.ts +28 -19
  284. package/es/Select/index.js +32 -31
  285. package/es/Select/styles/index.js +3 -4
  286. package/es/Select/styles/select.less +1 -1
  287. package/es/Slider/Container.js +145 -132
  288. package/es/Slider/Indicator.js +28 -13
  289. package/es/Slider/Slider.js +132 -103
  290. package/es/Slider/index.js +5 -8
  291. package/es/Slider/styles/index.js +3 -4
  292. package/es/Slider/utils.js +26 -30
  293. package/es/Spin/Multiple.js +153 -109
  294. package/es/Spin/Simple.js +33 -22
  295. package/es/Spin/Spin.js +29 -29
  296. package/es/Spin/index.js +66 -84
  297. package/es/Spin/styles/index.js +27 -30
  298. package/es/Sticky/context.js +12 -10
  299. package/es/Sticky/index.js +255 -194
  300. package/es/Sticky/styles/index.js +1 -1
  301. package/es/Switch/Switch.js +2 -3
  302. package/es/Switch/index.js +8 -14
  303. package/es/Table/Checkbox.js +68 -39
  304. package/es/Table/CheckboxAll.js +121 -64
  305. package/es/Table/Colgroup.js +72 -47
  306. package/es/Table/Expand.js +63 -43
  307. package/es/Table/SeperateTable.js +596 -436
  308. package/es/Table/SimpleTable.js +215 -136
  309. package/es/Table/Sorter.js +83 -62
  310. package/es/Table/Table.js +157 -157
  311. package/es/Table/Tbody.js +240 -176
  312. package/es/Table/Td.js +169 -130
  313. package/es/Table/Thead.js +206 -177
  314. package/es/Table/Tr.js +249 -205
  315. package/es/Table/TreeExpand.js +151 -116
  316. package/es/Table/context.js +15 -15
  317. package/es/Table/fixedAuto.js +82 -59
  318. package/es/Table/index.d.ts +1 -1
  319. package/es/Table/index.js +309 -228
  320. package/es/Table/resizable.js +89 -56
  321. package/es/Table/select.js +238 -215
  322. package/es/Table/styles/index.js +3 -4
  323. package/es/Tabs/Header.js +203 -160
  324. package/es/Tabs/Link.js +46 -28
  325. package/es/Tabs/Panel.js +49 -33
  326. package/es/Tabs/Tab.js +97 -79
  327. package/es/Tabs/Tabs.js +211 -177
  328. package/es/Tabs/Wrapper.js +37 -17
  329. package/es/Tabs/index.js +7 -10
  330. package/es/Tabs/styles/index.js +3 -4
  331. package/es/Tag/Input.js +70 -54
  332. package/es/Tag/Tag.js +198 -152
  333. package/es/Tag/index.js +5 -8
  334. package/es/Tag/styles/index.js +3 -4
  335. package/es/Textarea/Textarea.js +139 -118
  336. package/es/Textarea/index.js +10 -19
  337. package/es/Tooltip/Container.js +140 -127
  338. package/es/Tooltip/events.js +49 -55
  339. package/es/Tooltip/index.js +5 -8
  340. package/es/Tooltip/styles/index.js +3 -4
  341. package/es/Transfer/Card.js +212 -177
  342. package/es/Transfer/Transfer.js +165 -153
  343. package/es/Transfer/btns.js +100 -71
  344. package/es/Transfer/context.js +2 -3
  345. package/es/Transfer/filter.js +65 -35
  346. package/es/Transfer/index.js +9 -13
  347. package/es/Transfer/item.js +66 -41
  348. package/es/Transfer/select.js +15 -16
  349. package/es/Transfer/styles/index.js +3 -4
  350. package/es/Tree/Checkbox.js +72 -50
  351. package/es/Tree/Content.js +136 -95
  352. package/es/Tree/List.js +82 -53
  353. package/es/Tree/Node.js +237 -202
  354. package/es/Tree/Root.js +23 -19
  355. package/es/Tree/Tree.js +262 -197
  356. package/es/Tree/index.js +6 -9
  357. package/es/Tree/styles/index.js +3 -4
  358. package/es/Tree/styles/tree.less +1 -1
  359. package/es/Tree/toggle.js +89 -51
  360. package/es/TreeSelect/Input.js +73 -60
  361. package/es/TreeSelect/Result.js +210 -169
  362. package/es/TreeSelect/TreeSelect.js +328 -313
  363. package/es/TreeSelect/datum.js +56 -44
  364. package/es/TreeSelect/filter.js +134 -96
  365. package/es/TreeSelect/index.d.ts +5 -3
  366. package/es/TreeSelect/index.js +15 -23
  367. package/es/TreeSelect/styles/index.js +3 -4
  368. package/es/TreeSelect/styles/treeSelect.less +4 -5
  369. package/es/TreeSelect/tiled.js +143 -106
  370. package/es/Upload/Dragger.js +63 -39
  371. package/es/Upload/Drop.js +79 -57
  372. package/es/Upload/File.js +61 -48
  373. package/es/Upload/FileInput.js +53 -40
  374. package/es/Upload/Image.js +158 -115
  375. package/es/Upload/ImageFile.js +63 -43
  376. package/es/Upload/ImageResult.js +141 -109
  377. package/es/Upload/Progress.js +117 -105
  378. package/es/Upload/RemoveConfirm.js +58 -42
  379. package/es/Upload/Result.js +73 -58
  380. package/es/Upload/Upload.js +649 -490
  381. package/es/Upload/accept.js +33 -13
  382. package/es/Upload/context.js +12 -10
  383. package/es/Upload/index.d.ts +5 -5
  384. package/es/Upload/index.js +16 -20
  385. package/es/Upload/request.js +48 -46
  386. package/es/Upload/styles/index.js +3 -4
  387. package/es/component.js +45 -24
  388. package/es/config.js +27 -19
  389. package/es/context/implementation.js +132 -94
  390. package/es/context/index.js +3 -4
  391. package/es/hoc/coin.js +118 -81
  392. package/es/hoc/config.js +31 -17
  393. package/es/hoc/delay.js +99 -55
  394. package/es/hoc/draggable.js +90 -80
  395. package/es/hoc/fetch.js +56 -33
  396. package/es/hoc/hidable.js +119 -98
  397. package/es/hoc/inputBorder.js +158 -158
  398. package/es/hoc/moveable.js +124 -96
  399. package/es/hoc/pagable.js +74 -55
  400. package/es/hoc/resizable.js +132 -100
  401. package/es/hoc/styles/index.js +7 -8
  402. package/es/hoc/trim.js +54 -32
  403. package/es/icons/Caret.js +14 -15
  404. package/es/icons/index.js +31 -85
  405. package/es/index.d.ts +58 -0
  406. package/es/index.js +58 -57
  407. package/es/locale/en_US.js +9 -30
  408. package/es/locale/index.js +13 -14
  409. package/es/locale/zh-CN.js +9 -17
  410. package/es/styles/expose.js +3 -4
  411. package/es/styles/expose.less +3 -0
  412. package/es/styles/index.js +1 -1
  413. package/es/styles/themes/cssvar.less +4 -1
  414. package/es/utils/accept.js +15 -12
  415. package/es/utils/classname.js +23 -12
  416. package/es/utils/cleanProps.js +9 -21
  417. package/es/utils/clone.js +34 -27
  418. package/es/utils/color.js +310 -276
  419. package/es/utils/css-accessors.js +94 -45
  420. package/es/utils/dom/detect.js +29 -29
  421. package/es/utils/dom/document.js +23 -19
  422. package/es/utils/dom/element.js +139 -105
  423. package/es/utils/dom/getDataset.js +9 -9
  424. package/es/utils/dom/isDOMElement.js +3 -5
  425. package/es/utils/dom/normalizeWheel.js +32 -28
  426. package/es/utils/dom/popContainer.js +12 -13
  427. package/es/utils/dom/popover.js +79 -59
  428. package/es/utils/dom/ready.js +5 -6
  429. package/es/utils/dom/translate.js +10 -12
  430. package/es/utils/errors.js +47 -28
  431. package/es/utils/expose.js +97 -58
  432. package/es/utils/flat.js +122 -107
  433. package/es/utils/func.js +38 -20
  434. package/es/utils/hash.js +24 -20
  435. package/es/utils/index.js +24 -49
  436. package/es/utils/is.js +91 -70
  437. package/es/utils/lazyload.js +104 -86
  438. package/es/utils/notification.js +34 -20
  439. package/es/utils/numbers.js +86 -22
  440. package/es/utils/objects.js +221 -140
  441. package/es/utils/proptypes.js +21 -34
  442. package/es/utils/shallowEqual.js +46 -42
  443. package/es/utils/strings.js +50 -32
  444. package/es/utils/transform.js +24 -9
  445. package/es/utils/tree.js +78 -63
  446. package/es/utils/uid.js +14 -17
  447. package/es/utils/validate/index.js +71 -50
  448. package/es/utils/validate/isJson.js +7 -10
  449. package/es/utils/validate/nullable.js +10 -9
  450. package/es/utils/validate/range.js +22 -19
  451. package/es/utils/validate/rangeLength.js +19 -16
  452. package/es/utils/validate/regExp.js +10 -10
  453. package/es/utils/validate/required.js +11 -8
  454. package/es/utils/validate/type.js +56 -59
  455. package/es/utils/vars-inject.js +3421 -4233
  456. package/lib/@types/common.d.ts +1 -1
  457. package/lib/AnimationList/AbsoluteList.js +89 -48
  458. package/lib/CardGroup/CardGroup.js +1 -1
  459. package/lib/DatePicker/Container.js +1 -1
  460. package/lib/DatePicker/index.d.ts +5 -13
  461. package/lib/DatePicker/utils.js +1 -1
  462. package/lib/Datum/List.js +54 -17
  463. package/lib/Form/Item.js +6 -3
  464. package/lib/Form/formContext.js +6 -3
  465. package/lib/Form/index.d.ts +40 -24
  466. package/lib/Form/index.js +1 -1
  467. package/lib/Form/inputable.js +63 -52
  468. package/lib/Form/styles/form.less +12 -0
  469. package/lib/Icon/index.d.ts +2 -3
  470. package/lib/Input/Number.js +3 -1
  471. package/lib/Modal/events.js +71 -13
  472. package/lib/Popover/styles/popover.less +3 -3
  473. package/lib/Select/BoxList.js +5 -3
  474. package/lib/Select/OptionList.js +5 -3
  475. package/lib/Select/OptionTree.js +5 -3
  476. package/lib/Select/Select.js +28 -8
  477. package/lib/Select/index.d.ts +28 -19
  478. package/lib/Select/styles/select.less +1 -1
  479. package/lib/Table/SeperateTable.js +26 -18
  480. package/lib/Table/Table.js +1 -2
  481. package/lib/Table/index.d.ts +1 -1
  482. package/lib/Tag/Tag.js +8 -2
  483. package/lib/Transfer/Transfer.js +13 -8
  484. package/lib/Transfer/btns.js +25 -14
  485. package/lib/Tree/styles/tree.less +1 -1
  486. package/lib/TreeSelect/TreeSelect.js +1 -1
  487. package/lib/TreeSelect/index.d.ts +5 -3
  488. package/lib/TreeSelect/styles/treeSelect.less +4 -5
  489. package/lib/Upload/ImageResult.js +14 -3
  490. package/lib/Upload/index.d.ts +5 -5
  491. package/lib/index.d.ts +1 -1
  492. package/lib/index.js +1 -1
  493. package/lib/styles/expose.less +3 -0
  494. package/lib/styles/themes/cssvar.less +4 -1
  495. package/lib/utils/numbers.js +59 -0
  496. package/lib/utils/vars-inject.js +13 -0
  497. package/package.json +3 -2
@@ -1,576 +1,619 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { PureComponent } from '../component'
4
- import { getProps } from '../utils/proptypes'
5
- import { getUidStr } from '../utils/uid'
6
- import { selectClass } from './styles'
7
- import Result from './Result'
8
- import { getLocale } from '../locale'
9
- import OptionList from './OptionList'
10
- import OptionTree from './OptionTree'
11
- import BoxList from './BoxList'
12
- import { isObject } from '../utils/is'
13
- import { docSize } from '../utils/dom/document'
14
- import { getParent } from '../utils/dom/element'
15
- import { isRTL } from '../config'
16
- import absoluteList from '../AnimationList/AbsoluteList'
17
-
18
- const WrappedOptionList = absoluteList(OptionList)
19
- const WrappedBoxList = absoluteList(BoxList)
20
- const WrappedOptionTree = absoluteList(OptionTree)
21
-
22
- const isResult = (el, selector) => getParent(el, selector || `.${selectClass('result')}`)
23
-
24
- class Select extends PureComponent {
25
- constructor(props) {
26
- super(props)
27
-
28
- this.state = {
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
+ import React from 'react';
6
+ import PropTypes from 'prop-types';
7
+ import { PureComponent } from '../component';
8
+ import { getProps } from '../utils/proptypes';
9
+ import { getUidStr } from '../utils/uid';
10
+ import { selectClass } from './styles';
11
+ import Result from './Result';
12
+ import { getLocale } from '../locale';
13
+ import OptionList from './OptionList';
14
+ import OptionTree from './OptionTree';
15
+ import BoxList from './BoxList';
16
+ import { isObject } from '../utils/is';
17
+ import { docSize } from '../utils/dom/document';
18
+ import { getParent } from '../utils/dom/element';
19
+ import { isRTL } from '../config';
20
+ import absoluteList from '../AnimationList/AbsoluteList';
21
+ var WrappedOptionList = absoluteList(OptionList);
22
+ var WrappedBoxList = absoluteList(BoxList);
23
+ var WrappedOptionTree = absoluteList(OptionTree);
24
+
25
+ var isResult = function isResult(el, selector) {
26
+ return getParent(el, selector || "." + selectClass('result'));
27
+ };
28
+
29
+ var Select =
30
+ /*#__PURE__*/
31
+ function (_PureComponent) {
32
+ _inheritsLoose(Select, _PureComponent);
33
+
34
+ function Select(props) {
35
+ var _this;
36
+
37
+ _this = _PureComponent.call(this, props) || this;
38
+ _this.state = {
29
39
  control: 'mouse',
30
40
  focus: false,
31
- position: 'drop-down',
32
- }
33
-
34
- this.bindElement = this.bindElement.bind(this)
35
- this.bindOptionFunc = this.bindOptionFunc.bind(this)
36
- this.setInputReset = this.setInputReset.bind(this)
37
- this.shouldFocus = this.shouldFocus.bind(this)
38
-
39
- this.handleClick = this.handleClick.bind(this)
40
- this.handleFocus = this.handleFocus.bind(this)
41
- this.handleBlur = this.handleState.bind(this, false)
42
- this.handleClear = this.handleClear.bind(this)
43
- this.handleChange = this.handleChange.bind(this)
44
- this.handleRemove = this.handleChange.bind(this, false)
45
- this.handleKeyDown = this.handleKeyDown.bind(this)
46
- this.handleKeyUp = this.handleKeyUp.bind(this)
47
- this.handleInputFocus = this.handleInputFocus.bind(this)
48
- this.handleControlChange = this.handleControlChange.bind(this)
49
- this.handleClickAway = this.handleClickAway.bind(this)
50
- this.handleInputBlur = this.handleInputBlur.bind(this)
51
- this.bindFocusInputFunc = this.bindFocusInputFunc.bind(this)
52
- this.toInputTriggerCollapse = this.toInputTriggerCollapse.bind(this)
53
-
54
- this.renderItem = this.renderItem.bind(this)
55
- this.renderResult = this.renderResult.bind(this)
56
-
57
- this.handleDelete = this.handleDelete.bind(this)
58
-
59
- // option list not render till first focused
60
- this.renderPending = true
61
-
62
- this.optionList = {}
63
- this.selectId = `select_${getUidStr()}`
64
- // this.closeByResult = false
65
- this.mouseDown = false
66
-
67
- this.lastResult = undefined
68
-
69
- this.focusInput = null
70
- }
41
+ position: 'drop-down'
42
+ };
43
+ _this.bindElement = _this.bindElement.bind(_assertThisInitialized(_assertThisInitialized(_this)));
44
+ _this.bindOptionFunc = _this.bindOptionFunc.bind(_assertThisInitialized(_assertThisInitialized(_this)));
45
+ _this.setInputReset = _this.setInputReset.bind(_assertThisInitialized(_assertThisInitialized(_this)));
46
+ _this.shouldFocus = _this.shouldFocus.bind(_assertThisInitialized(_assertThisInitialized(_this)));
47
+ _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_assertThisInitialized(_this)));
48
+ _this.handleFocus = _this.handleFocus.bind(_assertThisInitialized(_assertThisInitialized(_this)));
49
+ _this.handleBlur = _this.handleState.bind(_assertThisInitialized(_assertThisInitialized(_this)), false);
50
+ _this.handleClear = _this.handleClear.bind(_assertThisInitialized(_assertThisInitialized(_this)));
51
+ _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));
52
+ _this.handleRemove = _this.handleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)), false);
53
+ _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_assertThisInitialized(_this)));
54
+ _this.handleKeyUp = _this.handleKeyUp.bind(_assertThisInitialized(_assertThisInitialized(_this)));
55
+ _this.handleInputFocus = _this.handleInputFocus.bind(_assertThisInitialized(_assertThisInitialized(_this)));
56
+ _this.handleControlChange = _this.handleControlChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));
57
+ _this.handleClickAway = _this.handleClickAway.bind(_assertThisInitialized(_assertThisInitialized(_this)));
58
+ _this.handleInputBlur = _this.handleInputBlur.bind(_assertThisInitialized(_assertThisInitialized(_this)));
59
+ _this.bindFocusInputFunc = _this.bindFocusInputFunc.bind(_assertThisInitialized(_assertThisInitialized(_this)));
60
+ _this.toInputTriggerCollapse = _this.toInputTriggerCollapse.bind(_assertThisInitialized(_assertThisInitialized(_this)));
61
+ _this.renderItem = _this.renderItem.bind(_assertThisInitialized(_assertThisInitialized(_this)));
62
+ _this.renderResult = _this.renderResult.bind(_assertThisInitialized(_assertThisInitialized(_this)));
63
+ _this.handleDelete = _this.handleDelete.bind(_assertThisInitialized(_assertThisInitialized(_this))); // option list not render till first focused
64
+
65
+ _this.renderPending = true;
66
+ _this.optionList = {};
67
+ _this.selectId = "select_" + getUidStr(); // this.closeByResult = false
68
+
69
+ _this.mouseDown = false;
70
+ _this.lastResult = undefined;
71
+ _this.focusInput = null;
72
+ return _this;
73
+ }
74
+
75
+ var _proto = Select.prototype;
76
+
77
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
78
+ var onFilter = this.props.onFilter; // clear filter
71
79
 
72
- componentDidUpdate(prevProps, prevState) {
73
- const { onFilter } = this.props
74
-
75
- // clear filter
76
80
  if (prevState.focus !== this.state.focus && !this.state.focus && onFilter) {
77
- setTimeout(() => {
78
- onFilter('')
79
- }, 400)
81
+ setTimeout(function () {
82
+ onFilter('');
83
+ }, 400);
80
84
  }
81
- }
85
+ };
82
86
 
83
- componentWillUnmount() {
84
- super.componentWillUnmount()
85
- this.clearClickAway()
86
- }
87
+ _proto.componentWillUnmount = function componentWillUnmount() {
88
+ _PureComponent.prototype.componentWillUnmount.call(this);
87
89
 
88
- getText(key) {
89
- return this.props.text[key] || getLocale(key)
90
- }
90
+ this.clearClickAway();
91
+ };
91
92
 
92
- getFocusSelected() {
93
- const { reFocus, focusSelected } = this.props
94
- if (reFocus) return false
95
- return focusSelected
96
- }
93
+ _proto.getText = function getText(key) {
94
+ return this.props.text[key] || getLocale(key);
95
+ };
97
96
 
98
- setInputReset(fn) {
99
- this.inputReset = fn
100
- }
97
+ _proto.getFocusSelected = function getFocusSelected() {
98
+ var _this$props = this.props,
99
+ reFocus = _this$props.reFocus,
100
+ focusSelected = _this$props.focusSelected;
101
+ if (reFocus) return false;
102
+ return focusSelected;
103
+ };
104
+
105
+ _proto.setInputReset = function setInputReset(fn) {
106
+ this.inputReset = fn;
107
+ };
101
108
 
102
- isDescendent(el, id) {
109
+ _proto.isDescendent = function isDescendent(el, id) {
103
110
  // const stay = el.classList.contains(selectClass('input')) || el.classList.contains(selectClass('item'))
104
111
  // if (stay) this.optionsHold = true
105
112
  // if (el.classList.contains(selectClass('result')) && this.optionsHold === null && this.state.focus) {
106
113
  // this.closeByResult = true
107
114
  // this.optionsHold = false
108
115
  // }
109
- if (el.getAttribute('data-id') === id) return true
110
- if (!el.parentElement) return false
111
- return this.isDescendent(el.parentElement, id)
112
- }
116
+ if (el.getAttribute('data-id') === id) return true;
117
+ if (!el.parentElement) return false;
118
+ return this.isDescendent(el.parentElement, id);
119
+ };
113
120
 
114
- bindOptionFunc(name, fn) {
115
- this.optionList[name] = fn
116
- }
121
+ _proto.bindOptionFunc = function bindOptionFunc(name, fn) {
122
+ this.optionList[name] = fn;
123
+ };
117
124
 
118
- bindFocusInputFunc(fn) {
119
- this.focusInput = fn
120
- }
125
+ _proto.bindFocusInputFunc = function bindFocusInputFunc(fn) {
126
+ this.focusInput = fn;
127
+ };
121
128
 
122
- bindElement(el) {
123
- this.element = el
124
- }
129
+ _proto.bindElement = function bindElement(el) {
130
+ this.element = el;
131
+ };
125
132
 
126
- bindClickAway() {
127
- document.addEventListener('click', this.handleClickAway, true)
128
- }
133
+ _proto.bindClickAway = function bindClickAway() {
134
+ document.addEventListener('click', this.handleClickAway, true);
135
+ };
129
136
 
130
- clearClickAway() {
131
- document.removeEventListener('click', this.handleClickAway, true)
132
- }
137
+ _proto.clearClickAway = function clearClickAway() {
138
+ document.removeEventListener('click', this.handleClickAway, true);
139
+ };
140
+
141
+ _proto.handleClickAway = function handleClickAway(e) {
142
+ var desc = this.isDescendent(e.target, this.selectId);
133
143
 
134
- handleClickAway(e) {
135
- const desc = this.isDescendent(e.target, this.selectId)
136
144
  if (!desc) {
137
- if (!getParent(e.target, `[data-id=${this.selectId}]`)) {
138
- this.blured = true
139
- this.props.onBlur()
140
- this.clearClickAway()
141
- if (this.element) this.element.blur()
145
+ if (!getParent(e.target, "[data-id=" + this.selectId + "]")) {
146
+ this.blured = true;
147
+ this.props.onBlur();
148
+ this.clearClickAway();
149
+ if (this.element) this.element.blur();
142
150
  }
143
- this.handleState(false, null)
151
+
152
+ this.handleState(false, null);
144
153
  }
145
- }
154
+ };
155
+
156
+ _proto.handleClick = function handleClick(e) {
157
+ var _this$props2 = this.props,
158
+ onCreate = _this$props2.onCreate,
159
+ onFilter = _this$props2.onFilter;
160
+ var plain = !onCreate && !onFilter;
146
161
 
147
- handleClick(e) {
148
- const { onCreate, onFilter } = this.props
149
- const plain = !onCreate && !onFilter
150
162
  if (this.state.focus) {
151
- if ((plain && isResult(e.target)) || isResult(e.target, `.${selectClass('caret')}`)) {
152
- this.handleState(false, e)
153
- return
163
+ if (plain && isResult(e.target) || isResult(e.target, "." + selectClass('caret'))) {
164
+ this.handleState(false, e);
165
+ return;
154
166
  }
155
167
  }
156
- this.handleState(true, e)
157
- }
158
-
159
- handleState(focus, e) {
160
- if (this.props.disabled === true) return
161
- if (focus === this.state.focus) return
162
- // click close icon
163
- if (focus && e && e.target.classList.contains(selectClass('close'))) return
164
-
165
- const { height, onCollapse } = this.props
166
- let { position } = this.props
167
- const windowHeight = docSize.height
168
- const bottom = height + this.element.getBoundingClientRect().bottom
169
- if (bottom > windowHeight && !position) position = 'drop-up'
170
168
 
171
- if (onCollapse) onCollapse(focus)
172
- this.setState({ focus, position: position || 'drop-down' })
169
+ this.handleState(true, e);
170
+ };
171
+
172
+ _proto.handleState = function handleState(focus, e) {
173
+ if (this.props.disabled === true) return;
174
+ if (focus === this.state.focus) return; // click close icon
175
+
176
+ if (focus && e && e.target.classList.contains(selectClass('close'))) return;
177
+ var _this$props3 = this.props,
178
+ height = _this$props3.height,
179
+ onCollapse = _this$props3.onCollapse;
180
+ var position = this.props.position;
181
+ var windowHeight = docSize.height;
182
+ var bottom = height + this.element.getBoundingClientRect().bottom;
183
+ if (bottom > windowHeight && !position) position = 'drop-up';
184
+ if (onCollapse) onCollapse(focus);
185
+ this.setState({
186
+ focus: focus,
187
+ position: position || 'drop-down'
188
+ });
173
189
 
174
190
  if (focus) {
175
- this.blured = false
176
- this.renderPending = false
191
+ this.blured = false;
192
+ this.renderPending = false;
177
193
  }
178
- }
179
-
180
- handleControlChange(control) {
181
- if (control !== this.state.control) this.setState({ control })
182
- }
183
-
184
- handleChange(_, data, fromInput) {
185
- const { datum, multiple, disabled, emptyAfterSelect, onFilter, filterText, onCreate, reFocus } = this.props
186
- if (disabled === true) return
194
+ };
195
+
196
+ _proto.handleControlChange = function handleControlChange(control) {
197
+ if (control !== this.state.control) this.setState({
198
+ control: control
199
+ });
200
+ };
201
+
202
+ _proto.handleChange = function handleChange(_, data, fromInput) {
203
+ var _this2 = this;
204
+
205
+ var _this$props4 = this.props,
206
+ datum = _this$props4.datum,
207
+ multiple = _this$props4.multiple,
208
+ disabled = _this$props4.disabled,
209
+ emptyAfterSelect = _this$props4.emptyAfterSelect,
210
+ onFilter = _this$props4.onFilter,
211
+ filterText = _this$props4.filterText,
212
+ onCreate = _this$props4.onCreate,
213
+ reFocus = _this$props4.reFocus;
214
+ if (disabled === true) return; // if click option, ignore blur event
187
215
 
188
- // if click option, ignore blur event
189
216
  if (this.inputBlurTimer) {
190
- this.lastChangeIsOptionClick = true
191
- clearTimeout(this.inputBlurTimer)
217
+ this.lastChangeIsOptionClick = true;
218
+ clearTimeout(this.inputBlurTimer);
192
219
  }
193
220
 
194
221
  if (multiple) {
195
222
  if (isObject(data) && data.IS_NOT_MATCHED_VALUE) {
196
- datum.remove(data)
223
+ datum.remove(data);
197
224
  } else {
198
- const checked = !datum.check(data)
225
+ var checked = !datum.check(data);
226
+
199
227
  if (checked) {
200
- datum.add(data)
228
+ datum.add(data);
201
229
  } else {
202
- if (fromInput === true) return
203
- datum.remove(data)
230
+ if (fromInput === true) return;
231
+ datum.remove(data);
204
232
  }
205
- if (this.inputReset) this.inputReset()
233
+
234
+ if (this.inputReset) this.inputReset();
206
235
  }
207
236
  } else {
208
- datum.set(data)
209
- if (!reFocus) this.handleState(false)
210
- // let the element focus
211
- setTimeout(() => {
212
- if (reFocus && this.focusInput) this.focusInput(true)
213
- if (onCreate && this.blured) return
214
- if (this.element) this.element.focus()
215
- }, 10)
237
+ datum.set(data);
238
+ if (!reFocus) this.handleState(false); // let the element focus
239
+
240
+ setTimeout(function () {
241
+ if (reFocus && _this2.focusInput) _this2.focusInput(true);
242
+ if (onCreate && _this2.blured) return;
243
+ if (_this2.element) _this2.element.focus();
244
+ }, 10);
216
245
  }
217
246
 
218
- if (emptyAfterSelect && onFilter && filterText) onFilter('')
219
- }
247
+ if (emptyAfterSelect && onFilter && filterText) onFilter('');
248
+ };
249
+
250
+ _proto.toInputTriggerCollapse = function toInputTriggerCollapse(text) {
251
+ var _this$props5 = this.props,
252
+ onCreate = _this$props5.onCreate,
253
+ datum = _this$props5.datum;
220
254
 
221
- toInputTriggerCollapse(text) {
222
- const { onCreate, datum } = this.props
223
255
  if (onCreate) {
224
- datum.set(onCreate(text))
256
+ datum.set(onCreate(text));
225
257
  }
226
- this.handleState(true)
227
- }
228
258
 
229
- shouldFocus(el) {
230
- if (el.getAttribute('data-id') === this.selectId) return true
231
- if (getParent(el, `.${selectClass('result')}`)) return true
232
- return false
233
- }
259
+ this.handleState(true);
260
+ };
234
261
 
235
- handleFocus(e) {
236
- if (!this.shouldFocus(e.target)) return
237
- this.props.onFocus(e)
238
- this.bindClickAway()
239
- }
262
+ _proto.shouldFocus = function shouldFocus(el) {
263
+ if (el.getAttribute('data-id') === this.selectId) return true;
264
+ if (getParent(el, "." + selectClass('result'))) return true;
265
+ return false;
266
+ };
267
+
268
+ _proto.handleFocus = function handleFocus(e) {
269
+ if (!this.shouldFocus(e.target)) return;
270
+ this.props.onFocus(e);
271
+ this.bindClickAway();
272
+ };
273
+
274
+ _proto.handleInputFocus = function handleInputFocus() {
275
+ var _this$props6 = this.props,
276
+ hideCreateOption = _this$props6.hideCreateOption,
277
+ onCreate = _this$props6.onCreate;
278
+ this.inputLocked = true;
279
+ var noHover = onCreate && hideCreateOption;
240
280
 
241
- handleInputFocus() {
242
- const { hideCreateOption, onCreate } = this.props
243
- this.inputLocked = true
244
- const noHover = onCreate && hideCreateOption
245
281
  if (this.props.inputable && this.state.control === 'keyboard' && !noHover) {
246
- if (this.optionList.handleHover) this.optionList.handleHover(0, true)
282
+ if (this.optionList.handleHover) this.optionList.handleHover(0, true);
247
283
  }
248
- }
284
+ };
285
+
286
+ _proto.handleInputBlur = function handleInputBlur(text) {
287
+ var _this3 = this;
288
+
289
+ var _this$props7 = this.props,
290
+ onFilter = _this$props7.onFilter,
291
+ onCreate = _this$props7.onCreate,
292
+ multiple = _this$props7.multiple,
293
+ filterSingleSelect = _this$props7.filterSingleSelect,
294
+ data = _this$props7.data;
249
295
 
250
- handleInputBlur(text) {
251
- const { onFilter, onCreate, multiple, filterSingleSelect, data } = this.props
252
296
  if (onFilter && text && filterSingleSelect && data.length === 1) {
253
- this.handleChange(null, data[0], false)
254
- return
297
+ this.handleChange(null, data[0], false);
298
+ return;
255
299
  }
256
- if (!onCreate) return
257
- if (multiple && !text) return
258
300
 
259
- if (this.lastChangeIsOptionClick) return
301
+ if (!onCreate) return;
302
+ if (multiple && !text) return;
303
+ if (this.lastChangeIsOptionClick) return; // if click option, ignore input blur
260
304
 
261
- // if click option, ignore input blur
262
- this.inputBlurTimer = setTimeout(() => {
263
- const retData = onCreate(text)
264
- this.handleChange(null, retData, true)
265
- }, 200)
266
- }
305
+ this.inputBlurTimer = setTimeout(function () {
306
+ var retData = onCreate(text);
267
307
 
268
- handleClear() {
269
- this.props.datum.setValue([])
270
- this.element.focus()
308
+ _this3.handleChange(null, retData, true);
309
+ }, 200);
310
+ };
311
+
312
+ _proto.handleClear = function handleClear() {
313
+ this.props.datum.setValue([]);
314
+ this.element.focus();
271
315
 
272
316
  if (this.state.focus === false) {
273
- this.forceUpdate()
317
+ this.forceUpdate();
274
318
  } else {
275
- this.handleState(false)
319
+ this.handleState(false);
276
320
  }
277
- }
321
+ };
322
+
323
+ _proto.handleHideOption = function handleHideOption() {
324
+ var _this$props8 = this.props,
325
+ datum = _this$props8.datum,
326
+ innerData = _this$props8.innerData;
327
+ var checked = datum.check(innerData);
278
328
 
279
- handleHideOption() {
280
- const { datum, innerData } = this.props
281
- const checked = datum.check(innerData)
282
329
  if (checked) {
283
- if (this.inputReset) this.inputReset()
284
- return
330
+ if (this.inputReset) this.inputReset();
331
+ return;
285
332
  }
286
- this.handleChange(true, innerData)
287
- }
288
333
 
289
- handleEnter() {
290
- const { onCreate, hideCreateOption } = this.props
291
- const hoverIndex = this.optionList.getIndex && this.optionList.getIndex()
334
+ this.handleChange(true, innerData);
335
+ };
336
+
337
+ _proto.handleEnter = function handleEnter() {
338
+ var _this$props9 = this.props,
339
+ onCreate = _this$props9.onCreate,
340
+ hideCreateOption = _this$props9.hideCreateOption;
341
+ var hoverIndex = this.optionList.getIndex && this.optionList.getIndex();
342
+
292
343
  if (onCreate && hideCreateOption && hoverIndex === -1) {
293
- this.handleHideOption()
294
- return
344
+ this.handleHideOption();
345
+ return;
295
346
  }
296
- let data = this.props.data[hoverIndex]
347
+
348
+ var data = this.props.data[hoverIndex];
349
+
297
350
  if (!data) {
298
351
  // eslint-disable-next-line prefer-destructuring
299
- data = this.props.data[0]
352
+ data = this.props.data[0];
300
353
  }
354
+
301
355
  if (data && !data[this.props.groupKey]) {
302
- const checked = !this.props.datum.check(data)
303
- this.handleChange(checked, data)
304
- if (this.optionList.handleHover) this.optionList.handleHover(hoverIndex)
356
+ var checked = !this.props.datum.check(data);
357
+ this.handleChange(checked, data);
358
+ if (this.optionList.handleHover) this.optionList.handleHover(hoverIndex);
305
359
  }
306
- }
360
+ };
307
361
 
308
- handleKeyDown(e) {
309
- const { onEnterExpand } = this.props
310
- this.keyLocked = true
362
+ _proto.handleKeyDown = function handleKeyDown(e) {
363
+ var onEnterExpand = this.props.onEnterExpand;
364
+ this.keyLocked = true; // just for enter to open the list
311
365
 
312
- // just for enter to open the list
313
366
  if ((e.keyCode === 13 || e.keyCode === 40) && !this.state.focus) {
314
- e.preventDefault()
367
+ e.preventDefault();
368
+
315
369
  if (typeof onEnterExpand === 'function') {
316
- const canOpen = onEnterExpand(e)
317
- if (canOpen === false) return
370
+ var canOpen = onEnterExpand(e);
371
+ if (canOpen === false) return;
318
372
  }
319
- this.handleClick(e)
320
- return
321
- }
322
373
 
323
- // fot close the list
374
+ this.handleClick(e);
375
+ return;
376
+ } // fot close the list
377
+
378
+
324
379
  if (e.keyCode === 9) {
325
- this.props.onBlur(e)
326
- // e.preventDefault()
327
- if (this.state.focus) this.handleState(false, e)
328
- else this.clearClickAway()
329
- return
330
- }
380
+ this.props.onBlur(e); // e.preventDefault()
331
381
 
332
- // no focus no event
333
- if (!this.state.focus) return
382
+ if (this.state.focus) this.handleState(false, e);else this.clearClickAway();
383
+ return;
384
+ } // no focus no event
334
385
 
335
- this.handleControlChange('keyboard')
386
+
387
+ if (!this.state.focus) return;
388
+ this.handleControlChange('keyboard');
336
389
 
337
390
  switch (e.keyCode) {
338
391
  case 38:
339
- if (this.optionList.hoverMove) this.optionList.hoverMove(-1)
340
- e.preventDefault()
341
- break
392
+ if (this.optionList.hoverMove) this.optionList.hoverMove(-1);
393
+ e.preventDefault();
394
+ break;
395
+
342
396
  case 40:
343
- if (this.optionList.hoverMove) this.optionList.hoverMove(1)
344
- e.preventDefault()
345
- break
397
+ if (this.optionList.hoverMove) this.optionList.hoverMove(1);
398
+ e.preventDefault();
399
+ break;
400
+
346
401
  case 13:
347
- this.handleEnter()
348
- e.preventDefault()
349
- e.stopPropagation()
350
- break
402
+ this.handleEnter();
403
+ e.preventDefault();
404
+ e.stopPropagation();
405
+ break;
406
+
351
407
  case 8:
352
- this.handleDelete(e)
353
- break
408
+ this.handleDelete(e);
409
+ break;
410
+
354
411
  default:
355
- this.lastChangeIsOptionClick = false
412
+ this.lastChangeIsOptionClick = false;
356
413
  }
357
- }
414
+ };
358
415
 
359
- handleKeyUp() {
360
- this.keyLocked = false
361
- }
416
+ _proto.handleKeyUp = function handleKeyUp() {
417
+ this.keyLocked = false;
418
+ };
362
419
 
363
- handleDelete(e) {
364
- const { multiple, filterText, datum, value, data } = this.props
365
- if (!multiple || filterText) return
366
- if (!value || !value.length) return
367
- e.preventDefault()
368
- const raws = Array.isArray(value) ? value : [value]
369
- const values = [...raws]
370
- const last = values.pop()
371
- datum.handleChange(values, datum.getDataByValue(data, last), false)
372
- }
420
+ _proto.cancelDeleteLock = function cancelDeleteLock() {
421
+ var _this4 = this;
373
422
 
374
- renderItem(data, index) {
375
- const { renderItem } = this.props
376
- return typeof renderItem === 'function' ? renderItem(data, index) : data[renderItem]
377
- }
423
+ if (this.cancelDeleteLockTimer) {
424
+ clearTimeout(this.cancelDeleteLockTimer);
425
+ }
378
426
 
379
- renderResult(data, index) {
380
- const { renderResult } = this.props
381
- if (!renderResult) return this.renderItem(data, index)
382
- return typeof renderResult === 'function' ? renderResult(data, index) : data[renderResult]
383
- }
427
+ this.cancelDeleteLockTimer = setTimeout(function () {
428
+ _this4.deleteLock = false;
429
+ }, 400);
430
+ };
431
+
432
+ _proto.handleDelete = function handleDelete(e) {
433
+ var _this$props10 = this.props,
434
+ multiple = _this$props10.multiple,
435
+ filterText = _this$props10.filterText,
436
+ datum = _this$props10.datum,
437
+ value = _this$props10.value,
438
+ data = _this$props10.data;
439
+ if (!multiple) return;
440
+
441
+ if (filterText) {
442
+ this.deleteLock = true;
443
+ } else if (this.deleteLock) {
444
+ this.cancelDeleteLock();
445
+ }
384
446
 
447
+ if (filterText || this.deleteLock) return;
448
+ if (!value || !value.length) return;
449
+ e.preventDefault();
450
+ var raws = Array.isArray(value) ? value : [value];
451
+ var values = [].concat(raws);
452
+ var last = values.pop();
453
+ datum.handleChange(values, datum.getDataByValue(data, last), false);
454
+ };
455
+
456
+ _proto.renderItem = function renderItem(data, index) {
457
+ var renderItem = this.props.renderItem;
458
+ return typeof renderItem === 'function' ? renderItem(data, index) : data[renderItem];
459
+ };
460
+
461
+ _proto.renderResult = function renderResult(data, index) {
462
+ var renderResult = this.props.renderResult;
463
+ if (!renderResult) return this.renderItem(data, index);
464
+ return typeof renderResult === 'function' ? renderResult(data, index) : data[renderResult];
465
+ }
385
466
  /**
386
467
  * custom options list header
387
468
  */
388
- renderCustomHeader() {
389
- const { header } = this.props
390
- if (React.isValidElement(header)) return <div className={selectClass('custom-header')}>{header}</div>
391
- return null
392
- }
393
-
394
- renderTree() {
395
- const { focus, position } = this.state
396
- const { optionWidth } = this.props
397
- const props = {}
398
- ;[
399
- 'treeData',
400
- 'expanded',
401
- 'onExpand',
402
- 'loader',
403
- 'defaultExpanded',
404
- 'defaultExpandAll',
405
- 'datum',
406
- 'keygen',
407
- 'multiple',
408
- 'text',
409
- 'height',
410
- 'loading',
411
- 'onFilter',
412
- 'filterText',
413
- 'absolute',
414
- 'zIndex',
415
- 'childrenKey',
416
- 'expandIcons',
417
- ].forEach(k => {
418
- props[k] = this.props[k]
419
- })
420
- const style = optionWidth && { width: optionWidth }
421
- props.renderItem = this.renderItem
422
- return (
423
- <WrappedOptionTree
424
- onChange={this.handleChange}
425
- parentElement={this.element}
426
- position={position}
427
- rootClass={selectClass(position)}
428
- selectId={this.selectId}
429
- focus={focus}
430
- renderPending={this.renderPending}
431
- fixed="min"
432
- {...props}
433
- style={style}
434
- customHeader={this.renderCustomHeader()}
435
- />
436
- )
437
- }
438
-
439
- renderList() {
440
- const { focus, control, position } = this.state
441
- const { autoAdapt, value, optionWidth } = this.props
442
- const props = {}
443
- ;[
444
- 'data',
445
- 'datum',
446
- 'keygen',
447
- 'multiple',
448
- 'columns',
449
- 'columnWidth',
450
- 'columnsTitle',
451
- 'text',
452
- 'itemsInView',
453
- 'absolute',
454
- 'lineHeight',
455
- 'height',
456
- 'loading',
457
- 'onFilter',
458
- 'filterText',
459
- 'zIndex',
460
- 'groupKey',
461
- 'hideCreateOption',
462
- ].forEach(k => {
463
- props[k] = this.props[k]
464
- })
465
-
466
- const List = props.columns >= 1 || props.columns === -1 ? WrappedBoxList : WrappedOptionList
467
- const style = optionWidth && { width: optionWidth }
468
- return (
469
- <List
470
- {...props}
471
- style={style}
472
- rootClass={selectClass(position, isRTL() && 'rtl')}
473
- autoClass={selectClass(autoAdapt && 'auto-adapt')}
474
- bindOptionFunc={this.bindOptionFunc}
475
- renderPending={this.renderPending}
476
- focus={focus}
477
- control={control}
478
- selectId={this.selectId}
479
- onControlChange={this.handleControlChange}
480
- onChange={this.handleChange}
481
- renderItem={this.renderItem}
482
- parentElement={this.element}
483
- position={position}
484
- onBlur={this.handleBlur}
485
- fixed={autoAdapt ? 'min' : true}
486
- value={value}
487
- customHeader={this.renderCustomHeader()}
488
- />
489
- )
490
- }
491
-
492
- renderOptions() {
493
- const { treeData } = this.props
494
- if (treeData) return this.renderTree()
495
- return this.renderList()
496
- }
497
-
498
- render() {
499
- const {
500
- placeholder,
501
- multiple,
502
- clearable,
503
- disabled,
504
- size,
505
- onFilter,
506
- datum,
507
- filterText,
508
- onCreate,
509
- result,
510
- compressed,
511
- trim,
512
- renderUnmatched,
513
- showArrow,
514
- compressedClassName,
515
- resultClassName,
516
- } = this.props
517
- const className = selectClass(
518
- 'inner',
519
- size,
520
- this.state.focus && 'focus',
521
- this.state.position,
522
- multiple && 'multiple',
523
- disabled === true && 'disabled',
524
- !trim && 'pre'
525
- )
526
-
527
- return (
528
- <div
529
- // eslint-disable-next-line
530
- tabIndex={disabled === true ? -1 : 0}
531
- ref={this.bindElement}
532
- className={className}
533
- data-id={this.selectId}
534
- onFocus={this.handleFocus}
535
- onClick={this.handleClick}
536
- onKeyDown={this.handleKeyDown}
537
- onKeyUp={this.handleKeyUp}
538
- >
539
- <Result
540
- trim={trim}
541
- filterText={filterText}
542
- onClear={clearable ? this.handleClear : undefined}
543
- onCreate={onCreate}
544
- onRemove={this.handleRemove}
545
- onFilter={onFilter}
546
- datum={datum}
547
- disabled={disabled}
548
- focus={this.state.focus}
549
- result={result}
550
- multiple={multiple}
551
- placeholder={placeholder}
552
- renderResult={this.renderResult}
553
- renderUnmatched={renderUnmatched}
554
- onInputBlur={this.handleInputBlur}
555
- onInputFocus={this.handleInputFocus}
556
- setInputReset={this.setInputReset}
557
- bindFocusInputFunc={this.bindFocusInputFunc}
558
- collapse={this.toInputTriggerCollapse}
559
- compressed={compressed}
560
- showArrow={showArrow}
561
- focusSelected={this.getFocusSelected()}
562
- compressedClassName={compressedClassName}
563
- resultClassName={resultClassName}
564
- />
565
- {this.renderOptions()}
566
- </div>
567
- )
568
- }
569
- }
570
-
571
- Select.propTypes = {
572
- ...getProps(PropTypes, 'placehodler', 'keygen'),
573
- absolute: PropTypes.bool,
469
+ ;
470
+
471
+ _proto.renderCustomHeader = function renderCustomHeader() {
472
+ var header = this.props.header;
473
+ if (React.isValidElement(header)) return React.createElement("div", {
474
+ className: selectClass('custom-header')
475
+ }, header);
476
+ return null;
477
+ };
478
+
479
+ _proto.renderTree = function renderTree() {
480
+ var _this5 = this;
481
+
482
+ var _this$state = this.state,
483
+ focus = _this$state.focus,
484
+ position = _this$state.position;
485
+ var optionWidth = this.props.optionWidth;
486
+ var props = {};
487
+ ['treeData', 'expanded', 'onExpand', 'loader', 'defaultExpanded', 'defaultExpandAll', 'datum', 'keygen', 'multiple', 'text', 'height', 'loading', 'onFilter', 'filterText', 'absolute', 'zIndex', 'childrenKey', 'expandIcons', 'emptyText'].forEach(function (k) {
488
+ props[k] = _this5.props[k];
489
+ });
490
+ var style = optionWidth && {
491
+ width: optionWidth
492
+ };
493
+ props.renderItem = this.renderItem;
494
+ return React.createElement(WrappedOptionTree, _extends({
495
+ onChange: this.handleChange,
496
+ parentElement: this.element,
497
+ position: position,
498
+ rootClass: selectClass(position),
499
+ selectId: this.selectId,
500
+ focus: focus,
501
+ renderPending: this.renderPending,
502
+ fixed: "min"
503
+ }, props, {
504
+ style: style,
505
+ customHeader: this.renderCustomHeader()
506
+ }));
507
+ };
508
+
509
+ _proto.renderList = function renderList() {
510
+ var _this6 = this;
511
+
512
+ var _this$state2 = this.state,
513
+ focus = _this$state2.focus,
514
+ control = _this$state2.control,
515
+ position = _this$state2.position;
516
+ var _this$props11 = this.props,
517
+ autoAdapt = _this$props11.autoAdapt,
518
+ value = _this$props11.value,
519
+ optionWidth = _this$props11.optionWidth;
520
+ var props = {};
521
+ ['data', 'datum', 'keygen', 'multiple', 'columns', 'columnWidth', 'columnsTitle', 'text', 'itemsInView', 'absolute', 'lineHeight', 'height', 'loading', 'onFilter', 'filterText', 'zIndex', 'groupKey', 'hideCreateOption', 'emptyText'].forEach(function (k) {
522
+ props[k] = _this6.props[k];
523
+ });
524
+ var List = props.columns >= 1 || props.columns === -1 ? WrappedBoxList : WrappedOptionList;
525
+ var style = optionWidth && {
526
+ width: optionWidth
527
+ };
528
+ return React.createElement(List, _extends({}, props, {
529
+ style: style,
530
+ rootClass: selectClass(position, isRTL() && 'rtl'),
531
+ autoClass: selectClass(autoAdapt && 'auto-adapt'),
532
+ bindOptionFunc: this.bindOptionFunc,
533
+ renderPending: this.renderPending,
534
+ focus: focus,
535
+ control: control,
536
+ selectId: this.selectId,
537
+ onControlChange: this.handleControlChange,
538
+ onChange: this.handleChange,
539
+ renderItem: this.renderItem,
540
+ parentElement: this.element,
541
+ position: position,
542
+ onBlur: this.handleBlur,
543
+ fixed: autoAdapt ? 'min' : true,
544
+ value: value,
545
+ customHeader: this.renderCustomHeader()
546
+ }));
547
+ };
548
+
549
+ _proto.renderOptions = function renderOptions() {
550
+ var treeData = this.props.treeData;
551
+ if (treeData) return this.renderTree();
552
+ return this.renderList();
553
+ };
554
+
555
+ _proto.render = function render() {
556
+ var _this$props12 = this.props,
557
+ placeholder = _this$props12.placeholder,
558
+ multiple = _this$props12.multiple,
559
+ clearable = _this$props12.clearable,
560
+ disabled = _this$props12.disabled,
561
+ size = _this$props12.size,
562
+ onFilter = _this$props12.onFilter,
563
+ datum = _this$props12.datum,
564
+ filterText = _this$props12.filterText,
565
+ onCreate = _this$props12.onCreate,
566
+ result = _this$props12.result,
567
+ compressed = _this$props12.compressed,
568
+ trim = _this$props12.trim,
569
+ renderUnmatched = _this$props12.renderUnmatched,
570
+ showArrow = _this$props12.showArrow,
571
+ compressedClassName = _this$props12.compressedClassName,
572
+ resultClassName = _this$props12.resultClassName;
573
+ var className = selectClass('inner', size, this.state.focus && 'focus', this.state.position, multiple && 'multiple', disabled === true && 'disabled', !trim && 'pre');
574
+ return React.createElement("div", {
575
+ // eslint-disable-next-line
576
+ tabIndex: disabled === true ? -1 : 0,
577
+ ref: this.bindElement,
578
+ className: className,
579
+ "data-id": this.selectId,
580
+ onFocus: this.handleFocus,
581
+ onClick: this.handleClick,
582
+ onKeyDown: this.handleKeyDown,
583
+ onKeyUp: this.handleKeyUp
584
+ }, React.createElement(Result, {
585
+ trim: trim,
586
+ filterText: filterText,
587
+ onClear: clearable ? this.handleClear : undefined,
588
+ onCreate: onCreate,
589
+ onRemove: this.handleRemove,
590
+ onFilter: onFilter,
591
+ datum: datum,
592
+ disabled: disabled,
593
+ focus: this.state.focus,
594
+ result: result,
595
+ multiple: multiple,
596
+ placeholder: placeholder,
597
+ renderResult: this.renderResult,
598
+ renderUnmatched: renderUnmatched,
599
+ onInputBlur: this.handleInputBlur,
600
+ onInputFocus: this.handleInputFocus,
601
+ setInputReset: this.setInputReset,
602
+ bindFocusInputFunc: this.bindFocusInputFunc,
603
+ collapse: this.toInputTriggerCollapse,
604
+ compressed: compressed,
605
+ showArrow: showArrow,
606
+ focusSelected: this.getFocusSelected(),
607
+ compressedClassName: compressedClassName,
608
+ resultClassName: resultClassName
609
+ }), this.renderOptions());
610
+ };
611
+
612
+ return Select;
613
+ }(PureComponent);
614
+
615
+ Select.propTypes = _objectSpread({}, getProps(PropTypes, 'placehodler', 'keygen'), {
616
+ absolute: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),
574
617
  clearable: PropTypes.bool,
575
618
  columns: PropTypes.number,
576
619
  data: PropTypes.array,
@@ -604,9 +647,8 @@ Select.propTypes = {
604
647
  onCollapse: PropTypes.func,
605
648
  resultClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
606
649
  reFocus: PropTypes.bool,
607
- header: PropTypes.node,
608
- }
609
-
650
+ header: PropTypes.node
651
+ });
610
652
  Select.defaultProps = {
611
653
  clearable: false,
612
654
  data: [],
@@ -615,13 +657,14 @@ Select.defaultProps = {
615
657
  lineHeight: 34,
616
658
  loading: false,
617
659
  multiple: false,
618
- renderItem: e => e,
660
+ renderItem: function renderItem(e) {
661
+ return e;
662
+ },
619
663
  text: {},
620
664
  compressed: false,
621
665
  trim: true,
622
666
  autoAdapt: false,
623
667
  showArrow: true,
624
- focusSelected: true,
625
- }
626
-
627
- export default Select
668
+ focusSelected: true
669
+ };
670
+ export default Select;