@webiny/app-headless-cms 5.34.8 → 5.35.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 (693) hide show
  1. package/HeadlessCMS.js +8 -21
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntryForm/ContentEntryForm.js +11 -51
  4. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
  5. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +0 -16
  6. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
  7. package/admin/components/ContentEntryForm/Fields.js +4 -11
  8. package/admin/components/ContentEntryForm/Fields.js.map +1 -1
  9. package/admin/components/ContentEntryForm/Label.js +0 -8
  10. package/admin/components/ContentEntryForm/Label.js.map +1 -1
  11. package/admin/components/ContentEntryForm/RenderFieldElement.js +2 -17
  12. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
  13. package/admin/components/ContentEntryForm/functions/getValue.js +2 -8
  14. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
  15. package/admin/components/ContentEntryForm/functions/setValue.js +3 -9
  16. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
  17. package/admin/components/ContentEntryForm/useBind.js +9 -29
  18. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  19. package/admin/components/ContentEntryForm/useContentEntryForm.js +209 -330
  20. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
  21. package/admin/components/ContentEntryForm/useRenderPlugins.d.ts +1 -2
  22. package/admin/components/ContentEntryForm/useRenderPlugins.js +0 -3
  23. package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -1
  24. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js +103 -166
  25. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
  26. package/admin/components/ContentModelEditor/Editor.d.ts +4 -1
  27. package/admin/components/ContentModelEditor/Editor.js +7 -40
  28. package/admin/components/ContentModelEditor/Editor.js.map +1 -1
  29. package/admin/components/ContentModelEditor/FieldsSidebar.js +5 -17
  30. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
  31. package/admin/components/ContentModelEditor/Header.js +0 -8
  32. package/admin/components/ContentModelEditor/Header.js.map +1 -1
  33. package/admin/components/ContentModelEditor/PreviewTab.js +1 -16
  34. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
  35. package/admin/components/ContentModelEditor/index.js +0 -4
  36. package/admin/components/ContentModelEditor/index.js.map +1 -1
  37. package/admin/components/ContentModelEditor/useModelEditor.js +0 -6
  38. package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -1
  39. package/admin/components/DelayedOnChange.js +6 -31
  40. package/admin/components/DelayedOnChange.js.map +1 -1
  41. package/admin/components/Dialog.d.ts +5 -1
  42. package/admin/components/Dialog.js +1 -5
  43. package/admin/components/Dialog.js.map +1 -1
  44. package/admin/components/DragPreview.js +21 -39
  45. package/admin/components/DragPreview.js.map +1 -1
  46. package/admin/components/Draggable.js +28 -40
  47. package/admin/components/Draggable.js.map +1 -1
  48. package/admin/components/DropZone/Center.js +6 -19
  49. package/admin/components/DropZone/Center.js.map +1 -1
  50. package/admin/components/DropZone/Horizontal.js +5 -16
  51. package/admin/components/DropZone/Horizontal.js.map +1 -1
  52. package/admin/components/DropZone/Vertical.js +5 -15
  53. package/admin/components/DropZone/Vertical.js.map +1 -1
  54. package/admin/components/DropZone/index.js +0 -4
  55. package/admin/components/DropZone/index.js.map +1 -1
  56. package/admin/components/Droppable.js +27 -40
  57. package/admin/components/Droppable.js.map +1 -1
  58. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +3 -30
  59. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
  60. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +8 -36
  61. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  62. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +15 -40
  63. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
  64. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js +3 -11
  65. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js.map +1 -1
  66. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js +10 -48
  67. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -1
  68. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js +2 -8
  69. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -1
  70. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +3 -10
  71. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -1
  72. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js +4 -28
  73. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -1
  74. package/admin/components/FieldEditor/EditFieldDialog.js +16 -54
  75. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
  76. package/admin/components/FieldEditor/Field.js +251 -105
  77. package/admin/components/FieldEditor/Field.js.map +1 -1
  78. package/admin/components/FieldEditor/FieldEditor.js +15 -53
  79. package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
  80. package/admin/components/FieldEditor/FieldEditorContext.js +42 -102
  81. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
  82. package/admin/components/FieldEditor/Styled.d.ts +9 -3
  83. package/admin/components/FieldEditor/Styled.js +1 -5
  84. package/admin/components/FieldEditor/Styled.js.map +1 -1
  85. package/admin/components/FieldEditor/index.js +0 -2
  86. package/admin/components/FieldEditor/index.js.map +1 -1
  87. package/admin/components/FieldEditor/useModelFieldEditor.js +0 -5
  88. package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -1
  89. package/admin/components/FieldEditor/utils/deleteField.js +4 -13
  90. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
  91. package/admin/components/FieldEditor/utils/getFieldPosition.js +1 -6
  92. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
  93. package/admin/components/FieldEditor/utils/index.js +0 -5
  94. package/admin/components/FieldEditor/utils/index.js.map +1 -1
  95. package/admin/components/FieldEditor/utils/moveField.js +7 -17
  96. package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
  97. package/admin/components/FieldEditor/utils/moveRow.js +2 -7
  98. package/admin/components/FieldEditor/utils/moveRow.js.map +1 -1
  99. package/admin/components/IconPicker.js +18 -43
  100. package/admin/components/IconPicker.js.map +1 -1
  101. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +1 -1
  102. package/admin/components/ModelFieldProvider/ModelFieldContext.js +1 -7
  103. package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +1 -1
  104. package/admin/components/ModelFieldProvider/index.js +0 -4
  105. package/admin/components/ModelFieldProvider/index.js.map +1 -1
  106. package/admin/components/ModelFieldProvider/useModelField.d.ts +1 -1
  107. package/admin/components/ModelFieldProvider/useModelField.js +1 -10
  108. package/admin/components/ModelFieldProvider/useModelField.js.map +1 -1
  109. package/admin/components/ModelProvider/ModelContext.js +1 -7
  110. package/admin/components/ModelProvider/ModelContext.js.map +1 -1
  111. package/admin/components/ModelProvider/index.js +0 -4
  112. package/admin/components/ModelProvider/index.js.map +1 -1
  113. package/admin/components/ModelProvider/useModel.js +0 -5
  114. package/admin/components/ModelProvider/useModel.js.map +1 -1
  115. package/admin/constants/statusLabels.js +0 -6
  116. package/admin/constants/statusLabels.js.map +1 -1
  117. package/admin/contexts/Cms/NetworkError.js +0 -5
  118. package/admin/contexts/Cms/NetworkError.js.map +1 -1
  119. package/admin/contexts/Cms/index.js +29 -70
  120. package/admin/contexts/Cms/index.js.map +1 -1
  121. package/admin/elements/ContentGroupMenuElement.js +0 -11
  122. package/admin/elements/ContentGroupMenuElement.js.map +1 -1
  123. package/admin/elements/ContentModelMenuElement.js +0 -11
  124. package/admin/elements/ContentModelMenuElement.js.map +1 -1
  125. package/admin/elements/NothingToShowElement.js +0 -24
  126. package/admin/elements/NothingToShowElement.js.map +1 -1
  127. package/admin/graphql/contentEntries.js +24 -65
  128. package/admin/graphql/contentEntries.js.map +1 -1
  129. package/admin/graphql/contentModels.js +2 -8
  130. package/admin/graphql/contentModels.js.map +1 -1
  131. package/admin/graphql/createFieldsList.js +7 -10
  132. package/admin/graphql/createFieldsList.js.map +1 -1
  133. package/admin/hooks/index.d.ts +2 -0
  134. package/admin/hooks/index.js +25 -14
  135. package/admin/hooks/index.js.map +1 -1
  136. package/admin/hooks/useApolloClient.js +1 -6
  137. package/admin/hooks/useApolloClient.js.map +1 -1
  138. package/admin/hooks/useCms.js +0 -6
  139. package/admin/hooks/useCms.js.map +1 -1
  140. package/admin/hooks/useContentModels.d.ts +14 -0
  141. package/admin/hooks/useContentModels.js +40 -0
  142. package/admin/hooks/useContentModels.js.map +1 -0
  143. package/admin/hooks/useLazyQuery.js +1 -9
  144. package/admin/hooks/useLazyQuery.js.map +1 -1
  145. package/admin/hooks/useMutation.js +1 -9
  146. package/admin/hooks/useMutation.js.map +1 -1
  147. package/admin/hooks/usePermission.d.ts +2 -2
  148. package/admin/hooks/usePermission.js +9 -51
  149. package/admin/hooks/usePermission.js.map +1 -1
  150. package/admin/hooks/useQuery.js +1 -9
  151. package/admin/hooks/useQuery.js.map +1 -1
  152. package/admin/hooks/useQueryLocale.js +1 -9
  153. package/admin/hooks/useQueryLocale.js.map +1 -1
  154. package/admin/menus/CmsMenuLoader.js +5 -19
  155. package/admin/menus/CmsMenuLoader.js.map +1 -1
  156. package/admin/menus/ContentGroupsMenuItems.js +4 -25
  157. package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
  158. package/admin/menus/GlobalSearchPlugins.js +5 -15
  159. package/admin/menus/GlobalSearchPlugins.js.map +1 -1
  160. package/admin/menus/NothingToShowElement.js +1 -8
  161. package/admin/menus/NothingToShowElement.js.map +1 -1
  162. package/admin/plugins/apiInformation/index.js +3 -14
  163. package/admin/plugins/apiInformation/index.js.map +1 -1
  164. package/admin/plugins/arrayUtils.js +2 -10
  165. package/admin/plugins/arrayUtils.js.map +1 -1
  166. package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js +0 -14
  167. package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -1
  168. package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js +0 -14
  169. package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -1
  170. package/admin/plugins/editor/defaultBar/BackButton.js +1 -11
  171. package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -1
  172. package/admin/plugins/editor/defaultBar/CreateContentButton.js +2 -19
  173. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
  174. package/admin/plugins/editor/defaultBar/Divider.d.ts +5 -2
  175. package/admin/plugins/editor/defaultBar/Divider.js +0 -3
  176. package/admin/plugins/editor/defaultBar/Divider.js.map +1 -1
  177. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +9 -36
  178. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
  179. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js +3 -13
  180. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -1
  181. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.d.ts +8 -2
  182. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js +0 -7
  183. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -1
  184. package/admin/plugins/editor/defaultBar/FormSettings/index.js +0 -2
  185. package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -1
  186. package/admin/plugins/editor/defaultBar/Name/Name.js +11 -30
  187. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
  188. package/admin/plugins/editor/defaultBar/Name/NameStyled.d.ts +13 -4
  189. package/admin/plugins/editor/defaultBar/Name/NameStyled.js +0 -4
  190. package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -1
  191. package/admin/plugins/editor/defaultBar/Name/index.js +0 -1
  192. package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -1
  193. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +24 -50
  194. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
  195. package/admin/plugins/editor/defaultBar/index.js +0 -9
  196. package/admin/plugins/editor/defaultBar/index.js.map +1 -1
  197. package/admin/plugins/editor/formSettings/components/GeneralSettings.d.ts +2 -2
  198. package/admin/plugins/editor/formSettings/components/GeneralSettings.js +22 -9
  199. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
  200. package/admin/plugins/editor/formSettings/components/GroupSelect.js +3 -14
  201. package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -1
  202. package/admin/plugins/editor/formSettings/index.js +0 -6
  203. package/admin/plugins/editor/formSettings/index.js.map +1 -1
  204. package/admin/plugins/entry/DefaultOnEntryDelete.js +93 -140
  205. package/admin/plugins/entry/DefaultOnEntryDelete.js.map +1 -1
  206. package/admin/plugins/entry/DefaultOnEntryPublish.js +70 -112
  207. package/admin/plugins/entry/DefaultOnEntryPublish.js.map +1 -1
  208. package/admin/plugins/fieldRenderers/Accordion.js +8 -21
  209. package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
  210. package/admin/plugins/fieldRenderers/DynamicSection.js +11 -28
  211. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  212. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +1 -10
  213. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
  214. package/admin/plugins/fieldRenderers/boolean/index.d.ts +1 -1
  215. package/admin/plugins/fieldRenderers/boolean/index.js +0 -3
  216. package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -1
  217. package/admin/plugins/fieldRenderers/checkboxes.js +6 -17
  218. package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
  219. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +20 -41
  220. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
  221. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +51 -97
  222. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
  223. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +46 -85
  224. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
  225. package/admin/plugins/fieldRenderers/dateTime/Input.js +1 -10
  226. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  227. package/admin/plugins/fieldRenderers/dateTime/Select.js +0 -5
  228. package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
  229. package/admin/plugins/fieldRenderers/dateTime/Time.js +19 -39
  230. package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -1
  231. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +1 -14
  232. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
  233. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +1 -21
  234. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
  235. package/admin/plugins/fieldRenderers/dateTime/index.d.ts +1 -1
  236. package/admin/plugins/fieldRenderers/dateTime/index.js +0 -4
  237. package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -1
  238. package/admin/plugins/fieldRenderers/dateTime/utils.js +2 -31
  239. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  240. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +3 -3
  241. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js +15 -37
  242. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
  243. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +4 -4
  244. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +11 -36
  245. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
  246. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +4 -4
  247. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +3 -17
  248. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
  249. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +2 -2
  250. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js +1 -10
  251. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -1
  252. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +2 -2
  253. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js +2 -15
  254. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
  255. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +2 -2
  256. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js +0 -5
  257. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
  258. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +4 -14
  259. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
  260. package/admin/plugins/fieldRenderers/file/File.js +6 -21
  261. package/admin/plugins/fieldRenderers/file/File.js.map +1 -1
  262. package/admin/plugins/fieldRenderers/file/fileField.js +3 -15
  263. package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -1
  264. package/admin/plugins/fieldRenderers/file/fileFields.js +6 -25
  265. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
  266. package/admin/plugins/fieldRenderers/file/index.d.ts +1 -1
  267. package/admin/plugins/fieldRenderers/file/index.js +0 -4
  268. package/admin/plugins/fieldRenderers/file/index.js.map +1 -1
  269. package/admin/plugins/fieldRenderers/file/utils.js +1 -12
  270. package/admin/plugins/fieldRenderers/file/utils.js.map +1 -1
  271. package/admin/plugins/fieldRenderers/longText/index.d.ts +1 -1
  272. package/admin/plugins/fieldRenderers/longText/index.js +0 -4
  273. package/admin/plugins/fieldRenderers/longText/index.js.map +1 -1
  274. package/admin/plugins/fieldRenderers/longText/longText.js +1 -10
  275. package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
  276. package/admin/plugins/fieldRenderers/longText/longTexts.js +1 -12
  277. package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
  278. package/admin/plugins/fieldRenderers/number/index.d.ts +1 -1
  279. package/admin/plugins/fieldRenderers/number/index.js +0 -4
  280. package/admin/plugins/fieldRenderers/number/index.js.map +1 -1
  281. package/admin/plugins/fieldRenderers/number/numberInput.js +1 -10
  282. package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
  283. package/admin/plugins/fieldRenderers/number/numberInputs.js +1 -12
  284. package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
  285. package/admin/plugins/fieldRenderers/object/StyledComponents.d.ts +9 -3
  286. package/admin/plugins/fieldRenderers/object/StyledComponents.js +0 -4
  287. package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -1
  288. package/admin/plugins/fieldRenderers/object/index.d.ts +1 -1
  289. package/admin/plugins/fieldRenderers/object/index.js +0 -6
  290. package/admin/plugins/fieldRenderers/object/index.js.map +1 -1
  291. package/admin/plugins/fieldRenderers/object/multipleObjects.js +12 -37
  292. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
  293. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js +12 -36
  294. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
  295. package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js +2 -11
  296. package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -1
  297. package/admin/plugins/fieldRenderers/object/singleObjectInline.js +2 -14
  298. package/admin/plugins/fieldRenderers/object/singleObjectInline.js.map +1 -1
  299. package/admin/plugins/fieldRenderers/radioButtons.js +6 -17
  300. package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
  301. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.d.ts +8 -0
  302. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +277 -0
  303. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -0
  304. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.d.ts +8 -0
  305. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +181 -0
  306. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -0
  307. package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.d.ts +9 -0
  308. package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js +62 -0
  309. package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -0
  310. package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.d.ts +27 -0
  311. package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js +153 -0
  312. package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -0
  313. package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.d.ts +3 -0
  314. package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.js +37 -0
  315. package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.js.map +1 -0
  316. package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.d.ts +9 -0
  317. package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js +142 -0
  318. package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map +1 -0
  319. package/admin/plugins/fieldRenderers/ref/advanced/components/Options.d.ts +9 -0
  320. package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js +118 -0
  321. package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js.map +1 -0
  322. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.d.ts +11 -0
  323. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js +183 -0
  324. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -0
  325. package/admin/plugins/fieldRenderers/ref/advanced/components/Search.d.ts +7 -0
  326. package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js +60 -0
  327. package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js.map +1 -0
  328. package/admin/plugins/fieldRenderers/ref/advanced/components/assets/add-circle.svg +1 -0
  329. package/admin/plugins/fieldRenderers/ref/advanced/components/assets/down-arrow.svg +1 -0
  330. package/admin/plugins/fieldRenderers/ref/advanced/components/assets/link.svg +1 -0
  331. package/admin/plugins/fieldRenderers/ref/advanced/components/assets/search.svg +1 -0
  332. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.d.ts +19 -0
  333. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.js +35 -0
  334. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.js.map +1 -0
  335. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.d.ts +8 -0
  336. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.js +90 -0
  337. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.js.map +1 -0
  338. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/assets/close.svg +3 -0
  339. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.d.ts +8 -0
  340. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js +64 -0
  341. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js.map +1 -0
  342. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.d.ts +8 -0
  343. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js +26 -0
  344. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js.map +1 -0
  345. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.d.ts +6 -0
  346. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js +31 -0
  347. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js.map +1 -0
  348. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.d.ts +9 -0
  349. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js +65 -0
  350. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js.map +1 -0
  351. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.d.ts +6 -0
  352. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js +25 -0
  353. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js.map +1 -0
  354. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.d.ts +8 -0
  355. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js +30 -0
  356. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js.map +1 -0
  357. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.d.ts +7 -0
  358. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.js +24 -0
  359. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.js.map +1 -0
  360. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.d.ts +7 -0
  361. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.js +24 -0
  362. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.js.map +1 -0
  363. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.d.ts +8 -0
  364. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js +44 -0
  365. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js.map +1 -0
  366. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.d.ts +9 -0
  367. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js +82 -0
  368. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js.map +1 -0
  369. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.d.ts +7 -0
  370. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js +32 -0
  371. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js.map +1 -0
  372. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.d.ts +6 -0
  373. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.js +24 -0
  374. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.js.map +1 -0
  375. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.d.ts +7 -0
  376. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js +22 -0
  377. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js.map +1 -0
  378. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-down.svg +3 -0
  379. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-up.svg +3 -0
  380. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/remove.svg +3 -0
  381. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/selected.svg +3 -0
  382. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-draft.svg +3 -0
  383. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-published.svg +3 -0
  384. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-unpublished.svg +3 -0
  385. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/view.svg +3 -0
  386. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.d.ts +18 -0
  387. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js +84 -0
  388. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js.map +1 -0
  389. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.d.ts +8 -0
  390. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js +55 -0
  391. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -0
  392. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.d.ts +8 -0
  393. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js +98 -0
  394. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js.map +1 -0
  395. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.d.ts +2 -0
  396. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js +46 -0
  397. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js.map +1 -0
  398. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.d.ts +2 -0
  399. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js +45 -0
  400. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js.map +1 -0
  401. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.d.ts +44 -0
  402. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +17 -0
  403. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -0
  404. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.d.ts +15 -0
  405. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js +187 -0
  406. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js.map +1 -0
  407. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.d.ts +12 -0
  408. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js +214 -0
  409. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js.map +1 -0
  410. package/admin/plugins/fieldRenderers/ref/advanced/index.d.ts +1 -0
  411. package/admin/plugins/fieldRenderers/ref/advanced/index.js +12 -0
  412. package/admin/plugins/fieldRenderers/ref/advanced/index.js.map +1 -0
  413. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +15 -46
  414. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  415. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +19 -46
  416. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
  417. package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js +4 -17
  418. package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js.map +1 -1
  419. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js +0 -15
  420. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -1
  421. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.d.ts +2 -2
  422. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +15 -61
  423. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
  424. package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js +1 -5
  425. package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -1
  426. package/admin/plugins/fieldRenderers/ref/components/graphql.js +2 -7
  427. package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
  428. package/admin/plugins/fieldRenderers/ref/components/helpers.js +0 -12
  429. package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
  430. package/admin/plugins/fieldRenderers/ref/components/renderItem.js +0 -14
  431. package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
  432. package/admin/plugins/fieldRenderers/ref/components/types.d.ts +11 -1
  433. package/admin/plugins/fieldRenderers/ref/components/types.js.map +1 -1
  434. package/admin/plugins/fieldRenderers/ref/components/useReference.js +51 -99
  435. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  436. package/admin/plugins/fieldRenderers/ref/components/useReferences.js +53 -83
  437. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
  438. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +4 -20
  439. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
  440. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js +5 -17
  441. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -1
  442. package/admin/plugins/fieldRenderers/ref/index.d.ts +1 -1
  443. package/admin/plugins/fieldRenderers/ref/index.js +3 -5
  444. package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
  445. package/admin/plugins/fieldRenderers/ref/refInput.js +0 -9
  446. package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
  447. package/admin/plugins/fieldRenderers/ref/refInputs.js +0 -10
  448. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
  449. package/admin/plugins/fieldRenderers/richText/index.d.ts +1 -1
  450. package/admin/plugins/fieldRenderers/richText/index.js +0 -4
  451. package/admin/plugins/fieldRenderers/richText/index.js.map +1 -1
  452. package/admin/plugins/fieldRenderers/richText/richTextInput.js +1 -13
  453. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
  454. package/admin/plugins/fieldRenderers/richText/richTextInputs.js +1 -18
  455. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  456. package/admin/plugins/fieldRenderers/select.js +2 -15
  457. package/admin/plugins/fieldRenderers/select.js.map +1 -1
  458. package/admin/plugins/fieldRenderers/text/index.d.ts +1 -1
  459. package/admin/plugins/fieldRenderers/text/index.js +0 -4
  460. package/admin/plugins/fieldRenderers/text/index.js.map +1 -1
  461. package/admin/plugins/fieldRenderers/text/textInput.js +1 -10
  462. package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
  463. package/admin/plugins/fieldRenderers/text/textInputs.js +1 -12
  464. package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
  465. package/admin/plugins/fieldValidators/date/availableValidators.js +0 -4
  466. package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -1
  467. package/admin/plugins/fieldValidators/date/createDateInputField.js +0 -10
  468. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
  469. package/admin/plugins/fieldValidators/dateGte.js +21 -48
  470. package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
  471. package/admin/plugins/fieldValidators/dateLte.js +21 -48
  472. package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
  473. package/admin/plugins/fieldValidators/dynamicZone.js +81 -133
  474. package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -1
  475. package/admin/plugins/fieldValidators/gte.js +14 -31
  476. package/admin/plugins/fieldValidators/gte.js.map +1 -1
  477. package/admin/plugins/fieldValidators/in.js +14 -31
  478. package/admin/plugins/fieldValidators/in.js.map +1 -1
  479. package/admin/plugins/fieldValidators/lte.js +14 -31
  480. package/admin/plugins/fieldValidators/lte.js.map +1 -1
  481. package/admin/plugins/fieldValidators/maxLength.js +14 -31
  482. package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
  483. package/admin/plugins/fieldValidators/minLength.js +14 -31
  484. package/admin/plugins/fieldValidators/minLength.js.map +1 -1
  485. package/admin/plugins/fieldValidators/pattern.js +31 -63
  486. package/admin/plugins/fieldValidators/pattern.js.map +1 -1
  487. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
  488. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
  489. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
  490. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
  491. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
  492. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
  493. package/admin/plugins/fieldValidators/required.js +0 -2
  494. package/admin/plugins/fieldValidators/required.js.map +1 -1
  495. package/admin/plugins/fieldValidators/unique.js +6 -16
  496. package/admin/plugins/fieldValidators/unique.js.map +1 -1
  497. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +9 -31
  498. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
  499. package/admin/plugins/fields/boolean.js +0 -11
  500. package/admin/plugins/fields/boolean.js.map +1 -1
  501. package/admin/plugins/fields/dateTime.js +2 -19
  502. package/admin/plugins/fields/dateTime.js.map +1 -1
  503. package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +3 -3
  504. package/admin/plugins/fields/dynamicZone/AddTemplate.js +16 -39
  505. package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
  506. package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -2
  507. package/admin/plugins/fields/dynamicZone/DynamicZone.js +2 -22
  508. package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
  509. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +2 -2
  510. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js +12 -35
  511. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
  512. package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +2 -2
  513. package/admin/plugins/fields/dynamicZone/TemplateDialog.js +5 -38
  514. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
  515. package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -1
  516. package/admin/plugins/fields/dynamicZone.d.ts +2 -2
  517. package/admin/plugins/fields/dynamicZone.js +4 -18
  518. package/admin/plugins/fields/dynamicZone.js.map +1 -1
  519. package/admin/plugins/fields/file.js +0 -11
  520. package/admin/plugins/fields/file.js.map +1 -1
  521. package/admin/plugins/fields/longText.js +0 -11
  522. package/admin/plugins/fields/longText.js.map +1 -1
  523. package/admin/plugins/fields/number.js +0 -12
  524. package/admin/plugins/fields/number.js.map +1 -1
  525. package/admin/plugins/fields/object/ObjectFields.js +3 -13
  526. package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
  527. package/admin/plugins/fields/object.js +4 -11
  528. package/admin/plugins/fields/object.js.map +1 -1
  529. package/admin/plugins/fields/ref/graphql.d.ts +8 -0
  530. package/admin/plugins/fields/ref/graphql.js +12 -0
  531. package/admin/plugins/fields/ref/graphql.js.map +1 -0
  532. package/admin/plugins/fields/ref/renderInfo.d.ts +9 -0
  533. package/admin/plugins/fields/ref/renderInfo.js +116 -0
  534. package/admin/plugins/fields/ref/renderInfo.js.map +1 -0
  535. package/admin/plugins/fields/ref.js +27 -59
  536. package/admin/plugins/fields/ref.js.map +1 -1
  537. package/admin/plugins/fields/richText.js +0 -11
  538. package/admin/plugins/fields/richText.js.map +1 -1
  539. package/admin/plugins/fields/text.js +0 -12
  540. package/admin/plugins/fields/text.js.map +1 -1
  541. package/admin/plugins/getObjectId.js +0 -4
  542. package/admin/plugins/getObjectId.js.map +1 -1
  543. package/admin/plugins/icons.js +2 -12
  544. package/admin/plugins/icons.js.map +1 -1
  545. package/admin/plugins/index.d.ts +3 -3
  546. package/admin/plugins/index.js +0 -12
  547. package/admin/plugins/index.js.map +1 -1
  548. package/admin/plugins/install.js +22 -87
  549. package/admin/plugins/install.js.map +1 -1
  550. package/admin/plugins/permissionRenderer/CmsPermissions.js +18 -72
  551. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
  552. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +6 -24
  553. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
  554. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +4 -19
  555. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -1
  556. package/admin/plugins/permissionRenderer/components/ContentModelList.js +5 -18
  557. package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -1
  558. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +9 -29
  559. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
  560. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js +2 -8
  561. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -1
  562. package/admin/plugins/permissionRenderer/components/PermissionSelector.js +11 -27
  563. package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -1
  564. package/admin/plugins/permissionRenderer/components/StyledComponents.d.ts +5 -2
  565. package/admin/plugins/permissionRenderer/components/StyledComponents.js +0 -3
  566. package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -1
  567. package/admin/plugins/permissionRenderer/components/useCmsData.d.ts +1 -0
  568. package/admin/plugins/permissionRenderer/components/useCmsData.js +60 -65
  569. package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
  570. package/admin/plugins/permissionRenderer/index.js +0 -6
  571. package/admin/plugins/permissionRenderer/index.js.map +1 -1
  572. package/admin/plugins/routes.js +3 -20
  573. package/admin/plugins/routes.js.map +1 -1
  574. package/admin/plugins/transformers/dateTransformer.js +5 -36
  575. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  576. package/admin/plugins/transformers/dynamicZoneTransformer.js +3 -12
  577. package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -1
  578. package/admin/plugins/transformers/index.js +0 -5
  579. package/admin/plugins/transformers/index.js.map +1 -1
  580. package/admin/plugins/transformers/numberTransformer.js +0 -3
  581. package/admin/plugins/transformers/numberTransformer.js.map +1 -1
  582. package/admin/plugins/welcomeScreenWidget.js +0 -6
  583. package/admin/plugins/welcomeScreenWidget.js.map +1 -1
  584. package/admin/views/contentEntries/ContentEntries.js +8 -88
  585. package/admin/views/contentEntries/ContentEntries.js.map +1 -1
  586. package/admin/views/contentEntries/ContentEntriesContainer.d.ts +4 -0
  587. package/admin/views/contentEntries/ContentEntriesContainer.js +65 -0
  588. package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -0
  589. package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
  590. package/admin/views/contentEntries/ContentEntriesContext.js +14 -39
  591. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  592. package/admin/views/contentEntries/ContentEntriesList.js +19 -54
  593. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  594. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +1 -1
  595. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +33 -79
  596. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  597. package/admin/views/contentEntries/ContentEntry/PublishEntryRevisionListItem.js +0 -12
  598. package/admin/views/contentEntries/ContentEntry/PublishEntryRevisionListItem.js.map +1 -1
  599. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +21 -61
  600. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
  601. package/admin/views/contentEntries/ContentEntry/RevisionsList.js +3 -19
  602. package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -1
  603. package/admin/views/contentEntries/ContentEntry/cache.js +10 -64
  604. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  605. package/admin/views/contentEntries/ContentEntry/header/Header.js +0 -9
  606. package/admin/views/contentEntries/ContentEntry/header/Header.js.map +1 -1
  607. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +48 -94
  608. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
  609. package/admin/views/contentEntries/ContentEntry/header/index.js +0 -8
  610. package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -1
  611. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js +5 -22
  612. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -1
  613. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +30 -62
  614. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -1
  615. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js +3 -17
  616. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +1 -1
  617. package/admin/views/contentEntries/ContentEntry/prepareFormData.js +2 -35
  618. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
  619. package/admin/views/contentEntries/ContentEntry/useRevision.js +81 -146
  620. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
  621. package/admin/views/contentEntries/ContentEntry.js +9 -32
  622. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  623. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +1 -13
  624. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
  625. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +0 -8
  626. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +1 -1
  627. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +2 -0
  628. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +50 -74
  629. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
  630. package/admin/views/contentEntries/hooks/index.d.ts +3 -0
  631. package/admin/views/contentEntries/hooks/index.js +38 -0
  632. package/admin/views/contentEntries/hooks/index.js.map +1 -0
  633. package/admin/views/contentEntries/hooks/useContentEntries.js +0 -5
  634. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
  635. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
  636. package/admin/views/contentEntries/hooks/useContentEntriesList.js +31 -54
  637. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  638. package/admin/views/contentEntries/hooks/useContentEntry.js +0 -5
  639. package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -1
  640. package/admin/views/contentModelGroups/ContentModelGroups.js +2 -15
  641. package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -1
  642. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +66 -120
  643. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
  644. package/admin/views/contentModelGroups/ContentModelGroupsForm.js +72 -129
  645. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
  646. package/admin/views/contentModelGroups/graphql.js +1 -9
  647. package/admin/views/contentModelGroups/graphql.js.map +1 -1
  648. package/admin/views/contentModels/CloneContentModelDialog.d.ts +5 -6
  649. package/admin/views/contentModels/CloneContentModelDialog.js +120 -164
  650. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
  651. package/admin/views/contentModels/ContentModelEditor.js +3 -17
  652. package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
  653. package/admin/views/contentModels/ContentModels.js +10 -30
  654. package/admin/views/contentModels/ContentModels.js.map +1 -1
  655. package/admin/views/contentModels/ContentModelsDataList.js +105 -139
  656. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
  657. package/admin/views/contentModels/NewContentModelDialog.js +118 -221
  658. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  659. package/admin/views/contentModels/cache.js +5 -28
  660. package/admin/views/contentModels/cache.js.map +1 -1
  661. package/admin/views/contentModels/helpers/apiNameValidator.d.ts +8 -0
  662. package/admin/views/contentModels/helpers/apiNameValidator.js +116 -0
  663. package/admin/views/contentModels/helpers/apiNameValidator.js.map +1 -0
  664. package/admin/views/contentModels/helpers/nameValidator.d.ts +6 -0
  665. package/admin/views/contentModels/helpers/nameValidator.js +63 -0
  666. package/admin/views/contentModels/helpers/nameValidator.js.map +1 -0
  667. package/admin/views/utils.js +3 -9
  668. package/admin/views/utils.js.map +1 -1
  669. package/admin/viewsGraphql.js +7 -11
  670. package/admin/viewsGraphql.js.map +1 -1
  671. package/allPlugins.d.ts +3 -3
  672. package/allPlugins.js +0 -44
  673. package/allPlugins.js.map +1 -1
  674. package/index.js +0 -5
  675. package/index.js.map +1 -1
  676. package/package.json +27 -28
  677. package/types/index.d.ts +40 -18
  678. package/types/index.js +0 -6
  679. package/types/index.js.map +1 -1
  680. package/types/model.d.ts +10 -5
  681. package/types/model.js.map +1 -1
  682. package/types/shared.d.ts +1 -1
  683. package/types/shared.js.map +1 -1
  684. package/utils/CmsModelFieldValidatorConfigAdapter.js +0 -12
  685. package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -1
  686. package/utils/createTypeName.js +0 -5
  687. package/utils/createTypeName.js.map +1 -1
  688. package/utils/createValidators.js +40 -61
  689. package/utils/createValidators.js.map +1 -1
  690. package/utils/getFetchPolicy.js +0 -2
  691. package/utils/getFetchPolicy.js.map +1 -1
  692. package/utils/getModelTitleFieldId.js +0 -3
  693. package/utils/getModelTitleFieldId.js.map +1 -1
