@webiny/app-headless-cms 5.33.5-beta.0 → 5.34.0-beta.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 (461) hide show
  1. package/HeadlessCMS.js +4 -0
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntryForm/ContentEntryForm.js +35 -32
  4. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
  5. package/admin/components/ContentEntryForm/Fields.d.ts +2 -2
  6. package/admin/components/ContentEntryForm/Fields.js.map +1 -1
  7. package/admin/components/ContentEntryForm/Label.js +1 -1
  8. package/admin/components/ContentEntryForm/Label.js.map +1 -1
  9. package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +2 -2
  10. package/admin/components/ContentEntryForm/RenderFieldElement.js +6 -2
  11. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
  12. package/admin/components/ContentEntryForm/functions/getValue.d.ts +2 -2
  13. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
  14. package/admin/components/ContentEntryForm/functions/setValue.d.ts +2 -2
  15. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
  16. package/admin/components/ContentEntryForm/useBind.d.ts +2 -2
  17. package/admin/components/ContentEntryForm/useBind.js +11 -8
  18. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  19. package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +1 -2
  20. package/admin/components/ContentEntryForm/useContentEntryForm.js +187 -147
  21. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
  22. package/admin/components/ContentModelEditor/{Context.d.ts → ContentModelEditorProvider.d.ts} +10 -4
  23. package/admin/components/ContentModelEditor/{Context.js → ContentModelEditorProvider.js} +60 -116
  24. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -0
  25. package/admin/components/ContentModelEditor/Editor.js +5 -5
  26. package/admin/components/ContentModelEditor/Editor.js.map +1 -1
  27. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
  28. package/admin/components/ContentModelEditor/PreviewTab.js +3 -3
  29. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
  30. package/admin/components/ContentModelEditor/index.d.ts +2 -0
  31. package/admin/components/ContentModelEditor/index.js +31 -0
  32. package/admin/components/ContentModelEditor/index.js.map +1 -0
  33. package/admin/components/ContentModelEditor/useModelEditor.d.ts +1 -0
  34. package/admin/components/ContentModelEditor/{useContentModelEditor.js → useModelEditor.js} +4 -4
  35. package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -0
  36. package/admin/{views/contentModelGroups → components}/DelayedOnChange.d.ts +0 -0
  37. package/admin/{views/contentModelGroups → components}/DelayedOnChange.js +0 -0
  38. package/admin/{views/contentModelGroups → components}/DelayedOnChange.js.map +0 -0
  39. package/admin/components/Dialog.d.ts +4 -0
  40. package/admin/components/Dialog.js +32 -0
  41. package/admin/components/Dialog.js.map +1 -0
  42. package/admin/components/DropZone/Center.d.ts +2 -1
  43. package/admin/components/DropZone/Center.js +38 -44
  44. package/admin/components/DropZone/Center.js.map +1 -1
  45. package/admin/components/Droppable.d.ts +1 -0
  46. package/admin/components/Droppable.js +12 -1
  47. package/admin/components/Droppable.js.map +1 -1
  48. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.d.ts +2 -8
  49. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +20 -9
  50. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
  51. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.d.ts +2 -9
  52. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +35 -21
  53. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  54. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.d.ts +2 -9
  55. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +14 -12
  56. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
  57. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.d.ts +10 -0
  58. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js +42 -0
  59. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js.map +1 -0
  60. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.d.ts +8 -0
  61. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js +227 -0
  62. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -0
  63. package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +13 -0
  64. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js +115 -0
  65. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -0
  66. package/admin/components/FieldEditor/EditFieldDialog.d.ts +3 -3
  67. package/admin/components/FieldEditor/EditFieldDialog.js +117 -260
  68. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
  69. package/admin/components/FieldEditor/Field.d.ts +5 -5
  70. package/admin/components/FieldEditor/Field.js +17 -14
  71. package/admin/components/FieldEditor/Field.js.map +1 -1
  72. package/admin/components/FieldEditor/FieldEditor.d.ts +4 -4
  73. package/admin/components/FieldEditor/FieldEditor.js +85 -31
  74. package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
  75. package/admin/components/FieldEditor/FieldEditorContext.d.ts +16 -16
  76. package/admin/components/FieldEditor/FieldEditorContext.js +18 -18
  77. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
  78. package/admin/components/FieldEditor/Styled.js +4 -13
  79. package/admin/components/FieldEditor/Styled.js.map +1 -1
  80. package/admin/components/FieldEditor/index.d.ts +1 -1
  81. package/admin/components/FieldEditor/index.js +3 -3
  82. package/admin/components/FieldEditor/index.js.map +1 -1
  83. package/admin/components/FieldEditor/useModelFieldEditor.d.ts +2 -0
  84. package/admin/components/FieldEditor/useModelFieldEditor.js +20 -0
  85. package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -0
  86. package/admin/components/FieldEditor/utils/deleteField.d.ts +2 -2
  87. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
  88. package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +2 -2
  89. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
  90. package/admin/components/FieldEditor/utils/moveField.d.ts +3 -3
  91. package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
  92. package/admin/components/IconPicker.d.ts +7 -0
  93. package/admin/{views/contentModelGroups → components}/IconPicker.js +34 -31
  94. package/admin/components/IconPicker.js.map +1 -0
  95. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +36 -0
  96. package/admin/components/ModelFieldProvider/ModelFieldContext.js +24 -0
  97. package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +1 -0
  98. package/admin/components/ModelFieldProvider/index.d.ts +2 -0
  99. package/admin/components/ModelFieldProvider/index.js +31 -0
  100. package/admin/components/ModelFieldProvider/index.js.map +1 -0
  101. package/admin/components/ModelFieldProvider/useModelField.d.ts +35 -0
  102. package/admin/components/ModelFieldProvider/useModelField.js +42 -0
  103. package/admin/components/ModelFieldProvider/useModelField.js.map +1 -0
  104. package/admin/components/ModelProvider/ModelContext.d.ts +9 -0
  105. package/admin/components/ModelProvider/ModelContext.js +24 -0
  106. package/admin/components/ModelProvider/ModelContext.js.map +1 -0
  107. package/admin/components/ModelProvider/index.d.ts +2 -0
  108. package/admin/components/ModelProvider/index.js +31 -0
  109. package/admin/components/ModelProvider/index.js.map +1 -0
  110. package/admin/components/ModelProvider/useModel.d.ts +9 -0
  111. package/admin/components/ModelProvider/useModel.js +25 -0
  112. package/admin/components/ModelProvider/useModel.js.map +1 -0
  113. package/admin/constants/statusLabels.js +2 -4
  114. package/admin/constants/statusLabels.js.map +1 -1
  115. package/admin/graphql/contentEntries.d.ts +2 -29
  116. package/admin/graphql/contentEntries.js +28 -42
  117. package/admin/graphql/contentEntries.js.map +1 -1
  118. package/admin/graphql/contentModels.d.ts +1 -1
  119. package/admin/graphql/contentModels.js +2 -2
  120. package/admin/graphql/contentModels.js.map +1 -1
  121. package/admin/graphql/createFieldsList.d.ts +7 -2
  122. package/admin/graphql/createFieldsList.js +5 -1
  123. package/admin/graphql/createFieldsList.js.map +1 -1
  124. package/admin/hooks/index.d.ts +5 -0
  125. package/admin/hooks/index.js +47 -2
  126. package/admin/hooks/index.js.map +1 -1
  127. package/admin/hooks/usePermission.d.ts +0 -2
  128. package/admin/hooks/usePermission.js +5 -37
  129. package/admin/hooks/usePermission.js.map +1 -1
  130. package/admin/menus/NothingToShowElement.js +4 -1
  131. package/admin/menus/NothingToShowElement.js.map +1 -1
  132. package/admin/plugins/arrayUtils.d.ts +12 -0
  133. package/admin/plugins/arrayUtils.js +53 -0
  134. package/admin/plugins/arrayUtils.js.map +1 -0
  135. package/admin/plugins/editor/defaultBar/CreateContentButton.js +4 -4
  136. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
  137. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +5 -5
  138. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
  139. package/admin/plugins/editor/defaultBar/Name/Name.js +4 -4
  140. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
  141. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +3 -3
  142. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
  143. package/admin/plugins/editor/formSettings/components/GeneralSettings.js +9 -1
  144. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
  145. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +3 -3
  146. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  147. package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -2
  148. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
  149. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
  150. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
  151. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
  152. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
  153. package/admin/plugins/fieldRenderers/dateTime/Input.d.ts +2 -2
  154. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  155. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +2 -2
  156. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  157. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +12 -0
  158. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js +107 -0
  159. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -0
  160. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +11 -0
  161. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +139 -0
  162. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -0
  163. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +11 -0
  164. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +68 -0
  165. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -0
  166. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +8 -0
  167. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js +63 -0
  168. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -0
  169. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +8 -0
  170. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js +53 -0
  171. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -0
  172. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +6 -0
  173. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js +22 -0
  174. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -0
  175. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.d.ts +2 -0
  176. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +66 -0
  177. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -0
  178. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
  179. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -2
  180. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  181. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -2
  182. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
  183. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +10 -9
  184. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
  185. package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +2 -2
  186. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  187. package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +2 -2
  188. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
  189. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.d.ts +2 -2
  190. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +15 -14
  191. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
  192. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
  193. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
  194. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  195. package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +2 -2
  196. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
  197. package/admin/plugins/fieldValidators/dateGte.d.ts +2 -2
  198. package/admin/plugins/fieldValidators/dateGte.js +79 -23
  199. package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
  200. package/admin/plugins/fieldValidators/dateLte.d.ts +2 -2
  201. package/admin/plugins/fieldValidators/dateLte.js +79 -23
  202. package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
  203. package/admin/plugins/fieldValidators/dynamicZone.d.ts +2 -0
  204. package/admin/plugins/fieldValidators/dynamicZone.js +215 -0
  205. package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -0
  206. package/admin/plugins/fieldValidators/gte.d.ts +2 -2
  207. package/admin/plugins/fieldValidators/gte.js +44 -5
  208. package/admin/plugins/fieldValidators/gte.js.map +1 -1
  209. package/admin/plugins/fieldValidators/in.d.ts +2 -2
  210. package/admin/plugins/fieldValidators/in.js +44 -5
  211. package/admin/plugins/fieldValidators/in.js.map +1 -1
  212. package/admin/plugins/fieldValidators/lte.d.ts +2 -2
  213. package/admin/plugins/fieldValidators/lte.js +44 -5
  214. package/admin/plugins/fieldValidators/lte.js.map +1 -1
  215. package/admin/plugins/fieldValidators/maxLength.d.ts +2 -2
  216. package/admin/plugins/fieldValidators/maxLength.js +55 -6
  217. package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
  218. package/admin/plugins/fieldValidators/minLength.d.ts +2 -2
  219. package/admin/plugins/fieldValidators/minLength.js +55 -6
  220. package/admin/plugins/fieldValidators/minLength.js.map +1 -1
  221. package/admin/plugins/fieldValidators/pattern.d.ts +2 -2
  222. package/admin/plugins/fieldValidators/pattern.js +129 -60
  223. package/admin/plugins/fieldValidators/pattern.js.map +1 -1
  224. package/admin/plugins/fieldValidators/patternPlugins/email.d.ts +2 -2
  225. package/admin/plugins/fieldValidators/patternPlugins/email.js +6 -4
  226. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
  227. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.d.ts +2 -2
  228. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +5 -3
  229. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
  230. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.d.ts +2 -2
  231. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +5 -3
  232. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
  233. package/admin/plugins/fieldValidators/patternPlugins/upperCase.d.ts +2 -2
  234. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +5 -3
  235. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
  236. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.d.ts +2 -2
  237. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +5 -3
  238. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
  239. package/admin/plugins/fieldValidators/patternPlugins/url.d.ts +2 -2
  240. package/admin/plugins/fieldValidators/patternPlugins/url.js +5 -3
  241. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
  242. package/admin/plugins/fieldValidators/required.d.ts +2 -2
  243. package/admin/plugins/fieldValidators/required.js +8 -2
  244. package/admin/plugins/fieldValidators/required.js.map +1 -1
  245. package/admin/plugins/fieldValidators/unique.d.ts +2 -2
  246. package/admin/plugins/fieldValidators/unique.js +30 -2
  247. package/admin/plugins/fieldValidators/unique.js.map +1 -1
  248. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -2
  249. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +25 -26
  250. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
  251. package/admin/plugins/fields/boolean.d.ts +2 -2
  252. package/admin/plugins/fields/boolean.js +6 -5
  253. package/admin/plugins/fields/boolean.js.map +1 -1
  254. package/admin/plugins/fields/dateTime.d.ts +2 -2
  255. package/admin/plugins/fields/dateTime.js +58 -48
  256. package/admin/plugins/fields/dateTime.js.map +1 -1
  257. package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +11 -0
  258. package/admin/plugins/fields/dynamicZone/AddTemplate.js +114 -0
  259. package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -0
  260. package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -0
  261. package/admin/plugins/fields/dynamicZone/DynamicZone.js +82 -0
  262. package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -0
  263. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +11 -0
  264. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js +127 -0
  265. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -0
  266. package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +9 -0
  267. package/admin/plugins/fields/dynamicZone/TemplateDialog.js +174 -0
  268. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -0
  269. package/admin/plugins/fields/dynamicZone/commonValidators.d.ts +2 -0
  270. package/admin/plugins/fields/dynamicZone/commonValidators.js +26 -0
  271. package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -0
  272. package/admin/plugins/fields/dynamicZone.d.ts +2 -0
  273. package/admin/plugins/fields/dynamicZone.js +97 -0
  274. package/admin/plugins/fields/dynamicZone.js.map +1 -0
  275. package/admin/plugins/fields/file.d.ts +2 -2
  276. package/admin/plugins/fields/file.js +6 -5
  277. package/admin/plugins/fields/file.js.map +1 -1
  278. package/admin/plugins/fields/longText.d.ts +2 -2
  279. package/admin/plugins/fields/longText.js +4 -3
  280. package/admin/plugins/fields/longText.js.map +1 -1
  281. package/admin/plugins/fields/number.d.ts +2 -2
  282. package/admin/plugins/fields/number.js +6 -5
  283. package/admin/plugins/fields/number.js.map +1 -1
  284. package/admin/plugins/fields/object/ObjectFields.d.ts +2 -2
  285. package/admin/plugins/fields/object/ObjectFields.js +3 -3
  286. package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
  287. package/admin/plugins/fields/object.d.ts +2 -2
  288. package/admin/plugins/fields/object.js +9 -4
  289. package/admin/plugins/fields/object.js.map +1 -1
  290. package/admin/plugins/fields/ref.d.ts +2 -2
  291. package/admin/plugins/fields/ref.js +108 -100
  292. package/admin/plugins/fields/ref.js.map +1 -1
  293. package/admin/plugins/fields/richText.d.ts +2 -2
  294. package/admin/plugins/fields/richText.js +6 -5
  295. package/admin/plugins/fields/richText.js.map +1 -1
  296. package/admin/plugins/fields/text.d.ts +2 -2
  297. package/admin/plugins/fields/text.js +4 -3
  298. package/admin/plugins/fields/text.js.map +1 -1
  299. package/admin/plugins/index.d.ts +28 -1
  300. package/admin/plugins/permissionRenderer/CmsPermissions.js +2 -7
  301. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
  302. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +11 -17
  303. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
  304. package/admin/plugins/transformers/dateTransformer.d.ts +1 -2
  305. package/admin/plugins/transformers/dateTransformer.js +3 -3
  306. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  307. package/admin/plugins/transformers/dynamicZoneTransformer.d.ts +2 -0
  308. package/admin/plugins/transformers/dynamicZoneTransformer.js +45 -0
  309. package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -0
  310. package/admin/plugins/transformers/index.js +5 -5
  311. package/admin/plugins/transformers/index.js.map +1 -1
  312. package/admin/plugins/transformers/numberTransformer.d.ts +1 -2
  313. package/admin/plugins/transformers/numberTransformer.js +3 -3
  314. package/admin/plugins/transformers/numberTransformer.js.map +1 -1
  315. package/admin/views/contentEntries/ContentEntries.js +6 -2
  316. package/admin/views/contentEntries/ContentEntries.js.map +1 -1
  317. package/admin/views/contentEntries/ContentEntriesContext.d.ts +4 -4
  318. package/admin/views/contentEntries/ContentEntriesContext.js +1 -9
  319. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  320. package/admin/views/contentEntries/ContentEntriesList.js +23 -8
  321. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  322. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +19 -4
  323. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  324. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +60 -60
  325. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
  326. package/admin/views/contentEntries/ContentEntry/cache.js +5 -1
  327. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  328. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -1
  329. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +3 -80
  330. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
  331. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +1 -1
  332. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +3 -84
  333. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
  334. package/admin/views/contentEntries/ContentEntry/prepareFormData.d.ts +2 -2
  335. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
  336. package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +0 -8
  337. package/admin/views/contentEntries/ContentEntry/useRevision.js +10 -122
  338. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
  339. package/admin/views/contentEntries/ContentEntry.js +0 -2
  340. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  341. package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +2 -2
  342. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +27 -14
  343. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
  344. package/admin/views/contentEntries/hooks/useContentEntries.js +7 -1
  345. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
  346. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
  347. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  348. package/admin/views/contentModelGroups/ContentModelGroupsForm.js +2 -2
  349. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
  350. package/admin/views/contentModels/CloneContentModelDialog.js +4 -17
  351. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
  352. package/admin/views/contentModels/ContentModelEditor.js +2 -2
  353. package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
  354. package/admin/views/contentModels/NewContentModelDialog.js +5 -17
  355. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  356. package/admin/viewsGraphql.js +1 -1
  357. package/admin/viewsGraphql.js.map +1 -1
  358. package/allPlugins.d.ts +34 -0
  359. package/allPlugins.js +95 -0
  360. package/allPlugins.js.map +1 -0
  361. package/index.d.ts +1 -0
  362. package/index.js +15 -1
  363. package/index.js.map +1 -1
  364. package/package.json +29 -29
  365. package/{types.d.ts → types/index.d.ts} +59 -176
  366. package/types/index.js +44 -0
  367. package/types/index.js.map +1 -0
  368. package/types/model.d.ts +83 -0
  369. package/{types.js → types/model.js} +0 -0
  370. package/types/model.js.map +1 -0
  371. package/types/shared.d.ts +5 -0
  372. package/types/shared.js +5 -0
  373. package/types/shared.js.map +1 -0
  374. package/types/validation.d.ts +70 -0
  375. package/types/validation.js +5 -0
  376. package/types/validation.js.map +1 -0
  377. package/utils/CmsModelFieldValidatorConfigAdapter.d.ts +15 -0
  378. package/utils/CmsModelFieldValidatorConfigAdapter.js +91 -0
  379. package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -0
  380. package/utils/createTypeName.d.ts +1 -0
  381. package/utils/createTypeName.js +18 -0
  382. package/utils/createTypeName.js.map +1 -0
  383. package/utils/createValidators.d.ts +3 -0
  384. package/{admin/components/ContentEntryForm/functions → utils}/createValidators.js +37 -16
  385. package/utils/createValidators.js.map +1 -0
  386. package/utils/getFetchPolicy.d.ts +6 -0
  387. package/utils/getFetchPolicy.js +19 -0
  388. package/utils/getFetchPolicy.js.map +1 -0
  389. package/utils/getModelTitleFieldId.d.ts +2 -0
  390. package/utils/getModelTitleFieldId.js +16 -0
  391. package/utils/getModelTitleFieldId.js.map +1 -0
  392. package/admin/components/ContentEntryForm/functions/createValidators.d.ts +0 -3
  393. package/admin/components/ContentEntryForm/functions/createValidators.js.map +0 -1
  394. package/admin/components/ContentModelEditor/Context.js.map +0 -1
  395. package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +0 -1
  396. package/admin/components/ContentModelEditor/useContentModelEditor.js.map +0 -1
  397. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +0 -15
  398. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +0 -148
  399. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +0 -1
  400. package/admin/components/FieldEditor/useFieldEditor.d.ts +0 -1
  401. package/admin/components/FieldEditor/useFieldEditor.js +0 -14
  402. package/admin/components/FieldEditor/useFieldEditor.js.map +0 -1
  403. package/admin/plugins/validators/dateGte.d.ts +0 -3
  404. package/admin/plugins/validators/dateGte.js +0 -68
  405. package/admin/plugins/validators/dateGte.js.map +0 -1
  406. package/admin/plugins/validators/dateLte.d.ts +0 -3
  407. package/admin/plugins/validators/dateLte.js +0 -68
  408. package/admin/plugins/validators/dateLte.js.map +0 -1
  409. package/admin/plugins/validators/gte.d.ts +0 -3
  410. package/admin/plugins/validators/gte.js +0 -57
  411. package/admin/plugins/validators/gte.js.map +0 -1
  412. package/admin/plugins/validators/in.d.ts +0 -3
  413. package/admin/plugins/validators/in.js +0 -57
  414. package/admin/plugins/validators/in.js.map +0 -1
  415. package/admin/plugins/validators/lte.d.ts +0 -3
  416. package/admin/plugins/validators/lte.js +0 -57
  417. package/admin/plugins/validators/lte.js.map +0 -1
  418. package/admin/plugins/validators/maxLength.d.ts +0 -3
  419. package/admin/plugins/validators/maxLength.js +0 -57
  420. package/admin/plugins/validators/maxLength.js.map +0 -1
  421. package/admin/plugins/validators/minLength.d.ts +0 -3
  422. package/admin/plugins/validators/minLength.js +0 -57
  423. package/admin/plugins/validators/minLength.js.map +0 -1
  424. package/admin/plugins/validators/pattern.d.ts +0 -3
  425. package/admin/plugins/validators/pattern.js +0 -77
  426. package/admin/plugins/validators/pattern.js.map +0 -1
  427. package/admin/plugins/validators/patternPlugins/email.d.ts +0 -3
  428. package/admin/plugins/validators/patternPlugins/email.js +0 -17
  429. package/admin/plugins/validators/patternPlugins/email.js.map +0 -1
  430. package/admin/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
  431. package/admin/plugins/validators/patternPlugins/lowerCase.js +0 -17
  432. package/admin/plugins/validators/patternPlugins/lowerCase.js.map +0 -1
  433. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.d.ts +0 -3
  434. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +0 -17
  435. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +0 -1
  436. package/admin/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
  437. package/admin/plugins/validators/patternPlugins/upperCase.js +0 -17
  438. package/admin/plugins/validators/patternPlugins/upperCase.js.map +0 -1
  439. package/admin/plugins/validators/patternPlugins/upperCaseSpace.d.ts +0 -3
  440. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +0 -17
  441. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +0 -1
  442. package/admin/plugins/validators/patternPlugins/url.d.ts +0 -3
  443. package/admin/plugins/validators/patternPlugins/url.js +0 -17
  444. package/admin/plugins/validators/patternPlugins/url.js.map +0 -1
  445. package/admin/plugins/validators/required.d.ts +0 -3
  446. package/admin/plugins/validators/required.js +0 -21
  447. package/admin/plugins/validators/required.js.map +0 -1
  448. package/admin/plugins/validators/timeGte.d.ts +0 -3
  449. package/admin/plugins/validators/timeGte.js +0 -59
  450. package/admin/plugins/validators/timeGte.js.map +0 -1
  451. package/admin/plugins/validators/timeLte.d.ts +0 -3
  452. package/admin/plugins/validators/timeLte.js +0 -59
  453. package/admin/plugins/validators/timeLte.js.map +0 -1
  454. package/admin/plugins/validators/unique.d.ts +0 -7
  455. package/admin/plugins/validators/unique.js +0 -50
  456. package/admin/plugins/validators/unique.js.map +0 -1
  457. package/admin/views/contentEntries/ContentEntry/header/requestChanges/rule-24px.svg +0 -1
  458. package/admin/views/contentEntries/ContentEntry/header/requestReview/emoji_people-24px.svg +0 -1
  459. package/admin/views/contentModelGroups/IconPicker.d.ts +0 -8
  460. package/admin/views/contentModelGroups/IconPicker.js.map +0 -1
  461. package/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["convertDefaultValue","field","value","type","Boolean","Number","useContentEntryForm","params","useContentEntry","listQueryVariables","contentModel","entry","useRouter","history","useSnackbar","showSnackbar","useState","invalidFields","setInvalidFields","loading","setLoading","renderPlugins","useMemo","plugins","byType","goToRevision","useCallback","id","push","modelId","encodeURIComponent","CREATE_CONTENT","createCreateMutation","UPDATE_CONTENT","createUpdateMutation","CREATE_CONTENT_FROM","createCreateFromMutation","useMutation","createMutation","updateMutation","createFromMutation","setInvalidFieldValues","errors","Array","isArray","values","reduce","acc","er","fieldId","error","resetInvalidFieldValues","createContent","data","variables","update","cache","response","content","message","addEntryToListCache","GQLCache","name","onSubmit","updateContent","revision","createContentFrom","formData","newRevision","updateLatestRevisionInListCache","addRevisionToRevisionsCache","onChange","form","fieldsIds","fields","map","item","pick","gqlData","prepareFormData","meta","isLocked","locked","defaultValues","settings","multipleValues","defaultValue","undefined","predefinedValues","enabled","selectedValue","find","selected","filter"],"sources":["useContentEntryForm.ts"],"sourcesContent":["import { Dispatch, SetStateAction, useCallback, useMemo, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { FormOnSubmit } from \"@webiny/form\";\nimport {\n createCreateFromMutation,\n createCreateMutation,\n createUpdateMutation,\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables,\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n} from \"~/admin/graphql/contentEntries\";\nimport { useMutation } from \"~/admin/hooks\";\nimport * as GQLCache from \"~/admin/views/contentEntries/ContentEntry/cache\";\nimport { prepareFormData } from \"~/admin/views/contentEntries/ContentEntry/prepareFormData\";\nimport {\n CmsEditorContentEntry,\n CmsEditorContentModel,\n CmsEditorField,\n CmsEditorFieldRendererPlugin\n} from \"~/types\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { plugins } from \"@webiny/plugins\";\n\n/**\n * Used for some fields to convert their values.\n */\nconst convertDefaultValue = (field: CmsEditorField, value: any): string | number | boolean => {\n switch (field.type) {\n case \"boolean\":\n return Boolean(value);\n case \"number\":\n return Number(value);\n default:\n return value;\n }\n};\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\ninterface UseContentEntryForm {\n data: Record<string, any>;\n loading: boolean;\n setLoading: Dispatch<SetStateAction<boolean>>;\n onChange: FormOnSubmit;\n onSubmit: FormOnSubmit;\n invalidFields: Record<string, string>;\n renderPlugins: CmsEditorFieldRendererPlugin[];\n}\n\nexport interface UseContentEntryFormParams {\n contentModel: CmsEditorContentModel;\n entry: Partial<CmsEditorContentEntry>;\n onChange?: FormOnSubmit;\n onSubmit?: FormOnSubmit;\n addEntryToListCache: boolean;\n}\n\nexport function useContentEntryForm(params: UseContentEntryFormParams): UseContentEntryForm {\n const { listQueryVariables } = useContentEntry();\n const { contentModel, entry } = params;\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const [invalidFields, setInvalidFields] = useState<Record<string, string>>({});\n const [loading, setLoading] = useState(false);\n\n const renderPlugins = useMemo(\n () => plugins.byType<CmsEditorFieldRendererPlugin>(\"cms-editor-field-renderer\"),\n []\n );\n\n const goToRevision = useCallback(id => {\n history.push(`/cms/content-entries/${contentModel.modelId}?id=${encodeURIComponent(id)}`);\n }, []);\n\n const { CREATE_CONTENT, UPDATE_CONTENT, CREATE_CONTENT_FROM } = useMemo(() => {\n return {\n // LIST_CONTENT: createListQuery(contentModel),\n CREATE_CONTENT: createCreateMutation(contentModel),\n UPDATE_CONTENT: createUpdateMutation(contentModel),\n CREATE_CONTENT_FROM: createCreateFromMutation(contentModel)\n };\n }, [contentModel.modelId]);\n\n const [createMutation] = useMutation<\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables\n >(CREATE_CONTENT);\n const [updateMutation] = useMutation<\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables\n >(UPDATE_CONTENT);\n const [createFromMutation] = useMutation<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >(CREATE_CONTENT_FROM);\n\n /**\n * Note that when passing error.data variable we cast as InvalidFieldError[] because we know it is so.\n */\n const setInvalidFieldValues = (errors?: InvalidFieldError[]): void => {\n if (Array.isArray(errors) === false || !errors) {\n return;\n }\n const values = (errors || []).reduce((acc, er) => {\n acc[er.fieldId] = er.error;\n return acc;\n }, {} as Record<string, string>);\n setInvalidFields(() => values);\n };\n\n const resetInvalidFieldValues = (): void => {\n setInvalidFields(() => ({}));\n };\n\n const createContent = useCallback(\n async data => {\n setLoading(true);\n const response = await createMutation({\n variables: { data },\n update(cache, response) {\n if (!response.data) {\n showSnackbar(\"Missing response data in Create Entry.\");\n return;\n }\n const { data } = response;\n const { data: entry, error } = data.content || {};\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return;\n } else if (!entry) {\n showSnackbar(\n \"Missing entry data in update callback on Create Entry Response.\"\n );\n return;\n }\n resetInvalidFieldValues();\n if (params.addEntryToListCache) {\n GQLCache.addEntryToListCache(\n contentModel,\n cache,\n entry,\n listQueryVariables\n );\n }\n }\n });\n setLoading(false);\n\n const { error, data: entry } = response.data?.content || {};\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return null;\n } else if (!entry) {\n showSnackbar(\"Missing entry data in Create Entry Response.\");\n return null;\n }\n resetInvalidFieldValues();\n showSnackbar(`${contentModel.name} entry created successfully!`);\n if (typeof params.onSubmit === \"function\") {\n params.onSubmit(entry);\n } else {\n goToRevision(entry.id);\n }\n return entry;\n },\n [contentModel.modelId, listQueryVariables, params.onSubmit, params.addEntryToListCache]\n );\n\n const updateContent = useCallback(\n async (revision, data) => {\n setLoading(true);\n const response = await updateMutation({\n variables: { revision, data }\n });\n setLoading(false);\n if (!response.data) {\n showSnackbar(\"Missing response data on Update Entry Response.\");\n return;\n }\n\n const { error } = response.data.content;\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return null;\n }\n\n resetInvalidFieldValues();\n showSnackbar(\"Content saved successfully.\");\n const { data: entry } = response.data.content;\n return entry;\n },\n [contentModel.modelId]\n );\n\n const createContentFrom = useCallback(\n async (revision: string, formData: Record<string, any>) => {\n setLoading(true);\n const response = await createFromMutation({\n variables: { revision, data: formData },\n update(cache, response) {\n if (!response.data) {\n showSnackbar(\n \"Missing data in update callback on Create From Entry Response.\"\n );\n return;\n }\n const { data: newRevision, error } = response.data.content;\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return;\n } else if (!newRevision) {\n showSnackbar(\"Missing entry data in update callback on Create From Entry.\");\n return;\n }\n resetInvalidFieldValues();\n GQLCache.updateLatestRevisionInListCache(\n contentModel,\n cache,\n newRevision,\n listQueryVariables\n );\n GQLCache.addRevisionToRevisionsCache(contentModel, cache, newRevision);\n\n showSnackbar(\"A new revision was created!\");\n goToRevision(newRevision.id);\n }\n });\n setLoading(false);\n\n if (!response.data) {\n showSnackbar(\"Missing response data on Create From Entry Mutation.\");\n return;\n }\n\n const { data, error } = response.data.content;\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return null;\n }\n resetInvalidFieldValues();\n\n return data;\n },\n [contentModel.modelId, listQueryVariables]\n );\n\n const onChange: FormOnSubmit = (data, form) => {\n if (!params.onChange) {\n return;\n }\n return params.onChange(data, form);\n };\n\n const onSubmit = async (data: Record<string, any>) => {\n const fieldsIds = contentModel.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, contentModel.fields);\n if (!entry.id) {\n return createContent(gqlData);\n }\n\n const { meta } = entry;\n const { locked: isLocked } = meta || {};\n\n if (!isLocked) {\n return updateContent(entry.id, gqlData);\n }\n return createContentFrom(entry.id, gqlData);\n };\n\n const defaultValues = useMemo((): Record<string, any> => {\n const values: Record<string, any> = {};\n /**\n * Assign the default values:\n * * check the settings.defaultValue\n * * check the predefinedValues for selected value\n */\n for (const field of contentModel.fields) {\n /**\n * When checking if defaultValue is set in settings, we do the undefined check because it can be null, 0, empty string, false, etc...\n */\n const { settings, multipleValues = false } = field;\n if (settings && settings.defaultValue !== undefined) {\n /**\n * Special type of field is the boolean one.\n * We MUST set true/false for default value.\n */\n values[field.fieldId] = convertDefaultValue(field, settings.defaultValue);\n continue;\n }\n /**\n * No point in going further if predefined values are not enabled.\n */\n const { predefinedValues } = field;\n if (\n !predefinedValues ||\n !predefinedValues.enabled ||\n Array.isArray(predefinedValues.values) === false\n ) {\n continue;\n }\n /**\n * When field is not a multiple values one, we find the first possible default selected value and set it as field value.\n */\n if (!multipleValues) {\n const selectedValue = predefinedValues.values.find(({ selected }) => {\n return !!selected;\n });\n if (selectedValue) {\n values[field.fieldId] = convertDefaultValue(field, selectedValue.value);\n }\n continue;\n }\n /**\n *\n */\n values[field.fieldId] = predefinedValues.values\n .filter(({ selected }) => !!selected)\n .map(({ value }) => {\n return convertDefaultValue(field, value);\n });\n }\n return values;\n }, [contentModel.modelId]);\n\n return {\n /**\n * If entry is not set or entry.id does not exist, it means that form is for the new entry, so fetch default values.\n */\n data: entry && entry.id ? entry : defaultValues,\n loading,\n setLoading,\n onChange,\n onSubmit,\n invalidFields,\n renderPlugins\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["convertDefaultValue","field","value","type","Boolean","Number","useEntry","entryFromProps","useState","entry","setEntry","useCms","onEntryRevisionPublish","useEffect","id","next","params","publishRes","meta","useContentEntryForm","useContentEntry","listQueryVariables","useModel","model","useRouter","history","client","useApolloClient","useSnackbar","showSnackbar","invalidFields","setInvalidFields","loading","setLoading","renderPlugins","useMemo","plugins","byType","goToRevision","useCallback","push","modelId","encodeURIComponent","CREATE_CONTENT","createCreateMutation","UPDATE_CONTENT","createUpdateMutation","CREATE_CONTENT_FROM","createCreateFromMutation","useMutation","createMutation","updateMutation","createFromMutation","setInvalidFieldValues","errors","Array","isArray","values","reduce","acc","er","fieldId","error","resetInvalidFieldValues","createContent","formData","form","variables","data","fetchPolicy","getFetchPolicy","response","content","message","addEntryToListCache","GQLCache","cache","name","onSubmit","updateContent","revision","createContentFrom","newRevision","updateLatestRevisionInListCache","addRevisionToRevisionsCache","onChange","fieldsIds","fields","map","item","pick","gqlData","prepareFormData","isLocked","locked","defaultValues","settings","multipleValues","defaultValue","undefined","predefinedValues","enabled","selectedValue","find","selected","filter"],"sources":["useContentEntryForm.ts"],"sourcesContent":["import { Dispatch, SetStateAction, useCallback, useMemo, useState, useEffect } from \"react\";\nimport pick from \"lodash/pick\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { FormOnSubmit } from \"@webiny/form\";\nimport {\n createCreateFromMutation,\n createCreateMutation,\n createUpdateMutation,\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables,\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n} from \"~/admin/graphql/contentEntries\";\nimport { useApolloClient, useCms, useModel, useMutation } from \"~/admin/hooks\";\nimport * as GQLCache from \"~/admin/views/contentEntries/ContentEntry/cache\";\nimport { prepareFormData } from \"~/admin/views/contentEntries/ContentEntry/prepareFormData\";\nimport { CmsEditorContentEntry, CmsModelField, CmsEditorFieldRendererPlugin } from \"~/types\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { plugins } from \"@webiny/plugins\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\n\n/**\n * Used for some fields to convert their values.\n */\nconst convertDefaultValue = (field: CmsModelField, value: any): string | number | boolean => {\n switch (field.type) {\n case \"boolean\":\n return Boolean(value);\n case \"number\":\n return Number(value);\n default:\n return value;\n }\n};\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\ninterface UseContentEntryForm {\n data: Record<string, any>;\n loading: boolean;\n setLoading: Dispatch<SetStateAction<boolean>>;\n onChange: FormOnSubmit;\n onSubmit: FormOnSubmit;\n invalidFields: Record<string, string>;\n renderPlugins: CmsEditorFieldRendererPlugin[];\n}\n\nexport interface UseContentEntryFormParams {\n entry: Partial<CmsEditorContentEntry>;\n onChange?: FormOnSubmit;\n onSubmit?: FormOnSubmit;\n addEntryToListCache: boolean;\n}\n\nfunction useEntry(entryFromProps: Partial<CmsEditorContentEntry>) {\n // We need to keep track of the entry locally\n const [entry, setEntry] = useState(entryFromProps);\n const { onEntryRevisionPublish } = useCms();\n\n useEffect(() => {\n setEntry(entryFromProps);\n\n if (!entryFromProps.id) {\n return;\n }\n\n return onEntryRevisionPublish(next => async params => {\n const publishRes = await next(params);\n setEntry(entry => {\n return { ...entry, meta: publishRes?.entry?.meta || {} };\n });\n return publishRes;\n });\n }, [entryFromProps, entry.id]);\n\n return entry;\n}\n\nexport function useContentEntryForm(params: UseContentEntryFormParams): UseContentEntryForm {\n const { listQueryVariables } = useContentEntry();\n const { model } = useModel();\n const { history } = useRouter();\n const client = useApolloClient();\n const { showSnackbar } = useSnackbar();\n const [invalidFields, setInvalidFields] = useState<Record<string, string>>({});\n const [loading, setLoading] = useState(false);\n const entry = useEntry(params.entry);\n\n const renderPlugins = useMemo(\n () => plugins.byType<CmsEditorFieldRendererPlugin>(\"cms-editor-field-renderer\"),\n []\n );\n\n const goToRevision = useCallback(id => {\n history.push(`/cms/content-entries/${model.modelId}?id=${encodeURIComponent(id)}`);\n }, []);\n\n const { CREATE_CONTENT, UPDATE_CONTENT, CREATE_CONTENT_FROM } = useMemo(() => {\n return {\n // LIST_CONTENT: createListQuery(model),\n CREATE_CONTENT: createCreateMutation(model),\n UPDATE_CONTENT: createUpdateMutation(model),\n CREATE_CONTENT_FROM: createCreateFromMutation(model)\n };\n }, [model.modelId]);\n\n const [createMutation] = useMutation<\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables\n >(CREATE_CONTENT);\n const [updateMutation] = useMutation<\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables\n >(UPDATE_CONTENT);\n const [createFromMutation] = useMutation<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >(CREATE_CONTENT_FROM);\n\n /**\n * Note that when passing `error.data` variable we cast as InvalidFieldError[] because we know it is so.\n */\n const setInvalidFieldValues = (errors?: InvalidFieldError[]): void => {\n if (Array.isArray(errors) === false || !errors) {\n return;\n }\n const values = (errors || []).reduce((acc, er) => {\n acc[er.fieldId] = er.error;\n return acc;\n }, {} as Record<string, string>);\n setInvalidFields(() => values);\n };\n\n const resetInvalidFieldValues = (): void => {\n setInvalidFields(() => ({}));\n };\n\n const createContent: FormOnSubmit = useCallback(\n async (formData, form) => {\n setLoading(true);\n const response = await createMutation({\n variables: { data: formData },\n fetchPolicy: getFetchPolicy(model)\n });\n\n setLoading(false);\n\n // Finalize \"create\" process\n if (!response.data) {\n showSnackbar(\"Missing response data in Create Entry.\");\n return;\n }\n const { data: entry, error } = response.data.content || {};\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return;\n } else if (!entry) {\n showSnackbar(\"Missing entry data in Create Entry Response.\");\n return;\n }\n resetInvalidFieldValues();\n if (params.addEntryToListCache) {\n GQLCache.addEntryToListCache(model, client.cache, entry, listQueryVariables);\n }\n\n showSnackbar(`${model.name} entry created successfully!`);\n if (typeof params.onSubmit === \"function\") {\n params.onSubmit(entry, form);\n } else {\n goToRevision(entry.id);\n }\n return entry;\n },\n [model.modelId, listQueryVariables, params.onSubmit, params.addEntryToListCache]\n );\n\n const updateContent = useCallback(\n async (revision, data) => {\n setLoading(true);\n const response = await updateMutation({\n variables: { revision, data },\n fetchPolicy: getFetchPolicy(model)\n });\n setLoading(false);\n if (!response.data) {\n showSnackbar(\"Missing response data on Update Entry Response.\");\n return;\n }\n\n const { error } = response.data.content;\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return null;\n }\n\n resetInvalidFieldValues();\n showSnackbar(\"Content saved successfully.\");\n const { data: entry } = response.data.content;\n return entry;\n },\n [model.modelId]\n );\n\n const createContentFrom = useCallback(\n async (revision: string, formData: Record<string, any>) => {\n setLoading(true);\n const response = await createFromMutation({\n variables: { revision, data: formData },\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n showSnackbar(\"Missing data in update callback on Create From Entry Response.\");\n return;\n }\n const { data: newRevision, error } = response.data.content;\n if (error) {\n showSnackbar(error.message);\n setInvalidFieldValues(error.data as InvalidFieldError[]);\n return;\n } else if (!newRevision) {\n showSnackbar(\"Missing entry data in update callback on Create From Entry.\");\n return;\n }\n resetInvalidFieldValues();\n GQLCache.updateLatestRevisionInListCache(\n model,\n client.cache,\n newRevision,\n listQueryVariables\n );\n GQLCache.addRevisionToRevisionsCache(model, client.cache, newRevision);\n\n showSnackbar(\"A new revision was created!\");\n goToRevision(newRevision.id);\n\n setLoading(false);\n\n return newRevision;\n },\n [model.modelId, listQueryVariables]\n );\n\n const onChange: FormOnSubmit = (data, form) => {\n if (!params.onChange) {\n return;\n }\n return params.onChange(data, form);\n };\n\n const onSubmit: FormOnSubmit = async (data, form) => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields);\n if (!entry.id) {\n return createContent(gqlData, form);\n }\n\n const { meta } = entry;\n const { locked: isLocked } = meta || {};\n\n if (!isLocked) {\n return updateContent(entry.id, gqlData);\n }\n\n return createContentFrom(entry.id, gqlData);\n };\n\n const defaultValues = useMemo((): Record<string, any> => {\n const values: Record<string, any> = {};\n /**\n * Assign the default values:\n * * check the settings.defaultValue\n * * check the predefinedValues for selected value\n */\n for (const field of model.fields) {\n /**\n * When checking if defaultValue is set in settings, we do the undefined check because it can be null, 0, empty string, false, etc...\n */\n const { settings, multipleValues = false } = field;\n if (settings && settings.defaultValue !== undefined) {\n /**\n * Special type of field is the boolean one.\n * We MUST set true/false for default value.\n */\n values[field.fieldId] = convertDefaultValue(field, settings.defaultValue);\n continue;\n }\n /**\n * No point in going further if predefined values are not enabled.\n */\n const { predefinedValues } = field;\n if (\n !predefinedValues ||\n !predefinedValues.enabled ||\n Array.isArray(predefinedValues.values) === false\n ) {\n continue;\n }\n /**\n * When field is not a multiple values one, we find the first possible default selected value and set it as field value.\n */\n if (!multipleValues) {\n const selectedValue = predefinedValues.values.find(({ selected }) => {\n return !!selected;\n });\n if (selectedValue) {\n values[field.fieldId] = convertDefaultValue(field, selectedValue.value);\n }\n continue;\n }\n /**\n *\n */\n values[field.fieldId] = predefinedValues.values\n .filter(({ selected }) => !!selected)\n .map(({ value }) => {\n return convertDefaultValue(field, value);\n });\n }\n return values;\n }, [model.modelId]);\n\n return {\n /**\n * If entry is not set or `entry.id` does not exist, it means it's a new entry, so fetch default values.\n */\n data: entry && entry.id ? entry : defaultValues,\n loading,\n setLoading,\n onChange,\n onSubmit,\n invalidFields,\n renderPlugins\n };\n}\n"],"mappings":"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"}
