shineout 1.7.1 → 1.8.0-beta.2

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 (381) hide show
  1. package/css/DatePicker/utils.js +1 -1
  2. package/css/Form/Field.js +8 -4
  3. package/css/Form/Form.js +3 -0
  4. package/css/Form/Item.js +1 -1
  5. package/css/Form/index.d.ts +1 -0
  6. package/css/Form/inputable.js +1 -1
  7. package/css/Pagination/Jumper.js +3 -0
  8. package/css/index.d.ts +1 -1
  9. package/css/index.js +1 -1
  10. package/dist/shineout.js +24 -14
  11. package/dist/shineout.js.map +1 -1
  12. package/dist/shineout.min.js +1 -1
  13. package/es/Alert/index.js +127 -107
  14. package/es/Alert/styles/index.js +3 -4
  15. package/es/AnimationList/AbsoluteList.js +257 -193
  16. package/es/AnimationList/LazyList.js +120 -92
  17. package/es/AnimationList/List.js +43 -23
  18. package/es/AnimationList/index.js +19 -14
  19. package/es/AnimationList/styles/index.js +3 -4
  20. package/es/Breadcrumb/index.js +77 -69
  21. package/es/Breadcrumb/styles/index.js +3 -4
  22. package/es/Button/Button.js +91 -74
  23. package/es/Button/Group.js +42 -28
  24. package/es/Button/Once.js +39 -23
  25. package/es/Button/index.js +7 -10
  26. package/es/Button/styles/index.js +3 -4
  27. package/es/Card/Accordion.js +58 -45
  28. package/es/Card/Body.js +55 -42
  29. package/es/Card/Card.js +85 -79
  30. package/es/Card/Footer.js +38 -15
  31. package/es/Card/Header.js +52 -34
  32. package/es/Card/Submit.js +51 -33
  33. package/es/Card/context.js +22 -16
  34. package/es/Card/index.js +16 -19
  35. package/es/Card/styles/index.js +3 -4
  36. package/es/CardGroup/CardGroup.js +93 -69
  37. package/es/CardGroup/Item.js +61 -43
  38. package/es/CardGroup/context.js +12 -10
  39. package/es/CardGroup/index.js +7 -10
  40. package/es/CardGroup/styles/index.js +3 -4
  41. package/es/Carousel/Item.js +31 -17
  42. package/es/Carousel/index.js +156 -123
  43. package/es/Carousel/styles/index.js +3 -4
  44. package/es/Cascader/Cascader.js +397 -346
  45. package/es/Cascader/FilterList.js +185 -142
  46. package/es/Cascader/Input.js +102 -79
  47. package/es/Cascader/List.js +66 -41
  48. package/es/Cascader/Node.js +153 -110
  49. package/es/Cascader/Result.js +289 -232
  50. package/es/Cascader/filter.js +92 -61
  51. package/es/Cascader/index.js +13 -18
  52. package/es/Cascader/styles/index.js +3 -4
  53. package/es/Checkbox/CheckItem.js +168 -154
  54. package/es/Checkbox/Checkbox.js +2 -3
  55. package/es/Checkbox/Group.js +106 -85
  56. package/es/Checkbox/context.js +12 -10
  57. package/es/Checkbox/index.js +14 -21
  58. package/es/Checkbox/styles/index.js +3 -4
  59. package/es/DataList/BaseItem.js +39 -21
  60. package/es/DataList/Extra.js +33 -17
  61. package/es/DataList/List.js +166 -140
  62. package/es/DataList/Meta.js +109 -74
  63. package/es/DataList/Pagination.js +9 -10
  64. package/es/DataList/index.js +13 -19
  65. package/es/DataList/styles/index.js +3 -4
  66. package/es/DatePicker/Container.js +468 -449
  67. package/es/DatePicker/Day.js +265 -258
  68. package/es/DatePicker/Icon.js +34 -20
  69. package/es/DatePicker/Month.js +101 -79
  70. package/es/DatePicker/Picker.js +110 -83
  71. package/es/DatePicker/Quick.js +52 -39
  72. package/es/DatePicker/Range.js +241 -192
  73. package/es/DatePicker/Text.js +103 -91
  74. package/es/DatePicker/Time.js +165 -147
  75. package/es/DatePicker/TimeScroll.js +148 -116
  76. package/es/DatePicker/Year.js +74 -53
  77. package/es/DatePicker/index.js +16 -18
  78. package/es/DatePicker/paramUtils.js +92 -58
  79. package/es/DatePicker/styles/index.js +3 -4
  80. package/es/DatePicker/utils.js +189 -198
  81. package/es/DatePicker/value.js +139 -98
  82. package/es/Datum/Form.js +333 -282
  83. package/es/Datum/List.js +319 -201
  84. package/es/Datum/Tree.js +298 -239
  85. package/es/Datum/hoc.js +104 -69
  86. package/es/Datum/index.js +7 -8
  87. package/es/Datum/types.js +20 -25
  88. package/es/Divider/index.js +50 -32
  89. package/es/Divider/styles/index.js +3 -4
  90. package/es/Drawer/index.js +14 -9
  91. package/es/Dropdown/Item.js +56 -43
  92. package/es/Dropdown/index.js +273 -259
  93. package/es/Dropdown/styles/index.js +3 -4
  94. package/es/EditableArea/EditableArea.js +157 -136
  95. package/es/EditableArea/index.js +8 -15
  96. package/es/EditableArea/styles/index.js +3 -4
  97. package/es/Form/Block.js +83 -57
  98. package/es/Form/BlockField.js +32 -17
  99. package/es/Form/Field.js +59 -35
  100. package/es/Form/FieldError.js +27 -21
  101. package/es/Form/FieldSet.js +214 -156
  102. package/es/Form/Flow.js +51 -32
  103. package/es/Form/Form.js +181 -144
  104. package/es/Form/Item.js +181 -166
  105. package/es/Form/Loop.js +202 -146
  106. package/es/Form/formButton.js +58 -42
  107. package/es/Form/formContext.js +104 -95
  108. package/es/Form/index.d.ts +1 -0
  109. package/es/Form/index.js +40 -45
  110. package/es/Form/inputable.js +368 -292
  111. package/es/Form/mode.js +15 -9
  112. package/es/Form/styles/index.js +4 -5
  113. package/es/Gap/index.js +71 -47
  114. package/es/Gap/styles/index.js +3 -4
  115. package/es/Gap/support.js +11 -14
  116. package/es/Grid/index.js +88 -58
  117. package/es/Grid/utils.js +57 -58
  118. package/es/Icon/Icon.js +43 -42
  119. package/es/Icon/index.js +39 -22
  120. package/es/Icon/styles/index.js +3 -4
  121. package/es/Image/Gallery.js +128 -113
  122. package/es/Image/Group.js +60 -36
  123. package/es/Image/Image.js +227 -153
  124. package/es/Image/Magnify.js +123 -94
  125. package/es/Image/events.js +29 -26
  126. package/es/Image/index.js +6 -9
  127. package/es/Image/styles/index.js +3 -4
  128. package/es/Input/Group.js +17 -11
  129. package/es/Input/Input.js +158 -134
  130. package/es/Input/Number.js +199 -175
  131. package/es/Input/Password.js +54 -31
  132. package/es/Input/clear.js +41 -25
  133. package/es/Input/index.js +23 -35
  134. package/es/Input/styles/index.js +3 -4
  135. package/es/Lazyload/index.js +63 -42
  136. package/es/Lazyload/styles/index.js +3 -4
  137. package/es/Menu/Item.js +275 -236
  138. package/es/Menu/List.js +75 -67
  139. package/es/Menu/Root.js +372 -334
  140. package/es/Menu/context.js +18 -12
  141. package/es/Menu/index.js +3 -5
  142. package/es/Menu/styles/index.js +3 -4
  143. package/es/Message/Container.js +155 -119
  144. package/es/Message/index.js +42 -30
  145. package/es/Message/messager.js +29 -33
  146. package/es/Message/styles/index.js +3 -4
  147. package/es/Modal/Modal.js +80 -60
  148. package/es/Modal/Panel.js +258 -234
  149. package/es/Modal/context.js +15 -15
  150. package/es/Modal/events.js +213 -182
  151. package/es/Modal/index.js +12 -14
  152. package/es/Modal/styles/index.js +3 -4
  153. package/es/Pagination/Item.js +46 -32
  154. package/es/Pagination/Jumper.js +79 -66
  155. package/es/Pagination/Links.js +110 -82
  156. package/es/Pagination/Next.js +52 -31
  157. package/es/Pagination/PageSizeList.js +57 -40
  158. package/es/Pagination/Pagination.js +78 -54
  159. package/es/Pagination/Prev.js +49 -30
  160. package/es/Pagination/Simple.js +32 -18
  161. package/es/Pagination/index.js +68 -41
  162. package/es/Pagination/styles/index.js +3 -4
  163. package/es/Popover/Confirm.js +107 -64
  164. package/es/Popover/Panel.js +284 -231
  165. package/es/Popover/context.js +15 -12
  166. package/es/Popover/events.js +80 -86
  167. package/es/Popover/index.js +12 -14
  168. package/es/Popover/styles/index.js +3 -4
  169. package/es/Progress/Circle.js +70 -59
  170. package/es/Progress/Line.js +51 -39
  171. package/es/Progress/Popup.js +42 -24
  172. package/es/Progress/analyzeColor.js +18 -9
  173. package/es/Progress/index.js +13 -15
  174. package/es/Progress/styles/index.js +3 -4
  175. package/es/Radio/Group.js +105 -94
  176. package/es/Radio/Radio.js +2 -3
  177. package/es/Radio/index.js +15 -17
  178. package/es/Radio/styles/index.js +1 -1
  179. package/es/Rate/Rate.js +216 -167
  180. package/es/Rate/index.js +17 -10
  181. package/es/Rate/styles/index.js +3 -4
  182. package/es/Rule/convert.js +48 -57
  183. package/es/Rule/index.js +63 -40
  184. package/es/Rule/length.js +53 -38
  185. package/es/Rule/regExp.js +23 -14
  186. package/es/Rule/required.js +26 -18
  187. package/es/Rule/styles/index.js +1 -1
  188. package/es/Rule/type.js +26 -18
  189. package/es/Scroll/Bar.js +145 -117
  190. package/es/Scroll/Scroll.js +277 -217
  191. package/es/Scroll/context.js +20 -13
  192. package/es/Scroll/fixedLength.js +33 -24
  193. package/es/Scroll/index.js +89 -55
  194. package/es/Scroll/styles/index.js +3 -4
  195. package/es/Select/BoxList.js +218 -189
  196. package/es/Select/BoxOption.js +64 -38
  197. package/es/Select/FlexBox.js +107 -75
  198. package/es/Select/FlexResult.js +65 -49
  199. package/es/Select/Input.js +137 -113
  200. package/es/Select/More.js +124 -121
  201. package/es/Select/Option.js +73 -52
  202. package/es/Select/OptionList.js +236 -200
  203. package/es/Select/OptionTree.js +111 -96
  204. package/es/Select/Result.js +297 -271
  205. package/es/Select/Select.js +517 -491
  206. package/es/Select/filter.js +221 -148
  207. package/es/Select/group.js +74 -45
  208. package/es/Select/index.js +32 -31
  209. package/es/Select/styles/index.js +3 -4
  210. package/es/Slider/Container.js +145 -132
  211. package/es/Slider/Indicator.js +28 -13
  212. package/es/Slider/Slider.js +132 -103
  213. package/es/Slider/index.js +5 -8
  214. package/es/Slider/styles/index.js +3 -4
  215. package/es/Slider/utils.js +26 -30
  216. package/es/Spin/Multiple.js +153 -109
  217. package/es/Spin/Simple.js +33 -22
  218. package/es/Spin/Spin.js +29 -29
  219. package/es/Spin/index.js +66 -84
  220. package/es/Spin/styles/index.js +27 -30
  221. package/es/Sticky/context.js +12 -10
  222. package/es/Sticky/index.js +255 -194
  223. package/es/Sticky/styles/index.js +1 -1
  224. package/es/Switch/Switch.js +2 -3
  225. package/es/Switch/index.js +8 -14
  226. package/es/Table/Checkbox.js +68 -39
  227. package/es/Table/CheckboxAll.js +121 -64
  228. package/es/Table/Colgroup.js +72 -47
  229. package/es/Table/Expand.js +63 -43
  230. package/es/Table/SeperateTable.js +594 -444
  231. package/es/Table/SimpleTable.js +215 -136
  232. package/es/Table/Sorter.js +83 -62
  233. package/es/Table/Table.js +157 -157
  234. package/es/Table/Tbody.js +240 -176
  235. package/es/Table/Td.js +169 -130
  236. package/es/Table/Thead.js +206 -177
  237. package/es/Table/Tr.js +249 -205
  238. package/es/Table/TreeExpand.js +151 -116
  239. package/es/Table/context.js +15 -15
  240. package/es/Table/fixedAuto.js +82 -59
  241. package/es/Table/index.js +309 -228
  242. package/es/Table/resizable.js +89 -56
  243. package/es/Table/select.js +238 -215
  244. package/es/Table/styles/index.js +3 -4
  245. package/es/Tabs/Header.js +203 -160
  246. package/es/Tabs/Link.js +46 -28
  247. package/es/Tabs/Panel.js +49 -33
  248. package/es/Tabs/Tab.js +97 -79
  249. package/es/Tabs/Tabs.js +211 -177
  250. package/es/Tabs/Wrapper.js +37 -17
  251. package/es/Tabs/index.js +7 -10
  252. package/es/Tabs/styles/index.js +3 -4
  253. package/es/Tag/Input.js +70 -54
  254. package/es/Tag/Tag.js +198 -156
  255. package/es/Tag/index.js +5 -8
  256. package/es/Tag/styles/index.js +3 -4
  257. package/es/Textarea/Textarea.js +139 -118
  258. package/es/Textarea/index.js +10 -19
  259. package/es/Tooltip/Container.js +140 -127
  260. package/es/Tooltip/events.js +49 -55
  261. package/es/Tooltip/index.js +5 -8
  262. package/es/Tooltip/styles/index.js +3 -4
  263. package/es/Transfer/Card.js +212 -177
  264. package/es/Transfer/Transfer.js +160 -153
  265. package/es/Transfer/btns.js +97 -80
  266. package/es/Transfer/context.js +2 -3
  267. package/es/Transfer/filter.js +65 -35
  268. package/es/Transfer/index.js +9 -13
  269. package/es/Transfer/item.js +66 -41
  270. package/es/Transfer/select.js +15 -16
  271. package/es/Transfer/styles/index.js +3 -4
  272. package/es/Tree/Checkbox.js +72 -50
  273. package/es/Tree/Content.js +136 -95
  274. package/es/Tree/List.js +82 -53
  275. package/es/Tree/Node.js +237 -202
  276. package/es/Tree/Root.js +23 -19
  277. package/es/Tree/Tree.js +262 -197
  278. package/es/Tree/index.js +6 -9
  279. package/es/Tree/styles/index.js +3 -4
  280. package/es/Tree/toggle.js +89 -51
  281. package/es/TreeSelect/Input.js +73 -60
  282. package/es/TreeSelect/Result.js +213 -181
  283. package/es/TreeSelect/TreeSelect.js +327 -312
  284. package/es/TreeSelect/datum.js +56 -44
  285. package/es/TreeSelect/filter.js +134 -96
  286. package/es/TreeSelect/index.js +15 -23
  287. package/es/TreeSelect/styles/index.js +3 -4
  288. package/es/TreeSelect/tiled.js +143 -106
  289. package/es/Upload/Dragger.js +63 -39
  290. package/es/Upload/Drop.js +79 -57
  291. package/es/Upload/File.js +61 -48
  292. package/es/Upload/FileInput.js +53 -40
  293. package/es/Upload/Image.js +158 -115
  294. package/es/Upload/ImageFile.js +63 -43
  295. package/es/Upload/ImageResult.js +139 -114
  296. package/es/Upload/Progress.js +117 -105
  297. package/es/Upload/RemoveConfirm.js +58 -42
  298. package/es/Upload/Result.js +73 -58
  299. package/es/Upload/Upload.js +649 -490
  300. package/es/Upload/accept.js +33 -13
  301. package/es/Upload/context.js +12 -10
  302. package/es/Upload/index.js +16 -20
  303. package/es/Upload/request.js +48 -46
  304. package/es/Upload/styles/index.js +3 -4
  305. package/es/component.js +45 -24
  306. package/es/config.js +27 -19
  307. package/es/context/implementation.js +132 -94
  308. package/es/context/index.js +3 -4
  309. package/es/hoc/coin.js +118 -81
  310. package/es/hoc/config.js +31 -17
  311. package/es/hoc/delay.js +99 -55
  312. package/es/hoc/draggable.js +90 -80
  313. package/es/hoc/fetch.js +56 -33
  314. package/es/hoc/hidable.js +119 -98
  315. package/es/hoc/inputBorder.js +158 -158
  316. package/es/hoc/moveable.js +124 -96
  317. package/es/hoc/pagable.js +74 -55
  318. package/es/hoc/resizable.js +132 -100
  319. package/es/hoc/styles/index.js +7 -8
  320. package/es/hoc/trim.js +54 -32
  321. package/es/icons/Caret.js +14 -15
  322. package/es/icons/index.js +31 -85
  323. package/es/index.d.ts +1 -1
  324. package/es/index.js +58 -57
  325. package/es/locale/en_US.js +9 -30
  326. package/es/locale/index.js +13 -14
  327. package/es/locale/zh-CN.js +9 -17
  328. package/es/styles/expose.js +3 -4
  329. package/es/styles/index.js +1 -1
  330. package/es/utils/accept.js +15 -12
  331. package/es/utils/classname.js +23 -12
  332. package/es/utils/cleanProps.js +9 -21
  333. package/es/utils/clone.js +34 -27
  334. package/es/utils/color.js +310 -276
  335. package/es/utils/css-accessors.js +94 -45
  336. package/es/utils/dom/detect.js +29 -29
  337. package/es/utils/dom/document.js +23 -19
  338. package/es/utils/dom/element.js +139 -105
  339. package/es/utils/dom/getDataset.js +9 -9
  340. package/es/utils/dom/isDOMElement.js +3 -5
  341. package/es/utils/dom/normalizeWheel.js +32 -28
  342. package/es/utils/dom/popContainer.js +12 -13
  343. package/es/utils/dom/popover.js +79 -59
  344. package/es/utils/dom/ready.js +5 -6
  345. package/es/utils/dom/translate.js +10 -12
  346. package/es/utils/errors.js +47 -28
  347. package/es/utils/expose.js +97 -58
  348. package/es/utils/flat.js +122 -107
  349. package/es/utils/func.js +38 -20
  350. package/es/utils/hash.js +24 -20
  351. package/es/utils/index.js +24 -49
  352. package/es/utils/is.js +91 -70
  353. package/es/utils/lazyload.js +104 -86
  354. package/es/utils/notification.js +34 -20
  355. package/es/utils/numbers.js +61 -51
  356. package/es/utils/objects.js +221 -140
  357. package/es/utils/proptypes.js +21 -34
  358. package/es/utils/shallowEqual.js +46 -42
  359. package/es/utils/strings.js +50 -32
  360. package/es/utils/transform.js +24 -9
  361. package/es/utils/tree.js +78 -63
  362. package/es/utils/uid.js +14 -17
  363. package/es/utils/validate/index.js +71 -50
  364. package/es/utils/validate/isJson.js +7 -10
  365. package/es/utils/validate/nullable.js +10 -9
  366. package/es/utils/validate/range.js +22 -19
  367. package/es/utils/validate/rangeLength.js +19 -16
  368. package/es/utils/validate/regExp.js +10 -10
  369. package/es/utils/validate/required.js +11 -8
  370. package/es/utils/validate/type.js +56 -59
  371. package/es/utils/vars-inject.js +3420 -4248
  372. package/lib/DatePicker/utils.js +1 -1
  373. package/lib/Form/Field.js +8 -4
  374. package/lib/Form/Form.js +3 -0
  375. package/lib/Form/Item.js +1 -1
  376. package/lib/Form/index.d.ts +1 -0
  377. package/lib/Form/inputable.js +1 -1
  378. package/lib/Pagination/Jumper.js +3 -0
  379. package/lib/index.d.ts +1 -1
  380. package/lib/index.js +1 -1
  381. package/package.json +3 -2