@@ -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 { 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
+ {"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,113 +1,87 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useReferences = void 0;
9
-
10
8
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
-
12
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
-
14
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = require("react");
19
-
20
13
  var _hooks = require("../../../../hooks");
21
-
22
14
  var _graphql = require("./graphql");
23
-
24
15
  var _helpers = require("./helpers");
25
-
26
16
  var useReferences = function useReferences(_ref) {
27
17
  var bind = _ref.bind,
28
- field = _ref.field;
18
+ field = _ref.field;
29
19
  var isMounted = (0, _react.useRef)(true);
30
20
  var allEntries = (0, _react.useRef)({});
31
21
  var client = (0, _hooks.useApolloClient)();
32
-
33
22
  var _useState = (0, _react.useState)(""),
34
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
- search = _useState2[0],
36
- setSearch = _useState2[1];
37
-
23
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
24
+ search = _useState2[0],
25
+ setSearch = _useState2[1];
38
26
  var _useState3 = (0, _react.useState)(false),
39
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
40
- loading = _useState4[0],
41
- setLoading = _useState4[1];
42
-
27
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
28
+ loading = _useState4[0],
29
+ setLoading = _useState4[1];
43
30
  var _useState5 = (0, _react.useState)({}),
44
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
45
- entries = _useState6[0],
46
- setEntries = _useState6[1];
47
-
31
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
32
+ entries = _useState6[0],
33
+ setEntries = _useState6[1];
48
34
  var _useState7 = (0, _react.useState)([]),
49
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
50
- latestEntries = _useState8[0],
51
- setLatestEntries = _useState8[1];
52
-
35
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
36
+ latestEntries = _useState8[0],
37
+ setLatestEntries = _useState8[1];
53
38
  var _useState9 = (0, _react.useState)([]),
54
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
55
- valueEntries = _useState10[0],
56
- setValueEntries = _useState10[1];
57
-
39
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
40
+ valueEntries = _useState10[0],
41
+ setValueEntries = _useState10[1];
58
42
  var models = field.settings ? field.settings.models || [] : [];
59
43
  var modelsHash = models.join(",");
60
44
  var values = bind.value ? bind.value : [];
61
-
62
45
  var searchEntries = /*#__PURE__*/function () {
63
46
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
64
47
  var _yield$client$query, data, collection;
65
-
66
48
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
67
- while (1) {
68
- switch (_context.prev = _context.next) {
69
- case 0:
70
- if (search) {
71
- _context.next = 2;
72
- break;
49
+ while (1) switch (_context.prev = _context.next) {
50
+ case 0:
51
+ if (search) {
52
+ _context.next = 2;
53
+ break;
54
+ }
55
+ return _context.abrupt("return");
56
+ case 2:
57
+ setLoading(true);
58
+ _context.next = 5;
59
+ return client.query({
60
+ query: _graphql.SEARCH_CONTENT_ENTRIES,
61
+ variables: {
62
+ modelIds: models.map(function (m) {
63
+ return m.modelId;
64
+ }),
65
+ query: search
73
66
  }
74
-
75
- return _context.abrupt("return");
76
-
77
- case 2:
78
- setLoading(true);
79
- _context.next = 5;
80
- return client.query({
81
- query: _graphql.SEARCH_CONTENT_ENTRIES,
82
- variables: {
83
- modelIds: models.map(function (m) {
84
- return m.modelId;
85
- }),
86
- query: search
87
- }
88
- });
89
-
90
- case 5:
91
- _yield$client$query = _context.sent;
92
- data = _yield$client$query.data;
93
- setLoading(false);
94
- collection = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
95
- allEntries.current = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, allEntries.current), collection);
96
- setEntries(collection);
97
-
98
- case 11:
99
- case "end":
100
- return _context.stop();
101
- }
67
+ });
68
+ case 5:
69
+ _yield$client$query = _context.sent;
70
+ data = _yield$client$query.data;
71
+ setLoading(false);
72
+ collection = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
73
+ allEntries.current = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, allEntries.current), collection);
74
+ setEntries(collection);
75
+ case 11:
76
+ case "end":
77
+ return _context.stop();
102
78
  }
103
79
  }, _callee);
