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
package/es/Form/Field.js CHANGED
@@ -1,59 +1,83 @@
1
- import { cloneElement, isValidElement, Component } from 'react'
2
- import PropTypes from 'prop-types'
3
- import shallowEqual from '../utils/shallowEqual'
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
2
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
3
+ import { cloneElement, isValidElement, Component } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import shallowEqual from '../utils/shallowEqual';
4
6
 
5
- class Field extends Component {
6
- constructor(props) {
7
- super(props)
8
- this.handleChange = this.handleChange.bind(this)
7
+ var Field =
8
+ /*#__PURE__*/
9
+ function (_Component) {
10
+ _inheritsLoose(Field, _Component);
9
11
 
10
- this.cacheChildren = undefined
11
- this.cacheElement = null
12
- }
12
+ function Field(props) {
13
+ var _this;
13
14
 
14
- shouldComponentUpdate(nextProps) {
15
- const options = this.props.cache ? { skip: ['children'] } : {}
16
- return !(shallowEqual(this.props, nextProps, options))
15
+ _this = _Component.call(this, props) || this;
16
+ _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));
17
+ _this.cacheChildren = undefined;
18
+ _this.cacheElement = null;
19
+ return _this;
17
20
  }
18
21
 
19
- handleChange(value) {
22
+ var _proto = Field.prototype;
23
+
24
+ _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
25
+ var options = this.props.cache ? {
26
+ skip: ['children']
27
+ } : {};
28
+ return !shallowEqual(this.props, nextProps, options);
29
+ };
30
+
31
+ _proto.handleChange = function handleChange(value) {
20
32
  if (value && value.nativeEvent) {
21
33
  // eslint-disable-next-line
22
- value = value.target.value
34
+ value = value.target.value;
23
35
  }
24
36
 
25
- this.props.onChange(value)
26
- }
37
+ this.props.onChange(value);
38
+ };
27
39
 
28
- render() {
29
- const { children, value, error } = this.props
40
+ _proto.render = function render() {
41
+ var _this$props = this.props,
42
+ children = _this$props.children,
43
+ value = _this$props.value,
44
+ error = _this$props.error,
45
+ disabled = _this$props.disabled;
30
46
 
31
47
  if (typeof children === 'function') {
32
- return children({ value, error, onChange: this.handleChange })
48
+ return children({
49
+ value: value,
50
+ error: error,
51
+ onChange: this.handleChange,
52
+ disabled: disabled
53
+ });
33
54
  }
34
55
 
35
56
  if (isValidElement(children)) {
36
- return cloneElement(children, { value, error, onChange: this.handleChange })
57
+ return cloneElement(children, {
58
+ value: value,
59
+ error: error,
60
+ onChange: this.handleChange,
61
+ disabled: disabled
62
+ });
37
63
  }
38
64
 
39
- console.error(new Error('Form.Field expect a single ReactElement or a function.'))
40
- return null
41
- }
42
- }
65
+ console.error(new Error('Form.Field expect a single ReactElement or a function.'));
66
+ return null;
67
+ };
68
+
69
+ return Field;
70
+ }(Component);
43
71
 
44
72
  Field.propTypes = {
45
73
  cache: PropTypes.bool,
46
- children: PropTypes.oneOfType([
47
- PropTypes.func,
48
- PropTypes.element,
49
- ]).isRequired,
74
+ children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired,
50
75
  error: PropTypes.object,
51
76
  onChange: PropTypes.func.isRequired,
52
77
  value: PropTypes.any,
53
- }
54
-
78
+ disabled: PropTypes.bool
79
+ };
55
80
  Field.defaultProps = {
56
- cache: false,
57
- }
58
-
59
- export default Field
81
+ cache: false
82
+ };
83
+ export default Field;
@@ -1,27 +1,33 @@
1
- import React, { PureComponent } from 'react'
2
- import PropTypes from 'prop-types'
3
- import { formClass } from './styles'
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
2
+ import React, { PureComponent } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { formClass } from './styles';
4
5
 
