@hrbolek/uoisfrontend-template 0.6.0

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 (581) hide show
  1. package/index.html +104 -0
  2. package/package.json +24 -0
  3. package/src/Base/Components/Attribute.jsx +51 -0
  4. package/src/Base/Components/CardCapsule.jsx +353 -0
  5. package/src/Base/Components/Col.jsx +36 -0
  6. package/src/Base/Components/ConfirmEdit.jsx +61 -0
  7. package/src/Base/Components/CopyButton.jsx +33 -0
  8. package/src/Base/Components/LargeCard.jsx +22 -0
  9. package/src/Base/Components/Link.jsx +42 -0
  10. package/src/Base/Components/LiveEdit.jsx +64 -0
  11. package/src/Base/Components/MediumCard.jsx +30 -0
  12. package/src/Base/Components/MediumContent.jsx +74 -0
  13. package/src/Base/Components/MediumEditableContent.jsx +52 -0
  14. package/src/Base/Components/ProxyLink.jsx +132 -0
  15. package/src/Base/Components/Row.jsx +23 -0
  16. package/src/Base/Components/Table.jsx +275 -0
  17. package/src/Base/Components/index.js +14 -0
  18. package/src/Base/Components/style.js +278 -0
  19. package/src/Base/FormControls/Collapsible.jsx +46 -0
  20. package/src/Base/FormControls/Dialog.jsx +75 -0
  21. package/src/Base/FormControls/EntityLookup.jsx +175 -0
  22. package/src/Base/FormControls/Filter.jsx +834 -0
  23. package/src/Base/FormControls/Input.jsx +163 -0
  24. package/src/Base/FormControls/Label.jsx +40 -0
  25. package/src/Base/FormControls/Select.jsx +150 -0
  26. package/src/Base/FormControls/TextArea.jsx +86 -0
  27. package/src/Base/FormControls/index.js +8 -0
  28. package/src/Base/Helpers/AsyncStateIndicator.jsx +9 -0
  29. package/src/Base/Helpers/GQLEntityProvider.jsx +163 -0
  30. package/src/Base/Helpers/NavigationHistoryProvider.jsx +178 -0
  31. package/src/Base/Helpers/PlaceChild.jsx +13 -0
  32. package/src/Base/Helpers/generateQuery.js +508 -0
  33. package/src/Base/Helpers/index.js +5 -0
  34. package/src/Base/Mutations/Create.jsx +152 -0
  35. package/src/Base/Mutations/Delete.jsx +237 -0
  36. package/src/Base/Mutations/General.jsx +241 -0
  37. package/src/Base/Mutations/InteractiveMutations.jsx +32 -0
  38. package/src/Base/Mutations/Update.jsx +270 -0
  39. package/src/Base/Mutations/helpers.jsx +7 -0
  40. package/src/Base/Mutations/index.js +5 -0
  41. package/src/Base/Pages/Page.jsx +235 -0
  42. package/src/Base/Pages/PageCatch.jsx +235 -0
  43. package/src/Base/Pages/PageNavbar.jsx +70 -0
  44. package/src/Base/Pages/PageVector.jsx +229 -0
  45. package/src/Base/Pages/RouterSegment.jsx +66 -0
  46. package/src/Base/Pages/index.js +5 -0
  47. package/src/Base/Queries/DeleteAsyncAction.jsx +32 -0
  48. package/src/Base/Queries/Fragments.jsx +101 -0
  49. package/src/Base/Queries/InsertAsyncAction.jsx +40 -0
  50. package/src/Base/Queries/ReadAsyncAction.jsx +44 -0
  51. package/src/Base/Queries/ReadPageAsyncAction.jsx +16 -0
  52. package/src/Base/Queries/SearchAsyncAction.jsx +16 -0
  53. package/src/Base/Queries/UpdateAsyncAction.jsx +40 -0
  54. package/src/Base/Queries/index.js +6 -0
  55. package/src/Base/Scalars/ScalarAttribute.jsx +49 -0
  56. package/src/Base/Scalars/index.js +1 -0
  57. package/src/Base/Vectors/VectorAttribute.jsx +137 -0
  58. package/src/Base/Vectors/index.js +1 -0
  59. package/src/Base/index.js +32 -0
  60. package/src/GroupGQLModel/Components/CUDButton.jsx +128 -0
  61. package/src/GroupGQLModel/Components/CardCapsule.jsx +44 -0
  62. package/src/GroupGQLModel/Components/Children.jsx +31 -0
  63. package/src/GroupGQLModel/Components/ConfirmEdit.jsx +61 -0
  64. package/src/GroupGQLModel/Components/Filter.jsx +14 -0
  65. package/src/GroupGQLModel/Components/LargeCard.jsx +68 -0
  66. package/src/GroupGQLModel/Components/Link.jsx +54 -0
  67. package/src/GroupGQLModel/Components/LiveEdit.jsx +111 -0
  68. package/src/GroupGQLModel/Components/MediumCard.jsx +51 -0
  69. package/src/GroupGQLModel/Components/MediumContent.jsx +56 -0
  70. package/src/GroupGQLModel/Components/MediumEditableContent.jsx +52 -0
  71. package/src/GroupGQLModel/Components/Table.jsx +70 -0
  72. package/src/GroupGQLModel/Components/index.js +14 -0
  73. package/src/GroupGQLModel/Mutations/AddMembership.jsx +156 -0
  74. package/src/GroupGQLModel/Mutations/Create.jsx +67 -0
  75. package/src/GroupGQLModel/Mutations/Delete.jsx +81 -0
  76. package/src/GroupGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  77. package/src/GroupGQLModel/Mutations/Update.jsx +74 -0
  78. package/src/GroupGQLModel/Pages/PageBase.jsx +56 -0
  79. package/src/GroupGQLModel/Pages/PageCreateItem.jsx +27 -0
  80. package/src/GroupGQLModel/Pages/PageDeleteItem.jsx +16 -0
  81. package/src/GroupGQLModel/Pages/PageNavbar.jsx +264 -0
  82. package/src/GroupGQLModel/Pages/PageReadItem.jsx +12 -0
  83. package/src/GroupGQLModel/Pages/PageReadItemEx.jsx +57 -0
  84. package/src/GroupGQLModel/Pages/PageUpdateItem.jsx +14 -0
  85. package/src/GroupGQLModel/Pages/PageVector.jsx +80 -0
  86. package/src/GroupGQLModel/Pages/RouterSegment.jsx +85 -0
  87. package/src/GroupGQLModel/Pages/index.js +2 -0
  88. package/src/GroupGQLModel/Queries/DeleteAsyncAction.jsx +22 -0
  89. package/src/GroupGQLModel/Queries/Fragments.jsx +129 -0
  90. package/src/GroupGQLModel/Queries/InsertAsyncAction.jsx +43 -0
  91. package/src/GroupGQLModel/Queries/ReadAsyncAction.jsx +44 -0
  92. package/src/GroupGQLModel/Queries/ReadPageAsyncAction.jsx +18 -0
  93. package/src/GroupGQLModel/Queries/SearchAsyncAction.jsx +15 -0
  94. package/src/GroupGQLModel/Queries/UpdateAsyncAction.jsx +56 -0
  95. package/src/GroupGQLModel/Queries/index.js +6 -0
  96. package/src/GroupGQLModel/Scalars/GroupRoles.jsx +69 -0
  97. package/src/GroupGQLModel/Scalars/MasterGroup.jsx +15 -0
  98. package/src/GroupGQLModel/Scalars/RBACObject.jsx +233 -0
  99. package/src/GroupGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  100. package/src/GroupGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  101. package/src/GroupGQLModel/Scalars/index.js +1 -0
  102. package/src/GroupGQLModel/Vectors/GroupMemberships.jsx +115 -0
  103. package/src/GroupGQLModel/Vectors/GroupRoles.jsx +112 -0
  104. package/src/GroupGQLModel/Vectors/GroupRolesOn.jsx +113 -0
  105. package/src/GroupGQLModel/Vectors/GroupSubgroups.jsx +97 -0
  106. package/src/GroupGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  107. package/src/GroupGQLModel/Vectors/VectorAttribute.jsx +56 -0
  108. package/src/GroupGQLModel/Vectors/index.js +1 -0
  109. package/src/GroupGQLModel/index.js +7 -0
  110. package/src/GroupTypeGQLModel/Components/CUDButton.jsx +128 -0
  111. package/src/GroupTypeGQLModel/Components/CardCapsule.jsx +43 -0
  112. package/src/GroupTypeGQLModel/Components/Children.jsx +31 -0
  113. package/src/GroupTypeGQLModel/Components/ConfirmEdit.jsx +61 -0
  114. package/src/GroupTypeGQLModel/Components/Filter.jsx +14 -0
  115. package/src/GroupTypeGQLModel/Components/LargeCard.jsx +49 -0
  116. package/src/GroupTypeGQLModel/Components/Link.jsx +53 -0
  117. package/src/GroupTypeGQLModel/Components/LiveEdit.jsx +111 -0
  118. package/src/GroupTypeGQLModel/Components/MediumCard.jsx +39 -0
  119. package/src/GroupTypeGQLModel/Components/MediumContent.jsx +97 -0
  120. package/src/GroupTypeGQLModel/Components/MediumEditableContent.jsx +35 -0
  121. package/src/GroupTypeGQLModel/Components/Table.jsx +7 -0
  122. package/src/GroupTypeGQLModel/Components/index.js +14 -0
  123. package/src/GroupTypeGQLModel/Mutations/Create.jsx +67 -0
  124. package/src/GroupTypeGQLModel/Mutations/Delete.jsx +80 -0
  125. package/src/GroupTypeGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  126. package/src/GroupTypeGQLModel/Mutations/Update.jsx +74 -0
  127. package/src/GroupTypeGQLModel/Pages/Page.jsx +3 -0
  128. package/src/GroupTypeGQLModel/Pages/PageBase.jsx +26 -0
  129. package/src/GroupTypeGQLModel/Pages/PageCreateItem.jsx +21 -0
  130. package/src/GroupTypeGQLModel/Pages/PageDeleteItem.jsx +13 -0
  131. package/src/GroupTypeGQLModel/Pages/PageNavbar.jsx +148 -0
  132. package/src/GroupTypeGQLModel/Pages/PageReadItem.jsx +28 -0
  133. package/src/GroupTypeGQLModel/Pages/PageUpdateItem.jsx +25 -0
  134. package/src/GroupTypeGQLModel/Pages/PageVector.jsx +83 -0
  135. package/src/GroupTypeGQLModel/Pages/RouterSegment.jsx +68 -0
  136. package/src/GroupTypeGQLModel/Pages/index.js +10 -0
  137. package/src/GroupTypeGQLModel/Queries/DeleteAsyncAction.jsx +27 -0
  138. package/src/GroupTypeGQLModel/Queries/Fragments.jsx +96 -0
  139. package/src/GroupTypeGQLModel/Queries/InsertAsyncAction.jsx +41 -0
  140. package/src/GroupTypeGQLModel/Queries/ReadAsyncAction.jsx +45 -0
  141. package/src/GroupTypeGQLModel/Queries/ReadPageAsyncAction.jsx +14 -0
  142. package/src/GroupTypeGQLModel/Queries/SearchAsyncAction.jsx +16 -0
  143. package/src/GroupTypeGQLModel/Queries/UpdateAsyncAction.jsx +42 -0
  144. package/src/GroupTypeGQLModel/Queries/index.js +6 -0
  145. package/src/GroupTypeGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  146. package/src/GroupTypeGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  147. package/src/GroupTypeGQLModel/Scalars/index.js +1 -0
  148. package/src/GroupTypeGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  149. package/src/GroupTypeGQLModel/Vectors/VectorAttribute.jsx +56 -0
  150. package/src/GroupTypeGQLModel/Vectors/index.js +1 -0
  151. package/src/GroupTypeGQLModel/index.js +6 -0
  152. package/src/MembershipGQLModel/Components/CUDButton.jsx +128 -0
  153. package/src/MembershipGQLModel/Components/CardCapsule.jsx +43 -0
  154. package/src/MembershipGQLModel/Components/Children.jsx +31 -0
  155. package/src/MembershipGQLModel/Components/ConfirmEdit.jsx +61 -0
  156. package/src/MembershipGQLModel/Components/Filter.jsx +14 -0
  157. package/src/MembershipGQLModel/Components/LargeCard.jsx +49 -0
  158. package/src/MembershipGQLModel/Components/Link.jsx +54 -0
  159. package/src/MembershipGQLModel/Components/LiveEdit.jsx +111 -0
  160. package/src/MembershipGQLModel/Components/MediumCard.jsx +39 -0
  161. package/src/MembershipGQLModel/Components/MediumContent.jsx +97 -0
  162. package/src/MembershipGQLModel/Components/MediumEditableContent.jsx +35 -0
  163. package/src/MembershipGQLModel/Components/Table.jsx +7 -0
  164. package/src/MembershipGQLModel/Components/index.js +14 -0
  165. package/src/MembershipGQLModel/Mutations/Create.jsx +67 -0
  166. package/src/MembershipGQLModel/Mutations/Delete.jsx +80 -0
  167. package/src/MembershipGQLModel/Mutations/InteractiveMutations.jsx +31 -0
  168. package/src/MembershipGQLModel/Mutations/Update.jsx +74 -0
  169. package/src/MembershipGQLModel/Mutations/helpers.jsx +7 -0
  170. package/src/MembershipGQLModel/Pages/PageBase.jsx +57 -0
  171. package/src/MembershipGQLModel/Pages/PageCreateItem.jsx +28 -0
  172. package/src/MembershipGQLModel/Pages/PageDeleteItem.jsx +16 -0
  173. package/src/MembershipGQLModel/Pages/PageNavbar.jsx +110 -0
  174. package/src/MembershipGQLModel/Pages/PageReadItem.jsx +11 -0
  175. package/src/MembershipGQLModel/Pages/PageReadItemEx.jsx +42 -0
  176. package/src/MembershipGQLModel/Pages/PageUpdateItem.jsx +14 -0
  177. package/src/MembershipGQLModel/Pages/PageVector.jsx +80 -0
  178. package/src/MembershipGQLModel/Pages/RouterSegment.jsx +73 -0
  179. package/src/MembershipGQLModel/Pages/index.js +2 -0
  180. package/src/MembershipGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
  181. package/src/MembershipGQLModel/Queries/Fragments.jsx +113 -0
  182. package/src/MembershipGQLModel/Queries/InsertAsyncAction.jsx +38 -0
  183. package/src/MembershipGQLModel/Queries/ReadAsyncAction.jsx +44 -0
  184. package/src/MembershipGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
  185. package/src/MembershipGQLModel/Queries/SearchAsyncAction.jsx +16 -0
  186. package/src/MembershipGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
  187. package/src/MembershipGQLModel/Queries/index.js +6 -0
  188. package/src/MembershipGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  189. package/src/MembershipGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  190. package/src/MembershipGQLModel/Scalars/index.js +1 -0
  191. package/src/MembershipGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  192. package/src/MembershipGQLModel/Vectors/VectorAttribute.jsx +56 -0
  193. package/src/MembershipGQLModel/Vectors/index.js +1 -0
  194. package/src/MembershipGQLModel/WhatToDo.md +44 -0
  195. package/src/MembershipGQLModel/index.js +6 -0
  196. package/src/RBACGQLModel/Components/CardCapsule.jsx +43 -0
  197. package/src/RBACGQLModel/Components/Children.jsx +31 -0
  198. package/src/RBACGQLModel/Components/ConfirmEdit.jsx +61 -0
  199. package/src/RBACGQLModel/Components/Filter.jsx +14 -0
  200. package/src/RBACGQLModel/Components/LargeCard.jsx +50 -0
  201. package/src/RBACGQLModel/Components/Link.jsx +54 -0
  202. package/src/RBACGQLModel/Components/LiveEdit.jsx +111 -0
  203. package/src/RBACGQLModel/Components/MediumCard.jsx +39 -0
  204. package/src/RBACGQLModel/Components/MediumContent.jsx +96 -0
  205. package/src/RBACGQLModel/Components/MediumEditableContent.jsx +212 -0
  206. package/src/RBACGQLModel/Components/Table.jsx +7 -0
  207. package/src/RBACGQLModel/Components/index.js +13 -0
  208. package/src/RBACGQLModel/Mutations/Create.jsx +202 -0
  209. package/src/RBACGQLModel/Mutations/Delete.jsx +173 -0
  210. package/src/RBACGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  211. package/src/RBACGQLModel/Mutations/Update.jsx +147 -0
  212. package/src/RBACGQLModel/Mutations/helpers.jsx +7 -0
  213. package/src/RBACGQLModel/Pages/PageBase.jsx +56 -0
  214. package/src/RBACGQLModel/Pages/PageCreateItem.jsx +28 -0
  215. package/src/RBACGQLModel/Pages/PageDeleteItem.jsx +16 -0
  216. package/src/RBACGQLModel/Pages/PageNavbar.jsx +160 -0
  217. package/src/RBACGQLModel/Pages/PageReadItem.jsx +11 -0
  218. package/src/RBACGQLModel/Pages/PageReadItemEx.jsx +42 -0
  219. package/src/RBACGQLModel/Pages/PageUpdateItem.jsx +14 -0
  220. package/src/RBACGQLModel/Pages/PageVector.jsx +80 -0
  221. package/src/RBACGQLModel/Pages/RouterSegment.jsx +72 -0
  222. package/src/RBACGQLModel/Pages/index.js +2 -0
  223. package/src/RBACGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
  224. package/src/RBACGQLModel/Queries/Fragments.jsx +101 -0
  225. package/src/RBACGQLModel/Queries/InsertAsyncAction.jsx +40 -0
  226. package/src/RBACGQLModel/Queries/ReadAsyncAction.jsx +44 -0
  227. package/src/RBACGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
  228. package/src/RBACGQLModel/Queries/SearchAsyncAction.jsx +16 -0
  229. package/src/RBACGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
  230. package/src/RBACGQLModel/Queries/index.js +6 -0
  231. package/src/RBACGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  232. package/src/RBACGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  233. package/src/RBACGQLModel/Scalars/index.js +1 -0
  234. package/src/RBACGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  235. package/src/RBACGQLModel/Vectors/VectorAttribute.jsx +56 -0
  236. package/src/RBACGQLModel/Vectors/index.js +1 -0
  237. package/src/RBACGQLModel/WhatToDo.md +44 -0
  238. package/src/RBACGQLModel/index.js +71 -0
  239. package/src/RoleGQLModel/Components/CUDButton.jsx +128 -0
  240. package/src/RoleGQLModel/Components/CardCapsule.jsx +43 -0
  241. package/src/RoleGQLModel/Components/Children.jsx +31 -0
  242. package/src/RoleGQLModel/Components/ConfirmEdit.jsx +61 -0
  243. package/src/RoleGQLModel/Components/Filter.jsx +14 -0
  244. package/src/RoleGQLModel/Components/LargeCard.jsx +49 -0
  245. package/src/RoleGQLModel/Components/Link.jsx +55 -0
  246. package/src/RoleGQLModel/Components/LiveEdit.jsx +111 -0
  247. package/src/RoleGQLModel/Components/MediumCard.jsx +39 -0
  248. package/src/RoleGQLModel/Components/MediumContent.jsx +97 -0
  249. package/src/RoleGQLModel/Components/MediumEditableContent.jsx +72 -0
  250. package/src/RoleGQLModel/Components/RBACObject.jsx +22 -0
  251. package/src/RoleGQLModel/Components/Table.jsx +82 -0
  252. package/src/RoleGQLModel/Components/index.js +14 -0
  253. package/src/RoleGQLModel/Mutations/AddRoleOnGroup.jsx +117 -0
  254. package/src/RoleGQLModel/Mutations/Create.jsx +67 -0
  255. package/src/RoleGQLModel/Mutations/Delete.jsx +80 -0
  256. package/src/RoleGQLModel/Mutations/InteractiveMutations.jsx +31 -0
  257. package/src/RoleGQLModel/Mutations/Update.jsx +74 -0
  258. package/src/RoleGQLModel/Pages/Page.jsx +3 -0
  259. package/src/RoleGQLModel/Pages/PageBase.jsx +26 -0
  260. package/src/RoleGQLModel/Pages/PageContent.jsx +31 -0
  261. package/src/RoleGQLModel/Pages/PageCreateItem.jsx +21 -0
  262. package/src/RoleGQLModel/Pages/PageDeleteItem.jsx +13 -0
  263. package/src/RoleGQLModel/Pages/PageNavbar.jsx +161 -0
  264. package/src/RoleGQLModel/Pages/PageReadItem.jsx +28 -0
  265. package/src/RoleGQLModel/Pages/PageUpdateItem.jsx +25 -0
  266. package/src/RoleGQLModel/Pages/PageVector.jsx +83 -0
  267. package/src/RoleGQLModel/Pages/RouterSegment.jsx +69 -0
  268. package/src/RoleGQLModel/Pages/index.js +10 -0
  269. package/src/RoleGQLModel/Queries/DeleteAsyncAction.jsx +22 -0
  270. package/src/RoleGQLModel/Queries/Fragments.jsx +123 -0
  271. package/src/RoleGQLModel/Queries/InsertAsyncAction.jsx +45 -0
  272. package/src/RoleGQLModel/Queries/ReadAsyncAction.jsx +45 -0
  273. package/src/RoleGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
  274. package/src/RoleGQLModel/Queries/UpdateAsyncAction.jsx +35 -0
  275. package/src/RoleGQLModel/Queries/index.js +6 -0
  276. package/src/RoleGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  277. package/src/RoleGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  278. package/src/RoleGQLModel/Scalars/index.js +1 -0
  279. package/src/RoleGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  280. package/src/RoleGQLModel/Vectors/VectorAttribute.jsx +56 -0
  281. package/src/RoleGQLModel/Vectors/index.js +1 -0
  282. package/src/RoleGQLModel/index.js +6 -0
  283. package/src/RoleTypeGQLModel/Components/CUDButton.jsx +128 -0
  284. package/src/RoleTypeGQLModel/Components/CardCapsule.jsx +43 -0
  285. package/src/RoleTypeGQLModel/Components/Children.jsx +31 -0
  286. package/src/RoleTypeGQLModel/Components/ConfirmEdit.jsx +61 -0
  287. package/src/RoleTypeGQLModel/Components/Filter.jsx +14 -0
  288. package/src/RoleTypeGQLModel/Components/LargeCard.jsx +49 -0
  289. package/src/RoleTypeGQLModel/Components/Link.jsx +55 -0
  290. package/src/RoleTypeGQLModel/Components/LiveEdit.jsx +111 -0
  291. package/src/RoleTypeGQLModel/Components/MediumCard.jsx +39 -0
  292. package/src/RoleTypeGQLModel/Components/MediumContent.jsx +97 -0
  293. package/src/RoleTypeGQLModel/Components/MediumEditableContent.jsx +35 -0
  294. package/src/RoleTypeGQLModel/Components/Table.jsx +7 -0
  295. package/src/RoleTypeGQLModel/Components/index.js +14 -0
  296. package/src/RoleTypeGQLModel/Mutations/Create.jsx +67 -0
  297. package/src/RoleTypeGQLModel/Mutations/Delete.jsx +80 -0
  298. package/src/RoleTypeGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  299. package/src/RoleTypeGQLModel/Mutations/Update.jsx +74 -0
  300. package/src/RoleTypeGQLModel/Pages/Page.jsx +3 -0
  301. package/src/RoleTypeGQLModel/Pages/PageBase.jsx +56 -0
  302. package/src/RoleTypeGQLModel/Pages/PageCreateItem.jsx +27 -0
  303. package/src/RoleTypeGQLModel/Pages/PageDeleteItem.jsx +16 -0
  304. package/src/RoleTypeGQLModel/Pages/PageNavbar.jsx +148 -0
  305. package/src/RoleTypeGQLModel/Pages/PageReadItem.jsx +11 -0
  306. package/src/RoleTypeGQLModel/Pages/PageUpdateItem.jsx +14 -0
  307. package/src/RoleTypeGQLModel/Pages/PageVector.jsx +79 -0
  308. package/src/RoleTypeGQLModel/Pages/RouterSegment.jsx +69 -0
  309. package/src/RoleTypeGQLModel/Pages/index.js +10 -0
  310. package/src/RoleTypeGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
  311. package/src/RoleTypeGQLModel/Queries/Fragments.jsx +103 -0
  312. package/src/RoleTypeGQLModel/Queries/InsertAsyncAction.jsx +40 -0
  313. package/src/RoleTypeGQLModel/Queries/ReadAsyncAction.jsx +44 -0
  314. package/src/RoleTypeGQLModel/Queries/ReadPageAsyncAction.jsx +13 -0
  315. package/src/RoleTypeGQLModel/Queries/SearchAsyncAction.jsx +29 -0
  316. package/src/RoleTypeGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
  317. package/src/RoleTypeGQLModel/Queries/index.js +6 -0
  318. package/src/RoleTypeGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  319. package/src/RoleTypeGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  320. package/src/RoleTypeGQLModel/Scalars/index.js +1 -0
  321. package/src/RoleTypeGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  322. package/src/RoleTypeGQLModel/Vectors/VectorAttribute.jsx +56 -0
  323. package/src/RoleTypeGQLModel/Vectors/index.js +1 -0
  324. package/src/RoleTypeGQLModel/index.js +6 -0
  325. package/src/StateGQLModel/Components/CardCapsule.jsx +43 -0
  326. package/src/StateGQLModel/Components/Children.jsx +31 -0
  327. package/src/StateGQLModel/Components/ConfirmEdit.jsx +61 -0
  328. package/src/StateGQLModel/Components/Filter.jsx +14 -0
  329. package/src/StateGQLModel/Components/LargeCard.jsx +50 -0
  330. package/src/StateGQLModel/Components/Link.jsx +54 -0
  331. package/src/StateGQLModel/Components/LiveEdit.jsx +111 -0
  332. package/src/StateGQLModel/Components/MediumCard.jsx +39 -0
  333. package/src/StateGQLModel/Components/MediumContent.jsx +96 -0
  334. package/src/StateGQLModel/Components/MediumEditableContent.jsx +36 -0
  335. package/src/StateGQLModel/Components/Table.jsx +7 -0
  336. package/src/StateGQLModel/Components/index.js +13 -0
  337. package/src/StateGQLModel/Mutations/Create.jsx +79 -0
  338. package/src/StateGQLModel/Mutations/Delete.jsx +87 -0
  339. package/src/StateGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  340. package/src/StateGQLModel/Mutations/Update.jsx +76 -0
  341. package/src/StateGQLModel/Mutations/helpers.jsx +7 -0
  342. package/src/StateGQLModel/Pages/PageBase.jsx +56 -0
  343. package/src/StateGQLModel/Pages/PageCreateItem.jsx +28 -0
  344. package/src/StateGQLModel/Pages/PageDeleteItem.jsx +16 -0
  345. package/src/StateGQLModel/Pages/PageNavbar.jsx +160 -0
  346. package/src/StateGQLModel/Pages/PageReadItem.jsx +11 -0
  347. package/src/StateGQLModel/Pages/PageReadItemEx.jsx +42 -0
  348. package/src/StateGQLModel/Pages/PageUpdateItem.jsx +14 -0
  349. package/src/StateGQLModel/Pages/PageVector.jsx +80 -0
  350. package/src/StateGQLModel/Pages/RouterSegment.jsx +72 -0
  351. package/src/StateGQLModel/Pages/index.js +2 -0
  352. package/src/StateGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
  353. package/src/StateGQLModel/Queries/Fragments.jsx +109 -0
  354. package/src/StateGQLModel/Queries/InsertAsyncAction.jsx +104 -0
  355. package/src/StateGQLModel/Queries/ReadAsyncAction.jsx +48 -0
  356. package/src/StateGQLModel/Queries/ReadPageAsyncAction.jsx +23 -0
  357. package/src/StateGQLModel/Queries/SearchAsyncAction.jsx +16 -0
  358. package/src/StateGQLModel/Queries/UpdateAsyncAction.jsx +106 -0
  359. package/src/StateGQLModel/Queries/index.js +6 -0
  360. package/src/StateGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  361. package/src/StateGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  362. package/src/StateGQLModel/Scalars/index.js +1 -0
  363. package/src/StateGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  364. package/src/StateGQLModel/Vectors/VectorAttribute.jsx +56 -0
  365. package/src/StateGQLModel/Vectors/index.js +1 -0
  366. package/src/StateGQLModel/index.js +71 -0
  367. package/src/StateMachineGQLModel/Components/CardCapsule.jsx +43 -0
  368. package/src/StateMachineGQLModel/Components/Children.jsx +31 -0
  369. package/src/StateMachineGQLModel/Components/ConfirmEdit.jsx +61 -0
  370. package/src/StateMachineGQLModel/Components/Filter.jsx +14 -0
  371. package/src/StateMachineGQLModel/Components/LargeCard.jsx +50 -0
  372. package/src/StateMachineGQLModel/Components/Link.jsx +54 -0
  373. package/src/StateMachineGQLModel/Components/LiveEdit.jsx +111 -0
  374. package/src/StateMachineGQLModel/Components/MediumCard.jsx +39 -0
  375. package/src/StateMachineGQLModel/Components/MediumContent.jsx +96 -0
  376. package/src/StateMachineGQLModel/Components/MediumEditableContent.jsx +989 -0
  377. package/src/StateMachineGQLModel/Components/Table.jsx +7 -0
  378. package/src/StateMachineGQLModel/Components/index.js +13 -0
  379. package/src/StateMachineGQLModel/Mutations/Create.jsx +79 -0
  380. package/src/StateMachineGQLModel/Mutations/Delete.jsx +80 -0
  381. package/src/StateMachineGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  382. package/src/StateMachineGQLModel/Mutations/Update.jsx +74 -0
  383. package/src/StateMachineGQLModel/Mutations/helpers.jsx +7 -0
  384. package/src/StateMachineGQLModel/Pages/PageBase.jsx +56 -0
  385. package/src/StateMachineGQLModel/Pages/PageCreateItem.jsx +28 -0
  386. package/src/StateMachineGQLModel/Pages/PageDeleteItem.jsx +16 -0
  387. package/src/StateMachineGQLModel/Pages/PageNavbar.jsx +160 -0
  388. package/src/StateMachineGQLModel/Pages/PageReadItem.jsx +11 -0
  389. package/src/StateMachineGQLModel/Pages/PageReadItemEx.jsx +42 -0
  390. package/src/StateMachineGQLModel/Pages/PageUpdateItem.jsx +14 -0
  391. package/src/StateMachineGQLModel/Pages/PageVector.jsx +80 -0
  392. package/src/StateMachineGQLModel/Pages/RouterSegment.jsx +72 -0
  393. package/src/StateMachineGQLModel/Pages/index.js +2 -0
  394. package/src/StateMachineGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
  395. package/src/StateMachineGQLModel/Queries/Fragments.jsx +148 -0
  396. package/src/StateMachineGQLModel/Queries/InsertAsyncAction.jsx +44 -0
  397. package/src/StateMachineGQLModel/Queries/ReadAsyncAction.jsx +48 -0
  398. package/src/StateMachineGQLModel/Queries/ReadPageAsyncAction.jsx +23 -0
  399. package/src/StateMachineGQLModel/Queries/SearchAsyncAction.jsx +16 -0
  400. package/src/StateMachineGQLModel/Queries/UpdateAsyncAction.jsx +40 -0
  401. package/src/StateMachineGQLModel/Queries/index.js +6 -0
  402. package/src/StateMachineGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  403. package/src/StateMachineGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  404. package/src/StateMachineGQLModel/Scalars/index.js +1 -0
  405. package/src/StateMachineGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  406. package/src/StateMachineGQLModel/Vectors/VectorAttribute.jsx +56 -0
  407. package/src/StateMachineGQLModel/Vectors/index.js +1 -0
  408. package/src/StateMachineGQLModel/WhatToDo.md +44 -0
  409. package/src/StateMachineGQLModel/index.js +71 -0
  410. package/src/StateTransitionGQLModel/Components/CardCapsule.jsx +43 -0
  411. package/src/StateTransitionGQLModel/Components/Children.jsx +31 -0
  412. package/src/StateTransitionGQLModel/Components/ConfirmEdit.jsx +61 -0
  413. package/src/StateTransitionGQLModel/Components/Filter.jsx +14 -0
  414. package/src/StateTransitionGQLModel/Components/LargeCard.jsx +50 -0
  415. package/src/StateTransitionGQLModel/Components/Link.jsx +54 -0
  416. package/src/StateTransitionGQLModel/Components/LiveEdit.jsx +111 -0
  417. package/src/StateTransitionGQLModel/Components/MediumCard.jsx +39 -0
  418. package/src/StateTransitionGQLModel/Components/MediumContent.jsx +96 -0
  419. package/src/StateTransitionGQLModel/Components/MediumEditableContent.jsx +35 -0
  420. package/src/StateTransitionGQLModel/Components/Table.jsx +7 -0
  421. package/src/StateTransitionGQLModel/Components/index.js +13 -0
  422. package/src/StateTransitionGQLModel/Mutations/Create.jsx +79 -0
  423. package/src/StateTransitionGQLModel/Mutations/Delete.jsx +80 -0
  424. package/src/StateTransitionGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  425. package/src/StateTransitionGQLModel/Mutations/Update.jsx +75 -0
  426. package/src/StateTransitionGQLModel/Mutations/helpers.jsx +7 -0
  427. package/src/StateTransitionGQLModel/Pages/PageBase.jsx +56 -0
  428. package/src/StateTransitionGQLModel/Pages/PageCreateItem.jsx +28 -0
  429. package/src/StateTransitionGQLModel/Pages/PageDeleteItem.jsx +16 -0
  430. package/src/StateTransitionGQLModel/Pages/PageNavbar.jsx +160 -0
  431. package/src/StateTransitionGQLModel/Pages/PageReadItem.jsx +11 -0
  432. package/src/StateTransitionGQLModel/Pages/PageReadItemEx.jsx +42 -0
  433. package/src/StateTransitionGQLModel/Pages/PageUpdateItem.jsx +14 -0
  434. package/src/StateTransitionGQLModel/Pages/PageVector.jsx +80 -0
  435. package/src/StateTransitionGQLModel/Pages/RouterSegment.jsx +72 -0
  436. package/src/StateTransitionGQLModel/Pages/index.js +2 -0
  437. package/src/StateTransitionGQLModel/Queries/DeleteAsyncAction.jsx +32 -0
  438. package/src/StateTransitionGQLModel/Queries/Fragments.jsx +150 -0
  439. package/src/StateTransitionGQLModel/Queries/InsertAsyncAction.jsx +107 -0
  440. package/src/StateTransitionGQLModel/Queries/ReadAsyncAction.jsx +48 -0
  441. package/src/StateTransitionGQLModel/Queries/ReadPageAsyncAction.jsx +23 -0
  442. package/src/StateTransitionGQLModel/Queries/SearchAsyncAction.jsx +16 -0
  443. package/src/StateTransitionGQLModel/Queries/UpdateAsyncAction.jsx +109 -0
  444. package/src/StateTransitionGQLModel/Queries/index.js +6 -0
  445. package/src/StateTransitionGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  446. package/src/StateTransitionGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  447. package/src/StateTransitionGQLModel/Scalars/index.js +1 -0
  448. package/src/StateTransitionGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  449. package/src/StateTransitionGQLModel/Vectors/VectorAttribute.jsx +56 -0
  450. package/src/StateTransitionGQLModel/Vectors/index.js +1 -0
  451. package/src/StateTransitionGQLModel/WhatToDo.md +44 -0
  452. package/src/StateTransitionGQLModel/index.js +71 -0
  453. package/src/Template/Attributes/TemplateTrivialAttribute.jsx +21 -0
  454. package/src/Template/Attributes/index.js +1 -0
  455. package/src/Template/Components/CUDButton.jsx +128 -0
  456. package/src/Template/Components/CardCapsule.jsx +43 -0
  457. package/src/Template/Components/Children.jsx +31 -0
  458. package/src/Template/Components/ConfirmEdit.jsx +61 -0
  459. package/src/Template/Components/LargeCard.jsx +48 -0
  460. package/src/Template/Components/Link.jsx +41 -0
  461. package/src/Template/Components/LiveEdit.jsx +111 -0
  462. package/src/Template/Components/MediumCard.jsx +39 -0
  463. package/src/Template/Components/MediumContent.jsx +97 -0
  464. package/src/Template/Components/MediumEditableContent.jsx +36 -0
  465. package/src/Template/Components/Table.jsx +7 -0
  466. package/src/Template/Components/index.js +14 -0
  467. package/src/Template/Pages/Page.jsx +28 -0
  468. package/src/Template/Pages/PageCapsule.jsx +13 -0
  469. package/src/Template/Pages/PageContent.jsx +34 -0
  470. package/src/Template/Pages/PageEdit.jsx +17 -0
  471. package/src/Template/Pages/PageNavbar.jsx +110 -0
  472. package/src/Template/Pages/RouterSegment.jsx +52 -0
  473. package/src/Template/Pages/VectorPage.jsx +133 -0
  474. package/src/Template/Pages/index.js +6 -0
  475. package/src/Template/Queries/DeleteAsyncAction.jsx +22 -0
  476. package/src/Template/Queries/Fragments.jsx +92 -0
  477. package/src/Template/Queries/InsertAsyncAction.jsx +22 -0
  478. package/src/Template/Queries/ReadAsyncAction.jsx +45 -0
  479. package/src/Template/Queries/ReadPageAsyncAction.jsx +13 -0
  480. package/src/Template/Queries/UpdateAsyncAction.jsx +76 -0
  481. package/src/Template/Queries/index.js +6 -0
  482. package/src/Template/Scalars/ScalarAttribute.jsx +54 -0
  483. package/src/Template/Scalars/TemplateScalarAttribute.jsx +88 -0
  484. package/src/Template/Scalars/index.js +1 -0
  485. package/src/Template/Vectors/TemplateVectorsAttribute.jsx +326 -0
  486. package/src/Template/Vectors/VectorAttribute.jsx +56 -0
  487. package/src/Template/Vectors/index.js +1 -0
  488. package/src/Template/index.js +71 -0
  489. package/src/UserGQLModel/Components/CUDButton.jsx +128 -0
  490. package/src/UserGQLModel/Components/CardCapsule.jsx +43 -0
  491. package/src/UserGQLModel/Components/ConfirmEdit.jsx +61 -0
  492. package/src/UserGQLModel/Components/Filter.jsx +15 -0
  493. package/src/UserGQLModel/Components/LargeCard.jsx +82 -0
  494. package/src/UserGQLModel/Components/Link.jsx +54 -0
  495. package/src/UserGQLModel/Components/LiveEdit.jsx +111 -0
  496. package/src/UserGQLModel/Components/MediumCard.jsx +40 -0
  497. package/src/UserGQLModel/Components/MediumContent.jsx +43 -0
  498. package/src/UserGQLModel/Components/MediumEditableContent.jsx +57 -0
  499. package/src/UserGQLModel/Components/Table.jsx +7 -0
  500. package/src/UserGQLModel/Components/index.js +13 -0
  501. package/src/UserGQLModel/Mutations/AddMembership.jsx +136 -0
  502. package/src/UserGQLModel/Mutations/Create.jsx +68 -0
  503. package/src/UserGQLModel/Mutations/Delete.jsx +81 -0
  504. package/src/UserGQLModel/Mutations/InteractiveMutations.jsx +30 -0
  505. package/src/UserGQLModel/Mutations/Update.jsx +68 -0
  506. package/src/UserGQLModel/Mutations/helpers.jsx +7 -0
  507. package/src/UserGQLModel/Pages/PageAddMembership.jsx +15 -0
  508. package/src/UserGQLModel/Pages/PageBase.jsx +56 -0
  509. package/src/UserGQLModel/Pages/PageCreateItem.jsx +27 -0
  510. package/src/UserGQLModel/Pages/PageDeleteItem.jsx +16 -0
  511. package/src/UserGQLModel/Pages/PageNavbar.jsx +146 -0
  512. package/src/UserGQLModel/Pages/PageReadItem.jsx +12 -0
  513. package/src/UserGQLModel/Pages/PageReadItemEx.jsx +62 -0
  514. package/src/UserGQLModel/Pages/PageUpdateItem.jsx +14 -0
  515. package/src/UserGQLModel/Pages/PageVector.jsx +78 -0
  516. package/src/UserGQLModel/Pages/RouterSegment.jsx +77 -0
  517. package/src/UserGQLModel/Pages/index.js +9 -0
  518. package/src/UserGQLModel/Queries/DeleteAsyncAction.jsx +22 -0
  519. package/src/UserGQLModel/Queries/Fragments.jsx +114 -0
  520. package/src/UserGQLModel/Queries/InsertAsyncAction.jsx +22 -0
  521. package/src/UserGQLModel/Queries/ReadAsyncAction.jsx +45 -0
  522. package/src/UserGQLModel/Queries/ReadPageAsyncAction.jsx +17 -0
  523. package/src/UserGQLModel/Queries/SearchAsyncAction.jsx +15 -0
  524. package/src/UserGQLModel/Queries/UpdateAsyncAction.jsx +76 -0
  525. package/src/UserGQLModel/Queries/index.js +6 -0
  526. package/src/UserGQLModel/Scalars/ScalarAttribute.jsx +54 -0
  527. package/src/UserGQLModel/Scalars/TemplateScalarAttribute.jsx +88 -0
  528. package/src/UserGQLModel/Scalars/index.js +1 -0
  529. package/src/UserGQLModel/Vectors/Roles.jsx +23 -0
  530. package/src/UserGQLModel/Vectors/TemplateVectorsAttribute.jsx +326 -0
  531. package/src/UserGQLModel/Vectors/UserMemberships.jsx +56 -0
  532. package/src/UserGQLModel/Vectors/UserRoles.jsx +81 -0
  533. package/src/UserGQLModel/Vectors/VectorAttribute.jsx +56 -0
  534. package/src/UserGQLModel/Vectors/index.js +1 -0
  535. package/src/UserGQLModel/index.js +6 -0
  536. package/src/_Template/Components/CardCapsule.jsx +43 -0
  537. package/src/_Template/Components/Children.jsx +31 -0
  538. package/src/_Template/Components/ConfirmEdit.jsx +61 -0
  539. package/src/_Template/Components/Filter.jsx +14 -0
  540. package/src/_Template/Components/LargeCard.jsx +50 -0
  541. package/src/_Template/Components/Link.jsx +54 -0
  542. package/src/_Template/Components/LiveEdit.jsx +111 -0
  543. package/src/_Template/Components/MediumCard.jsx +39 -0
  544. package/src/_Template/Components/MediumContent.jsx +96 -0
  545. package/src/_Template/Components/MediumEditableContent.jsx +35 -0
  546. package/src/_Template/Components/Table.jsx +7 -0
  547. package/src/_Template/Components/index.js +13 -0
  548. package/src/_Template/Mutations/Create.jsx +202 -0
  549. package/src/_Template/Mutations/Delete.jsx +173 -0
  550. package/src/_Template/Mutations/InteractiveMutations.jsx +30 -0
  551. package/src/_Template/Mutations/Update.jsx +147 -0
  552. package/src/_Template/Mutations/helpers.jsx +7 -0
  553. package/src/_Template/Pages/PageBase.jsx +56 -0
  554. package/src/_Template/Pages/PageCreateItem.jsx +28 -0
  555. package/src/_Template/Pages/PageDeleteItem.jsx +16 -0
  556. package/src/_Template/Pages/PageNavbar.jsx +160 -0
  557. package/src/_Template/Pages/PageReadItem.jsx +11 -0
  558. package/src/_Template/Pages/PageReadItemEx.jsx +42 -0
  559. package/src/_Template/Pages/PageUpdateItem.jsx +14 -0
  560. package/src/_Template/Pages/PageVector.jsx +80 -0
  561. package/src/_Template/Pages/RouterSegment.jsx +72 -0
  562. package/src/_Template/Pages/index.js +2 -0
  563. package/src/_Template/Queries/DeleteAsyncAction.jsx +32 -0
  564. package/src/_Template/Queries/Fragments.jsx +101 -0
  565. package/src/_Template/Queries/InsertAsyncAction.jsx +40 -0
  566. package/src/_Template/Queries/ReadAsyncAction.jsx +44 -0
  567. package/src/_Template/Queries/ReadPageAsyncAction.jsx +13 -0
  568. package/src/_Template/Queries/SearchAsyncAction.jsx +16 -0
  569. package/src/_Template/Queries/UpdateAsyncAction.jsx +40 -0
  570. package/src/_Template/Queries/index.js +6 -0
  571. package/src/_Template/Scalars/ScalarAttribute.jsx +54 -0
  572. package/src/_Template/Scalars/TemplateScalarAttribute.jsx +88 -0
  573. package/src/_Template/Scalars/index.js +1 -0
  574. package/src/_Template/Vectors/TemplateVectorsAttribute.jsx +326 -0
  575. package/src/_Template/Vectors/VectorAttribute.jsx +56 -0
  576. package/src/_Template/Vectors/index.js +1 -0
  577. package/src/_Template/WhatToDo.md +44 -0
  578. package/src/_Template/index.js +71 -0
  579. package/src/index.js +8 -0
  580. package/src/uriroot.js +158 -0
  581. package/vite.config.js +47 -0