104
80
  }));
105
-
106
81
  return function searchEntries() {
107
82
  return _ref2.apply(this, arguments);
108
83
  };
109
84
  }();
110
-
111
85
  (0, _react.useEffect)(function () {
112
86
  return function () {
113
87
  isMounted.current = false;
@@ -125,7 +99,6 @@ var useReferences = function useReferences(_ref) {
125
99
  }),
126
100
  limit: 10
127
101
  },
128
-
129
102
  /**
130
103
  * We cannot update this query response in cache after a reference entry being created/deleted,
131
104
  * which result in cached response being stale, therefore, we're setting the fetchPolicy to "network-only" to by passing cache.
@@ -133,11 +106,9 @@ var useReferences = function useReferences(_ref) {
133
106
  fetchPolicy: "network-only"
134
107
  }).then(function (_ref3) {
135
108
  var data = _ref3.data;
136
-
137
109
  if (!isMounted.current) {
138
110
  return;
139
111
  }
140
-
141
112
  var collection = (0, _helpers.convertReferenceEntriesToOptionCollection)(data.content.data);
142
113
  setLatestEntries(Object.values(collection));
143
114
  allEntries.current = (0, _objectSpread2.default)({}, collection);
@@ -147,7 +118,6 @@ var useReferences = function useReferences(_ref) {
147
118
  if (!values || values.length == 0) {
148
119
  return;
149
120
  }
150
-
151
121
  setLoading(true);
152
122
  client.query({
153
123
  query: _graphql.GET_CONTENT_ENTRIES,
@@ -166,7 +136,6 @@ var useReferences = function useReferences(_ref) {
166
136
  if (!isMounted.current) {
167
137
  return;
168
138
  }
169
-
170
139
  setLoading(false);
171
140
  var latest = (res.data.latest.data || []).reduce(function (collection, item) {
172
141
  collection[item.entryId] = item;
@@ -175,7 +144,6 @@ var useReferences = function useReferences(_ref) {
175
144
  var entries = (res.data.published.data || []).reduce(function (collection, item) {
176
145
  var entryId = item.entryId;
177
146
  var existingItem = latest[entryId];
178
-
179
147
  if (existingItem) {
180
148
  collection[entryId] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingItem), {}, {
181
149
  published: {
@@ -186,35 +154,38 @@ var useReferences = function useReferences(_ref) {
186
154
  });
187
155
  return collection;
188
156
  }
189
-
190
157
  collection[entryId] = item;
191
158
  return collection;
192
- }, latest); // Calculate a couple of props for the Autocomplete component.
159
+ }, latest);
193
160
 
161
+ // Calculate a couple of props for the Autocomplete component.
194
162
  setValueEntries(Object.values(entries).map(_helpers.convertReferenceEntryToOption));
195
163
  });
196
164
  }, []);
165
+
197
166
  /**
198
167
  * onChange callback will update internal component state using the previously loaded entries by IDs.
199
168
  * It will also format the value to store to the DB.
200
169
  */
201
-
202
170
  var onChange = (0, _react.useCallback)(function (values) {
203
171
  setSearch("");
204
- setValueEntries(values); // Update parent form
172
+ setValueEntries(values);
205
173
 
174
+ // Update parent form
206
175
  bind.onChange(values.map(function (item) {
207
176
  return {
208
177
  modelId: item.modelId,
209
178
  id: item.id
210
179
  };
211
180
  }));
212
- }, []); // Format options for the Autocomplete component.
181
+ }, []);
213
182
 