5
- class FieldError extends PureComponent {
6
- render() {
7
- let { error } = this.props
6
+ var FieldError =
7
+ /*#__PURE__*/
8
+ function (_PureComponent) {
9
+ _inheritsLoose(FieldError, _PureComponent);
8
10
 
9
- // eslint-disable-next-line
10
- if (Array.isArray(error)) error = error[0]
11
+ function FieldError() {
12
+ return _PureComponent.apply(this, arguments) || this;
13
+ }
11
14
 
12
- if (!(error instanceof Error)) return null
15
+ var _proto = FieldError.prototype;
13
16
 
14
- return (
15
- <div className={formClass('error')}>{error.message}</div>
16
- )
17
- }
18
- }
17
+ _proto.render = function render() {
18
+ var error = this.props.error; // eslint-disable-next-line
19
19
 
20
- FieldError.propTypes = {
21
- error: PropTypes.oneOfType([
22
- PropTypes.array,
23
- PropTypes.object,
24
- ]),
25
- }
20
+ if (Array.isArray(error)) error = error[0];
21
+ if (!(error instanceof Error)) return null;
22
+ return React.createElement("div", {
23
+ className: formClass('error')
24
+ }, error.message);
25
+ };
26
26
 
27
- export default FieldError
27
+ return FieldError;
28
+ }(PureComponent);
29
+
30
+ FieldError.propTypes = {
31
+ error: PropTypes.oneOfType([PropTypes.array, PropTypes.object])
32
+ };
33
+ export default FieldError;
@@ -1,155 +1,214 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import createReactContext from '../context'
4
- import { Component } from '../component'
5
- import { filterProps } from '../utils/objects'
6
- import validate from '../utils/validate'
7
- import { FormError, isSameError } from '../utils/errors'
8
- import { ERROR_TYPE, FORCE_PASS, IGNORE_VALIDATE } from '../Datum/types'
9
- import FieldError from './FieldError'
10
-
11
- const { Provider, Consumer } = createReactContext()
12
-
13
- const extendName = (path = '', name) => {
14
- if (name === undefined) return undefined
15
- if (name === '') return path
16
- if (Array.isArray(name)) return name.map(n => extendName(path, n))
17
- return `${path}${path.length > 0 ? '.' : ''}${name}`
18
- }
19
-
20
- class FieldSet extends Component {
21
- constructor(props) {
22
- super(props)
23
-
24
- this.validate = this.validate.bind(this)
25
- this.handleUpdate = this.handleUpdate.bind(this)
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import createReactContext from '../context';
7
+ import { Component } from '../component';
8
+ import { filterProps } from '../utils/objects';
9
+ import _validate from '../utils/validate';
10
+ import { FormError, isSameError } from '../utils/errors';
11
+ import { ERROR_TYPE, FORCE_PASS, IGNORE_VALIDATE } from '../Datum/types';
12
+ import FieldError from './FieldError';
13
+
14
+ var _createReactContext = createReactContext(),
15
+ Provider = _createReactContext.Provider,
16
+ Consumer = _createReactContext.Consumer;
17
+
18
+ var extendName = function extendName(path, name) {
19
+ if (path === void 0) {
20
+ path = '';
26
21
  }
27
22
 
28
- componentDidMount() {
29
- super.componentDidMount()
30
- const { formDatum, name, defaultValue } = this.props
31
- formDatum.bind(name, this.handleUpdate, defaultValue, this.validate)
23
+ if (name === undefined) return undefined;
24
+ if (name === '') return path;
25
+ if (Array.isArray(name)) return name.map(function (n) {
26
+ return extendName(path, n);
27
+ });
28
+ return "" + path + (path.length > 0 ? '.' : '') + name;
29
+ };
30
+
31
+ var FieldSet =
32
+ /*#__PURE__*/
33
+ function (_Component) {
34
+ _inheritsLoose(FieldSet, _Component);
35
+
36
+ function FieldSet(props) {
37
+ var _this;
38
+
39
+ _this = _Component.call(this, props) || this;
40
+ _this.validate = _this.validate.bind(_assertThisInitialized(_assertThisInitialized(_this)));
41
+ _this.handleUpdate = _this.handleUpdate.bind(_assertThisInitialized(_assertThisInitialized(_this)));
42
+ return _this;
32
43
  }
33
44
 
34
- componentWillUnmount() {
35
- super.componentWillUnmount()
36
- const { formDatum, name } = this.props
37
- formDatum.unbind(name, this.handleUpdate)
38
- }
39
-
40
- validate() {
41
- const { formDatum, name } = this.props
42
- const value = formDatum.get(name)
43
- const data = formDatum.getValue()
44
- const validateProps = filterProps(this.props, v => typeof v === 'string' || typeof v === 'number')
45
- validateProps.type = 'array'
46
- let rules = [...this.props.rules]
47
- rules = rules.concat(formDatum.getRule(name))
48
-
49
- if (rules.length === 0) return Promise.resolve(true)
50
-
51
- return validate(value, data, rules, validateProps).then(
52
- () => {
53
- this.handleError()
54
- return true
55
- },
56
- e => {
57
- this.handleError(e)
58
- return new FormError(e)
59
- }
60
- )
61
- }
62
-
63
- updateWithValidate() {
64
- this.validate().then(() => {
65
- this.forceUpdate()
66
- })
67
- }
68
-
69
- handleError(error) {
70
- const { formDatum, name, onError } = this.props
71
- if (isSameError(error, formDatum.getError(name, true))) return
72
- formDatum.setError(name, error, true)
73
- if (onError) onError(error)
74
- }
75
-
76
- handleUpdate(v, n, type) {
77
- if (this.updateTimer) clearTimeout(this.updateTimer)
78
- this.updateTimer = setTimeout(() => {
45
+ var _proto = FieldSet.prototype;
46
+
47
+ _proto.componentDidMount = function componentDidMount() {
48
+ _Component.prototype.componentDidMount.call(this);
49
+
50
+ var _this$props = this.props,
51
+ formDatum = _this$props.formDatum,
52
+ name = _this$props.name,
53
+ defaultValue = _this$props.defaultValue;
54
+ formDatum.bind(name, this.handleUpdate, defaultValue, this.validate);
55
+ };
56
+
57
+ _proto.componentWillUnmount = function componentWillUnmount() {
58
+ _Component.prototype.componentWillUnmount.call(this);
59
+
60
+ var _this$props2 = this.props,
61
+ formDatum = _this$props2.formDatum,
62
+ name = _this$props2.name;
63
+ formDatum.unbind(name, this.handleUpdate);
64
+ };
65
+
66
+ _proto.validate = function validate() {
67
+ var _this2 = this;
68
+
69
+ var _this$props3 = this.props,
70
+ formDatum = _this$props3.formDatum,
71
+ name = _this$props3.name;
72
+ var value = formDatum.get(name);
73
+ var data = formDatum.getValue();
74
+ var validateProps = filterProps(this.props, function (v) {
75
+ return typeof v === 'string' || typeof v === 'number';
76
+ });
77
+ validateProps.type = 'array';
78
+ var rules = [].concat(this.props.rules);
79
+ rules = rules.concat(formDatum.getRule(name));
80
+ if (rules.length === 0) return Promise.resolve(true);
81
+ return _validate(value, data, rules, validateProps).then(function () {
82
+ _this2.handleError();
83
+
84
+ return true;
85
+ }, function (e) {
86
+ _this2.handleError(e);
87
+
88
+ return new FormError(e);
89
+ });
90
+ };
91
+
92
+ _proto.updateWithValidate = function updateWithValidate() {
93
+ var _this3 = this;
94
+
95
+ this.validate().then(function () {
96
+ _this3.forceUpdate();
97
+ });
98
+ };
99
+
100
+ _proto.handleError = function handleError(error) {
101
+ var _this$props4 = this.props,
102
+ formDatum = _this$props4.formDatum,
103
+ name = _this$props4.name,
104
+ onError = _this$props4.onError;
105
+ if (isSameError(error, formDatum.getError(name, true))) return;
106
+ formDatum.setError(name, error, true);
107
+ if (onError) onError(error);
108
+ };
109
+
110
+ _proto.handleUpdate = function handleUpdate(v, n, type) {
111
+ var _this4 = this;
112
+
113
+ if (this.updateTimer) clearTimeout(this.updateTimer);
114
+ this.updateTimer = setTimeout(function () {
79
115
  if (type === ERROR_TYPE || type === FORCE_PASS || type === IGNORE_VALIDATE) {
80
- this.forceUpdate()
116
+ _this4.forceUpdate();
81
117
  } else {
82
- this.updateWithValidate()
118
+ _this4.updateWithValidate();
83
119
  }
84
- })
85
- }
86
-
87
- handleInsert(index, value) {
88
- const { formDatum, name } = this.props
89
- formDatum.insert(name, index, value)
90
- this.updateWithValidate()
91
- }
92
-
93
- handleRemove(index) {
94
- const { formDatum, name } = this.props
95
- formDatum.splice(name, index)
96
- this.updateWithValidate()
97
- }
98
-
99
- handleChange(index, value, update) {
100
- const { formDatum, name } = this.props
101
- formDatum.set(`${name}[${index}]`, value)
102
- if (update) this.updateWithValidate()
103
- }
104
-
105
- render() {
106
- const { children, formDatum, name, empty, defaultValue } = this.props
107
-
108
- const errors = formDatum.getError(name)
109
- const result = []
120
+ });
121
+ };
122
+
123
+ _proto.handleInsert = function handleInsert(index, value) {
124
+ var _this$props5 = this.props,
125
+ formDatum = _this$props5.formDatum,
126
+ name = _this$props5.name;
127
+ formDatum.insert(name, index, value);
128
+ this.updateWithValidate();
129
+ };
130
+
131
+ _proto.handleRemove = function handleRemove(index) {
132
+ var _this$props6 = this.props,
133
+ formDatum = _this$props6.formDatum,
134
+ name = _this$props6.name;
135
+ formDatum.splice(name, index);
136
+ this.updateWithValidate();
137
+ };
138
+
139
+ _proto.handleChange = function handleChange(index, value, update) {
140
+ var _this$props7 = this.props,
141
+ formDatum = _this$props7.formDatum,
142
+ name = _this$props7.name;
143
+ formDatum.set(name + "[" + index + "]", value);
144
+ if (update) this.updateWithValidate();
145
+ };
146
+
147
+ _proto.render = function render() {
148
+ var _this5 = this;
149
+
150
+ var _this$props8 = this.props,
151
+ children = _this$props8.children,
152
+ formDatum = _this$props8.formDatum,
153
+ name = _this$props8.name,
154
+ empty = _this$props8.empty,
155
+ defaultValue = _this$props8.defaultValue;
156
+ var errors = formDatum.getError(name);
157
+ var result = [];
110
158
 
111
159
  if (typeof children !== 'function') {
112
- return (
113
- <Provider value={{ path: name, val: this.validate }}>
114
- {children}
115
- {errors instanceof Error && <FieldError key="error" error={errors} />}
116
- </Provider>
117
- )
160
+ return React.createElement(Provider, {
161
+ value: {
162
+ path: name,
163
+ val: this.validate
164
+ }
165
+ }, children, errors instanceof Error && React.createElement(FieldError, {
166
+ key: "error",
167
+ error: errors
168
+ }));
118
169
  }
119
170
 
120
- let values = formDatum.get(name) || defaultValue || []
121
- if (values && !Array.isArray(values)) values = [values]
171
+ var values = formDatum.get(name) || defaultValue || [];
172
+ if (values && !Array.isArray(values)) values = [values];
173
+
122
174
  if (values.length === 0 && empty) {
123
- result.push(empty(this.handleInsert.bind(this, 0)))
175
+ result.push(empty(this.handleInsert.bind(this, 0)));
124
176
  } else {
125
- const errorList = (Array.isArray(errors) ? errors : [errors]).filter(Boolean)
126
- console.log(errorList)
127
- values.forEach((v, i) => {
128
- result.push(
129
- <Provider key={i} value={{ path: `${name}[${i}]`, val: this.validate }}>
130
- {children({
131
- list: values,
132
- value: v,
133
- index: i,
134
- error: errorList,
135
- datum: formDatum,
136
- onChange: this.handleChange.bind(this, i),
137
- onInsert: this.handleInsert.bind(this, i),
138
- onAppend: this.handleInsert.bind(this, i + 1),
139
- onRemove: this.handleRemove.bind(this, i),
140
- })}
141
- </Provider>
142
- )
143
- })
177
+ var errorList = (Array.isArray(errors) ? errors : [errors]).filter(Boolean);
178
+ console.log(errorList);
179
+ values.forEach(function (v, i) {
180
+ result.push(React.createElement(Provider, {
181
+ key: i,
182
+ value: {
183
+ path: name + "[" + i + "]",
184
+ val: _this5.validate
185
+ }
186
+ }, children({
187
+ list: values,
188
+ value: v,
189
+ index: i,
190
+ error: errorList,
191
+ datum: formDatum,
192
+ onChange: _this5.handleChange.bind(_this5, i),
193
+ onInsert: _this5.handleInsert.bind(_this5, i),
194
+ onAppend: _this5.handleInsert.bind(_this5, i + 1),
195
+ onRemove: _this5.handleRemove.bind(_this5, i)
196
+ })));
197
+ });
144
198
  }
145
199
 
146
200
  if (errors instanceof Error) {
147
- result.push(<FieldError key="error" error={errors} />)
201
+ result.push(React.createElement(FieldError, {
202
+ key: "error",
203
+ error: errors
204
+ }));
148
205
  }
149
206
 
150
- return result
151
- }
152
- }
207
+ return result;
208
+ };
209
+
210
+ return FieldSet;
211
+ }(Component);
153
212
 
154
213
  FieldSet.propTypes = {
155
214
  children: PropTypes.any,
@@ -158,27 +217,26 @@ FieldSet.propTypes = {
158
217
  formDatum: PropTypes.object.isRequired,
159
218
  name: PropTypes.string.isRequired,
160
219
  onError: PropTypes.func,
161
- rules: PropTypes.array,
162
- }
163
-
220
+ rules: PropTypes.array
221
+ };
164
222
  FieldSet.defaultProps = {
165
- rules: [],
166
- }
167
-
168
- export const fieldSetConsumer = Origin => props => (
169
- <Consumer>
170
- {({ path, val } = {}) => (
171
- <Origin
172
- {...props}
223
+ rules: []
224
+ };
225
+ export var fieldSetConsumer = function fieldSetConsumer(Origin) {
226
+ return function (props) {
227
+ return React.createElement(Consumer, null, function (_temp) {
228
+ var _ref = _temp === void 0 ? {} : _temp,
229
+ path = _ref.path,
230
+ val = _ref.val;
231
+
232
+ return React.createElement(Origin, _extends({}, props, {
173
233
  // eslint-disable-next-line
174
- name={extendName(path, props.name)}
175
- innerFormNamePath={path}
176
- fieldSetValidate={val}
177
- />
178
- )}
179
- </Consumer>
180
- )
181
-
182
- export const FieldSetProvider = Provider
183
-
184
- export default fieldSetConsumer(FieldSet)
234
+ name: extendName(path, props.name),
235
+ innerFormNamePath: path,
236
+ fieldSetValidate: val
237
+ }));
238
+ });
239
+ };
240
+ };
241
+ export var FieldSetProvider = Provider;
242
+ export default fieldSetConsumer(FieldSet);