@@ -1,64 +1,86 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import classnames from 'classnames'
4
- import { selectClass } from './styles'
5
- import { isObject } from '../utils/is'
6
- import shallowEqual from '../utils/shallowEqual'
7
- import icons from '../icons'
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
2
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import classnames from 'classnames';
6
+ import { selectClass } from './styles';
7
+ import { isObject } from '../utils/is';
8
+ import shallowEqual from '../utils/shallowEqual';
9
+ import icons from '../icons';
8
10
 
9
- class Option extends React.Component {
10
- constructor(props) {
11
- super(props)
12
- this.handleClick = this.handleClick.bind(this)
13
- this.handleEnter = this.handleHover.bind(this)
14
- }
11
+ var Option =
12
+ /*#__PURE__*/
13
+ function (_React$Component) {
14
+ _inheritsLoose(Option, _React$Component);
15
15
 
16
- shouldComponentUpdate(nextProps, nextState) {
17
- if (this.props.filterText) return true
18
- if (!shallowEqual(nextProps, this.props) || !shallowEqual(nextState, this.state)) return true
19
- return false
20
- }
16
+ function Option(props) {
17
+ var _this;
21
18
 
22
- handleClick() {
23
- const { data, onClick, isActive, index, disabled, groupKey } = this.props
19
+ _this = _React$Component.call(this, props) || this;
20
+ _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_assertThisInitialized(_this)));
21
+ _this.handleEnter = _this.handleHover.bind(_assertThisInitialized(_assertThisInitialized(_this)));
22
+ return _this;
23
+ }
24
24
 
25
- if (this.locked || disabled || (data && data[groupKey])) return
26
- this.locked = true
25
+ var _proto = Option.prototype;
27
26
 
28
- onClick(!isActive, data, index)
27
+ _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {
28
+ if (this.props.filterText) return true;
29
+ if (!shallowEqual(nextProps, this.props) || !shallowEqual(nextState, this.state)) return true;
30
+ return false;
31
+ };
29
32
 
30
- setTimeout(() => {
31
- this.locked = false
32
- }, 200)
33
- }
33
+ _proto.handleClick = function handleClick() {
34
+ var _this2 = this;
34
35
 
35
- handleHover() {
36
- this.props.onHover(this.props.index)
37
- }
36
+ var _this$props = this.props,
37
+ data = _this$props.data,
38
+ onClick = _this$props.onClick,
39
+ isActive = _this$props.isActive,
40
+ index = _this$props.index,
41
+ disabled = _this$props.disabled,
42
+ groupKey = _this$props.groupKey;
43
+ if (this.locked || disabled || data && data[groupKey]) return;
44
+ this.locked = true;
45
+ onClick(!isActive, data, index);
46
+ setTimeout(function () {
47
+ _this2.locked = false;
48
+ }, 200);
49
+ };
38
50
 
