@webiny/app-headless-cms 5.33.5 → 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
@@ -10,5 +10,11 @@ var _react = require("react");
10
10
  var _ContentEntriesContext = require("../ContentEntriesContext");
11
11
 
12
12
  function useContentEntries() {
13
- return (0, _react.useContext)(_ContentEntriesContext.Context);
13
+ var context = (0, _react.useContext)(_ContentEntriesContext.Context);
14
+
15
+ if (!context) {
16
+ throw Error("Missing \"ContentEntriesContext\" provider in the component tree!");
17
+ }
18
+
19
+ return context;
14
20
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useContentEntries","useContext","Context"],"sources":["useContentEntries.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { Context } from \"../ContentEntriesContext\";\n\nexport function useContentEntries() {\n return useContext(Context);\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEO,SAASA,iBAAT,GAA6B;EAChC,OAAO,IAAAC,iBAAA,EAAWC,8BAAX,CAAP;AACH"}
1
+ {"version":3,"names":["useContentEntries","context","useContext","Context","Error"],"sources":["useContentEntries.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { Context } from \"../ContentEntriesContext\";\n\nexport function useContentEntries() {\n const context = useContext(Context);\n if (!context) {\n throw Error(`Missing \"ContentEntriesContext\" provider in the component tree!`);\n }\n\n return context;\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEO,SAASA,iBAAT,GAA6B;EAChC,IAAMC,OAAO,GAAG,IAAAC,iBAAA,EAAWC,8BAAX,CAAhB;;EACA,IAAI,CAACF,OAAL,EAAc;IACV,MAAMG,KAAK,qEAAX;EACH;;EAED,OAAOH,OAAP;AACH"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { CmsEditorContentEntry } from "../../../../types";
3
3
  export declare function useContentEntriesList(): {
4
- contentModel: import("../../../../types").CmsEditorContentModel;
4
+ contentModel: import("../../../../types").CmsModel;
5
5
  listQueryVariables: import("../ContentEntriesContext").ListQueryVariables;
6
6
  setListQueryVariables: import("react").Dispatch<import("react").SetStateAction<import("../ContentEntriesContext").ListQueryVariables>>;
7
7
  sorters: import("../ContentEntriesContext").CmsEntriesSorter[];
@@ -1 +1 @@
1
- {"version":3,"names":["useContentEntriesList","useContentEntries","contentModel","listQueryVariables","setListQueryVariables","sorters","canCreate","useState","loadMoreLoading","setLoadMoreLoading","filter","setFilter","useRouter","history","baseUrl","modelId","query","URLSearchParams","location","search","id","get","searchQuery","updateSearch","useCallback","debounce","searchField","titleFieldId","prev","next","cloneDeep","set","unset","push","toString","useEffect","LIST_QUERY","useMemo","createListQuery","useQuery","variables","fetchPolicy","data","loading","fetchMore","onCreate","filterByStatus","entries","status","item","meta","loadMore","hasMoreItems","after","cursor","updateQuery","result","fetchMoreResult","content","editEntry","entry","encodeURIComponent"],"sources":["useContentEntriesList.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport get from \"lodash/get\";\nimport set from \"lodash/set\";\nimport unset from \"lodash/unset\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport debounce from \"lodash/debounce\";\nimport { useRouter } from \"@webiny/react-router\";\nimport {\n createListQuery,\n CmsEntriesListQueryVariables,\n CmsEntriesListQueryResponse\n} from \"~/admin/graphql/contentEntries\";\nimport { useQuery } from \"~/admin/hooks\";\nimport { useContentEntries } from \"./useContentEntries\";\nimport { CmsEditorContentEntry, CmsMetaResponse } from \"~/types\";\n\ninterface UpdateSearchCallableParams {\n filter: string;\n query: URLSearchParams;\n}\ninterface UpdateSearchCallable {\n (params: UpdateSearchCallableParams): void;\n}\n\nexport function useContentEntriesList() {\n const { contentModel, listQueryVariables, setListQueryVariables, sorters, canCreate } =\n useContentEntries();\n\n const [loadMoreLoading, setLoadMoreLoading] = useState<boolean>(false);\n const [filter, setFilter] = useState<string>(\"\");\n\n const { history } = useRouter();\n const baseUrl = `/cms/content-entries/${contentModel.modelId}`;\n\n // Get entry ID and search query (if any)\n const query = new URLSearchParams(location.search);\n const id = query.get(\"id\");\n const searchQuery = query.get(\"search\");\n const updateSearch = useCallback(\n debounce<UpdateSearchCallable>(({ filter, query }) => {\n const search = query.get(\"search\");\n if (typeof search !== \"string\" && !filter) {\n return;\n }\n\n // We use the title field with the \"contains\" operator for doing basic searches.\n const searchField = contentModel.titleFieldId + \"_contains\";\n setListQueryVariables(prev => {\n const next = cloneDeep(prev);\n if (filter) {\n set(next, `where.${searchField}`, filter);\n } else {\n unset(next, `where.${searchField}`);\n }\n\n return next;\n });\n\n if (search !== filter) {\n query.set(\"search\", filter);\n history.push(`${baseUrl}?${query.toString()}`);\n }\n }, 250),\n [baseUrl]\n );\n\n // Set \"filter\" from search \"query\" on page load.\n useEffect(() => {\n if (searchQuery) {\n setFilter(searchQuery);\n }\n }, [baseUrl, searchQuery]);\n\n // When filter changes, run GQL query\n useEffect(() => updateSearch({ filter, query }), [baseUrl, filter]);\n\n // Generate a query based on current content model\n const LIST_QUERY = useMemo(() => createListQuery(contentModel), [contentModel.modelId]);\n const { data, loading, fetchMore } = useQuery<\n CmsEntriesListQueryResponse,\n CmsEntriesListQueryVariables\n >(LIST_QUERY, { variables: listQueryVariables, fetchPolicy: \"network-only\" });\n\n const onCreate = useCallback(() => {\n history.push(`/cms/content-entries/${contentModel.modelId}?new=true`);\n }, [contentModel]);\n\n const filterByStatus = useCallback((entries: CmsEditorContentEntry[], status?: string) => {\n if (!status || status === \"all\") {\n return entries;\n }\n return entries.filter(item => item.meta.status === status);\n }, []);\n\n // Load more entries on scroll\n const loadMore = useCallback((): void => {\n const meta: CmsMetaResponse = get(data, \"content.meta\", {});\n if (meta.hasMoreItems) {\n setLoadMoreLoading(true);\n fetchMore({\n variables: {\n after: meta.cursor\n },\n updateQuery: (prev: CmsEntriesListQueryResponse, result) => {\n if (!result || !result.fetchMoreResult) {\n return prev;\n }\n const fetchMoreResult = result.fetchMoreResult;\n\n const next = { ...fetchMoreResult };\n\n next.content.data = [...prev.content.data, ...fetchMoreResult.content.data];\n setLoadMoreLoading(false);\n return next;\n }\n });\n }\n }, [data]);\n\n const editEntry = useCallback(\n (entry: CmsEditorContentEntry) => () => {\n history.push(\n `/cms/content-entries/${contentModel.modelId}?id=${encodeURIComponent(entry.id)}`\n );\n },\n [contentModel.modelId]\n );\n\n return {\n contentModel,\n listQueryVariables,\n setListQueryVariables,\n sorters,\n id,\n loading,\n data: filterByStatus(get(data, \"content.data\", []), listQueryVariables.status),\n loadMore,\n loadMoreLoading,\n canCreate,\n onCreate,\n filter,\n setFilter,\n editEntry\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useContentEntriesList","useContentEntries","contentModel","listQueryVariables","setListQueryVariables","sorters","canCreate","useState","loadMoreLoading","setLoadMoreLoading","filter","setFilter","useRouter","history","baseUrl","modelId","query","URLSearchParams","location","search","id","get","searchQuery","updateSearch","useCallback","debounce","searchField","titleFieldId","prev","next","cloneDeep","set","unset","push","toString","useEffect","LIST_QUERY","useMemo","createListQuery","useQuery","variables","fetchPolicy","data","loading","fetchMore","onCreate","filterByStatus","entries","status","item","meta","loadMore","hasMoreItems","after","cursor","updateQuery","result","fetchMoreResult","content","editEntry","entry","encodeURIComponent"],"sources":["useContentEntriesList.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport get from \"lodash/get\";\nimport set from \"lodash/set\";\nimport unset from \"lodash/unset\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport debounce from \"lodash/debounce\";\nimport { useRouter } from \"@webiny/react-router\";\nimport {\n createListQuery,\n CmsEntriesListQueryVariables,\n CmsEntriesListQueryResponse\n} from \"~/admin/graphql/contentEntries\";\nimport { useQuery } from \"~/admin/hooks\";\nimport { useContentEntries } from \"./useContentEntries\";\nimport { CmsEditorContentEntry, CmsMetaResponse } from \"~/types\";\n\ninterface UpdateSearchCallableParams {\n filter: string;\n query: URLSearchParams;\n}\ninterface UpdateSearchCallable {\n (params: UpdateSearchCallableParams): void;\n}\n\nexport function useContentEntriesList() {\n const { contentModel, listQueryVariables, setListQueryVariables, sorters, canCreate } =\n useContentEntries();\n\n const [loadMoreLoading, setLoadMoreLoading] = useState<boolean>(false);\n const [filter, setFilter] = useState<string>(\"\");\n\n const { history } = useRouter();\n const baseUrl = `/cms/content-entries/${contentModel.modelId}`;\n\n // Get entry ID and search query (if any)\n const query = new URLSearchParams(location.search);\n const id = query.get(\"id\");\n const searchQuery = query.get(\"search\");\n const updateSearch = useCallback(\n debounce<UpdateSearchCallable>(({ filter, query }) => {\n const search = query.get(\"search\");\n if (typeof search !== \"string\" && !filter) {\n return;\n }\n\n // We use the title field with the \"contains\" operator for doing basic searches.\n const searchField = contentModel.titleFieldId + \"_contains\";\n setListQueryVariables(prev => {\n const next = cloneDeep(prev);\n if (filter) {\n set(next, `where.${searchField}`, filter);\n } else {\n unset(next, `where.${searchField}`);\n }\n\n return next;\n });\n\n if (search !== filter) {\n query.set(\"search\", filter);\n history.push(`${baseUrl}?${query.toString()}`);\n }\n }, 250),\n [baseUrl]\n );\n\n // Set \"filter\" from search \"query\" on page load.\n useEffect(() => {\n if (searchQuery) {\n setFilter(searchQuery);\n }\n }, [baseUrl, searchQuery]);\n\n // When filter changes, run GQL query\n useEffect(() => updateSearch({ filter, query }), [baseUrl, filter]);\n\n // Generate a query based on current content model\n const LIST_QUERY = useMemo(() => createListQuery(contentModel), [contentModel.modelId]);\n const { data, loading, fetchMore } = useQuery<\n CmsEntriesListQueryResponse,\n CmsEntriesListQueryVariables\n >(LIST_QUERY, { variables: listQueryVariables, fetchPolicy: \"network-only\" });\n\n const onCreate = useCallback(() => {\n history.push(`/cms/content-entries/${contentModel.modelId}?new=true`);\n }, [contentModel]);\n\n const filterByStatus = useCallback((entries: CmsEditorContentEntry[], status?: string) => {\n if (!status || status === \"all\") {\n return entries;\n }\n return entries.filter(item => item.meta.status === status);\n }, []);\n\n // Load more entries on scroll\n const loadMore = useCallback((): void => {\n const meta = get(data, \"content.meta\", {}) as unknown as CmsMetaResponse;\n if (meta.hasMoreItems) {\n setLoadMoreLoading(true);\n fetchMore({\n variables: {\n after: meta.cursor\n },\n updateQuery: (prev: CmsEntriesListQueryResponse, result) => {\n if (!result || !result.fetchMoreResult) {\n return prev;\n }\n const fetchMoreResult = result.fetchMoreResult;\n\n const next = { ...fetchMoreResult };\n\n next.content.data = [...prev.content.data, ...fetchMoreResult.content.data];\n setLoadMoreLoading(false);\n return next;\n }\n });\n }\n }, [data]);\n\n const editEntry = useCallback(\n (entry: CmsEditorContentEntry) => () => {\n history.push(\n `/cms/content-entries/${contentModel.modelId}?id=${encodeURIComponent(entry.id)}`\n );\n },\n [contentModel.modelId]\n );\n\n return {\n contentModel,\n listQueryVariables,\n setListQueryVariables,\n sorters,\n id,\n loading,\n data: filterByStatus(get(data, \"content.data\", []), listQueryVariables.status),\n loadMore,\n loadMoreLoading,\n canCreate,\n onCreate,\n filter,\n setFilter,\n editEntry\n };\n}\n"],"mappings":"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"}
@@ -45,7 +45,7 @@ var _validation = require("@webiny/validation");
45
45
 
46
46
  var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
47
47
 
48
- var _IconPicker = _interopRequireDefault(require("./IconPicker"));
48
+ var _IconPicker = require("../../components/IconPicker");
49
49
 
50
50
  var _reactRouter = require("@webiny/react-router");
51
51
 
@@ -271,7 +271,7 @@ var ContentModelGroupsForm = function ContentModelGroupsForm(_ref) {
271
271
  }, /*#__PURE__*/_react.default.createElement(Bind, {
272
272
  name: "icon",
273
273
  validators: _validation.validation.create("required")
274
- }, /*#__PURE__*/_react.default.createElement(_IconPicker.default, {
274
+ }, /*#__PURE__*/_react.default.createElement(_IconPicker.IconPicker, {
275
275
  label: t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Group icon"]))),
276
276
  description: t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Icon that will be displayed in the main menu."])))
277
277
  }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","ButtonWrapper","styled","display","justifyContent","ContentModelGroupsForm","canCreate","useRouter","location","history","useSnackbar","showSnackbar","usePermission","canEdit","newEntry","URLSearchParams","search","get","id","getQuery","useQuery","GQL","GET_CONTENT_MODEL_GROUP","variables","skip","onCompleted","data","error","contentModelGroup","push","message","useMutation","CREATE_CONTENT_MODEL_GROUP","update","cache","gqlParams","query","LIST_CONTENT_MODEL_GROUPS","result","readQuery","listContentModelGroups","writeQuery","create","createMutation","UPDATE_CONTENT_MODEL_GROUP","updateMutation","loading","find","item","createOperation","useCallback","group","name","description","icon","onSubmit","response","showEmptyView","isEmpty","form","Bind","validation","plugin","ev","submit"],"sources":["ContentModelGroupsForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport isEmpty from \"lodash/isEmpty\";\nimport get from \"lodash/get\";\nimport { Form, FormRenderPropParams } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleFormHeader,\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport IconPicker from \"./IconPicker\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { useMutation, useQuery } from \"../../hooks\";\nimport * as GQL from \"./graphql\";\nimport usePermission from \"../../hooks/usePermission\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport {\n CmsGroup,\n CreateCmsGroupMutationResponse,\n CreateCmsGroupMutationVariables,\n GetCmsGroupQueryResponse,\n GetCmsGroupQueryVariables,\n ListCmsGroupsQueryResponse,\n UpdateCmsGroupMutationResponse,\n UpdateCmsGroupMutationVariables\n} from \"./graphql\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/content-model-groups/form\");\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\ninterface ContentModelGroupsFormProps {\n canCreate: boolean;\n}\nconst ContentModelGroupsForm: React.FC<ContentModelGroupsFormProps> = ({ canCreate }) => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { canEdit } = usePermission();\n\n const newEntry = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery<GetCmsGroupQueryResponse, GetCmsGroupQueryVariables>(\n GQL.GET_CONTENT_MODEL_GROUP,\n {\n variables: {\n id: id as string\n },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.contentModelGroup;\n if (error) {\n history.push(\"/cms/content-model-group\");\n showSnackbar(error.message);\n }\n }\n }\n );\n\n // Create a new group and update list cache\n const [create, createMutation] = useMutation<\n CreateCmsGroupMutationResponse,\n CreateCmsGroupMutationVariables\n >(GQL.CREATE_CONTENT_MODEL_GROUP, {\n update(cache, { data }) {\n if (!data || data.contentModelGroup.error) {\n return;\n }\n\n const gqlParams = {\n query: GQL.LIST_CONTENT_MODEL_GROUPS\n };\n const result = cache.readQuery<ListCmsGroupsQueryResponse>(gqlParams);\n if (!result || !result.listContentModelGroups) {\n return;\n }\n const { listContentModelGroups } = result;\n cache.writeQuery({\n ...gqlParams,\n data: {\n listContentModelGroups: {\n ...listContentModelGroups,\n data: [data.contentModelGroup.data, ...listContentModelGroups.data]\n }\n }\n });\n }\n });\n const [update, updateMutation] = useMutation<\n UpdateCmsGroupMutationResponse,\n UpdateCmsGroupMutationVariables\n >(GQL.UPDATE_CONTENT_MODEL_GROUP);\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const createOperation = useCallback(\n (group: Partial<CmsGroup>) => {\n if (!group.id) {\n return create({\n variables: {\n data: {\n name: group.name,\n description: group.description,\n icon: group.icon\n }\n }\n });\n }\n return update({\n variables: {\n id: group.id,\n data: {\n name: group.name,\n description: group.description,\n icon: group.icon\n }\n }\n });\n },\n [create, update]\n );\n\n const onSubmit = useCallback(\n async (group: Partial<CmsGroup>): Promise<void> => {\n /**\n * Create or update, depends if group object has id property\n */\n const response = await createOperation(group);\n if (!response.data) {\n showSnackbar(`Missing response data ain Content Model Group Mutation Response.`);\n return;\n }\n\n const { data, error } = response.data.contentModelGroup;\n if (error) {\n showSnackbar(error.message);\n return;\n }\n /**\n * Redirect to a new group\n */\n if (!group.id) {\n history.push(`/cms/content-model-groups?id=${data.id}`);\n }\n showSnackbar(t`Content model group saved successfully!`);\n },\n [id]\n );\n\n const data: CmsGroup = getQuery.loading\n ? null\n : get(getQuery, \"data.contentModelGroup.data\", null);\n\n const showEmptyView = !newEntry && !loading && isEmpty(data);\n // Render \"No content selected\" view.\n if (showEmptyView) {\n return (\n <EmptyView\n title={t`Click on the left side list to display group details {message}`({\n message: canCreate ? \"or create a...\" : \"\"\n })}\n action={\n canCreate ? (\n <ButtonDefault\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/cms/content-model-groups?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} /> {t`New Group`}\n </ButtonDefault>\n ) : (\n <></>\n )\n }\n />\n );\n }\n\n return (\n <Form onSubmit={onSubmit} data={data || { icon: \"fas/star\" }}>\n {({ data, form, Bind }: FormRenderPropParams<CmsGroup>) => (\n <SimpleForm data-testid={\"pb-content-model-groups-form\"}>\n <SimpleFormHeader title={data.name ? data.name : t`New content model group`} />\n {loading && <CircularProgress />}\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"name\"\n validators={validation.create(\"required,maxLength:100\")}\n >\n <Input label={t`Name`} />\n </Bind>\n </Cell>\n\n <Cell span={12}>\n <Bind name=\"icon\" validators={validation.create(\"required\")}>\n <IconPicker\n label={t`Group icon`}\n description={t`Icon that will be displayed in the main menu.`}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name=\"description\">\n <Input rows={5} label={t`Description`} />\n </Bind>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/cms/content-model-groups\")}\n >{t`Cancel`}</ButtonDefault>\n\n {canEdit(data, \"cms.contentModelGroup\") && (\n <React.Fragment>\n {!data.plugin ? (\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >{t`Save content model group`}</ButtonPrimary>\n ) : (\n <Tooltip\n content={\n \"Content model group is registered via a plugin.\"\n }\n placement={\"bottom\"}\n >\n <ButtonPrimary\n disabled\n >{t`Save content model group`}</ButtonPrimary>\n </Tooltip>\n )}\n </React.Fragment>\n )}\n </ButtonWrapper>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n );\n};\n\nexport default ContentModelGroupsForm;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","ButtonWrapper","styled","display","justifyContent","ContentModelGroupsForm","canCreate","useRouter","location","history","useSnackbar","showSnackbar","usePermission","canEdit","newEntry","URLSearchParams","search","get","id","getQuery","useQuery","GQL","GET_CONTENT_MODEL_GROUP","variables","skip","onCompleted","data","error","contentModelGroup","push","message","useMutation","CREATE_CONTENT_MODEL_GROUP","update","cache","gqlParams","query","LIST_CONTENT_MODEL_GROUPS","result","readQuery","listContentModelGroups","writeQuery","create","createMutation","UPDATE_CONTENT_MODEL_GROUP","updateMutation","loading","find","item","createOperation","useCallback","group","name","description","icon","onSubmit","response","showEmptyView","isEmpty","form","Bind","validation","plugin","ev","submit"],"sources":["ContentModelGroupsForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport isEmpty from \"lodash/isEmpty\";\nimport get from \"lodash/get\";\nimport { Form, FormRenderPropParams } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleFormHeader,\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { IconPicker } from \"~/admin/components/IconPicker\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { useMutation, useQuery } from \"../../hooks\";\nimport * as GQL from \"./graphql\";\nimport usePermission from \"../../hooks/usePermission\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport {\n CmsGroup,\n CreateCmsGroupMutationResponse,\n CreateCmsGroupMutationVariables,\n GetCmsGroupQueryResponse,\n GetCmsGroupQueryVariables,\n ListCmsGroupsQueryResponse,\n UpdateCmsGroupMutationResponse,\n UpdateCmsGroupMutationVariables\n} from \"./graphql\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/content-model-groups/form\");\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\ninterface ContentModelGroupsFormProps {\n canCreate: boolean;\n}\nconst ContentModelGroupsForm: React.FC<ContentModelGroupsFormProps> = ({ canCreate }) => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { canEdit } = usePermission();\n\n const newEntry = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery<GetCmsGroupQueryResponse, GetCmsGroupQueryVariables>(\n GQL.GET_CONTENT_MODEL_GROUP,\n {\n variables: {\n id: id as string\n },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.contentModelGroup;\n if (error) {\n history.push(\"/cms/content-model-group\");\n showSnackbar(error.message);\n }\n }\n }\n );\n\n // Create a new group and update list cache\n const [create, createMutation] = useMutation<\n CreateCmsGroupMutationResponse,\n CreateCmsGroupMutationVariables\n >(GQL.CREATE_CONTENT_MODEL_GROUP, {\n update(cache, { data }) {\n if (!data || data.contentModelGroup.error) {\n return;\n }\n\n const gqlParams = {\n query: GQL.LIST_CONTENT_MODEL_GROUPS\n };\n const result = cache.readQuery<ListCmsGroupsQueryResponse>(gqlParams);\n if (!result || !result.listContentModelGroups) {\n return;\n }\n const { listContentModelGroups } = result;\n cache.writeQuery({\n ...gqlParams,\n data: {\n listContentModelGroups: {\n ...listContentModelGroups,\n data: [data.contentModelGroup.data, ...listContentModelGroups.data]\n }\n }\n });\n }\n });\n const [update, updateMutation] = useMutation<\n UpdateCmsGroupMutationResponse,\n UpdateCmsGroupMutationVariables\n >(GQL.UPDATE_CONTENT_MODEL_GROUP);\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const createOperation = useCallback(\n (group: Partial<CmsGroup>) => {\n if (!group.id) {\n return create({\n variables: {\n data: {\n name: group.name,\n description: group.description,\n icon: group.icon\n }\n }\n });\n }\n return update({\n variables: {\n id: group.id,\n data: {\n name: group.name,\n description: group.description,\n icon: group.icon\n }\n }\n });\n },\n [create, update]\n );\n\n const onSubmit = useCallback(\n async (group: Partial<CmsGroup>): Promise<void> => {\n /**\n * Create or update, depends if group object has id property\n */\n const response = await createOperation(group);\n if (!response.data) {\n showSnackbar(`Missing response data ain Content Model Group Mutation Response.`);\n return;\n }\n\n const { data, error } = response.data.contentModelGroup;\n if (error) {\n showSnackbar(error.message);\n return;\n }\n /**\n * Redirect to a new group\n */\n if (!group.id) {\n history.push(`/cms/content-model-groups?id=${data.id}`);\n }\n showSnackbar(t`Content model group saved successfully!`);\n },\n [id]\n );\n\n const data: CmsGroup | null = getQuery.loading\n ? null\n : get(getQuery, \"data.contentModelGroup.data\", null);\n\n const showEmptyView = !newEntry && !loading && isEmpty(data);\n // Render \"No content selected\" view.\n if (showEmptyView) {\n return (\n <EmptyView\n title={t`Click on the left side list to display group details {message}`({\n message: canCreate ? \"or create a...\" : \"\"\n })}\n action={\n canCreate ? (\n <ButtonDefault\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/cms/content-model-groups?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} /> {t`New Group`}\n </ButtonDefault>\n ) : (\n <></>\n )\n }\n />\n );\n }\n\n return (\n <Form onSubmit={onSubmit} data={data || { icon: \"fas/star\" }}>\n {({ data, form, Bind }: FormRenderPropParams<CmsGroup>) => (\n <SimpleForm data-testid={\"pb-content-model-groups-form\"}>\n <SimpleFormHeader title={data.name ? data.name : t`New content model group`} />\n {loading && <CircularProgress />}\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"name\"\n validators={validation.create(\"required,maxLength:100\")}\n >\n <Input label={t`Name`} />\n </Bind>\n </Cell>\n\n <Cell span={12}>\n <Bind name=\"icon\" validators={validation.create(\"required\")}>\n <IconPicker\n label={t`Group icon`}\n description={t`Icon that will be displayed in the main menu.`}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name=\"description\">\n <Input rows={5} label={t`Description`} />\n </Bind>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/cms/content-model-groups\")}\n >{t`Cancel`}</ButtonDefault>\n\n {canEdit(data, \"cms.contentModelGroup\") && (\n <React.Fragment>\n {!data.plugin ? (\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >{t`Save content model group`}</ButtonPrimary>\n ) : (\n <Tooltip\n content={\n \"Content model group is registered via a plugin.\"\n }\n placement={\"bottom\"}\n >\n <ButtonPrimary\n disabled\n >{t`Save content model group`}</ButtonPrimary>\n </Tooltip>\n )}\n </React.Fragment>\n )}\n </ButtonWrapper>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n );\n};\n\nexport default ContentModelGroupsForm;\n"],"mappings":"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"}
@@ -17,8 +17,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
- var _emotion = require("emotion");
21
-
22
20
  var _get = _interopRequireDefault(require("lodash/get"));
23
21
 
24
22
  var _reactRouter = require("@webiny/react-router");
@@ -51,20 +49,12 @@ var _useI18N2 = require("@webiny/app-i18n/hooks/useI18N");
51
49
 
52
50
  var _viewsGraphql = require("../../viewsGraphql");
53
51
 
52
+ var _Dialog2 = require("../../components/Dialog");
53
+
54
54
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
55
55
 
56
56
  var t = _i18n.i18n.ns("app-headless-cms/admin/views/content-models/clone-content-model-dialog");
57
57
 
58
- var narrowDialog = /*#__PURE__*/(0, _emotion.css)({
59
- ".mdc-dialog__surface": {
60
- width: 600,
61
- minWidth: 600
62
- }
63
- }, "label:narrowDialog;");
64
- var noPadding = /*#__PURE__*/(0, _emotion.css)({
65
- padding: "5px !important"
66
- }, "label:noPadding;");
67
-
68
58
  /**
69
59
  * This list is to disallow creating models that might interfere with GraphQL schema creation.
70
60
  * Add more if required.
@@ -223,10 +213,9 @@ var CloneContentModelDialog = function CloneContentModelDialog(_ref) {
223
213
 
224
214
  return true;
225
215
  }, []);
226
- return /*#__PURE__*/_react.default.createElement(UID.Dialog, {
216
+ return /*#__PURE__*/_react.default.createElement(_Dialog2.Dialog, {
227
217
  open: open,
228
218
  onClose: onClose,
229
- className: narrowDialog,
230
219
  "data-testid": "cms-clone-content-model-modal"
231
220
  }, (!groups || groupsLoading) && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
232
221
  label: "Please wait while we load required information."
@@ -252,9 +241,7 @@ var CloneContentModelDialog = function CloneContentModelDialog(_ref) {
252
241
  }, function (_ref3) {
253
242
  var Bind = _ref3.Bind,
254
243
  submit = _ref3.submit;
255
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(UID.DialogTitle, null, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Clone Content Model"])))), /*#__PURE__*/_react.default.createElement(UID.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
256
- className: noPadding
257
- }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
244
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(UID.DialogTitle, null, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Clone Content Model"])))), /*#__PURE__*/_react.default.createElement(UID.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
258
245
  span: 12
259
246
  }, /*#__PURE__*/_react.default.createElement(Bind, {
260
247
  name: "name",
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","narrowDialog","css","width","minWidth","noPadding","padding","disallowedModelIdEndingList","getSelectedGroup","groups","model","length","current","group","id","find","g","value","defaultSelected","CloneContentModelDialog","open","onClose","contentModel","closeModal","useState","loading","setLoading","useSnackbar","showSnackbar","useRouter","history","useI18N","getLocales","getCurrentLocale","setCurrentLocale","currentLocale","locale","setLocale","setGroups","useMutation","CREATE_CONTENT_MODEL_FROM","onError","error","message","update","cache","response","data","createContentModelFrom","window","location","reload","addModelToListCache","addModelToGroupCache","push","locales","map","code","label","useQueryLocale","LIST_MENU_CONTENT_GROUPS_MODELS","skip","groupsLoading","useEffect","contentModelGroups","get","item","name","selectedGroup","nameValidator","useCallback","target","trim","charAt","match","Error","toLowerCase","ending","re","RegExp","matched","variables","modelId","Bind","submit","validation","create","props","description","ev"],"sources":["CloneContentModelDialog.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport { css } from \"emotion\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { validation } from \"@webiny/validation\";\nimport { useMutation, useQueryLocale } from \"../../hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ButtonDefault } from \"@webiny/ui/Button\";\nimport * as UID from \"@webiny/ui/Dialog\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { addModelToGroupCache, addModelToListCache } from \"./cache\";\nimport { CmsEditorContentModel, CmsModel } from \"~/types\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport {\n CREATE_CONTENT_MODEL_FROM,\n LIST_MENU_CONTENT_GROUPS_MODELS,\n CreateCmsModelFromMutationResponse,\n CreateCmsModelFromMutationVariables,\n ListMenuCmsGroupsQueryResponse\n} from \"../../viewsGraphql\";\nimport { CmsGroup } from \"~/admin/views/contentModelGroups/graphql\";\nimport { CmsGroupOption } from \"~/admin/views/contentModels/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/clone-content-model-dialog\");\n\nconst narrowDialog = css({\n \".mdc-dialog__surface\": {\n width: 600,\n minWidth: 600\n }\n});\n\nconst noPadding = css({\n padding: \"5px !important\"\n});\n\nexport interface Props {\n open: boolean;\n onClose: UID.DialogOnClose;\n contentModel: CmsEditorContentModel;\n closeModal: () => void;\n}\n\n/**\n * This list is to disallow creating models that might interfere with GraphQL schema creation.\n * Add more if required.\n */\nconst disallowedModelIdEndingList: string[] = [\"Response\", \"List\", \"Meta\", \"Input\", \"Sorter\"];\n\nconst getSelectedGroup = (\n groups: CmsGroupOption[] | null,\n model: CmsEditorContentModel\n): string | null => {\n if (!groups || groups.length === 0 || !model) {\n return \"\";\n }\n const current = model.group.id;\n const group = groups.find(g => g.value === current);\n if (group) {\n return group.value;\n }\n const defaultSelected = groups.find(() => true);\n return defaultSelected ? defaultSelected.value : null;\n};\n\nconst CloneContentModelDialog: React.FC<Props> = ({ open, onClose, contentModel, closeModal }) => {\n const [loading, setLoading] = useState<boolean>(false);\n const { showSnackbar } = useSnackbar();\n const { history } = useRouter();\n const { getLocales, getCurrentLocale, setCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n const [locale, setLocale] = useState<string>(currentLocale || \"\");\n const [groups, setGroups] = useState<CmsGroupOption[] | null>(null);\n\n const [createContentModelFrom] = useMutation<\n CreateCmsModelFromMutationResponse,\n CreateCmsModelFromMutationVariables\n >(CREATE_CONTENT_MODEL_FROM, {\n onError(error) {\n setLoading(false);\n showSnackbar(error.message);\n },\n update(cache, response) {\n if (!response.data) {\n showSnackbar(`Missing data on Create Content Model From Mutation Response.`);\n return;\n }\n const { data: model, error } = response.data.createContentModelFrom;\n\n if (error) {\n setLoading(false);\n showSnackbar(error.message);\n return;\n }\n\n if (currentLocale !== locale) {\n setCurrentLocale(locale, \"content\");\n window.location.reload();\n return;\n }\n\n addModelToListCache(cache, model);\n addModelToGroupCache(cache, model);\n\n history.push(\"/cms/content-models/\");\n closeModal();\n }\n });\n\n const locales = getLocales().map(({ code }) => {\n return {\n value: code,\n label: code === currentLocale ? \"Current locale\" : code\n };\n });\n\n const { data, loading: groupsLoading } = useQueryLocale<ListMenuCmsGroupsQueryResponse>(\n LIST_MENU_CONTENT_GROUPS_MODELS,\n locale,\n {\n skip: !open || !!groups\n }\n );\n\n useEffect(() => {\n if (!data || groupsLoading) {\n return;\n }\n const contentModelGroups: CmsGroupOption[] = get(\n data,\n \"listContentModelGroups.data\",\n []\n ).map((item: CmsGroup): CmsGroupOption => {\n return {\n value: item.id,\n label: item.name\n };\n });\n setGroups(contentModelGroups);\n }, [data, groupsLoading]);\n\n const selectedGroup = getSelectedGroup(groups, contentModel);\n\n const nameValidator = useCallback((name: string) => {\n const target = (name || \"\").trim();\n if (!target.charAt(0).match(/[a-zA-Z]/)) {\n throw new Error(\"Value is not valid - must not start with a number.\");\n }\n if (target.toLowerCase() === \"id\") {\n throw new Error('Value is not valid - \"id\" is an auto-generated field.');\n }\n for (const ending of disallowedModelIdEndingList) {\n const re = new RegExp(`${ending}$`, \"i\");\n const matched = target.match(re);\n if (matched === null) {\n continue;\n }\n throw new Error(`Model name that ends with \"${ending}\" is not allowed.`);\n }\n return true;\n }, []);\n\n return (\n <UID.Dialog\n open={open}\n onClose={onClose}\n className={narrowDialog}\n data-testid=\"cms-clone-content-model-modal\"\n >\n {(!groups || groupsLoading) && (\n <CircularProgress label={\"Please wait while we load required information.\"} />\n )}\n {open && (\n <Form\n data={{\n group: selectedGroup,\n locale,\n name: contentModel.name\n }}\n onSubmit={data => {\n setLoading(true);\n createContentModelFrom({\n variables: {\n modelId: contentModel.modelId,\n /**\n * We know that data is CmsModel\n */\n data: data as unknown as CmsModel\n }\n });\n }}\n >\n {({ Bind, submit }) => (\n <>\n {loading && <CircularProgress />}\n <UID.DialogTitle>{t`Clone Content Model`}</UID.DialogTitle>\n <UID.DialogContent>\n <Grid className={noPadding}>\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n nameValidator\n ]}\n >\n <Input\n label={t`Name`}\n description={t`The name of the content model`}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"locale\"}\n validators={validation.create(\"required\")}\n afterChange={(value?: string) => {\n if (!value) {\n return;\n }\n setLocale(value);\n setGroups(null);\n }}\n >\n <Select\n description={t`Choose a locale into which you wish to clone the model`}\n label={t`Content model locale`}\n options={locales}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"group\"}\n validators={validation.create(\"required\")}\n >\n <Select\n description={t`Choose a content model group`}\n label={t`Content model group`}\n options={groups || []}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name=\"description\">\n {props => (\n <Input\n {...props}\n rows={4}\n maxLength={200}\n characterCount\n label={t`Description`}\n value={contentModel.description}\n />\n )}\n </Bind>\n </Cell>\n </Grid>\n </UID.DialogContent>\n <UID.DialogActions>\n <ButtonDefault\n onClick={ev => {\n submit(ev);\n }}\n >\n + {t`Clone`}\n </ButtonDefault>\n </UID.DialogActions>\n </>\n )}\n </Form>\n )}\n </UID.Dialog>\n );\n};\n\nexport default CloneContentModelDialog;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","disallowedModelIdEndingList","getSelectedGroup","groups","model","length","current","group","id","find","g","value","defaultSelected","CloneContentModelDialog","open","onClose","contentModel","closeModal","useState","loading","setLoading","useSnackbar","showSnackbar","useRouter","history","useI18N","getLocales","getCurrentLocale","setCurrentLocale","currentLocale","locale","setLocale","setGroups","useMutation","CREATE_CONTENT_MODEL_FROM","onError","error","message","update","cache","response","data","createContentModelFrom","window","location","reload","addModelToListCache","addModelToGroupCache","push","locales","map","code","label","useQueryLocale","LIST_MENU_CONTENT_GROUPS_MODELS","skip","groupsLoading","useEffect","contentModelGroups","get","item","name","selectedGroup","nameValidator","useCallback","target","trim","charAt","match","Error","toLowerCase","ending","re","RegExp","matched","variables","modelId","Bind","submit","validation","create","props","description","ev"],"sources":["CloneContentModelDialog.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { validation } from \"@webiny/validation\";\nimport { useMutation, useQueryLocale } from \"../../hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ButtonDefault } from \"@webiny/ui/Button\";\nimport * as UID from \"@webiny/ui/Dialog\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { addModelToGroupCache, addModelToListCache } from \"./cache\";\nimport { CmsEditorContentModel, CmsModel } from \"~/types\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport {\n CREATE_CONTENT_MODEL_FROM,\n LIST_MENU_CONTENT_GROUPS_MODELS,\n CreateCmsModelFromMutationResponse,\n CreateCmsModelFromMutationVariables,\n ListMenuCmsGroupsQueryResponse\n} from \"../../viewsGraphql\";\nimport { CmsGroup } from \"~/admin/views/contentModelGroups/graphql\";\nimport { CmsGroupOption } from \"~/admin/views/contentModels/types\";\nimport { Dialog } from \"~/admin/components/Dialog\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/clone-content-model-dialog\");\n\nexport interface Props {\n open: boolean;\n onClose: UID.DialogOnClose;\n contentModel: CmsEditorContentModel;\n closeModal: () => void;\n}\n\n/**\n * This list is to disallow creating models that might interfere with GraphQL schema creation.\n * Add more if required.\n */\nconst disallowedModelIdEndingList: string[] = [\"Response\", \"List\", \"Meta\", \"Input\", \"Sorter\"];\n\nconst getSelectedGroup = (\n groups: CmsGroupOption[] | null,\n model: CmsEditorContentModel\n): string | null => {\n if (!groups || groups.length === 0 || !model) {\n return \"\";\n }\n const current = model.group.id;\n const group = groups.find(g => g.value === current);\n if (group) {\n return group.value;\n }\n const defaultSelected = groups.find(() => true);\n return defaultSelected ? defaultSelected.value : null;\n};\n\nconst CloneContentModelDialog: React.FC<Props> = ({ open, onClose, contentModel, closeModal }) => {\n const [loading, setLoading] = useState<boolean>(false);\n const { showSnackbar } = useSnackbar();\n const { history } = useRouter();\n const { getLocales, getCurrentLocale, setCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n const [locale, setLocale] = useState<string>(currentLocale || \"\");\n const [groups, setGroups] = useState<CmsGroupOption[] | null>(null);\n\n const [createContentModelFrom] = useMutation<\n CreateCmsModelFromMutationResponse,\n CreateCmsModelFromMutationVariables\n >(CREATE_CONTENT_MODEL_FROM, {\n onError(error) {\n setLoading(false);\n showSnackbar(error.message);\n },\n update(cache, response) {\n if (!response.data) {\n showSnackbar(`Missing data on Create Content Model From Mutation Response.`);\n return;\n }\n const { data: model, error } = response.data.createContentModelFrom;\n\n if (error) {\n setLoading(false);\n showSnackbar(error.message);\n return;\n }\n\n if (currentLocale !== locale) {\n setCurrentLocale(locale, \"content\");\n window.location.reload();\n return;\n }\n\n addModelToListCache(cache, model);\n addModelToGroupCache(cache, model);\n\n history.push(\"/cms/content-models/\");\n closeModal();\n }\n });\n\n const locales = getLocales().map(({ code }) => {\n return {\n value: code,\n label: code === currentLocale ? \"Current locale\" : code\n };\n });\n\n const { data, loading: groupsLoading } = useQueryLocale<ListMenuCmsGroupsQueryResponse>(\n LIST_MENU_CONTENT_GROUPS_MODELS,\n locale,\n {\n skip: !open || !!groups\n }\n );\n\n useEffect(() => {\n if (!data || groupsLoading) {\n return;\n }\n const contentModelGroups: CmsGroupOption[] = get(\n data,\n \"listContentModelGroups.data\",\n []\n ).map((item: CmsGroup): CmsGroupOption => {\n return {\n value: item.id,\n label: item.name\n };\n });\n setGroups(contentModelGroups);\n }, [data, groupsLoading]);\n\n const selectedGroup = getSelectedGroup(groups, contentModel);\n\n const nameValidator = useCallback((name: string) => {\n const target = (name || \"\").trim();\n if (!target.charAt(0).match(/[a-zA-Z]/)) {\n throw new Error(\"Value is not valid - must not start with a number.\");\n }\n if (target.toLowerCase() === \"id\") {\n throw new Error('Value is not valid - \"id\" is an auto-generated field.');\n }\n for (const ending of disallowedModelIdEndingList) {\n const re = new RegExp(`${ending}$`, \"i\");\n const matched = target.match(re);\n if (matched === null) {\n continue;\n }\n throw new Error(`Model name that ends with \"${ending}\" is not allowed.`);\n }\n return true;\n }, []);\n\n return (\n <Dialog open={open} onClose={onClose} data-testid=\"cms-clone-content-model-modal\">\n {(!groups || groupsLoading) && (\n <CircularProgress label={\"Please wait while we load required information.\"} />\n )}\n {open && (\n <Form\n data={{\n group: selectedGroup,\n locale,\n name: contentModel.name\n }}\n onSubmit={data => {\n setLoading(true);\n createContentModelFrom({\n variables: {\n modelId: contentModel.modelId,\n /**\n * We know that data is CmsModel\n */\n data: data as unknown as CmsModel\n }\n });\n }}\n >\n {({ Bind, submit }) => (\n <>\n {loading && <CircularProgress />}\n <UID.DialogTitle>{t`Clone Content Model`}</UID.DialogTitle>\n <UID.DialogContent>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n nameValidator\n ]}\n >\n <Input\n label={t`Name`}\n description={t`The name of the content model`}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"locale\"}\n validators={validation.create(\"required\")}\n afterChange={(value?: string) => {\n if (!value) {\n return;\n }\n setLocale(value);\n setGroups(null);\n }}\n >\n <Select\n description={t`Choose a locale into which you wish to clone the model`}\n label={t`Content model locale`}\n options={locales}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"group\"}\n validators={validation.create(\"required\")}\n >\n <Select\n description={t`Choose a content model group`}\n label={t`Content model group`}\n options={groups || []}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name=\"description\">\n {props => (\n <Input\n {...props}\n rows={4}\n maxLength={200}\n characterCount\n label={t`Description`}\n value={contentModel.description}\n />\n )}\n </Bind>\n </Cell>\n </Grid>\n </UID.DialogContent>\n <UID.DialogActions>\n <ButtonDefault\n onClick={ev => {\n submit(ev);\n }}\n >\n + {t`Clone`}\n </ButtonDefault>\n </UID.DialogActions>\n </>\n )}\n </Form>\n )}\n </Dialog>\n );\n};\n\nexport default CloneContentModelDialog;\n"],"mappings":"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"}
@@ -19,7 +19,7 @@ var _reactRouter = require("@webiny/react-router");
19
19
 
20
20
  var _hooks = require("../../hooks");
21
21
 
22
- var _Context = require("../../components/ContentModelEditor/Context");
22
+ var _ContentModelEditor = require("../../components/ContentModelEditor");
23
23
 
24
24
  var ContentModelEditorView = function ContentModelEditorView() {
25
25
  var _useRouter = (0, _reactRouter.useRouter)(),
@@ -35,7 +35,7 @@ var ContentModelEditorView = function ContentModelEditorView() {
35
35
  return null;
36
36
  }
37
37
 
38
- return /*#__PURE__*/_react.default.createElement(_Context.ContentModelEditorProvider, {
38
+ return /*#__PURE__*/_react.default.createElement(_ContentModelEditor.ContentModelEditorProvider, {
39
39
  key: modelId,
40
40
  apolloClient: apolloClient,
41
41
  modelId: modelId
@@ -1 +1 @@
1
- {"version":3,"names":["ContentModelEditorView","useRouter","params","useCms","apolloClient","modelId","HTML5Backend"],"sources":["ContentModelEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\nimport { Editor } from \"~/admin/components/ContentModelEditor/Editor\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useCms } from \"~/admin/hooks\";\nimport { ContentModelEditorProvider } from \"~/admin/components/ContentModelEditor/Context\";\nimport { CmsModel } from \"~/types\";\n\ntype QueryMatch = Pick<Partial<CmsModel>, \"modelId\">;\n\nconst ContentModelEditorView: React.FC = () => {\n const { params } = useRouter();\n const { apolloClient } = useCms();\n\n const { modelId } = (params ? params : {}) as QueryMatch;\n if (!apolloClient) {\n return null;\n }\n return (\n <ContentModelEditorProvider key={modelId} apolloClient={apolloClient} modelId={modelId}>\n <DndProvider backend={HTML5Backend}>\n <Editor />\n </DndProvider>\n </ContentModelEditorProvider>\n );\n};\nexport default ContentModelEditorView;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA,IAAMA,sBAAgC,GAAG,SAAnCA,sBAAmC,GAAM;EAC3C,iBAAmB,IAAAC,sBAAA,GAAnB;EAAA,IAAQC,MAAR,cAAQA,MAAR;;EACA,cAAyB,IAAAC,aAAA,GAAzB;EAAA,IAAQC,YAAR,WAAQA,YAAR;;EAEA,WAAqBF,MAAM,GAAGA,MAAH,GAAY,EAAvC;EAAA,IAAQG,OAAR,QAAQA,OAAR;;EACA,IAAI,CAACD,YAAL,EAAmB;IACf,OAAO,IAAP;EACH;;EACD,oBACI,6BAAC,mCAAD;IAA4B,GAAG,EAAEC,OAAjC;IAA0C,YAAY,EAAED,YAAxD;IAAsE,OAAO,EAAEC;EAA/E,gBACI,6BAAC,qBAAD;IAAa,OAAO,EAAEC;EAAtB,gBACI,6BAAC,cAAD,OADJ,CADJ,CADJ;AAOH,CAfD;;eAgBeN,sB"}
1
+ {"version":3,"names":["ContentModelEditorView","useRouter","params","useCms","apolloClient","modelId","HTML5Backend"],"sources":["ContentModelEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\nimport { Editor } from \"~/admin/components/ContentModelEditor/Editor\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useCms } from \"~/admin/hooks\";\nimport { ContentModelEditorProvider } from \"~/admin/components/ContentModelEditor\";\nimport { CmsModel } from \"~/types\";\n\ntype QueryMatch = Pick<Partial<CmsModel>, \"modelId\">;\n\nconst ContentModelEditorView: React.FC = () => {\n const { params } = useRouter();\n const { apolloClient } = useCms();\n\n const { modelId } = (params ? params : {}) as QueryMatch;\n if (!apolloClient) {\n return null;\n }\n return (\n <ContentModelEditorProvider key={modelId} apolloClient={apolloClient} modelId={modelId}>\n <DndProvider backend={HTML5Backend}>\n <Editor />\n </DndProvider>\n </ContentModelEditorProvider>\n );\n};\nexport default ContentModelEditorView;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA,IAAMA,sBAAgC,GAAG,SAAnCA,sBAAmC,GAAM;EAC3C,iBAAmB,IAAAC,sBAAA,GAAnB;EAAA,IAAQC,MAAR,cAAQA,MAAR;;EACA,cAAyB,IAAAC,aAAA,GAAzB;EAAA,IAAQC,YAAR,WAAQA,YAAR;;EAEA,WAAqBF,MAAM,GAAGA,MAAH,GAAY,EAAvC;EAAA,IAAQG,OAAR,QAAQA,OAAR;;EACA,IAAI,CAACD,YAAL,EAAmB;IACf,OAAO,IAAP;EACH;;EACD,oBACI,6BAAC,8CAAD;IAA4B,GAAG,EAAEC,OAAjC;IAA0C,YAAY,EAAED,YAAxD;IAAsE,OAAO,EAAEC;EAA/E,gBACI,6BAAC,qBAAD;IAAa,OAAO,EAAEC;EAAtB,gBACI,6BAAC,cAAD,OADJ,CADJ,CADJ;AAOH,CAfD;;eAgBeN,sB"}
@@ -23,8 +23,6 @@ var _react = _interopRequireWildcard(require("react"));
23
23
 
24
24
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
25
25
 
26
- var _emotion = require("emotion");
27
-
28
26
  var _get = _interopRequireDefault(require("lodash/get"));
29
27
 
30
28
  var _reactRouter = require("@webiny/react-router");
@@ -59,24 +57,17 @@ var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
59
57
 
60
58
  var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
61
59
 
60
+ var _Dialog2 = require("../../components/Dialog");
61
+
62
62
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
63
63
 
64
64
  var t = _i18n.i18n.ns("app-headless-cms/admin/views/content-models/new-content-model-dialog");
65
-
66
- var narrowDialog = /*#__PURE__*/(0, _emotion.css)({
67
- ".mdc-dialog__surface": {
68
- width: 600,
69
- minWidth: 600
70
- }
71
- }, "label:narrowDialog;");
72
- var noPadding = /*#__PURE__*/(0, _emotion.css)({
73
- padding: "5px !important"
74
- }, "label:noPadding;");
75
65
  /**
76
66
  * This list is to disallow creating models that might interfere with GraphQL schema creation.
77
67
  * Add more if required.
78
68
  */
79
69
 
70
+
80
71
  var disallowedModelIdEndingList = ["Response", "List", "Meta", "Input", "Sorter"];
81
72
  var SCHEMA_TYPES = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query ListSchemaTypes {\n __schema {\n types {\n name\n }\n }\n }\n"])));
82
73
 
@@ -264,10 +255,9 @@ var NewContentModelDialog = function NewContentModelDialog(_ref) {
264
255
  };
265
256
  }();
266
257
 
267
- return /*#__PURE__*/_react.default.createElement(UID.Dialog, {
258
+ return /*#__PURE__*/_react.default.createElement(_Dialog2.Dialog, {
268
259
  open: open,
269
260
  onClose: onClose,
270
- className: narrowDialog,
271
261
  "data-testid": "cms-new-content-model-modal"
272
262
  }, open && /*#__PURE__*/_react.default.createElement(_form.Form, {
273
263
  data: {
@@ -284,9 +274,7 @@ var NewContentModelDialog = function NewContentModelDialog(_ref) {
284
274
  submit = _ref5.submit;
285
275
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
286
276
  label: "Creating content model..."
287
- }), /*#__PURE__*/_react.default.createElement(UID.DialogTitle, null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["New Content Model"])))), /*#__PURE__*/_react.default.createElement(UID.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
288
- className: noPadding
289
- }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
277
+ }), /*#__PURE__*/_react.default.createElement(UID.DialogTitle, null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["New Content Model"])))), /*#__PURE__*/_react.default.createElement(UID.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
290
278
  span: 12
291
279
  }, /*#__PURE__*/_react.default.createElement(Bind, {
292
280
  name: "name",
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","narrowDialog","css","width","minWidth","noPadding","padding","disallowedModelIdEndingList","SCHEMA_TYPES","gql","NewContentModelDialog","open","onClose","React","useState","loading","setLoading","useSnackbar","showSnackbar","useRouter","history","client","useApolloClient","useMutation","GQL","CREATE_CONTENT_MODEL","update","cache","data","createContentModel","model","error","message","addModelToListCache","addModelToGroupCache","push","modelId","listMenuGroupsQuery","useQuery","LIST_MENU_CONTENT_GROUPS_MODELS","skip","contentModelGroups","get","map","item","value","id","label","name","nameValidator","useCallback","target","trim","charAt","match","Error","ending","re","RegExp","matched","query","fetchPolicy","types","__schema","lodashUpperFirst","lodashCamelCase","includes","group","length","onSubmit","variables","Bind","submit","validation","create","props","ev"],"sources":["NewContentModelDialog.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport gql from \"graphql-tag\";\nimport { css } from \"emotion\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { validation } from \"@webiny/validation\";\nimport { useQuery, useMutation, useApolloClient } from \"../../hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport * as UID from \"@webiny/ui/Dialog\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { addModelToGroupCache, addModelToListCache } from \"./cache\";\nimport * as GQL from \"../../viewsGraphql\";\nimport {\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables,\n ListMenuCmsGroupsQueryResponse\n} from \"../../viewsGraphql\";\nimport { CmsGroup } from \"~/types\";\nimport { CmsGroupOption } from \"./types\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport lodashCamelCase from \"lodash/camelCase\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/new-content-model-dialog\");\n\nconst narrowDialog = css({\n \".mdc-dialog__surface\": {\n width: 600,\n minWidth: 600\n }\n});\n\nconst noPadding = css({\n padding: \"5px !important\"\n});\n\n/**\n * This list is to disallow creating models that might interfere with GraphQL schema creation.\n * Add more if required.\n */\nconst disallowedModelIdEndingList: string[] = [\"Response\", \"List\", \"Meta\", \"Input\", \"Sorter\"];\n\nexport interface NewContentModelDialogProps {\n open: boolean;\n onClose: UID.DialogOnClose;\n}\n\nconst SCHEMA_TYPES = gql`\n query ListSchemaTypes {\n __schema {\n types {\n name\n }\n }\n }\n`;\n\ninterface SchemaTypes {\n __schema: {\n types: { name: string }[];\n };\n}\n\ninterface CmsModelData {\n name: string;\n description: string;\n group: string;\n}\n\nconst NewContentModelDialog: React.FC<NewContentModelDialogProps> = ({ open, onClose }) => {\n const [loading, setLoading] = React.useState(false);\n const { showSnackbar } = useSnackbar();\n const { history } = useRouter();\n const client = useApolloClient();\n\n const [createContentModel] = useMutation<\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables\n >(GQL.CREATE_CONTENT_MODEL, {\n update(cache, { data }) {\n if (!data) {\n setLoading(false);\n showSnackbar(\"Missing data on Create Content Model Mutation Response.\");\n return;\n }\n const { data: model, error } = data.createContentModel;\n\n if (error) {\n setLoading(false);\n showSnackbar(error.message);\n return;\n }\n\n addModelToListCache(cache, model);\n addModelToGroupCache(cache, model);\n\n history.push(\"/cms/content-models/\" + model.modelId);\n }\n });\n\n const listMenuGroupsQuery = useQuery<ListMenuCmsGroupsQueryResponse>(\n GQL.LIST_MENU_CONTENT_GROUPS_MODELS,\n {\n skip: !open\n }\n );\n\n const contentModelGroups = get(listMenuGroupsQuery, \"data.listContentModelGroups.data\", []).map(\n (item: CmsGroup): CmsGroupOption => {\n return {\n value: item.id,\n label: item.name\n };\n }\n );\n\n const nameValidator = useCallback(\n async (name: string): Promise<boolean> => {\n const target = (name || \"\").trim();\n if (!target.charAt(0).match(/[a-zA-Z]/)) {\n throw new Error(\"Model name can't start with a number.\");\n }\n\n for (const ending of disallowedModelIdEndingList) {\n const re = new RegExp(`${ending}$`, \"i\");\n const matched = target.match(re);\n if (matched === null) {\n continue;\n }\n throw new Error(`Model must not end with \"${ending}\".`);\n }\n\n // Validate GraphQL Schema type\n const { data } = await client.query<SchemaTypes>({\n query: SCHEMA_TYPES,\n fetchPolicy: \"network-only\"\n });\n\n const types = data.__schema.types.map(t => t.name);\n\n const modelId = lodashUpperFirst(lodashCamelCase(name));\n\n if (types.includes(modelId)) {\n throw new Error(\n `\"${name}\" type already exists in the GraphQL schema. Please pick a different name.`\n );\n }\n\n return true;\n },\n [client]\n );\n\n const group = contentModelGroups?.length > 0 ? contentModelGroups[0].value : null;\n\n const onSubmit = async (data: CmsModelData) => {\n setLoading(true);\n await createContentModel({\n variables: { data }\n });\n };\n\n return (\n <UID.Dialog\n open={open}\n onClose={onClose}\n className={narrowDialog}\n data-testid=\"cms-new-content-model-modal\"\n >\n {open && (\n <Form\n data={{ group }}\n onSubmit={data => {\n /**\n * We are positive that data is CmsModelData.\n */\n onSubmit(data as unknown as CmsModelData);\n }}\n >\n {({ Bind, submit }) => (\n <>\n {loading && <CircularProgress label={\"Creating content model...\"} />}\n <UID.DialogTitle>{t`New Content Model`}</UID.DialogTitle>\n <UID.DialogContent>\n <Grid className={noPadding}>\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n nameValidator\n ]}\n >\n <Input\n label={t`Name`}\n description={t`The name of the content model. Use the singular form, e.g. Person, not Persons.`}\n data-testid=\"cms.newcontentmodeldialog.name\"\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"group\"}\n validators={validation.create(\"required\")}\n >\n <Select\n description={t`Choose a content model group`}\n label={t`Content model group`}\n options={contentModelGroups}\n data-testid=\"cms.newcontentmodeldialog.selectgroup\"\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name=\"description\">\n {props => (\n <Input\n {...props}\n rows={4}\n maxLength={200}\n characterCount\n label={t`Description`}\n data-testid=\"cms.newcontentmodeldialog.description\"\n />\n )}\n </Bind>\n </Cell>\n </Grid>\n </UID.DialogContent>\n <UID.DialogActions>\n <ButtonPrimary\n onClick={ev => {\n submit(ev);\n }}\n >\n + {t`Create Model`}\n </ButtonPrimary>\n </UID.DialogActions>\n </>\n )}\n </Form>\n )}\n </UID.Dialog>\n );\n};\n\nexport default NewContentModelDialog;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,sEAAR,CAAV;;AAEA,IAAMC,YAAY,gBAAG,IAAAC,YAAA,EAAI;EACrB,wBAAwB;IACpBC,KAAK,EAAE,GADa;IAEpBC,QAAQ,EAAE;EAFU;AADH,CAAJ,wBAArB;AAOA,IAAMC,SAAS,gBAAG,IAAAH,YAAA,EAAI;EAClBI,OAAO,EAAE;AADS,CAAJ,qBAAlB;AAIA;AACA;AACA;AACA;;AACA,IAAMC,2BAAqC,GAAG,CAAC,UAAD,EAAa,MAAb,EAAqB,MAArB,EAA6B,OAA7B,EAAsC,QAAtC,CAA9C;AAOA,IAAMC,YAAY,OAAGC,mBAAH,mNAAlB;;AAsBA,IAAMC,qBAA2D,GAAG,SAA9DA,qBAA8D,OAAuB;EAAA,IAApBC,IAAoB,QAApBA,IAAoB;EAAA,IAAdC,OAAc,QAAdA,OAAc;;EACvF,sBAA8BC,cAAA,CAAMC,QAAN,CAAe,KAAf,CAA9B;EAAA;EAAA,IAAOC,OAAP;EAAA,IAAgBC,UAAhB;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,iBAAoB,IAAAC,sBAAA,GAApB;EAAA,IAAQC,OAAR,cAAQA,OAAR;;EACA,IAAMC,MAAM,GAAG,IAAAC,sBAAA,GAAf;;EAEA,mBAA6B,IAAAC,kBAAA,EAG3BC,GAAG,CAACC,oBAHuB,EAGD;IACxBC,MADwB,kBACjBC,KADiB,SACA;MAAA,IAARC,IAAQ,SAARA,IAAQ;;MACpB,IAAI,CAACA,IAAL,EAAW;QACPZ,UAAU,CAAC,KAAD,CAAV;QACAE,YAAY,CAAC,yDAAD,CAAZ;QACA;MACH;;MACD,4BAA+BU,IAAI,CAACC,kBAApC;MAAA,IAAcC,KAAd,yBAAQF,IAAR;MAAA,IAAqBG,KAArB,yBAAqBA,KAArB;;MAEA,IAAIA,KAAJ,EAAW;QACPf,UAAU,CAAC,KAAD,CAAV;QACAE,YAAY,CAACa,KAAK,CAACC,OAAP,CAAZ;QACA;MACH;;MAED,IAAAC,0BAAA,EAAoBN,KAApB,EAA2BG,KAA3B;MACA,IAAAI,2BAAA,EAAqBP,KAArB,EAA4BG,KAA5B;MAEAV,OAAO,CAACe,IAAR,CAAa,yBAAyBL,KAAK,CAACM,OAA5C;IACH;EAnBuB,CAHC,CAA7B;EAAA;EAAA,IAAOP,kBAAP;;EAyBA,IAAMQ,mBAAmB,GAAG,IAAAC,eAAA,EACxBd,GAAG,CAACe,+BADoB,EAExB;IACIC,IAAI,EAAE,CAAC7B;EADX,CAFwB,CAA5B;EAOA,IAAM8B,kBAAkB,GAAG,IAAAC,YAAA,EAAIL,mBAAJ,EAAyB,kCAAzB,EAA6D,EAA7D,EAAiEM,GAAjE,CACvB,UAACC,IAAD,EAAoC;IAChC,OAAO;MACHC,KAAK,EAAED,IAAI,CAACE,EADT;MAEHC,KAAK,EAAEH,IAAI,CAACI;IAFT,CAAP;EAIH,CANsB,CAA3B;EASA,IAAMC,aAAa,GAAG,IAAAC,kBAAA;IAAA,mGAClB,iBAAOF,IAAP;MAAA;;MAAA;QAAA;UAAA;YAAA;cACUG,MADV,GACmB,CAACH,IAAI,IAAI,EAAT,EAAaI,IAAb,EADnB;;cAAA,IAESD,MAAM,CAACE,MAAP,CAAc,CAAd,EAAiBC,KAAjB,CAAuB,UAAvB,CAFT;gBAAA;gBAAA;cAAA;;cAAA,MAGc,IAAIC,KAAJ,CAAU,uCAAV,CAHd;;YAAA;cAAA,qDAMyBhD,2BANzB;cAAA;;cAAA;;YAAA;cAAA;gBAAA;gBAAA;cAAA;;cAMeiD,MANf;cAOcC,EAPd,GAOmB,IAAIC,MAAJ,WAAcF,MAAd,QAAyB,GAAzB,CAPnB;cAQcG,OARd,GAQwBR,MAAM,CAACG,KAAP,CAAaG,EAAb,CARxB;;cAAA,MASYE,OAAO,KAAK,IATxB;gBAAA;gBAAA;cAAA;;cAAA;;YAAA;cAAA,MAYc,IAAIJ,KAAJ,qCAAsCC,MAAtC,SAZd;;YAAA;cAAA;cAAA;;YAAA;cAAA;cAAA;;YAAA;cAAA;cAAA;;cAAA;;YAAA;cAAA;;cAAA;;cAAA;;YAAA;cAAA;cAAA,OAgB2BnC,MAAM,CAACuC,KAAP,CAA0B;gBAC7CA,KAAK,EAAEpD,YADsC;gBAE7CqD,WAAW,EAAE;cAFgC,CAA1B,CAhB3B;;YAAA;cAAA;cAgBYjC,IAhBZ,uBAgBYA,IAhBZ;cAqBUkC,KArBV,GAqBkBlC,IAAI,CAACmC,QAAL,CAAcD,KAAd,CAAoBnB,GAApB,CAAwB,UAAA7C,CAAC;gBAAA,OAAIA,CAAC,CAACkD,IAAN;cAAA,CAAzB,CArBlB;cAuBUZ,OAvBV,GAuBoB,IAAA4B,mBAAA,EAAiB,IAAAC,kBAAA,EAAgBjB,IAAhB,CAAjB,CAvBpB;;cAAA,KAyBQc,KAAK,CAACI,QAAN,CAAe9B,OAAf,CAzBR;gBAAA;gBAAA;cAAA;;cAAA,MA0Bc,IAAImB,KAAJ,aACEP,IADF,iFA1Bd;;YAAA;cAAA,iCA+BW,IA/BX;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CADkB;;IAAA;MAAA;IAAA;EAAA,KAkClB,CAAC3B,MAAD,CAlCkB,CAAtB;EAqCA,IAAM8C,KAAK,GAAG,CAAA1B,kBAAkB,SAAlB,IAAAA,kBAAkB,WAAlB,YAAAA,kBAAkB,CAAE2B,MAApB,IAA6B,CAA7B,GAAiC3B,kBAAkB,CAAC,CAAD,CAAlB,CAAsBI,KAAvD,GAA+D,IAA7E;;EAEA,IAAMwB,SAAQ;IAAA,mGAAG,kBAAOzC,IAAP;MAAA;QAAA;UAAA;YAAA;cACbZ,UAAU,CAAC,IAAD,CAAV;cADa;cAAA,OAEPa,kBAAkB,CAAC;gBACrByC,SAAS,EAAE;kBAAE1C,IAAI,EAAJA;gBAAF;cADU,CAAD,CAFX;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CAAH;;IAAA,gBAARyC,QAAQ;MAAA;IAAA;EAAA,GAAd;;EAOA,oBACI,6BAAC,GAAD,CAAK,MAAL;IACI,IAAI,EAAE1D,IADV;IAEI,OAAO,EAAEC,OAFb;IAGI,SAAS,EAAEX,YAHf;IAII,eAAY;EAJhB,GAMKU,IAAI,iBACD,6BAAC,UAAD;IACI,IAAI,EAAE;MAAEwD,KAAK,EAALA;IAAF,CADV;IAEI,QAAQ,EAAE,kBAAAvC,IAAI,EAAI;MACd;AACxB;AACA;MACwByC,SAAQ,CAACzC,IAAD,CAAR;IACH;EAPL,GASK;IAAA,IAAG2C,IAAH,SAAGA,IAAH;IAAA,IAASC,MAAT,SAASA,MAAT;IAAA,oBACG,4DACKzD,OAAO,iBAAI,6BAAC,0BAAD;MAAkB,KAAK,EAAE;IAAzB,EADhB,eAEI,6BAAC,GAAD,CAAK,WAAL,QAAkBjB,CAAlB,uGAFJ,eAGI,6BAAC,GAAD,CAAK,aAAL,qBACI,6BAAC,UAAD;MAAM,SAAS,EAAEO;IAAjB,gBACI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MACI,IAAI,EAAE,MADV;MAEI,UAAU,EAAE,CACRoE,sBAAA,CAAWC,MAAX,CAAkB,wBAAlB,CADQ,EAERzB,aAFQ;IAFhB,gBAOI,6BAAC,YAAD;MACI,KAAK,EAAEnD,CAAF,yFADT;MAEI,WAAW,EAAEA,CAAF,oKAFf;MAGI,eAAY;IAHhB,EAPJ,CADJ,CADJ,eAgBI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MACI,IAAI,EAAE,OADV;MAEI,UAAU,EAAE2E,sBAAA,CAAWC,MAAX,CAAkB,UAAlB;IAFhB,gBAII,6BAAC,cAAD;MACI,WAAW,EAAE5E,CAAF,iHADf;MAEI,KAAK,EAAEA,CAAF,wGAFT;MAGI,OAAO,EAAE2C,kBAHb;MAII,eAAY;IAJhB,EAJJ,CADJ,CAhBJ,eA6BI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MAAM,IAAI,EAAC;IAAX,GACK,UAAAkC,KAAK;MAAA,oBACF,6BAAC,YAAD,oBACQA,KADR;QAEI,IAAI,EAAE,CAFV;QAGI,SAAS,EAAE,GAHf;QAII,cAAc,MAJlB;QAKI,KAAK,EAAE7E,CAAF,gGALT;QAMI,eAAY;MANhB,GADE;IAAA,CADV,CADJ,CA7BJ,CADJ,CAHJ,eAiDI,6BAAC,GAAD,CAAK,aAAL,qBACI,6BAAC,qBAAD;MACI,OAAO,EAAE,iBAAA8E,EAAE,EAAI;QACXJ,MAAM,CAACI,EAAD,CAAN;MACH;IAHL,SAKO9E,CALP,kGADJ,CAjDJ,CADH;EAAA,CATL,CAPR,CADJ;AAkFH,CA/KD;;eAiLeY,qB"}
1
+ {"version":3,"names":["t","i18n","ns","disallowedModelIdEndingList","SCHEMA_TYPES","gql","NewContentModelDialog","open","onClose","React","useState","loading","setLoading","useSnackbar","showSnackbar","useRouter","history","client","useApolloClient","useMutation","GQL","CREATE_CONTENT_MODEL","update","cache","data","createContentModel","model","error","message","addModelToListCache","addModelToGroupCache","push","modelId","listMenuGroupsQuery","useQuery","LIST_MENU_CONTENT_GROUPS_MODELS","skip","contentModelGroups","get","map","item","value","id","label","name","nameValidator","useCallback","target","trim","charAt","match","Error","ending","re","RegExp","matched","query","fetchPolicy","types","__schema","lodashUpperFirst","lodashCamelCase","includes","group","length","onSubmit","variables","Bind","submit","validation","create","props","ev"],"sources":["NewContentModelDialog.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport gql from \"graphql-tag\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { validation } from \"@webiny/validation\";\nimport { useQuery, useMutation, useApolloClient } from \"../../hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport * as UID from \"@webiny/ui/Dialog\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { addModelToGroupCache, addModelToListCache } from \"./cache\";\nimport * as GQL from \"../../viewsGraphql\";\nimport {\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables,\n ListMenuCmsGroupsQueryResponse\n} from \"../../viewsGraphql\";\nimport { CmsGroup } from \"~/types\";\nimport { CmsGroupOption } from \"./types\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport lodashCamelCase from \"lodash/camelCase\";\nimport { Dialog } from \"~/admin/components/Dialog\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/views/content-models/new-content-model-dialog\");\n\n/**\n * This list is to disallow creating models that might interfere with GraphQL schema creation.\n * Add more if required.\n */\nconst disallowedModelIdEndingList: string[] = [\"Response\", \"List\", \"Meta\", \"Input\", \"Sorter\"];\n\nexport interface NewContentModelDialogProps {\n open: boolean;\n onClose: UID.DialogOnClose;\n}\n\nconst SCHEMA_TYPES = gql`\n query ListSchemaTypes {\n __schema {\n types {\n name\n }\n }\n }\n`;\n\ninterface SchemaTypes {\n __schema: {\n types: { name: string }[];\n };\n}\n\ninterface CmsModelData {\n name: string;\n description: string;\n group: string;\n}\n\nconst NewContentModelDialog: React.FC<NewContentModelDialogProps> = ({ open, onClose }) => {\n const [loading, setLoading] = React.useState(false);\n const { showSnackbar } = useSnackbar();\n const { history } = useRouter();\n const client = useApolloClient();\n\n const [createContentModel] = useMutation<\n CreateCmsModelMutationResponse,\n CreateCmsModelMutationVariables\n >(GQL.CREATE_CONTENT_MODEL, {\n update(cache, { data }) {\n if (!data) {\n setLoading(false);\n showSnackbar(\"Missing data on Create Content Model Mutation Response.\");\n return;\n }\n const { data: model, error } = data.createContentModel;\n\n if (error) {\n setLoading(false);\n showSnackbar(error.message);\n return;\n }\n\n addModelToListCache(cache, model);\n addModelToGroupCache(cache, model);\n\n history.push(\"/cms/content-models/\" + model.modelId);\n }\n });\n\n const listMenuGroupsQuery = useQuery<ListMenuCmsGroupsQueryResponse>(\n GQL.LIST_MENU_CONTENT_GROUPS_MODELS,\n {\n skip: !open\n }\n );\n\n const contentModelGroups = get(listMenuGroupsQuery, \"data.listContentModelGroups.data\", []).map(\n (item: CmsGroup): CmsGroupOption => {\n return {\n value: item.id,\n label: item.name\n };\n }\n );\n\n const nameValidator = useCallback(\n async (name: string): Promise<boolean> => {\n const target = (name || \"\").trim();\n if (!target.charAt(0).match(/[a-zA-Z]/)) {\n throw new Error(\"Model name can't start with a number.\");\n }\n\n for (const ending of disallowedModelIdEndingList) {\n const re = new RegExp(`${ending}$`, \"i\");\n const matched = target.match(re);\n if (matched === null) {\n continue;\n }\n throw new Error(`Model must not end with \"${ending}\".`);\n }\n\n // Validate GraphQL Schema type\n const { data } = await client.query<SchemaTypes>({\n query: SCHEMA_TYPES,\n fetchPolicy: \"network-only\"\n });\n\n const types = data.__schema.types.map(t => t.name);\n\n const modelId = lodashUpperFirst(lodashCamelCase(name));\n\n if (types.includes(modelId)) {\n throw new Error(\n `\"${name}\" type already exists in the GraphQL schema. Please pick a different name.`\n );\n }\n\n return true;\n },\n [client]\n );\n\n const group = contentModelGroups?.length > 0 ? contentModelGroups[0].value : null;\n\n const onSubmit = async (data: CmsModelData) => {\n setLoading(true);\n await createContentModel({\n variables: { data }\n });\n };\n\n return (\n <Dialog open={open} onClose={onClose} data-testid=\"cms-new-content-model-modal\">\n {open && (\n <Form\n data={{ group }}\n onSubmit={data => {\n /**\n * We are positive that data is CmsModelData.\n */\n onSubmit(data as unknown as CmsModelData);\n }}\n >\n {({ Bind, submit }) => (\n <>\n {loading && <CircularProgress label={\"Creating content model...\"} />}\n <UID.DialogTitle>{t`New Content Model`}</UID.DialogTitle>\n <UID.DialogContent>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[\n validation.create(\"required,maxLength:100\"),\n nameValidator\n ]}\n >\n <Input\n label={t`Name`}\n description={t`The name of the content model. Use the singular form, e.g. Person, not Persons.`}\n data-testid=\"cms.newcontentmodeldialog.name\"\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"group\"}\n validators={validation.create(\"required\")}\n >\n <Select\n description={t`Choose a content model group`}\n label={t`Content model group`}\n options={contentModelGroups}\n data-testid=\"cms.newcontentmodeldialog.selectgroup\"\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name=\"description\">\n {props => (\n <Input\n {...props}\n rows={4}\n maxLength={200}\n characterCount\n label={t`Description`}\n data-testid=\"cms.newcontentmodeldialog.description\"\n />\n )}\n </Bind>\n </Cell>\n </Grid>\n </UID.DialogContent>\n <UID.DialogActions>\n <ButtonPrimary\n onClick={ev => {\n submit(ev);\n }}\n >\n + {t`Create Model`}\n </ButtonPrimary>\n </UID.DialogActions>\n </>\n )}\n </Form>\n )}\n </Dialog>\n );\n};\n\nexport default NewContentModelDialog;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
14
14
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
15
15
 
16
16
  var ERROR_FIELDS = "\n code\n message\n data\n";
17
- var BASE_CONTENT_MODEL_FIELDS = "\n description\n modelId\n name\n savedOn\n plugin\n fields {\n id\n }\n group {\n id\n name\n }\n createdBy {\n id\n displayName\n type\n }\n";
17
+ var BASE_CONTENT_MODEL_FIELDS = "\n description\n modelId\n name\n savedOn\n plugin\n tags\n fields {\n id\n }\n group {\n id\n name\n }\n createdBy {\n id\n displayName\n type\n }\n";
18
18
  /**
19
19
  * ############################
20
20
  * List groups with models Query
@@ -1 +1 @@
1
- {"version":3,"names":["ERROR_FIELDS","BASE_CONTENT_MODEL_FIELDS","LIST_MENU_CONTENT_GROUPS_MODELS","gql","LIST_CONTENT_MODELS","CREATE_CONTENT_MODEL","CREATE_CONTENT_MODEL_FROM","DELETE_CONTENT_MODEL"],"sources":["viewsGraphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { CmsErrorResponse, CmsGroup, CmsModel } from \"~/types\";\n\nconst ERROR_FIELDS = `\n code\n message\n data\n`;\n\nconst BASE_CONTENT_MODEL_FIELDS = `\n description\n modelId\n name\n savedOn\n plugin\n fields {\n id\n }\n group {\n id\n name\n }\n createdBy {\n id\n displayName\n type\n }\n`;\n\n/**\n * ############################\n * List groups with models Query\n * * Fetches data needed for constructing content models list in the main menu.\n */\nexport interface ListMenuCmsGroupsQueryResponse {\n listContentModelGroups: {\n data: CmsGroup[];\n error?: CmsErrorResponse;\n };\n}\nexport const LIST_MENU_CONTENT_GROUPS_MODELS = gql`\n query CmsListMenuContentGroupsModels {\n listContentModelGroups {\n data {\n id\n name\n icon\n plugin\n contentModels {\n name\n modelId\n plugin\n createdBy {\n id\n displayName\n type\n }\n }\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n/**\n * ############################\n * List Query\n */\nexport interface ListCmsModelsQueryResponse {\n listContentModels: {\n data: CmsModel[];\n error?: CmsErrorResponse;\n };\n}\nexport const LIST_CONTENT_MODELS = gql`\n query CmsListContentModels {\n listContentModels {\n data {\n ${BASE_CONTENT_MODEL_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n/**\n * ############################\n * Create Mutation\n */\nexport interface CreateCmsModelMutationResponse {\n createContentModel: {\n data: CmsModel;\n error?: CmsErrorResponse;\n };\n}\nexport interface CreateCmsModelMutationVariables {\n // @ts-refactor write the types.\n data: Record<string, any>;\n}\nexport const CREATE_CONTENT_MODEL = gql`\n mutation CmsCreateContentModel($data: CmsContentModelCreateInput!) {\n createContentModel(data: $data) {\n data {\n ${BASE_CONTENT_MODEL_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n/**\n * ############################\n * Create From Mutation\n */\nexport interface CreateCmsModelFromMutationResponse {\n createContentModelFrom: {\n data: CmsModel;\n error?: CmsErrorResponse;\n };\n}\nexport interface CreateCmsModelFromMutationVariables {\n modelId: string;\n data: CmsModel;\n}\nexport const CREATE_CONTENT_MODEL_FROM = gql`\n mutation CmsCreateContentModelFrom($modelId: ID!, $data: CmsContentModelCreateFromInput!) {\n createContentModelFrom(modelId: $modelId, data: $data) {\n data {\n ${BASE_CONTENT_MODEL_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n\n/**\n * ############################\n * Delete Mutation\n */\nexport interface DeleteCmsModelMutationResponse {\n deleteContentModel: {\n data: boolean;\n error?: CmsErrorResponse;\n };\n}\nexport interface DeleteCmsModelMutationVariables {\n modelId: string;\n}\nexport const DELETE_CONTENT_MODEL = gql`\n mutation CmsDeleteContentModel($modelId: ID!) {\n deleteContentModel(modelId: $modelId) {\n data\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAGA,IAAMA,YAAY,wCAAlB;AAMA,IAAMC,yBAAyB,8NAA/B;AAoBA;AACA;AACA;AACA;AACA;;AAOO,IAAMC,+BAA+B,OAAGC,mBAAH,0oBAoB1BH,YApB0B,CAArC;AAyBP;AACA;AACA;AACA;;;AAOO,IAAMI,mBAAmB,OAAGD,mBAAH,6RAIdF,yBAJc,EAOdD,YAPc,CAAzB;AAYP;AACA;AACA;AACA;;;AAWO,IAAMK,oBAAoB,OAAGF,mBAAH,mVAIfF,yBAJe,EAOfD,YAPe,CAA1B;AAYP;AACA;AACA;AACA;;;AAWO,IAAMM,yBAAyB,OAAGH,mBAAH,iYAIpBF,yBAJoB,EAOpBD,YAPoB,CAA/B;AAaP;AACA;AACA;AACA;;;AAUO,IAAMO,oBAAoB,OAAGJ,mBAAH,6RAKfH,YALe,CAA1B"}
1
+ {"version":3,"names":["ERROR_FIELDS","BASE_CONTENT_MODEL_FIELDS","LIST_MENU_CONTENT_GROUPS_MODELS","gql","LIST_CONTENT_MODELS","CREATE_CONTENT_MODEL","CREATE_CONTENT_MODEL_FROM","DELETE_CONTENT_MODEL"],"sources":["viewsGraphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport { CmsErrorResponse, CmsGroup, CmsModel } from \"~/types\";\n\nconst ERROR_FIELDS = `\n code\n message\n data\n`;\n\nconst BASE_CONTENT_MODEL_FIELDS = `\n description\n modelId\n name\n savedOn\n plugin\n tags\n fields {\n id\n }\n group {\n id\n name\n }\n createdBy {\n id\n displayName\n type\n }\n`;\n\n/**\n * ############################\n * List groups with models Query\n * * Fetches data needed for constructing content models list in the main menu.\n */\nexport interface ListMenuCmsGroupsQueryResponse {\n listContentModelGroups: {\n data: CmsGroup[];\n error?: CmsErrorResponse;\n };\n}\nexport const LIST_MENU_CONTENT_GROUPS_MODELS = gql`\n query CmsListMenuContentGroupsModels {\n listContentModelGroups {\n data {\n id\n name\n icon\n plugin\n contentModels {\n name\n modelId\n plugin\n createdBy {\n id\n displayName\n type\n }\n }\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n/**\n * ############################\n * List Query\n */\nexport interface ListCmsModelsQueryResponse {\n listContentModels: {\n data: CmsModel[];\n error?: CmsErrorResponse;\n };\n}\nexport const LIST_CONTENT_MODELS = gql`\n query CmsListContentModels {\n listContentModels {\n data {\n ${BASE_CONTENT_MODEL_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n/**\n * ############################\n * Create Mutation\n */\nexport interface CreateCmsModelMutationResponse {\n createContentModel: {\n data: CmsModel;\n error?: CmsErrorResponse;\n };\n}\nexport interface CreateCmsModelMutationVariables {\n // @ts-refactor write the types.\n data: Record<string, any>;\n}\nexport const CREATE_CONTENT_MODEL = gql`\n mutation CmsCreateContentModel($data: CmsContentModelCreateInput!) {\n createContentModel(data: $data) {\n data {\n ${BASE_CONTENT_MODEL_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n/**\n * ############################\n * Create From Mutation\n */\nexport interface CreateCmsModelFromMutationResponse {\n createContentModelFrom: {\n data: CmsModel;\n error?: CmsErrorResponse;\n };\n}\nexport interface CreateCmsModelFromMutationVariables {\n modelId: string;\n data: CmsModel;\n}\nexport const CREATE_CONTENT_MODEL_FROM = gql`\n mutation CmsCreateContentModelFrom($modelId: ID!, $data: CmsContentModelCreateFromInput!) {\n createContentModelFrom(modelId: $modelId, data: $data) {\n data {\n ${BASE_CONTENT_MODEL_FIELDS}\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n\n/**\n * ############################\n * Delete Mutation\n */\nexport interface DeleteCmsModelMutationResponse {\n deleteContentModel: {\n data: boolean;\n error?: CmsErrorResponse;\n };\n}\nexport interface DeleteCmsModelMutationVariables {\n modelId: string;\n}\nexport const DELETE_CONTENT_MODEL = gql`\n mutation CmsDeleteContentModel($modelId: ID!) {\n deleteContentModel(modelId: $modelId) {\n data\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAGA,IAAMA,YAAY,wCAAlB;AAMA,IAAMC,yBAAyB,wOAA/B;AAqBA;AACA;AACA;AACA;AACA;;AAOO,IAAMC,+BAA+B,OAAGC,mBAAH,0oBAoB1BH,YApB0B,CAArC;AAyBP;AACA;AACA;AACA;;;AAOO,IAAMI,mBAAmB,OAAGD,mBAAH,6RAIdF,yBAJc,EAOdD,YAPc,CAAzB;AAYP;AACA;AACA;AACA;;;AAWO,IAAMK,oBAAoB,OAAGF,mBAAH,mVAIfF,yBAJe,EAOfD,YAPe,CAA1B;AAYP;AACA;AACA;AACA;;;AAWO,IAAMM,yBAAyB,OAAGH,mBAAH,iYAIpBF,yBAJoB,EAOpBD,YAPoB,CAA/B;AAaP;AACA;AACA;AACA;;;AAUO,IAAMO,oBAAoB,OAAGJ,mBAAH,6RAKfH,YALe,CAA1B"}
@@ -0,0 +1,34 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (import("./types").CmsModelFieldTypePlugin | import("./types").CmsEditorFieldRendererPlugin | import("./types").CmsEditorFieldRendererPlugin[] | import("./types").CmsModelFieldValidatorPlugin<any> | import("./types").CmsModelFieldRegexValidatorExpressionPlugin | (import("./types").CmsEditorFormSettingsPlugin | import("./types").CmsIconsPlugin | import("./types").CmsFieldValueTransformer<{
3
+ id: string;
4
+ type: string;
5
+ fieldId: string;
6
+ storageId?: string | undefined;
7
+ label?: string | undefined;
8
+ helpText?: string | undefined;
9
+ placeholderText?: string | undefined;
10
+ validation?: import("./types").CmsModelFieldValidator[] | undefined;
11
+ listValidation?: import("./types").CmsModelFieldValidator[] | undefined;
12
+ multipleValues?: boolean | undefined;
13
+ predefinedValues?: import("./types").CmsEditorFieldPredefinedValues | undefined;
14
+ settings?: {
15
+ [key: string]: any;
16
+ defaultValue?: string | null | undefined;
17
+ defaultSetValue?: string | undefined;
18
+ type?: string | undefined;
19
+ fields?: any[] | undefined;
20
+ layout?: string[][] | undefined;
21
+ models?: Pick<import("./types").CmsModel, "name" | "modelId">[] | undefined;
22
+ templates?: import("./types").CmsDynamicZoneTemplate[] | undefined;
23
+ imagesOnly?: boolean | undefined;
24
+ } | undefined;
25
+ renderer: {
26
+ name: string;
27
+ };
28
+ tags?: string[] | undefined;
29
+ }>[] | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("@webiny/app").ApolloCacheObjectIdPlugin<import("@webiny/app/plugins/ApolloCacheObjectIdPlugin").ApolloCacheObject> | import("./types").CmsContentDetailsPlugin[] | {
30
+ name: string;
31
+ type: string;
32
+ render(): JSX.Element;
33
+ }[])[] | import("@webiny/app-plugin-admin-welcome-screen/types").AdminWelcomeScreenWidgetPlugin)[];
34
+ export default _default;