@webiny/app-headless-cms 5.33.5-beta.0 → 5.34.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/HeadlessCMS.js +4 -0
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntryForm/ContentEntryForm.js +35 -32
  4. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
  5. package/admin/components/ContentEntryForm/Fields.d.ts +2 -2
  6. package/admin/components/ContentEntryForm/Fields.js.map +1 -1
  7. package/admin/components/ContentEntryForm/Label.js +1 -1
  8. package/admin/components/ContentEntryForm/Label.js.map +1 -1
  9. package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +2 -2
  10. package/admin/components/ContentEntryForm/RenderFieldElement.js +6 -2
  11. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
  12. package/admin/components/ContentEntryForm/functions/getValue.d.ts +2 -2
  13. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
  14. package/admin/components/ContentEntryForm/functions/setValue.d.ts +2 -2
  15. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
  16. package/admin/components/ContentEntryForm/useBind.d.ts +2 -2
  17. package/admin/components/ContentEntryForm/useBind.js +11 -8
  18. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  19. package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +1 -2
  20. package/admin/components/ContentEntryForm/useContentEntryForm.js +187 -147
  21. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
  22. package/admin/components/ContentModelEditor/{Context.d.ts → ContentModelEditorProvider.d.ts} +10 -4
  23. package/admin/components/ContentModelEditor/{Context.js → ContentModelEditorProvider.js} +60 -116
  24. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -0
  25. package/admin/components/ContentModelEditor/Editor.js +5 -5
  26. package/admin/components/ContentModelEditor/Editor.js.map +1 -1
  27. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
  28. package/admin/components/ContentModelEditor/PreviewTab.js +3 -3
  29. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
  30. package/admin/components/ContentModelEditor/index.d.ts +2 -0
  31. package/admin/components/ContentModelEditor/index.js +31 -0
  32. package/admin/components/ContentModelEditor/index.js.map +1 -0
  33. package/admin/components/ContentModelEditor/useModelEditor.d.ts +1 -0
  34. package/admin/components/ContentModelEditor/{useContentModelEditor.js → useModelEditor.js} +4 -4
  35. package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -0
  36. package/admin/{views/contentModelGroups → components}/DelayedOnChange.d.ts +0 -0
  37. package/admin/{views/contentModelGroups → components}/DelayedOnChange.js +0 -0
  38. package/admin/{views/contentModelGroups → components}/DelayedOnChange.js.map +0 -0
  39. package/admin/components/Dialog.d.ts +4 -0
  40. package/admin/components/Dialog.js +32 -0
  41. package/admin/components/Dialog.js.map +1 -0
  42. package/admin/components/DropZone/Center.d.ts +2 -1
  43. package/admin/components/DropZone/Center.js +38 -44
  44. package/admin/components/DropZone/Center.js.map +1 -1
  45. package/admin/components/Droppable.d.ts +1 -0
  46. package/admin/components/Droppable.js +12 -1
  47. package/admin/components/Droppable.js.map +1 -1
  48. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.d.ts +2 -8
  49. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +20 -9
  50. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
  51. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.d.ts +2 -9
  52. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +35 -21
  53. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  54. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.d.ts +2 -9
  55. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +14 -12
  56. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
  57. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.d.ts +10 -0
  58. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js +42 -0
  59. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js.map +1 -0
  60. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.d.ts +8 -0
  61. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js +227 -0
  62. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -0
  63. package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +13 -0
  64. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js +115 -0
  65. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -0
  66. package/admin/components/FieldEditor/EditFieldDialog.d.ts +3 -3
  67. package/admin/components/FieldEditor/EditFieldDialog.js +117 -260
  68. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
  69. package/admin/components/FieldEditor/Field.d.ts +5 -5
  70. package/admin/components/FieldEditor/Field.js +17 -14
  71. package/admin/components/FieldEditor/Field.js.map +1 -1
  72. package/admin/components/FieldEditor/FieldEditor.d.ts +4 -4
  73. package/admin/components/FieldEditor/FieldEditor.js +85 -31
  74. package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
  75. package/admin/components/FieldEditor/FieldEditorContext.d.ts +16 -16
  76. package/admin/components/FieldEditor/FieldEditorContext.js +18 -18
  77. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
  78. package/admin/components/FieldEditor/Styled.js +4 -13
  79. package/admin/components/FieldEditor/Styled.js.map +1 -1
  80. package/admin/components/FieldEditor/index.d.ts +1 -1
  81. package/admin/components/FieldEditor/index.js +3 -3
  82. package/admin/components/FieldEditor/index.js.map +1 -1
  83. package/admin/components/FieldEditor/useModelFieldEditor.d.ts +2 -0
  84. package/admin/components/FieldEditor/useModelFieldEditor.js +20 -0
  85. package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -0
  86. package/admin/components/FieldEditor/utils/deleteField.d.ts +2 -2
  87. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
  88. package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +2 -2
  89. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
  90. package/admin/components/FieldEditor/utils/moveField.d.ts +3 -3
  91. package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
  92. package/admin/components/IconPicker.d.ts +7 -0
  93. package/admin/{views/contentModelGroups → components}/IconPicker.js +34 -31
  94. package/admin/components/IconPicker.js.map +1 -0
  95. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +36 -0
  96. package/admin/components/ModelFieldProvider/ModelFieldContext.js +24 -0
  97. package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +1 -0
  98. package/admin/components/ModelFieldProvider/index.d.ts +2 -0
  99. package/admin/components/ModelFieldProvider/index.js +31 -0
  100. package/admin/components/ModelFieldProvider/index.js.map +1 -0
  101. package/admin/components/ModelFieldProvider/useModelField.d.ts +35 -0
  102. package/admin/components/ModelFieldProvider/useModelField.js +42 -0
  103. package/admin/components/ModelFieldProvider/useModelField.js.map +1 -0
  104. package/admin/components/ModelProvider/ModelContext.d.ts +9 -0
  105. package/admin/components/ModelProvider/ModelContext.js +24 -0
  106. package/admin/components/ModelProvider/ModelContext.js.map +1 -0
  107. package/admin/components/ModelProvider/index.d.ts +2 -0
  108. package/admin/components/ModelProvider/index.js +31 -0
  109. package/admin/components/ModelProvider/index.js.map +1 -0
  110. package/admin/components/ModelProvider/useModel.d.ts +9 -0
  111. package/admin/components/ModelProvider/useModel.js +25 -0
  112. package/admin/components/ModelProvider/useModel.js.map +1 -0
  113. package/admin/constants/statusLabels.js +2 -4
  114. package/admin/constants/statusLabels.js.map +1 -1
  115. package/admin/graphql/contentEntries.d.ts +2 -29
  116. package/admin/graphql/contentEntries.js +28 -42
  117. package/admin/graphql/contentEntries.js.map +1 -1
  118. package/admin/graphql/contentModels.d.ts +1 -1
  119. package/admin/graphql/contentModels.js +2 -2
  120. package/admin/graphql/contentModels.js.map +1 -1
  121. package/admin/graphql/createFieldsList.d.ts +7 -2
  122. package/admin/graphql/createFieldsList.js +5 -1
  123. package/admin/graphql/createFieldsList.js.map +1 -1
  124. package/admin/hooks/index.d.ts +5 -0
  125. package/admin/hooks/index.js +47 -2
  126. package/admin/hooks/index.js.map +1 -1
  127. package/admin/hooks/usePermission.d.ts +0 -2
  128. package/admin/hooks/usePermission.js +5 -37
  129. package/admin/hooks/usePermission.js.map +1 -1
  130. package/admin/menus/NothingToShowElement.js +4 -1
  131. package/admin/menus/NothingToShowElement.js.map +1 -1
  132. package/admin/plugins/arrayUtils.d.ts +12 -0
  133. package/admin/plugins/arrayUtils.js +53 -0
  134. package/admin/plugins/arrayUtils.js.map +1 -0
  135. package/admin/plugins/editor/defaultBar/CreateContentButton.js +4 -4
  136. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
  137. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +5 -5
  138. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
  139. package/admin/plugins/editor/defaultBar/Name/Name.js +4 -4
  140. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
  141. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +3 -3
  142. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
  143. package/admin/plugins/editor/formSettings/components/GeneralSettings.js +9 -1
  144. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
  145. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +3 -3
  146. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  147. package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -2
  148. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
  149. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
  150. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
  151. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
  152. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
  153. package/admin/plugins/fieldRenderers/dateTime/Input.d.ts +2 -2
  154. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  155. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +2 -2
  156. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  157. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +12 -0
  158. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js +107 -0
  159. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -0
  160. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +11 -0
  161. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +139 -0
  162. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -0
  163. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +11 -0
  164. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +68 -0
  165. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -0
  166. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +8 -0
  167. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js +63 -0
  168. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -0
  169. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +8 -0
  170. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js +53 -0
  171. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -0
  172. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +6 -0
  173. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js +22 -0
  174. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -0
  175. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.d.ts +2 -0
  176. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +66 -0
  177. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -0
  178. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
  179. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -2
  180. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  181. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -2
  182. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
  183. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +10 -9
  184. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
  185. package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +2 -2
  186. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  187. package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +2 -2
  188. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
  189. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.d.ts +2 -2
  190. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +15 -14
  191. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
  192. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
  193. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
  194. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  195. package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +2 -2
  196. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
  197. package/admin/plugins/fieldValidators/dateGte.d.ts +2 -2
  198. package/admin/plugins/fieldValidators/dateGte.js +79 -23
  199. package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
  200. package/admin/plugins/fieldValidators/dateLte.d.ts +2 -2
  201. package/admin/plugins/fieldValidators/dateLte.js +79 -23
  202. package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
  203. package/admin/plugins/fieldValidators/dynamicZone.d.ts +2 -0
  204. package/admin/plugins/fieldValidators/dynamicZone.js +215 -0
  205. package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -0
  206. package/admin/plugins/fieldValidators/gte.d.ts +2 -2
  207. package/admin/plugins/fieldValidators/gte.js +44 -5
  208. package/admin/plugins/fieldValidators/gte.js.map +1 -1
  209. package/admin/plugins/fieldValidators/in.d.ts +2 -2
  210. package/admin/plugins/fieldValidators/in.js +44 -5
  211. package/admin/plugins/fieldValidators/in.js.map +1 -1
  212. package/admin/plugins/fieldValidators/lte.d.ts +2 -2
  213. package/admin/plugins/fieldValidators/lte.js +44 -5
  214. package/admin/plugins/fieldValidators/lte.js.map +1 -1
  215. package/admin/plugins/fieldValidators/maxLength.d.ts +2 -2
  216. package/admin/plugins/fieldValidators/maxLength.js +55 -6
  217. package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
  218. package/admin/plugins/fieldValidators/minLength.d.ts +2 -2
  219. package/admin/plugins/fieldValidators/minLength.js +55 -6
  220. package/admin/plugins/fieldValidators/minLength.js.map +1 -1
  221. package/admin/plugins/fieldValidators/pattern.d.ts +2 -2
  222. package/admin/plugins/fieldValidators/pattern.js +129 -60
  223. package/admin/plugins/fieldValidators/pattern.js.map +1 -1
  224. package/admin/plugins/fieldValidators/patternPlugins/email.d.ts +2 -2
  225. package/admin/plugins/fieldValidators/patternPlugins/email.js +6 -4
  226. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
  227. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.d.ts +2 -2
  228. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +5 -3
  229. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
  230. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.d.ts +2 -2
  231. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +5 -3
  232. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
  233. package/admin/plugins/fieldValidators/patternPlugins/upperCase.d.ts +2 -2
  234. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +5 -3
  235. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
  236. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.d.ts +2 -2
  237. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +5 -3
  238. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
  239. package/admin/plugins/fieldValidators/patternPlugins/url.d.ts +2 -2
  240. package/admin/plugins/fieldValidators/patternPlugins/url.js +5 -3
  241. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
  242. package/admin/plugins/fieldValidators/required.d.ts +2 -2
  243. package/admin/plugins/fieldValidators/required.js +8 -2
  244. package/admin/plugins/fieldValidators/required.js.map +1 -1
  245. package/admin/plugins/fieldValidators/unique.d.ts +2 -2
  246. package/admin/plugins/fieldValidators/unique.js +30 -2
  247. package/admin/plugins/fieldValidators/unique.js.map +1 -1
  248. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -2
  249. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +25 -26
  250. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
  251. package/admin/plugins/fields/boolean.d.ts +2 -2
  252. package/admin/plugins/fields/boolean.js +6 -5
  253. package/admin/plugins/fields/boolean.js.map +1 -1
  254. package/admin/plugins/fields/dateTime.d.ts +2 -2
  255. package/admin/plugins/fields/dateTime.js +58 -48
  256. package/admin/plugins/fields/dateTime.js.map +1 -1
  257. package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +11 -0
  258. package/admin/plugins/fields/dynamicZone/AddTemplate.js +114 -0
  259. package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -0
  260. package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -0
  261. package/admin/plugins/fields/dynamicZone/DynamicZone.js +82 -0
  262. package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -0
  263. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +11 -0
  264. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js +127 -0
  265. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -0
  266. package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +9 -0
  267. package/admin/plugins/fields/dynamicZone/TemplateDialog.js +174 -0
  268. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -0
  269. package/admin/plugins/fields/dynamicZone/commonValidators.d.ts +2 -0
  270. package/admin/plugins/fields/dynamicZone/commonValidators.js +26 -0
  271. package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -0
  272. package/admin/plugins/fields/dynamicZone.d.ts +2 -0
  273. package/admin/plugins/fields/dynamicZone.js +97 -0
  274. package/admin/plugins/fields/dynamicZone.js.map +1 -0
  275. package/admin/plugins/fields/file.d.ts +2 -2
  276. package/admin/plugins/fields/file.js +6 -5
  277. package/admin/plugins/fields/file.js.map +1 -1
  278. package/admin/plugins/fields/longText.d.ts +2 -2
  279. package/admin/plugins/fields/longText.js +4 -3
  280. package/admin/plugins/fields/longText.js.map +1 -1
  281. package/admin/plugins/fields/number.d.ts +2 -2
  282. package/admin/plugins/fields/number.js +6 -5
  283. package/admin/plugins/fields/number.js.map +1 -1
  284. package/admin/plugins/fields/object/ObjectFields.d.ts +2 -2
  285. package/admin/plugins/fields/object/ObjectFields.js +3 -3
  286. package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
  287. package/admin/plugins/fields/object.d.ts +2 -2
  288. package/admin/plugins/fields/object.js +9 -4
  289. package/admin/plugins/fields/object.js.map +1 -1
  290. package/admin/plugins/fields/ref.d.ts +2 -2
  291. package/admin/plugins/fields/ref.js +108 -100
  292. package/admin/plugins/fields/ref.js.map +1 -1
  293. package/admin/plugins/fields/richText.d.ts +2 -2
  294. package/admin/plugins/fields/richText.js +6 -5
  295. package/admin/plugins/fields/richText.js.map +1 -1
  296. package/admin/plugins/fields/text.d.ts +2 -2
  297. package/admin/plugins/fields/text.js +4 -3
  298. package/admin/plugins/fields/text.js.map +1 -1
  299. package/admin/plugins/index.d.ts +28 -1
  300. package/admin/plugins/permissionRenderer/CmsPermissions.js +2 -7
  301. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
  302. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +11 -17
  303. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
  304. package/admin/plugins/transformers/dateTransformer.d.ts +1 -2
  305. package/admin/plugins/transformers/dateTransformer.js +3 -3
  306. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  307. package/admin/plugins/transformers/dynamicZoneTransformer.d.ts +2 -0
  308. package/admin/plugins/transformers/dynamicZoneTransformer.js +45 -0
  309. package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -0
  310. package/admin/plugins/transformers/index.js +5 -5
  311. package/admin/plugins/transformers/index.js.map +1 -1
  312. package/admin/plugins/transformers/numberTransformer.d.ts +1 -2
  313. package/admin/plugins/transformers/numberTransformer.js +3 -3
  314. package/admin/plugins/transformers/numberTransformer.js.map +1 -1
  315. package/admin/views/contentEntries/ContentEntries.js +6 -2
  316. package/admin/views/contentEntries/ContentEntries.js.map +1 -1
  317. package/admin/views/contentEntries/ContentEntriesContext.d.ts +4 -4
  318. package/admin/views/contentEntries/ContentEntriesContext.js +1 -9
  319. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  320. package/admin/views/contentEntries/ContentEntriesList.js +23 -8
  321. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  322. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +19 -4
  323. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  324. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +60 -60
  325. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
  326. package/admin/views/contentEntries/ContentEntry/cache.js +5 -1
  327. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  328. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -1
  329. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +3 -80
  330. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
  331. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +1 -1
  332. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +3 -84
  333. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
  334. package/admin/views/contentEntries/ContentEntry/prepareFormData.d.ts +2 -2
  335. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
  336. package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +0 -8
  337. package/admin/views/contentEntries/ContentEntry/useRevision.js +10 -122
  338. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
  339. package/admin/views/contentEntries/ContentEntry.js +0 -2
  340. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  341. package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +2 -2
  342. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +27 -14
  343. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
  344. package/admin/views/contentEntries/hooks/useContentEntries.js +7 -1
  345. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
  346. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
  347. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  348. package/admin/views/contentModelGroups/ContentModelGroupsForm.js +2 -2
  349. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
  350. package/admin/views/contentModels/CloneContentModelDialog.js +4 -17
  351. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
  352. package/admin/views/contentModels/ContentModelEditor.js +2 -2
  353. package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
  354. package/admin/views/contentModels/NewContentModelDialog.js +5 -17
  355. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  356. package/admin/viewsGraphql.js +1 -1
  357. package/admin/viewsGraphql.js.map +1 -1
  358. package/allPlugins.d.ts +34 -0
  359. package/allPlugins.js +95 -0
  360. package/allPlugins.js.map +1 -0
  361. package/index.d.ts +1 -0
  362. package/index.js +15 -1
  363. package/index.js.map +1 -1
  364. package/package.json +29 -29
  365. package/{types.d.ts → types/index.d.ts} +59 -176
  366. package/types/index.js +44 -0
  367. package/types/index.js.map +1 -0
  368. package/types/model.d.ts +83 -0
  369. package/{types.js → types/model.js} +0 -0
  370. package/types/model.js.map +1 -0
  371. package/types/shared.d.ts +5 -0
  372. package/types/shared.js +5 -0
  373. package/types/shared.js.map +1 -0
  374. package/types/validation.d.ts +70 -0
  375. package/types/validation.js +5 -0
  376. package/types/validation.js.map +1 -0
  377. package/utils/CmsModelFieldValidatorConfigAdapter.d.ts +15 -0
  378. package/utils/CmsModelFieldValidatorConfigAdapter.js +91 -0
  379. package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -0
  380. package/utils/createTypeName.d.ts +1 -0
  381. package/utils/createTypeName.js +18 -0
  382. package/utils/createTypeName.js.map +1 -0
  383. package/utils/createValidators.d.ts +3 -0
  384. package/{admin/components/ContentEntryForm/functions → utils}/createValidators.js +37 -16
  385. package/utils/createValidators.js.map +1 -0
  386. package/utils/getFetchPolicy.d.ts +6 -0
  387. package/utils/getFetchPolicy.js +19 -0
  388. package/utils/getFetchPolicy.js.map +1 -0
  389. package/utils/getModelTitleFieldId.d.ts +2 -0
  390. package/utils/getModelTitleFieldId.js +16 -0
  391. package/utils/getModelTitleFieldId.js.map +1 -0
  392. package/admin/components/ContentEntryForm/functions/createValidators.d.ts +0 -3
  393. package/admin/components/ContentEntryForm/functions/createValidators.js.map +0 -1
  394. package/admin/components/ContentModelEditor/Context.js.map +0 -1
  395. package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +0 -1
  396. package/admin/components/ContentModelEditor/useContentModelEditor.js.map +0 -1
  397. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +0 -15
  398. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +0 -148
  399. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +0 -1
  400. package/admin/components/FieldEditor/useFieldEditor.d.ts +0 -1
  401. package/admin/components/FieldEditor/useFieldEditor.js +0 -14
  402. package/admin/components/FieldEditor/useFieldEditor.js.map +0 -1
  403. package/admin/plugins/validators/dateGte.d.ts +0 -3
  404. package/admin/plugins/validators/dateGte.js +0 -68
  405. package/admin/plugins/validators/dateGte.js.map +0 -1
  406. package/admin/plugins/validators/dateLte.d.ts +0 -3
  407. package/admin/plugins/validators/dateLte.js +0 -68
  408. package/admin/plugins/validators/dateLte.js.map +0 -1
  409. package/admin/plugins/validators/gte.d.ts +0 -3
  410. package/admin/plugins/validators/gte.js +0 -57
  411. package/admin/plugins/validators/gte.js.map +0 -1
  412. package/admin/plugins/validators/in.d.ts +0 -3
  413. package/admin/plugins/validators/in.js +0 -57
  414. package/admin/plugins/validators/in.js.map +0 -1
  415. package/admin/plugins/validators/lte.d.ts +0 -3
  416. package/admin/plugins/validators/lte.js +0 -57
  417. package/admin/plugins/validators/lte.js.map +0 -1
  418. package/admin/plugins/validators/maxLength.d.ts +0 -3
  419. package/admin/plugins/validators/maxLength.js +0 -57
  420. package/admin/plugins/validators/maxLength.js.map +0 -1
  421. package/admin/plugins/validators/minLength.d.ts +0 -3
  422. package/admin/plugins/validators/minLength.js +0 -57
  423. package/admin/plugins/validators/minLength.js.map +0 -1
  424. package/admin/plugins/validators/pattern.d.ts +0 -3
  425. package/admin/plugins/validators/pattern.js +0 -77
  426. package/admin/plugins/validators/pattern.js.map +0 -1
  427. package/admin/plugins/validators/patternPlugins/email.d.ts +0 -3
  428. package/admin/plugins/validators/patternPlugins/email.js +0 -17
  429. package/admin/plugins/validators/patternPlugins/email.js.map +0 -1
  430. package/admin/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
  431. package/admin/plugins/validators/patternPlugins/lowerCase.js +0 -17
  432. package/admin/plugins/validators/patternPlugins/lowerCase.js.map +0 -1
  433. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.d.ts +0 -3
  434. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +0 -17
  435. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +0 -1
  436. package/admin/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
  437. package/admin/plugins/validators/patternPlugins/upperCase.js +0 -17
  438. package/admin/plugins/validators/patternPlugins/upperCase.js.map +0 -1
  439. package/admin/plugins/validators/patternPlugins/upperCaseSpace.d.ts +0 -3
  440. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +0 -17
  441. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +0 -1
  442. package/admin/plugins/validators/patternPlugins/url.d.ts +0 -3
  443. package/admin/plugins/validators/patternPlugins/url.js +0 -17
  444. package/admin/plugins/validators/patternPlugins/url.js.map +0 -1
  445. package/admin/plugins/validators/required.d.ts +0 -3
  446. package/admin/plugins/validators/required.js +0 -21
  447. package/admin/plugins/validators/required.js.map +0 -1
  448. package/admin/plugins/validators/timeGte.d.ts +0 -3
  449. package/admin/plugins/validators/timeGte.js +0 -59
  450. package/admin/plugins/validators/timeGte.js.map +0 -1
  451. package/admin/plugins/validators/timeLte.d.ts +0 -3
  452. package/admin/plugins/validators/timeLte.js +0 -59
  453. package/admin/plugins/validators/timeLte.js.map +0 -1
  454. package/admin/plugins/validators/unique.d.ts +0 -7
  455. package/admin/plugins/validators/unique.js +0 -50
  456. package/admin/plugins/validators/unique.js.map +0 -1
  457. package/admin/views/contentEntries/ContentEntry/header/requestChanges/rule-24px.svg +0 -1
  458. package/admin/views/contentEntries/ContentEntry/header/requestReview/emoji_people-24px.svg +0 -1
  459. package/admin/views/contentModelGroups/IconPicker.d.ts +0 -8
  460. package/admin/views/contentModelGroups/IconPicker.js.map +0 -1
  461. package/types.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TemplateGallery = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