183
+ // Format options for the Autocomplete component.
214
184
  var options = (0, _react.useMemo)(function () {
215
185
  return Object.values(entries);
216
- }, [entries]); // Format default options for the Autocomplete component.
186
+ }, [entries]);
217
187
 
188
+ // Format default options for the Autocomplete component.
218
189
  var defaultOptions = (0, _react.useMemo)(function () {
219
190
  return Object.values(latestEntries);
220
191
  }, [latestEntries]);
@@ -228,5 +199,4 @@ var useReferences = function useReferences(_ref) {
228
199
  options: search ? options : defaultOptions || []
229
200
  };
230
201
  };
231
-
232
202
  exports.useReferences = useReferences;
@@ -1 +1 @@
1
- {"version":3,"names":["useReferences","bind","field","isMounted","useRef","allEntries","client","useApolloClient","useState","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","m","modelId","data","collection","convertReferenceEntriesToOptionCollection","content","current","useEffect","limit","fetchPolicy","then","Object","length","GET_CONTENT_ENTRIES","id","res","latest","reduce","item","entryId","published","existingItem","title","convertReferenceEntryToOption","onChange","useCallback","options","useMemo","defaultOptions"],"sources":["useReferences.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\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<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\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 }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\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 if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useReferences","bind","field","isMounted","useRef","allEntries","client","useApolloClient","useState","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","SEARCH_CONTENT_ENTRIES","variables","modelIds","map","m","modelId","data","collection","convertReferenceEntriesToOptionCollection","content","current","useEffect","limit","fetchPolicy","then","Object","length","GET_CONTENT_ENTRIES","id","res","latest","reduce","item","entryId","published","existingItem","title","convertReferenceEntryToOption","onChange","useCallback","options","useMemo","defaultOptions"],"sources":["useReferences.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsModelField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\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<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\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 }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\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 if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"],"mappings":"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"}
@@ -1,36 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.useNewRefEntry = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _react = _interopRequireDefault(require("react"));
15
-
16
11
  var _MissingEntryHelpText = _interopRequireWildcard(require("../components/MissingEntryHelpText"));