39
- render() {
40
- const { data, isActive, index, renderItem, isHover, disabled, groupKey } = this.props
41
- const isGroupTitle = data && data[groupKey]
42
- const className = classnames(
43
- selectClass('option', isActive && 'active', isHover && 'hover', disabled && 'disabled', isGroupTitle && 'group'),
44
- `option-${index}`
45
- )
51
+ _proto.handleHover = function handleHover() {
52
+ this.props.onHover(this.props.index);
53
+ };
46
54
 
47
- const result = isGroupTitle ? data[groupKey] : renderItem(data, index)
48
- const title = typeof result === 'string' ? result : ''
55
+ _proto.render = function render() {
56
+ var _this$props2 = this.props,
57
+ data = _this$props2.data,
58
+ isActive = _this$props2.isActive,
59
+ index = _this$props2.index,
60
+ renderItem = _this$props2.renderItem,
61
+ isHover = _this$props2.isHover,
62
+ disabled = _this$props2.disabled,
63
+ groupKey = _this$props2.groupKey;
64
+ var isGroupTitle = data && data[groupKey];
65
+ var className = classnames(selectClass('option', isActive && 'active', isHover && 'hover', disabled && 'disabled', isGroupTitle && 'group'), "option-" + index);
66
+ var result = isGroupTitle ? data[groupKey] : renderItem(data, index);
67
+ var title = typeof result === 'string' ? result : '';
49
68
 
50
69
  if (isObject(data) && result === data) {
51
- console.warn('renderItem is essential when data element is Object')
70
+ console.warn('renderItem is essential when data element is Object');
52
71
  }
53
72
 
54
- return (
55
- <a tabIndex={-1} onClick={this.handleClick} onMouseEnter={this.handleEnter} className={className} title={title}>
56
- {result}
57
- {isActive && icons.Check}
58
- </a>
59
- )
60
- }
61
- }
73
+ return React.createElement("a", {
74
+ tabIndex: -1,
75
+ onClick: this.handleClick,
76
+ onMouseEnter: this.handleEnter,
77
+ className: className,
78
+ title: title
79
+ }, result, isActive && icons.Check);
80
+ };
81
+
82
+ return Option;
83
+ }(React.Component);
62
84
 