13
+
14
+ var _highlight_off = require("@material-design-icons/svg/outlined/highlight_off.svg");
15
+
16
+ var _Button = require("@webiny/ui/Button");
17
+
18
+ var _hooks = require("../../../hooks");
19
+
20
+ var _TemplateCard = require("./TemplateCard");
21
+
22
+ var GalleryContainer = /*#__PURE__*/(0, _styled.default)("div", {
23
+ label: "GalleryContainer",
24
+ target: "e1pydjsn0"
25
+ })();
26
+ var GalleryCards = /*#__PURE__*/(0, _styled.default)("div", {
27
+ label: "GalleryCards",
28
+ target: "e1pydjsn1"
29
+ })("display:flex;flex-wrap:wrap;justify-content:center;padding:10px;");
30
+
31
+ var TemplateGallery = function TemplateGallery(_ref) {
32
+ var _field$settings;
33
+
34
+ var onTemplate = _ref.onTemplate,
35
+ onClose = _ref.onClose;
36
+
37
+ var _useModelField = (0, _hooks.useModelField)(),
38
+ field = _useModelField.field;
39
+
40
+ var templates = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates) || [];
41
+ return /*#__PURE__*/_react.default.createElement(GalleryContainer, null, /*#__PURE__*/_react.default.createElement(GalleryCards, null, templates.map(function (template) {
42
+ return /*#__PURE__*/_react.default.createElement(_TemplateCard.TemplateCard, {
43
+ key: template.id,
44
+ template: template,
45
+ onTemplate: onTemplate
46
+ });
47
+ })), /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
48
+ onClick: onClose,
49
+ icon: /*#__PURE__*/_react.default.createElement(_highlight_off.ReactComponent, null)
50
+ }));
51
+ };
52
+
53
+ exports.TemplateGallery = TemplateGallery;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GalleryContainer","styled","GalleryCards","TemplateGallery","onTemplate","onClose","useModelField","field","templates","settings","map","template","id"],"sources":["TemplateGallery.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { ReactComponent as CloseIcon } from \"@material-design-icons/svg/outlined/highlight_off.svg\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { useModelField } from \"~/admin/hooks\";\nimport { TemplateCard } from \"./TemplateCard\";\n\nconst GalleryContainer = styled.div``;\n\nconst GalleryCards = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n padding: 10px;\n`;\n\ninterface TemplateGalleryProps {\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n onClose: () => void;\n}\n\nexport const TemplateGallery = ({ onTemplate, onClose }: TemplateGalleryProps) => {\n const { field } = useModelField();\n const templates = field.settings?.templates || [];\n\n return (\n <GalleryContainer>\n <GalleryCards>\n {templates.map(template => (\n <TemplateCard key={template.id} template={template} onTemplate={onTemplate} />\n ))}\n </GalleryCards>\n <IconButton onClick={onClose} icon={<CloseIcon />} />\n </GalleryContainer>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,gBAAgB,oBAAGC,eAAH;EAAA;EAAA;AAAA,IAAtB;AAEA,IAAMC,YAAY,oBAAGD,eAAH;EAAA;EAAA;AAAA,sEAAlB;;AAYO,IAAME,eAAe,GAAG,SAAlBA,eAAkB,OAAmD;EAAA;;EAAA,IAAhDC,UAAgD,QAAhDA,UAAgD;EAAA,IAApCC,OAAoC,QAApCA,OAAoC;;EAC9E,qBAAkB,IAAAC,oBAAA,GAAlB;EAAA,IAAQC,KAAR,kBAAQA,KAAR;;EACA,IAAMC,SAAS,GAAG,oBAAAD,KAAK,CAACE,QAAN,oEAAgBD,SAAhB,KAA6B,EAA/C;EAEA,oBACI,6BAAC,gBAAD,qBACI,6BAAC,YAAD,QACKA,SAAS,CAACE,GAAV,CAAc,UAAAC,QAAQ;IAAA,oBACnB,6BAAC,0BAAD;MAAc,GAAG,EAAEA,QAAQ,CAACC,EAA5B;MAAgC,QAAQ,EAAED,QAA1C;MAAoD,UAAU,EAAEP;IAAhE,EADmB;EAAA,CAAtB,CADL,CADJ,eAMI,6BAAC,kBAAD;IAAY,OAAO,EAAEC,OAArB;IAA8B,IAAI,eAAE,6BAAC,6BAAD;EAApC,EANJ,CADJ;AAUH,CAdM"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface TemplateIconProps {
3
+ icon: string;
4
+ }
5
+ export declare const TemplateIcon: ({ icon }: TemplateIconProps) => JSX.Element | null;
6
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TemplateIcon = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _reactFontawesome = require("@fortawesome/react-fontawesome");
13
+
14
+ var TemplateIcon = function TemplateIcon(_ref) {
15
+ var icon = _ref.icon;
16
+ var faIcon = icon ? icon.split("/") : undefined;
17
+ return faIcon ? /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
18
+ icon: faIcon
19
+ }) : null;
20
+ };
21
+
22
+ exports.TemplateIcon = TemplateIcon;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TemplateIcon","icon","faIcon","split","undefined"],"sources":["TemplateIcon.tsx"],"sourcesContent":["import React from \"react\";\nimport { FontAwesomeIcon, FontAwesomeIconProps } from \"@fortawesome/react-fontawesome\";\n\ninterface TemplateIconProps {\n icon: string;\n}\n\nexport const TemplateIcon = ({ icon }: TemplateIconProps) => {\n const faIcon = icon ? (icon.split(\"/\") as FontAwesomeIconProps[\"icon\"]) : undefined;\n\n return faIcon ? <FontAwesomeIcon icon={faIcon} /> : null;\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAMO,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAAiC;EAAA,IAA9BC,IAA8B,QAA9BA,IAA8B;EACzD,IAAMC,MAAM,GAAGD,IAAI,GAAIA,IAAI,CAACE,KAAL,CAAW,GAAX,CAAJ,GAAuDC,SAA1E;EAEA,OAAOF,MAAM,gBAAG,6BAAC,iCAAD;IAAiB,IAAI,EAAEA;EAAvB,EAAH,GAAuC,IAApD;AACH,CAJM"}
@@ -0,0 +1,2 @@
1
+ import { CmsEditorFieldRendererPlugin } from "../../../../types";
2
+ export declare const dynamicZoneFieldRenderer: CmsEditorFieldRendererPlugin;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.dynamicZoneFieldRenderer = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _emotion = require("emotion");
13
+
14
+ var _Accordion = require("@webiny/ui/Accordion");
15
+
16
+ var _SingleValueDynamicZone = require("./SingleValueDynamicZone");
17
+
18
+ var _MultiValueDynamicZone = require("./MultiValueDynamicZone");
19
+
20
+ var _FormElementMessage = require("@webiny/ui/FormElementMessage");
21
+
22
+ var noBottomPadding = /*#__PURE__*/(0, _emotion.css)("> .webiny-ui-accordion-item__content{padding-bottom:0 !important;}label:noBottomPadding;");
23
+
24
+ var DynamicZoneContent = function DynamicZoneContent(_ref) {
25
+ var field = _ref.field,
26
+ getBind = _ref.getBind,
27
+ contentModel = _ref.contentModel;
28
+ var isMultipleValues = field.multipleValues === true;
29
+ var Bind = getBind();
30
+ var Component = isMultipleValues ? _MultiValueDynamicZone.MultiValueDynamicZone : _SingleValueDynamicZone.SingleValueDynamicZone;
31
+ return /*#__PURE__*/_react.default.createElement(Bind, null, function (bind) {
32
+ var _bind$validation = bind.validation,
33
+ isValid = _bind$validation.isValid,
34
+ message = _bind$validation.message;
35
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Accordion.Accordion, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
36
+ title: field.label,
37
+ description: field.helpText,
38
+ className: isMultipleValues ? noBottomPadding : undefined
39
+ }, /*#__PURE__*/_react.default.createElement(Component, {
40
+ bind: bind,
41
+ field: field,
42
+ getBind: getBind,
43
+ contentModel: contentModel
44
+ }))), isValid === false && /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, {
45
+ error: true
46
+ }, message));
47
+ });
48
+ };
49
+
50
+ var dynamicZoneFieldRenderer = {
51
+ type: "cms-editor-field-renderer",
52
+ name: "cms-editor-field-renderer-dynamic-zone",
53
+ renderer: {
54
+ rendererName: "dynamicZone",
55
+ name: "Dynamic Zone",
56
+ description: "Renders a dynamic zone.",
57
+ canUse: function canUse(_ref2) {
58
+ var field = _ref2.field;
59
+ return field.type === "dynamicZone";
60
+ },
61
+ render: function render(props) {
62
+ return /*#__PURE__*/_react.default.createElement(DynamicZoneContent, props);
63
+ }
64
+ }
65
+ };
66
+ exports.dynamicZoneFieldRenderer = dynamicZoneFieldRenderer;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["noBottomPadding","css","DynamicZoneContent","field","getBind","contentModel","isMultipleValues","multipleValues","Bind","Component","MultiValueDynamicZone","SingleValueDynamicZone","bind","validation","isValid","message","label","helpText","undefined","dynamicZoneFieldRenderer","type","name","renderer","rendererName","description","canUse","render","props"],"sources":["dynamicZoneRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\nimport { CmsEditorFieldRendererPlugin, CmsEditorFieldRendererProps } from \"~/types\";\nimport { SingleValueDynamicZone } from \"./SingleValueDynamicZone\";\nimport { MultiValueDynamicZone } from \"./MultiValueDynamicZone\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\n\nconst noBottomPadding = css`\n > .webiny-ui-accordion-item__content {\n padding-bottom: 0 !important;\n }\n`;\n\nconst DynamicZoneContent = ({ field, getBind, contentModel }: CmsEditorFieldRendererProps) => {\n const isMultipleValues = field.multipleValues === true;\n const Bind = getBind();\n\n const Component = isMultipleValues ? MultiValueDynamicZone : SingleValueDynamicZone;\n\n return (\n <Bind>\n {bind => {\n const { isValid, message } = bind.validation;\n return (\n <>\n <Accordion>\n <AccordionItem\n title={field.label}\n description={field.helpText}\n className={isMultipleValues ? noBottomPadding : undefined}\n >\n <Component\n bind={bind}\n field={field}\n getBind={getBind}\n contentModel={contentModel}\n />\n </AccordionItem>\n </Accordion>\n {isValid === false && (\n <FormElementMessage error={true}>{message}</FormElementMessage>\n )}\n </>\n );\n }}\n </Bind>\n );\n};\n\nexport const dynamicZoneFieldRenderer: CmsEditorFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-dynamic-zone\",\n renderer: {\n rendererName: \"dynamicZone\",\n name: \"Dynamic Zone\",\n description: \"Renders a dynamic zone.\",\n canUse({ field }) {\n return field.type === \"dynamicZone\";\n },\n render(props) {\n return <DynamicZoneContent {...props} />;\n }\n }\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA,IAAMA,eAAe,oBAAGC,YAAH,6FAArB;;AAMA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAAmE;EAAA,IAAhEC,KAAgE,QAAhEA,KAAgE;EAAA,IAAzDC,OAAyD,QAAzDA,OAAyD;EAAA,IAAhDC,YAAgD,QAAhDA,YAAgD;EAC1F,IAAMC,gBAAgB,GAAGH,KAAK,CAACI,cAAN,KAAyB,IAAlD;EACA,IAAMC,IAAI,GAAGJ,OAAO,EAApB;EAEA,IAAMK,SAAS,GAAGH,gBAAgB,GAAGI,4CAAH,GAA2BC,8CAA7D;EAEA,oBACI,6BAAC,IAAD,QACK,UAAAC,IAAI,EAAI;IACL,uBAA6BA,IAAI,CAACC,UAAlC;IAAA,IAAQC,OAAR,oBAAQA,OAAR;IAAA,IAAiBC,OAAjB,oBAAiBA,OAAjB;IACA,oBACI,yEACI,6BAAC,oBAAD,qBACI,6BAAC,wBAAD;MACI,KAAK,EAAEZ,KAAK,CAACa,KADjB;MAEI,WAAW,EAAEb,KAAK,CAACc,QAFvB;MAGI,SAAS,EAAEX,gBAAgB,GAAGN,eAAH,GAAqBkB;IAHpD,gBAKI,6BAAC,SAAD;MACI,IAAI,EAAEN,IADV;MAEI,KAAK,EAAET,KAFX;MAGI,OAAO,EAAEC,OAHb;MAII,YAAY,EAAEC;IAJlB,EALJ,CADJ,CADJ,EAeKS,OAAO,KAAK,KAAZ,iBACG,6BAAC,sCAAD;MAAoB,KAAK,EAAE;IAA3B,GAAkCC,OAAlC,CAhBR,CADJ;EAqBH,CAxBL,CADJ;AA4BH,CAlCD;;AAoCO,IAAMI,wBAAsD,GAAG;EAClEC,IAAI,EAAE,2BAD4D;EAElEC,IAAI,EAAE,wCAF4D;EAGlEC,QAAQ,EAAE;IACNC,YAAY,EAAE,aADR;IAENF,IAAI,EAAE,cAFA;IAGNG,WAAW,EAAE,yBAHP;IAINC,MAJM,yBAIY;MAAA,IAATtB,KAAS,SAATA,KAAS;MACd,OAAOA,KAAK,CAACiB,IAAN,KAAe,aAAtB;IACH,CANK;IAONM,MAPM,kBAOCC,KAPD,EAOQ;MACV,oBAAO,6BAAC,kBAAD,EAAwBA,KAAxB,CAAP;IACH;EATK;AAHwD,CAA/D"}
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","FileUploadWrapper","styled","position","opacity","pointerEvents","color","FieldRenderer","getBind","Label","field","Bind","imagesOnly","settings","bind","onChange","value","Array","isArray","filter","Boolean","imageWrapperStyles","showFileManager","selectFiles","index","files","urls","map","f","src","slice","label","url","dotProp","delete","defaultProps","validation","isValid","styles","width","height","plugin","type","name","renderer","rendererName","description","canUse","multipleValues","render"],"sources":["fileFields.tsx"],"sourcesContent":["import React from \"react\";\nimport dotProp from \"dot-prop-immutable\";\nimport { CmsEditorField, CmsEditorFieldRendererPlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Cell, GridInner } from \"@webiny/ui/Grid\";\nimport { imageWrapperStyles } from \"./utils\";\nimport { FileManager } from \"@webiny/app-admin/components\";\nimport styled from \"@emotion/styled\";\nimport File from \"./File\";\nimport { GetBindCallable } from \"~/admin/components/ContentEntryForm/useBind\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/file\");\n\nconst FileUploadWrapper = styled(\"div\")({\n position: \"relative\",\n \".disabled\": {\n opacity: 0.75,\n pointerEvents: \"none\"\n },\n \".mdc-text-field-helper-text\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n});\n\ninterface FieldRendererProps {\n getBind: GetBindCallable;\n Label: React.FC;\n field: CmsEditorField;\n}\nconst FieldRenderer: React.FC<FieldRendererProps> = ({ getBind, Label, field }) => {\n const Bind = getBind();\n\n const imagesOnly = field.settings && field.settings.imagesOnly;\n\n return (\n <Bind>\n {bind => {\n const { onChange } = bind;\n\n // We need to make sure the value is an array, since this is a multi-value component.\n const value: string[] = (\n Array.isArray(bind.value) ? bind.value : [bind.value]\n ).filter(Boolean);\n\n return (\n <FileUploadWrapper className={imageWrapperStyles}>\n <FileManager\n multiple\n images={imagesOnly}\n render={({ showFileManager }) => {\n const selectFiles = (index = -1) => {\n showFileManager(files => {\n const urls = files.map(f => f.src);\n if (index === -1) {\n onChange([...value, ...urls]);\n } else {\n onChange([\n ...value.slice(0, index),\n ...urls,\n ...value.slice(index + 1)\n ]);\n }\n });\n };\n return (\n <GridInner>\n <Cell span={12}>\n <Label>{field.label}</Label>\n </Cell>\n\n <>\n {value.map((url: string, index: number) => (\n <Cell span={3} key={url}>\n <File\n url={url}\n showFileManager={() => selectFiles(index)}\n onRemove={() =>\n onChange(dotProp.delete(value, index))\n }\n placeholder={t`Select a file\"`}\n data-testid={`fr.input.file.${field.label}.${index}`}\n />\n </Cell>\n ))}\n </>\n\n <Cell span={3}>\n <File\n url={\"\"}\n onRemove={() => {\n return void 0;\n }}\n {...bind}\n showFileManager={() => selectFiles()}\n placeholder={t`Select a file\"`}\n data-testid={`fr.input.file.${field.label}`}\n />\n </Cell>\n </GridInner>\n );\n }}\n />\n </FileUploadWrapper>\n );\n }}\n </Bind>\n );\n};\n/**\n * Not used?\n */\n// TODO @ts-refactor\nFieldRenderer.defaultProps = {\n validation: {\n isValid: null\n },\n styles: { width: \"100%\", height: \"auto\" }\n} as Partial<FieldRendererProps>;\n\nconst plugin: CmsEditorFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-files\",\n renderer: {\n rendererName: \"file-inputs\",\n name: t`File Inputs`,\n description: t`Enables selecting multiple files via File Manager.`,\n canUse({ field }) {\n return field.type === \"file\" && !!field.multipleValues;\n },\n render({ field, getBind, Label }) {\n return <FieldRenderer field={field} getBind={getBind} Label={Label} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","FileUploadWrapper","styled","position","opacity","pointerEvents","color","FieldRenderer","getBind","Label","field","Bind","imagesOnly","settings","bind","onChange","value","Array","isArray","filter","Boolean","imageWrapperStyles","showFileManager","selectFiles","index","files","urls","map","f","src","slice","label","url","dotProp","delete","defaultProps","validation","isValid","styles","width","height","plugin","type","name","renderer","rendererName","description","canUse","multipleValues","render"],"sources":["fileFields.tsx"],"sourcesContent":["import React from \"react\";\nimport dotProp from \"dot-prop-immutable\";\nimport { CmsModelField, CmsEditorFieldRendererPlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Cell, GridInner } from \"@webiny/ui/Grid\";\nimport { imageWrapperStyles } from \"./utils\";\nimport { FileManager } from \"@webiny/app-admin/components\";\nimport styled from \"@emotion/styled\";\nimport File from \"./File\";\nimport { GetBindCallable } from \"~/admin/components/ContentEntryForm/useBind\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/file\");\n\nconst FileUploadWrapper = styled(\"div\")({\n position: \"relative\",\n \".disabled\": {\n opacity: 0.75,\n pointerEvents: \"none\"\n },\n \".mdc-text-field-helper-text\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n});\n\ninterface FieldRendererProps {\n getBind: GetBindCallable;\n Label: React.FC;\n field: CmsModelField;\n}\nconst FieldRenderer: React.FC<FieldRendererProps> = ({ getBind, Label, field }) => {\n const Bind = getBind();\n\n const imagesOnly = field.settings && field.settings.imagesOnly;\n\n return (\n <Bind>\n {bind => {\n const { onChange } = bind;\n\n // We need to make sure the value is an array, since this is a multi-value component.\n const value: string[] = (\n Array.isArray(bind.value) ? bind.value : [bind.value]\n ).filter(Boolean);\n\n return (\n <FileUploadWrapper className={imageWrapperStyles}>\n <FileManager\n multiple\n images={imagesOnly}\n render={({ showFileManager }) => {\n const selectFiles = (index = -1) => {\n showFileManager(files => {\n const urls = files.map(f => f.src);\n if (index === -1) {\n onChange([...value, ...urls]);\n } else {\n onChange([\n ...value.slice(0, index),\n ...urls,\n ...value.slice(index + 1)\n ]);\n }\n });\n };\n return (\n <GridInner>\n <Cell span={12}>\n <Label>{field.label}</Label>\n </Cell>\n\n <>\n {value.map((url: string, index: number) => (\n <Cell span={3} key={url}>\n <File\n url={url}\n showFileManager={() => selectFiles(index)}\n onRemove={() =>\n onChange(dotProp.delete(value, index))\n }\n placeholder={t`Select a file\"`}\n data-testid={`fr.input.file.${field.label}.${index}`}\n />\n </Cell>\n ))}\n </>\n\n <Cell span={3}>\n <File\n url={\"\"}\n onRemove={() => {\n return void 0;\n }}\n {...bind}\n showFileManager={() => selectFiles()}\n placeholder={t`Select a file\"`}\n data-testid={`fr.input.file.${field.label}`}\n />\n </Cell>\n </GridInner>\n );\n }}\n />\n </FileUploadWrapper>\n );\n }}\n </Bind>\n );\n};\n/**\n * Not used?\n */\n// TODO @ts-refactor\nFieldRenderer.defaultProps = {\n validation: {\n isValid: null\n },\n styles: { width: \"100%\", height: \"auto\" }\n} as Partial<FieldRendererProps>;\n\nconst plugin: CmsEditorFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-files\",\n renderer: {\n rendererName: \"file-inputs\",\n name: t`File Inputs`,\n description: t`Enables selecting multiple files via File Manager.`,\n canUse({ field }) {\n return field.type === \"file\" && !!field.multipleValues;\n },\n render({ field, getBind, Label }) {\n return <FieldRenderer field={field} getBind={getBind} Label={Label} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { CmsEditorField } from "../../../../../types";
2
+ import { CmsModelField } from "../../../../../types";
3
3
  import { BindComponentRenderProp } from "@webiny/form";
4
4
  interface ContentEntriesAutocompleteProps {
5
5
  bind: BindComponentRenderProp;
6
- field: CmsEditorField;
6
+ field: CmsModelField;
7
7
  }
8
8
  declare const ContentEntriesAutocomplete: React.FC<ContentEntriesAutocompleteProps>;
9
9
  export default ContentEntriesAutocomplete;
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","unpublishedLabel","publishedLabel","getItemOption","options","id","length","parseIdentifier","entryId","find","item","ContentEntriesAutocomplete","bind","field","useReference","setSearch","value","loading","onChange","entryInfo","published","link","createEntryUrl","publishItLink","here","useNewRefEntry","renderNewEntryModal","refModelId","helpText","entry","renderItem","undefined","label","debounce","search"],"sources":["ContentEntriesAutocomplete.tsx"],"sourcesContent":["import React from \"react\";\nimport debounce from \"lodash/debounce\";\nimport NewRefEntryFormDialog, { NewEntryButton } from \"./NewRefEntryFormDialog\";\nimport { AutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Link } from \"@webiny/react-router\";\nimport { useNewRefEntry } from \"../hooks/useNewRefEntry\";\nimport { useReference } from \"./useReference\";\nimport { renderItem } from \"./renderItem\";\nimport { createEntryUrl } from \"./createEntryUrl\";\nimport { CmsEditorField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem } from \"./types\";\nimport { EntryStatus } from \"./EntryStatus\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst unpublishedLabel = t`Selected content entry is not published. Make sure to {publishItLink} before publishing the main content entry.`;\nconst publishedLabel = t`Selected content entry is published. You can view it {here}.`;\n\nconst getItemOption = (options: OptionItem[], id?: string | null): OptionItem | null => {\n if (!id || !options || options.length === 0) {\n return null;\n }\n const { id: entryId } = parseIdentifier(id);\n return options.find(item => item.entryId === entryId) || null;\n};\n\ninterface ContentEntriesAutocompleteProps {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nconst ContentEntriesAutocomplete: React.FC<ContentEntriesAutocompleteProps> = ({ bind, field }) => {\n const { options, setSearch, value, loading, onChange } = useReference({\n bind,\n field\n });\n\n let entryInfo: string | null = null;\n if (value && !value.published) {\n const link = createEntryUrl(value);\n entryInfo = unpublishedLabel({ publishItLink: <Link to={link}>{t`publish it`}</Link> });\n } else if (value) {\n const link = createEntryUrl(value);\n entryInfo = publishedLabel({\n here: <Link to={link}>{t`here`}</Link>\n });\n }\n const { renderNewEntryModal, refModelId, helpText } = useNewRefEntry({ field });\n\n const item = getItemOption(options, bind.value ? bind.value.id : null);\n /*\n * Wrap AutoComplete input in NewRefEntry modal.\n */\n if (renderNewEntryModal) {\n return (\n <NewRefEntryFormDialog\n modelId={refModelId}\n onChange={entry => {\n /**\n * TODO @ts-refactor @ashutosh\n * Need to figure out correct types.\n */\n // @ts-ignore\n return onChange(entry, entry);\n }}\n >\n <AutoComplete\n {...bind}\n renderItem={renderItem}\n onChange={onChange}\n loading={loading}\n value={value || undefined}\n options={options}\n label={field.label}\n data-testid={`fr.input.autocomplete.${field.label}`}\n description={\n <>\n {field.helpText}\n <EntryStatus item={item}>{entryInfo}</EntryStatus>\n </>\n }\n onInput={debounce(search => setSearch(search), 250)}\n noResultFound={<NewEntryButton />}\n />\n </NewRefEntryFormDialog>\n );\n }\n\n return (\n <AutoComplete\n {...bind}\n renderItem={renderItem}\n onChange={onChange}\n loading={loading}\n value={value || undefined}\n options={options}\n label={field.label}\n description={\n <>\n {field.helpText}\n <EntryStatus item={item}>{entryInfo}</EntryStatus>\n </>\n }\n onInput={debounce(search => setSearch(search), 250)}\n noResultFound={helpText}\n />\n );\n};\n\nexport default ContentEntriesAutocomplete;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","unpublishedLabel","publishedLabel","getItemOption","options","id","length","parseIdentifier","entryId","find","item","ContentEntriesAutocomplete","bind","field","useReference","setSearch","value","loading","onChange","entryInfo","published","link","createEntryUrl","publishItLink","here","useNewRefEntry","renderNewEntryModal","refModelId","helpText","entry","renderItem","undefined","label","debounce","search"],"sources":["ContentEntriesAutocomplete.tsx"],"sourcesContent":["import React from \"react\";\nimport debounce from \"lodash/debounce\";\nimport NewRefEntryFormDialog, { NewEntryButton } from \"./NewRefEntryFormDialog\";\nimport { AutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Link } from \"@webiny/react-router\";\nimport { useNewRefEntry } from \"../hooks/useNewRefEntry\";\nimport { useReference } from \"./useReference\";\nimport { renderItem } from \"./renderItem\";\nimport { createEntryUrl } from \"./createEntryUrl\";\nimport { CmsModelField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem } from \"./types\";\nimport { EntryStatus } from \"./EntryStatus\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst unpublishedLabel = t`Selected content entry is not published. Make sure to {publishItLink} before publishing the main content entry.`;\nconst publishedLabel = t`Selected content entry is published. You can view it {here}.`;\n\nconst getItemOption = (options: OptionItem[], id?: string | null): OptionItem | null => {\n if (!id || !options || options.length === 0) {\n return null;\n }\n const { id: entryId } = parseIdentifier(id);\n return options.find(item => item.entryId === entryId) || null;\n};\n\ninterface ContentEntriesAutocompleteProps {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\nconst ContentEntriesAutocomplete: React.FC<ContentEntriesAutocompleteProps> = ({ bind, field }) => {\n const { options, setSearch, value, loading, onChange } = useReference({\n bind,\n field\n });\n\n let entryInfo: string | null = null;\n if (value && !value.published) {\n const link = createEntryUrl(value);\n entryInfo = unpublishedLabel({ publishItLink: <Link to={link}>{t`publish it`}</Link> });\n } else if (value) {\n const link = createEntryUrl(value);\n entryInfo = publishedLabel({\n here: <Link to={link}>{t`here`}</Link>\n });\n }\n const { renderNewEntryModal, refModelId, helpText } = useNewRefEntry({ field });\n\n const item = getItemOption(options, bind.value ? bind.value.id : null);\n /*\n * Wrap AutoComplete input in NewRefEntry modal.\n */\n if (renderNewEntryModal) {\n return (\n <NewRefEntryFormDialog\n modelId={refModelId}\n onChange={entry => {\n /**\n * TODO @ts-refactor @ashutosh\n * Need to figure out correct types.\n */\n // @ts-ignore\n return onChange(entry, entry);\n }}\n >\n <AutoComplete\n {...bind}\n renderItem={renderItem}\n onChange={onChange}\n loading={loading}\n value={value || undefined}\n options={options}\n label={field.label}\n data-testid={`fr.input.autocomplete.${field.label}`}\n description={\n <>\n {field.helpText}\n <EntryStatus item={item}>{entryInfo}</EntryStatus>\n </>\n }\n onInput={debounce(search => setSearch(search), 250)}\n noResultFound={<NewEntryButton />}\n />\n </NewRefEntryFormDialog>\n );\n }\n\n return (\n <AutoComplete\n {...bind}\n renderItem={renderItem}\n onChange={onChange}\n loading={loading}\n value={value || undefined}\n options={options}\n label={field.label}\n description={\n <>\n {field.helpText}\n <EntryStatus item={item}>{entryInfo}</EntryStatus>\n </>\n }\n onInput={debounce(search => setSearch(search), 250)}\n noResultFound={helpText}\n />\n );\n};\n\nexport default ContentEntriesAutocomplete;\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { CmsEditorField } from "../../../../../types";
2
+ import { CmsModelField } from "../../../../../types";
3
3
  import { BindComponentRenderProp } from "@webiny/form";
4
4
  interface ContentEntriesMultiAutocompleteProps {
5
5
  bind: BindComponentRenderProp;
6
- field: CmsEditorField;
6
+ field: CmsModelField;
7
7
  }
8
8
  declare const ContentEntriesMultiAutocomplete: React.FC<ContentEntriesMultiAutocompleteProps>;
9
9
  export default ContentEntriesMultiAutocomplete;
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","warn","ContentEntriesMultiAutocomplete","bind","field","useReferences","options","setSearch","entries","loading","onChange","useNewRefEntry","renderNewEntryModal","refModelId","helpText","entryWarning","entry","index","id","modelId","name","published","encodeURIComponent","warning","filter","item","length","map","refEntryOnChange","useCallback","value","renderItem","renderListItemOptions","label","debounce"],"sources":["ContentEntriesMultiAutoComplete.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport debounce from \"lodash/debounce\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { Link } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useReferences } from \"./useReferences\";\nimport { renderItem, renderListItemOptions } from \"./renderItem\";\nimport NewRefEntryFormDialog, { NewEntryButton } from \"./NewRefEntryFormDialog\";\nimport { useNewRefEntry } from \"../hooks/useNewRefEntry\";\nimport { CmsEditorField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem } from \"./types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst warn = t`Before publishing the main content entry, make sure you publish the following referenced entries: {entries}`;\n\ninterface ContentEntriesMultiAutocompleteProps {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nconst ContentEntriesMultiAutocomplete: React.FC<ContentEntriesMultiAutocompleteProps> = ({\n bind,\n field\n}) => {\n const { options, setSearch, entries, loading, onChange } = useReferences({ bind, field });\n\n const { renderNewEntryModal, refModelId, helpText } = useNewRefEntry({ field });\n\n const entryWarning = (entry: OptionItem, index: number): React.ReactElement | null => {\n const { id, modelId, name, published } = entry;\n if (published) {\n return null;\n }\n return (\n <React.Fragment key={id}>\n {index > 0 && \", \"}\n <Link to={`/cms/content-entries/${modelId}?id=${encodeURIComponent(id)}`}>\n {name}\n </Link>\n </React.Fragment>\n );\n };\n\n let warning = entries.filter(item => !item.published);\n if (warning.length > 0) {\n warning = warn({\n entries: <>{warning.map(entryWarning)}</>\n });\n }\n\n const refEntryOnChange = useCallback(\n // TODO @ts-refactor figure out which type is this\n value => {\n /**\n * Append new selected entry at the end of existing entries.\n */\n onChange([...entries, value]);\n },\n [onChange, entries]\n );\n\n if (renderNewEntryModal) {\n return (\n <NewRefEntryFormDialog modelId={refModelId} onChange={refEntryOnChange}>\n <MultiAutoComplete\n {...bind}\n renderItem={renderItem}\n renderListItemLabel={renderItem}\n renderListItemOptions={renderListItemOptions}\n useMultipleSelectionList\n onChange={onChange}\n loading={loading}\n value={entries}\n options={options}\n label={field.label}\n onInput={debounce(setSearch, 250)}\n description={\n <>\n {field.helpText}\n {warning}\n </>\n }\n noResultFound={<NewEntryButton />}\n />\n </NewRefEntryFormDialog>\n );\n }\n\n return (\n <MultiAutoComplete\n {...bind}\n renderItem={renderItem}\n renderListItemLabel={renderItem}\n renderListItemOptions={renderListItemOptions}\n useMultipleSelectionList\n onChange={onChange}\n loading={loading}\n value={entries}\n options={options}\n label={field.label}\n onInput={debounce(setSearch, 250)}\n description={\n <>\n {field.helpText}\n {warning}\n </>\n }\n noResultFound={helpText}\n />\n );\n};\n\nexport default ContentEntriesMultiAutocomplete;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","warn","ContentEntriesMultiAutocomplete","bind","field","useReferences","options","setSearch","entries","loading","onChange","useNewRefEntry","renderNewEntryModal","refModelId","helpText","entryWarning","entry","index","id","modelId","name","published","encodeURIComponent","warning","filter","item","length","map","refEntryOnChange","useCallback","value","renderItem","renderListItemOptions","label","debounce"],"sources":["ContentEntriesMultiAutoComplete.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport debounce from \"lodash/debounce\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { Link } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useReferences } from \"./useReferences\";\nimport { renderItem, renderListItemOptions } from \"./renderItem\";\nimport NewRefEntryFormDialog, { NewEntryButton } from \"./NewRefEntryFormDialog\";\nimport { useNewRefEntry } from \"../hooks/useNewRefEntry\";\nimport { CmsModelField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem } from \"./types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst warn = t`Before publishing the main content entry, make sure you publish the following referenced entries: {entries}`;\n\ninterface ContentEntriesMultiAutocompleteProps {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\nconst ContentEntriesMultiAutocomplete: React.FC<ContentEntriesMultiAutocompleteProps> = ({\n bind,\n field\n}) => {\n const { options, setSearch, entries, loading, onChange } = useReferences({ bind, field });\n\n const { renderNewEntryModal, refModelId, helpText } = useNewRefEntry({ field });\n\n const entryWarning = (entry: OptionItem, index: number): React.ReactElement | null => {\n const { id, modelId, name, published } = entry;\n if (published) {\n return null;\n }\n return (\n <React.Fragment key={id}>\n {index > 0 && \", \"}\n <Link to={`/cms/content-entries/${modelId}?id=${encodeURIComponent(id)}`}>\n {name}\n </Link>\n </React.Fragment>\n );\n };\n\n let warning = entries.filter(item => !item.published);\n if (warning.length > 0) {\n warning = warn({\n entries: <>{warning.map(entryWarning)}</>\n });\n }\n\n const refEntryOnChange = useCallback(\n // TODO @ts-refactor figure out which type is this\n value => {\n /**\n * Append new selected entry at the end of existing entries.\n */\n onChange([...entries, value]);\n },\n [onChange, entries]\n );\n\n if (renderNewEntryModal) {\n return (\n <NewRefEntryFormDialog modelId={refModelId} onChange={refEntryOnChange}>\n <MultiAutoComplete\n {...bind}\n renderItem={renderItem}\n renderListItemLabel={renderItem}\n renderListItemOptions={renderListItemOptions}\n useMultipleSelectionList\n onChange={onChange}\n loading={loading}\n value={entries}\n options={options}\n label={field.label}\n onInput={debounce(setSearch, 250)}\n description={\n <>\n {field.helpText}\n {warning}\n </>\n }\n noResultFound={<NewEntryButton />}\n />\n </NewRefEntryFormDialog>\n );\n }\n\n return (\n <MultiAutoComplete\n {...bind}\n renderItem={renderItem}\n renderListItemLabel={renderItem}\n renderListItemOptions={renderListItemOptions}\n useMultipleSelectionList\n onChange={onChange}\n loading={loading}\n value={entries}\n options={options}\n label={field.label}\n onInput={debounce(setSearch, 250)}\n description={\n <>\n {field.helpText}\n {warning}\n </>\n }\n noResultFound={helpText}\n />\n );\n};\n\nexport default ContentEntriesMultiAutocomplete;\n"],"mappings":"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"}
@@ -47,6 +47,8 @@ var _useContentEntry3 = require("../../../../views/contentEntries/hooks/useConte
47
47
 
48
48
  var _useNewRefEntryDialog3 = require("../hooks/useNewRefEntryDialog");
49
49
 
50
+ var _ModelProvider = require("../../../../components/ModelProvider");
51
+
50
52
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
51
53
 
52
54
  var t = _i18n.i18n.ns("app-headless-cms/admin/fields/ref");
@@ -61,8 +63,9 @@ var EntryForm = function EntryForm(_ref) {
61
63
  setFormRef = _useContentEntry.setFormRef,
62
64
  contentModel = _useContentEntry.contentModel;
63
65
 
64
- return /*#__PURE__*/_react.default.createElement(_ContentEntryForm.ContentEntryForm, {
65
- contentModel: contentModel,
66
+ return /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
67
+ model: contentModel
68
+ }, /*#__PURE__*/_react.default.createElement(_ContentEntryForm.ContentEntryForm, {
66
69
  onSubmit: function onSubmit(data) {
67
70
  /**
68
71
  * We know that data is CmsEditorContentEntry.
@@ -74,18 +77,16 @@ var EntryForm = function EntryForm(_ref) {
74
77
  },
75
78
  entry: {},
76
79
  addEntryToListCache: false
77
- });
80
+ }));
78
81
  };
79
82
 
80
83
  var DialogSaveButton = function DialogSaveButton() {
81
84
  var _useContentEntry2 = (0, _useContentEntry3.useContentEntry)(),
82
85
  form = _useContentEntry2.form;
83
86
 
84
- return /*#__PURE__*/_react.default.createElement(_Dialog.DialogButton, {
85
- onClick: function onClick(ev) {
86
- return form.current.submit(ev);
87
- }
88
- }, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Save"]))));
87
+ return /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
88
+ onClick: form.current.submit
89
+ }, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Create Entry"]))));
89
90
  };
90
91
 
91
92
  var DefaultButton = /*#__PURE__*/(0, _styled.default)(_Button.ButtonDefault, {
@@ -114,7 +115,7 @@ var NewRefEntryFormDialog = function NewRefEntryFormDialog(_ref2) {
114
115
  children = _ref2.children,
115
116
  onChange = _ref2.onChange;
116
117
 
117
- var _useState = (0, _react.useState)(null),
118
+ var _useState = (0, _react.useState)(undefined),
118
119
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
119
120
  contentModel = _useState2[0],
120
121
  setContentModel = _useState2[1];
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","dialogContentStyles","css","dialogContainerStyles","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","ev","current","submit","DefaultButton","styled","ButtonDefault","NewEntryButton","useNewRefEntryDialog","setOpen","NewRefEntryFormDialog","modelId","children","onChange","useState","setContentModel","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","contentModelData","get","open","hideDialog","useCallback","entry","published","modelName","name"],"sources":["NewRefEntryFormDialog.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport {\n Dialog,\n DialogActions,\n DialogButton,\n DialogCancel,\n DialogContent,\n DialogTitle\n} from \"@webiny/ui/Dialog\";\nimport { ButtonDefault, ButtonIcon } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { Provider as ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { Provider as ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { ContentEntryForm } from \"~/admin/components/ContentEntryForm/ContentEntryForm\";\nimport { useQuery } from \"~/admin/hooks\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { useNewRefEntryDialog } from \"../hooks/useNewRefEntryDialog\";\nimport { CmsEditorContentEntry, CmsModel } from \"~/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst dialogContentStyles = css`\n width: 786px;\n`;\n\nconst dialogContainerStyles = css`\n /*\n* By default, a Dialog component has the \"z-index\" value of 20.\n* As we are rendering the content entry form in a \"Dialog\", the File Manager view triggered by a \"file\" field\n* will render below the source form, rendering it useless for the user.\n*\n* To fix that issue, we're setting the \"z-index\" CSS property for this particular Dialog to less than 18,\n* which is the \"z-index\" value assigned to File Manager view, so that it will render below the File Manager view as expected.\n*/\n\n &.mdc-dialog {\n z-index: 17;\n }\n`;\n\ninterface EntryFormProps {\n onCreate: (entry: CmsEditorContentEntry) => void;\n}\nconst EntryForm: React.FC<EntryFormProps> = ({ onCreate }) => {\n const { setFormRef, contentModel } = useContentEntry();\n\n return (\n <ContentEntryForm\n contentModel={contentModel}\n onSubmit={data => {\n /**\n * We know that data is CmsEditorContentEntry.\n */\n return onCreate(data as unknown as CmsEditorContentEntry);\n }}\n onForm={form => setFormRef(form)}\n entry={{}}\n addEntryToListCache={false}\n />\n );\n};\n\nconst DialogSaveButton: React.FC = () => {\n const { form } = useContentEntry();\n\n return <DialogButton onClick={ev => form.current.submit(ev)}>{t`Save`}</DialogButton>;\n};\n\nconst DefaultButton = styled(ButtonDefault)`\n margin-left: 32px;\n`;\n\nexport const NewEntryButton = () => {\n const { setOpen } = useNewRefEntryDialog();\n return (\n <DefaultButton small={true} onClick={() => setOpen(true)}>\n <ButtonIcon icon={<AddIcon />} />\n {t`New Entry`}\n </DefaultButton>\n );\n};\n\ninterface NewRefEntryProps {\n modelId: string;\n children: React.ReactElement;\n onChange: (entry: CmsEditorContentEntry) => void;\n}\n\nconst NewRefEntryFormDialog: React.FC<NewRefEntryProps> = ({ modelId, children, onChange }) => {\n const [contentModel, setContentModel] = useState<CmsModel | null>(null);\n\n const { showSnackbar } = useSnackbar();\n\n useQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>(GET_CONTENT_MODEL, {\n skip: !modelId,\n variables: { modelId },\n onCompleted: data => {\n const contentModelData: CmsModel | null = get(data, \"getContentModel.data\");\n if (contentModelData) {\n setContentModel(contentModelData);\n return;\n }\n\n showSnackbar(\n t`Could not load content for model \"{modelId}\". Redirecting...`({\n modelId\n })\n );\n }\n });\n\n const { open, setOpen } = useNewRefEntryDialog();\n const hideDialog = useCallback(() => setOpen(false), []);\n\n const onCreate = useCallback(\n (entry: CmsEditorContentEntry) => {\n if (!contentModel) {\n setOpen(false);\n return;\n }\n onChange({\n ...entry,\n /*\n * Format data for AutoComplete.\n */\n published: get(entry, \"meta.status\") === \"published\",\n modelId: contentModel.modelId,\n modelName: contentModel.name\n });\n setOpen(false);\n },\n [onChange, contentModel]\n );\n\n if (!contentModel) {\n return children;\n }\n\n return (\n <ContentEntriesProvider\n contentModel={contentModel}\n key={contentModel.modelId}\n insideDialog={true}\n >\n <ContentEntryProvider isNewEntry={() => true} getContentId={() => null}>\n <Dialog open={open} onClose={hideDialog} className={dialogContainerStyles}>\n <DialogTitle>\n {t`New {modelName} Entry`({ modelName: contentModel.name })}\n </DialogTitle>\n <DialogContent className={dialogContentStyles}>\n <EntryForm onCreate={onCreate} />\n </DialogContent>\n <DialogActions>\n <DialogCancel>{t`Cancel`}</DialogCancel>\n <DialogSaveButton />\n </DialogActions>\n </Dialog>\n {children}\n </ContentEntryProvider>\n </ContentEntriesProvider>\n );\n};\n\nexport default NewRefEntryFormDialog;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","dialogContentStyles","css","dialogContainerStyles","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","current","submit","DefaultButton","styled","ButtonDefault","NewEntryButton","useNewRefEntryDialog","setOpen","NewRefEntryFormDialog","modelId","children","onChange","useState","undefined","setContentModel","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","contentModelData","get","open","hideDialog","useCallback","entry","published","modelName","name"],"sources":["NewRefEntryFormDialog.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Dialog, DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { Provider as ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { Provider as ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { ContentEntryForm } from \"~/admin/components/ContentEntryForm/ContentEntryForm\";\nimport { useQuery } from \"~/admin/hooks\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { useNewRefEntryDialog } from \"../hooks/useNewRefEntryDialog\";\nimport { CmsEditorContentEntry, CmsModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst dialogContentStyles = css`\n width: 786px;\n`;\n\nconst dialogContainerStyles = css`\n /*\n* By default, a Dialog component has the \"z-index\" value of 20.\n* As we are rendering the content entry form in a \"Dialog\", the File Manager view triggered by a \"file\" field\n* will render below the source form, rendering it useless for the user.\n*\n* To fix that issue, we're setting the \"z-index\" CSS property for this particular Dialog to less than 18,\n* which is the \"z-index\" value assigned to File Manager view, so that it will render below the File Manager view as expected.\n*/\n\n &.mdc-dialog {\n z-index: 17;\n }\n`;\n\ninterface EntryFormProps {\n onCreate: (entry: CmsEditorContentEntry) => void;\n}\nconst EntryForm: React.FC<EntryFormProps> = ({ onCreate }) => {\n const { setFormRef, contentModel } = useContentEntry();\n\n return (\n <ModelProvider model={contentModel}>\n <ContentEntryForm\n onSubmit={data => {\n /**\n * We know that data is CmsEditorContentEntry.\n */\n return onCreate(data as unknown as CmsEditorContentEntry);\n }}\n onForm={form => setFormRef(form)}\n entry={{}}\n addEntryToListCache={false}\n />\n </ModelProvider>\n );\n};\n\nconst DialogSaveButton: React.FC = () => {\n const { form } = useContentEntry();\n\n return <ButtonPrimary onClick={form.current.submit}>{t`Create Entry`}</ButtonPrimary>;\n};\n\nconst DefaultButton = styled(ButtonDefault)`\n margin-left: 32px;\n`;\n\nexport const NewEntryButton = () => {\n const { setOpen } = useNewRefEntryDialog();\n return (\n <DefaultButton small={true} onClick={() => setOpen(true)}>\n <ButtonIcon icon={<AddIcon />} />\n {t`New Entry`}\n </DefaultButton>\n );\n};\n\ninterface NewRefEntryProps {\n modelId: string;\n children: React.ReactElement;\n onChange: (entry: CmsEditorContentEntry) => void;\n}\n\nconst NewRefEntryFormDialog: React.FC<NewRefEntryProps> = ({ modelId, children, onChange }) => {\n const [contentModel, setContentModel] = useState<CmsModel | undefined>(undefined);\n\n const { showSnackbar } = useSnackbar();\n\n useQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>(GET_CONTENT_MODEL, {\n skip: !modelId,\n variables: { modelId },\n onCompleted: data => {\n const contentModelData = get(data, \"getContentModel.data\") as unknown as CmsModel;\n if (contentModelData) {\n setContentModel(contentModelData);\n return;\n }\n\n showSnackbar(\n t`Could not load content for model \"{modelId}\". Redirecting...`({\n modelId\n })\n );\n }\n });\n\n const { open, setOpen } = useNewRefEntryDialog();\n const hideDialog = useCallback(() => setOpen(false), []);\n\n const onCreate = useCallback(\n (entry: CmsEditorContentEntry) => {\n if (!contentModel) {\n setOpen(false);\n return;\n }\n onChange({\n ...entry,\n /*\n * Format data for AutoComplete.\n */\n published: get(entry, \"meta.status\") === \"published\",\n modelId: contentModel.modelId,\n modelName: contentModel.name\n });\n setOpen(false);\n },\n [onChange, contentModel]\n );\n\n if (!contentModel) {\n return children;\n }\n\n return (\n <ContentEntriesProvider\n contentModel={contentModel}\n key={contentModel.modelId}\n insideDialog={true}\n >\n <ContentEntryProvider isNewEntry={() => true} getContentId={() => null}>\n <Dialog open={open} onClose={hideDialog} className={dialogContainerStyles}>\n <DialogTitle>\n {t`New {modelName} Entry`({ modelName: contentModel.name })}\n </DialogTitle>\n <DialogContent className={dialogContentStyles}>\n <EntryForm onCreate={onCreate} />\n </DialogContent>\n <DialogActions>\n <DialogCancel>{t`Cancel`}</DialogCancel>\n <DialogSaveButton />\n </DialogActions>\n </Dialog>\n {children}\n </ContentEntryProvider>\n </ContentEntriesProvider>\n );\n};\n\nexport default NewRefEntryFormDialog;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAEA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,mCAAR,CAAV;;AAEA,IAAMC,mBAAmB,oBAAGC,YAAH,2CAAzB;AAIA,IAAMC,qBAAqB,oBAAGD,YAAH,0DAA3B;;AAkBA,IAAME,SAAmC,GAAG,SAAtCA,SAAsC,OAAkB;EAAA,IAAfC,QAAe,QAAfA,QAAe;;EAC1D,uBAAqC,IAAAC,iCAAA,GAArC;EAAA,IAAQC,UAAR,oBAAQA,UAAR;EAAA,IAAoBC,YAApB,oBAAoBA,YAApB;;EAEA,oBACI,6BAAC,4BAAD;IAAe,KAAK,EAAEA;EAAtB,gBACI,6BAAC,kCAAD;IACI,QAAQ,EAAE,kBAAAC,IAAI,EAAI;MACd;AACpB;AACA;MACoB,OAAOJ,QAAQ,CAACI,IAAD,CAAf;IACH,CANL;IAOI,MAAM,EAAE,gBAAAC,IAAI;MAAA,OAAIH,UAAU,CAACG,IAAD,CAAd;IAAA,CAPhB;IAQI,KAAK,EAAE,EARX;IASI,mBAAmB,EAAE;EATzB,EADJ,CADJ;AAeH,CAlBD;;AAoBA,IAAMC,gBAA0B,GAAG,SAA7BA,gBAA6B,GAAM;EACrC,wBAAiB,IAAAL,iCAAA,GAAjB;EAAA,IAAQI,IAAR,qBAAQA,IAAR;;EAEA,oBAAO,6BAAC,qBAAD;IAAe,OAAO,EAAEA,IAAI,CAACE,OAAL,CAAaC;EAArC,GAA8Cf,CAA9C,gGAAP;AACH,CAJD;;AAMA,IAAMgB,aAAa,oBAAGC,eAAH,EAAUC,qBAAV;EAAA;EAAA;AAAA,uBAAnB;;AAIO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;EAChC,4BAAoB,IAAAC,2CAAA,GAApB;EAAA,IAAQC,OAAR,yBAAQA,OAAR;;EACA,oBACI,6BAAC,aAAD;IAAe,KAAK,EAAE,IAAtB;IAA4B,OAAO,EAAE;MAAA,OAAMA,OAAO,CAAC,IAAD,CAAb;IAAA;EAArC,gBACI,6BAAC,kBAAD;IAAY,IAAI,eAAE,6BAAC,uBAAD;EAAlB,EADJ,EAEKrB,CAFL,+FADJ;AAMH,CARM;;;;AAgBP,IAAMsB,qBAAiD,GAAG,SAApDA,qBAAoD,QAAqC;EAAA,IAAlCC,OAAkC,SAAlCA,OAAkC;EAAA,IAAzBC,QAAyB,SAAzBA,QAAyB;EAAA,IAAfC,QAAe,SAAfA,QAAe;;EAC3F,gBAAwC,IAAAC,eAAA,EAA+BC,SAA/B,CAAxC;EAAA;EAAA,IAAOjB,YAAP;EAAA,IAAqBkB,eAArB;;EAEA,mBAAyB,IAAAC,qBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EAEA,IAAAC,eAAA,EAA8DC,gCAA9D,EAAiF;IAC7EC,IAAI,EAAE,CAACV,OADsE;IAE7EW,SAAS,EAAE;MAAEX,OAAO,EAAPA;IAAF,CAFkE;IAG7EY,WAAW,EAAE,qBAAAxB,IAAI,EAAI;MACjB,IAAMyB,gBAAgB,GAAG,IAAAC,YAAA,EAAI1B,IAAJ,EAAU,sBAAV,CAAzB;;MACA,IAAIyB,gBAAJ,EAAsB;QAClBR,eAAe,CAACQ,gBAAD,CAAf;QACA;MACH;;MAEDN,YAAY,CACR9B,CAAC,mJAAD,CAAgE;QAC5DuB,OAAO,EAAPA;MAD4D,CAAhE,CADQ,CAAZ;IAKH;EAf4E,CAAjF;;EAkBA,6BAA0B,IAAAH,2CAAA,GAA1B;EAAA,IAAQkB,IAAR,0BAAQA,IAAR;EAAA,IAAcjB,OAAd,0BAAcA,OAAd;;EACA,IAAMkB,UAAU,GAAG,IAAAC,kBAAA,EAAY;IAAA,OAAMnB,OAAO,CAAC,KAAD,CAAb;EAAA,CAAZ,EAAkC,EAAlC,CAAnB;EAEA,IAAMd,QAAQ,GAAG,IAAAiC,kBAAA,EACb,UAACC,KAAD,EAAkC;IAC9B,IAAI,CAAC/B,YAAL,EAAmB;MACfW,OAAO,CAAC,KAAD,CAAP;MACA;IACH;;IACDI,QAAQ,6DACDgB,KADC;MAEJ;AAChB;AACA;MACgBC,SAAS,EAAE,IAAAL,YAAA,EAAII,KAAJ,EAAW,aAAX,MAA8B,WALrC;MAMJlB,OAAO,EAAEb,YAAY,CAACa,OANlB;MAOJoB,SAAS,EAAEjC,YAAY,CAACkC;IAPpB,GAAR;IASAvB,OAAO,CAAC,KAAD,CAAP;EACH,CAhBY,EAiBb,CAACI,QAAD,EAAWf,YAAX,CAjBa,CAAjB;;EAoBA,IAAI,CAACA,YAAL,EAAmB;IACf,OAAOc,QAAP;EACH;;EAED,oBACI,6BAAC,+BAAD;IACI,YAAY,EAAEd,YADlB;IAEI,GAAG,EAAEA,YAAY,CAACa,OAFtB;IAGI,YAAY,EAAE;EAHlB,gBAKI,6BAAC,6BAAD;IAAsB,UAAU,EAAE;MAAA,OAAM,IAAN;IAAA,CAAlC;IAA8C,YAAY,EAAE;MAAA,OAAM,IAAN;IAAA;EAA5D,gBACI,6BAAC,cAAD;IAAQ,IAAI,EAAEe,IAAd;IAAoB,OAAO,EAAEC,UAA7B;IAAyC,SAAS,EAAElC;EAApD,gBACI,6BAAC,mBAAD,QACKL,CAAC,0GAAD,CAAyB;IAAE2C,SAAS,EAAEjC,YAAY,CAACkC;EAA1B,CAAzB,CADL,CADJ,eAII,6BAAC,qBAAD;IAAe,SAAS,EAAEzC;EAA1B,gBACI,6BAAC,SAAD;IAAW,QAAQ,EAAEI;EAArB,EADJ,CAJJ,eAOI,6BAAC,qBAAD,qBACI,6BAAC,oBAAD,QAAeP,CAAf,4FADJ,eAEI,6BAAC,gBAAD,OAFJ,CAPJ,CADJ,EAaKwB,QAbL,CALJ,CADJ;AAuBH,CAzED;;eA2EeF,qB"}
@@ -1,9 +1,9 @@
1
- import { CmsEditorField } from "../../../../../types";
1
+ import { CmsModelField } from "../../../../../types";
2
2
  import { BindComponentRenderProp } from "@webiny/form";
3
3
  import { OptionItem } from "./types";
4
4
  interface UseReferenceHookArgs {
5
5
  bind: BindComponentRenderProp;
6
- field: CmsEditorField;
6
+ field: CmsModelField;
7
7
  }
8
8
  interface UseReferenceHookValue {
9
9
  onChange: (value: any, entry: OptionItem) => void;
@@ -1 +1 @@
1
- {"version":3,"names":["getValueHash","value","id","entryId","parseIdentifier","useReference","bind","field","allEntries","useRef","client","useApolloClient","useState","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","m","limit","data","collection","convertReferenceEntriesToOptionCollection","content","current","useEffect","length","fetchPolicy","then","latestEntryData","entry","GET_CONTENT_ENTRY","res","dataEntry","latest","option","convertReferenceEntryToOption","published","prev","onChange","useCallback","options","useMemo","Object","values","defaultOptions","outputOptions","some","opt","push"],"sources":["useReference.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n const { id } = parseIdentifier(value.id);\n return id;\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getValueHash","value","id","entryId","parseIdentifier","useReference","bind","field","allEntries","useRef","client","useApolloClient","useState","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","m","limit","data","collection","convertReferenceEntriesToOptionCollection","content","current","useEffect","length","fetchPolicy","then","latestEntryData","entry","GET_CONTENT_ENTRY","res","dataEntry","latest","option","convertReferenceEntryToOption","published","prev","onChange","useCallback","options","useMemo","Object","values","defaultOptions","outputOptions","some","opt","push"],"sources":["useReference.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n const { id } = parseIdentifier(value.id);\n return id;\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
- import { CmsEditorField } from "../../../../../types";
2
+ import { CmsModelField } from "../../../../../types";
3
3
  import { BindComponentRenderProp } from "@webiny/form";
4
4
  import { OptionItem } from "./types";
5
5
  interface UseReferencesParams {
6
6
  bind: BindComponentRenderProp;
7
- field: CmsEditorField;
7
+ field: CmsModelField;
8
8
  }
9
9
  export declare const useReferences: ({ bind, field }: UseReferencesParams) => {
10
10
  onChange: (values: OptionItem[]) => void;