@@ -1,21 +1,27 @@
1
- import React from "react";
1
+ import React, { MutableRefObject } from "react";
2
2
  import { ApolloClient } from "apollo-client";
3
3
  import { GetCmsModelQueryResponse, UpdateCmsModelMutationResponse } from "../../graphql/contentModels";
4
- import { CmsEditorContentModel, CmsModel } from "../../../types";
4
+ import { CmsModel } from "../../../types";
5
5
  import { FetchResult } from "apollo-link";
6
+ import { TabsImperativeApi } from "@webiny/ui/Tabs";
6
7
  export interface ContentModelEditorProviderContext {
7
8
  apolloClient: ApolloClient<any>;
8
- data: CmsEditorContentModel;
9
+ data: CmsModel;
10
+ contentModel: CmsModel;
9
11
  isPristine: boolean;
10
12
  getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;
11
13
  saveContentModel: (data?: CmsModel) => Promise<UpdateCmsModelMutationResponse["updateContentModel"]>;
12
14
  setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;
15
+ tabsRef: MutableRefObject<TabsImperativeApi | undefined>;
16
+ activeTabIndex: number;
17
+ setActiveTabIndex: (index: number) => void;
13
18
  }
14
- export declare const contentModelEditorContext: React.Context<ContentModelEditorProviderContext>;
19
+ export declare const contentModelEditorContext: React.Context<ContentModelEditorProviderContext | undefined>;
15
20
  interface State {
16
21
  modelId: string | null;
17
22
  isPristine: boolean;
18
23
  data: CmsModel;
24
+ activeTabIndex: number;
19
25
  }
