@steroidsjs/core 2.0.0-rc.7 → 2.0.1-beta.113

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 (965) hide show
  1. package/LICENSE +1 -1
  2. package/actions/auth.ts +55 -0
  3. package/actions/fields.ts +5 -0
  4. package/actions/list.ts +303 -0
  5. package/actions/modal.ts +33 -0
  6. package/actions/notifications.ts +37 -0
  7. package/actions/router.ts +111 -0
  8. package/actions/screen.ts +28 -0
  9. package/base/Enum.ts +28 -0
  10. package/build/docs-autogen-result.json +33256 -0
  11. package/build/docs-autogen.js +124 -0
  12. package/build/helpers.js +276 -0
  13. package/components/ClientStorageComponent.ts +117 -0
  14. package/components/HtmlComponent.ts +77 -0
  15. package/components/HttpComponent.tsx +300 -0
  16. package/components/LocaleComponent.tsx +136 -0
  17. package/components/MetaComponent.ts +226 -0
  18. package/components/ResourceComponent.ts +140 -0
  19. package/components/SocialComponent.ts +39 -0
  20. package/components/StoreComponent.ts +169 -0
  21. package/components/UiComponent.ts +107 -0
  22. package/components/WebSocketComponent.ts +222 -0
  23. package/components/index.ts +19 -0
  24. package/components/social/FacebookProvider.ts +55 -0
  25. package/components/social/GoogleProvider.ts +47 -0
  26. package/components/social/SteamProvider.ts +69 -0
  27. package/components/social/VkProvider.ts +70 -0
  28. package/components/social/index.ts +10 -0
  29. package/hoc/application.tsx +103 -0
  30. package/hoc/bem.tsx +55 -0
  31. package/hoc/components.tsx +67 -0
  32. package/hoc/connect.ts +16 -0
  33. package/hoc/dataProvider.tsx +521 -0
  34. package/hoc/fetch.tsx +175 -0
  35. package/hoc/field.tsx +285 -0
  36. package/hoc/file.tsx +322 -0
  37. package/hoc/form.tsx +88 -0
  38. package/hoc/formSubmit.tsx +158 -0
  39. package/hoc/http.tsx +112 -0
  40. package/hoc/index.ts +37 -0
  41. package/hoc/layout.tsx +205 -0
  42. package/hoc/list.tsx +549 -0
  43. package/hoc/normalize.tsx +60 -0
  44. package/hoc/props.tsx +27 -0
  45. package/hoc/screen.tsx +66 -0
  46. package/hoc/theme.tsx +56 -0
  47. package/index.d.ts +80 -89
  48. package/package.json +18 -58
  49. package/reducers/auth.ts +57 -0
  50. package/reducers/fields.ts +44 -0
  51. package/reducers/index.ts +23 -0
  52. package/reducers/list.ts +191 -0
  53. package/reducers/modal.ts +79 -0
  54. package/reducers/notifications.ts +39 -0
  55. package/reducers/router.ts +322 -0
  56. package/reducers/screen.ts +43 -0
  57. package/tsconfig.json +7 -0
  58. package/ui/crud/Crud/Crud.tsx +454 -0
  59. package/ui/crud/Crud/CrudDetail.tsx +17 -0
  60. package/ui/crud/Crud/CrudForm.tsx +33 -0
  61. package/ui/crud/Crud/CrudGrid.tsx +25 -0
  62. package/ui/crud/Crud/demo/default.tsx +58 -0
  63. package/ui/crud/Crud/{index.d.ts → index.ts} +0 -0
  64. package/ui/crud/index.ts +31 -0
  65. package/ui/form/AutoCompleteField/AutoCompleteField.story.js +9 -0
  66. package/ui/form/AutoCompleteField/AutoCompleteField.tsx +161 -0
  67. package/ui/form/AutoCompleteField/demo/basic.tsx +19 -0
  68. package/ui/form/AutoCompleteField/{index.d.ts → index.ts} +0 -0
  69. package/ui/form/BlankField/BlankField.tsx +23 -0
  70. package/ui/form/BlankField/{index.d.ts → index.ts} +0 -0
  71. package/ui/form/Button/Button.story.js +17 -0
  72. package/ui/form/Button/Button.tsx +383 -0
  73. package/ui/form/Button/demo/block.tsx +17 -0
  74. package/ui/form/Button/demo/colors.tsx +40 -0
  75. package/ui/form/Button/demo/disabled.tsx +16 -0
  76. package/ui/form/Button/demo/link.tsx +19 -0
  77. package/ui/form/Button/demo/sizes.tsx +28 -0
  78. package/ui/form/Button/index.ts +2 -0
  79. package/ui/form/CheckboxField/CheckboxField.story.js +15 -0
  80. package/ui/form/CheckboxField/CheckboxField.tsx +80 -0
  81. package/ui/form/CheckboxField/demo/basic.tsx +14 -0
  82. package/ui/form/CheckboxField/demo/disabled.tsx +15 -0
  83. package/ui/form/CheckboxField/demo/errors.tsx +15 -0
  84. package/ui/form/CheckboxField/demo/required.tsx +15 -0
  85. package/ui/form/CheckboxField/{index.d.ts → index.ts} +0 -0
  86. package/ui/form/CheckboxListField/CheckboxListField.tsx +81 -0
  87. package/ui/form/CheckboxListField/{index.d.ts → index.ts} +0 -0
  88. package/ui/form/DateField/DateField.story.js +19 -0
  89. package/ui/form/DateField/DateField.tsx +165 -0
  90. package/ui/form/DateField/demo/disabled.tsx +11 -0
  91. package/ui/form/DateField/demo/errors.tsx +10 -0
  92. package/ui/form/DateField/demo/icon.tsx +13 -0
  93. package/ui/form/DateField/demo/placeholder.tsx +10 -0
  94. package/ui/form/DateField/demo/required.tsx +10 -0
  95. package/ui/form/DateField/demo/sizes.tsx +20 -0
  96. package/ui/form/DateField/{index.d.ts → index.ts} +0 -0
  97. package/ui/form/DateTimeField/DateTimeField.story.js +15 -0
  98. package/ui/form/DateTimeField/DateTimeField.tsx +153 -0
  99. package/ui/form/DateTimeField/demo/disabled.tsx +10 -0
  100. package/ui/form/DateTimeField/demo/errors.tsx +10 -0
  101. package/ui/form/DateTimeField/demo/required.tsx +10 -0
  102. package/ui/form/DateTimeField/demo/sizes.tsx +20 -0
  103. package/ui/form/DateTimeField/{index.d.ts → index.ts} +0 -0
  104. package/ui/form/DropDownField/DropDownField.story.js +23 -0
  105. package/ui/form/DropDownField/DropDownField.tsx +146 -0
  106. package/ui/form/DropDownField/demo/auto-complete.tsx +31 -0
  107. package/ui/form/DropDownField/demo/disabled.tsx +13 -0
  108. package/ui/form/DropDownField/demo/errors.tsx +13 -0
  109. package/ui/form/DropDownField/demo/multiple.tsx +13 -0
  110. package/ui/form/DropDownField/demo/no-border.tsx +16 -0
  111. package/ui/form/DropDownField/demo/placeholder.tsx +14 -0
  112. package/ui/form/DropDownField/demo/required.tsx +13 -0
  113. package/ui/form/DropDownField/demo/show-reset.tsx +13 -0
  114. package/ui/form/DropDownField/{index.d.ts → index.ts} +0 -0
  115. package/ui/form/Field/Field.tsx +34 -0
  116. package/ui/form/Field/{index.d.ts → index.ts} +0 -0
  117. package/ui/form/FieldLayout/FieldLayout.story.js +13 -0
  118. package/ui/form/FieldLayout/FieldLayout.tsx +73 -0
  119. package/ui/form/FieldLayout/demo/default.tsx +8 -0
  120. package/ui/form/FieldLayout/demo/horizontal.tsx +8 -0
  121. package/ui/form/FieldLayout/demo/inline.tsx +9 -0
  122. package/ui/form/FieldLayout/{index.d.ts → index.ts} +0 -0
  123. package/ui/form/FieldList/FieldList.story.js +9 -0
  124. package/ui/form/FieldList/FieldList.tsx +204 -0
  125. package/ui/form/FieldList/demo/basic.tsx +29 -0
  126. package/ui/form/FieldList/{index.d.ts → index.ts} +0 -0
  127. package/ui/form/FieldList/tableNavigationHandler.ts +41 -0
  128. package/ui/form/FieldSet/FieldSet.tsx +69 -0
  129. package/ui/form/FieldSet/{index.d.ts → index.ts} +0 -0
  130. package/ui/form/FileField/FileField.story.js +9 -0
  131. package/ui/form/FileField/FileField.tsx +204 -0
  132. package/ui/form/FileField/demo/basic.tsx +12 -0
  133. package/ui/form/FileField/{index.d.ts → index.ts} +0 -0
  134. package/ui/form/Form/AutoSaveHelper.ts +23 -0
  135. package/ui/form/Form/Form.story.js +9 -0
  136. package/ui/form/Form/Form.tsx +274 -0
  137. package/ui/form/Form/SyncAddressBarHelper.ts +82 -0
  138. package/ui/form/Form/demo/basic.tsx +42 -0
  139. package/ui/form/Form/{index.d.ts → index.ts} +0 -0
  140. package/ui/form/HtmlField/HtmlField.tsx +291 -0
  141. package/ui/form/HtmlField/demo/basic.tsx +41 -0
  142. package/ui/form/HtmlField/{index.d.ts → index.ts} +0 -0
  143. package/ui/form/InputField/InputField.story.js +27 -0
  144. package/ui/form/InputField/InputField.tsx +180 -0
  145. package/ui/form/InputField/demo/addons.tsx +14 -0
  146. package/ui/form/InputField/demo/basic.tsx +14 -0
  147. package/ui/form/InputField/demo/disabled.tsx +14 -0
  148. package/ui/form/InputField/demo/errors.tsx +14 -0
  149. package/ui/form/InputField/demo/mask.tsx +19 -0
  150. package/ui/form/InputField/demo/placeholder.tsx +14 -0
  151. package/ui/form/InputField/demo/required.tsx +14 -0
  152. package/ui/form/InputField/demo/sizes.tsx +24 -0
  153. package/ui/form/InputField/demo/textAddons.tsx +14 -0
  154. package/ui/form/InputField/demo/types.tsx +26 -0
  155. package/ui/form/InputField/{index.d.ts → index.ts} +0 -0
  156. package/ui/form/NavField/NavField.tsx +36 -0
  157. package/ui/form/NavField/{index.d.ts → index.ts} +0 -0
  158. package/ui/form/NumberField/NumberField.story.js +19 -0
  159. package/ui/form/NumberField/NumberField.tsx +90 -0
  160. package/ui/form/NumberField/demo/basic.tsx +14 -0
  161. package/ui/form/NumberField/demo/disabled.tsx +14 -0
  162. package/ui/form/NumberField/demo/errors.tsx +14 -0
  163. package/ui/form/NumberField/demo/placeholder.tsx +14 -0
  164. package/ui/form/NumberField/demo/required.tsx +14 -0
  165. package/ui/form/NumberField/demo/sizes.tsx +24 -0
  166. package/ui/form/NumberField/{index.d.ts → index.ts} +0 -0
  167. package/ui/form/PasswordField/PasswordField.story.js +21 -0
  168. package/ui/form/PasswordField/PasswordField.tsx +127 -0
  169. package/ui/form/PasswordField/demo/basic.tsx +14 -0
  170. package/ui/form/PasswordField/demo/disabled.tsx +14 -0
  171. package/ui/form/PasswordField/demo/errors.tsx +14 -0
  172. package/ui/form/PasswordField/demo/placeholder.tsx +14 -0
  173. package/ui/form/PasswordField/demo/required.tsx +14 -0
  174. package/ui/form/PasswordField/demo/security.tsx +14 -0
  175. package/ui/form/PasswordField/demo/sizes.tsx +24 -0
  176. package/ui/form/PasswordField/{index.d.ts → index.ts} +0 -0
  177. package/ui/form/RadioListField/RadioListField.story.js +13 -0
  178. package/ui/form/RadioListField/RadioListField.tsx +70 -0
  179. package/ui/form/RadioListField/demo/disabled.tsx +31 -0
  180. package/ui/form/RadioListField/demo/errors.tsx +13 -0
  181. package/ui/form/RadioListField/demo/required.tsx +13 -0
  182. package/ui/form/RadioListField/{index.d.ts → index.ts} +0 -0
  183. package/ui/form/RangeField/RangeField.story.js +19 -0
  184. package/ui/form/RangeField/RangeField.tsx +173 -0
  185. package/ui/form/RangeField/demo/date.tsx +11 -0
  186. package/ui/form/RangeField/demo/disabled.tsx +8 -0
  187. package/ui/form/RangeField/demo/errors.tsx +11 -0
  188. package/ui/form/RangeField/demo/placeholders.tsx +12 -0
  189. package/ui/form/RangeField/demo/required.tsx +8 -0
  190. package/ui/form/RangeField/demo/sizes.tsx +18 -0
  191. package/ui/form/RangeField/demo/types.tsx +17 -0
  192. package/ui/form/RangeField/index.ts +2 -0
  193. package/ui/form/ReCaptchaField/ReCaptchaField.tsx +40 -0
  194. package/ui/form/ReCaptchaField/{index.d.ts → index.ts} +0 -0
  195. package/ui/form/SliderField/SliderField.tsx +80 -0
  196. package/ui/form/SliderField/{index.d.ts → index.ts} +0 -0
  197. package/ui/form/SwitcherField/SwitcherField.tsx +60 -0
  198. package/ui/form/SwitcherField/{index.d.ts → index.ts} +0 -0
  199. package/ui/form/TextField/TextField.story.js +19 -0
  200. package/ui/form/TextField/TextField.tsx +93 -0
  201. package/ui/form/TextField/demo/disabled.tsx +8 -0
  202. package/ui/form/TextField/demo/errors.tsx +8 -0
  203. package/ui/form/TextField/demo/placeholder.tsx +8 -0
  204. package/ui/form/TextField/demo/required.tsx +8 -0
  205. package/ui/form/TextField/demo/sizes.tsx +18 -0
  206. package/ui/form/TextField/demo/submit.tsx +8 -0
  207. package/ui/form/TextField/{index.d.ts → index.ts} +0 -0
  208. package/ui/form/TimeField/TimeField.story.js +17 -0
  209. package/ui/form/TimeField/TimeField.tsx +107 -0
  210. package/ui/form/TimeField/demo/disabled.tsx +8 -0
  211. package/ui/form/TimeField/demo/errors.tsx +8 -0
  212. package/ui/form/TimeField/demo/placeholder.tsx +8 -0
  213. package/ui/form/TimeField/demo/required.tsx +8 -0
  214. package/ui/form/TimeField/demo/sizes.tsx +18 -0
  215. package/ui/form/TimeField/{index.d.ts → index.ts} +0 -0
  216. package/ui/form/index.ts +84 -0
  217. package/ui/form/validate.ts +90 -0
  218. package/ui/format/BooleanFormatter/BooleanFormatter.tsx +23 -0
  219. package/ui/format/BooleanFormatter/{index.d.ts → index.ts} +0 -0
  220. package/ui/format/DateFormatter/DateFormatter.tsx +40 -0
  221. package/ui/format/DateFormatter/demo/basic.tsx +11 -0
  222. package/ui/format/DateFormatter/{index.d.ts → index.ts} +0 -0
  223. package/ui/format/DateTimeFormatter/DateTimeFormatter.tsx +52 -0
  224. package/ui/format/DateTimeFormatter/demo/basic.tsx +11 -0
  225. package/ui/format/DateTimeFormatter/{index.d.ts → index.ts} +0 -0
  226. package/ui/format/EnumFormatter/EnumFormatter.tsx +62 -0
  227. package/ui/format/EnumFormatter/{index.d.ts → index.ts} +0 -0
  228. package/ui/format/FileSize/FileSize.tsx +60 -0
  229. package/ui/format/FileSize/{index.d.ts → index.ts} +0 -0
  230. package/ui/format/Format/Format.tsx +80 -0
  231. package/ui/format/Format/{index.d.ts → index.ts} +0 -0
  232. package/ui/format/MoneyFormatter/MoneyFormatter.tsx +67 -0
  233. package/ui/format/MoneyFormatter/{index.d.ts → index.ts} +0 -0
  234. package/ui/format/PhotosFormatter/PhotosFormatter.tsx +63 -0
  235. package/ui/format/PhotosFormatter/index.ts +2 -0
  236. package/ui/format/index.ts +27 -0
  237. package/ui/icon/Icon/Icon.tsx +98 -0
  238. package/ui/icon/Icon/demo/icon.tsx +70 -0
  239. package/ui/icon/Icon/index.ts +2 -0
  240. package/ui/layout/Header/Header.tsx +40 -0
  241. package/ui/layout/Header/{index.d.ts → index.ts} +0 -0
  242. package/ui/layout/Loader/Loader.tsx +23 -0
  243. package/ui/layout/Loader/{index.d.ts → index.ts} +0 -0
  244. package/ui/layout/Notifications/Notifications.tsx +145 -0
  245. package/ui/layout/Notifications/demo/basic.tsx +48 -0
  246. package/ui/layout/Notifications/{index.d.ts → index.ts} +0 -0
  247. package/ui/layout/Portal.tsx +31 -0
  248. package/ui/layout/Tooltip/Tooltip.tsx +500 -0
  249. package/ui/layout/Tooltip/TooltipPortalInner.tsx +18 -0
  250. package/ui/layout/Tooltip/demo/basic.tsx +23 -0
  251. package/ui/layout/Tooltip/{index.d.ts → index.tsx} +0 -0
  252. package/ui/layout/index.ts +10 -0
  253. package/ui/list/Accordion/Accordion.tsx +146 -0
  254. package/ui/list/Accordion/index.ts +2 -0
  255. package/ui/list/CheckboxColumn/CheckboxColumn.tsx +82 -0
  256. package/ui/list/CheckboxColumn/{index.d.ts → index.ts} +0 -0
  257. package/ui/list/ControlsColumn/ControlsColumn.tsx +49 -0
  258. package/ui/list/ControlsColumn/{index.d.ts → index.ts} +0 -0
  259. package/ui/list/Detail/Detail.tsx +116 -0
  260. package/ui/list/Detail/index.ts +2 -0
  261. package/ui/list/Empty/Empty.tsx +28 -0
  262. package/ui/list/Empty/demo/basic.tsx +11 -0
  263. package/ui/list/Empty/{index.d.ts → index.ts} +0 -0
  264. package/ui/list/Grid/Grid.tsx +169 -0
  265. package/ui/list/Grid/demo/load-more.tsx +71 -0
  266. package/ui/list/Grid/demo/pagination.tsx +40 -0
  267. package/ui/list/Grid/demo/visible.tsx +36 -0
  268. package/ui/list/Grid/{index.d.ts → index.ts} +0 -0
  269. package/ui/list/List/List.tsx +75 -0
  270. package/ui/list/List/demo/basic.tsx +42 -0
  271. package/ui/list/List/demo/empty.tsx +16 -0
  272. package/ui/list/List/demo/pagination-layout.tsx +36 -0
  273. package/ui/list/List/demo/pagination-more-size.tsx +28 -0
  274. package/ui/list/List/demo/pagination-pages.tsx +28 -0
  275. package/ui/list/List/demo/pagination-search.tsx +42 -0
  276. package/ui/list/List/{index.d.ts → index.ts} +0 -0
  277. package/ui/list/Pagination/Pagination.tsx +125 -0
  278. package/ui/list/Pagination/demo/basic.tsx +49 -0
  279. package/ui/list/Pagination/demo/load-more.tsx +18 -0
  280. package/ui/list/Pagination/demo/sizes.tsx +28 -0
  281. package/ui/list/Pagination/{index.d.ts → index.ts} +0 -0
  282. package/ui/list/PaginationSize/PaginationSize.tsx +76 -0
  283. package/ui/list/PaginationSize/demo/basic.tsx +31 -0
  284. package/ui/list/PaginationSize/{index.d.ts → index.ts} +0 -0
  285. package/ui/list/index.ts +7 -0
  286. package/ui/modal/Modal/Modal.tsx +55 -0
  287. package/ui/modal/Modal/demo/basic.tsx +50 -0
  288. package/ui/modal/Modal/{index.d.ts → index.ts} +0 -0
  289. package/ui/modal/ModalPortal/ModalPortal.tsx +75 -0
  290. package/ui/modal/ModalPortal/{index.d.ts → index.ts} +0 -0
  291. package/ui/modal/TwoFactorModal/TwoFactorModal.tsx +80 -0
  292. package/ui/modal/TwoFactorModal/{index.d.ts → index.ts} +0 -0
  293. package/ui/modal/index.ts +6 -0
  294. package/ui/nav/Breadcrumbs/Breadcrumbs.tsx +40 -0
  295. package/ui/nav/Breadcrumbs/{index.d.ts → index.ts} +0 -0
  296. package/ui/nav/Controls/Controls.tsx +87 -0
  297. package/ui/nav/Controls/{index.d.ts → index.ts} +0 -0
  298. package/ui/nav/Link/Link.tsx +25 -0
  299. package/ui/nav/Link/{index.d.ts → index.ts} +0 -0
  300. package/ui/nav/Nav/Nav.tsx +147 -0
  301. package/ui/nav/Nav/demo/buttons.tsx +48 -0
  302. package/ui/nav/Nav/demo/links.tsx +13 -0
  303. package/ui/nav/Nav/demo/navbar.tsx +34 -0
  304. package/ui/nav/Nav/demo/tabs.tsx +13 -0
  305. package/ui/nav/Nav/{index.d.ts → index.ts} +0 -0
  306. package/ui/nav/Router/Router.tsx +235 -0
  307. package/ui/nav/Router/SsrProvider.tsx +32 -0
  308. package/ui/nav/Router/{index.d.ts → index.ts} +0 -0
  309. package/ui/nav/Router/navigationHoc.tsx +135 -0
  310. package/ui/nav/Tree/Tree.tsx +279 -0
  311. package/ui/nav/Tree/demo/level-tree-routes.tsx +10 -0
  312. package/ui/nav/Tree/demo/level-tree.tsx +44 -0
  313. package/ui/nav/Tree/{index.d.ts → index.ts} +0 -0
  314. package/ui/nav/{index.d.ts → index.ts} +0 -0
  315. package/utils/collection.ts +13 -0
  316. package/utils/data.ts +120 -0
  317. package/utils/query.ts +147 -0
  318. package/utils/text.ts +82 -0
  319. package/actions/auth.d.ts +0 -24
  320. package/actions/auth.js +0 -65
  321. package/actions/fields.d.ts +0 -5
  322. package/actions/fields.js +0 -9
  323. package/actions/form.d.ts +0 -59
  324. package/actions/form.js +0 -68
  325. package/actions/list.d.ts +0 -103
  326. package/actions/list.js +0 -293
  327. package/actions/modal.d.ts +0 -20
  328. package/actions/modal.js +0 -44
  329. package/actions/notifications.d.ts +0 -13
  330. package/actions/notifications.js +0 -50
  331. package/actions/router.d.ts +0 -15
  332. package/actions/router.js +0 -51
  333. package/actions/screen.d.ts +0 -7
  334. package/actions/screen.js +0 -33
  335. package/base/Enum.d.ts +0 -11
  336. package/base/Enum.js +0 -32
  337. package/components/ClientStorageComponent.d.ts +0 -33
  338. package/components/ClientStorageComponent.js +0 -129
  339. package/components/HtmlComponent.d.ts +0 -15
  340. package/components/HtmlComponent.js +0 -93
  341. package/components/HttpComponent.d.ts +0 -49
  342. package/components/HttpComponent.js +0 -333
  343. package/components/LocaleComponent.d.ts +0 -30
  344. package/components/LocaleComponent.js +0 -156
  345. package/components/MetaComponent.d.ts +0 -136
  346. package/components/MetaComponent.js +0 -175
  347. package/components/MetricsComponent.d.ts +0 -39
  348. package/components/MetricsComponent.js +0 -156
  349. package/components/ResourceComponent.d.ts +0 -22
  350. package/components/ResourceComponent.js +0 -144
  351. package/components/SocialComponent.d.ts +0 -12
  352. package/components/SocialComponent.js +0 -41
  353. package/components/StoreComponent.d.ts +0 -29
  354. package/components/StoreComponent.js +0 -146
  355. package/components/UiComponent.d.ts +0 -37
  356. package/components/UiComponent.js +0 -173
  357. package/components/WebSocketComponent.d.ts +0 -31
  358. package/components/WebSocketComponent.js +0 -234
  359. package/components/social/FacebookProvider.d.ts +0 -8
  360. package/components/social/FacebookProvider.js +0 -93
  361. package/components/social/GoogleProvider.d.ts +0 -9
  362. package/components/social/GoogleProvider.js +0 -98
  363. package/components/social/SteamProvider.d.ts +0 -7
  364. package/components/social/SteamProvider.js +0 -126
  365. package/components/social/VkProvider.d.ts +0 -8
  366. package/components/social/VkProvider.js +0 -128
  367. package/components/social/index.d.ts +0 -11
  368. package/components/social/index.js +0 -15
  369. package/hoc/application.d.ts +0 -8
  370. package/hoc/application.js +0 -46
  371. package/hoc/bem.d.ts +0 -14
  372. package/hoc/bem.js +0 -38
  373. package/hoc/components.d.ts +0 -11
  374. package/hoc/components.js +0 -58
  375. package/hoc/connect.d.ts +0 -6
  376. package/hoc/connect.js +0 -3
  377. package/hoc/fetch.d.ts +0 -13
  378. package/hoc/fetch.js +0 -56
  379. package/hoc/file.d.ts +0 -23
  380. package/hoc/file.js +0 -41
  381. package/hoc/http.d.ts +0 -7
  382. package/hoc/http.js +0 -49
  383. package/hoc/index.d.ts +0 -8
  384. package/hoc/index.js +0 -20
  385. package/hoc/layout.d.ts +0 -31
  386. package/hoc/layout.js +0 -44
  387. package/hooks/index.d.ts +0 -7
  388. package/hooks/index.js +0 -18
  389. package/hooks/useAddressBar.d.ts +0 -23
  390. package/hooks/useAddressBar.js +0 -127
  391. package/hooks/useApplication.d.ts +0 -33
  392. package/hooks/useApplication.js +0 -119
  393. package/hooks/useBem.d.ts +0 -10
  394. package/hooks/useBem.js +0 -14
  395. package/hooks/useComponents.d.ts +0 -14
  396. package/hooks/useComponents.js +0 -12
  397. package/hooks/useDataProvider.d.ts +0 -92
  398. package/hooks/useDataProvider.js +0 -144
  399. package/hooks/useDataSelect.d.ts +0 -42
  400. package/hooks/useDataSelect.js +0 -155
  401. package/hooks/useDispatch.d.ts +0 -1
  402. package/hooks/useDispatch.js +0 -7
  403. package/hooks/useFetch.d.ts +0 -30
  404. package/hooks/useFetch.js +0 -147
  405. package/hooks/useFile.d.ts +0 -2
  406. package/hooks/useFile.js +0 -194
  407. package/hooks/useForm.d.ts +0 -8
  408. package/hooks/useForm.js +0 -18
  409. package/hooks/useInitial.d.ts +0 -1
  410. package/hooks/useInitial.js +0 -11
  411. package/hooks/useLayout.d.ts +0 -12
  412. package/hooks/useLayout.js +0 -127
  413. package/hooks/useList.d.ts +0 -155
  414. package/hooks/useList.js +0 -238
  415. package/hooks/useModel.d.ts +0 -2
  416. package/hooks/useModel.js +0 -16
  417. package/hooks/useSelector.d.ts +0 -1
  418. package/hooks/useSelector.js +0 -7
  419. package/hooks/useUniqueId.d.ts +0 -1
  420. package/hooks/useUniqueId.js +0 -15
  421. package/reducers/auth.d.ts +0 -21
  422. package/reducers/auth.js +0 -61
  423. package/reducers/fields.d.ts +0 -11
  424. package/reducers/fields.js +0 -55
  425. package/reducers/form.d.ts +0 -9
  426. package/reducers/form.js +0 -66
  427. package/reducers/index.d.ts +0 -13
  428. package/reducers/index.js +0 -41
  429. package/reducers/list.d.ts +0 -12
  430. package/reducers/list.js +0 -143
  431. package/reducers/modal.d.ts +0 -12
  432. package/reducers/modal.js +0 -78
  433. package/reducers/notifications.d.ts +0 -10
  434. package/reducers/notifications.js +0 -44
  435. package/reducers/router.d.ts +0 -62
  436. package/reducers/router.js +0 -221
  437. package/reducers/screen.d.ts +0 -26
  438. package/reducers/screen.js +0 -54
  439. package/ui/crud/Crud/Crud.d.ts +0 -85
  440. package/ui/crud/Crud/Crud.js +0 -359
  441. package/ui/crud/Crud/CrudDetail.d.ts +0 -2
  442. package/ui/crud/Crud/CrudDetail.js +0 -14
  443. package/ui/crud/Crud/CrudForm.d.ts +0 -3
  444. package/ui/crud/Crud/CrudForm.js +0 -49
  445. package/ui/crud/Crud/CrudGrid.d.ts +0 -3
  446. package/ui/crud/Crud/CrudGrid.js +0 -46
  447. package/ui/crud/Crud/demo/default.d.ts +0 -8
  448. package/ui/crud/Crud/demo/default.js +0 -72
  449. package/ui/crud/Crud/index.js +0 -7
  450. package/ui/crud/index.d.ts +0 -31
  451. package/ui/crud/index.js +0 -29
  452. package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +0 -44
  453. package/ui/form/AutoCompleteField/AutoCompleteField.js +0 -109
  454. package/ui/form/AutoCompleteField/demo/basic.d.ts +0 -12
  455. package/ui/form/AutoCompleteField/demo/basic.js +0 -48
  456. package/ui/form/AutoCompleteField/demo/disabled.d.ts +0 -8
  457. package/ui/form/AutoCompleteField/demo/disabled.js +0 -34
  458. package/ui/form/AutoCompleteField/demo/errors.d.ts +0 -3
  459. package/ui/form/AutoCompleteField/demo/errors.js +0 -29
  460. package/ui/form/AutoCompleteField/demo/placeholder.d.ts +0 -8
  461. package/ui/form/AutoCompleteField/demo/placeholder.js +0 -34
  462. package/ui/form/AutoCompleteField/demo/required.d.ts +0 -8
  463. package/ui/form/AutoCompleteField/demo/required.js +0 -34
  464. package/ui/form/AutoCompleteField/demo/sizes.d.ts +0 -8
  465. package/ui/form/AutoCompleteField/demo/sizes.js +0 -39
  466. package/ui/form/AutoCompleteField/index.js +0 -7
  467. package/ui/form/BlankField/BlankField.d.ts +0 -8
  468. package/ui/form/BlankField/BlankField.js +0 -30
  469. package/ui/form/BlankField/index.js +0 -7
  470. package/ui/form/Button/Button.d.ts +0 -190
  471. package/ui/form/Button/Button.js +0 -146
  472. package/ui/form/Button/demo/badge.d.ts +0 -8
  473. package/ui/form/Button/demo/badge.js +0 -33
  474. package/ui/form/Button/demo/block.d.ts +0 -8
  475. package/ui/form/Button/demo/block.js +0 -33
  476. package/ui/form/Button/demo/colors.d.ts +0 -8
  477. package/ui/form/Button/demo/colors.js +0 -45
  478. package/ui/form/Button/demo/disabled.d.ts +0 -8
  479. package/ui/form/Button/demo/disabled.js +0 -33
  480. package/ui/form/Button/demo/icon.d.ts +0 -8
  481. package/ui/form/Button/demo/icon.js +0 -33
  482. package/ui/form/Button/demo/link.d.ts +0 -8
  483. package/ui/form/Button/demo/link.js +0 -33
  484. package/ui/form/Button/demo/sizes.d.ts +0 -8
  485. package/ui/form/Button/demo/sizes.js +0 -37
  486. package/ui/form/Button/demo/tags.d.ts +0 -8
  487. package/ui/form/Button/demo/tags.js +0 -34
  488. package/ui/form/Button/index.d.ts +0 -1
  489. package/ui/form/Button/index.js +0 -12
  490. package/ui/form/CheckboxField/CheckboxField.d.ts +0 -39
  491. package/ui/form/CheckboxField/CheckboxField.js +0 -37
  492. package/ui/form/CheckboxField/demo/basic.d.ts +0 -8
  493. package/ui/form/CheckboxField/demo/basic.js +0 -33
  494. package/ui/form/CheckboxField/demo/disabled.d.ts +0 -8
  495. package/ui/form/CheckboxField/demo/disabled.js +0 -33
  496. package/ui/form/CheckboxField/demo/errors.d.ts +0 -8
  497. package/ui/form/CheckboxField/demo/errors.js +0 -33
  498. package/ui/form/CheckboxField/demo/required.d.ts +0 -8
  499. package/ui/form/CheckboxField/demo/required.js +0 -33
  500. package/ui/form/CheckboxField/index.js +0 -7
  501. package/ui/form/CheckboxListField/CheckboxListField.d.ts +0 -49
  502. package/ui/form/CheckboxListField/CheckboxListField.js +0 -57
  503. package/ui/form/CheckboxListField/demo/basic.d.ts +0 -9
  504. package/ui/form/CheckboxListField/demo/basic.js +0 -39
  505. package/ui/form/CheckboxListField/demo/disabled.d.ts +0 -8
  506. package/ui/form/CheckboxListField/demo/disabled.js +0 -34
  507. package/ui/form/CheckboxListField/demo/errors.d.ts +0 -3
  508. package/ui/form/CheckboxListField/demo/errors.js +0 -29
  509. package/ui/form/CheckboxListField/demo/required.d.ts +0 -3
  510. package/ui/form/CheckboxListField/demo/required.js +0 -29
  511. package/ui/form/CheckboxListField/index.js +0 -7
  512. package/ui/form/DateField/DateField.d.ts +0 -61
  513. package/ui/form/DateField/DateField.js +0 -84
  514. package/ui/form/DateField/demo/basic.d.ts +0 -3
  515. package/ui/form/DateField/demo/basic.js +0 -28
  516. package/ui/form/DateField/demo/disabled.d.ts +0 -3
  517. package/ui/form/DateField/demo/disabled.js +0 -28
  518. package/ui/form/DateField/demo/errors.d.ts +0 -3
  519. package/ui/form/DateField/demo/errors.js +0 -28
  520. package/ui/form/DateField/demo/icon.d.ts +0 -3
  521. package/ui/form/DateField/demo/icon.js +0 -30
  522. package/ui/form/DateField/demo/placeholder.d.ts +0 -3
  523. package/ui/form/DateField/demo/placeholder.js +0 -28
  524. package/ui/form/DateField/demo/required.d.ts +0 -3
  525. package/ui/form/DateField/demo/required.js +0 -28
  526. package/ui/form/DateField/demo/sizes.d.ts +0 -3
  527. package/ui/form/DateField/demo/sizes.js +0 -34
  528. package/ui/form/DateField/index.js +0 -7
  529. package/ui/form/DateTimeField/DateTimeField.d.ts +0 -59
  530. package/ui/form/DateTimeField/DateTimeField.js +0 -103
  531. package/ui/form/DateTimeField/demo/basic.d.ts +0 -3
  532. package/ui/form/DateTimeField/demo/basic.js +0 -28
  533. package/ui/form/DateTimeField/demo/disabled.d.ts +0 -3
  534. package/ui/form/DateTimeField/demo/disabled.js +0 -29
  535. package/ui/form/DateTimeField/demo/errors.d.ts +0 -3
  536. package/ui/form/DateTimeField/demo/errors.js +0 -28
  537. package/ui/form/DateTimeField/demo/icon.d.ts +0 -3
  538. package/ui/form/DateTimeField/demo/icon.js +0 -30
  539. package/ui/form/DateTimeField/demo/placeholder.d.ts +0 -3
  540. package/ui/form/DateTimeField/demo/placeholder.js +0 -32
  541. package/ui/form/DateTimeField/demo/required.d.ts +0 -3
  542. package/ui/form/DateTimeField/demo/required.js +0 -28
  543. package/ui/form/DateTimeField/demo/sizes.d.ts +0 -3
  544. package/ui/form/DateTimeField/demo/sizes.js +0 -34
  545. package/ui/form/DateTimeField/index.js +0 -7
  546. package/ui/form/DropDownField/DropDownField.d.ts +0 -73
  547. package/ui/form/DropDownField/DropDownField.js +0 -108
  548. package/ui/form/DropDownField/demo/auto-complete.d.ts +0 -3
  549. package/ui/form/DropDownField/demo/auto-complete.js +0 -29
  550. package/ui/form/DropDownField/demo/basic.d.ts +0 -7
  551. package/ui/form/DropDownField/demo/basic.js +0 -47
  552. package/ui/form/DropDownField/demo/disabled.d.ts +0 -3
  553. package/ui/form/DropDownField/demo/disabled.js +0 -29
  554. package/ui/form/DropDownField/demo/errors.d.ts +0 -3
  555. package/ui/form/DropDownField/demo/errors.js +0 -29
  556. package/ui/form/DropDownField/demo/multiple.d.ts +0 -3
  557. package/ui/form/DropDownField/demo/multiple.js +0 -29
  558. package/ui/form/DropDownField/demo/no-border.d.ts +0 -3
  559. package/ui/form/DropDownField/demo/no-border.js +0 -29
  560. package/ui/form/DropDownField/demo/placeholder.d.ts +0 -3
  561. package/ui/form/DropDownField/demo/placeholder.js +0 -29
  562. package/ui/form/DropDownField/demo/required.d.ts +0 -3
  563. package/ui/form/DropDownField/demo/required.js +0 -29
  564. package/ui/form/DropDownField/demo/show-reset.d.ts +0 -3
  565. package/ui/form/DropDownField/demo/show-reset.js +0 -29
  566. package/ui/form/DropDownField/demo/size.d.ts +0 -3
  567. package/ui/form/DropDownField/demo/size.js +0 -36
  568. package/ui/form/DropDownField/index.js +0 -7
  569. package/ui/form/Field/Field.d.ts +0 -27
  570. package/ui/form/Field/Field.js +0 -66
  571. package/ui/form/Field/fieldWrapper.d.ts +0 -81
  572. package/ui/form/Field/fieldWrapper.js +0 -106
  573. package/ui/form/Field/index.js +0 -7
  574. package/ui/form/FieldLayout/FieldLayout.d.ts +0 -56
  575. package/ui/form/FieldLayout/FieldLayout.js +0 -57
  576. package/ui/form/FieldLayout/demo/default.d.ts +0 -3
  577. package/ui/form/FieldLayout/demo/default.js +0 -28
  578. package/ui/form/FieldLayout/demo/errors.d.ts +0 -3
  579. package/ui/form/FieldLayout/demo/errors.js +0 -28
  580. package/ui/form/FieldLayout/demo/hint.d.ts +0 -3
  581. package/ui/form/FieldLayout/demo/hint.js +0 -28
  582. package/ui/form/FieldLayout/demo/horizontal.d.ts +0 -3
  583. package/ui/form/FieldLayout/demo/horizontal.js +0 -28
  584. package/ui/form/FieldLayout/demo/inline.d.ts +0 -3
  585. package/ui/form/FieldLayout/demo/inline.js +0 -29
  586. package/ui/form/FieldLayout/demo/required.d.ts +0 -3
  587. package/ui/form/FieldLayout/demo/required.js +0 -28
  588. package/ui/form/FieldLayout/index.js +0 -7
  589. package/ui/form/FieldList/FieldList.d.ts +0 -127
  590. package/ui/form/FieldList/FieldList.js +0 -112
  591. package/ui/form/FieldList/demo/basic.d.ts +0 -3
  592. package/ui/form/FieldList/demo/basic.js +0 -53
  593. package/ui/form/FieldList/index.js +0 -7
  594. package/ui/form/FieldList/tableNavigationHandler.d.ts +0 -3
  595. package/ui/form/FieldList/tableNavigationHandler.js +0 -48
  596. package/ui/form/FieldSet/FieldSet.d.ts +0 -37
  597. package/ui/form/FieldSet/FieldSet.js +0 -88
  598. package/ui/form/FieldSet/demo/basic.d.ts +0 -3
  599. package/ui/form/FieldSet/demo/basic.js +0 -44
  600. package/ui/form/FieldSet/index.js +0 -7
  601. package/ui/form/FileField/FileField.d.ts +0 -96
  602. package/ui/form/FileField/FileField.js +0 -108
  603. package/ui/form/FileField/index.js +0 -7
  604. package/ui/form/Form/AutoSaveHelper.d.ts +0 -6
  605. package/ui/form/Form/AutoSaveHelper.js +0 -37
  606. package/ui/form/Form/Form.d.ts +0 -173
  607. package/ui/form/Form/Form.js +0 -273
  608. package/ui/form/Form/SyncAddressBarHelper.d.ts +0 -13
  609. package/ui/form/Form/SyncAddressBarHelper.js +0 -119
  610. package/ui/form/Form/demo/basic.d.ts +0 -3
  611. package/ui/form/Form/demo/basic.js +0 -53
  612. package/ui/form/Form/index.js +0 -7
  613. package/ui/form/HtmlField/HtmlField.d.ts +0 -52
  614. package/ui/form/HtmlField/HtmlField.js +0 -57
  615. package/ui/form/HtmlField/demo/basic.d.ts +0 -3
  616. package/ui/form/HtmlField/demo/basic.js +0 -28
  617. package/ui/form/HtmlField/index.js +0 -7
  618. package/ui/form/InputField/InputField.d.ts +0 -95
  619. package/ui/form/InputField/InputField.js +0 -64
  620. package/ui/form/InputField/demo/addons.d.ts +0 -8
  621. package/ui/form/InputField/demo/addons.js +0 -33
  622. package/ui/form/InputField/demo/basic.d.ts +0 -8
  623. package/ui/form/InputField/demo/basic.js +0 -33
  624. package/ui/form/InputField/demo/disabled.d.ts +0 -8
  625. package/ui/form/InputField/demo/disabled.js +0 -33
  626. package/ui/form/InputField/demo/errors.d.ts +0 -8
  627. package/ui/form/InputField/demo/errors.js +0 -33
  628. package/ui/form/InputField/demo/mask.d.ts +0 -8
  629. package/ui/form/InputField/demo/mask.js +0 -35
  630. package/ui/form/InputField/demo/placeholder.d.ts +0 -8
  631. package/ui/form/InputField/demo/placeholder.js +0 -33
  632. package/ui/form/InputField/demo/required.d.ts +0 -8
  633. package/ui/form/InputField/demo/required.js +0 -33
  634. package/ui/form/InputField/demo/sizes.d.ts +0 -8
  635. package/ui/form/InputField/demo/sizes.js +0 -38
  636. package/ui/form/InputField/demo/textAddons.d.ts +0 -8
  637. package/ui/form/InputField/demo/textAddons.js +0 -33
  638. package/ui/form/InputField/demo/types.d.ts +0 -8
  639. package/ui/form/InputField/demo/types.js +0 -40
  640. package/ui/form/InputField/index.js +0 -7
  641. package/ui/form/NavField/NavField.d.ts +0 -21
  642. package/ui/form/NavField/NavField.js +0 -48
  643. package/ui/form/NavField/demo/basic.d.ts +0 -7
  644. package/ui/form/NavField/demo/basic.js +0 -47
  645. package/ui/form/NavField/demo/disabled.d.ts +0 -3
  646. package/ui/form/NavField/demo/disabled.js +0 -29
  647. package/ui/form/NavField/demo/errors.d.ts +0 -3
  648. package/ui/form/NavField/demo/errors.js +0 -29
  649. package/ui/form/NavField/demo/required.d.ts +0 -3
  650. package/ui/form/NavField/demo/required.js +0 -29
  651. package/ui/form/NavField/index.js +0 -7
  652. package/ui/form/NumberField/NumberField.d.ts +0 -45
  653. package/ui/form/NumberField/NumberField.js +0 -35
  654. package/ui/form/NumberField/demo/basic.d.ts +0 -8
  655. package/ui/form/NumberField/demo/basic.js +0 -33
  656. package/ui/form/NumberField/demo/disabled.d.ts +0 -8
  657. package/ui/form/NumberField/demo/disabled.js +0 -33
  658. package/ui/form/NumberField/demo/errors.d.ts +0 -8
  659. package/ui/form/NumberField/demo/errors.js +0 -33
  660. package/ui/form/NumberField/demo/placeholder.d.ts +0 -8
  661. package/ui/form/NumberField/demo/placeholder.js +0 -33
  662. package/ui/form/NumberField/demo/required.d.ts +0 -8
  663. package/ui/form/NumberField/demo/required.js +0 -33
  664. package/ui/form/NumberField/demo/sizes.d.ts +0 -8
  665. package/ui/form/NumberField/demo/sizes.js +0 -38
  666. package/ui/form/NumberField/index.js +0 -7
  667. package/ui/form/PasswordField/PasswordField.d.ts +0 -39
  668. package/ui/form/PasswordField/PasswordField.js +0 -66
  669. package/ui/form/PasswordField/demo/basic.d.ts +0 -8
  670. package/ui/form/PasswordField/demo/basic.js +0 -33
  671. package/ui/form/PasswordField/demo/disabled.d.ts +0 -8
  672. package/ui/form/PasswordField/demo/disabled.js +0 -33
  673. package/ui/form/PasswordField/demo/errors.d.ts +0 -8
  674. package/ui/form/PasswordField/demo/errors.js +0 -33
  675. package/ui/form/PasswordField/demo/placeholder.d.ts +0 -8
  676. package/ui/form/PasswordField/demo/placeholder.js +0 -33
  677. package/ui/form/PasswordField/demo/required.d.ts +0 -8
  678. package/ui/form/PasswordField/demo/required.js +0 -33
  679. package/ui/form/PasswordField/demo/security.d.ts +0 -8
  680. package/ui/form/PasswordField/demo/security.js +0 -33
  681. package/ui/form/PasswordField/demo/sizes.d.ts +0 -8
  682. package/ui/form/PasswordField/demo/sizes.js +0 -38
  683. package/ui/form/PasswordField/index.js +0 -7
  684. package/ui/form/RadioListField/RadioListField.d.ts +0 -47
  685. package/ui/form/RadioListField/RadioListField.js +0 -50
  686. package/ui/form/RadioListField/demo/basic.d.ts +0 -7
  687. package/ui/form/RadioListField/demo/basic.js +0 -47
  688. package/ui/form/RadioListField/demo/disabled.d.ts +0 -3
  689. package/ui/form/RadioListField/demo/disabled.js +0 -29
  690. package/ui/form/RadioListField/demo/errors.d.ts +0 -3
  691. package/ui/form/RadioListField/demo/errors.js +0 -29
  692. package/ui/form/RadioListField/demo/required.d.ts +0 -3
  693. package/ui/form/RadioListField/demo/required.js +0 -29
  694. package/ui/form/RadioListField/index.js +0 -7
  695. package/ui/form/RateField/RateField.d.ts +0 -32
  696. package/ui/form/RateField/RateField.js +0 -50
  697. package/ui/form/RateField/demo/base.d.ts +0 -3
  698. package/ui/form/RateField/demo/base.js +0 -28
  699. package/ui/form/RateField/index.d.ts +0 -2
  700. package/ui/form/RateField/index.js +0 -7
  701. package/ui/form/ReCaptchaField/ReCaptchaField.d.ts +0 -20
  702. package/ui/form/ReCaptchaField/ReCaptchaField.js +0 -31
  703. package/ui/form/ReCaptchaField/index.js +0 -7
  704. package/ui/form/SliderField/SliderField.d.ts +0 -48
  705. package/ui/form/SliderField/SliderField.js +0 -45
  706. package/ui/form/SliderField/demo/basic.d.ts +0 -3
  707. package/ui/form/SliderField/demo/basic.js +0 -28
  708. package/ui/form/SliderField/demo/disabled.d.ts +0 -3
  709. package/ui/form/SliderField/demo/disabled.js +0 -28
  710. package/ui/form/SliderField/demo/errors.d.ts +0 -3
  711. package/ui/form/SliderField/demo/errors.js +0 -28
  712. package/ui/form/SliderField/demo/required.d.ts +0 -3
  713. package/ui/form/SliderField/demo/required.js +0 -28
  714. package/ui/form/SliderField/demo/size.d.ts +0 -3
  715. package/ui/form/SliderField/demo/size.js +0 -33
  716. package/ui/form/SliderField/index.js +0 -7
  717. package/ui/form/SwitcherField/SwitcherField.d.ts +0 -38
  718. package/ui/form/SwitcherField/SwitcherField.js +0 -62
  719. package/ui/form/SwitcherField/demo/basic.d.ts +0 -7
  720. package/ui/form/SwitcherField/demo/basic.js +0 -47
  721. package/ui/form/SwitcherField/demo/disabled.d.ts +0 -3
  722. package/ui/form/SwitcherField/demo/disabled.js +0 -29
  723. package/ui/form/SwitcherField/demo/errors.d.ts +0 -3
  724. package/ui/form/SwitcherField/demo/errors.js +0 -29
  725. package/ui/form/SwitcherField/demo/required.d.ts +0 -3
  726. package/ui/form/SwitcherField/demo/required.js +0 -29
  727. package/ui/form/SwitcherField/demo/sizes.d.ts +0 -3
  728. package/ui/form/SwitcherField/demo/sizes.js +0 -35
  729. package/ui/form/SwitcherField/index.js +0 -7
  730. package/ui/form/TextField/TextField.d.ts +0 -50
  731. package/ui/form/TextField/TextField.js +0 -48
  732. package/ui/form/TextField/demo/basic.d.ts +0 -3
  733. package/ui/form/TextField/demo/basic.js +0 -28
  734. package/ui/form/TextField/demo/disabled.d.ts +0 -3
  735. package/ui/form/TextField/demo/disabled.js +0 -28
  736. package/ui/form/TextField/demo/errors.d.ts +0 -3
  737. package/ui/form/TextField/demo/errors.js +0 -28
  738. package/ui/form/TextField/demo/placeholder.d.ts +0 -3
  739. package/ui/form/TextField/demo/placeholder.js +0 -28
  740. package/ui/form/TextField/demo/required.d.ts +0 -3
  741. package/ui/form/TextField/demo/required.js +0 -28
  742. package/ui/form/TextField/demo/sizes.d.ts +0 -3
  743. package/ui/form/TextField/demo/sizes.js +0 -33
  744. package/ui/form/TextField/demo/submit.d.ts +0 -3
  745. package/ui/form/TextField/demo/submit.js +0 -28
  746. package/ui/form/TextField/index.js +0 -7
  747. package/ui/form/TimeField/TimeField.d.ts +0 -70
  748. package/ui/form/TimeField/TimeField.js +0 -123
  749. package/ui/form/TimeField/demo/basic.d.ts +0 -3
  750. package/ui/form/TimeField/demo/basic.js +0 -28
  751. package/ui/form/TimeField/demo/disabled.d.ts +0 -3
  752. package/ui/form/TimeField/demo/disabled.js +0 -28
  753. package/ui/form/TimeField/demo/errors.d.ts +0 -3
  754. package/ui/form/TimeField/demo/errors.js +0 -28
  755. package/ui/form/TimeField/demo/placeholder.d.ts +0 -3
  756. package/ui/form/TimeField/demo/placeholder.js +0 -28
  757. package/ui/form/TimeField/demo/required.d.ts +0 -3
  758. package/ui/form/TimeField/demo/required.js +0 -28
  759. package/ui/form/TimeField/demo/sizes.d.ts +0 -3
  760. package/ui/form/TimeField/demo/sizes.js +0 -33
  761. package/ui/form/TimeField/index.js +0 -7
  762. package/ui/form/index.d.ts +0 -84
  763. package/ui/form/index.js +0 -74
  764. package/ui/form/validate.d.ts +0 -5
  765. package/ui/form/validate.js +0 -97
  766. package/ui/format/BooleanFormatter/BooleanFormatter.d.ts +0 -11
  767. package/ui/format/BooleanFormatter/BooleanFormatter.js +0 -9
  768. package/ui/format/BooleanFormatter/index.js +0 -7
  769. package/ui/format/DateFormatter/DateFormatter.d.ts +0 -15
  770. package/ui/format/DateFormatter/DateFormatter.js +0 -16
  771. package/ui/format/DateFormatter/demo/basic.d.ts +0 -3
  772. package/ui/format/DateFormatter/demo/basic.js +0 -28
  773. package/ui/format/DateFormatter/index.js +0 -7
  774. package/ui/format/DateTimeFormatter/DateTimeFormatter.d.ts +0 -27
  775. package/ui/format/DateTimeFormatter/DateTimeFormatter.js +0 -23
  776. package/ui/format/DateTimeFormatter/demo/basic.d.ts +0 -3
  777. package/ui/format/DateTimeFormatter/demo/basic.js +0 -28
  778. package/ui/format/DateTimeFormatter/index.js +0 -7
  779. package/ui/format/EnumFormatter/EnumFormatter.d.ts +0 -23
  780. package/ui/format/EnumFormatter/EnumFormatter.js +0 -36
  781. package/ui/format/EnumFormatter/index.js +0 -7
  782. package/ui/format/FileSize/FileSize.d.ts +0 -17
  783. package/ui/format/FileSize/FileSize.js +0 -36
  784. package/ui/format/FileSize/index.js +0 -7
  785. package/ui/format/Format/Format.d.ts +0 -12
  786. package/ui/format/Format/Format.js +0 -49
  787. package/ui/format/Format/index.js +0 -7
  788. package/ui/format/MoneyFormatter/MoneyFormatter.d.ts +0 -29
  789. package/ui/format/MoneyFormatter/MoneyFormatter.js +0 -33
  790. package/ui/format/MoneyFormatter/index.js +0 -7
  791. package/ui/format/index.d.ts +0 -16
  792. package/ui/format/index.js +0 -26
  793. package/ui/icon/Icon/Icon.d.ts +0 -46
  794. package/ui/icon/Icon/Icon.js +0 -47
  795. package/ui/icon/Icon/index.d.ts +0 -2
  796. package/ui/icon/Icon/index.js +0 -7
  797. package/ui/layout/Header/Header.d.ts +0 -23
  798. package/ui/layout/Header/Header.js +0 -7
  799. package/ui/layout/Header/index.js +0 -7
  800. package/ui/layout/Loader/Loader.d.ts +0 -5
  801. package/ui/layout/Loader/Loader.js +0 -7
  802. package/ui/layout/Loader/index.js +0 -7
  803. package/ui/layout/Notifications/Notifications.d.ts +0 -45
  804. package/ui/layout/Notifications/Notifications.js +0 -86
  805. package/ui/layout/Notifications/index.js +0 -7
  806. package/ui/layout/Portal.d.ts +0 -1
  807. package/ui/layout/Portal.js +0 -26
  808. package/ui/layout/Tooltip/Tooltip.d.ts +0 -63
  809. package/ui/layout/Tooltip/Tooltip.js +0 -114
  810. package/ui/layout/Tooltip/TooltipPortalInner.d.ts +0 -6
  811. package/ui/layout/Tooltip/TooltipPortalInner.js +0 -64
  812. package/ui/layout/Tooltip/calculate.d.ts +0 -6
  813. package/ui/layout/Tooltip/calculate.js +0 -162
  814. package/ui/layout/Tooltip/demo/basic.d.ts +0 -3
  815. package/ui/layout/Tooltip/demo/basic.js +0 -41
  816. package/ui/layout/Tooltip/index.js +0 -7
  817. package/ui/layout/index.d.ts +0 -5
  818. package/ui/layout/index.js +0 -14
  819. package/ui/list/CheckboxColumn/CheckboxColumn.d.ts +0 -36
  820. package/ui/list/CheckboxColumn/CheckboxColumn.js +0 -34
  821. package/ui/list/CheckboxColumn/demo/basic.d.ts +0 -8
  822. package/ui/list/CheckboxColumn/demo/basic.js +0 -43
  823. package/ui/list/CheckboxColumn/index.js +0 -7
  824. package/ui/list/ControlsColumn/ControlsColumn.d.ts +0 -37
  825. package/ui/list/ControlsColumn/ControlsColumn.js +0 -30
  826. package/ui/list/ControlsColumn/demo/basic.d.ts +0 -8
  827. package/ui/list/ControlsColumn/demo/basic.js +0 -36
  828. package/ui/list/ControlsColumn/index.js +0 -7
  829. package/ui/list/Empty/Empty.d.ts +0 -38
  830. package/ui/list/Empty/Empty.js +0 -54
  831. package/ui/list/Empty/demo/basic.d.ts +0 -3
  832. package/ui/list/Empty/demo/basic.js +0 -28
  833. package/ui/list/Empty/demo/custom-text.d.ts +0 -3
  834. package/ui/list/Empty/demo/custom-text.js +0 -28
  835. package/ui/list/Empty/index.js +0 -7
  836. package/ui/list/Grid/Grid.d.ts +0 -108
  837. package/ui/list/Grid/Grid.js +0 -123
  838. package/ui/list/Grid/demo/basic.d.ts +0 -18
  839. package/ui/list/Grid/demo/basic.js +0 -68
  840. package/ui/list/Grid/demo/controls.d.ts +0 -8
  841. package/ui/list/Grid/demo/controls.js +0 -40
  842. package/ui/list/Grid/demo/empty.d.ts +0 -8
  843. package/ui/list/Grid/demo/empty.js +0 -34
  844. package/ui/list/Grid/demo/formatter.d.ts +0 -8
  845. package/ui/list/Grid/demo/formatter.js +0 -63
  846. package/ui/list/Grid/demo/indexing.d.ts +0 -8
  847. package/ui/list/Grid/demo/indexing.js +0 -48
  848. package/ui/list/Grid/demo/inner-search-form.d.ts +0 -21
  849. package/ui/list/Grid/demo/inner-search-form.js +0 -56
  850. package/ui/list/Grid/demo/load-more.d.ts +0 -8
  851. package/ui/list/Grid/demo/load-more.js +0 -39
  852. package/ui/list/Grid/demo/pagination.d.ts +0 -8
  853. package/ui/list/Grid/demo/pagination.js +0 -37
  854. package/ui/list/Grid/demo/search-form.d.ts +0 -8
  855. package/ui/list/Grid/demo/search-form.js +0 -46
  856. package/ui/list/Grid/demo/sort.d.ts +0 -8
  857. package/ui/list/Grid/demo/sort.js +0 -44
  858. package/ui/list/Grid/demo/visible.d.ts +0 -8
  859. package/ui/list/Grid/demo/visible.js +0 -48
  860. package/ui/list/Grid/index.js +0 -7
  861. package/ui/list/LayoutNames/LayoutNames.d.ts +0 -58
  862. package/ui/list/LayoutNames/LayoutNames.js +0 -68
  863. package/ui/list/LayoutNames/demo/basic.d.ts +0 -7
  864. package/ui/list/LayoutNames/demo/basic.js +0 -12
  865. package/ui/list/LayoutNames/index.d.ts +0 -2
  866. package/ui/list/LayoutNames/index.js +0 -7
  867. package/ui/list/List/List.d.ts +0 -47
  868. package/ui/list/List/List.js +0 -82
  869. package/ui/list/List/demo/basic.d.ts +0 -12
  870. package/ui/list/List/demo/basic.js +0 -57
  871. package/ui/list/List/demo/condition.d.ts +0 -8
  872. package/ui/list/List/demo/condition.js +0 -86
  873. package/ui/list/List/demo/empty.d.ts +0 -8
  874. package/ui/list/List/demo/empty.js +0 -32
  875. package/ui/list/List/demo/layout.d.ts +0 -8
  876. package/ui/list/List/demo/layout.js +0 -45
  877. package/ui/list/List/demo/load-more.d.ts +0 -8
  878. package/ui/list/List/demo/load-more.js +0 -41
  879. package/ui/list/List/demo/pagination.d.ts +0 -8
  880. package/ui/list/List/demo/pagination.js +0 -41
  881. package/ui/list/List/demo/search-form.d.ts +0 -30
  882. package/ui/list/List/demo/search-form.js +0 -103
  883. package/ui/list/List/demo/sort.d.ts +0 -17
  884. package/ui/list/List/demo/sort.js +0 -88
  885. package/ui/list/List/index.js +0 -7
  886. package/ui/list/Pagination/Pagination.d.ts +0 -86
  887. package/ui/list/Pagination/Pagination.js +0 -120
  888. package/ui/list/Pagination/demo/basic.d.ts +0 -3
  889. package/ui/list/Pagination/demo/basic.js +0 -36
  890. package/ui/list/Pagination/demo/load-more.d.ts +0 -3
  891. package/ui/list/Pagination/demo/load-more.js +0 -33
  892. package/ui/list/Pagination/demo/sizes.d.ts +0 -3
  893. package/ui/list/Pagination/demo/sizes.js +0 -38
  894. package/ui/list/Pagination/index.js +0 -7
  895. package/ui/list/PaginationSize/PaginationSize.d.ts +0 -69
  896. package/ui/list/PaginationSize/PaginationSize.js +0 -76
  897. package/ui/list/PaginationSize/demo/basic.d.ts +0 -3
  898. package/ui/list/PaginationSize/demo/basic.js +0 -32
  899. package/ui/list/PaginationSize/demo/size.d.ts +0 -3
  900. package/ui/list/PaginationSize/demo/size.js +0 -40
  901. package/ui/list/PaginationSize/index.js +0 -7
  902. package/ui/list/SearchForm/SearchForm.d.ts +0 -13
  903. package/ui/list/SearchForm/SearchForm.js +0 -55
  904. package/ui/list/SearchForm/demo/basic.d.ts +0 -8
  905. package/ui/list/SearchForm/demo/basic.js +0 -35
  906. package/ui/list/SearchForm/index.d.ts +0 -2
  907. package/ui/list/SearchForm/index.js +0 -7
  908. package/ui/modal/Modal/Modal.d.ts +0 -74
  909. package/ui/modal/Modal/Modal.js +0 -44
  910. package/ui/modal/Modal/demo/basic.d.ts +0 -8
  911. package/ui/modal/Modal/demo/basic.js +0 -60
  912. package/ui/modal/Modal/index.js +0 -7
  913. package/ui/modal/ModalPortal/ModalPortal.d.ts +0 -12
  914. package/ui/modal/ModalPortal/ModalPortal.js +0 -77
  915. package/ui/modal/ModalPortal/index.js +0 -7
  916. package/ui/modal/TwoFactorModal/TwoFactorModal.d.ts +0 -22
  917. package/ui/modal/TwoFactorModal/TwoFactorModal.js +0 -56
  918. package/ui/modal/TwoFactorModal/index.js +0 -7
  919. package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +0 -9
  920. package/ui/nav/Breadcrumbs/Breadcrumbs.js +0 -22
  921. package/ui/nav/Breadcrumbs/index.js +0 -7
  922. package/ui/nav/Controls/Controls.d.ts +0 -38
  923. package/ui/nav/Controls/Controls.js +0 -55
  924. package/ui/nav/Controls/index.js +0 -7
  925. package/ui/nav/Link/Link.d.ts +0 -7
  926. package/ui/nav/Link/Link.js +0 -41
  927. package/ui/nav/Link/index.js +0 -7
  928. package/ui/nav/Nav/Nav.d.ts +0 -106
  929. package/ui/nav/Nav/Nav.js +0 -104
  930. package/ui/nav/Nav/demo/basic.d.ts +0 -3
  931. package/ui/nav/Nav/demo/basic.js +0 -29
  932. package/ui/nav/Nav/demo/buttons.d.ts +0 -8
  933. package/ui/nav/Nav/demo/buttons.js +0 -50
  934. package/ui/nav/Nav/demo/links.d.ts +0 -3
  935. package/ui/nav/Nav/demo/links.js +0 -30
  936. package/ui/nav/Nav/demo/navbar.d.ts +0 -3
  937. package/ui/nav/Nav/demo/navbar.js +0 -46
  938. package/ui/nav/Nav/demo/tabs.d.ts +0 -3
  939. package/ui/nav/Nav/demo/tabs.js +0 -30
  940. package/ui/nav/Nav/index.js +0 -7
  941. package/ui/nav/Router/ConnectedRouter.d.ts +0 -14
  942. package/ui/nav/Router/ConnectedRouter.js +0 -103
  943. package/ui/nav/Router/Router.d.ts +0 -49
  944. package/ui/nav/Router/Router.js +0 -224
  945. package/ui/nav/Router/SsrProvider.d.ts +0 -15
  946. package/ui/nav/Router/SsrProvider.js +0 -55
  947. package/ui/nav/Router/index.js +0 -7
  948. package/ui/nav/Tree/Tree.d.ts +0 -43
  949. package/ui/nav/Tree/Tree.js +0 -168
  950. package/ui/nav/Tree/demo/level-tree-routes.d.ts +0 -3
  951. package/ui/nav/Tree/demo/level-tree-routes.js +0 -28
  952. package/ui/nav/Tree/demo/level-tree.d.ts +0 -3
  953. package/ui/nav/Tree/demo/level-tree.js +0 -61
  954. package/ui/nav/Tree/index.js +0 -7
  955. package/ui/nav/index.js +0 -14
  956. package/utils/collection.d.ts +0 -1
  957. package/utils/collection.js +0 -19
  958. package/utils/data.d.ts +0 -9
  959. package/utils/data.js +0 -159
  960. package/utils/form.d.ts +0 -39
  961. package/utils/form.js +0 -172
  962. package/utils/query.d.ts +0 -1
  963. package/utils/query.js +0 -46
  964. package/utils/text.d.ts +0 -1
  965. package/utils/text.js +0 -85
