@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,326 @@
1
+ import { useEffect } from "react";
2
+ import { Col } from "react-bootstrap";
3
+ import { useAsyncAction, createAsyncGraphQLAction, processVectorAttributeFromGraphQLResult, createQueryStrLazy } from "@hrbolek/uoisfrontend-gql-shared"
4
+ import { ErrorHandler, InfiniteScroll, LoadingSpinner } from "@hrbolek/uoisfrontend-shared"
5
+
6
+
7
+ /**
8
+ * Inserts a VectorGQLModel item into a template’s vectors array and dispatches an update.
9
+ *
10
+ * @param {Object} template - The current template object containing a `vectors` array.
11
+ * @param {Object} vectorItem - The item to insert; must have `__typename === "VectorGQLModel"`.
12
+ * @param {Function} dispatch - Redux dispatch function (or similar) to call the update action.
13
+ */
14
+ const followUpTemplateVectorItemInsert = (template, vectorItem, dispatch) => {
15
+ const { __typename } = vectorItem;
16
+ if (__typename === "VectorGQLModel") {
17
+ const { vectors, ...others } = template;
18
+ const newTemplateVectorItems = [...vectors, vectorItem];
19
+ const newTemplate = { ...others, vectors: newTemplateVectorItems };
20
+ dispatch(ItemActions.item_update(newTemplate));
21
+ }
22
+ };
23
+
24
+ /**
25
+ * Replaces an existing VectorGQLModel item in a template’s vectors array and dispatches an update.
26
+ *
27
+ * @param {Object} template - The current template object containing a `vectors` array.
28
+ * @param {Object} vectorItem - The updated item; must have `__typename === "VectorGQLModel"` and an `id` field matching an existing item.
29
+ * @param {Function} dispatch - Redux dispatch function (or similar) to call the update action.
30
+ */
31
+ const followUpTemplateVectorItemUpdate = (template, vectorItem, dispatch) => {
32
+ const { __typename } = vectorItem;
33
+ if (__typename === "VectorGQLModel") {
34
+ const { vectors, ...others } = template;
35
+ const newTemplateVectorItems = vectors.map(item =>
36
+ item.id === vectorItem.id ? vectorItem : item
37
+ );
38
+ const newTemplate = { ...others, vectors: newTemplateVectorItems };
39
+ dispatch(ItemActions.item_update(newTemplate));
40
+ }
41
+ };
42
+
43
+ /**
44
+ * Removes a VectorGQLModel item from a template’s vectors array by its `id` and dispatches an update.
45
+ *
46
+ * @param {Object} template - The current template object containing a `vectors` array.
47
+ * @param {Object} vectorItem - The item to delete; must have `__typename === "VectorGQLModel"` and an `id` field.
48
+ * @param {Function} dispatch - Redux dispatch function (or similar) to call the update action.
49
+ */
50
+ const followUpTemplateVectorItemDelete = (template, vectorItem, dispatch) => {
51
+ const { __typename } = vectorItem;
52
+ if (__typename === "VectorGQLModel") {
53
+ const { vectors, ...others } = template;
54
+ const newTemplateVectorItems = vectors.filter(
55
+ item => item.id !== vectorItem.id
56
+ );
57
+ const newTemplate = { ...others, vectors: newTemplateVectorItems };
58
+ dispatch(ItemActions.item_update(newTemplate));
59
+ }
60
+ };
61
+
62
+ const TemplateVectorsAttributeQuery = `
63
+ query TemplateQueryRead($id: UUID!, $where: VectorInputFilter, $skip: Int, $limit: Int) {
64
+ result: templateById(id: $id) {
65
+ __typename
66
+ id
67
+ vectors(skip: $skip, limit: $limit, where: $where) {
68
+ __typename
69
+ id
70
+ # ...VectorMedium
71
+ }
72
+ }
73
+ }
74
+ `
75
+
76
+ const TemplateVectorsAttributeAsyncAction = createAsyncGraphQLAction(
77
+ createQueryStrLazy(TemplateVectorsAttributeQuery,
78
+ //VectorMediumFragment
79
+ ),
80
+ processVectorAttributeFromGraphQLResult("vectors")
81
+ )
82
+
83
+
84
+ /**
85
+ * A component for displaying the `vectors` attribute of a template entity.
86
+ *
87
+ * This component checks if the `vectors` attribute exists on the `template` object. If `vectors` is undefined,
88
+ * the component returns `null` and renders nothing. Otherwise, it maps over the (optionally filtered) `vectors` array
89
+ * and displays a placeholder message and a JSON representation for each item.
90
+ *
91
+ * @component
92
+ * @param {Object} props - The props for the TemplateVectorsAttribute component.
93
+ * @param {Object} props.template - The object representing the template entity.
94
+ * @param {Array<Object>} [props.template.vectors] - An array of vector items associated with the template entity.
95
+ * Each item is expected to have a unique `id` property.
96
+ * @param {Function} [props.filter=Boolean] - (Optional) A function to filter the vectors array before rendering.
97
+ *
98
+ * @returns {JSX.Element|null} A JSX element displaying the (filtered) `vectors` items or `null` if the attribute is undefined or empty.
99
+ *
100
+ * @example
101
+ * // Basic usage:
102
+ * const templateEntity = {
103
+ * vectors: [
104
+ * { id: 1, name: "Vector Item 1" },
105
+ * { id: 2, name: "Vector Item 2" }
106
+ * ]
107
+ * };
108
+ * <TemplateVectorsAttribute template={templateEntity} />
109
+ *
110
+ * @example
111
+ * // With a custom filter:
112
+ * <TemplateVectorsAttribute
113
+ * template={templateEntity}
114
+ * filter={vector => vector.name.includes("1")}
115
+ * />
116
+ */
117
+ export const TemplateVectorsAttribute_old = ({template, filter=Boolean, Visualiser=TrivialVisualiserDiv}) => {
118
+ const { vectors: unfiltered } = template
119
+ if (typeof unfiltered === 'undefined') return null
120
+ const vectors = unfiltered.filter(filter)
121
+ if (vectors.length === 0) return null
122
+ return (
123
+ <>
124
+ {vectors.map(
125
+ vector => <Visualiser id={vector.id} key={vector.id} vector={vector} />
126
+ )}
127
+ </>
128
+ )
129
+ }
130
+
131
+ /**
132
+ * Visualiser component for displaying a list of vector items using `TemplateVectorsAttribute`.
133
+ *
134
+ * Wraps the `TemplateVectorsAttribute` component, passing the given `items` as the `vectors` attribute
135
+ * on a synthetic `template` object. All other props are forwarded.
136
+ *
137
+ * @component
138
+ * @param {Object} props - Component props.
139
+ * @param {Array<Object>} props.items - The array of vector items to be visualized.
140
+ * @param {...any} [props] - Additional props forwarded to `TemplateVectorsAttribute` (e.g., `filter`).
141
+ *
142
+ * @returns {JSX.Element|null} Rendered list of vectors or `null` if none are provided.
143
+ *
144
+ * @example
145
+ * <VectorsVisualiser
146
+ * items={[
147
+ * { id: 1, name: "Vector 1" },
148
+ * { id: 2, name: "Vector 2" }
149
+ * ]}
150
+ * filter={v => v.name.includes("1")}
151
+ * />
152
+ */
153
+ const VectorsVisualiser = ({ items, ...props }) =>
154
+ <TemplateVectorsAttribute_old {...props} template={{ vectors: items }} />
155
+
156
+ /**
157
+ * Infinite-scrolling component for the `vectors` attribute of a template entity.
158
+ *
159
+ * Uses the generic `InfiniteScroll` component to fetch, merge, and display the `vectors` array
160
+ * associated with the provided `template` object. It utilizes `VectorsVisualiser` for rendering,
161
+ * and handles pagination, lazy-loading, and merging of items as the user scrolls.
162
+ *
163
+ * @component
164
+ * @param {Object} props - Component props.
165
+ * @param {Object} props.template - The template entity containing the `vectors` array.
166
+ * @param {Array<Object>} [props.template.vectors] - (Optional) Preloaded vector items.
167
+ * @param {Object} [props.actionParams={}] - Optional extra parameters for the async fetch action (merged with pagination).
168
+ * @param {...any} [props] - Additional props passed to `InfiniteScroll` or `VectorsVisualiser`.
169
+ *
170
+ * @returns {JSX.Element} An infinite-scrolling list of vectors.
171
+ *
172
+ * @example
173
+ * <TemplateVectorsAttributeInfinite
174
+ * template={{
175
+ * vectors: [
176
+ * { id: 1, name: "Vector 1" },
177
+ * { id: 2, name: "Vector 2" }
178
+ * ]
179
+ * }}
180
+ * />
181
+ */
182
+ export const TemplateVectorsAttributeInfinite = ({template, actionParams={}, ...props}) => {
183
+ const {vectors} = template
184
+
185
+ return (
186
+ <InfiniteScroll
187
+ {...props}
188
+ Visualiser={VectorsVisualiser}
189
+ preloadedItems={vectors}
190
+ actionParams={{...actionParams, skip: 0, limit: 10}}
191
+ asyncAction={TemplateVectorsAttributeAsyncAction}
192
+ />
193
+ )
194
+ }
195
+
196
+ /**
197
+ * A lazy-loading component for displaying filtered `vectors` from a `template` entity.
198
+ *
199
+ * This component uses the `TemplateVectorsAttributeAsyncAction` to asynchronously fetch
200
+ * the `template.vectors` data. It shows a loading spinner while fetching, handles errors,
201
+ * and filters the resulting list using a custom `filter` function (defaults to `Boolean` to remove falsy values).
202
+ *
203
+ * Each vector item is rendered as a `<div>` with its `id` as both the `key` and the `id` attribute,
204
+ * and displays a formatted JSON preview using `<pre>`.
205
+ *
206
+ * @component
207
+ * @param {Object} props - The properties object.
208
+ * @param {Object} props.template - The template entity or identifying query variables used to fetch it.
209
+ * @param {Function} [props.filter=Boolean] - A filtering function applied to the `vectors` array before rendering.
210
+ *
211
+ * @returns {JSX.Element} A rendered list of filtered vectors or a loading/error placeholder.
212
+ *
213
+ * @example
214
+ * <TemplateVectorsAttributeLazy template={{ id: "abc123" }} />
215
+ *
216
+ *
217
+ * @example
218
+ * <TemplateVectorsAttributeLazy
219
+ * template={{ id: "abc123" }}
220
+ * filter={(v) => v.status === "active"}
221
+ * />
222
+ */
223
+ export const TemplateVectorsAttributeLazy = ({template, filter=Boolean, ...props}) => {
224
+ const {loading, error, entity, fetch} = useAsyncAction(TemplateVectorsAttributeAsyncAction, template, {deferred: true})
225
+ useEffect(() => {
226
+ fetch(template)
227
+ }, [template])
228
+
229
+ if (loading) return <LoadingSpinner />
230
+ if (error) return <ErrorHandler errors={error} />
231
+
232
+ return <TemplateVectorsAttribute_old template={entity} filter={filter} {...props}/>
233
+ }
234
+
235
+ const TrivialVisualiserDiv = ({vector, children}) => <div>
236
+ Probably {'<VectorMediumCard vector={vector} />'} <br />
237
+ <pre>{JSON.stringify(vector, null, 4)}</pre>
238
+ {children}
239
+ </div>
240
+
241
+ /**
242
+ * Component to render the filtered `vectors` attribute of a template entity.
243
+ *
244
+ * Applies an optional filter function to the vectors array before rendering.
245
+ * Supports infinite scrolling to load more items lazily.
246
+ *
247
+ * The `Layout` prop is used as a wrapper component for each rendered item and
248
+ * is consistently applied in both static and infinite scroll rendering modes.
249
+ * If different layouts are desired for infinite vs static modes,
250
+ * consider conditionally passing different `Layout` props.
251
+ *
252
+ * @param {object} props - Component props.
253
+ * @param {object} props.template - The template entity containing the `vectors` array.
254
+ * @param {Array<object>} [props.template.vectors] - Array of vector items to render.
255
+ * @param {React.ComponentType} [props.Visualiser=TrivialVisualiserDiv] - Component to render each vector item.
256
+ * Receives `vector` and optionally other props.
257
+ * @param {boolean} [props.infinite=true] - Whether to enable infinite scrolling.
258
+ * @param {React.ComponentType|string} [props.Layout=Col] - Wrapper component for each rendered item.
259
+ * This component is used consistently for both static rendering and infinite scroll loading.
260
+ * @param {Function} [props.filter=Boolean] - Filter function to apply on vectors before rendering.
261
+ * @param {...any} props - Additional props forwarded to `Visualiser` and `InfiniteScroll`.
262
+ *
263
+ * @returns {JSX.Element|null} Rendered list or infinite scroll component, or null if no vectors.
264
+ *
265
+ * @example
266
+ * <TemplateVectorsAttribute
267
+ * template={template}
268
+ * Visualiser={VectorMediumCard}
269
+ * Layout={Col}
270
+ * filter={(v) => v.active}
271
+ * infinite={true}
272
+ * />
273
+ */
274
+ export const TemplateVectorsAttribute = ({
275
+ template,
276
+ Visualiser = TrivialVisualiserDiv,
277
+ infinite = true,
278
+ Layout = Col, // 'list' | 'grid' | 'infinite'
279
+ filter = Boolean,
280
+ ...props
281
+ }) => {
282
+
283
+ const { vectors: unfiltered } = template
284
+ if (typeof unfiltered === 'undefined') return null
285
+ const vectors = unfiltered.filter(filter)
286
+ if (vectors.length === 0) return null
287
+
288
+
289
+
290
+ if (infinite) {
291
+ // Pro infinite scroll použijeme komponentu InfiniteScroll
292
+ // Visualiser zde je komponenta, která přijímá pole položek (items)
293
+ // a zobrazí je – proto vytvoříme wrapper, který předá Visualiser správně
294
+
295
+ const VisualiserWrapper = ({ items }) => (
296
+ <TemplateVectorsAttribute
297
+ {...props}
298
+ template={{vectors: items}}
299
+ Visualiser={Visualiser}
300
+ infinite={false}
301
+ Layout={Layout}
302
+ filter={filter}
303
+ />
304
+ );
305
+
306
+ return (
307
+ <InfiniteScroll
308
+ actionParams={{ ...template, skip: 0, limit: 10 }}
309
+ asyncAction={TemplateVectorsAttributeAsyncAction}
310
+ {...props}
311
+ Visualiser={VisualiserWrapper}
312
+ preloadedItems={vectors}
313
+ />
314
+ );
315
+ }
316
+
317
+ return (
318
+ <>
319
+ {vectors.map((vector) => (
320
+ <Layout key={vector.id}>
321
+ {vector && <Visualiser {...props} vector={vector} />}
322
+ </Layout>
323
+ ))}
324
+ </>
325
+ );
326
+ };
@@ -0,0 +1,56 @@
1
+ import { CardCapsule } from "../Components/CardCapsule"
2
+ import { Table } from "../Components/Table"
3
+ import { Col } from "../../../../_template/src/Base/Components/Col"
4
+ import { Row } from "../../../../_template/src/Base/Components/Row"
5
+
6
+ export const VectorAttributeFactory = (attribute_name) => ({ item }) => {
7
+ const attribute_value = item?.[attribute_name] || []
8
+ return (
9
+ <Row key={attribute_name}>
10
+ <Col className="col-2"><b>{attribute_name}</b></Col>
11
+ <Col className="col-10">
12
+ <CardCapsule item={item}>
13
+ <Table data={attribute_value} />
14
+ </CardCapsule>
15
+ </Col>
16
+ </Row>
17
+ )
18
+ }
19
+
20
+ export const VectorAttribute_ = ({ attribute_name, item }) => {
21
+ const attribute_value = item?.[attribute_name] || []
22
+ return (
23
+ <Row key={attribute_name}>
24
+ <Col className="col-2"><b>{attribute_name}</b></Col>
25
+ <Col className="col-10">
26
+ <CardCapsule item={item}>
27
+ <Table data={attribute_value} />
28
+ </CardCapsule>
29
+ </Col>
30
+ </Row>
31
+ )
32
+ }
33
+
34
+ export const VectorAttribute = ({ attribute_name, item }) => {
35
+ const attribute_value = item?.[attribute_name] || []
36
+ return (
37
+ <CardCapsule item={item} title={attribute_name+'[]'}>
38
+ <Table data={attribute_value} />
39
+ </CardCapsule>
40
+ )
41
+ }
42
+
43
+
44
+ export const MediumCardVectors = ({ item }) => {
45
+ return (
46
+ <CardCapsule item={item}>
47
+ {Object.entries(item).map(([attribute_name, attribute_value]) => {
48
+ if (Array.isArray(attribute_value)) {
49
+ return <VectorAttribute key={attribute_name} attribute_name={attribute_name} item={item} />
50
+ } else {
51
+ return null
52
+ }
53
+ })}
54
+ </CardCapsule>
55
+ )
56
+ }
@@ -0,0 +1 @@
1
+ export * from './TemplateVectorsAttribute'
@@ -0,0 +1,44 @@
1
+
2
+
3
+ ## Base Copy
4
+
5
+ - copy /_template/ directory to your place
6
+
7
+ ## Adapt to new type
8
+
9
+ ### Change URI locations
10
+ - in Link.jsx file (see subdir ./components/) change LinkURI
11
+ - in Link.jsx file change registerLink('YourGQLModel)
12
+
13
+ ### Register pages and components to Application
14
+ - rename RouterSegments in Page/RouterSegments.jsx
15
+ - insert RouterSegments into app router, so make them working
16
+
17
+
18
+ At some point you should restart vite.
19
+
20
+ - use http://localhost:8001/doc and graphiql at http://localhost:8001/gql to get queries and update AsyncActions, fragments, etc. in directory Queries
21
+ - readById
22
+ - readPage
23
+ - mutations (CUD)
24
+
25
+ - try to navigate in your app to URI defined in Link to reach list of items `/template/YOUDEFINED/list/'
26
+ - remove all errors until you get your app showing a table
27
+ - try to navigate from table into individual items
28
+ - check permission at API (source code etc.) to get info about neede roles for particular mutations
29
+ - UserAbsoluteAccessControlExtension or RbacProviderExtension
30
+ - set
31
+
32
+ - Change LargeCard, add there more buttons
33
+
34
+ - Update MediumContent.jsx file to show more or less data related to you entity
35
+ - Update MediumEditableContent.jsx file to allow edit of more or less data
36
+
37
+
38
+ ## Add new Mutations
39
+
40
+ - check gqlendpoint to cover all available mutations with appropriate permissions
41
+
42
+ ### Update filters
43
+
44
+ - Set Filter component, correct it at PageVector, do not forget to use appropriate name for query param in url
@@ -0,0 +1,71 @@
1
+
2
+ export * from './Components'
3
+ export * from './Scalars'
4
+ export * from './Vectors'
5
+ export * from './Queries'
6
+ export * from './Pages'
7
+
8
+ import {
9
+ CardCapsule,
10
+ Children,
11
+ CUDButton,
12
+ LargeCard,
13
+ Link,
14
+ MediumContent,
15
+ MediumCard,
16
+
17
+ MediumEditableContent,
18
+ LiveEdit
19
+
20
+ } from './Components'
21
+
22
+ import {
23
+ EditPage,
24
+ Page,
25
+ PageNavbar,
26
+ TemplateRouterSegments,
27
+ VectorPage
28
+ } from './Pages'
29
+
30
+ // import { UIActions } from './Queries'
31
+
32
+ export const TemplateUI = {
33
+ CardCapsule,
34
+ Children,
35
+ CUDButton,
36
+ LargeCard,
37
+ Link,
38
+ MediumContent,
39
+ MediumCard,
40
+
41
+ MediumEditableContent,
42
+ LiveEdit,
43
+
44
+ Page,
45
+ VectorPage,
46
+ EditPage,
47
+ PageNavbar,
48
+ TemplateRouterSegments
49
+ }
50
+
51
+
52
+
53
+ // export const TemplateUI = {
54
+ // CardCapsule: withUI(_TemplateUI)(_TemplateUI.CardCapsule),
55
+ // Children: withUI(_TemplateUI)(_TemplateUI.Children),
56
+ // CUDButton: withUI(_TemplateUI)(_TemplateUI.CUDButton),
57
+ // LargeCard: withUI(_TemplateUI)(_TemplateUI.LargeCard),
58
+ // Link: withUI(_TemplateUI)(_TemplateUI.Link),
59
+ // MediumContent: withUI(_TemplateUI)(_TemplateUI.MediumContent),
60
+ // MediumCard: withUI(_TemplateUI)(_TemplateUI.MediumCard),
61
+
62
+ // MediumEditableContent: withUI(_TemplateUI)(_TemplateUI.MediumEditableContent),
63
+ // LiveEdit: withUI(_TemplateUI)(_TemplateUI.LiveEdit),
64
+
65
+ // Page: withUI(_TemplateUI)(_TemplateUI.Page),
66
+ // VectorPage: withUI(_TemplateUI)(_TemplateUI.VectorPage),
67
+ // EditPage: withUI(_TemplateUI)(_TemplateUI.EditPage),
68
+ // PageNavbar: withUI(_TemplateUI)(_TemplateUI.PageNavbar),
69
+ // RouterSegment: withUI(_TemplateUI)(_TemplateUI.RouterSegment)
70
+ // }
71
+
@@ -0,0 +1,43 @@
1
+ import { PersonFill } from "react-bootstrap-icons"
2
+ import { Link } from "./Link"
3
+ import { CardCapsule as CardCapsule_ } from "../../Base/Components"
4
+
5
+ /**
6
+ * A specialized card component that displays an `TemplateLink` as its title and encapsulates additional content.
7
+ *
8
+ * This component extends the `CardCapsule` component by using a combination of a `PersonFill` icon and
9
+ * an `TemplateLink` component in the card's header. The `children` prop is used to render any content
10
+ * inside the card body. It is designed for use with entities represented by the `template` object.
11
+ *
12
+ * @component
13
+ * @param {Object} props - The props for the TemplateCardCapsule component.
14
+ * @param {Object} props.template - The object representing the template entity.
15
+ * @param {string|number} props.template.id - The unique identifier for the template entity.
16
+ * @param {string} props.template.name - The display name for the template entity.
17
+ * @param {React.ReactNode} [props.children=null] - The content to render inside the card's body.
18
+ *
19
+ * @returns {JSX.Element} The rendered card component with a dynamic title and body content.
20
+ *
21
+ * @example
22
+ * // Example usage:
23
+ * import { TemplateCardCapsule } from './TemplateCardCapsule';
24
+ * import { Button } from 'react-bootstrap';
25
+ *
26
+ * const templateEntity = { id: 123, name: "Example Entity" };
27
+ *
28
+ * <TemplateCardCapsule template={templateEntity}>
29
+ * <Button variant="primary">Click Me</Button>
30
+ * </TemplateCardCapsule>
31
+ */
32
+ export const CardCapsule = ({ item, children, title=null}) => {
33
+
34
+ if (!title) {
35
+ title = <><PersonFill /> <Link item={item} /></>
36
+ }
37
+ return (
38
+
39
+ <CardCapsule_ title={title}>
40
+ {children}
41
+ </CardCapsule_>
42
+ )
43
+ }
@@ -0,0 +1,31 @@
1
+ import { ChildWrapper } from "@hrbolek/uoisfrontend-shared";
2
+
3
+ /**
4
+ * TemplateChildren Component
5
+ *
6
+ * A utility React component that wraps its children with the `ChildWrapper` component,
7
+ * passing down an `template` entity along with other props to all child elements.
8
+ * This component is useful for injecting a common `template` entity into multiple children
9
+ * while preserving their existing functionality.
10
+ *
11
+ * @component
12
+ * @param {Object} props - The props for the TemplateChildren component.
13
+ * @param {any} props.template - An entity (e.g., object, string, or other data) to be passed to the children.
14
+ * @param {React.ReactNode} props.children - The children elements to be wrapped and enhanced.
15
+ * @param {...any} props - Additional props to be passed to each child element.
16
+ *
17
+ * @returns {JSX.Element} A `ChildWrapper` component containing the children with the injected `template` entity.
18
+ *
19
+ * @example
20
+ * // Example usage:
21
+ * const templateEntity = { id: 1, message: "No data available" };
22
+ *
23
+ * <TemplateChildren template={templateEntity}>
24
+ * <CustomMessage />
25
+ * <CustomIcon />
26
+ * </TemplateChildren>
27
+ *
28
+ * // Result: Both <CustomMessage /> and <CustomIcon /> receive the 'template' prop with the specified entity.
29
+ */
30
+ export const Children = ({item, children, ...props}) =>
31
+ <ChildWrapper item={item} children={children} {...props} />
@@ -0,0 +1,61 @@
1
+ import { UpdateAsyncAction } from "../Queries";
2
+ import { MediumEditableContent } from "./MediumEditableContent";
3
+ import { useEditAction } from "../../../../dynamic/src/Hooks/useEditAction";
4
+ import { useCallback } from "react";
5
+ import { useGQLEntityContext } from "../../Base/Helpers/GQLEntityProvider";
6
+
7
+
8
+ export const ConfirmEdit = ({ item, children }) => {
9
+ const { run , error, loading, entity, data, onChange: contextOnChange, onBlur: contextOnBlur } = useGQLEntityContext()
10
+
11
+ const localOnMutationEvent = useCallback((mutationHandler, notifyHandler) => async (e) => {
12
+ const newItem = { ...item, [e.target.id]: e.target.value }
13
+ const newEvent = { target: { value: newItem } }
14
+
15
+ await notifyHandler(newEvent)
16
+ return await mutationHandler(e)
17
+ })
18
+
19
+ const {
20
+ draft,
21
+ dirty,
22
+ onChange,
23
+ onBlur,
24
+ onCancel,
25
+ onConfirm,
26
+ } = useEditAction(UpdateAsyncAction, item, {mode: "confirm"})
27
+
28
+ const handleConfirm = useCallback(async () => {
29
+ const result = await onConfirm();
30
+ console.log("ConfirmEdit handleConfirm result", result, "draft", draft)
31
+ if (result) {
32
+ const event = { target: { value: result } };
33
+ // důležité: použij params z kontextu (provider si je drží jako "poslední vars")
34
+ await contextOnChange(event);
35
+ }
36
+ return result;
37
+ }, [onConfirm, contextOnChange]);
38
+
39
+
40
+ return (
41
+ <MediumEditableContent item={item} onChange={onChange} onBlur={onBlur} >
42
+ {children}
43
+ <hr />
44
+ {/* <pre>{JSON.stringify(item, null, 2)}</pre> */}
45
+ <button
46
+ className="btn btn-warning form-control"
47
+ onClick={onCancel}
48
+ disabled={!dirty || loading}
49
+ >
50
+ Zrušit změny
51
+ </button>
52
+ <button
53
+ className="btn btn-primary form-control"
54
+ onClick={handleConfirm}
55
+ disabled={!dirty || loading}
56
+ >
57
+ Uložit změny
58
+ </button>
59
+ </MediumEditableContent>
60
+ )
61
+ }
@@ -0,0 +1,14 @@
1
+ import { DateTimeFilter, Filter as BaseFilter, StringFilter, UUIDFilter } from "../../../../_template/src/Base/FormControls/Filter"
2
+
3
+ export const Filter = ({ id, onChange: handleChange, children }) => {
4
+ return (
5
+ <BaseFilter id={id} onChange={handleChange}>
6
+ <UUIDFilter id="id" />
7
+ <StringFilter id="name" />
8
+ <DateTimeFilter id="created" emitUtcIso={false} />
9
+ {/* <FloatFilter id="count" /> */}
10
+ {children}
11
+ </BaseFilter>
12
+ )
13
+ }
14
+