@@ -0,0 +1,202 @@
1
+ import { CreateURI, MediumEditableContent, ReadItemURI } from "../Components"
2
+ import { InsertAsyncAction } from "../Queries"
3
+ import {
4
+ CreateBody as BaseCreateBody,
5
+ CreateButton as BaseCreateButton,
6
+ CreateDialog as BaseCreateDialog,
7
+ CreateLink as BaseCreateLink
8
+ } from "../../Base/Mutations/Create"
9
+
10
+ const DefaultContent = (props) => <MediumEditableContent {...props} />
11
+ const MutationAsyncAction = InsertAsyncAction
12
+
13
+ const permissions = {
14
+ oneOfRoles: ["superadmin"],
15
+ mode: "absolute",
16
+ }
17
+
18
+ const defaultitem = { name: "Nový" };
19
+
20
+ /**
21
+ * Wrapper nad `BaseCreateLink` (alias importu `CreateLink` z Base/Mutations/Create),
22
+ * který je odvozený z obecných `General*` komponent.
23
+ *
24
+ * Účel wrapperu:
25
+ * - nastaví výchozí `uriPattern` pro create route
26
+ * - aplikuje výchozí RBAC nastavení přes `permissions` (např. `oneOfRoles`, `mode`)
27
+ * - všechny ostatní props pouze přeposílá do Base komponenty
28
+ *
29
+ * Vizuálně vyrenderuje link pro kliknutí
30
+ *
31
+ * @param {Object} params
32
+ * @param {string} [params.uriPattern=CreateURI]
33
+ * Cílová URI/pattern pro link na create stránku nebo create akci (dle routování aplikace).
34
+ *
35
+ * @param {Object} params.props
36
+ * Další props přeposílané do `BaseCreateLink` (např. `children`, `className`,
37
+ * `preserveSearch`, `preserveHash`, atd.).
38
+ *
39
+ * @returns {JSX.Element} Vykreslí `BaseCreateLink` s přednastaveným `uriPattern` a RBAC oprávněními.
40
+ */
41
+ export const CreateLink = ({
42
+ uriPattern=CreateURI,
43
+ ...props
44
+ }) => (
45
+ <BaseCreateLink {...props} uriPattern={uriPattern} {...permissions} />
46
+ );
47
+
48
+ /**
49
+ * Wrapper nad `BaseCreateButton` (alias importu `CreateButton` z Base/Mutations/Create),
50
+ * který je odvozený z obecných `General*` komponent.
51
+ *
52
+ * Účel wrapperu:
53
+ * - nastaví výchozí oprávnění (RBAC) přes `permissions` (`oneOfRoles`, `mode`)
54
+ * - nastaví výchozí mutaci pro vytvoření entity (`mutationAsyncAction`)
55
+ * - umožní vyměnit dialog a obsah formuláře (`CreateDialog`, `DefaultContent`)
56
+ * - určí kam se má po úspěšném vytvoření navigovat (`readItemURI`)
57
+ * - předá výchozí `item` pro nový záznam
58
+ *
59
+ * Zobrazí tlačítko a po jeho stisku otevře dialog, při volbě OK dochází k odeslání mutace na backend
60
+ *
61
+ * @param {Object} params
62
+ * @param {Function} [params.mutationAsyncAction=MutationAsyncAction]
63
+ * Async action (thunk) pro vytvoření entity (např. InsertAsyncAction). Používá ho Base/General logika.
64
+ *
65
+ * @param {React.ComponentType<Object>} [params.CreateDialog=CreateDialog]
66
+ * Komponenta dialogu použitá pro vytvoření (renderuje formulář a volá `onOk(draft)` / `onCancel()`).
67
+ *
68
+ * @param {React.ComponentType<Object>} [params.DefaultContent=DefaultContent]
69
+ * Komponenta, která vykreslí editable obsah formuláře (typicky MediumEditableContent).
70
+ *
71
+ * @param {string} [params.readItemURI=ReadItemURI]
72
+ * URI pattern pro navigaci na detail nově vytvořené entity (obvykle obsahuje `:id`).
73
+ *
74
+ * @param {Object} [params.rbacitem]
75
+ * RBAC item pro PermissionGate/Permission check (pokud se liší od entity, která se vytváří).
76
+ *
77
+ * @param {Object} [params.item=defaultitem]
78
+ * Výchozí objekt (draft) pro nový záznam. Posílá se do dialogu jako `item`.
79
+ *
80
+ * @param {Object} params.props
81
+ * Všechny další props jsou přeposlány přímo do `BaseCreateButton`
82
+ * (typicky `children`, `className`, `disabled`, `title`, atd.).
83
+ *
84
+ * @returns {JSX.Element} Vykreslí `BaseCreateButton` s přednastavenými defaulty a RBAC oprávněními.
85
+ */
86
+ export const CreateButton = ({
87
+ mutationAsyncAction=MutationAsyncAction,
88
+ CreateDialog: CreateDialog_=CreateDialog,
89
+ DefaultContent:defaultContent=DefaultContent,
90
+ readItemURI=ReadItemURI,
91
+ rbacitem,
92
+ item=defaultitem,
93
+ ...props
94
+ }) => {
95
+ return <BaseCreateButton
96
+ {...props}
97
+ DefaultContent={defaultContent}
98
+ CreateDialog={CreateDialog_}
99
+ readItemURI={readItemURI}
100
+ rbacitem={rbacitem}
101
+ item={item}
102
+ mutationAsyncAction={mutationAsyncAction}
103
+ {...permissions}
104
+ />
105
+ }
106
+
107
+ /**
108
+ * Wrapper nad `BaseCreateDialog` (alias importu `CreateDialog` z Base/Mutations/Create),
109
+ * který je odvozený z obecných `General*` komponent.
110
+ *
111
+ * Účel wrapperu:
112
+ * - nastaví výchozí title, obsah formuláře a výchozí draft (`item`)
113
+ * - předá `readItemURI` pro případnou navigaci po vytvoření (dle implementace Base/General)
114
+ * - umožní přepsat `mutationAsyncAction` (pokud BaseCreateDialog mutaci používá)
115
+ *
116
+ * Mutaci provadi až tlačítko (`BaseCreateButton`) Dialog jen zobrazuje a zabezpecuje sber dat
117
+ * a dialog je jen “formulář”.
118
+ *
119
+ * @param {Object} params
120
+ * @param {string} [params.title="Nov(ý/é)"]
121
+ * Titulek dialogu.
122
+ *
123
+ * @param {Function} [params.mutationAsyncAction=MutationAsyncAction]
124
+ * Async action (thunk) pro vytvoření entity. Použije se pouze pokud ho `BaseCreateDialog` skutečně volá
125
+ * (záleží na Base/General implementaci).
126
+ *
127
+ * @param {React.ComponentType<Object>} [params.DefaultContent=DefaultContent]
128
+ * Komponenta, která vykreslí editable obsah formuláře (typicky MediumEditableContent).
129
+ *
130
+ * @param {string} [params.readItemURI=ReadItemURI]
131
+ * URI pattern pro navigaci na detail nově vytvořené entity (obvykle obsahuje `:id`).
132
+ *
133
+ * @param {Object} [params.item=defaultitem]
134
+ * Výchozí objekt (draft) pro nový záznam. Posílá se do dialogu jako `item`.
135
+ *
136
+ * @param {Object} params.props
137
+ * Všechny další props jsou přeposlány přímo do `BaseCreateDialog`
138
+ * (typicky `oklabel`, `cancellabel`, `onOk`, `onCancel`, `className`, atd.).
139
+ *
140
+ * @returns {JSX.Element} Vykreslí `BaseCreateDialog` s přednastavenými defaulty.
141
+ */
142
+ export const CreateDialog = ({
143
+ title = "Nov(ý/é)",
144
+ // mutationAsyncAction=MutationAsyncAction,
145
+ DefaultContent:defaultContent=DefaultContent,
146
+ readItemURI=ReadItemURI,
147
+ item=defaultitem,
148
+ ...props
149
+ }) => {
150
+ return <BaseCreateDialog
151
+ {...props}
152
+ title={title}
153
+ DefaultContent={defaultContent}
154
+ readItemURI={readItemURI}
155
+ item={item}
156
+ // mutationAsyncAction={mutationAsyncAction}
157
+ />
158
+ };
159
+
160
+ /**
161
+ * Wrapper nad `BaseCreateBody` (alias importu `CreateBody` z Base/Mutations/Create),
162
+ * který je odvozený z obecných `General*` komponent.
163
+ *
164
+ * `CreateBody` typicky reprezentuje “page-level” create workflow (ne jen tlačítko + modal):
165
+ * - vykreslí create formulář pomocí `DefaultContent`
166
+ * - zajistí uložení přes `mutationAsyncAction` (dle Base/General implementace)
167
+ * - po úspěchu může navigovat na detail vytvořené entity přes `readItemURI` (pokud Base/General takto funguje)
168
+ *
169
+ * Wrapper pouze nastavuje defaulty a přeposílá props do `BaseCreateBody`.
170
+ *
171
+ * Vizualizuje <DefaultContent />, sbira zmeny a umoznuje volani backendu pro ulozeni dat
172
+ *
173
+ * @param {Object} params
174
+ * @param {Function} [params.mutationAsyncAction=MutationAsyncAction]
175
+ * Async action (thunk) pro vytvoření entity (např. InsertAsyncAction). Používá ho Base/General logika.
176
+ *
177
+ * @param {React.ComponentType<Object>} [params.DefaultContent=DefaultContent]
178
+ * Komponenta, která vykreslí editable obsah formuláře (typicky MediumEditableContent).
179
+ *
180
+ * @param {string} [params.readItemURI=ReadItemURI]
181
+ * URI pattern pro navigaci na detail nově vytvořené entity (obvykle obsahuje `:id`).
182
+ *
183
+ * @param {Object} params.props
184
+ * Všechny další props jsou přeposlány přímo do `BaseCreateBody`
185
+ * (typicky `title`, `oklabel`, `cancellabel`, `onOk`, `onCancel`, `className`, atd.).
186
+ *
187
+ * @returns {JSX.Element} Vykreslí `BaseCreateBody` s přednastavenými defaulty.
188
+ */
189
+ export const CreateBody = ({
190
+ mutationAsyncAction=MutationAsyncAction,
191
+ DefaultContent:defaultContent=DefaultContent,
192
+ readItemURI=ReadItemURI,
193
+ ...props
194
+ }) => {
195
+ return <BaseCreateBody
196
+ {...props}
197
+ DefaultContent={defaultContent}
198
+ readItemURI={readItemURI}
199
+ mutationAsyncAction={mutationAsyncAction}
200
+ />
201
+ };
202
+
@@ -0,0 +1,173 @@
1
+ import { DeleteItemURI, ListURI, MediumContent, VectorItemsURI } from "../Components";
2
+ import { DeleteAsyncAction } from "../Queries";
3
+ import {
4
+ DeleteBody as BaseDeleteBody,
5
+ DeleteButton as BaseDeleteButton,
6
+ DeleteDialog as BaseDeleteDialog,
7
+ DeleteLink as BaseDeleteLink
8
+ } from "../../Base/Mutations/Delete";
9
+
10
+ const DefaultContent = MediumContent
11
+ const MutationAsyncAction = DeleteAsyncAction
12
+
13
+ const permissions = {
14
+ oneOfRoles: ["superadmin"],
15
+ mode: "absolute",
16
+ }
17
+
18
+ /**
19
+ * Link na delete route pro konkrétní entitu.
20
+ *
21
+ * Wrapper nad `BaseDeleteLink`. Nastavuje výchozí `uriPattern` pro delete route a aplikuje RBAC
22
+ * přes `permissions`. Ostatní props přeposílá do Base komponenty.
23
+ *
24
+ * @param {Object} params
25
+ * @param {string} [params.uriPattern=DeleteItemURI]
26
+ * URI pattern pro delete route (typicky obsahuje `:id` nebo odpovídá routování aplikace).
27
+ * @param {Object} params.props
28
+ * Další props přeposílané do `BaseDeleteLink` (např. `children`, `className`,
29
+ * `preserveSearch`, `preserveHash`, atd.).
30
+ *
31
+ * @returns {JSX.Element}
32
+ */
33
+ export const DeleteLink = ({
34
+ uriPattern=DeleteItemURI,
35
+ ...props
36
+ }) => {
37
+ return (
38
+ <BaseDeleteLink
39
+ {...props}
40
+ uriPattern={uriPattern}
41
+ {...permissions}
42
+ />
43
+ )
44
+ };
45
+
46
+ /**
47
+ * Tlačítko pro smazání entity (obvykle otevře confirm dialog a spustí delete mutaci).
48
+ *
49
+ * Wrapper nad `BaseDeleteButton`. Dodává výchozí `DefaultContent`, `mutationAsyncAction`
50
+ * a `vectorItemsURI` (kam se naviguje po úspěšném smazání, pokud není použit `onOk`).
51
+ *
52
+ * Chování navigace / callback:
53
+ * - Pokud je definované `onOk`, použije se pro “feedback”, že mazání proběhlo (tj. uživatel si
54
+ * rozhodne, co dál).
55
+ * - Pokud `onOk` definované není, Base implementace typicky naviguje na `vectorItemsURI`.
56
+ *
57
+ * @param {Object} params
58
+ * @param {Function} [params.mutationAsyncAction=MutationAsyncAction]
59
+ * Async action (thunk) pro delete operaci (např. DeleteAsyncAction).
60
+ *
61
+ * @param {React.ComponentType<Object>} [params.DefaultContent=MediumContent]
62
+ * Komponenta pro zobrazení mazáné entity v confirm dialogu (read-only).
63
+ *
64
+ * @param {string} [params.vectorItemsURI=ListURI]
65
+ * URI pro návrat po úspěšném smazání (typicky list stránka / kolekce).
66
+ *
67
+ * @param {Function} [params.onOk]
68
+ * Callback po úspěšném smazání. Pokud není zadán, Base implementace typicky použije navigaci na `vectorItemsURI`.
69
+ *
70
+ * @param {Object}} params.props
71
+ * Další props přeposílané do `BaseDeleteButton` (např. `children`, `title`, `className`,
72
+ * `rbacitem`, `item`, `disabled`, atd. – podle Base/General implementace).
73
+ *
74
+ * @returns {JSX.Element}
75
+ */
76
+ export const DeleteButton = ({
77
+ mutationAsyncAction=MutationAsyncAction,
78
+ DefaultContent:DefaultContent_=DefaultContent,
79
+ Dialog=DeleteDialog,
80
+ vectorItemsURI=ListURI,
81
+ onOk,
82
+ ...props
83
+ }) => {
84
+ return (
85
+ <BaseDeleteButton
86
+ {...props}
87
+ DefaultContent={DefaultContent_}
88
+ Dialog={Dialog}
89
+ mutationAsyncAction={mutationAsyncAction}
90
+ vectorItemsURI={vectorItemsURI}
91
+ onOk={onOk}
92
+ {...permissions}
93
+ />
94
+ )
95
+ }
96
+
97
+ /**
98
+ * Confirm dialog pro smazání entity.
99
+ *
100
+ * Wrapper nad `BaseDeleteDialog`. Dodává výchozí `DefaultContent` (read-only zobrazení entity),
101
+ * `mutationAsyncAction` a `vectorItemsURI` pro návrat po úspěchu (dle Base/General implementace).
102
+ *
103
+ * @param {Object} params
104
+ * @param {Function} [params.mutationAsyncAction=MutationAsyncAction]
105
+ * Async action (thunk) pro delete operaci (např. DeleteAsyncAction).
106
+ *
107
+ * @param {React.ComponentType<Object>} [params.DefaultContent=MediumContent]
108
+ * Komponenta pro zobrazení mazáné entity (read-only).
109
+ *
110
+ * @param {string} [params.vectorItemsURI=ListURI]
111
+ * URI pro návrat po úspěšném smazání (typicky list stránka / kolekce).
112
+ *
113
+ * @param {Object}} params.props
114
+ * Další props přeposílané do `BaseDeleteDialog` (např. `title`, `oklabel`, `cancellabel`,
115
+ * `item`, `onOk`, `onCancel`, atd.).
116
+ *
117
+ * @returns {JSX.Element}
118
+ */
119
+ export const DeleteDialog = ({
120
+ mutationAsyncAction=MutationAsyncAction,
121
+ DefaultContent:DefaultContent_=DefaultContent,
122
+ vectorItemsURI=ListURI,
123
+ ...props
124
+ }) => {
125
+ return (
126
+ <BaseDeleteDialog
127
+ {...props}
128
+ DefaultContent={DefaultContent_}
129
+ mutationAsyncAction={mutationAsyncAction}
130
+ vectorItemsURI={vectorItemsURI}
131
+ {...permissions}
132
+ />
133
+ )
134
+ }
135
+
136
+ /**
137
+ * “Page-level” delete workflow (mazání na celé stránce / v těle stránky).
138
+ *
139
+ * Wrapper nad `BaseDeleteBody`. Dodává výchozí `DefaultContent`, `mutationAsyncAction`
140
+ * a `vectorItemsURI` a aplikuje RBAC přes `permissions`.
141
+ *
142
+ * @param {Object} params
143
+ * @param {Function} [params.mutationAsyncAction=MutationAsyncAction]
144
+ * Async action (thunk) pro delete operaci (např. DeleteAsyncAction).
145
+ *
146
+ * @param {React.ComponentType<Object>} [params.DefaultContent=MediumContent]
147
+ * Komponenta pro zobrazení mazáné entity (read-only).
148
+ *
149
+ * @param {string} [params.vectorItemsURI=ListURI]
150
+ * URI pro návrat po úspěšném smazání (typicky list stránka / kolekce).
151
+ *
152
+ * @param {Object}} params.props
153
+ * Další props přeposílané do `BaseDeleteBody` (např. `title`, `oklabel`, `cancellabel`,
154
+ * `item`, `onOk`, `onCancel`, atd.).
155
+ *
156
+ * @returns {JSX.Element}
157
+ */
158
+ export const DeleteBody = ({
159
+ mutationAsyncAction=MutationAsyncAction,
160
+ DefaultContent:DefaultContent_=DefaultContent,
161
+ vectorItemsURI=ListURI,
162
+ ...props
163
+ }) => {
164
+ return (
165
+ <BaseDeleteBody
166
+ {...props}
167
+ DefaultContent={DefaultContent_}
168
+ mutationAsyncAction={mutationAsyncAction}
169
+ vectorItemsURI={vectorItemsURI}
170
+ {...permissions}
171
+ />
172
+ )
173
+ }
@@ -0,0 +1,30 @@
1
+ import { CardCapsule, VectorItemsURI } from "../Components"
2
+ import { CreateButton, CreateLink } from "./Create"
3
+ import { UpdateButton, UpdateLink } from "./Update"
4
+ import { ProxyLink } from "../../Base/Components/ProxyLink"
5
+ import { DeleteButton } from "./Delete"
6
+
7
+ export const PageLink = ({ children, preserveHash = true, preserveSearch = true, ...props }) => {
8
+ return (
9
+ <ProxyLink
10
+ to={VectorItemsURI}
11
+ preserveHash={preserveHash}
12
+ preserveSearch={preserveSearch}
13
+ {...props}
14
+ >
15
+ {children}
16
+ </ProxyLink>
17
+ );
18
+ };
19
+
20
+ export const InteractiveMutations = ({ item }) => {
21
+ return (
22
+ <CardCapsule item={item} title="Nástroje">
23
+ <PageLink className="btn btn-outline-success">Stránka</PageLink>
24
+ <UpdateLink className="btn btn-outline-success" item={item}>Upravit</UpdateLink>
25
+ <UpdateButton className="btn btn-outline-success" item={item}>Upravit Dialog</UpdateButton>
26
+ <CreateButton className="btn btn-outline-success" rbacitem={{}}>Vytvořit nový</CreateButton>
27
+ <DeleteButton className="btn btn-outline-danger" item={item}>Odstranit</DeleteButton>
28
+ </CardCapsule>
29
+ )
30
+ }
@@ -0,0 +1,147 @@
1
+ import {
2
+ UpdateBody as BaseUpdateBody,
3
+ UpdateButton as BaseUpdateButton,
4
+ UpdateDialog as BaseUpdateDialog,
5
+ UpdateLink as BaseUpdateLink
6
+ } from "../../Base/Mutations/Update";
7
+
8
+ import { MediumEditableContent, UpdateItemURI } from "../Components";
9
+ import { UpdateAsyncAction } from "../Queries";
10
+
11
+ const DefaultContent = (props) => <MediumEditableContent {...props} />
12
+ const mutationAsyncAction = UpdateAsyncAction
13
+
14
+ const permissions = {
15
+ oneOfRoles: ["superadmin"],
16
+ mode: "absolute",
17
+ }
18
+
19
+ // ALTERNATIVE, CHECK GQLENDPOINT
20
+ // const permissions = {
21
+ // oneOfRoles: ["administrátor", "personalista"],
22
+ // mode: "item",
23
+ // }
24
+
25
+ /**
26
+ * Link na update stránku / update route pro konkrétní entitu.
27
+ *
28
+ * Wrapper nad `BaseUpdateLink`. Nastavuje výchozí `uriPattern` a aplikuje RBAC
29
+ * přes `permissions`. Vše ostatní přeposílá do Base komponenty.
30
+ *
31
+ * @param {Object} params
32
+ * @param {string} [params.uriPattern=UpdateItemURI]
33
+ * URI pattern pro update route (typicky obsahuje `:id` nebo je již konkrétní URL dle routování).
34
+ * @param {Object} params.props
35
+ * Další props přeposílané do `BaseUpdateLink` (např. `children`, `className`,
36
+ * `preserveSearch`, `preserveHash`, atd.).
37
+ * @returns {JSX.Element}
38
+ */
39
+ export const UpdateLink = ({
40
+ uriPattern = UpdateItemURI,
41
+ ...props
42
+ }) => {
43
+ return <BaseUpdateLink
44
+ {...props}
45
+ uriPattern={uriPattern}
46
+ {...permissions}
47
+ />
48
+ }
49
+
50
+ /**
51
+ * Dialog pro editaci entity.
52
+ *
53
+ * Wrapper nad `BaseUpdateDialog`. Dodává výchozí editovatelný obsah (`DefaultContent`)
54
+ * a výchozí mutační akci (`mutationAsyncAction`) pro uložení změn. Aplikuje RBAC
55
+ * přes `permissions`.
56
+ *
57
+ * @param {Object} params
58
+ * @param {React.ComponentType<Object>} [params.DefaultContent=DefaultContent]
59
+ * Komponenta, která vykreslí editovatelný obsah dialogu (typicky MediumEditableContent).
60
+ * @param {Function} [params.mutationAsyncAction=mutationAsyncAction]
61
+ * Async action (thunk) pro uložení změn (např. UpdateAsyncAction). Použije se podle Base/General implementace.
62
+ * @param {Object} params.props
63
+ * Další props přeposílané do `BaseUpdateDialog` (např. `title`, `oklabel`, `cancellabel`,
64
+ * `item`, `onOk`, `onCancel`, atd.).
65
+ * @returns {JSX.Element}
66
+ */
67
+ export const UpdateDialog = ({
68
+ DefaultContent: DefaultContent_ = DefaultContent,
69
+ mutationAsyncAction: mutationAsyncAction_ = mutationAsyncAction,
70
+ ...props
71
+ }) => {
72
+ return (
73
+ <BaseUpdateDialog
74
+ {...props}
75
+ DefaultContent={DefaultContent_}
76
+ mutationAsyncAction={mutationAsyncAction_}
77
+ {...permissions}
78
+ />
79
+ );
80
+ };
81
+
82
+ /**
83
+ * Tlačítko, které otevře update dialog a provede uložení.
84
+ *
85
+ * Wrapper nad `BaseUpdateButton`. Dodává výchozí `DefaultContent`, výchozí `Dialog`,
86
+ * a výchozí `mutationAsyncAction`. Aplikuje RBAC přes `permissions`.
87
+ *
88
+ * @param {Object} params
89
+ * @param {React.ComponentType<Object>} [params.DefaultContent=DefaultContent]
90
+ * Komponenta editovatelného obsahu (typicky MediumEditableContent).
91
+ * @param {React.ComponentType<Object>} [params.Dialog=UpdateDialog]
92
+ * Dialog komponenta použitá pro editaci (volá `onOk(draft)` / `onCancel()`).
93
+ * @param {Function} [params.mutationAsyncAction=mutationAsyncAction]
94
+ * Async action (thunk) pro uložení změn (např. UpdateAsyncAction).
95
+ * @param {Object} params.props
96
+ * Další props přeposílané do `BaseUpdateButton` (např. `children`, `className`, `title`,
97
+ * `item`, `uriPattern`, `onOk`, `onCancel`, atd.).
98
+ * @returns {JSX.Element}
99
+ */
100
+ export const UpdateButton = ({
101
+ DefaultContent: DefaultContent_ = DefaultContent,
102
+ Dialog = UpdateDialog,
103
+ mutationAsyncAction: mutationAsyncAction_ = mutationAsyncAction,
104
+ ...props
105
+ }) => {
106
+ return (
107
+ <BaseUpdateButton
108
+ {...props}
109
+ DefaultContent={DefaultContent_}
110
+ Dialog={Dialog}
111
+ mutationAsyncAction={mutationAsyncAction_}
112
+ {...permissions}
113
+ />
114
+ );
115
+ };
116
+
117
+ /**
118
+ * “Page-level” update workflow (inline edit / celá stránka editace).
119
+ *
120
+ * Wrapper nad `BaseUpdateBody`. Typicky vykreslí editovatelný obsah (`DefaultContent`)
121
+ * a zajistí uložení přes `mutationAsyncAction` (dle Base/General implementace).
122
+ * Aplikuje RBAC přes `permissions`.
123
+ *
124
+ * @param {Object} params
125
+ * @param {React.ComponentType<Object>} [params.DefaultContent=DefaultContent]
126
+ * Komponenta editovatelného obsahu (typicky MediumEditableContent).
127
+ * @param {Function} [params.mutationAsyncAction=mutationAsyncAction]
128
+ * Async action (thunk) pro uložení změn (např. UpdateAsyncAction).
129
+ * @param {Object} params.props
130
+ * Další props přeposílané do `BaseUpdateBody` (např. `title`, `oklabel`, `cancellabel`,
131
+ * `item`, `onOk`, `onCancel`, `className`, atd.).
132
+ * @returns {JSX.Element}
133
+ */
134
+ export const UpdateBody = ({
135
+ DefaultContent: DefaultContent_ = DefaultContent,
136
+ mutationAsyncAction: mutationAsyncAction_ = mutationAsyncAction,
137
+ ...props
138
+ }) => {
139
+ return (
140
+ <BaseUpdateBody
141
+ {...props}
142
+ DefaultContent={DefaultContent_}
143
+ mutationAsyncAction={mutationAsyncAction_}
144
+ {...permissions}
145
+ />
146
+ );
147
+ };
@@ -0,0 +1,7 @@
1
+ export const makeMutationURI = (linkURI, action, { withId = false } = {}) => {
2
+ const viewSegmentRe = /\/view(\/|$)/;
3
+ if (!viewSegmentRe.test(linkURI)) throw new Error(`LinkURI must contain '/view'. Got: ${linkURI}`);
4
+
5
+ const base = linkURI.replace(viewSegmentRe, `/${action}$1`).replace(/\/?$/, "/");
6
+ return withId ? `${base}:id` : base.replace(/\/$/, "");
7
+ };
@@ -0,0 +1,56 @@
1
+ import { ReadAsyncAction } from "../Queries"
2
+ import { PageItemBase as PageItemBase_} from "../../../../_template/src/Base/Pages/Page"
3
+ import { LargeCard } from "../Components"
4
+
5
+
6
+ /**
7
+ * Base wrapper pro stránky pracující s jedním entity itemem podle `:id` z routy.
8
+ *
9
+ * Komponenta:
10
+ * - načte `id` z URL přes `useParams()`
11
+ * - sestaví minimální `item` objekt `{ id }`
12
+ * - poskytne jej přes `AsyncActionProvider`, který zajistí načtení entity pomocí `queryAsyncAction`
13
+ * - vloží do stránky navbar přes `PlaceChild Component={PageNavbar}`
14
+ * - vyrenderuje `children` uvnitř provideru (tj. až v kontextu načtené entity)
15
+ *
16
+ * Typické použití je jako obálka routy typu `/.../:id`, kde vnořené komponenty
17
+ * (detail, editace, akce) používají kontext z `AsyncActionProvider`.
18
+ *
19
+ * @component
20
+ * @param {object} props
21
+ * @param {import("react").ReactNode} props.children
22
+ * Obsah stránky, který se má vyrenderovat uvnitř `AsyncActionProvider`.
23
+ * @param {Function} [props.queryAsyncAction=ReadAsyncAction]
24
+ * Async action (např. thunk) použitá pro načtení entity z GraphQL endpointu.
25
+ * Dostane `item` s `id` (a případně další parametry podle implementace provideru).
26
+ *
27
+ * @returns {import("react").JSX.Element}
28
+ * Provider s navigací (`PageNavbar`) a obsahem stránky (`children`).
29
+ */
30
+ export const PageItemBase = ({
31
+ queryAsyncAction=ReadAsyncAction,
32
+ PageNavbar=()=>null,
33
+ ItemLayout=LargeCard,
34
+ SubPage=null,
35
+ ...props
36
+ }) => {
37
+ return (
38
+ <PageItemBase_
39
+ queryAsyncAction={queryAsyncAction}
40
+ PageNavbar={PageNavbar}
41
+ ItemLayout={ItemLayout}
42
+ SubPage={SubPage}
43
+ {...props}
44
+ />
45
+ )
46
+ }
47
+
48
+
49
+ export const PageBase = ({ children, PageNavbar=()=>null }) => {
50
+ return (
51
+ <>
52
+ <PageNavbar />
53
+ {children}
54
+ </>
55
+ )
56
+ }
@@ -0,0 +1,28 @@
1
+ import { ReadAsyncAction } from "../Queries"
2
+ import { Row } from "../../../../_template/src/Base/Components/Row";
3
+ import { CreateBody } from "../Mutations/Create";
4
+ import { LeftColumn, MiddleColumn } from "@hrbolek/uoisfrontend-shared";
5
+ import { PageItemBase } from "./PageBase";
6
+
7
+
8
+
9
+ const PageBody = ({...props}) => (
10
+ <Row>
11
+ <LeftColumn />
12
+ <MiddleColumn>
13
+ <CreateBody {...props} />
14
+ </MiddleColumn>
15
+ </Row>
16
+ )
17
+
18
+ export const PageCreateItem = ({
19
+ SubPage=PageBody,
20
+ ...props
21
+ }) => {
22
+ return (
23
+ <PageItemBase
24
+ SubPage={SubPage}
25
+ {...props}
26
+ />
27
+ )
28
+ }
@@ -0,0 +1,16 @@
1
+ import { PageItemBase } from "./PageBase";
2
+ import { DeleteBody } from "../Mutations/Delete";
3
+
4
+ export const PageDeleteItem = ({
5
+ SubPage=DeleteBody,
6
+ ...props
7
+ }) => {
8
+ return (
9
+ <PageItemBase
10
+ SubPage={SubPage}
11
+ {...props}
12
+ />
13
+
14
+ )
15
+ }
16
+