20
26
  interface Action {
21
27
  data: Partial<State> | Partial<CmsModel>;
@@ -9,14 +9,14 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.contentModelEditorReducer = exports.contentModelEditorContext = exports.ContentModelEditorProvider = void 0;
11
11
 
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
-
16
12
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
17
13
 
18
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
15
 
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
19
+
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _get2 = _interopRequireDefault(require("lodash/get"));
@@ -31,83 +31,9 @@ var _contentModels = require("../../graphql/contentModels");
31
31
 
32
32
  var _viewsGraphql = require("../../viewsGraphql");
33
33
 
34
- // TODO @ts-refactor verify that types are correct
35
- var contentModelEditorContext = /*#__PURE__*/_react.default.createContext({
36
- apolloClient: null,
37
- data: null,
38
- isPristine: false,
39
- getContentModel: function () {
40
- var _getContentModel = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
41
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
42
- while (1) {
43
- switch (_context.prev = _context.next) {
44
- case 0:
45
- return _context.abrupt("return", {
46
- data: null
47
- });
48
-
49
- case 1:
50
- case "end":
51
- return _context.stop();
52
- }
53
- }
54
- }, _callee);
55
- }));
56
-
57
- function getContentModel() {
58
- return _getContentModel.apply(this, arguments);
59
- }
60
-
61
- return getContentModel;
62
- }(),
63
- saveContentModel: function () {
64
- var _saveContentModel = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
65
- return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
66
- while (1) {
67
- switch (_context2.prev = _context2.next) {
68
- case 0:
69
- return _context2.abrupt("return", {
70
- data: null,
71
- error: null
72
- });
73
-
74
- case 1:
75
- case "end":
76
- return _context2.stop();
77
- }
78
- }
79
- }, _callee2);
80
- }));
81
-
82
- function saveContentModel() {
83
- return _saveContentModel.apply(this, arguments);
84
- }
34
+ var _ModelProvider = require("../ModelProvider");
85
35
 
