@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
package/hoc/list.tsx ADDED
@@ -0,0 +1,549 @@
1
+ import * as React from 'react';
2
+ import {getFormValues, initialize, change} from 'redux-form';
3
+ import _get from 'lodash-es/get';
4
+ import _isEqual from 'lodash-es/isEqual';
5
+ import _isBoolean from 'lodash-es/isBoolean';
6
+ import _isString from 'lodash-es/isString';
7
+ import _union from 'lodash-es/union';
8
+
9
+ import {listInit, listLazyFetch, listFetch, listDestroy, IList} from '../actions/list';
10
+ import {getList} from '../reducers/list';
11
+ import {getModel} from '../reducers/fields';
12
+ import components, {IComponentsHocOutput} from './components';
13
+ import connect, {IConnectHocOutput} from './connect';
14
+ import normalize, {INormalizeHocConfig} from './normalize';
15
+ import {IFormProps} from '../ui/form/Form/Form';
16
+ import {IPaginationSizeProps} from '../ui/list/PaginationSize/PaginationSize';
17
+ import {IEmptyProps} from '../ui/list/Empty/Empty';
18
+ import {INavItem} from '../ui/nav/Nav/Nav';
19
+ import {queryReplace, queryRestore} from '../utils/query';
20
+ import {IPaginationProps} from '../ui/list/Pagination/Pagination';
21
+ import {Model} from '../components/MetaComponent';
22
+
23
+ export type ListControlPosition = 'top' | 'bottom' | 'both' | string;
24
+
25
+ interface ISortProps {
26
+ enable?: boolean,
27
+ attribute?: string,
28
+ defaultValue?: string | string[] | null,
29
+ }
30
+
31
+ interface ILayoutProps {
32
+ enable?: boolean,
33
+ attribute?: string,
34
+ defaultValue?: string,
35
+ position?: ListControlPosition,
36
+ items?: INavItem[],
37
+ view?: CustomView,
38
+ }
39
+
40
+ interface IAddressBar {
41
+ enable?: boolean,
42
+ useHash?: boolean,
43
+ }
44
+
45
+ /**
46
+ * List HOC
47
+ * Добавляет массу возможностей для взаимодействия с коллекциями. Коллекции можно получать как с бекенда, так и передавать
48
+ * статичным массивом. В обоих случаях поддерживается пагинация, сортировка, фильтрация данных. Выбранные фильтры
49
+ * синхронизируются с адресной строкой.
50
+ */
51
+ export interface IListHocInput {
52
+ listId?: string,
53
+ primaryKey?: string,
54
+ action?: string,
55
+ actionMethod?: HttpMethod,
56
+ pagination?: boolean | IPaginationProps,
57
+ paginationSize?: boolean | IPaginationSizeProps,
58
+ sort?: boolean | ISortProps,
59
+ layout?: boolean | ILayoutProps,
60
+ empty?: boolean | string | IEmptyProps,
61
+ searchForm?: Omit<IFormProps, 'formId'> & {
62
+ formId?: string,
63
+ },
64
+ autoDestroy?: boolean,
65
+ onFetch?: (list: IList, query: object, http: any) => Promise<any>,
66
+ addressBar?: boolean | IAddressBar,
67
+ scope?: string[],
68
+ query?: object,
69
+ model?: Model,
70
+ searchModel?: Model,
71
+ items?: Array<any>,
72
+ }
73
+
74
+ export interface IListHocOutput {
75
+ /*
76
+ searchForm={searchForm}
77
+ items={items}
78
+ fetch={this._onFetch}
79
+ */
80
+ isLoading?: boolean,
81
+ emptyNode?: React.ReactNode,
82
+ paginationNode?: React.ReactNode,
83
+ paginationPosition?: ListControlPosition,
84
+ paginationSizeNode?: React.ReactNode,
85
+ paginationSizePosition?: ListControlPosition,
86
+ layoutNode?: React.ReactNode,
87
+ layoutPosition?: ListControlPosition,
88
+ layoutSelected?: PrimaryKey,
89
+ outsideSearchFormNode?: React.ReactNode,
90
+ }
91
+
92
+ export interface IListHocPrivateProps extends IConnectHocOutput, IComponentsHocOutput {
93
+ list?: IList,
94
+ formValues?: any,
95
+ searchFormValues?: any,
96
+ location?: {
97
+ search?: string,
98
+ hash?: string,
99
+ pathname?: string,
100
+ },
101
+ _pagination?: IPaginationProps,
102
+ _paginationSize?: IPaginationSizeProps,
103
+ _sort?: ISortProps,
104
+ _layout?: ILayoutProps,
105
+ _empty?: IEmptyProps,
106
+ _addressBar?: IAddressBar,
107
+ _model?: Model,
108
+ _searchModel?: Model,
109
+ }
110
+
111
+ const defaultProps = {
112
+ actionMethod: 'get',
113
+ primaryKey: 'id',
114
+ autoDestroy: true,
115
+ pagination: {
116
+ enable: true,
117
+ attribute: 'page',
118
+ aroundCount: 3,
119
+ defaultValue: 1,
120
+ loadMore: false,
121
+ position: 'bottom',
122
+ },
123
+ paginationSize: {
124
+ enable: false,
125
+ attribute: 'pageSize',
126
+ sizes: [30, 50, 100],
127
+ defaultValue: 50,
128
+ position: 'top',
129
+ },
130
+ sort: {
131
+ enable: false,
132
+ attribute: 'sort',
133
+ defaultValue: null,
134
+ },
135
+ layout: {
136
+ enable: false,
137
+ attribute: 'layout',
138
+ defaultValue: null,
139
+ position: 'top',
140
+ },
141
+ empty: {
142
+ enable: true,
143
+ text: 'Записи не найдены',
144
+ },
145
+ addressBar: {
146
+ enable: false,
147
+ useHash: false,
148
+ },
149
+ };
150
+
151
+ const stateMap = (state, props) => {
152
+ const list = getList(state, props.listId);
153
+ return {
154
+ list,
155
+ model: getModel(state, props.model || _get(list, 'meta.model')),
156
+ searchModel: getModel(state, _get(props, 'searchModel') || _get(props, 'searchForm.model') || _get(list, 'meta.searchModel')),
157
+ formValues: getFormValues(getFormId(props))(state) || null,
158
+ location: _get(state, 'router.location') || null,
159
+ };
160
+ };
161
+
162
+ const normalizeMap = [
163
+ {
164
+ fromKey: 'pagination',
165
+ toKey: '_pagination',
166
+ normalizer: pagination => ({
167
+ ...defaultProps.pagination,
168
+ ...(_isBoolean(pagination) ? {enable: pagination} : pagination),
169
+ }),
170
+ },
171
+ {
172
+ fromKey: 'paginationSize',
173
+ toKey: '_paginationSize',
174
+ normalizer: paginationSize => ({
175
+ ...defaultProps.paginationSize,
176
+ enable: !!paginationSize,
177
+ defaultValue: _get(paginationSize, 'sizes.0') || 50,
178
+ ...(_isBoolean(paginationSize) ? {enable: paginationSize} : paginationSize),
179
+ }),
180
+ },
181
+ {
182
+ fromKey: 'sort',
183
+ toKey: '_sort',
184
+ normalizer: sort => ({
185
+ ...defaultProps.sort,
186
+ enable: !!sort,
187
+ ...(_isBoolean(sort) ? {enable: sort} : sort),
188
+ }),
189
+ },
190
+ {
191
+ fromKey: 'layout',
192
+ toKey: '_layout',
193
+ normalizer: layout => ({
194
+ ...defaultProps.layout,
195
+ enable: !!layout,
196
+ defaultValue: _get(layout, 'items.0.id') || null,
197
+ ...(_isBoolean(layout) ? {enable: layout} : layout),
198
+ }),
199
+ },
200
+ {
201
+ fromKey: 'empty',
202
+ toKey: '_empty',
203
+ normalizer: empty => ({
204
+ ...defaultProps.empty,
205
+ enable: !!empty,
206
+ text: __('Записи не найдены'),
207
+ ...(_isBoolean(empty) ? {enable: empty} : (_isString(empty) ? {text: empty} : empty)),
208
+ }),
209
+ },
210
+ {
211
+ fromKey: 'addressBar',
212
+ toKey: '_addressBar',
213
+ normalizer: addressBar => ({
214
+ ...defaultProps.addressBar,
215
+ enable: !!addressBar,
216
+ ...(_isBoolean(addressBar) ? {enable: addressBar} : addressBar),
217
+ }),
218
+ },
219
+ {
220
+ fromKey: 'model',
221
+ toKey: '_model',
222
+ normalizer: (model, props) => props.meta.normalizeModel(model),
223
+ },
224
+ {
225
+ fromKey: 'searchModel',
226
+ toKey: '_searchModel',
227
+ normalizer: (searchModel, props) => props.meta.normalizeModel(searchModel, props._addressBar.enable && {
228
+ attributes: [ // default attributes
229
+ props._pagination.enable && {
230
+ type: 'integer',
231
+ attribute: props._pagination.attribute,
232
+ defaultValue: props._pagination.defaultValue,
233
+ },
234
+ props._paginationSize.enable && {
235
+ type: 'integer',
236
+ attribute: props._paginationSize.attribute,
237
+ defaultValue: props._paginationSize.defaultValue,
238
+ },
239
+ props._sort.enable && {
240
+ type: 'string', // TODO Need list of strings
241
+ jsType: 'string[]',
242
+ attribute: props._sort.attribute,
243
+ defaultValue: props._sort.defaultValue,
244
+ },
245
+ props._layout.enable && {
246
+ type: 'string',
247
+ attribute: props._layout.attribute,
248
+ defaultValue: props._layout.defaultValue,
249
+ },
250
+ ].filter(Boolean)
251
+ }),
252
+ },
253
+ ] as INormalizeHocConfig[];
254
+
255
+ export const getFormId = props => _get(props, 'searchForm.formId', props.listId);
256
+
257
+ export default (): any => WrappedComponent =>
258
+ connect(stateMap)(
259
+ components('store', 'meta', 'clientStorage')(
260
+ normalize(normalizeMap)(
261
+ class ListHoc extends React.PureComponent<IListHocInput & IListHocPrivateProps> {
262
+
263
+ static WrappedComponent = WrappedComponent;
264
+
265
+ static defaultProps = defaultProps;
266
+
267
+ constructor(props) {
268
+ super(props);
269
+
270
+ this._onFetch = this._onFetch.bind(this);
271
+ this._onPageChange = this._onPageChange.bind(this);
272
+ this._onPageSizeChange = this._onPageSizeChange.bind(this);
273
+ this._onSortChange = this._onSortChange.bind(this);
274
+ this._onLayoutChange = this._onLayoutChange.bind(this);
275
+ }
276
+
277
+ UNSAFE_componentWillMount() {
278
+ // TODO
279
+ /*if (process.env.IS_SSR) {
280
+ const query = queryString.parse(this.props.locationSearch);
281
+ this.props.dispatch(
282
+ initSSR(this.props.listId, {
283
+ ...this.props,
284
+ page: Number(_get(query, 'page', this.props._pagination.defaultValue)),
285
+ query
286
+ })
287
+ );
288
+ }*/
289
+ }
290
+
291
+ componentDidMount() {
292
+ if (!this.props.list) {
293
+ let initialValues: any = {
294
+ [this.props._pagination.attribute]: this.props._pagination.defaultValue,
295
+ [this.props._paginationSize.attribute]: this.props._paginationSize.defaultValue,
296
+ [this.props._sort.attribute]: this.props._sort.defaultValue,
297
+ [this.props._layout.attribute]: this.props._layout.defaultValue,
298
+ [this.props._layout.attribute]: this.props.clientStorage.get(this.props._layout.attribute) || this.props._layout.defaultValue,
299
+ };
300
+
301
+ // Restore from location params (address bar)
302
+ if (this.props._addressBar.enable && this.props.searchModel) {
303
+ initialValues = {
304
+ ...initialValues,
305
+ ...queryRestore(
306
+ this.props.searchModel,
307
+ this.props.location,
308
+ this.props._addressBar.useHash
309
+ ),
310
+ };
311
+ }
312
+
313
+ // TODO Сейчас обнуляем страницу при обновлении страницы. По хорошему бы
314
+ // TODO надо добавить поддержку пагинации loadMore не с первой страницы (сейчас глючит)
315
+ //initialValues.page = 1;
316
+
317
+ // Merge with query from props
318
+ initialValues = {
319
+ ...initialValues,
320
+ ...this.props.query,
321
+ }
322
+
323
+ this.props.dispatch([
324
+ listInit(this.props.listId, this.props),
325
+ initialize(getFormId(this.props), initialValues)
326
+ ]);
327
+ }
328
+ }
329
+
330
+ componentDidUpdate(prevProps, prevState, snapshot) {
331
+ const toDispatch = [];
332
+
333
+ if (!_isEqual(prevProps.formValues, this.props.formValues)) {
334
+ const formValues = {...this.props.formValues};
335
+
336
+ // Has changes (but not page) -> reset page
337
+ const pageAttribute = this.props._pagination.attribute;
338
+ const prevPage = _get(prevProps, ['formValues', pageAttribute]);
339
+ const nextPage = _get(this.props, ['formValues', pageAttribute]);
340
+ if (prevPage && prevPage === nextPage && nextPage > 1) {
341
+ formValues[pageAttribute] = this.props._pagination.defaultValue;
342
+ toDispatch.push(change(getFormId(this.props), pageAttribute, formValues[pageAttribute]));
343
+ }
344
+
345
+ // Send request
346
+ this.props.dispatch(listLazyFetch(this.props.listId));
347
+
348
+ // Sync with address bar
349
+ if (this.props._addressBar.enable && this.props.searchModel) {
350
+ toDispatch.push(queryReplace(
351
+ this.props.searchModel,
352
+ this.props.location,
353
+ formValues,
354
+ this.props._addressBar.useHash
355
+ ));
356
+ }
357
+ }
358
+
359
+ // Check change query
360
+ if (prevProps.query !== this.props.query) {
361
+ _union(Object.keys(prevProps.query), Object.keys(this.props.query)).forEach(key => {
362
+ if (_isEqual(prevProps.query[key], this.props.query[key])) {
363
+ toDispatch.push(change(getFormId(this.props), key, this.props.query[key]));
364
+ }
365
+ });
366
+ }
367
+
368
+ // Check change items
369
+ if (prevProps.items !== this.props.items) {
370
+ toDispatch.push(listInit(this.props.listId, this.props));
371
+ this.props.dispatch(listLazyFetch(this.props.listId));
372
+ }
373
+
374
+ this.props.dispatch(toDispatch);
375
+ }
376
+
377
+ componentWillUnmount() {
378
+ if (this.props.autoDestroy) {
379
+ this.props.dispatch(listDestroy(this.props.listId));
380
+ }
381
+ }
382
+
383
+ render() {
384
+ // Check is init
385
+ if (!this.props.list) {
386
+ return null;
387
+ }
388
+
389
+ // Wait load items (if local)
390
+ if (!this.props.list.isRemote && !this.props.list.items) {
391
+ return null;
392
+ }
393
+
394
+ const outputProps = {
395
+ isLoading: _get(this.props, 'list.isLoading'),
396
+ searchForm: this.props.searchForm,
397
+ items: this.props.list.items,
398
+ emptyNode: this.renderEmpty(),
399
+ paginationNode: this.renderPagination(),
400
+ paginationPosition: this.props._pagination.position,
401
+ paginationSizeNode: this.renderPaginationSize(),
402
+ paginationSizePosition: this.props._paginationSize.position,
403
+ layoutNode: this.renderLayoutNames(),
404
+ layoutPosition: this.props._layout.position,
405
+ layoutSelected: _get(this.props.formValues, this.props._layout.attribute) || null,
406
+ outsideSearchFormNode: this.renderOutsideSearchForm(),
407
+ fetch: this._onFetch,
408
+ onSort: this._onSortChange,
409
+ } as IListHocOutput;
410
+
411
+ const Form = require('../ui/form/Form').default;
412
+ return (
413
+ <>
414
+ <Form formId={getFormId(this.props)}/>
415
+ <WrappedComponent
416
+ {...this.props}
417
+ {...outputProps}
418
+ />
419
+ </>
420
+ );
421
+ }
422
+
423
+ renderEmpty() {
424
+ if (this.props.list.isLoading) {
425
+ return null;
426
+ }
427
+ if (!this.props.list.items || this.props.list.items.length > 0) {
428
+ return null;
429
+ }
430
+ if (this.props._empty.enable === false) {
431
+ return null;
432
+ }
433
+
434
+ const Empty = require('../ui/list/Empty').default;
435
+ return (
436
+ <Empty
437
+ {...this.props}
438
+ {...this.props._empty}
439
+ />
440
+ );
441
+ }
442
+
443
+ renderPagination() {
444
+ if (this.props._pagination.enable === false) {
445
+ return null;
446
+ }
447
+ const page = _get(this.props.formValues, this.props._pagination.attribute) || null;
448
+ const pageSize = _get(this.props.formValues, this.props._paginationSize.attribute) || null;
449
+ if (!page || !pageSize || !this.props.list.items || this.props.list.total <= pageSize) {
450
+ return null;
451
+ }
452
+
453
+ const Pagination = require('../ui/list/Pagination').default;
454
+ return (
455
+ <Pagination
456
+ {...this.props}
457
+ {...this.props._pagination}
458
+ page={page}
459
+ pageSize={pageSize}
460
+ total={this.props.list.total}
461
+ onChange={this._onPageChange}
462
+ />
463
+ );
464
+ }
465
+
466
+ renderPaginationSize() {
467
+ if (this.props._paginationSize.enable === false) {
468
+ return null;
469
+ }
470
+ if (!this.props.list.items || this.props.list.items.length === 0) {
471
+ return null;
472
+ }
473
+
474
+ const PaginationSize = require('../ui/list/PaginationSize').default;
475
+ return (
476
+ <div>
477
+ <PaginationSize
478
+ {...this.props}
479
+ {...this.props._paginationSize}
480
+ onChange={this._onPageSizeChange}
481
+ />
482
+ </div>
483
+ );
484
+ }
485
+
486
+ renderLayoutNames() {
487
+ if (this.props._layout.enable === false) {
488
+ return null;
489
+ }
490
+
491
+ const NavComponent = this.props._layout.view || require('../ui/nav/Nav').default;
492
+ const layoutName = _get(this.props.formValues, this.props._layout.attribute) || null;
493
+ return (
494
+ <NavComponent
495
+ {...this.props._layout}
496
+ activeTab={layoutName}
497
+ onChange={this._onLayoutChange}
498
+ />
499
+ );
500
+ }
501
+
502
+ renderOutsideSearchForm() {
503
+ if (!this.props.searchForm || !this.props.searchForm.fields) {
504
+ return null;
505
+ }
506
+ if (this.props.searchForm.layout === 'table') {
507
+ return null;
508
+ }
509
+ if ((this.props.scope || []).includes('model') && !this.props.list.isFetched) {
510
+ return null;
511
+ }
512
+
513
+ const Form = require('../ui/form/Form').default;
514
+ return (
515
+ <Form
516
+ submitLabel={__('Найти')}
517
+ {...this.props.searchForm}
518
+ formId={getFormId(this.props)}
519
+ model={this.props._searchModel}
520
+ addressBar={false}
521
+ onSubmit={() => this._onFetch()}
522
+ />
523
+ );
524
+ }
525
+
526
+ _onFetch(params = {}) {
527
+ this.props.dispatch(listFetch(this.props.listId, params));
528
+ }
529
+
530
+ _onPageChange(value) {
531
+ this.props.dispatch(change(getFormId(this.props), this.props._pagination.attribute, value));
532
+ }
533
+
534
+ _onPageSizeChange(value) {
535
+ this.props.dispatch(change(getFormId(this.props), this.props._paginationSize.attribute, value));
536
+ }
537
+
538
+ _onSortChange(value) {
539
+ this.props.dispatch(change(getFormId(this.props), this.props._sort.attribute, value));
540
+ }
541
+
542
+ _onLayoutChange(value) {
543
+ this.props.clientStorage.set(this.props._layout.attribute, value);
544
+ this.props.dispatch(change(getFormId(this.props), this.props._layout.attribute, value));
545
+ }
546
+ }
547
+ )
548
+ )
549
+ )
@@ -0,0 +1,60 @@
1
+ import * as React from 'react';
2
+ import _isEqual from 'lodash-es/isEqual';
3
+
4
+ /**
5
+ * Normalize HOC
6
+ * Приводит данные к единому виду. Используется, когда данные в `props` могут быть записаны в нескольких форматах. На
7
+ * выходе в отдельный `props` будут прокидываться "нормализованные" данные. При обновлении поля с оригинальными данными,
8
+ * процесс нормализации будет повторяться.
9
+ */
10
+ export interface INormalizeHocInput {
11
+
12
+ }
13
+
14
+ export interface INormalizeHocOutput {
15
+
16
+ }
17
+
18
+ export interface INormalizeHocConfig {
19
+ fromKey: string,
20
+ toKey: string,
21
+ normalizer: (value: any, props: any) => any,
22
+ }
23
+
24
+ export default (configs: INormalizeHocConfig | INormalizeHocConfig[]): any => WrappedComponent =>
25
+ class NormalizeHoc extends React.PureComponent<INormalizeHocInput> {
26
+ static WrappedComponent = WrappedComponent;
27
+
28
+ constructor(props) {
29
+ super(props);
30
+
31
+ this.state = this._normalize([].concat(configs), this.props);
32
+ }
33
+
34
+ componentDidUpdate(prevProps: Readonly<{}>) {
35
+ const toNormalize = [].concat(configs).filter(config => !_isEqual(prevProps[config.fromKey], this.props[config.fromKey]));
36
+ if (toNormalize.length > 0) {
37
+ this.setState(this._normalize(toNormalize, this.props));
38
+ }
39
+ }
40
+
41
+ render() {
42
+ return (
43
+ <WrappedComponent
44
+ {...this.props}
45
+ {...this.state}
46
+ />
47
+ );
48
+ }
49
+
50
+ _normalize(configs: INormalizeHocConfig[], props) {
51
+ const data = {};
52
+ configs.map(config => {
53
+ data[config.toKey] = config.normalizer(
54
+ props[config.fromKey],
55
+ {...this.props, ...this.state, ...data}
56
+ );
57
+ });
58
+ return data;
59
+ }
60
+ }
package/hoc/props.tsx ADDED
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import _isFunction from 'lodash-es/isFunction';
3
+
4
+ /**
5
+ * Props HOC
6
+ * Добавляет на выход переданные первым аргументом пропсы. Может использоваться, например, при необходимости передачи
7
+ * пропсов для ниже стоящих декораторов.
8
+ */
9
+ export interface IPropsHocInput {
10
+
11
+ }
12
+
13
+ export interface IPropsHocOutput {
14
+
15
+ }
16
+
17
+ export default (customProps): any => WrappedComponent =>
18
+ class PropsHoc extends React.PureComponent<IPropsHocInput> {
19
+ static WrappedComponent = WrappedComponent;
20
+
21
+ render() {
22
+ const props = _isFunction(customProps)
23
+ ? customProps(this.props)
24
+ : customProps;
25
+ return <WrappedComponent {...this.props} {...props} />;
26
+ }
27
+ }