@@ -0,0 +1,158 @@
1
+ import * as React from 'react';
2
+ import {SubmissionError} from 'redux-form';
3
+ import _isUndefined from 'lodash-es/isUndefined';
4
+ import _set from 'lodash-es/set';
5
+ import _get from 'lodash-es/get';
6
+ import _isPlainObject from 'lodash-es/isPlainObject';
7
+ import _isArray from 'lodash-es/isArray';
8
+ import components from './components';
9
+ import {IComponentsHocOutput} from './components';
10
+ import validate from "../ui/form/validate";
11
+
12
+ /**
13
+ * Form Submit HOC
14
+ * Используется в `Form` для добавления обработчика `onSubmit`
15
+ */
16
+ export interface IFormSubmitHocInput {
17
+ action?: any,
18
+ actionMethod?: string,
19
+ autoSave?: any,
20
+ validators?: any,
21
+ onBeforeSubmit?: any,
22
+ onSubmit?: any,
23
+ onAfterSubmit?: any,
24
+ onComplete?: any,
25
+ onTwoFactor?: (providerName: string, info?: any) => Promise<any>
26
+ autoStartTwoFactor?: boolean,
27
+ }
28
+
29
+ export interface IFormSubmitHocOutput {
30
+
31
+ }
32
+
33
+ interface IFormSubmitHocPrivateProps extends IComponentsHocOutput {
34
+ formRegisteredFields?: any,
35
+ formId?: string,
36
+ }
37
+
38
+ export default (): any => WrappedComponent =>
39
+ components('http', 'clientStorage')(
40
+ class FormSubmitHoc extends React.PureComponent<IFormSubmitHocInput & IFormSubmitHocPrivateProps> {
41
+ static WrappedComponent = WrappedComponent;
42
+ /**
43
+ * Proxy real name, prop types and default props for storybook
44
+ */
45
+ static displayName = WrappedComponent.displayName || WrappedComponent.name;
46
+ static propTypes = WrappedComponent.propTypes;
47
+ static defaultProps = {
48
+ ...WrappedComponent.defaultProps,
49
+ actionMethod: 'POST',
50
+ autoStartTwoFactor: true,
51
+ };
52
+
53
+ constructor(props) {
54
+ super(props);
55
+ this._onSubmit = this._onSubmit.bind(this);
56
+ }
57
+
58
+ render() {
59
+ return <WrappedComponent {...this.props} onSubmit={this._onSubmit}/>;
60
+ }
61
+
62
+ cleanEmptyObject(object) {
63
+ // if all properties are null substitute the object with null
64
+ if (!Object.values(object).some(x => x)) {
65
+ return null;
66
+ }
67
+
68
+ Object.keys(object).forEach(key => {
69
+ if (_isPlainObject(object[key])) {
70
+ object[key] = this.cleanEmptyObject(object[key]);
71
+ }
72
+
73
+ if (_isArray(object[key])) {
74
+ let array = object[key];
75
+
76
+ array.forEach((value, index) => {
77
+ if (_isPlainObject(value)) {
78
+ array[index] = this.cleanEmptyObject(value);
79
+ }
80
+ });
81
+
82
+ if (!object[key].some(x => Boolean(x))) {
83
+ object[key] = [];
84
+ }
85
+ }
86
+ });
87
+
88
+ return object;
89
+ }
90
+
91
+ _onSubmit(values) {
92
+ // Append non touched fields to values object
93
+ Object.keys(this.props.formRegisteredFields || {}).forEach(key => {
94
+ const name = this.props.formRegisteredFields[key].name;
95
+ if (_isUndefined(_get(values, name))) {
96
+ _set(values, name, null);
97
+ }
98
+ });
99
+ values = this.cleanEmptyObject(values);
100
+
101
+ // Event onBeforeSubmit
102
+ if (
103
+ this.props.onBeforeSubmit &&
104
+ this.props.onBeforeSubmit(values) === false
105
+ ) {
106
+ return;
107
+ }
108
+ if (this.props.validators) {
109
+ validate(values, this.props.validators);
110
+ }
111
+ if (this.props.onSubmit) {
112
+ return this.props.onSubmit(values);
113
+ }
114
+ return this.props.http
115
+ .send(
116
+ this.props.actionMethod,
117
+ this.props.action || location.pathname,
118
+ values,
119
+ {
120
+ onTwoFactor: this.props.onTwoFactor
121
+ ? async (providerName) => {
122
+ const info = this.props.autoStartTwoFactor
123
+ ? await this.props.http.post(`/api/v1/auth/2fa/${providerName}/send`)
124
+ : null;
125
+ this.props.onTwoFactor(providerName, info);
126
+ }
127
+ : undefined
128
+ }
129
+ )
130
+ .then(response => {
131
+ // Skip on 2fa
132
+ if (response.twoFactor) {
133
+ return;
134
+ }
135
+
136
+ const data = response.data || {};
137
+ // Event onAfterSubmit
138
+ if (
139
+ this.props.onAfterSubmit &&
140
+ this.props.onAfterSubmit(values, data, response) === false
141
+ ) {
142
+ return;
143
+ }
144
+ if (data.errors) {
145
+ throw new SubmissionError(data.errors);
146
+ }
147
+ if (this.props.onComplete) {
148
+ this.props.onComplete(values, data, response);
149
+ }
150
+ if (this.props.autoSave) {
151
+
152
+ const AutoSaveHelper = require('../ui/form/Form/AutoSaveHelper').default;
153
+ AutoSaveHelper.remove(this.props.clientStorage, this.props.formId);
154
+ }
155
+ });
156
+ }
157
+ }
158
+ )
package/hoc/http.tsx ADDED
@@ -0,0 +1,112 @@
1
+ import * as React from 'react';
2
+ import axios from 'axios';
3
+ import _isFunction from 'lodash-es/isFunction';
4
+ import _isObject from 'lodash-es/isObject';
5
+ import components, {IComponentsHocInput} from './components';
6
+
7
+ /**
8
+ * Http HOC
9
+ * Обертка для асинхронного получения данных с бекенда. В отличии от `Fetch HOC`, он не хранит данные в Redux Store
10
+ * и не добавляет "Загрузка..." при запросе.
11
+ */
12
+ export interface IHttpHocInput {
13
+ }
14
+
15
+ export interface IHttpHocOutput {
16
+ fetch: (params: object) => Promise<any> | any,
17
+ }
18
+
19
+ interface IHttpHocPrivateProps extends IComponentsHocInput {
20
+ }
21
+
22
+ interface IHttpHocState {
23
+ data?: any,
24
+ isLoading: boolean,
25
+ }
26
+
27
+ export default (requestFunc): any => WrappedComponent =>
28
+ components()(
29
+ class HttpHoc extends React.PureComponent<IHttpHocInput & IHttpHocPrivateProps, IHttpHocState> {
30
+ static WrappedComponent = WrappedComponent;
31
+
32
+ _isRendered = false;
33
+ _cancels = [];
34
+
35
+ constructor(props) {
36
+ super(props);
37
+
38
+ this._fetch = this._fetch.bind(this);
39
+ this._createCancelToken = this._createCancelToken.bind(this);
40
+
41
+ this.state = {
42
+ data: null,
43
+ isLoading: true,
44
+ };
45
+ }
46
+
47
+ UNSAFE_componentWillMount() {
48
+ this._fetch();
49
+ }
50
+
51
+ componentDidMount() {
52
+ this._isRendered = true;
53
+ }
54
+
55
+ componentWillUnmount() {
56
+ this._isRendered = false;
57
+ this._cancels.forEach(cancel =>
58
+ cancel('Canceled on unmount component')
59
+ );
60
+ }
61
+
62
+ render() {
63
+ const outputProps = {
64
+ fetch: this._fetch,
65
+ } as IHttpHocOutput;
66
+ return (
67
+ <WrappedComponent
68
+ {...this.props}
69
+ {...this.state.data}
70
+ {...outputProps}
71
+ isLoading={this.state.isLoading}
72
+ />
73
+ );
74
+ }
75
+
76
+ _createCancelToken() {
77
+ return new axios.CancelToken(cancel => {
78
+ this._cancels.push(cancel);
79
+ });
80
+ }
81
+
82
+ _fetch(params = {}) {
83
+ this.setState({isLoading: true}, () => {
84
+ const result = requestFunc({
85
+ ...this.props,
86
+ ...params,
87
+ createCancelToken: this._createCancelToken
88
+ });
89
+ if (_isObject(result)) {
90
+ if (_isFunction(result.then)) {
91
+ return result.then(data => {
92
+ if (this._isRendered) {
93
+ this.setState({
94
+ data,
95
+ isLoading: false,
96
+ });
97
+ }
98
+ return data;
99
+ });
100
+ } else {
101
+ this.setState({
102
+ data: result,
103
+ isLoading: false,
104
+ });
105
+ }
106
+ }
107
+ return result;
108
+ })
109
+ }
110
+ }
111
+ )
112
+
package/hoc/index.ts ADDED
@@ -0,0 +1,37 @@
1
+ import application from './application';
2
+ import bem from './bem';
3
+ import components from './components';
4
+ import connect from './connect';
5
+ import dataProvider from './dataProvider';
6
+ import fetch from './fetch';
7
+ import field from './field';
8
+ import file from './file';
9
+ import form from './form';
10
+ import formSubmit from './formSubmit';
11
+ import http from './http';
12
+ import layout from './layout';
13
+ import list from './list';
14
+ import normalize from './normalize';
15
+ import props from './props';
16
+ import screen from './screen';
17
+ import theme from './theme';
18
+
19
+ export {
20
+ application,
21
+ bem,
22
+ components,
23
+ connect,
24
+ dataProvider,
25
+ fetch,
26
+ field,
27
+ file,
28
+ form,
29
+ formSubmit,
30
+ http,
31
+ layout,
32
+ list,
33
+ normalize,
34
+ props,
35
+ screen,
36
+ theme,
37
+ };
package/hoc/layout.tsx ADDED
@@ -0,0 +1,205 @@
1
+ import * as React from 'react';
2
+ import {connect} from 'react-redux';
3
+ import _get from 'lodash-es/get';
4
+ import _isFunction from 'lodash-es/isFunction';
5
+ import _isObject from 'lodash-es/isObject';
6
+ import _upperFirst from 'lodash-es/upperFirst';
7
+ import _merge from 'lodash-es/merge';
8
+ import _intersection from 'lodash-es/intersection';
9
+
10
+ import {getRoute, IRoute} from '../reducers/router';
11
+ import {getData, getInitializeCounter, getUser, isInitialized} from '../reducers/auth';
12
+ import {init, setData, setUser} from '../actions/auth';
13
+ import {setMeta} from '../actions/fields';
14
+ import {goToRoute} from '../actions/router';
15
+ import components, {IComponentsHocOutput} from './components';
16
+ import {IConnectHocOutput} from './connect';
17
+ import {IRouteItem} from '../ui/nav/Router/Router';
18
+
19
+ export const STATUS_LOADING = 'loading';
20
+ export const STATUS_NOT_FOUND = 'not_found';
21
+ export const STATUS_RENDER_ERROR = 'render_error';
22
+ export const STATUS_HTTP_ERROR = 'render_error';
23
+ export const STATUS_ACCESS_DENIED = 'access_denied';
24
+ export const STATUS_OK = 'ok';
25
+
26
+ /**
27
+ * Layout HOC
28
+ * Используется для макета (layout) приложения, добавляя в него данные авторизации и статуса рендера страницы.
29
+ * Передаваемый первым аргументом `initAction` будет вызываться каждый раз, когда необходимо обновить данные
30
+ * авторизации (первая загрузка страницы, логин/регистация и выход).
31
+ */
32
+ export interface ILayoutHocInput {
33
+ route?: IRoute,
34
+ user?: {
35
+ role: string,
36
+ },
37
+ data?: object,
38
+ initializeCounter?: number,
39
+ components: IComponentsHocOutput,
40
+ isInitialized?: boolean,
41
+ redirectPageId?: any,
42
+ }
43
+
44
+ export interface ILayoutHocOutput {
45
+ http?: any,
46
+ status: string,
47
+ renderError: string,
48
+ route: IRouteItem,
49
+ user: any,
50
+ data: any,
51
+ isInitialized: boolean,
52
+ }
53
+
54
+ interface ILayoutHocPrivateProps extends IConnectHocOutput, IComponentsHocOutput {
55
+
56
+ }
57
+
58
+ interface ILayoutHocState {
59
+ httpError?: string,
60
+ renderError?: string,
61
+ }
62
+
63
+ const stateMap = state => ({
64
+ route: getRoute(state),
65
+ user: getUser(state),
66
+ data: getData(state),
67
+ isInitialized: isInitialized(state),
68
+ initializeCounter: getInitializeCounter(state),
69
+ redirectPageId: state.auth.redirectPageId
70
+ });
71
+
72
+ export default (initAction): any => WrappedComponent =>
73
+ connect(stateMap)(
74
+ components('http')(
75
+ class LayoutHoc extends React.PureComponent<ILayoutHocInput & ILayoutHocPrivateProps, ILayoutHocState> {
76
+ static WrappedComponent = WrappedComponent;
77
+ /**
78
+ * Proxy real name, prop types and default props
79
+ */
80
+ static displayName = WrappedComponent.displayName || WrappedComponent.name;
81
+ static propTypes = {};
82
+
83
+ static getDerivedStateFromError(e) {
84
+ return {
85
+ renderError: String(e)
86
+ };
87
+ }
88
+
89
+ constructor(props) {
90
+ super(props);
91
+ this.state = {
92
+ renderError: null,
93
+ httpError: null
94
+ };
95
+ }
96
+
97
+ UNSAFE_componentWillMount() {
98
+ // Callback for load initial page data (return promise)
99
+ if (_isFunction(initAction)) {
100
+ this.props.dispatch(init(true));
101
+ }
102
+ }
103
+
104
+ componentDidUpdate(prevProps) {
105
+ if (
106
+ _isFunction(initAction) &&
107
+ this.props.initializeCounter > prevProps.initializeCounter
108
+ ) {
109
+ initAction(this.props, this.props.dispatch)
110
+ .then(data => {
111
+ // Configure components
112
+ if (_isObject(data.config)) {
113
+ const components = this.props.components;
114
+ Object.keys(data.config).map(name => {
115
+ if (components[name]) {
116
+ Object.keys(data.config[name]).map(key => {
117
+ const value = data.config[name][key];
118
+ const setter = 'set' + _upperFirst(key);
119
+ if (_isFunction(components[name][setter])) {
120
+ components[name][setter](value);
121
+ } else if (
122
+ _isObject(components[name][key]) &&
123
+ _isObject(value)
124
+ ) {
125
+ _merge(components[name][key], value);
126
+ } else {
127
+ components[name][key] = value;
128
+ }
129
+ });
130
+ }
131
+ });
132
+ }
133
+ const {user, meta} = data;
134
+ delete data.user;
135
+ delete data.meta;
136
+ this.props.dispatch(
137
+ [
138
+ // Meta models & enums
139
+ Boolean(meta) && setMeta(meta),
140
+ // User auth
141
+ setData(data),
142
+ // User auth
143
+ setUser(user),
144
+ this.props.redirectPageId && goToRoute(this.props.redirectPageId)
145
+ ].filter(Boolean)
146
+ );
147
+ })
148
+ .catch(e => {
149
+ this.setState({
150
+ httpError: e
151
+ });
152
+ throw e;
153
+ });
154
+ }
155
+ }
156
+
157
+ render() {
158
+ let status = STATUS_OK;
159
+ if (!this.props.isInitialized) {
160
+ status = STATUS_LOADING;
161
+ } else if (this.state.renderError) {
162
+ status = STATUS_RENDER_ERROR;
163
+ } else if (this.state.httpError) {
164
+ status = STATUS_HTTP_ERROR;
165
+ } else if (!this.props.route) {
166
+ status = STATUS_NOT_FOUND;
167
+ } else {
168
+ const pageRoles = _get(this.props, 'route.roles') || [];
169
+ const userRoles = []
170
+ .concat(_get(this.props, 'user.role') || [])
171
+ .concat(_get(this.props, 'user.roles') || []);
172
+ if (userRoles.length === 0) {
173
+ userRoles.push(null); // Guest
174
+ }
175
+ if (_intersection(pageRoles, userRoles).length === 0) {
176
+ status = STATUS_ACCESS_DENIED;
177
+ if (process.env.NODE_ENV !== 'production') {
178
+ console.log(
179
+ 'Access denied. Page roles: ',
180
+ pageRoles,
181
+ 'User roles:',
182
+ userRoles.join(),
183
+ 'Route:',
184
+ this.props.route
185
+ ); // eslint-disable-line no-console
186
+ }
187
+ }
188
+ }
189
+
190
+ const outputProps = {
191
+ status,
192
+ renderError: this.state.renderError,
193
+ ...this.props.data,
194
+ } as ILayoutHocOutput;
195
+
196
+ return (
197
+ <WrappedComponent
198
+ {...this.props}
199
+ {...outputProps}
200
+ />
201
+ );
202
+ }
203
+ }
204
+ )
205
+ )