86
- return saveContentModel;
87
- }(),
88
- setData: function () {
89
- var _setData = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
90
- return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
91
- while (1) {
92
- switch (_context3.prev = _context3.next) {
93
- case 0:
94
- return _context3.abrupt("return", void 0);
95
-
96
- case 1:
97
- case "end":
98
- return _context3.stop();
99
- }
100
- }
101
- }, _callee3);
102
- }));
103
-
104
- function setData() {
105
- return _setData.apply(this, arguments);
106
- }
107
-
108
- return setData;
109
- }()
110
- });
36
+ var contentModelEditorContext = /*#__PURE__*/_react.default.createContext(undefined);
111
37
 
112
38
  exports.contentModelEditorContext = contentModelEditorContext;
113
39
 
@@ -177,12 +103,15 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
177
103
  var _useReducer = (0, _react.useReducer)(contentModelEditorReducer, {
178
104
  modelId: modelId || null,
179
105
  isPristine: true,
180
- data: null
106
+ data: null,
107
+ activeTabIndex: 0
181
108
  }),
182
109
  _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
183
110
  state = _useReducer2[0],
184
111
  dispatch = _useReducer2[1];
185
112
 
113
+ var tabsRef = (0, _react.useRef)();
114
+
186
115
  var _useRouter = (0, _reactRouter.useRouter)(),