17
-
18
12
  var _useContentEntries = require("../../../../views/contentEntries/hooks/useContentEntries");
19
-
20
13
  var useNewRefEntry = function useNewRefEntry(_ref) {
21
14
  var field = _ref.field;
22
15
  var models = (field.settings && field.settings.models ? field.settings.models : null) || [];
23
-
24
16
  var _models = (0, _slicedToArray2.default)(models, 1),
25
- refModelId = _models[0].modelId;
26
-
17
+ refModelId = _models[0].modelId;
27
18
  var referenceMultipleModels = models.length > 1;
28
19
  var contentEntriesContext = null;
29
-
30
20
  try {
31
21
  contentEntriesContext = (0, _useContentEntries.useContentEntries)();
32
- } catch (_unused) {// Means there's no `ContentEntriesContextProvider`, so we must be in model editor "preview".
22
+ } catch (_unused) {
23
+ // Means there's no `ContentEntriesContextProvider`, so we must be in model editor "preview".
33
24
  }
25
+
34
26
  /**
35
27
  * We don't wrap the "ContentEntryForm" with "ContentEntriesContextProvider"
36
28
  * when rendering it inside content model editor's preview tab.
@@ -38,11 +30,8 @@ var useNewRefEntry = function useNewRefEntry(_ref) {
38
30
  * And we also don't want to have new ref field Dialog in the preview tab.
39
31
  * Therefore, we check for "contentEntriesContext" to know that we're inside preview tab.
40
32
  */
41
-
42
-
43
33
  var renderedInPreviewTab = contentEntriesContext === null;
44
34
  var renderNewEntryModal = false;
45
-
46
35
  if (renderedInPreviewTab) {
47
36
  renderNewEntryModal = false;
48
37
  } else if (referenceMultipleModels) {
@@ -53,10 +42,7 @@ var useNewRefEntry = function useNewRefEntry(_ref) {
53
42
  /**
54
43
  * Set "helpText" value.
55
44
  */
56
-
57
-
58
45
  var helpText;
59
-
60
46
  if (referenceMultipleModels) {
61
47
  helpText = /*#__PURE__*/_react.default.createElement(_MissingEntryHelpText.ReferenceMultipleModelsHelpText, null);
62
48
  } else {
@@ -64,12 +50,10 @@ var useNewRefEntry = function useNewRefEntry(_ref) {
64
50
  refModelId: refModelId
65
51
  });
66
52
  }
67
-
68
53
  return {
69
54
  renderNewEntryModal: renderNewEntryModal,
70
55
  refModelId: refModelId,
71
56
  helpText: helpText
72
57
  };
73
58
  };
74
-
75
59
  exports.useNewRefEntry = useNewRefEntry;
@@ -1 +1 @@
1
- {"version":3,"names":["useNewRefEntry","field","models","settings","refModelId","modelId","referenceMultipleModels","length","contentEntriesContext","useContentEntries","renderedInPreviewTab","renderNewEntryModal","insideDialog","helpText"],"sources":["useNewRefEntry.tsx"],"sourcesContent":["import React from \"react\";\nimport { CmsModelField } from \"~/types\";\nimport MissingEntryHelpText, {\n ReferenceMultipleModelsHelpText\n} from \"../components/MissingEntryHelpText\";\nimport { useContentEntries } from \"~/admin/views/contentEntries/hooks/useContentEntries\";\n\ninterface UseNewRefEntryParams {\n field: CmsModelField;\n}\n\ninterface UseNewRefEntry {\n renderNewEntryModal: boolean;\n refModelId: string;\n helpText: React.ReactElement;\n}\n\nexport const useNewRefEntry = ({ field }: UseNewRefEntryParams): UseNewRefEntry => {\n const models = (field.settings && field.settings.models ? field.settings.models : null) || [];\n const [{ modelId: refModelId }] = models;\n const referenceMultipleModels = models.length > 1;\n\n let contentEntriesContext = null;\n try {\n contentEntriesContext = useContentEntries();\n } catch {\n // Means there's no `ContentEntriesContextProvider`, so we must be in model editor \"preview\".\n }\n\n /**\n * We don't wrap the \"ContentEntryForm\" with \"ContentEntriesContextProvider\"\n * when rendering it inside content model editor's preview tab.\n *\n * And we also don't want to have new ref field Dialog in the preview tab.\n * Therefore, we check for \"contentEntriesContext\" to know that we're inside preview tab.\n */\n const renderedInPreviewTab = contentEntriesContext === null;\n\n let renderNewEntryModal = false;\n\n if (renderedInPreviewTab) {\n renderNewEntryModal = false;\n } else if (referenceMultipleModels) {\n renderNewEntryModal = false;\n } else if (contentEntriesContext) {\n renderNewEntryModal = !contentEntriesContext.insideDialog;\n }\n /**\n * Set \"helpText\" value.\n */\n let helpText;\n if (referenceMultipleModels) {\n helpText = <ReferenceMultipleModelsHelpText />;\n } else {\n helpText = <MissingEntryHelpText refModelId={refModelId} />;\n }\n\n return {\n renderNewEntryModal,\n refModelId,\n helpText\n };\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA;;AAGA;;AAYO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAqD;EAAA,IAAlDC,KAAkD,QAAlDA,KAAkD;EAC/E,IAAMC,MAAM,GAAG,CAACD,KAAK,CAACE,QAAN,IAAkBF,KAAK,CAACE,QAAN,CAAeD,MAAjC,GAA0CD,KAAK,CAACE,QAAN,CAAeD,MAAzD,GAAkE,IAAnE,KAA4E,EAA3F;;EACA,2CAAkCA,MAAlC;EAAA,IAAkBE,UAAlB,cAASC,OAAT;;EACA,IAAMC,uBAAuB,GAAGJ,MAAM,CAACK,MAAP,GAAgB,CAAhD;EAEA,IAAIC,qBAAqB,GAAG,IAA5B;;EACA,IAAI;IACAA,qBAAqB,GAAG,IAAAC,oCAAA,GAAxB;EACH,CAFD,CAEE,gBAAM,CACJ;EACH;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI,IAAMC,oBAAoB,GAAGF,qBAAqB,KAAK,IAAvD;EAEA,IAAIG,mBAAmB,GAAG,KAA1B;;EAEA,IAAID,oBAAJ,EAA0B;IACtBC,mBAAmB,GAAG,KAAtB;EACH,CAFD,MAEO,IAAIL,uBAAJ,EAA6B;IAChCK,mBAAmB,GAAG,KAAtB;EACH,CAFM,MAEA,IAAIH,qBAAJ,EAA2B;IAC9BG,mBAAmB,GAAG,CAACH,qBAAqB,CAACI,YAA7C;EACH;EACD;AACJ;AACA;;;EACI,IAAIC,QAAJ;;EACA,IAAIP,uBAAJ,EAA6B;IACzBO,QAAQ,gBAAG,6BAAC,qDAAD,OAAX;EACH,CAFD,MAEO;IACHA,QAAQ,gBAAG,6BAAC,6BAAD;MAAsB,UAAU,EAAET;IAAlC,EAAX;EACH;;EAED,OAAO;IACHO,mBAAmB,EAAnBA,mBADG;IAEHP,UAAU,EAAVA,UAFG;IAGHS,QAAQ,EAARA;EAHG,CAAP;AAKH,CA7CM"}
1
+ {"version":3,"names":["useNewRefEntry","field","models","settings","refModelId","modelId","referenceMultipleModels","length","contentEntriesContext","useContentEntries","renderedInPreviewTab","renderNewEntryModal","insideDialog","helpText"],"sources":["useNewRefEntry.tsx"],"sourcesContent":["import React from \"react\";\nimport { CmsModelField } from \"~/types\";\nimport MissingEntryHelpText, {\n ReferenceMultipleModelsHelpText\n} from \"../components/MissingEntryHelpText\";\nimport { useContentEntries } from \"~/admin/views/contentEntries/hooks/useContentEntries\";\n\ninterface UseNewRefEntryParams {\n field: CmsModelField;\n}\n\ninterface UseNewRefEntry {\n renderNewEntryModal: boolean;\n refModelId: string;\n helpText: React.ReactElement;\n}\n\nexport const useNewRefEntry = ({ field }: UseNewRefEntryParams): UseNewRefEntry => {\n const models = (field.settings && field.settings.models ? field.settings.models : null) || [];\n const [{ modelId: refModelId }] = models;\n const referenceMultipleModels = models.length > 1;\n\n let contentEntriesContext = null;\n try {\n contentEntriesContext = useContentEntries();\n } catch {\n // Means there's no `ContentEntriesContextProvider`, so we must be in model editor \"preview\".\n }\n\n /**\n * We don't wrap the \"ContentEntryForm\" with \"ContentEntriesContextProvider\"\n * when rendering it inside content model editor's preview tab.\n *\n * And we also don't want to have new ref field Dialog in the preview tab.\n * Therefore, we check for \"contentEntriesContext\" to know that we're inside preview tab.\n */\n const renderedInPreviewTab = contentEntriesContext === null;\n\n let renderNewEntryModal = false;\n\n if (renderedInPreviewTab) {\n renderNewEntryModal = false;\n } else if (referenceMultipleModels) {\n renderNewEntryModal = false;\n } else if (contentEntriesContext) {\n renderNewEntryModal = !contentEntriesContext.insideDialog;\n }\n /**\n * Set \"helpText\" value.\n */\n let helpText;\n if (referenceMultipleModels) {\n helpText = <ReferenceMultipleModelsHelpText />;\n } else {\n helpText = <MissingEntryHelpText refModelId={refModelId} />;\n }\n\n return {\n renderNewEntryModal,\n refModelId,\n helpText\n };\n};\n"],"mappings":";;;;;;;;;AAAA;AAEA;AAGA;AAYO,IAAMA,cAAc,GAAG,SAAjBA,cAAc,OAAwD;EAAA,IAAlDC,KAAK,QAALA,KAAK;EAClC,IAAMC,MAAM,GAAG,CAACD,KAAK,CAACE,QAAQ,IAAIF,KAAK,CAACE,QAAQ,CAACD,MAAM,GAAGD,KAAK,CAACE,QAAQ,CAACD,MAAM,GAAG,IAAI,KAAK,EAAE;EAC7F,2CAAkCA,MAAM;IAAtBE,UAAU,cAAnBC,OAAO;EAChB,IAAMC,uBAAuB,GAAGJ,MAAM,CAACK,MAAM,GAAG,CAAC;EAEjD,IAAIC,qBAAqB,GAAG,IAAI;EAChC,IAAI;IACAA,qBAAqB,GAAG,IAAAC,oCAAiB,GAAE;EAC/C,CAAC,CAAC,gBAAM;IACJ;EAAA;;EAGJ;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,IAAMC,oBAAoB,GAAGF,qBAAqB,KAAK,IAAI;EAE3D,IAAIG,mBAAmB,GAAG,KAAK;EAE/B,IAAID,oBAAoB,EAAE;IACtBC,mBAAmB,GAAG,KAAK;EAC/B,CAAC,MAAM,IAAIL,uBAAuB,EAAE;IAChCK,mBAAmB,GAAG,KAAK;EAC/B,CAAC,MAAM,IAAIH,qBAAqB,EAAE;IAC9BG,mBAAmB,GAAG,CAACH,qBAAqB,CAACI,YAAY;EAC7D;EACA;AACJ;AACA;EACI,IAAIC,QAAQ;EACZ,IAAIP,uBAAuB,EAAE;IACzBO,QAAQ,gBAAG,6BAAC,qDAA+B,OAAG;EAClD,CAAC,MAAM;IACHA,QAAQ,gBAAG,6BAAC,6BAAoB;MAAC,UAAU,EAAET;IAAW,EAAG;EAC/D;EAEA,OAAO;IACHO,mBAAmB,EAAnBA,mBAAmB;IACnBP,UAAU,EAAVA,UAAU;IACVS,QAAQ,EAARA;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.useNewRefEntryDialog = exports.NewRefEntryDialogContextProvider = exports.NewRefEntryDialogContext = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var NewRefEntryDialogContext = /*#__PURE__*/(0, _react.createContext)({
17
12
  open: false,
18
13
  setOpen: function setOpen() {
@@ -20,15 +15,12 @@ var NewRefEntryDialogContext = /*#__PURE__*/(0, _react.createContext)({
20
15
  }
21
16
  });
22
17
  exports.NewRefEntryDialogContext = NewRefEntryDialogContext;
23
-
24
18
  var NewRefEntryDialogContextProvider = function NewRefEntryDialogContextProvider(_ref) {
25
19
  var children = _ref.children;
26
-
27
20
  var _useState = (0, _react.useState)(false),
28
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
29
- open = _useState2[0],
30
- setOpen = _useState2[1];
31
-
21
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
22
+ open = _useState2[0],
23
+ setOpen = _useState2[1];
32
24
  return /*#__PURE__*/_react.default.createElement(NewRefEntryDialogContext.Provider, {
33
25
  value: {
34
26
  open: open,
@@ -36,18 +28,14 @@ var NewRefEntryDialogContextProvider = function NewRefEntryDialogContextProvider
36
28
  }
37
29
  }, children);
38
30
  };
39
-
40
31
  exports.NewRefEntryDialogContextProvider = NewRefEntryDialogContextProvider;
41
-
42
32
  var useNewRefEntryDialog = function useNewRefEntryDialog() {
43
33
  var _useContext = (0, _react.useContext)(NewRefEntryDialogContext),
44
- open = _useContext.open,
45
- setOpen = _useContext.setOpen;
46
-
34
+ open = _useContext.open,
35
+ setOpen = _useContext.setOpen;
47
36
  return {
48
37
  open: open,
49
38
  setOpen: setOpen
50
39
  };
51
40
  };
52
-
53
41
  exports.useNewRefEntryDialog = useNewRefEntryDialog;
@@ -1 +1 @@
1
- {"version":3,"names":["NewRefEntryDialogContext","createContext","open","setOpen","NewRefEntryDialogContextProvider","children","useState","useNewRefEntryDialog","useContext"],"sources":["useNewRefEntryDialog.tsx"],"sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\n\nexport interface NewRefEntryDialogContextValue {\n open: boolean;\n setOpen: (value: boolean) => void;\n}\n\nexport const NewRefEntryDialogContext = createContext<NewRefEntryDialogContextValue>({\n open: false,\n setOpen: () => {\n return void 0;\n }\n});\n\nexport const NewRefEntryDialogContextProvider: React.FC = ({ children }) => {\n const [open, setOpen] = useState<boolean>(false);\n\n return (\n <NewRefEntryDialogContext.Provider\n value={{\n open,\n setOpen\n }}\n >\n {children}\n </NewRefEntryDialogContext.Provider>\n );\n};\n\nexport const useNewRefEntryDialog = (): NewRefEntryDialogContextValue => {\n const { open, setOpen } = useContext(NewRefEntryDialogContext);\n return {\n open,\n setOpen\n };\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAOO,IAAMA,wBAAwB,gBAAG,IAAAC,oBAAA,EAA6C;EACjFC,IAAI,EAAE,KAD2E;EAEjFC,OAAO,EAAE,mBAAM;IACX,OAAO,KAAK,CAAZ;EACH;AAJgF,CAA7C,CAAjC;;;AAOA,IAAMC,gCAA0C,GAAG,SAA7CA,gCAA6C,OAAkB;EAAA,IAAfC,QAAe,QAAfA,QAAe;;EACxE,gBAAwB,IAAAC,eAAA,EAAkB,KAAlB,CAAxB;EAAA;EAAA,IAAOJ,IAAP;EAAA,IAAaC,OAAb;;EAEA,oBACI,6BAAC,wBAAD,CAA0B,QAA1B;IACI,KAAK,EAAE;MACHD,IAAI,EAAJA,IADG;MAEHC,OAAO,EAAPA;IAFG;EADX,GAMKE,QANL,CADJ;AAUH,CAbM;;;;AAeA,IAAME,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAqC;EACrE,kBAA0B,IAAAC,iBAAA,EAAWR,wBAAX,CAA1B;EAAA,IAAQE,IAAR,eAAQA,IAAR;EAAA,IAAcC,OAAd,eAAcA,OAAd;;EACA,OAAO;IACHD,IAAI,EAAJA,IADG;IAEHC,OAAO,EAAPA;EAFG,CAAP;AAIH,CANM"}
1
+ {"version":3,"names":["NewRefEntryDialogContext","createContext","open","setOpen","NewRefEntryDialogContextProvider","children","useState","useNewRefEntryDialog","useContext"],"sources":["useNewRefEntryDialog.tsx"],"sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\n\nexport interface NewRefEntryDialogContextValue {\n open: boolean;\n setOpen: (value: boolean) => void;\n}\n\nexport const NewRefEntryDialogContext = createContext<NewRefEntryDialogContextValue>({\n open: false,\n setOpen: () => {\n return void 0;\n }\n});\n\nexport const NewRefEntryDialogContextProvider: React.FC = ({ children }) => {\n const [open, setOpen] = useState<boolean>(false);\n\n return (\n <NewRefEntryDialogContext.Provider\n value={{\n open,\n setOpen\n }}\n >\n {children}\n </NewRefEntryDialogContext.Provider>\n );\n};\n\nexport const useNewRefEntryDialog = (): NewRefEntryDialogContextValue => {\n const { open, setOpen } = useContext(NewRefEntryDialogContext);\n return {\n open,\n setOpen\n };\n};\n"],"mappings":";;;;;;;;;AAAA;AAOO,IAAMA,wBAAwB,gBAAG,IAAAC,oBAAa,EAAgC;EACjFC,IAAI,EAAE,KAAK;EACXC,OAAO,EAAE,mBAAM;IACX,OAAO,KAAK,CAAC;EACjB;AACJ,CAAC,CAAC;AAAC;AAEI,IAAMC,gCAA0C,GAAG,SAA7CA,gCAA0C,OAAqB;EAAA,IAAfC,QAAQ,QAARA,QAAQ;EACjE,gBAAwB,IAAAC,eAAQ,EAAU,KAAK,CAAC;IAAA;IAAzCJ,IAAI;IAAEC,OAAO;EAEpB,oBACI,6BAAC,wBAAwB,CAAC,QAAQ;IAC9B,KAAK,EAAE;MACHD,IAAI,EAAJA,IAAI;MACJC,OAAO,EAAPA;IACJ;EAAE,GAEDE,QAAQ,CACuB;AAE5C,CAAC;AAAC;AAEK,IAAME,oBAAoB,GAAG,SAAvBA,oBAAoB,GAAwC;EACrE,kBAA0B,IAAAC,iBAAU,EAACR,wBAAwB,CAAC;IAAtDE,IAAI,eAAJA,IAAI;IAAEC,OAAO,eAAPA,OAAO;EACrB,OAAO;IACHD,IAAI,EAAJA,IAAI;IACJC,OAAO,EAAPA;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -1,2 +1,2 @@
1
- declare const _default: import("../../../../types").CmsEditorFieldRendererPlugin[];
1
+ declare const _default: import("../../../../types").CmsModelFieldRendererPlugin[];
2
2
  export default _default;
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _refInput = _interopRequireDefault(require("./refInput"));
11
-
12
10
  var _refInputs = _interopRequireDefault(require("./refInputs"));
13
-
14
- var _default = [_refInput.default, _refInputs.default];
11
+ var _advanced = require("./advanced");
12
+ var _default = [].concat((0, _toConsumableArray2.default)((0, _advanced.createAdvancedRefRender)()), [_refInput.default, _refInputs.default]);
15
13
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["refInput","refInputs"],"sources":["index.ts"],"sourcesContent":["import refInput from \"./refInput\";\nimport refInputs from \"./refInputs\";\n\nexport default [refInput, refInputs];\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,CAACA,iBAAD,EAAWC,kBAAX,C"}
1
+ {"version":3,"names":["createAdvancedRefRender","refInput","refInputs"],"sources":["index.ts"],"sourcesContent":["import refInput from \"./refInput\";\nimport refInputs from \"./refInputs\";\nimport { createAdvancedRefRender } from \"~/admin/plugins/fieldRenderers/ref/advanced\";\n\nexport default [...createAdvancedRefRender(), refInput, refInputs];\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAAsF,0DAEnE,IAAAA,iCAAuB,GAAE,IAAEC,iBAAQ,EAAEC,kBAAS;AAAA"}
@@ -1,26 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _i18n = require("@webiny/app/i18n");
15
-
16
11
  var _ContentEntriesAutocomplete = _interopRequireDefault(require("./components/ContentEntriesAutocomplete"));
17
-
18
12
  var _useNewRefEntryDialog = require("./hooks/useNewRefEntryDialog");
19
-
20
13
  var _templateObject, _templateObject2;
21
-
22
14
  var t = _i18n.i18n.ns("app-headless-cms/admin/fields/ref");
23
-
24
15
  var plugin = {
25
16
  type: "cms-editor-field-renderer",
26
17
  name: "cms-editor-field-renderer-ref",
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","plugin","type","name","renderer","rendererName","description","canUse","field","multipleValues","render","props","Bind","getBind","bind"],"sources":["refInput.tsx"],"sourcesContent":["import React from \"react\";\nimport { CmsEditorFieldRendererPlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport ContentEntriesAutocomplete from \"./components/ContentEntriesAutocomplete\";\nimport { NewRefEntryDialogContextProvider } from \"./hooks/useNewRefEntryDialog\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst plugin: CmsEditorFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-ref\",\n renderer: {\n rendererName: \"ref-input\",\n name: t`Reference Input`,\n description: t`Renders an auto-complete input, allowing selection of a single value.`,\n canUse({ field }) {\n return field.type === \"ref\" && !field.multipleValues;\n },\n render(props) {\n const Bind = props.getBind();\n return (\n <Bind>\n {bind => (\n <NewRefEntryDialogContextProvider>\n <ContentEntriesAutocomplete {...props} bind={bind} />\n </NewRefEntryDialogContextProvider>\n )}\n </Bind>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,mCAAR,CAAV;;AAEA,IAAMC,MAAoC,GAAG;EACzCC,IAAI,EAAE,2BADmC;EAEzCC,IAAI,EAAE,+BAFmC;EAGzCC,QAAQ,EAAE;IACNC,YAAY,EAAE,WADR;IAENF,IAAI,EAAEL,CAAF,kGAFE;IAGNQ,WAAW,EAAER,CAAF,0JAHL;IAINS,MAJM,wBAIY;MAAA,IAATC,KAAS,QAATA,KAAS;MACd,OAAOA,KAAK,CAACN,IAAN,KAAe,KAAf,IAAwB,CAACM,KAAK,CAACC,cAAtC;IACH,CANK;IAONC,MAPM,kBAOCC,KAPD,EAOQ;MACV,IAAMC,IAAI,GAAGD,KAAK,CAACE,OAAN,EAAb;MACA,oBACI,6BAAC,IAAD,QACK,UAAAC,IAAI;QAAA,oBACD,6BAAC,sDAAD,qBACI,6BAAC,mCAAD,oBAAgCH,KAAhC;UAAuC,IAAI,EAAEG;QAA7C,GADJ,CADC;MAAA,CADT,CADJ;IASH;EAlBK;AAH+B,CAA7C;eAyBeb,M"}
1
+ {"version":3,"names":["t","i18n","ns","plugin","type","name","renderer","rendererName","description","canUse","field","multipleValues","render","props","Bind","getBind","bind"],"sources":["refInput.tsx"],"sourcesContent":["import React from \"react\";\nimport { CmsEditorFieldRendererPlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport ContentEntriesAutocomplete from \"./components/ContentEntriesAutocomplete\";\nimport { NewRefEntryDialogContextProvider } from \"./hooks/useNewRefEntryDialog\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst plugin: CmsEditorFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-ref\",\n renderer: {\n rendererName: \"ref-input\",\n name: t`Reference Input`,\n description: t`Renders an auto-complete input, allowing selection of a single value.`,\n canUse({ field }) {\n return field.type === \"ref\" && !field.multipleValues;\n },\n render(props) {\n const Bind = props.getBind();\n return (\n <Bind>\n {bind => (\n <NewRefEntryDialogContextProvider>\n <ContentEntriesAutocomplete {...props} bind={bind} />\n </NewRefEntryDialogContextProvider>\n )}\n </Bind>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AACA;AAAgF;AAEhF,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,mCAAmC,CAAC;AAEtD,IAAMC,MAAoC,GAAG;EACzCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,+BAA+B;EACrCC,QAAQ,EAAE;IACNC,YAAY,EAAE,WAAW;IACzBF,IAAI,EAAEL,CAAC,kGAAiB;IACxBQ,WAAW,EAAER,CAAC,0JAAuE;IACrFS,MAAM,wBAAY;MAAA,IAATC,KAAK,QAALA,KAAK;MACV,OAAOA,KAAK,CAACN,IAAI,KAAK,KAAK,IAAI,CAACM,KAAK,CAACC,cAAc;IACxD,CAAC;IACDC,MAAM,kBAACC,KAAK,EAAE;MACV,IAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,EAAE;MAC5B,oBACI,6BAAC,IAAI,QACA,UAAAC,IAAI;QAAA,oBACD,6BAAC,sDAAgC,qBAC7B,6BAAC,mCAA0B,oBAAKH,KAAK;UAAE,IAAI,EAAEG;QAAK,GAAG,CACtB;MAAA,CACtC,CACE;IAEf;EACJ;AACJ,CAAC;AAAC,eAEab,MAAM;AAAA"}