63
85
  Option.propTypes = {
64
86
  data: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.number]).isRequired,
@@ -70,7 +92,6 @@ Option.propTypes = {
70
92
  onHover: PropTypes.func.isRequired,
71
93
  renderItem: PropTypes.func.isRequired,
72
94
  groupKey: PropTypes.string,
73
- filterText: PropTypes.string,
74
- }
75
-
76
- export default Option
95
+ filterText: PropTypes.string
96
+ };
97
+ export default Option;
@@ -1,236 +1,273 @@
1
- import React, { Component } from 'react'
2
- import PropTypes from 'prop-types'
3
- import classnames from 'classnames'
4
- import { getKey } from '../utils/uid'
5
- import { setTranslate } from '../utils/dom/translate'
6
- import List from '../AnimationList'
7
- import Scroll from '../Scroll'
8
- import Spin from '../Spin'
9
- import { getLocale } from '../locale'
10
- import { selectClass } from './styles'
11
- import Option from './Option'
12
-
13
- const ScaleList = List(['fade', 'scale-y'], 'fast')
14
-
15
- class OptionList extends Component {
16
- constructor(props) {
17
- super(props)
18
- this.state = {
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
2
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
3
+ import React, { Component } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import classnames from 'classnames';
6
+ import { getKey } from '../utils/uid';
7
+ import { setTranslate } from '../utils/dom/translate';
8
+ import List from '../AnimationList';
9
+ import Scroll from '../Scroll';
10
+ import Spin from '../Spin';
11
+ import { getLocale } from '../locale';
12
+ import { selectClass } from './styles';
13
+ import Option from './Option';
14
+ var ScaleList = List(['fade', 'scale-y'], 'fast');
15
+
16
+ var OptionList =
17
+ /*#__PURE__*/
18
+ function (_Component) {
19
+ _inheritsLoose(OptionList, _Component);
20
+
21
+ function OptionList(props) {
22
+ var _this;
23
+
24
+ _this = _Component.call(this, props) || this;
25
+ _this.state = {
19
26
  currentIndex: 0,
20
27
  hoverIndex: props.hideCreateOption ? -1 : 0,
21
- scrollTop: 0,
22
- }
23
-
24
- this.hoverMove = this.hoverMove.bind(this)
25
-
26
- this.handleHover = this.handleHover.bind(this)
27
- this.handleScroll = this.handleScroll.bind(this)
28
- this.handleMouseMove = this.handleMouseMove.bind(this)
29
- this.renderList = this.renderList.bind(this)
28
+ scrollTop: 0
29
+ };
30
+ _this.hoverMove = _this.hoverMove.bind(_assertThisInitialized(_assertThisInitialized(_this)));
31
+ _this.handleHover = _this.handleHover.bind(_assertThisInitialized(_assertThisInitialized(_this)));
32
+ _this.handleScroll = _this.handleScroll.bind(_assertThisInitialized(_assertThisInitialized(_this)));
33
+ _this.handleMouseMove = _this.handleMouseMove.bind(_assertThisInitialized(_assertThisInitialized(_this)));
34
+ _this.renderList = _this.renderList.bind(_assertThisInitialized(_assertThisInitialized(_this)));
35
+ _this.lastScrollTop = 0;
36
+ props.bindOptionFunc('handleHover', _this.handleHover);
37
+ props.bindOptionFunc('hoverMove', _this.hoverMove);
38
+ props.bindOptionFunc('getIndex', function () {
39
+ return _this.state.hoverIndex;
40
+ });
41
+ return _this;
42
+ }
30
43
 
31
- this.lastScrollTop = 0
44
+ var _proto = OptionList.prototype;
32
45
 
33
- props.bindOptionFunc('handleHover', this.handleHover)
34
- props.bindOptionFunc('hoverMove', this.hoverMove)
35
- props.bindOptionFunc('getIndex', () => this.state.hoverIndex)
36
- }
46
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
47
+ var _this2 = this;
37
48
 
38
- componentDidUpdate(prevProps) {
39
- const { data } = this.props
49
+ var data = this.props.data;
40
50
 
41
51
  if (data !== prevProps.data && data.length !== prevProps.data.length) {
42
- this.lastScrollTop = 0
43
- // eslint-disable-next-line
44
- this.setState({ currentIndex: 0, scrollTop: 0 }, () => {
45
- if (this.optionInner) {
46
- setTranslate(this.optionInner, '0px', '0px')
47
- this.optionInner.style.marginTop = '0px'
52
+ this.lastScrollTop = 0; // eslint-disable-next-line
53
+
54
+ this.setState({
55
+ currentIndex: 0,
56
+ scrollTop: 0
57
+ }, function () {
58
+ if (_this2.optionInner) {
59
+ setTranslate(_this2.optionInner, '0px', '0px');
60
+ _this2.optionInner.style.marginTop = '0px';
48
61
  }
49
- })
62
+ });
50
63
  }
51
- }
64
+ };
65
+
66
+ _proto.getText = function getText(key) {
67
+ return this.props.text[key] || getLocale(key);
68
+ };
69
+
70
+ _proto.hoverMove = function hoverMove(step) {
71
+ var max = this.props.data.length;
72
+ var _this$props = this.props,
73
+ lineHeight = _this$props.lineHeight,
74
+ height = _this$props.height,
75
+ groupKey = _this$props.groupKey;
76
+ var _this$state = this.state,
77
+ hoverIndex = _this$state.hoverIndex,
78
+ currentIndex = _this$state.currentIndex;
79
+ if (hoverIndex === undefined) hoverIndex = currentIndex;else hoverIndex += step;
52
80
 
53
- getText(key) {
54
- return this.props.text[key] || getLocale(key)
55
- }
81
+ if (hoverIndex >= max) {
82
+ hoverIndex = 0;
83
+ this.lastScrollTop = 0;
84
+ } // jump the group, the group would't be the last, so do't need to fixed the last
56
85
 
57
- hoverMove(step) {
58
- const max = this.props.data.length
59
- const { lineHeight, height, groupKey } = this.props
60
- let { hoverIndex, currentIndex } = this.state
61
- if (hoverIndex === undefined) hoverIndex = currentIndex
62
- else hoverIndex += step
63
86
 
64
- if (hoverIndex >= max) {
65
- hoverIndex = 0
66
- this.lastScrollTop = 0
67
- }
87
+ var data = this.props.data[hoverIndex];
68
88
 
69
- // jump the group, the group would't be the last, so do't need to fixed the last
70
- const data = this.props.data[hoverIndex]
71
89
  if (data && data[groupKey]) {
72
- if (step > 0) hoverIndex += 1
73
- else hoverIndex -= 1
90
+ if (step > 0) hoverIndex += 1;else hoverIndex -= 1;
74
91
  }
75
- if (hoverIndex < 0) hoverIndex = max - 1
76
92
 
77
- const scrollTop = hoverIndex / max
78
- const offset = scrollTop * height
79
- const emptyHeight = hoverIndex * lineHeight + offset
93
+ if (hoverIndex < 0) hoverIndex = max - 1;
94
+ var scrollTop = hoverIndex / max;
95
+ var offset = scrollTop * height;
96
+ var emptyHeight = hoverIndex * lineHeight + offset;
80
97
 
81
98
  if (emptyHeight < this.lastScrollTop + offset) {
82
99
  // absolute at top
83
-
84
- this.optionInner.style.marginTop = `${offset}px`
85
- setTranslate(this.optionInner, '0px', `-${emptyHeight}px`)
86
- this.lastScrollTop = emptyHeight - offset
87
-
88
- currentIndex = hoverIndex - 1
89
- if (currentIndex < 0) currentIndex = max
90
- this.setState({ currentIndex, scrollTop: emptyHeight / (lineHeight * max) })
100
+ this.optionInner.style.marginTop = offset + "px";
101
+ setTranslate(this.optionInner, '0px', "-" + emptyHeight + "px");
102
+ this.lastScrollTop = emptyHeight - offset;
103
+ currentIndex = hoverIndex - 1;
104
+ if (currentIndex < 0) currentIndex = max;
105
+ this.setState({
106
+ currentIndex: currentIndex,
107
+ scrollTop: emptyHeight / (lineHeight * max)
108
+ });
91
109
  } else if (emptyHeight + lineHeight > this.lastScrollTop + offset + height) {
92
110
  // absolute at bottom
93
-
94
- this.optionInner.style.marginTop = `${offset}px`
95
- const scrollHeight = emptyHeight + lineHeight - height
96
- setTranslate(this.optionInner, '0px', `-${scrollHeight}px`)
97
- this.lastScrollTop = scrollHeight - offset
98
-
99
- currentIndex = hoverIndex - Math.ceil(height / lineHeight)
100
- if (currentIndex < 0) currentIndex = 0
101
- this.setState({ currentIndex, scrollTop: scrollHeight / (lineHeight * max) })
111
+ this.optionInner.style.marginTop = offset + "px";
112
+ var scrollHeight = emptyHeight + lineHeight - height;
113
+ setTranslate(this.optionInner, '0px', "-" + scrollHeight + "px");
114
+ this.lastScrollTop = scrollHeight - offset;
115
+ currentIndex = hoverIndex - Math.ceil(height / lineHeight);
116
+ if (currentIndex < 0) currentIndex = 0;
117
+ this.setState({
118
+ currentIndex: currentIndex,
119
+ scrollTop: scrollHeight / (lineHeight * max)
120
+ });
102
121
  } else if (hoverIndex === 0 && emptyHeight === 0) {
103
122
  // reset to top
104
-
105
- this.optionInner.style.marginTop = '0px'
106
- setTranslate(this.optionInner, '0px', '0px')
107
- this.setState({ currentIndex: 0, scrollTop: 0 })
123
+ this.optionInner.style.marginTop = '0px';
124
+ setTranslate(this.optionInner, '0px', '0px');
125
+ this.setState({
126
+ currentIndex: 0,
127
+ scrollTop: 0
128
+ });
108
129
  }
109
- this.setState({ hoverIndex })
110
- }
111
-
112
- handleScroll(x, y, max, bar, v, h, pixelX, pixelY) {
113
- if (!this.optionInner) return
114
- const { data, itemsInView, lineHeight } = this.props
115
- const fullHeight = itemsInView * lineHeight
116
- const contentHeight = data.length * lineHeight - h
117
- let scrollTop = h > fullHeight ? 0 : y
118
130
 
119
- this.optionInner.style.marginTop = `${scrollTop * h}px`
131
+ this.setState({
132
+ hoverIndex: hoverIndex
133
+ });
134
+ };
135
+
136
+ _proto.handleScroll = function handleScroll(x, y, max, bar, v, h, pixelX, pixelY) {
137
+ if (!this.optionInner) return;
138
+ var _this$props2 = this.props,
139
+ data = _this$props2.data,
140
+ itemsInView = _this$props2.itemsInView,
141
+ lineHeight = _this$props2.lineHeight;
142
+ var fullHeight = itemsInView * lineHeight;
143
+ var contentHeight = data.length * lineHeight - h;
144
+ var scrollTop = h > fullHeight ? 0 : y;
145
+ this.optionInner.style.marginTop = scrollTop * h + "px";
120
146
 
121
147
  if (pixelY === undefined || pixelY === 0) {
122
- this.lastScrollTop = scrollTop * contentHeight
148
+ this.lastScrollTop = scrollTop * contentHeight;
123
149
  } else {
124
- this.lastScrollTop += pixelY
125
- if (this.lastScrollTop < 0) this.lastScrollTop = 0
150
+ this.lastScrollTop += pixelY;
151
+ if (this.lastScrollTop < 0) this.lastScrollTop = 0; // scroll over bottom
126
152
 
127
- // scroll over bottom
128
- if (this.lastScrollTop > contentHeight) this.lastScrollTop = contentHeight
129
- scrollTop = this.lastScrollTop / contentHeight
130
- this.optionInner.style.marginTop = `${scrollTop * h}px`
153
+ if (this.lastScrollTop > contentHeight) this.lastScrollTop = contentHeight;
154
+ scrollTop = this.lastScrollTop / contentHeight;
155
+ this.optionInner.style.marginTop = scrollTop * h + "px";
131
156
  }
132
157
 
133
- let index = Math.floor(this.lastScrollTop / lineHeight) - 1
134
- if (data.length - itemsInView < index) index = data.length - itemsInView
135
- if (index < 0) index = 0
136
-
137
- setTranslate(this.optionInner, '0px', `-${this.lastScrollTop + scrollTop * h}px`)
138
-
139
- this.setState({ scrollTop, currentIndex: index })
140
- }
141
-
142
- handleHover(index, force) {
158
+ var index = Math.floor(this.lastScrollTop / lineHeight) - 1;
159
+ if (data.length - itemsInView < index) index = data.length - itemsInView;
160
+ if (index < 0) index = 0;
161
+ setTranslate(this.optionInner, '0px', "-" + (this.lastScrollTop + scrollTop * h) + "px");
162
+ this.setState({
163
+ scrollTop: scrollTop,
164
+ currentIndex: index
165
+ });
166
+ };
167
+
168
+ _proto.handleHover = function handleHover(index, force) {
143
169
  if ((this.props.control === 'mouse' || force) && this.state.hoverIndex !== index) {
144
- this.setState({ hoverIndex: index })
170
+ this.setState({
171
+ hoverIndex: index
172
+ });
145
173
  }
146
- }
147
-
148
- handleMouseMove() {
149
- this.props.onControlChange('mouse')
150
- }
174
+ };
175
+
176
+ _proto.handleMouseMove = function handleMouseMove() {
177
+ this.props.onControlChange('mouse');
178
+ };
179
+
180
+ _proto.renderList = function renderList() {
181
+ var _this3 = this;
182
+
183
+ var _this$props3 = this.props,
184
+ loading = _this$props3.loading,
185
+ data = _this$props3.data,
186
+ renderPending = _this$props3.renderPending,
187
+ height = _this$props3.height,
188
+ lineHeight = _this$props3.lineHeight,
189
+ itemsInView = _this$props3.itemsInView,
190
+ datum = _this$props3.datum,
191
+ keygen = _this$props3.keygen,
192
+ multiple = _this$props3.multiple,
193
+ onChange = _this$props3.onChange,
194
+ renderItem = _this$props3.renderItem,
195
+ groupKey = _this$props3.groupKey,
196
+ filterText = _this$props3.filterText,
197
+ emptyText = _this$props3.emptyText;
198
+ var _this$state2 = this.state,
199
+ hoverIndex = _this$state2.hoverIndex,
200
+ currentIndex = _this$state2.currentIndex;
201
+ var scroll = '';
202
+ var scrollHeight = lineHeight * data.length;
151
203
 
152
- renderList() {
153
- const {
154
- loading,
155
- data,
156
- renderPending,
157
- height,
158
- lineHeight,
159
- itemsInView,
160
- datum,
161
- keygen,
162
- multiple,
163
- onChange,
164
- renderItem,
165
- groupKey,
166
- filterText,
167
- emptyText,
168
- } = this.props
169
- const { hoverIndex, currentIndex } = this.state
170
- let scroll = ''
171
- const scrollHeight = lineHeight * data.length
172
204
  if (height < scrollHeight) {
173
- scroll = 'y'
205
+ scroll = 'y';
174
206
  }
175
- if (loading)
176
- return (
177
- <span className={selectClass('option')}>{typeof loading === 'boolean' ? <Spin size={20} /> : loading}</span>
178
- )
179
- if (data.length === 0 || renderPending)
180
- return <span className={selectClass('option')}>{emptyText || this.getText('noData')}</span>
181
- return (
182
- <Scroll
183
- scroll={scroll}
184
- style={{ height: scroll ? height : undefined }}
185
- onScroll={this.handleScroll}
186
- scrollHeight={data.length * lineHeight}
187
- scrollTop={this.state.scrollTop}
188
- >
189
- <div
190
- ref={el => {
191
- this.optionInner = el
192
- }}
193
- >
194
- <div style={{ height: currentIndex * lineHeight }} />
195
- {data.slice(currentIndex, currentIndex + itemsInView).map((d, i) => (
196
- <Option
197
- isActive={datum.check(d)}
198
- disabled={datum.disabled(d)}
199
- isHover={hoverIndex === currentIndex + i}
200
- key={d && d[groupKey] ? `__${d[groupKey]}__` : getKey(d, keygen, i)}
201
- index={currentIndex + i}
202
- data={d}
203
- multiple={multiple}
204
- onClick={onChange}
205
- renderItem={renderItem}
206
- onHover={this.handleHover}
207
- groupKey={groupKey}
208
- filterText={filterText}
209
- />
210
- ))}
211
- </div>
212
- </Scroll>
213
- )
214
- }
215
207
 
216
- render() {
217
- const { control, focus, style, selectId, autoClass, getRef, customHeader } = this.props
218
-
219
- return (
220
- <ScaleList
221
- show={focus}
222
- onMouseMove={this.handleMouseMove}
223
- style={style}
224
- data-id={selectId}
225
- className={classnames(selectClass('options', `control-${control}`), autoClass)}
226
- getRef={getRef}
227
- >
228
- {customHeader}
229
- {this.renderList()}
230
- </ScaleList>
231
- )
232
- }
233
- }
208
+ if (loading) return React.createElement("span", {
209
+ className: selectClass('option')
210
+ }, typeof loading === 'boolean' ? React.createElement(Spin, {
211
+ size: 20
212
+ }) : loading);
213
+ if (data.length === 0 || renderPending) return React.createElement("span", {
214
+ className: selectClass('option')
215
+ }, emptyText || this.getText('noData'));
216
+ return React.createElement(Scroll, {
217
+ scroll: scroll,
218
+ style: {
219
+ height: scroll ? height : undefined
220
+ },
221
+ onScroll: this.handleScroll,
222
+ scrollHeight: data.length * lineHeight,
223
+ scrollTop: this.state.scrollTop
224
+ }, React.createElement("div", {
225
+ ref: function ref(el) {
226
+ _this3.optionInner = el;
227
+ }
228
+ }, React.createElement("div", {
229
+ style: {
230
+ height: currentIndex * lineHeight
231
+ }
232
+ }), data.slice(currentIndex, currentIndex + itemsInView).map(function (d, i) {
233
+ return React.createElement(Option, {
234
+ isActive: datum.check(d),
235
+ disabled: datum.disabled(d),
236
+ isHover: hoverIndex === currentIndex + i,
237
+ key: d && d[groupKey] ? "__" + d[groupKey] + "__" : getKey(d, keygen, i),
238
+ index: currentIndex + i,
239
+ data: d,
240
+ multiple: multiple,
241
+ onClick: onChange,
242
+ renderItem: renderItem,
243
+ onHover: _this3.handleHover,
244
+ groupKey: groupKey,
245
+ filterText: filterText
246
+ });
247
+ })));
248
+ };
249
+
250
+ _proto.render = function render() {
251
+ var _this$props4 = this.props,
252
+ control = _this$props4.control,
253
+ focus = _this$props4.focus,
254
+ style = _this$props4.style,
255
+ selectId = _this$props4.selectId,
256
+ autoClass = _this$props4.autoClass,
257
+ getRef = _this$props4.getRef,
258
+ customHeader = _this$props4.customHeader;
259
+ return React.createElement(ScaleList, {
260
+ show: focus,
261
+ onMouseMove: this.handleMouseMove,
262
+ style: style,
263
+ "data-id": selectId,
264
+ className: classnames(selectClass('options', "control-" + control), autoClass),
265
+ getRef: getRef
266
+ }, customHeader, this.renderList());
267
+ };
268
+
269
+ return OptionList;
270
+ }(Component);
234
271
 
235
272
  OptionList.propTypes = {
236
273
  control: PropTypes.oneOf(['mouse', 'keyboard']),
@@ -257,7 +294,6 @@ OptionList.propTypes = {
257
294
  customHeader: PropTypes.node,
258
295
  filterText: PropTypes.string,
259
296
  hideCreateOption: PropTypes.bool,
260
- emptyText: PropTypes.node,
261
- }
262
-
263
- export default OptionList
297
+ emptyText: PropTypes.node
298
+ };
299
+ export default OptionList;