187
116
  history = _useRouter.history;
188
117
 
@@ -199,18 +128,18 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
199
128
  };
200
129
 
201
130
  var saveContentModel = /*#__PURE__*/function () {
202
- var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4(data) {
131
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
203
132
  var modelData, response;
204
- return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
133
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
205
134
  while (1) {
206
- switch (_context4.prev = _context4.next) {
135
+ switch (_context.prev = _context.next) {
207
136
  case 0:
208
137
  if (!data) {
209
138
  data = state.data;
210
139
  }
211
140
 
212
- modelData = (0, _pick.default)(data, ["group", "layout", "fields", "name", "settings", "description", "titleFieldId"]);
213
- _context4.next = 4;
141
+ modelData = (0, _pick.default)(data, ["group", "layout", "fields", "tags", "name", "settings", "description", "titleFieldId"]);
142
+ _context.next = 4;
214
143
  return apolloClient.mutate({
215
144
  mutation: _contentModels.UPDATE_CONTENT_MODEL,
216
145
  variables: {
@@ -223,50 +152,58 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
223
152
  });
224
153
 
225
154
  case 4:
226
- response = _context4.sent;
155
+ response = _context.sent;
227
156
  setPristine(true);
228
157
 
229
158
  if (!(!response.data || !response.data.updateContentModel)) {
230
- _context4.next = 8;
159
+ _context.next = 8;
231
160
  break;
232
161
  }
233
162
 
234
- return _context4.abrupt("return", {
163
+ return _context.abrupt("return", {
235
164
  data: null,
236
165
  error: null
237
166
  });
238
167
 
239
168
  case 8:
240
- return _context4.abrupt("return", response.data.updateContentModel);
169
+ return _context.abrupt("return", response.data.updateContentModel);
241
170
 
242
171
  case 9:
243
172
  case "end":
244
- return _context4.stop();
173
+ return _context.stop();
245
174
  }
246
175
  }
247
- }, _callee4);
176
+ }, _callee);
248
177
  }));
