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/Flow.js CHANGED
@@ -1,47 +1,66 @@
1
- import PropTypes from 'prop-types'
2
- import { Component } from '../component'
3
- import { changeSubscribe, CHANGE_TOPIC } from '../Datum/types'
4
- import { isFunc } from '../utils/is'
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
2
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
3
+ import PropTypes from 'prop-types';
4
+ import { Component } from '../component';
5
+ import { changeSubscribe, CHANGE_TOPIC } from '../Datum/types';
6
+ import { isFunc } from '../utils/is';
5
7
 
6
- class Flow extends Component {
7
- constructor(props) {
8
- super(props)
8
+ var Flow =
9
+ /*#__PURE__*/
10
+ function (_Component) {
11
+ _inheritsLoose(Flow, _Component);
9
12
 
10
- this.update = this.forceUpdate.bind(this)
11
- this.events = []
13
+ function Flow(props) {
14
+ var _this;
15
+
16
+ _this = _Component.call(this, props) || this;
17
+ _this.update = _this.forceUpdate.bind(_assertThisInitialized(_assertThisInitialized(_this)));
18
+ _this.events = [];
19
+ var _this$props = _this.props,
20
+ names = _this$props.names,
21
+ formDatum = _this$props.formDatum;
12
22
 
13
- const { names, formDatum } = this.props
14
23
  if (names) {
15
- names.forEach(n => {
16
- const nc = changeSubscribe(n)
17
- formDatum.subscribe(nc, this.update)
18
- this.events.push(nc)
19
- })
24
+ names.forEach(function (n) {
25
+ var nc = changeSubscribe(n);
26
+ formDatum.subscribe(nc, _this.update);
27
+
28
+ _this.events.push(nc);
29
+ });
20
30
  } else {
21
- formDatum.subscribe(CHANGE_TOPIC, this.update)
22
- this.events.push(CHANGE_TOPIC)
31
+ formDatum.subscribe(CHANGE_TOPIC, _this.update);
32
+
33
+ _this.events.push(CHANGE_TOPIC);
23
34
  }
24
- }
25
35
 
26
- componentWillUnmount() {
27
- super.componentWillUnmount()
28
- const { formDatum } = this.props
29
- this.events.forEach(n => formDatum.unsubscribe(n))
36
+ return _this;
30
37
  }
31
38
 
32
- render() {
33
- const { children, formDatum } = this.props
39
+ var _proto = Flow.prototype;
34
40
 
35
- if (isFunc(children)) return children(formDatum) || null
41
+ _proto.componentWillUnmount = function componentWillUnmount() {
42
+ _Component.prototype.componentWillUnmount.call(this);
36
43
 
37
- return children
38
- }
39
- }
44
+ var formDatum = this.props.formDatum;
45
+ this.events.forEach(function (n) {
46
+ return formDatum.unsubscribe(n);
47
+ });
48
+ };
49
+
50
+ _proto.render = function render() {
51
+ var _this$props2 = this.props,
52
+ children = _this$props2.children,
53
+ formDatum = _this$props2.formDatum;
54
+ if (isFunc(children)) return children(formDatum) || null;
55
+ return children;
56
+ };
57
+
58
+ return Flow;
59
+ }(Component);
40
60
 
41
61
  Flow.propTypes = {
42
62
  children: PropTypes.any,
43
63
  formDatum: PropTypes.object.isRequired,
44
- names: PropTypes.array,
45
- }
46
-
47
- export default Flow
64
+ names: PropTypes.array
65
+ };
66
+ export default Flow;
package/es/Form/Form.js CHANGED
@@ -1,165 +1,205 @@
1
- import React, { Component } from 'react'
2
- import PropTypes from 'prop-types'
3
- import classnames from 'classnames'
4
- import { getUidStr } from '../utils/uid'
5
- import { formClass } from './styles'
6
- import { FormError } from '../utils/errors'
7
- import { getProps, defaultProps } from '../utils/proptypes'
8
- import { docScroll } from '../utils/dom/document'
9
- import { IGNORE_BIND } from '../Datum/types'
10
- import { FieldSetProvider } from './FieldSet'
11
- import { isRTL } from '../config'
12
-
13
- const emptyValue = { path: '' }
14
-
15
- class Form extends Component {
16
- constructor(props) {
17
- super(props)
18
-
19
- this.bindElement = this.bindElement.bind(this)
20
- this.handleSubmit = this.handleSubmit.bind(this)
21
- this.handleReset = this.handleReset.bind(this)
22
-
23
- this.locked = false
24
- this.id = `form_${getUidStr()}`
25
-
26
- this.form = {
27
- getValue: () => this.props.datum.getValue(),
28
- validate: () => this.props.datum.validate(),
29
- validateFields: fields => this.props.datum.validateFields(fields).catch(() => {}),
30
- clearValidate: () => {
31
- this.props.datum.validateClear()
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread";
2
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import React, { Component } from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import classnames from 'classnames';
7
+ import { getUidStr } from '../utils/uid';
8
+ import { formClass } from './styles';
9
+ import { FormError } from '../utils/errors';
10
+ import { getProps, defaultProps } from '../utils/proptypes';
11
+ import { docScroll } from '../utils/dom/document';
12
+ import { IGNORE_BIND } from '../Datum/types';
13
+ import { FieldSetProvider } from './FieldSet';
14
+ import { isRTL } from '../config';
15
+ var emptyValue = {
16
+ path: ''
17
+ };
18
+
19
+ var Form =
20
+ /*#__PURE__*/
21
+ function (_Component) {
22
+ _inheritsLoose(Form, _Component);
23
+
24
+ function Form(props) {
25
+ var _this;
26
+
27
+ _this = _Component.call(this, props) || this;
28
+ _this.bindElement = _this.bindElement.bind(_assertThisInitialized(_assertThisInitialized(_this)));
29
+ _this.handleSubmit = _this.handleSubmit.bind(_assertThisInitialized(_assertThisInitialized(_this)));
30
+ _this.handleReset = _this.handleReset.bind(_assertThisInitialized(_assertThisInitialized(_this)));
31
+ _this.locked = false;
32
+ _this.id = "form_" + getUidStr();
33
+ _this.form = {
34
+ getValue: function getValue() {
35
+ return _this.props.datum.getValue();
32
36
  },
33
- submit: (withValidate = true) => {
34
- if (withValidate) this.handleSubmit()
35
- else {
36
- const { activeElement } = document
37
- if (activeElement) activeElement.blur()
38
-
39
- if (this.props.onSubmit) this.props.onSubmit(this.props.datum.getValue())
40
- if (activeElement) activeElement.focus()
41
- }
37
+ validate: function validate() {
38
+ return _this.props.datum.validate();
42
39
  },
43
- reset: () => {
44
- this.handleReset()
40
+ validateFields: function validateFields(fields) {
41
+ return _this.props.datum.validateFields(fields).catch(function () {});
45
42
  },
46
- }
47
- }
43
+ validateFieldsWithError: function validateFieldsWithError(fields) {
44
+ return _this.props.datum.validateFields(fields);
45
+ },
46
+ clearValidate: function clearValidate() {
47
+ _this.props.datum.validateClear();
48
+ },
49
+ submit: function submit(withValidate) {
50
+ if (withValidate === void 0) {
51
+ withValidate = true;
52
+ }
48
53
 
49
- componentDidMount() {
50
- const { formRef } = this.props
51
- if (formRef) formRef(this.form)
52
- this.setStatus()
53
- if (this.element) {
54
- this.element.addEventListener('submit', this.handleSubmit)
55
- }
54
+ if (withValidate) _this.handleSubmit();else {
55
+ var _document = document,
56
+ activeElement = _document.activeElement;
57
+ if (activeElement) activeElement.blur();
58
+ if (_this.props.onSubmit) _this.props.onSubmit(_this.props.datum.getValue());
59
+ if (activeElement) activeElement.focus();
60
+ }
61
+ },
62
+ reset: function reset() {
63
+ _this.handleReset();
64
+ }
65
+ };
66
+ return _this;
56
67
  }
57
68
 
58
- componentDidUpdate(prevProps) {
59
- this.setStatus()
60
- if (prevProps.error !== this.props.error) this.props.datum.resetFormError(this.props.error)
61
- }
69
+ var _proto = Form.prototype;
70
+
71
+ _proto.componentDidMount = function componentDidMount() {
72
+ var formRef = this.props.formRef;
73
+ if (formRef) formRef(this.form);
74
+ this.setStatus();
62
75
 
63
- componentWillUnmount() {
64
- this.props.datum.formUnmount = true
65
76
  if (this.element) {
66
- this.element.removeEventListener('submit', this.handleSubmit)
77
+ this.element.addEventListener('submit', this.handleSubmit);
67
78
  }
68
- }
79
+ };
69
80
 
70
- setStatus() {
71
- const { disabled, pending, setFormStatus } = this.props
72
- if (!setFormStatus) return
73
- let status = disabled === true ? 'disabled' : ''
74
- if (pending === true) status = 'pending'
75
- setFormStatus(status)
76
- }
81
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
82
+ this.setStatus();
83
+ if (prevProps.error !== this.props.error) this.props.datum.resetFormError(this.props.error);
84
+ };
77
85
 
78
- bindElement(el) {
79
- this.element = el
80
- }
86
+ _proto.componentWillUnmount = function componentWillUnmount() {
87
+ this.props.datum.formUnmount = true;
88
+
89
+ if (this.element) {
90
+ this.element.removeEventListener('submit', this.handleSubmit);
91
+ }
92
+ };
93
+
94
+ _proto.setStatus = function setStatus() {
95
+ var _this$props = this.props,
96
+ disabled = _this$props.disabled,
97
+ pending = _this$props.pending,
98
+ setFormStatus = _this$props.setFormStatus;
99
+ if (!setFormStatus) return;
100
+ var status = disabled === true ? 'disabled' : '';
101
+ if (pending === true) status = 'pending';
102
+ setFormStatus(status);
103
+ };
104
+
105
+ _proto.bindElement = function bindElement(el) {
106
+ this.element = el;
107
+ };
108
+
109
+ _proto.scrollToError = function scrollToError(err) {
110
+ var _this$props2 = this.props,
111
+ scrollToError = _this$props2.scrollToError,
112
+ onError = _this$props2.onError;
81
113
 
82
- scrollToError(err) {
83
- const { scrollToError, onError } = this.props
84
114
  if (scrollToError !== false) {
85
- const el = this.element.querySelector(`.${formClass('invalid')}`)
115
+ var el = this.element.querySelector("." + formClass('invalid'));
116
+
86
117
  if (el) {
87
- el.scrollIntoView()
88
- if (el.focus) el.focus()
118
+ el.scrollIntoView();
119
+ if (el.focus) el.focus();
89
120
  }
121
+
90
122
  if (typeof scrollToError === 'number' && scrollToError !== 0) {
91
- docScroll.top -= scrollToError
123
+ docScroll.top -= scrollToError;
92
124
  }
93
125
  }
94
126
 
95
- if (onError) onError(err)
96
- if (!(err instanceof FormError)) throw err
97
- }
127
+ if (onError) onError(err);
128
+ if (!(err instanceof FormError)) throw err;
129
+ };
130
+
131
+ _proto.handleSubmit = function handleSubmit(e) {
132
+ var _this2 = this;
98
133
 
99
- handleSubmit(e) {
100
134
  if (e) {
101
- e.preventDefault()
135
+ e.preventDefault();
102
136
  }
103
- if (e && e.target.getAttribute('id') !== this.id) return
104
- if (this.validating || this.locked) return
105
-
106
- this.validating = true
107
-
108
- // prevent duplicate submit
109
- this.locked = true
110
- setTimeout(() => {
111
- this.locked = false
112
- }, this.props.throttle)
113
-
114
- const { datum, onSubmit } = this.props
115
-
116
- const { activeElement } = document
117
- if (activeElement) activeElement.blur()
118
-
119
- setTimeout(() => {
120
- datum
121
- .validate(IGNORE_BIND)
122
- .then(() => {
123
- this.validating = false
124
- if (onSubmit) onSubmit(datum.getValue(), e && e.nativeEvent && e.nativeEvent.detail, e)
125
- if (activeElement) activeElement.focus()
126
- })
127
- .catch(err => {
128
- this.validating = false
129
- // wait for render complete
130
- setTimeout(this.scrollToError.bind(this, err))
131
- })
132
- }, 10)
133
- }
134
137
 
135
- handleReset() {
136
- const { datum, onReset } = this.props
137
- datum.reset()
138
- if (onReset) onReset()
139
- }
140
-
141
- render() {
142
- const { layout, style, inline, disabled, datum, rules, pending } = this.props
138
+ if (e && e.target.getAttribute('id') !== this.id) return;
139
+ if (this.validating || this.locked) return;
140
+ this.validating = true; // prevent duplicate submit
141
+
142
+ this.locked = true;
143
+ setTimeout(function () {
144
+ _this2.locked = false;
145
+ }, this.props.throttle);
146
+ var _this$props3 = this.props,
147
+ datum = _this$props3.datum,
148
+ onSubmit = _this$props3.onSubmit;
149
+ var _document2 = document,
150
+ activeElement = _document2.activeElement;
151
+ if (activeElement) activeElement.blur();
152
+ setTimeout(function () {
153
+ datum.validate(IGNORE_BIND).then(function () {
154
+ _this2.validating = false;
155
+ if (onSubmit) onSubmit(datum.getValue(), e && e.nativeEvent && e.nativeEvent.detail, e);
156
+ if (activeElement) activeElement.focus();
157
+ }).catch(function (err) {
158
+ _this2.validating = false; // wait for render complete
159
+
160
+ setTimeout(_this2.scrollToError.bind(_this2, err));
161
+ });
162
+ }, 10);
163
+ };
164
+
165
+ _proto.handleReset = function handleReset() {
166
+ var _this$props4 = this.props,
167
+ datum = _this$props4.datum,
168
+ onReset = _this$props4.onReset;
169
+ datum.reset();
170
+ if (onReset) onReset();
171
+ };
172
+
173
+ _proto.render = function render() {
174
+ var _this$props5 = this.props,
175
+ layout = _this$props5.layout,
176
+ style = _this$props5.style,
177
+ inline = _this$props5.inline,
178
+ disabled = _this$props5.disabled,
179
+ datum = _this$props5.datum,
180
+ rules = _this$props5.rules,
181
+ pending = _this$props5.pending;
143
182
 
144
183
  if (datum && rules && datum.rules !== rules) {
145
- datum.rules = rules
184
+ datum.rules = rules;
146
185
  }
147
186
 
148
- const className = classnames(
149
- formClass('_', layout, (disabled || pending) && 'disabled', inline && 'inline', isRTL() && 'rtl'),
150
- this.props.className
151
- )
152
-
153
- return (
154
- <form ref={this.bindElement} className={className} id={this.id} style={style} onReset={this.handleReset}>
155
- <FieldSetProvider value={emptyValue}>{this.props.children}</FieldSetProvider>
156
- </form>
157
- )
158
- }
159
- }
160
-
161
- Form.propTypes = {
162
- ...getProps(PropTypes, 'disabled'),
187
+ var className = classnames(formClass('_', layout, (disabled || pending) && 'disabled', inline && 'inline', isRTL() && 'rtl'), this.props.className);
188
+ return React.createElement("form", {
189
+ ref: this.bindElement,
190
+ className: className,
191
+ id: this.id,
192
+ style: style,
193
+ onReset: this.handleReset
194
+ }, React.createElement(FieldSetProvider, {
195
+ value: emptyValue
196
+ }, this.props.children));
197
+ };
198
+
199
+ return Form;
200
+ }(Component);
201
+
202
+ Form.propTypes = _objectSpread({}, getProps(PropTypes, 'disabled'), {
163
203
  datum: PropTypes.object,
164
204
  disabled: PropTypes.bool,
165
205
  inline: PropTypes.bool,
@@ -171,13 +211,10 @@ Form.propTypes = {
171
211
  rules: PropTypes.object,
172
212
  scrollToError: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),
173
213
  setFormStatus: PropTypes.func,
174
- throttle: PropTypes.number,
175
- }
176
-
177
- Form.defaultProps = {
178
- ...defaultProps,
214
+ throttle: PropTypes.number
215
+ });
216
+ Form.defaultProps = _objectSpread({}, defaultProps, {
179
217
  scrollToError: false,
180
- throttle: 1000,
181
- }
182
-
183
- export default Form
218
+ throttle: 1000
219
+ });
220
+ export default Form;