@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,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 "../../../../_template/src/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 "../../../../_template/src/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 "../../../../_template/src/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
+
@@ -0,0 +1,160 @@
1
+ import Nav from 'react-bootstrap/Nav'
2
+ import { Link, LinkURI } from '../Components'
3
+ import { ProxyLink } from '../../../../_template/src/Base/Components/ProxyLink';
4
+ import { NavDropdown } from 'react-bootstrap';
5
+ import { UpdateLink } from '../Mutations/Update';
6
+ import { CreateButton } from '../Mutations/Create';
7
+
8
+ /**
9
+ * Allow to use HashContainer for determination which component at page will be rendered.
10
+ * That must be manually inserted at TemplatePageContent, usually this should be done
11
+ * as children of TemplateLargeCard.
12
+ * <TemplateLargeCard>
13
+ * <HashContainer>
14
+ * <VectorA id="history"/>
15
+ * <VectorB id="roles"/>
16
+ * <VectorC id="graph"/>
17
+ * </HashContainer>
18
+ * </TemplateLargeCard>
19
+ * it is usefull to define globally active "areas" like science, administration, teaching, ...
20
+ */
21
+ // const TemplatePageSegments = [
22
+ // { segment: 'education', label: 'Výuka' },
23
+ // { segment: 'reaserach', label: 'Tvůrčí činnost' },
24
+ // { segment: 'administration', label: 'Organizační činnost' },
25
+ // { segment: 'development', label: 'Rozvoj' },
26
+ // ]
27
+
28
+ /**
29
+ * A navigation button component that generates a URL based on the template's ID and a specific segment.
30
+ * The button uses a `ProxyLink` to navigate while preserving hash and query parameters.
31
+ *
32
+ * ### Features:
33
+ * - Dynamically constructs the URL with a hash fragment pointing to the specified segment.
34
+ * - Displays a label for the navigation link.
35
+ * - Integrates seamlessly with `ProxyLink` for enhanced navigation.
36
+ *
37
+ * @component
38
+ * @param {Object} props - The properties for the TitleNavButton component.
39
+ * @param {Object} props.template - The template object containing details about the template.
40
+ * @param {string|number} props.template.id - The unique identifier for the template.
41
+ * @param {string} props.segment - The segment to append as a hash fragment in the URL.
42
+ * @param {string} props.label - The text to display as the label for the navigation button.
43
+ *
44
+ * @returns {JSX.Element} A styled navigation button linking to the constructed URL.
45
+ *
46
+ * @example
47
+ * // Example 1: Basic usage with a template and segment
48
+ * const template = { id: 123 };
49
+ * const segment = "details";
50
+ * const label = "View Details";
51
+ *
52
+ * <TitleNavButton template={template} segment={segment} label={label} />
53
+ * // Resulting URL: `/ug/template/view/123#details`
54
+ *
55
+ * @example
56
+ * // Example 2: Different segment and label
57
+ * <TitleNavButton template={{ id: 456 }} segment="settings" label="Template Settings" />
58
+ * // Resulting URL: `/ug/template/view/456#settings`
59
+ */
60
+ // const TitleNavButton = ({ item, segment, label, ...props }) => {
61
+ // // const urlbase = (segment) => `/templates/template/${segment}/${template?.id}`;
62
+ // const urlbase = (segment) => `${LinkURI}${item?.id}#${segment}`;
63
+ // return (
64
+ // <Nav.Link as={"span"} {...props}>
65
+ // {/* <ProxyLink to={urlbase(segment)}>{label}</ProxyLink> */}
66
+ // </Nav.Link>
67
+ // );
68
+ // };
69
+
70
+ /**
71
+ * Renders the navigation bar for an Template page.
72
+ *
73
+ * This component uses a custom hook, `useHash()`, to determine the current hash
74
+ * and highlights the active segment. It displays a navigation bar (using MyNavbar)
75
+ * with several segments (e.g. "history", "roles", "graph"), each rendered as a
76
+ * TitleNavButton. The segments are hardcoded in this component and only rendered
77
+ * if an `template` object is provided.
78
+ *
79
+ * @component
80
+ * @param {Object} props - The component properties.
81
+ * @param {Object} props.template - The template entity object that provides context for the page.
82
+ * @param {string|number} props.template.id - The unique identifier for the template.
83
+ * @param {Function} props.onSearchChange - Callback function to handle changes in the search input.
84
+ *
85
+ * @returns {JSX.Element} The rendered TemplatePageNavbar component.
86
+ *
87
+ * @example
88
+ * // Example usage:
89
+ * const template = { id: 123, ... };
90
+ * <TemplatePageNavbar template={template} onSearchChange={handleSearchChange} />
91
+ */
92
+ // export const PageNavbar = ({ item, children, onSearchChange }) => {
93
+ // // const [currentHash, setHash] = useHash(); // Use the custom hook to manage hash
94
+ // const currentHash = "da"
95
+ // return (
96
+ // <div className='screen-only'>
97
+ // <MyNavbar onSearchChange={onSearchChange} >
98
+ // {item && TemplatePageSegments.map(({ segment, label }) => (
99
+ // <Nav.Item key={segment} >
100
+ // <TitleNavButton
101
+ // template={item}
102
+ // segment={segment}
103
+ // label={label}
104
+ // className={segment === currentHash ? "active" : ""} aria-current={segment === currentHash ? "page" : undefined}
105
+ // />
106
+ // </Nav.Item>
107
+ // ))}
108
+ // {children}
109
+ // </MyNavbar>
110
+ // </div>
111
+ // );
112
+ // };
113
+
114
+
115
+ export const MyNavDropdown = ({ item }) => {
116
+ const { __typename } = item || {}
117
+ const hasProperType = __typename === "TemplateGQLModel"
118
+ return (
119
+ <NavDropdown title="Skupiny">
120
+ <NavDropdown.Item as={ProxyLink} to={VectorItemsURI}>
121
+ Seznam všech
122
+ </NavDropdown.Item>
123
+
124
+ <NavDropdown.Item as={Link} item={item} action="roles" disabled={!hasProperType}>
125
+ Role<br/><Link item={item} />
126
+ </NavDropdown.Item>
127
+ <NavDropdown.Item as={Link} item={item} action="subgroups" disabled={!hasProperType}>
128
+ Podskupiny<br/><Link item={item} />
129
+ </NavDropdown.Item>
130
+ <NavDropdown.Item as={Link} item={item} action="memberships" disabled={!hasProperType}>
131
+ Členové<br/><Link item={item} />
132
+ </NavDropdown.Item>
133
+
134
+
135
+ <NavDropdown.Divider />
136
+
137
+ <NavDropdown.Item
138
+ as={UpdateLink}
139
+ item={item}
140
+ disabled={!hasProperType}
141
+ >
142
+ Upravit<br/><Link item={item} />
143
+ </NavDropdown.Item>
144
+ <NavDropdown.Item
145
+ as={CreateButton}
146
+ item={item}
147
+ disabled={!hasProperType}
148
+ item={{
149
+ group: item,
150
+ groupId: item?.groupId
151
+ }}
152
+ >
153
+ Nové<br/><Link item={item} />
154
+ </NavDropdown.Item>
155
+
156
+ <NavDropdown.Divider />
157
+ <NavDropdown.Item as={ProxyLink} to={`/generic/${item?.__typename}/__def/${item?.id}`} reloadDocument={false}>Definice</NavDropdown.Item >
158
+ </NavDropdown>
159
+ )
160
+ }
@@ -0,0 +1,11 @@
1
+ import { GeneratedContentBase } from "../../../../_template/src/Base/Pages/Page"
2
+ import { PageItemBase } from "./PageBase"
3
+
4
+ export const PageReadItem = ({
5
+ SubPage=GeneratedContentBase,
6
+ ...props
7
+ }) => {
8
+ return (
9
+ <PageItemBase SubPage={SubPage} {...props}/>
10
+ )
11
+ }
@@ -0,0 +1,42 @@
1
+ import { GeneratedContentBase } from "../../../../_template/src/Base/Pages/Page"
2
+ import { ReadItemURI } from "../Components"
3
+ import { ReadAsyncAction } from "../Queries"
4
+ import { PageReadItem } from "./PageReadItem"
5
+
6
+ export const RolesOnURI = ReadItemURI.replace("view", "roleson")
7
+
8
+
9
+ /**
10
+ * Základní obálka pro „read“ stránku entity podle `:id` z routy.
11
+ *
12
+ * Využívá `PageItemBase`, který zajistí:
13
+ * - získání `id` z URL (`useParams`)
14
+ * - načtení entity přes `AsyncActionProvider` pomocí `queryAsyncAction`
15
+ * - vložení navigace (`PageNavbar`)
16
+ *
17
+ * Uvnitř provideru vykreslí `ReadWithComponent`, který si vezme načtený `item`
18
+ * z `useGQLEntityContext()` a zobrazí ho v zadané komponentě (defaultně `LargeCard`).
19
+ *
20
+ * @component
21
+ * @param {object} props
22
+ * @param {Function} [props.queryAsyncAction=ReadAsyncAction]
23
+ * Async action (např. thunk) pro načtení entity z backendu/GraphQL dle `id`.
24
+ * @param {Object<string, any>} [props]
25
+ * Další props předané do `ReadWithComponent` (např. `Component`, layout props).
26
+ *
27
+ * @returns {import("react").JSX.Element}
28
+ */
29
+ export const PageReadItemRolesOn = ({
30
+ queryAsyncAction=ReadAsyncAction,
31
+ children,
32
+ ...props
33
+ }) => {
34
+ return (
35
+ <PageReadItem
36
+ queryAsyncAction={queryAsyncAction}
37
+ SubPage={GeneratedContentBase}
38
+ {...props}
39
+ />
40
+ )
41
+ }
42
+