249
178
 
250
179
  return function saveContentModel(_x) {
251
180
  return _ref4.apply(this, arguments);
252
181
  };
253
182
  }();
183
+
184
+ var setActiveTabIndex = (0, _react.useCallback)(function (activeTabIndex) {
185
+ dispatch({
186
+ type: "state",
187
+ data: {
188
+ activeTabIndex: activeTabIndex
189
+ }
190
+ });
191
+ }, []);
254
192
  /**
255
193
  * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.
256
194
  * Return new data once finished.
257
195
  */
258
196
 
259
-
260
197
  var setData = /*#__PURE__*/function () {
261
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5(setter) {
198
+ var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(setter) {
262
199
  var saveModel,
263
200
  data,
264
- _args5 = arguments;
265
- return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
201
+ _args2 = arguments;
202
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
266
203
  while (1) {
267
- switch (_context5.prev = _context5.next) {
204
+ switch (_context2.prev = _context2.next) {
268
205
  case 0:
269
- saveModel = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : false;
206
+ saveModel = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
270
207
  setPristine(false);
271
208
  data = setter(state.data);
272
209
  dispatch({
@@ -275,22 +212,22 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
275
212
  });
276
213
 
277
214
  if (saveModel) {
278
- _context5.next = 6;
215
+ _context2.next = 6;
279
216
  break;
280
217
  }
281
218
 
282
- return _context5.abrupt("return");
219
+ return _context2.abrupt("return");
283
220
 
284
221
  case 6:
285
- _context5.next = 8;
222
+ _context2.next = 8;
286
223
  return saveContentModel(data);
287
224
 
288
225
  case 8:
289
226
  case "end":
290
- return _context5.stop();
227
+ return _context2.stop();
291
228
  }
292
229
  }
293
- }, _callee5);
230
+ }, _callee2);
294
231
  }));
295
232
 
296
233
  return function setData(_x2) {
@@ -299,14 +236,14 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
299
236
  }();
300
237
 
301
238
  var getContentModel = /*#__PURE__*/function () {
302
- var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6(modelId) {
239
+ var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3(modelId) {
303
240
  var response, _get, data, error;
304
241
 
305
- return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
242
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
306
243
  while (1) {
307
- switch (_context6.prev = _context6.next) {
244
+ switch (_context3.prev = _context3.next) {
308
245
  case 0:
309
- _context6.next = 2;
246
+ _context3.next = 2;
310
247
  return apolloClient.query({
311
248
  query: _contentModels.GET_CONTENT_MODEL,
312
249
  variables: {
@@ -315,32 +252,32 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
315
252
  });
316
253
 
317
254
  case 2:
318
- response = _context6.sent;
255
+ response = _context3.sent;
319
256
  _get = (0, _get2.default)(response, "data.getContentModel"), data = _get.data, error = _get.error;
320
257
 
321
258
  if (!error) {
322
- _context6.next = 6;
259
+ _context3.next = 6;
323
260
  break;
324
261
  }
325
262
 
326
- throw new Error(error);
263
+ throw new Error(error.message);
327
264
 
328
265
  case 6:
329
- _context6.next = 8;
266
+ _context3.next = 8;
330
267
  return setData(function () {
331
268
  return data;
332
269
  }, false);
333
270
 
334
271
  case 8:
335
272
  setPristine(true);
336
- return _context6.abrupt("return", response);
273
+ return _context3.abrupt("return", response);
337
274
 
338
275
  case 10:
339
276
  case "end":
340
- return _context6.stop();
277
+ return _context3.stop();
341
278
  }
342
279
  }
343
- }, _callee6);
280
+ }, _callee3);
344
281
  }));
345
282
 
346
283
  return function getContentModel(_x3) {
@@ -360,20 +297,27 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
360
297
  }, [modelId]);
361
298
  var value = (0, _react.useMemo)(function () {
362
299
  return {
300
+ // Keeping `data` for compatibility
363
301
  data: state.data,
302
+ contentModel: state.data,
364
303
  modelId: modelId,
365
304
  apolloClient: apolloClient,
366
305
  dispatch: dispatch,
367
306
  isPristine: state.isPristine,
368
307
  getContentModel: getContentModel,
369
308
  saveContentModel: saveContentModel,
370
- setData: setData
309
+ setData: setData,
310
+ tabsRef: tabsRef,
311
+ activeTabIndex: state.activeTabIndex,
312
+ setActiveTabIndex: setActiveTabIndex
371
313
  };
372
314
  }, [state, apolloClient]);
373
315
  var Provider = contentModelEditorContext.Provider;
374
316
  return /*#__PURE__*/_react.default.createElement(Provider, {
375
317
  value: value
376
- }, children);
318
+ }, /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
319
+ model: value.contentModel
320
+ }, children));
377
321
  };
378
322
 
379
323
  exports.ContentModelEditorProvider = ContentModelEditorProvider;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["contentModelEditorContext","React","createContext","undefined","contentModelEditorReducer","prev","action","data","type","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","ContentModelEditorProvider","children","apolloClient","modelId","useReducer","isPristine","activeTabIndex","state","dispatch","tabsRef","useRef","useRouter","history","useSnackbar","showSnackbar","setPristine","flag","saveContentModel","modelData","pick","mutate","mutation","UPDATE_CONTENT_MODEL","variables","refetchQueries","query","LIST_MENU_CONTENT_GROUPS_MODELS","response","updateContentModel","error","setActiveTabIndex","useCallback","setData","setter","saveModel","getContentModel","GET_CONTENT_MODEL","get","Error","message","useEffect","catch","push","useMemo","contentModel","Provider"],"sources":["ContentModelEditorProvider.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef\n} from \"react\";\nimport get from \"lodash/get\";\nimport pick from \"lodash/pick\";\nimport { ApolloClient } from \"apollo-client\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UPDATE_CONTENT_MODEL,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport { FetchResult } from \"apollo-link\";\nimport { TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsModel;\n contentModel: CmsModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n tabsRef: MutableRefObject<TabsImperativeApi | undefined>;\n activeTabIndex: number;\n setActiveTabIndex: (index: number) => void;\n}\n\nexport const contentModelEditorContext = React.createContext<\n ContentModelEditorProviderContext | undefined\n>(undefined);\n\ntype PickedCmsModel = Pick<\n CmsModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n activeTabIndex: number;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsModel): PickedCmsModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nexport const ContentModelEditorProvider: React.FC<ContentModelEditorProviderProps> = ({\n children,\n apolloClient,\n modelId\n}) => {\n const [state, dispatch] = useReducer<Reducer>(contentModelEditorReducer, {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel,\n activeTabIndex: 0\n });\n\n const tabsRef = useRef<TabsImperativeApi>();\n\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"tags\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n const setActiveTabIndex = useCallback((activeTabIndex: number) => {\n dispatch({ type: \"state\", data: { activeTabIndex } });\n }, []);\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n setPristine(false);\n const data = setter(state.data);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error.message);\n }\n\n await setData(() => data, false);\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n history.push(`/cms/content-models`);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const value = useMemo<ContentModelEditorProviderContext>(\n () => ({\n // Keeping `data` for compatibility\n data: state.data,\n contentModel: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData,\n tabsRef,\n activeTabIndex: state.activeTabIndex,\n setActiveTabIndex\n }),\n [state, apolloClient]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return (\n <Provider value={value}>\n <ModelProvider model={value.contentModel}>{children}</ModelProvider>\n </Provider>\n );\n};\n"],"mappings":"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"}
@@ -47,7 +47,7 @@ var _Header = _interopRequireDefault(require("./Header"));
47
47
 
48
48
  var _DragPreview = _interopRequireDefault(require("../DragPreview"));
49
49
 
50
- var _useContentModelEditor = require("./useContentModelEditor");
50
+ var _useModelEditor2 = require("./useModelEditor");
51
51
 
52
52
  var _templateObject;
53
53
 
@@ -100,10 +100,10 @@ var formTabs = /*#__PURE__*/(0, _emotion.css)({
100
100
  }, "label:formTabs;");
101
101
 
102
102
  var Editor = function Editor() {
103
- var _useContentModelEdito = (0, _useContentModelEditor.useContentModelEditor)(),
104
- data = _useContentModelEdito.data,
105
- setData = _useContentModelEdito.setData,
106
- isPristine = _useContentModelEdito.isPristine;
103
+ var _useModelEditor = (0, _useModelEditor2.useModelEditor)(),
104
+ data = _useModelEditor.data,
105
+ setData = _useModelEditor.setData,
106
+ isPristine = _useModelEditor.isPristine;
107
107
 
108
108
  var tabsRef = (0, _react.useRef)();
109
109
 
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","prompt","ContentContainer","styled","paddingTop","EditContainer","padding","position","LeftBarTitle","borderBottom","display","alignItems","color","titleIcon","css","height","marginRight","LeftBarFieldList","overflow","formTabs","backgroundColor","Editor","useContentModelEditor","data","setData","isPristine","tabsRef","useRef","useState","activeTabIndex","setActiveTabIndex","onChange","fields","layout","current","switchTab","e"],"sources":["Editor.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport { Prompt } from \"@webiny/react-router\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin/components/SplitView\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Tab, Tabs, TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ReactComponent as FormIcon } from \"./icons/round-assignment-24px.svg\";\nimport { FieldsSidebar } from \"./FieldsSidebar\";\nimport { FieldEditor } from \"../FieldEditor\";\nimport { PreviewTab } from \"./PreviewTab\";\nimport Header from \"./Header\";\nimport DragPreview from \"../DragPreview\";\nimport { useContentModelEditor } from \"./useContentModelEditor\";\nimport { CmsEditorField, CmsEditorFieldsLayout } from \"~/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/editor\");\n\nconst prompt = t`There are some unsaved changes! Are you sure you want to navigate away and discard all changes?`;\n\nconst ContentContainer = styled(\"div\")({\n paddingTop: 65\n});\n\nexport const EditContainer = styled(\"div\")({\n padding: 40,\n position: \"relative\"\n});\n\nconst LeftBarTitle = styled(\"div\")({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n display: \"flex\",\n alignItems: \"center\",\n padding: 25,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst titleIcon = css({\n height: 24,\n marginRight: 15,\n color: \"var(--mdc-theme-primary)\"\n});\n\nconst LeftBarFieldList = styled(\"div\")({\n padding: 40,\n overflow: \"auto\",\n height: \"calc(100vh - 250px)\"\n});\n\nconst formTabs = css({\n \"&.webiny-ui-tabs\": {\n \".webiny-ui-tabs__tab-bar\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\n\ninterface OnChangeParams {\n fields: CmsEditorField[];\n layout: CmsEditorFieldsLayout;\n}\n\nexport const Editor: React.FC = () => {\n const { data, setData, isPristine } = useContentModelEditor();\n\n const tabsRef = useRef<TabsImperativeApi>();\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0);\n\n const onChange = ({ fields, layout }: OnChangeParams) => {\n setData(data => ({ ...data, fields, layout }));\n };\n\n if (!data) {\n return <CircularProgress label={\"Loading content model...\"} />;\n }\n\n return (\n <div className={\"content-model-editor\"}>\n <Prompt when={!isPristine} message={prompt} />\n <Header />\n <ContentContainer>\n <SplitView>\n <LeftPanel span={4}>\n <LeftBarTitle>\n <Icon className={titleIcon} icon={<FormIcon />} />\n <Typography use={\"headline6\"}>Fields</Typography>\n </LeftBarTitle>\n <LeftBarFieldList>\n <FieldsSidebar\n onFieldDragStart={() => {\n if (!tabsRef.current) {\n return;\n }\n tabsRef.current.switchTab(0);\n }}\n />\n </LeftBarFieldList>\n </LeftPanel>\n <RightPanel span={8}>\n <Tabs\n className={formTabs}\n ref={tabsRef}\n onActivate={e => setActiveTabIndex(e)}\n >\n <Tab label={\"Edit\"} data-testid={\"cms.editor.tab.edit\"}>\n <EditContainer>\n <FieldEditor\n fields={data.fields}\n layout={data.layout || []}\n onChange={onChange}\n />\n </EditContainer>\n </Tab>\n <Tab label={\"Preview\"} data-testid={\"cms.editor.tab.preview\"}>\n <PreviewTab activeTab={activeTabIndex === 1} />\n </Tab>\n </Tabs>\n </RightPanel>\n </SplitView>\n </ContentContainer>\n <DragPreview />\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","prompt","ContentContainer","styled","paddingTop","EditContainer","padding","position","LeftBarTitle","borderBottom","display","alignItems","color","titleIcon","css","height","marginRight","LeftBarFieldList","overflow","formTabs","backgroundColor","Editor","useModelEditor","data","setData","isPristine","tabsRef","useRef","useState","activeTabIndex","setActiveTabIndex","onChange","fields","layout","current","switchTab","e"],"sources":["Editor.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport { Prompt } from \"@webiny/react-router\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin/components/SplitView\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Tab, Tabs, TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ReactComponent as FormIcon } from \"./icons/round-assignment-24px.svg\";\nimport { FieldsSidebar } from \"./FieldsSidebar\";\nimport { FieldEditor } from \"../FieldEditor\";\nimport { PreviewTab } from \"./PreviewTab\";\nimport Header from \"./Header\";\nimport DragPreview from \"../DragPreview\";\nimport { useModelEditor } from \"./useModelEditor\";\nimport { CmsModelField, CmsEditorFieldsLayout } from \"~/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/editor\");\n\nconst prompt = t`There are some unsaved changes! Are you sure you want to navigate away and discard all changes?`;\n\nconst ContentContainer = styled(\"div\")({\n paddingTop: 65\n});\n\nexport const EditContainer = styled(\"div\")({\n padding: 40,\n position: \"relative\"\n});\n\nconst LeftBarTitle = styled(\"div\")({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n display: \"flex\",\n alignItems: \"center\",\n padding: 25,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst titleIcon = css({\n height: 24,\n marginRight: 15,\n color: \"var(--mdc-theme-primary)\"\n});\n\nconst LeftBarFieldList = styled(\"div\")({\n padding: 40,\n overflow: \"auto\",\n height: \"calc(100vh - 250px)\"\n});\n\nconst formTabs = css({\n \"&.webiny-ui-tabs\": {\n \".webiny-ui-tabs__tab-bar\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\n\ninterface OnChangeParams {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n}\n\nexport const Editor: React.FC = () => {\n const { data, setData, isPristine } = useModelEditor();\n\n const tabsRef = useRef<TabsImperativeApi>();\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0);\n\n const onChange = ({ fields, layout }: OnChangeParams) => {\n setData(data => ({ ...data, fields, layout }));\n };\n\n if (!data) {\n return <CircularProgress label={\"Loading content model...\"} />;\n }\n\n return (\n <div className={\"content-model-editor\"}>\n <Prompt when={!isPristine} message={prompt} />\n <Header />\n <ContentContainer>\n <SplitView>\n <LeftPanel span={4}>\n <LeftBarTitle>\n <Icon className={titleIcon} icon={<FormIcon />} />\n <Typography use={\"headline6\"}>Fields</Typography>\n </LeftBarTitle>\n <LeftBarFieldList>\n <FieldsSidebar\n onFieldDragStart={() => {\n if (!tabsRef.current) {\n return;\n }\n tabsRef.current.switchTab(0);\n }}\n />\n </LeftBarFieldList>\n </LeftPanel>\n <RightPanel span={8}>\n <Tabs\n className={formTabs}\n ref={tabsRef}\n onActivate={e => setActiveTabIndex(e)}\n >\n <Tab label={\"Edit\"} data-testid={\"cms.editor.tab.edit\"}>\n <EditContainer>\n <FieldEditor\n fields={data.fields}\n layout={data.layout || []}\n onChange={onChange}\n />\n </EditContainer>\n </Tab>\n <Tab label={\"Preview\"} data-testid={\"cms.editor.tab.preview\"}>\n <PreviewTab activeTab={activeTabIndex === 1} />\n </Tab>\n </Tabs>\n </RightPanel>\n </SplitView>\n </ContentContainer>\n <DragPreview />\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["FieldContainer","styled","padding","marginBottom","display","width","backgroundColor","borderRadius","boxSizing","cursor","opacity","transition","FileInfo","FieldLabel","textTransform","lineHeight","color","FieldDescription","fontSize","FieldHandle","marginRight","Field","props","onFieldDragStart","fieldType","type","label","icon","description","drag","FieldsSidebar","fieldTypePlugin","plugins","byType","map","fieldPlugin","field"],"sources":["FieldsSidebar.tsx"],"sourcesContent":["import React, { DragEventHandler } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport styled from \"@emotion/styled\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport Draggable from \"../Draggable\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\n\nconst FieldContainer = styled(\"div\")({\n padding: \"10px 15px\",\n marginBottom: 20,\n display: \"flex\",\n width: \"100%\",\n backgroundColor: \"var(--mdc-theme-on-background)\",\n borderRadius: 15,\n boxSizing: \"border-box\",\n cursor: \"grab\",\n opacity: 1,\n transition: \"opacity 225ms\",\n \"&:hover\": {\n opacity: 0.8\n },\n \"&:last-child\": {\n marginBottom: 0\n }\n});\n\nconst FileInfo = styled(\"div\")({});\n\nconst FieldLabel = styled(\"div\")({\n textTransform: \"uppercase\",\n lineHeight: \"145%\",\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst FieldDescription = styled(\"div\")({\n fontSize: 14,\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n});\n\nconst FieldHandle = styled(\"div\")({\n marginRight: 15,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\ninterface FieldProps {\n onFieldDragStart: DragEventHandler;\n fieldType: CmsEditorFieldTypePlugin[\"field\"];\n}\nconst Field: React.FC<FieldProps> = props => {\n const {\n onFieldDragStart,\n fieldType: { type, label, icon, description }\n } = props;\n return (\n <Draggable beginDrag={{ type: \"newField\", fieldType: type }}>\n {({ drag }) => (\n <div\n ref={drag}\n style={{ marginBottom: 10 }}\n data-testid={`cms-editor-fields-field-${type}`}\n onDragStart={onFieldDragStart}\n >\n <FieldContainer>\n <FieldHandle>\n <Icon icon={icon as React.ReactElement} />\n </FieldHandle>\n <FileInfo>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FileInfo>\n </FieldContainer>\n </div>\n )}\n </Draggable>\n );\n};\n\ninterface FieldsSidebarProps {\n onFieldDragStart: DragEventHandler;\n}\nexport const FieldsSidebar: React.FC<FieldsSidebarProps> = ({ onFieldDragStart }) => {\n const fieldTypePlugin = plugins.byType<CmsEditorFieldTypePlugin>(\"cms-editor-field-type\");\n\n return (\n <React.Fragment>\n {fieldTypePlugin.map(fieldPlugin => (\n <Field\n key={fieldPlugin.field.type}\n fieldType={fieldPlugin.field}\n onFieldDragStart={onFieldDragStart}\n />\n ))}\n </React.Fragment>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAGA,IAAMA,cAAc,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACjCC,OAAO,EAAE,WADwB;EAEjCC,YAAY,EAAE,EAFmB;EAGjCC,OAAO,EAAE,MAHwB;EAIjCC,KAAK,EAAE,MAJ0B;EAKjCC,eAAe,EAAE,gCALgB;EAMjCC,YAAY,EAAE,EANmB;EAOjCC,SAAS,EAAE,YAPsB;EAQjCC,MAAM,EAAE,MARyB;EASjCC,OAAO,EAAE,CATwB;EAUjCC,UAAU,EAAE,eAVqB;EAWjC,WAAW;IACPD,OAAO,EAAE;EADF,CAXsB;EAcjC,gBAAgB;IACZP,YAAY,EAAE;EADF;AAdiB,CAAjB,CAApB;AAmBA,IAAMS,QAAQ,oBAAGX,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB,EAAjB,CAAd;AAEA,IAAMY,UAAU,oBAAGZ,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC7Ba,aAAa,EAAE,WADc;EAE7BC,UAAU,EAAE,MAFiB;EAG7BC,KAAK,EAAE;AAHsB,CAAjB,CAAhB;AAMA,IAAMC,gBAAgB,oBAAGhB,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACnCiB,QAAQ,EAAE,EADyB;EAEnCF,KAAK,EAAE;AAF4B,CAAjB,CAAtB;AAKA,IAAMG,WAAW,oBAAGlB,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC9BmB,WAAW,EAAE,EADiB;EAE9BJ,KAAK,EAAE;AAFuB,CAAjB,CAAjB;;AASA,IAAMK,KAA2B,GAAG,SAA9BA,KAA8B,CAAAC,KAAK,EAAI;EACzC,IACIC,gBADJ,GAGID,KAHJ,CACIC,gBADJ;EAAA,uBAGID,KAHJ,CAEIE,SAFJ;EAAA,IAEiBC,IAFjB,oBAEiBA,IAFjB;EAAA,IAEuBC,KAFvB,oBAEuBA,KAFvB;EAAA,IAE8BC,IAF9B,oBAE8BA,IAF9B;EAAA,IAEoCC,WAFpC,oBAEoCA,WAFpC;EAIA,oBACI,6BAAC,kBAAD;IAAW,SAAS,EAAE;MAAEH,IAAI,EAAE,UAAR;MAAoBD,SAAS,EAAEC;IAA/B;EAAtB,GACK;IAAA,IAAGI,IAAH,QAAGA,IAAH;IAAA,oBACG;MACI,GAAG,EAAEA,IADT;MAEI,KAAK,EAAE;QAAE1B,YAAY,EAAE;MAAhB,CAFX;MAGI,iDAAwCsB,IAAxC,CAHJ;MAII,WAAW,EAAEF;IAJjB,gBAMI,6BAAC,cAAD,qBACI,6BAAC,WAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAEI;IAAZ,EADJ,CADJ,eAII,6BAAC,QAAD,qBACI,6BAAC,UAAD,QAAaD,KAAb,CADJ,eAEI,6BAAC,gBAAD,QAAmBE,WAAnB,CAFJ,CAJJ,CANJ,CADH;EAAA,CADL,CADJ;AAsBH,CA3BD;;AAgCO,IAAME,aAA2C,GAAG,SAA9CA,aAA8C,QAA0B;EAAA,IAAvBP,gBAAuB,SAAvBA,gBAAuB;;EACjF,IAAMQ,eAAe,GAAGC,gBAAA,CAAQC,MAAR,CAAyC,uBAAzC,CAAxB;;EAEA,oBACI,6BAAC,cAAD,CAAO,QAAP,QACKF,eAAe,CAACG,GAAhB,CAAoB,UAAAC,WAAW;IAAA,oBAC5B,6BAAC,KAAD;MACI,GAAG,EAAEA,WAAW,CAACC,KAAZ,CAAkBX,IAD3B;MAEI,SAAS,EAAEU,WAAW,CAACC,KAF3B;MAGI,gBAAgB,EAAEb;IAHtB,EAD4B;EAAA,CAA/B,CADL,CADJ;AAWH,CAdM"}
1
+ {"version":3,"names":["FieldContainer","styled","padding","marginBottom","display","width","backgroundColor","borderRadius","boxSizing","cursor","opacity","transition","FileInfo","FieldLabel","textTransform","lineHeight","color","FieldDescription","fontSize","FieldHandle","marginRight","Field","props","onFieldDragStart","fieldType","type","label","icon","description","drag","FieldsSidebar","fieldTypePlugin","plugins","byType","map","fieldPlugin","field"],"sources":["FieldsSidebar.tsx"],"sourcesContent":["import React, { DragEventHandler } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport styled from \"@emotion/styled\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport Draggable from \"../Draggable\";\nimport { CmsModelFieldTypePlugin } from \"~/types\";\n\nconst FieldContainer = styled(\"div\")({\n padding: \"10px 15px\",\n marginBottom: 20,\n display: \"flex\",\n width: \"100%\",\n backgroundColor: \"var(--mdc-theme-on-background)\",\n borderRadius: 15,\n boxSizing: \"border-box\",\n cursor: \"grab\",\n opacity: 1,\n transition: \"opacity 225ms\",\n \"&:hover\": {\n opacity: 0.8\n },\n \"&:last-child\": {\n marginBottom: 0\n }\n});\n\nconst FileInfo = styled(\"div\")({});\n\nconst FieldLabel = styled(\"div\")({\n textTransform: \"uppercase\",\n lineHeight: \"145%\",\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst FieldDescription = styled(\"div\")({\n fontSize: 14,\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n});\n\nconst FieldHandle = styled(\"div\")({\n marginRight: 15,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\ninterface FieldProps {\n onFieldDragStart: DragEventHandler;\n fieldType: CmsModelFieldTypePlugin[\"field\"];\n}\nconst Field: React.FC<FieldProps> = props => {\n const {\n onFieldDragStart,\n fieldType: { type, label, icon, description }\n } = props;\n return (\n <Draggable beginDrag={{ type: \"newField\", fieldType: type }}>\n {({ drag }) => (\n <div\n ref={drag}\n style={{ marginBottom: 10 }}\n data-testid={`cms-editor-fields-field-${type}`}\n onDragStart={onFieldDragStart}\n >\n <FieldContainer>\n <FieldHandle>\n <Icon icon={icon as React.ReactElement} />\n </FieldHandle>\n <FileInfo>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FileInfo>\n </FieldContainer>\n </div>\n )}\n </Draggable>\n );\n};\n\ninterface FieldsSidebarProps {\n onFieldDragStart: DragEventHandler;\n}\nexport const FieldsSidebar: React.FC<FieldsSidebarProps> = ({ onFieldDragStart }) => {\n const fieldTypePlugin = plugins.byType<CmsModelFieldTypePlugin>(\"cms-editor-field-type\");\n\n return (\n <React.Fragment>\n {fieldTypePlugin.map(fieldPlugin => (\n <Field\n key={fieldPlugin.field.type}\n fieldType={fieldPlugin.field}\n onFieldDragStart={onFieldDragStart}\n />\n ))}\n </React.Fragment>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAGA,IAAMA,cAAc,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACjCC,OAAO,EAAE,WADwB;EAEjCC,YAAY,EAAE,EAFmB;EAGjCC,OAAO,EAAE,MAHwB;EAIjCC,KAAK,EAAE,MAJ0B;EAKjCC,eAAe,EAAE,gCALgB;EAMjCC,YAAY,EAAE,EANmB;EAOjCC,SAAS,EAAE,YAPsB;EAQjCC,MAAM,EAAE,MARyB;EASjCC,OAAO,EAAE,CATwB;EAUjCC,UAAU,EAAE,eAVqB;EAWjC,WAAW;IACPD,OAAO,EAAE;EADF,CAXsB;EAcjC,gBAAgB;IACZP,YAAY,EAAE;EADF;AAdiB,CAAjB,CAApB;AAmBA,IAAMS,QAAQ,oBAAGX,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB,EAAjB,CAAd;AAEA,IAAMY,UAAU,oBAAGZ,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC7Ba,aAAa,EAAE,WADc;EAE7BC,UAAU,EAAE,MAFiB;EAG7BC,KAAK,EAAE;AAHsB,CAAjB,CAAhB;AAMA,IAAMC,gBAAgB,oBAAGhB,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACnCiB,QAAQ,EAAE,EADyB;EAEnCF,KAAK,EAAE;AAF4B,CAAjB,CAAtB;AAKA,IAAMG,WAAW,oBAAGlB,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC9BmB,WAAW,EAAE,EADiB;EAE9BJ,KAAK,EAAE;AAFuB,CAAjB,CAAjB;;AASA,IAAMK,KAA2B,GAAG,SAA9BA,KAA8B,CAAAC,KAAK,EAAI;EACzC,IACIC,gBADJ,GAGID,KAHJ,CACIC,gBADJ;EAAA,uBAGID,KAHJ,CAEIE,SAFJ;EAAA,IAEiBC,IAFjB,oBAEiBA,IAFjB;EAAA,IAEuBC,KAFvB,oBAEuBA,KAFvB;EAAA,IAE8BC,IAF9B,oBAE8BA,IAF9B;EAAA,IAEoCC,WAFpC,oBAEoCA,WAFpC;EAIA,oBACI,6BAAC,kBAAD;IAAW,SAAS,EAAE;MAAEH,IAAI,EAAE,UAAR;MAAoBD,SAAS,EAAEC;IAA/B;EAAtB,GACK;IAAA,IAAGI,IAAH,QAAGA,IAAH;IAAA,oBACG;MACI,GAAG,EAAEA,IADT;MAEI,KAAK,EAAE;QAAE1B,YAAY,EAAE;MAAhB,CAFX;MAGI,iDAAwCsB,IAAxC,CAHJ;MAII,WAAW,EAAEF;IAJjB,gBAMI,6BAAC,cAAD,qBACI,6BAAC,WAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAEI;IAAZ,EADJ,CADJ,eAII,6BAAC,QAAD,qBACI,6BAAC,UAAD,QAAaD,KAAb,CADJ,eAEI,6BAAC,gBAAD,QAAmBE,WAAnB,CAFJ,CAJJ,CANJ,CADH;EAAA,CADL,CADJ;AAsBH,CA3BD;;AAgCO,IAAME,aAA2C,GAAG,SAA9CA,aAA8C,QAA0B;EAAA,IAAvBP,gBAAuB,SAAvBA,gBAAuB;;EACjF,IAAMQ,eAAe,GAAGC,gBAAA,CAAQC,MAAR,CAAwC,uBAAxC,CAAxB;;EAEA,oBACI,6BAAC,cAAD,CAAO,QAAP,QACKF,eAAe,CAACG,GAAhB,CAAoB,UAAAC,WAAW;IAAA,oBAC5B,6BAAC,KAAD;MACI,GAAG,EAAEA,WAAW,CAACC,KAAZ,CAAkBX,IAD3B;MAEI,SAAS,EAAEU,WAAW,CAACC,KAF3B;MAGI,gBAAgB,EAAEb;IAHtB,EAD4B;EAAA,CAA/B,CADL,CADJ;AAWH,CAdM"}
@@ -17,7 +17,7 @@ var _Elevation = require("@webiny/ui/Elevation");
17
17
 
18
18
  var _i18n = require("@webiny/app/i18n");
19
19
 
20
- var _useContentModelEditor = require("./useContentModelEditor");
20
+ var _hooks = require("../../hooks");
21
21
 
22
22
  var _ContentEntryFormPreview = require("../ContentEntryForm/ContentEntryFormPreview");
23
23
 
@@ -39,8 +39,8 @@ var style = {
39
39
  var PreviewTab = function PreviewTab(_ref) {
40
40
  var activeTab = _ref.activeTab;
41
41
 
42
- var _useContentModelEdito = (0, _useContentModelEditor.useContentModelEditor)(),
43
- data = _useContentModelEdito.data;
42
+ var _useModelEditor = (0, _hooks.useModelEditor)(),
43
+ data = _useModelEditor.data;
44
44
 
45
45
  return /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
46
46
  z: 1,