@webiny/app-headless-cms 0.0.0-unstable.496cf268ac → 0.0.0-unstable.606fc9c866

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 (153) hide show
  1. package/admin/components/ContentEntryForm/useRenderPlugins.d.ts +1 -2
  2. package/admin/components/Dialog.js +1 -1
  3. package/admin/components/Dialog.js.map +1 -1
  4. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +1 -1
  5. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  6. package/admin/components/IconPicker.js +16 -12
  7. package/admin/components/IconPicker.js.map +1 -1
  8. package/admin/hooks/index.d.ts +1 -0
  9. package/admin/hooks/index.js +12 -0
  10. package/admin/hooks/index.js.map +1 -1
  11. package/admin/hooks/useContentModels.d.ts +8 -0
  12. package/admin/hooks/useContentModels.js +9 -2
  13. package/admin/hooks/useContentModels.js.map +1 -1
  14. package/admin/menus/ContentGroupsMenuItems.js +1 -2
  15. package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
  16. package/admin/plugins/fieldRenderers/boolean/index.d.ts +1 -1
  17. package/admin/plugins/fieldRenderers/dateTime/index.d.ts +1 -1
  18. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +3 -3
  19. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
  20. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +4 -4
  21. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
  22. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +4 -4
  23. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
  24. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +2 -2
  25. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -1
  26. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +2 -2
  27. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
  28. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +2 -2
  29. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
  30. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
  31. package/admin/plugins/fieldRenderers/file/index.d.ts +1 -1
  32. package/admin/plugins/fieldRenderers/longText/index.d.ts +1 -1
  33. package/admin/plugins/fieldRenderers/number/index.d.ts +1 -1
  34. package/admin/plugins/fieldRenderers/object/index.d.ts +1 -1
  35. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
  36. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
  37. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.d.ts +2 -2
  38. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +5 -3
  39. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
  40. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.d.ts +2 -2
  41. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +1 -5
  42. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
  43. package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js +4 -3
  44. package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -1
  45. package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js +3 -3
  46. package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map +1 -1
  47. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.d.ts +2 -2
  48. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js +1 -1
  49. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -1
  50. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js +1 -1
  51. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -1
  52. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +1 -5
  53. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -1
  54. package/admin/plugins/fieldRenderers/ref/advanced/index.d.ts +1 -1
  55. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.d.ts +2 -2
  56. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +3 -3
  57. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
  58. package/admin/plugins/fieldRenderers/ref/index.d.ts +1 -1
  59. package/admin/plugins/fieldRenderers/richText/index.d.ts +1 -1
  60. package/admin/plugins/fieldRenderers/text/index.d.ts +1 -1
  61. package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +3 -3
  62. package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
  63. package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -2
  64. package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
  65. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +2 -2
  66. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
  67. package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +2 -2
  68. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
  69. package/admin/plugins/fields/dynamicZone.d.ts +2 -2
  70. package/admin/plugins/fields/dynamicZone.js +1 -1
  71. package/admin/plugins/fields/dynamicZone.js.map +1 -1
  72. package/admin/plugins/fields/object.js +3 -0
  73. package/admin/plugins/fields/object.js.map +1 -1
  74. package/admin/plugins/index.d.ts +2 -2
  75. package/admin/plugins/routes.js +2 -1
  76. package/admin/plugins/routes.js.map +1 -1
  77. package/admin/views/contentEntries/ContentEntries.js +8 -57
  78. package/admin/views/contentEntries/ContentEntries.js.map +1 -1
  79. package/admin/views/contentEntries/ContentEntriesContainer.d.ts +4 -0
  80. package/admin/views/contentEntries/ContentEntriesContainer.js +65 -0
  81. package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -0
  82. package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
  83. package/admin/views/contentEntries/ContentEntriesContext.js +4 -4
  84. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  85. package/admin/views/contentEntries/ContentEntriesList.js +2 -3
  86. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  87. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +1 -1
  88. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +4 -4
  89. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  90. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +2 -0
  91. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +36 -39
  92. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
  93. package/admin/views/contentEntries/hooks/index.d.ts +3 -0
  94. package/admin/views/contentEntries/hooks/index.js +38 -0
  95. package/admin/views/contentEntries/hooks/index.js.map +1 -0
  96. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
  97. package/admin/views/contentModels/ContentModelsDataList.js +3 -3
  98. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
  99. package/allPlugins.d.ts +2 -2
  100. package/package.json +20 -20
  101. package/types/index.d.ts +29 -14
  102. package/types/index.js.map +1 -1
  103. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +0 -7
  104. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js +0 -65
  105. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +0 -1
  106. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +0 -7
  107. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js +0 -67
  108. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +0 -1
  109. package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.d.ts +0 -2
  110. package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js +0 -26
  111. package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +0 -1
  112. package/admin/plugins/upgrades/5.19.0/createListModelsQuery.d.ts +0 -1
  113. package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js +0 -20
  114. package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +0 -1
  115. package/admin/plugins/upgrades/5.19.0/createRepublishMutation.d.ts +0 -2
  116. package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js +0 -23
  117. package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +0 -1
  118. package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.d.ts +0 -1
  119. package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js +0 -20
  120. package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +0 -1
  121. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +0 -7
  122. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +0 -137
  123. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +0 -1
  124. package/admin/plugins/upgrades/5.19.0/types.d.ts +0 -47
  125. package/admin/plugins/upgrades/5.19.0/types.js +0 -5
  126. package/admin/plugins/upgrades/5.19.0/types.js.map +0 -1
  127. package/admin/plugins/upgrades/5.33.0/locales.d.ts +0 -7
  128. package/admin/plugins/upgrades/5.33.0/locales.js +0 -65
  129. package/admin/plugins/upgrades/5.33.0/locales.js.map +0 -1
  130. package/admin/plugins/upgrades/5.33.0/types.d.ts +0 -7
  131. package/admin/plugins/upgrades/5.33.0/types.js +0 -5
  132. package/admin/plugins/upgrades/5.33.0/types.js.map +0 -1
  133. package/admin/plugins/upgrades/5.33.0/upgrade.d.ts +0 -8
  134. package/admin/plugins/upgrades/5.33.0/upgrade.js +0 -81
  135. package/admin/plugins/upgrades/5.33.0/upgrade.js.map +0 -1
  136. package/admin/plugins/upgrades/v5.0.0.d.ts +0 -5
  137. package/admin/plugins/upgrades/v5.0.0.js +0 -111
  138. package/admin/plugins/upgrades/v5.0.0.js.map +0 -1
  139. package/admin/plugins/upgrades/v5.19.0.d.ts +0 -5
  140. package/admin/plugins/upgrades/v5.19.0.js +0 -684
  141. package/admin/plugins/upgrades/v5.19.0.js.map +0 -1
  142. package/admin/plugins/upgrades/v5.33.0.d.ts +0 -6
  143. package/admin/plugins/upgrades/v5.33.0.js +0 -191
  144. package/admin/plugins/upgrades/v5.33.0.js.map +0 -1
  145. package/admin/plugins/upgrades/v5.5.0.d.ts +0 -5
  146. package/admin/plugins/upgrades/v5.5.0.js +0 -111
  147. package/admin/plugins/upgrades/v5.5.0.js.map +0 -1
  148. package/admin/plugins/upgrades/v5.8.0.d.ts +0 -5
  149. package/admin/plugins/upgrades/v5.8.0.js +0 -111
  150. package/admin/plugins/upgrades/v5.8.0.js.map +0 -1
  151. package/admin/views/contentEntries/experiment/Property.d.ts +0 -34
  152. package/admin/views/contentEntries/experiment/Property.js +0 -200
  153. package/admin/views/contentEntries/experiment/Property.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Container","styled","width","boxSizing","padding","Content","display","flex","flexDirection","position","minHeight","backgroundColor","border","overflowX","DialogContent","BaseDialogContent","isSelected","entryId","values","some","value","parseIdentifier","id","valueEntryId","ReferencesDialog","props","contentModel","onDialogClose","storeValues","initialValues","multiple","useSnackbar","showSnackbar","useState","setValues","onChange","useCallback","reference","referenceEntryId","newValues","filter","length","onDialogSave","useEntries","model","limit","entries","loading","error","runSearch","loadMore","useEffect","debouncedSearch","useRef","onInput","ev","String","target","trim","current","clearTimeout","setTimeout","entry"],"sources":["ReferencesDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { DialogHeader } from \"./dialog/DialogHeader\";\nimport { Search } from \"./Search\";\nimport { Entry } from \"./Entry\";\nimport { DialogActions, DialogContent as BaseDialogContent } from \"~/admin/components/Dialog\";\nimport { CmsEditorFieldRendererProps } from \"~/types\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { ButtonDefault, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Dialog } from \"./dialog/Dialog\";\nimport { AbsoluteLoader } from \"~/admin/plugins/fieldRenderers/ref/advanced/components/Loader\";\nimport { useEntries } from \"~/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries\";\nimport { Entries } from \"./Entries\";\n\nconst Container = styled(\"div\")({\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"20px\"\n});\n\nconst Content = styled(\"div\")({\n display: \"flex\",\n flex: \"1\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"100%\",\n minHeight: \"100px\",\n boxSizing: \"border-box\",\n padding: \"20px 0 20px 20px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n overflowX: \"hidden\"\n});\n\nconst DialogContent = styled(BaseDialogContent)({\n padding: \"0 !important\"\n});\n\nconst isSelected = (entryId: string, values: CmsReferenceValue[]) => {\n if (!entryId) {\n return false;\n }\n return values.some(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return entryId === valueEntryId;\n });\n};\n\ninterface Props extends CmsEditorFieldRendererProps {\n values?: CmsReferenceValue[] | null;\n onDialogClose: () => void;\n storeValues: (values: CmsReferenceValue[]) => void;\n multiple: boolean;\n}\n\nexport const ReferencesDialog: React.VFC<Props> = props => {\n const { contentModel, onDialogClose, storeValues, values: initialValues, multiple } = props;\n const { showSnackbar } = useSnackbar();\n\n const [values, setValues] = useState<CmsReferenceValue[]>(initialValues || []);\n\n /**\n * On change needs to handle the adding or removing of a reference.\n *\n * This is for both single and multiple reference fields.\n */\n const onChange = useCallback(\n (reference: CmsReferenceValue) => {\n const { id: referenceEntryId } = parseIdentifier(reference.id);\n /**\n * Let's handle the single usage first as it is quite simple.\n */\n if (!multiple) {\n const [value] = values;\n if (!value?.id) {\n setValues([reference]);\n return;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n if (referenceEntryId === valueEntryId) {\n setValues([]);\n return;\n }\n setValues([reference]);\n return;\n }\n\n const newValues = values.filter(value => {\n if (!value?.id) {\n return false;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n return referenceEntryId !== valueEntryId;\n });\n if (newValues.length === values.length) {\n setValues([...values, reference]);\n return;\n }\n setValues(newValues);\n },\n [setValues, values]\n );\n\n const onDialogSave = useCallback(() => {\n storeValues(values);\n onDialogClose();\n }, [values]);\n /**\n * Searching and list of reference entries.\n */\n const { entries, loading, error, runSearch, loadMore } = useEntries({\n model: contentModel,\n limit: 10\n });\n\n useEffect(() => {\n runSearch(\"\");\n }, []);\n\n useEffect(() => {\n if (!error) {\n return;\n }\n showSnackbar(error);\n }, [error]);\n\n const debouncedSearch = useRef<number | null>(null);\n\n const onInput = useCallback(ev => {\n const value = (String(ev.target.value) || \"\").trim();\n if (debouncedSearch.current) {\n clearTimeout(debouncedSearch.current);\n debouncedSearch.current = null;\n }\n /**\n * We can safely cast as setTimeout really produces a number.\n * There is an error while coding because Storm thinks this is NodeJS timeout.\n */\n debouncedSearch.current = setTimeout(() => {\n runSearch(value);\n }, 200) as unknown as number;\n }, []);\n\n return (\n <>\n <Dialog open={true} onClose={onDialogClose}>\n <DialogHeader model={contentModel} onClose={onDialogClose} />\n <DialogContent>\n <Container>\n <Search onInput={onInput} />\n <Content>\n {loading && <AbsoluteLoader />}\n <Entries entries={entries} loadMore={loadMore}>\n {entry => {\n return (\n <Entry\n model={contentModel}\n key={`reference-entry-${entry.id}`}\n entry={entry}\n selected={isSelected(entry.entryId, values)}\n onChange={onChange}\n />\n );\n }}\n </Entries>\n </Content>\n </Container>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={onDialogClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={onDialogSave}>Save</ButtonPrimary>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Container","styled","width","boxSizing","padding","Content","display","flex","flexDirection","position","minHeight","backgroundColor","border","overflowX","DialogContent","BaseDialogContent","isSelected","entryId","values","some","value","parseIdentifier","id","valueEntryId","ReferencesDialog","props","contentModel","onDialogClose","storeValues","initialValues","multiple","useSnackbar","showSnackbar","useState","setValues","onChange","useCallback","reference","referenceEntryId","newValues","filter","length","onDialogSave","useEntries","model","limit","entries","loading","error","runSearch","loadMore","useEffect","debouncedSearch","useRef","onInput","ev","String","target","trim","current","clearTimeout","setTimeout","entry"],"sources":["ReferencesDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { DialogHeader } from \"./dialog/DialogHeader\";\nimport { Search } from \"./Search\";\nimport { Entry } from \"./Entry\";\nimport { DialogActions, DialogContent as BaseDialogContent } from \"~/admin/components/Dialog\";\nimport { CmsModelFieldRendererProps } from \"~/types\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { ButtonDefault, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Dialog } from \"./dialog/Dialog\";\nimport { AbsoluteLoader } from \"~/admin/plugins/fieldRenderers/ref/advanced/components/Loader\";\nimport { useEntries } from \"~/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries\";\nimport { Entries } from \"./Entries\";\n\nconst Container = styled(\"div\")({\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"20px\"\n});\n\nconst Content = styled(\"div\")({\n display: \"flex\",\n flex: \"1\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"100%\",\n minHeight: \"20px\",\n boxSizing: \"border-box\",\n padding: \"20px 0 20px 20px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n overflowX: \"hidden\"\n});\n\nconst DialogContent = styled(BaseDialogContent)({\n padding: \"0 !important\"\n});\n\nconst isSelected = (entryId: string, values: CmsReferenceValue[]) => {\n if (!entryId) {\n return false;\n }\n return values.some(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return entryId === valueEntryId;\n });\n};\n\ninterface Props extends CmsModelFieldRendererProps {\n values?: CmsReferenceValue[] | null;\n onDialogClose: () => void;\n storeValues: (values: CmsReferenceValue[]) => void;\n multiple: boolean;\n}\n\nexport const ReferencesDialog: React.VFC<Props> = props => {\n const { contentModel, onDialogClose, storeValues, values: initialValues, multiple } = props;\n const { showSnackbar } = useSnackbar();\n\n const [values, setValues] = useState<CmsReferenceValue[]>(initialValues || []);\n\n /**\n * On change needs to handle the adding or removing of a reference.\n *\n * This is for both single and multiple reference fields.\n */\n const onChange = useCallback(\n (reference: CmsReferenceValue) => {\n const { id: referenceEntryId } = parseIdentifier(reference.id);\n /**\n * Let's handle the single usage first as it is quite simple.\n */\n if (!multiple) {\n const [value] = values;\n if (!value?.id) {\n setValues([reference]);\n return;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n if (referenceEntryId === valueEntryId) {\n setValues([]);\n return;\n }\n setValues([reference]);\n return;\n }\n\n const newValues = values.filter(value => {\n if (!value?.id) {\n return false;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n return referenceEntryId !== valueEntryId;\n });\n if (newValues.length === values.length) {\n setValues([...values, reference]);\n return;\n }\n setValues(newValues);\n },\n [setValues, values]\n );\n\n const onDialogSave = useCallback(() => {\n storeValues(values);\n onDialogClose();\n }, [values]);\n /**\n * Searching and list of reference entries.\n */\n const { entries, loading, error, runSearch, loadMore } = useEntries({\n model: contentModel,\n limit: 10\n });\n\n useEffect(() => {\n runSearch(\"\");\n }, []);\n\n useEffect(() => {\n if (!error) {\n return;\n }\n showSnackbar(error);\n }, [error]);\n\n const debouncedSearch = useRef<number | null>(null);\n\n const onInput = useCallback(ev => {\n const value = (String(ev.target.value) || \"\").trim();\n if (debouncedSearch.current) {\n clearTimeout(debouncedSearch.current);\n debouncedSearch.current = null;\n }\n /**\n * We can safely cast as setTimeout really produces a number.\n * There is an error while coding because Storm thinks this is NodeJS timeout.\n */\n debouncedSearch.current = setTimeout(() => {\n runSearch(value);\n }, 200) as unknown as number;\n }, []);\n\n return (\n <>\n <Dialog open={true} onClose={onDialogClose}>\n <DialogHeader model={contentModel} onClose={onDialogClose} />\n <DialogContent>\n <Container>\n <Search onInput={onInput} />\n <Content>\n {loading && <AbsoluteLoader />}\n <Entries entries={entries} loadMore={loadMore}>\n {entry => {\n return (\n <Entry\n model={contentModel}\n key={`reference-entry-${entry.id}`}\n entry={entry}\n selected={isSelected(entry.entryId, values)}\n onChange={onChange}\n />\n );\n }}\n </Entries>\n </Content>\n </Container>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={onDialogClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={onDialogSave}>Save</ButtonPrimary>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n"],"mappings":"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"}
@@ -28,7 +28,7 @@ var ModelsContainer = /*#__PURE__*/(0, _styled.default)(_Elevation.Elevation, {
28
28
  label: "ModelsContainer"
29
29
  })({
30
30
  position: "absolute",
31
- zIndex: 1,
31
+ zIndex: 2,
32
32
  top: "40px",
33
33
  left: 0,
34
34
  width: "215px",
@@ -1 +1 @@
1
- {"version":3,"names":["Container","styled","display","marginLeft","width","color","height","ModelsContainer","Elevation","position","zIndex","top","left","backgroundColor","flexDirection","OptionsModelList","models","onClick","length","map","model","modelId"],"sources":["OptionsModelList.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { CmsModel } from \"~/types\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { OptionsModelListItem } from \"./OptionsModelListItem\";\nimport { ReactComponent as DownIcon } from \"../assets/down-arrow.svg\";\n\nconst Container = styled(\"span\")({\n display: \"flex\",\n marginLeft: \"5px\",\n width: 32,\n \">svg\": {\n color: \"var(--mdc-theme-primary)\",\n width: \"24px\",\n height: \"24px\"\n }\n});\nconst ModelsContainer = styled(Elevation)({\n position: \"absolute\",\n zIndex: 1,\n top: \"40px\",\n left: 0,\n width: \"215px\",\n backgroundColor: \"#FFFFFF\",\n display: \"flex\",\n flexDirection: \"column\"\n});\n\ninterface Props {\n models: CmsModel[];\n onClick: (modelId: string) => void;\n}\nexport const OptionsModelList: React.VFC<Props> = ({ models, onClick }) => {\n if (models.length <= 1) {\n return null;\n }\n\n return (\n <>\n <Container>\n <DownIcon />\n </Container>\n <ModelsContainer z={1}>\n {models.map(model => {\n return (\n <OptionsModelListItem\n onClick={onClick}\n key={`model-${model.modelId}`}\n model={model}\n />\n );\n })}\n </ModelsContainer>\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAEA,IAAMA,SAAS,oBAAGC,eAAM,EAAC,MAAM;EAAA;EAAA;AAAA,GAAE;EAC7BC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,EAAE;EACT,MAAM,EAAE;IACJC,KAAK,EAAE,0BAA0B;IACjCD,KAAK,EAAE,MAAM;IACbE,MAAM,EAAE;EACZ;AACJ,CAAC,CAAC;AACF,IAAMC,eAAe,oBAAGN,eAAM,EAACO,oBAAS;EAAA;EAAA;AAAA,GAAE;EACtCC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,CAAC;EACTC,GAAG,EAAE,MAAM;EACXC,IAAI,EAAE,CAAC;EACPR,KAAK,EAAE,OAAO;EACdS,eAAe,EAAE,SAAS;EAC1BX,OAAO,EAAE,MAAM;EACfY,aAAa,EAAE;AACnB,CAAC,CAAC;AAMK,IAAMC,gBAAkC,GAAG,SAArCA,gBAAkC,OAA4B;EAAA,IAAtBC,MAAM,QAANA,MAAM;IAAEC,OAAO,QAAPA,OAAO;EAChE,IAAID,MAAM,CAACE,MAAM,IAAI,CAAC,EAAE;IACpB,OAAO,IAAI;EACf;EAEA,oBACI,yEACI,6BAAC,SAAS,qBACN,6BAAC,yBAAQ,OAAG,CACJ,eACZ,6BAAC,eAAe;IAAC,CAAC,EAAE;EAAE,GACjBF,MAAM,CAACG,GAAG,CAAC,UAAAC,KAAK,EAAI;IACjB,oBACI,6BAAC,0CAAoB;MACjB,OAAO,EAAEH,OAAQ;MACjB,GAAG,kBAAWG,KAAK,CAACC,OAAO,CAAG;MAC9B,KAAK,EAAED;IAAM,EACf;EAEV,CAAC,CAAC,CACY,CACnB;AAEX,CAAC;AAAC"}
1
+ {"version":3,"names":["Container","styled","display","marginLeft","width","color","height","ModelsContainer","Elevation","position","zIndex","top","left","backgroundColor","flexDirection","OptionsModelList","models","onClick","length","map","model","modelId"],"sources":["OptionsModelList.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { CmsModel } from \"~/types\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { OptionsModelListItem } from \"./OptionsModelListItem\";\nimport { ReactComponent as DownIcon } from \"../assets/down-arrow.svg\";\n\nconst Container = styled(\"span\")({\n display: \"flex\",\n marginLeft: \"5px\",\n width: 32,\n \">svg\": {\n color: \"var(--mdc-theme-primary)\",\n width: \"24px\",\n height: \"24px\"\n }\n});\nconst ModelsContainer = styled(Elevation)({\n position: \"absolute\",\n zIndex: 2,\n top: \"40px\",\n left: 0,\n width: \"215px\",\n backgroundColor: \"#FFFFFF\",\n display: \"flex\",\n flexDirection: \"column\"\n});\n\ninterface Props {\n models: CmsModel[];\n onClick: (modelId: string) => void;\n}\nexport const OptionsModelList: React.VFC<Props> = ({ models, onClick }) => {\n if (models.length <= 1) {\n return null;\n }\n\n return (\n <>\n <Container>\n <DownIcon />\n </Container>\n <ModelsContainer z={1}>\n {models.map(model => {\n return (\n <OptionsModelListItem\n onClick={onClick}\n key={`model-${model.modelId}`}\n model={model}\n />\n );\n })}\n </ModelsContainer>\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAEA,IAAMA,SAAS,oBAAGC,eAAM,EAAC,MAAM;EAAA;EAAA;AAAA,GAAE;EAC7BC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,EAAE;EACT,MAAM,EAAE;IACJC,KAAK,EAAE,0BAA0B;IACjCD,KAAK,EAAE,MAAM;IACbE,MAAM,EAAE;EACZ;AACJ,CAAC,CAAC;AACF,IAAMC,eAAe,oBAAGN,eAAM,EAACO,oBAAS;EAAA;EAAA;AAAA,GAAE;EACtCC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,CAAC;EACTC,GAAG,EAAE,MAAM;EACXC,IAAI,EAAE,CAAC;EACPR,KAAK,EAAE,OAAO;EACdS,eAAe,EAAE,SAAS;EAC1BX,OAAO,EAAE,MAAM;EACfY,aAAa,EAAE;AACnB,CAAC,CAAC;AAMK,IAAMC,gBAAkC,GAAG,SAArCA,gBAAkC,OAA4B;EAAA,IAAtBC,MAAM,QAANA,MAAM;IAAEC,OAAO,QAAPA,OAAO;EAChE,IAAID,MAAM,CAACE,MAAM,IAAI,CAAC,EAAE;IACpB,OAAO,IAAI;EACf;EAEA,oBACI,yEACI,6BAAC,SAAS,qBACN,6BAAC,yBAAQ,OAAG,CACJ,eACZ,6BAAC,eAAe;IAAC,CAAC,EAAE;EAAE,GACjBF,MAAM,CAACG,GAAG,CAAC,UAAAC,KAAK,EAAI;IACjB,oBACI,6BAAC,0CAAoB;MACjB,OAAO,EAAEH,OAAQ;MACjB,GAAG,kBAAWG,KAAK,CAACC,OAAO,CAAG;MAC9B,KAAK,EAAED;IAAM,EACf;EAEV,CAAC,CAAC,CACY,CACnB;AAEX,CAAC;AAAC"}
@@ -7,15 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.createSearchQuery = exports.LIST_LATEST_CONTENT_ENTRIES = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
10
- var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
11
- var _pluralize = _interopRequireDefault(require("pluralize"));
12
10
  var _templateObject, _templateObject2;
13
11
  var fields = "\n data {\n id\n entryId\n title\n description\n image\n status\n createdOn\n savedOn\n model {\n name\n modelId\n }\n createdBy {\n id\n displayName\n type\n }\n modifiedBy {\n id\n displayName\n type\n }\n published {\n id\n }\n }\n error {\n message\n code\n data\n }\n";
14
12
  var LIST_LATEST_CONTENT_ENTRIES = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query CmsListLatestContentEntries($entries: [CmsModelEntryInput!]!) {\n entries: getLatestContentEntries(entries: $entries) {\n ", "\n }\n }\n"])), fields);
15
13
  exports.LIST_LATEST_CONTENT_ENTRIES = LIST_LATEST_CONTENT_ENTRIES;
16
14
  var createSearchQuery = function createSearchQuery(model) {
17
- var ucFirstPluralizedModelId = (0, _upperFirst.default)((0, _pluralize.default)(model.modelId));
18
- var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
19
- return (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query Search", "($where: ", "ListWhereInput, $sort: [", "ListSorter], $limit: Int, $after: String) {\n content: list", "(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }"])), ucFirstPluralizedModelId, ucFirstModelId, ucFirstModelId, ucFirstPluralizedModelId);
15
+ return (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query Search", "($where: ", "ListWhereInput, $sort: [", "ListSorter], $limit: Int, $after: String) {\n content: list", "(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }"])), model.pluralApiName, model.singularApiName, model.singularApiName, model.pluralApiName);
20
16
  };
21
17
  exports.createSearchQuery = createSearchQuery;
@@ -1 +1 @@
1
- {"version":3,"names":["fields","LIST_LATEST_CONTENT_ENTRIES","gql","createSearchQuery","model","ucFirstPluralizedModelId","upperFirst","pluralize","modelId","ucFirstModelId"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport {\n CmsContentEntryStatusType,\n CmsIdentity,\n CmsErrorResponse,\n CmsMetaResponse,\n CmsModel\n} from \"~/types\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { CmsEntryGetEntryVariable } from \"~/admin/plugins/fieldRenderers/ref/components/graphql\";\nimport upperFirst from \"lodash/upperFirst\";\nimport pluralize from \"pluralize\";\n\nconst fields = `\n data {\n id\n entryId\n title\n description\n image\n status\n createdOn\n savedOn\n model {\n name\n modelId\n }\n createdBy {\n id\n displayName\n type\n }\n modifiedBy {\n id\n displayName\n type\n }\n published {\n id\n }\n }\n error {\n message\n code\n data\n }\n`;\n\nexport interface ListLatestCmsEntriesResponse {\n entries: {\n data: CmsReferenceContentEntry[];\n error: CmsErrorResponse | null;\n };\n}\n\nexport interface ListLatestCmsEntriesVariables {\n entries: CmsEntryGetEntryVariable[];\n}\n\nexport const LIST_LATEST_CONTENT_ENTRIES = gql`\n query CmsListLatestContentEntries($entries: [CmsModelEntryInput!]!) {\n entries: getLatestContentEntries(entries: $entries) {\n ${fields}\n }\n }\n`;\n\nexport interface SearchQueryResponseEntry {\n id: string;\n entryId: string;\n savedOn: Date;\n createdOn: Date;\n createdBy: CmsIdentity;\n ownedBy: CmsIdentity;\n modifiedBy: CmsIdentity;\n meta: {\n title: string;\n description?: string;\n image?: string;\n status: CmsContentEntryStatusType;\n };\n}\n\nexport interface SearchQueryResponse {\n content: {\n data: SearchQueryResponseEntry[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\n\nexport interface SearchQueryVariables {\n where?: {\n [key: string]: any;\n };\n sort?: string[];\n limit?: number;\n after?: string;\n}\n\nexport const createSearchQuery = (model: CmsModel) => {\n const ucFirstPluralizedModelId = upperFirst(pluralize(model.modelId));\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n query Search${ucFirstPluralizedModelId}($where: ${ucFirstModelId}ListWhereInput, $sort: [${ucFirstModelId}ListSorter], $limit: Int, $after: String) {\n content: list${ucFirstPluralizedModelId}(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }`;\n};\n"],"mappings":";;;;;;;;AAAA;AAUA;AACA;AAAkC;AAElC,IAAMA,MAAM,ygBAiCX;AAaM,IAAMC,2BAA2B,OAAGC,mBAAG,qQAGhCF,MAAM,CAGnB;AAAC;AAmCK,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,KAAe,EAAK;EAClD,IAAMC,wBAAwB,GAAG,IAAAC,mBAAU,EAAC,IAAAC,kBAAS,EAACH,KAAK,CAACI,OAAO,CAAC,CAAC;EACrE,IAAMC,cAAc,GAAG,IAAAH,mBAAU,EAACF,KAAK,CAACI,OAAO,CAAC;EAEhD,WAAON,mBAAG,8vCACQG,wBAAwB,EAAYI,cAAc,EAA2BA,cAAc,EACtFJ,wBAAwB;AA6CnD,CAAC;AAAC"}
1
+ {"version":3,"names":["fields","LIST_LATEST_CONTENT_ENTRIES","gql","createSearchQuery","model","pluralApiName","singularApiName"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport {\n CmsContentEntryStatusType,\n CmsIdentity,\n CmsErrorResponse,\n CmsMetaResponse,\n CmsModel\n} from \"~/types\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { CmsEntryGetEntryVariable } from \"~/admin/plugins/fieldRenderers/ref/components/graphql\";\n\nconst fields = `\n data {\n id\n entryId\n title\n description\n image\n status\n createdOn\n savedOn\n model {\n name\n modelId\n }\n createdBy {\n id\n displayName\n type\n }\n modifiedBy {\n id\n displayName\n type\n }\n published {\n id\n }\n }\n error {\n message\n code\n data\n }\n`;\n\nexport interface ListLatestCmsEntriesResponse {\n entries: {\n data: CmsReferenceContentEntry[];\n error: CmsErrorResponse | null;\n };\n}\n\nexport interface ListLatestCmsEntriesVariables {\n entries: CmsEntryGetEntryVariable[];\n}\n\nexport const LIST_LATEST_CONTENT_ENTRIES = gql`\n query CmsListLatestContentEntries($entries: [CmsModelEntryInput!]!) {\n entries: getLatestContentEntries(entries: $entries) {\n ${fields}\n }\n }\n`;\n\nexport interface SearchQueryResponseEntry {\n id: string;\n entryId: string;\n savedOn: Date;\n createdOn: Date;\n createdBy: CmsIdentity;\n ownedBy: CmsIdentity;\n modifiedBy: CmsIdentity;\n meta: {\n title: string;\n description?: string;\n image?: string;\n status: CmsContentEntryStatusType;\n };\n}\n\nexport interface SearchQueryResponse {\n content: {\n data: SearchQueryResponseEntry[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\n\nexport interface SearchQueryVariables {\n where?: {\n [key: string]: any;\n };\n sort?: string[];\n limit?: number;\n after?: string;\n}\n\nexport const createSearchQuery = (model: CmsModel) => {\n return gql`\n query Search${model.pluralApiName}($where: ${model.singularApiName}ListWhereInput, $sort: [${model.singularApiName}ListSorter], $limit: Int, $after: String) {\n content: list${model.pluralApiName}(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }`;\n};\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAW9B,IAAMA,MAAM,ygBAiCX;AAaM,IAAMC,2BAA2B,OAAGC,mBAAG,qQAGhCF,MAAM,CAGnB;AAAC;AAmCK,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,KAAe,EAAK;EAClD,WAAOF,mBAAG,8vCACQE,KAAK,CAACC,aAAa,EAAYD,KAAK,CAACE,eAAe,EAA2BF,KAAK,CAACE,eAAe,EAC/FF,KAAK,CAACC,aAAa;AA6C9C,CAAC;AAAC"}
@@ -1 +1 @@
1
- export declare const createAdvancedRefRender: () => import("../../../../../types").CmsEditorFieldRendererPlugin[];
1
+ export declare const createAdvancedRefRender: () => import("../../../../../types").CmsModelFieldRendererPlugin[];
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
- import { CmsEditorContentEntry } from "../../../../../types";
2
+ import { CmsContentEntry } from "../../../../../types";
3
3
  export declare const NewEntryButton: () => JSX.Element;
4
4
  interface NewRefEntryProps {
5
5
  modelId: string;
6
6
  children: React.ReactElement;
7
- onChange: (entry: CmsEditorContentEntry) => void;
7
+ onChange: (entry: CmsContentEntry) => void;
8
8
  }
9
9
  declare const NewRefEntryFormDialog: React.FC<NewRefEntryProps>;
10
10
  export default NewRefEntryFormDialog;
@@ -40,7 +40,7 @@ var EntryForm = function EntryForm(_ref) {
40
40
  }, /*#__PURE__*/_react.default.createElement(_ContentEntryForm.ContentEntryForm, {
41
41
  onSubmit: function onSubmit(data) {
42
42
  /**
43
- * We know that data is CmsEditorContentEntry.
43
+ * We know that data is CmsContentEntry.
44
44
  */
45
45
  return onCreate(data);
46
46
  },
@@ -125,11 +125,11 @@ var NewRefEntryFormDialog = function NewRefEntryFormDialog(_ref2) {
125
125
  if (!contentModel) {
126
126
  return children;
127
127
  }
128
- return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.Provider, {
128
+ return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.ContentEntriesProvider, {
129
129
  contentModel: contentModel,
130
130
  key: contentModel.modelId,
131
131
  insideDialog: true
132
- }, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.Provider, {
132
+ }, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.ContentEntryProvider, {
133
133
  isNewEntry: function isNewEntry() {
134
134
  return true;
135
135
  },
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","dialogContentStyles","css","dialogContainerStyles","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","current","submit","DefaultButton","styled","ButtonDefault","NewEntryButton","useNewRefEntryDialog","setOpen","NewRefEntryFormDialog","modelId","children","onChange","useState","undefined","setContentModel","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","contentModelData","get","open","hideDialog","useCallback","entry","published","modelName","name"],"sources":["NewRefEntryFormDialog.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Dialog, DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { Provider as ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { Provider as ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { ContentEntryForm } from \"~/admin/components/ContentEntryForm/ContentEntryForm\";\nimport { useQuery } from \"~/admin/hooks\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { useNewRefEntryDialog } from \"../hooks/useNewRefEntryDialog\";\nimport { CmsEditorContentEntry, CmsModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst dialogContentStyles = css`\n width: 786px;\n`;\n\nconst dialogContainerStyles = css`\n /*\n* By default, a Dialog component has the \"z-index\" value of 20.\n* As we are rendering the content entry form in a \"Dialog\", the File Manager view triggered by a \"file\" field\n* will render below the source form, rendering it useless for the user.\n*\n* To fix that issue, we're setting the \"z-index\" CSS property for this particular Dialog to less than 18,\n* which is the \"z-index\" value assigned to File Manager view, so that it will render below the File Manager view as expected.\n*/\n\n &.mdc-dialog {\n z-index: 17;\n }\n`;\n\ninterface EntryFormProps {\n onCreate: (entry: CmsEditorContentEntry) => void;\n}\nconst EntryForm: React.FC<EntryFormProps> = ({ onCreate }) => {\n const { setFormRef, contentModel } = useContentEntry();\n\n return (\n <ModelProvider model={contentModel}>\n <ContentEntryForm\n onSubmit={data => {\n /**\n * We know that data is CmsEditorContentEntry.\n */\n return onCreate(data as unknown as CmsEditorContentEntry);\n }}\n onForm={form => setFormRef(form)}\n entry={{}}\n addEntryToListCache={false}\n />\n </ModelProvider>\n );\n};\n\nconst DialogSaveButton: React.FC = () => {\n const { form } = useContentEntry();\n\n return <ButtonPrimary onClick={form.current.submit}>{t`Create Entry`}</ButtonPrimary>;\n};\n\nconst DefaultButton = styled(ButtonDefault)`\n margin-left: 32px;\n`;\n\nexport const NewEntryButton = () => {\n const { setOpen } = useNewRefEntryDialog();\n return (\n <DefaultButton small={true} onClick={() => setOpen(true)}>\n <ButtonIcon icon={<AddIcon />} />\n {t`New Entry`}\n </DefaultButton>\n );\n};\n\ninterface NewRefEntryProps {\n modelId: string;\n children: React.ReactElement;\n onChange: (entry: CmsEditorContentEntry) => void;\n}\n\nconst NewRefEntryFormDialog: React.FC<NewRefEntryProps> = ({ modelId, children, onChange }) => {\n const [contentModel, setContentModel] = useState<CmsModel | undefined>(undefined);\n\n const { showSnackbar } = useSnackbar();\n\n useQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>(GET_CONTENT_MODEL, {\n skip: !modelId,\n variables: { modelId },\n onCompleted: data => {\n const contentModelData = get(data, \"getContentModel.data\") as unknown as CmsModel;\n if (contentModelData) {\n setContentModel(contentModelData);\n return;\n }\n\n showSnackbar(\n t`Could not load content for model \"{modelId}\". Redirecting...`({\n modelId\n })\n );\n }\n });\n\n const { open, setOpen } = useNewRefEntryDialog();\n const hideDialog = useCallback(() => setOpen(false), []);\n\n const onCreate = useCallback(\n (entry: CmsEditorContentEntry) => {\n if (!contentModel) {\n setOpen(false);\n return;\n }\n onChange({\n ...entry,\n /*\n * Format data for AutoComplete.\n */\n published: get(entry, \"meta.status\") === \"published\",\n modelId: contentModel.modelId,\n modelName: contentModel.name\n });\n setOpen(false);\n },\n [onChange, contentModel]\n );\n\n if (!contentModel) {\n return children;\n }\n\n return (\n <ContentEntriesProvider\n contentModel={contentModel}\n key={contentModel.modelId}\n insideDialog={true}\n >\n <ContentEntryProvider isNewEntry={() => true} getContentId={() => null}>\n <Dialog open={open} onClose={hideDialog} className={dialogContainerStyles}>\n <DialogTitle>\n {t`New {modelName} Entry`({ modelName: contentModel.name })}\n </DialogTitle>\n <DialogContent className={dialogContentStyles}>\n <EntryForm onCreate={onCreate} />\n </DialogContent>\n <DialogActions>\n <DialogCancel>{t`Cancel`}</DialogCancel>\n <DialogSaveButton />\n </DialogActions>\n </Dialog>\n {children}\n </ContentEntryProvider>\n </ContentEntriesProvider>\n );\n};\n\nexport default NewRefEntryFormDialog;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","dialogContentStyles","css","dialogContainerStyles","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","current","submit","DefaultButton","styled","ButtonDefault","NewEntryButton","useNewRefEntryDialog","setOpen","NewRefEntryFormDialog","modelId","children","onChange","useState","undefined","setContentModel","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","contentModelData","get","open","hideDialog","useCallback","entry","published","modelName","name"],"sources":["NewRefEntryFormDialog.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Dialog, DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { ContentEntryForm } from \"~/admin/components/ContentEntryForm/ContentEntryForm\";\nimport { useQuery } from \"~/admin/hooks\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { useNewRefEntryDialog } from \"../hooks/useNewRefEntryDialog\";\nimport { CmsContentEntry, CmsModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst dialogContentStyles = css`\n width: 786px;\n`;\n\nconst dialogContainerStyles = css`\n /*\n* By default, a Dialog component has the \"z-index\" value of 20.\n* As we are rendering the content entry form in a \"Dialog\", the File Manager view triggered by a \"file\" field\n* will render below the source form, rendering it useless for the user.\n*\n* To fix that issue, we're setting the \"z-index\" CSS property for this particular Dialog to less than 18,\n* which is the \"z-index\" value assigned to File Manager view, so that it will render below the File Manager view as expected.\n*/\n\n &.mdc-dialog {\n z-index: 17;\n }\n`;\n\ninterface EntryFormProps {\n onCreate: (entry: CmsContentEntry) => void;\n}\nconst EntryForm: React.FC<EntryFormProps> = ({ onCreate }) => {\n const { setFormRef, contentModel } = useContentEntry();\n\n return (\n <ModelProvider model={contentModel}>\n <ContentEntryForm\n onSubmit={data => {\n /**\n * We know that data is CmsContentEntry.\n */\n return onCreate(data as unknown as CmsContentEntry);\n }}\n onForm={form => setFormRef(form)}\n entry={{}}\n addEntryToListCache={false}\n />\n </ModelProvider>\n );\n};\n\nconst DialogSaveButton: React.FC = () => {\n const { form } = useContentEntry();\n\n return <ButtonPrimary onClick={form.current.submit}>{t`Create Entry`}</ButtonPrimary>;\n};\n\nconst DefaultButton = styled(ButtonDefault)`\n margin-left: 32px;\n`;\n\nexport const NewEntryButton = () => {\n const { setOpen } = useNewRefEntryDialog();\n return (\n <DefaultButton small={true} onClick={() => setOpen(true)}>\n <ButtonIcon icon={<AddIcon />} />\n {t`New Entry`}\n </DefaultButton>\n );\n};\n\ninterface NewRefEntryProps {\n modelId: string;\n children: React.ReactElement;\n onChange: (entry: CmsContentEntry) => void;\n}\n\nconst NewRefEntryFormDialog: React.FC<NewRefEntryProps> = ({ modelId, children, onChange }) => {\n const [contentModel, setContentModel] = useState<CmsModel | undefined>(undefined);\n\n const { showSnackbar } = useSnackbar();\n\n useQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>(GET_CONTENT_MODEL, {\n skip: !modelId,\n variables: { modelId },\n onCompleted: data => {\n const contentModelData = get(data, \"getContentModel.data\") as unknown as CmsModel;\n if (contentModelData) {\n setContentModel(contentModelData);\n return;\n }\n\n showSnackbar(\n t`Could not load content for model \"{modelId}\". Redirecting...`({\n modelId\n })\n );\n }\n });\n\n const { open, setOpen } = useNewRefEntryDialog();\n const hideDialog = useCallback(() => setOpen(false), []);\n\n const onCreate = useCallback(\n (entry: CmsContentEntry) => {\n if (!contentModel) {\n setOpen(false);\n return;\n }\n onChange({\n ...entry,\n /*\n * Format data for AutoComplete.\n */\n published: get(entry, \"meta.status\") === \"published\",\n modelId: contentModel.modelId,\n modelName: contentModel.name\n });\n setOpen(false);\n },\n [onChange, contentModel]\n );\n\n if (!contentModel) {\n return children;\n }\n\n return (\n <ContentEntriesProvider\n contentModel={contentModel}\n key={contentModel.modelId}\n insideDialog={true}\n >\n <ContentEntryProvider isNewEntry={() => true} getContentId={() => null}>\n <Dialog open={open} onClose={hideDialog} className={dialogContainerStyles}>\n <DialogTitle>\n {t`New {modelName} Entry`({ modelName: contentModel.name })}\n </DialogTitle>\n <DialogContent className={dialogContentStyles}>\n <EntryForm onCreate={onCreate} />\n </DialogContent>\n <DialogActions>\n <DialogCancel>{t`Cancel`}</DialogCancel>\n <DialogSaveButton />\n </DialogActions>\n </Dialog>\n {children}\n </ContentEntryProvider>\n </ContentEntriesProvider>\n );\n};\n\nexport default NewRefEntryFormDialog;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- declare const _default: import("../../../../types").CmsEditorFieldRendererPlugin[];
1
+ declare const _default: import("../../../../types").CmsModelFieldRendererPlugin[];
2
2
  export default _default;
@@ -1,2 +1,2 @@
1
- declare const _default: import("../../../../types").CmsEditorFieldRendererPlugin[];
1
+ declare const _default: import("../../../../types").CmsModelFieldRendererPlugin[];
2
2
  export default _default;
@@ -1,2 +1,2 @@
1
- declare const _default: import("../../../../types").CmsEditorFieldRendererPlugin[];
1
+ declare const _default: import("../../../../types").CmsModelFieldRendererPlugin[];
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { CmsDynamicZoneTemplate } from "../../../../types";
3
3
  interface AddTemplateProps {
4
4
  onTemplate: UseAddTemplateParams["onTemplate"];
@@ -6,6 +6,6 @@ interface AddTemplateProps {
6
6
  interface UseAddTemplateParams {
7
7
  onTemplate: (template: CmsDynamicZoneTemplate) => void;
8
8
  }
9
- export declare const AddTemplateButton: (props: AddTemplateProps) => JSX.Element;
10
- export declare const AddTemplateIcon: (props: AddTemplateProps) => JSX.Element;
9
+ export declare const AddTemplateButton: React.VFC<AddTemplateProps>;
10
+ export declare const AddTemplateIcon: React.VFC<AddTemplateProps>;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["AddTemplateButtonContainer","styled","Elevation","AddTemplateIconContainer","Info","useAddTemplate","params","useState","showTemplateDialog","setShowTemplateDialog","addTemplate","onTemplate","template","onDialogClose","AddTemplateButton","props","AddTemplateIcon"],"sources":["AddTemplate.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { ButtonSecondary, IconButton } from \"@webiny/ui/Button\";\nimport { TemplateDialog } from \"./TemplateDialog\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as InfoIcon } from \"@material-design-icons/svg/outlined/info.svg\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/round/add_circle_outline.svg\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\n\nconst AddTemplateButtonContainer = styled(Elevation)`\n padding: 25px 0 20px;\n text-align: center;\n`;\n\n/**\n * This hacking is needed to position the button exactly in the middle of available area and not stretch the parent element.\n */\nconst AddTemplateIconContainer = styled.div`\n text-align: center;\n height: 36px;\n > button {\n margin-left: -24px;\n position: absolute;\n }\n`;\n\nconst Info = styled.div`\n margin-top: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n > svg {\n width: 20px;\n margin-right: 5px;\n }\n`;\n\ninterface AddTemplateProps {\n onTemplate: UseAddTemplateParams[\"onTemplate\"];\n}\n\ninterface UseAddTemplateParams {\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nfunction useAddTemplate(params: UseAddTemplateParams) {\n const [showTemplateDialog, setShowTemplateDialog] = useState(false);\n\n const addTemplate = () => {\n setShowTemplateDialog(true);\n };\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n params.onTemplate(template);\n };\n\n const onDialogClose = () => {\n setShowTemplateDialog(false);\n };\n\n return {\n addTemplate,\n onTemplate,\n onDialogClose,\n showTemplateDialog\n };\n}\n\nexport const AddTemplateButton = (props: AddTemplateProps) => {\n const { addTemplate, onTemplate, showTemplateDialog, onDialogClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddTemplateButtonContainer z={2}>\n {showTemplateDialog ? (\n <TemplateDialog onTemplate={onTemplate} onClose={onDialogClose} />\n ) : null}\n <ButtonSecondary onClick={addTemplate}>+ Add a template</ButtonSecondary>\n <Info>\n <InfoIcon />\n <Typography use={\"caption\"}>\n Click here to learn how templates and dynamic zones work\n </Typography>\n </Info>\n </AddTemplateButtonContainer>\n );\n};\n\nexport const AddTemplateIcon = (props: AddTemplateProps) => {\n const { addTemplate, onTemplate, showTemplateDialog, onDialogClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddTemplateIconContainer>\n {showTemplateDialog ? (\n <TemplateDialog onTemplate={onTemplate} onClose={onDialogClose} />\n ) : null}\n <IconButton onClick={addTemplate} icon={<AddIcon />} />\n </AddTemplateIconContainer>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,0BAA0B,oBAAGC,eAAM,EAACC,oBAAS;EAAA;EAAA;AAAA,4CAGlD;;AAED;AACA;AACA;AACA,IAAMC,wBAAwB,oBAAGF,eAAM;EAAA;EAAA;AAAA,kFAOtC;AAED,IAAMG,IAAI,oBAAGH,eAAM;EAAA;EAAA;AAAA,+GASlB;AAUD,SAASI,cAAc,CAACC,MAA4B,EAAE;EAClD,gBAAoD,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAA;IAA5DC,kBAAkB;IAAEC,qBAAqB;EAEhD,IAAMC,WAAW,GAAG,SAAdA,WAAW,GAAS;IACtBD,qBAAqB,CAAC,IAAI,CAAC;EAC/B,CAAC;EAED,IAAME,UAAU,GAAG,SAAbA,UAAU,CAAIC,QAAgC,EAAK;IACrDN,MAAM,CAACK,UAAU,CAACC,QAAQ,CAAC;EAC/B,CAAC;EAED,IAAMC,aAAa,GAAG,SAAhBA,aAAa,GAAS;IACxBJ,qBAAqB,CAAC,KAAK,CAAC;EAChC,CAAC;EAED,OAAO;IACHC,WAAW,EAAXA,WAAW;IACXC,UAAU,EAAVA,UAAU;IACVE,aAAa,EAAbA,aAAa;IACbL,kBAAkB,EAAlBA;EACJ,CAAC;AACL;AAEO,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,KAAuB,EAAK;EAC1D,sBAAuEV,cAAc,CAAC;MAClFM,UAAU,EAAEI,KAAK,CAACJ;IACtB,CAAC,CAAC;IAFMD,WAAW,mBAAXA,WAAW;IAAEC,UAAU,mBAAVA,UAAU;IAAEH,kBAAkB,mBAAlBA,kBAAkB;IAAEK,aAAa,mBAAbA,aAAa;EAIlE,oBACI,6BAAC,0BAA0B;IAAC,CAAC,EAAE;EAAE,GAC5BL,kBAAkB,gBACf,6BAAC,8BAAc;IAAC,UAAU,EAAEG,UAAW;IAAC,OAAO,EAAEE;EAAc,EAAG,GAClE,IAAI,eACR,6BAAC,uBAAe;IAAC,OAAO,EAAEH;EAAY,GAAC,kBAAgB,CAAkB,eACzE,6BAAC,IAAI,qBACD,6BAAC,oBAAQ,OAAG,eACZ,6BAAC,sBAAU;IAAC,GAAG,EAAE;EAAU,GAAC,0DAE5B,CAAa,CACV,CACkB;AAErC,CAAC;AAAC;AAEK,IAAMM,eAAe,GAAG,SAAlBA,eAAe,CAAID,KAAuB,EAAK;EACxD,uBAAuEV,cAAc,CAAC;MAClFM,UAAU,EAAEI,KAAK,CAACJ;IACtB,CAAC,CAAC;IAFMD,WAAW,oBAAXA,WAAW;IAAEC,UAAU,oBAAVA,UAAU;IAAEH,kBAAkB,oBAAlBA,kBAAkB;IAAEK,aAAa,oBAAbA,aAAa;EAIlE,oBACI,6BAAC,wBAAwB,QACpBL,kBAAkB,gBACf,6BAAC,8BAAc;IAAC,UAAU,EAAEG,UAAW;IAAC,OAAO,EAAEE;EAAc,EAAG,GAClE,IAAI,eACR,6BAAC,kBAAU;IAAC,OAAO,EAAEH,WAAY;IAAC,IAAI,eAAE,6BAAC,kCAAO;EAAI,EAAG,CAChC;AAEnC,CAAC;AAAC"}
1
+ {"version":3,"names":["AddTemplateButtonContainer","styled","Elevation","AddTemplateIconContainer","Info","useAddTemplate","params","useState","showTemplateDialog","setShowTemplateDialog","addTemplate","onTemplate","template","onDialogClose","AddTemplateButton","props","AddTemplateIcon"],"sources":["AddTemplate.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { ButtonSecondary, IconButton } from \"@webiny/ui/Button\";\nimport { TemplateDialog } from \"./TemplateDialog\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as InfoIcon } from \"@material-design-icons/svg/outlined/info.svg\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/round/add_circle_outline.svg\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\n\nconst AddTemplateButtonContainer = styled(Elevation)`\n padding: 25px 0 20px;\n text-align: center;\n`;\n\n/**\n * This hacking is needed to position the button exactly in the middle of available area and not stretch the parent element.\n */\nconst AddTemplateIconContainer = styled.div`\n text-align: center;\n height: 36px;\n\n > button {\n margin-left: -24px;\n position: absolute;\n }\n`;\n\nconst Info = styled.div`\n margin-top: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n\n > svg {\n width: 20px;\n margin-right: 5px;\n }\n`;\n\ninterface AddTemplateProps {\n onTemplate: UseAddTemplateParams[\"onTemplate\"];\n}\n\ninterface UseAddTemplateParams {\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nfunction useAddTemplate(params: UseAddTemplateParams) {\n const [showTemplateDialog, setShowTemplateDialog] = useState(false);\n\n const addTemplate = () => {\n setShowTemplateDialog(true);\n };\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n params.onTemplate(template);\n };\n\n const onDialogClose = () => {\n setShowTemplateDialog(false);\n };\n\n return {\n addTemplate,\n onTemplate,\n onDialogClose,\n showTemplateDialog\n };\n}\n\nexport const AddTemplateButton: React.VFC<AddTemplateProps> = props => {\n const { addTemplate, onTemplate, showTemplateDialog, onDialogClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddTemplateButtonContainer z={2}>\n {showTemplateDialog ? (\n <TemplateDialog onTemplate={onTemplate} onClose={onDialogClose} />\n ) : null}\n <ButtonSecondary onClick={addTemplate}>+ Add a template</ButtonSecondary>\n <Info>\n <InfoIcon />\n <Typography use={\"caption\"}>\n Click here to learn how templates and dynamic zones work\n </Typography>\n </Info>\n </AddTemplateButtonContainer>\n );\n};\n\nexport const AddTemplateIcon: React.VFC<AddTemplateProps> = props => {\n const { addTemplate, onTemplate, showTemplateDialog, onDialogClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddTemplateIconContainer>\n {showTemplateDialog ? (\n <TemplateDialog onTemplate={onTemplate} onClose={onDialogClose} />\n ) : null}\n <IconButton onClick={addTemplate} icon={<AddIcon />} />\n </AddTemplateIconContainer>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,0BAA0B,oBAAGC,eAAM,EAACC,oBAAS;EAAA;EAAA;AAAA,4CAGlD;;AAED;AACA;AACA;AACA,IAAMC,wBAAwB,oBAAGF,eAAM;EAAA;EAAA;AAAA,kFAQtC;AAED,IAAMG,IAAI,oBAAGH,eAAM;EAAA;EAAA;AAAA,+GAUlB;AAUD,SAASI,cAAc,CAACC,MAA4B,EAAE;EAClD,gBAAoD,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAA;IAA5DC,kBAAkB;IAAEC,qBAAqB;EAEhD,IAAMC,WAAW,GAAG,SAAdA,WAAW,GAAS;IACtBD,qBAAqB,CAAC,IAAI,CAAC;EAC/B,CAAC;EAED,IAAME,UAAU,GAAG,SAAbA,UAAU,CAAIC,QAAgC,EAAK;IACrDN,MAAM,CAACK,UAAU,CAACC,QAAQ,CAAC;EAC/B,CAAC;EAED,IAAMC,aAAa,GAAG,SAAhBA,aAAa,GAAS;IACxBJ,qBAAqB,CAAC,KAAK,CAAC;EAChC,CAAC;EAED,OAAO;IACHC,WAAW,EAAXA,WAAW;IACXC,UAAU,EAAVA,UAAU;IACVE,aAAa,EAAbA,aAAa;IACbL,kBAAkB,EAAlBA;EACJ,CAAC;AACL;AAEO,IAAMM,iBAA8C,GAAG,SAAjDA,iBAA8C,CAAGC,KAAK,EAAI;EACnE,sBAAuEV,cAAc,CAAC;MAClFM,UAAU,EAAEI,KAAK,CAACJ;IACtB,CAAC,CAAC;IAFMD,WAAW,mBAAXA,WAAW;IAAEC,UAAU,mBAAVA,UAAU;IAAEH,kBAAkB,mBAAlBA,kBAAkB;IAAEK,aAAa,mBAAbA,aAAa;EAIlE,oBACI,6BAAC,0BAA0B;IAAC,CAAC,EAAE;EAAE,GAC5BL,kBAAkB,gBACf,6BAAC,8BAAc;IAAC,UAAU,EAAEG,UAAW;IAAC,OAAO,EAAEE;EAAc,EAAG,GAClE,IAAI,eACR,6BAAC,uBAAe;IAAC,OAAO,EAAEH;EAAY,GAAC,kBAAgB,CAAkB,eACzE,6BAAC,IAAI,qBACD,6BAAC,oBAAQ,OAAG,eACZ,6BAAC,sBAAU;IAAC,GAAG,EAAE;EAAU,GAAC,0DAE5B,CAAa,CACV,CACkB;AAErC,CAAC;AAAC;AAEK,IAAMM,eAA4C,GAAG,SAA/CA,eAA4C,CAAGD,KAAK,EAAI;EACjE,uBAAuEV,cAAc,CAAC;MAClFM,UAAU,EAAEI,KAAK,CAACJ;IACtB,CAAC,CAAC;IAFMD,WAAW,oBAAXA,WAAW;IAAEC,UAAU,oBAAVA,UAAU;IAAEH,kBAAkB,oBAAlBA,kBAAkB;IAAEK,aAAa,oBAAbA,aAAa;EAIlE,oBACI,6BAAC,wBAAwB,QACpBL,kBAAkB,gBACf,6BAAC,8BAAc;IAAC,UAAU,EAAEG,UAAW;IAAC,OAAO,EAAEE;EAAc,EAAG,GAClE,IAAI,eACR,6BAAC,kBAAU;IAAC,OAAO,EAAEH,WAAY;IAAC,IAAI,eAAE,6BAAC,kCAAO;EAAI,EAAG,CAChC;AAEnC,CAAC;AAAC"}
@@ -1,2 +1,2 @@
1
- /// <reference types="react" />
2
- export declare const DynamicZone: () => JSX.Element;
1
+ import React from "react";
2
+ export declare const DynamicZone: React.VFC;
@@ -1 +1 @@
1
- {"version":3,"names":["updateOrCreateTemplate","templates","template","templateIndex","findIndex","tpl","id","slice","DynamicZone","useModelField","field","useModelFieldEditor","updateField","newTemplateId","useRef","undefined","settings","onTemplate","current","useEffect","length","map","index"],"sources":["DynamicZone.tsx"],"sourcesContent":["import React, { useRef, useEffect } from \"react\";\nimport { Accordion } from \"@webiny/ui/Accordion\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { AddTemplateIcon, AddTemplateButton } from \"./AddTemplate\";\nimport { DynamicZoneTemplate } from \"./DynamicZoneTemplate\";\nimport { useModelField, useModelFieldEditor } from \"~/admin/hooks\";\n\nfunction updateOrCreateTemplate(\n templates: CmsDynamicZoneTemplate[],\n template: CmsDynamicZoneTemplate\n) {\n const templateIndex = templates.findIndex(tpl => tpl.id === template.id);\n\n if (templateIndex > -1) {\n return [\n ...templates.slice(0, templateIndex),\n template,\n ...templates.slice(templateIndex + 1)\n ];\n }\n\n return [...templates, template];\n}\n\nexport const DynamicZone = () => {\n const { field } = useModelField();\n const { updateField } = useModelFieldEditor();\n const newTemplateId = useRef<string | undefined>(undefined);\n\n const templates: CmsDynamicZoneTemplate[] = field.settings?.templates || [];\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n const templates = field.settings?.templates || [];\n\n newTemplateId.current = template.id;\n\n updateField({\n ...field,\n settings: {\n ...(field.settings || {}),\n templates: updateOrCreateTemplate(templates, template)\n }\n });\n };\n\n useEffect(() => {\n // We only want to open the accordion item on first mount of a new template.\n newTemplateId.current = undefined;\n }, []);\n\n return (\n <>\n {templates.length ? (\n <Accordion>\n {templates.map((template, index) => (\n <DynamicZoneTemplate\n key={template.id}\n open={template.id === newTemplateId.current}\n index={index}\n field={field}\n template={template}\n onChange={updateField}\n />\n ))}\n </Accordion>\n ) : null}\n {templates.length ? (\n <AddTemplateIcon onTemplate={onTemplate} />\n ) : (\n <AddTemplateButton onTemplate={onTemplate} />\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAEA,SAASA,sBAAsB,CAC3BC,SAAmC,EACnCC,QAAgC,EAClC;EACE,IAAMC,aAAa,GAAGF,SAAS,CAACG,SAAS,CAAC,UAAAC,GAAG;IAAA,OAAIA,GAAG,CAACC,EAAE,KAAKJ,QAAQ,CAACI,EAAE;EAAA,EAAC;EAExE,IAAIH,aAAa,GAAG,CAAC,CAAC,EAAE;IACpB,kDACOF,SAAS,CAACM,KAAK,CAAC,CAAC,EAAEJ,aAAa,CAAC,IACpCD,QAAQ,oCACLD,SAAS,CAACM,KAAK,CAACJ,aAAa,GAAG,CAAC,CAAC;EAE7C;EAEA,kDAAWF,SAAS,IAAEC,QAAQ;AAClC;AAEO,IAAMM,WAAW,GAAG,SAAdA,WAAW,GAAS;EAAA;EAC7B,qBAAkB,IAAAC,oBAAa,GAAE;IAAzBC,KAAK,kBAALA,KAAK;EACb,2BAAwB,IAAAC,0BAAmB,GAAE;IAArCC,WAAW,wBAAXA,WAAW;EACnB,IAAMC,aAAa,GAAG,IAAAC,aAAM,EAAqBC,SAAS,CAAC;EAE3D,IAAMd,SAAmC,GAAG,oBAAAS,KAAK,CAACM,QAAQ,oDAAd,gBAAgBf,SAAS,KAAI,EAAE;EAE3E,IAAMgB,UAAU,GAAG,SAAbA,UAAU,CAAIf,QAAgC,EAAK;IAAA;IACrD,IAAMD,SAAS,GAAG,qBAAAS,KAAK,CAACM,QAAQ,qDAAd,iBAAgBf,SAAS,KAAI,EAAE;IAEjDY,aAAa,CAACK,OAAO,GAAGhB,QAAQ,CAACI,EAAE;IAEnCM,WAAW,6DACJF,KAAK;MACRM,QAAQ,8DACAN,KAAK,CAACM,QAAQ,IAAI,CAAC,CAAC;QACxBf,SAAS,EAAED,sBAAsB,CAACC,SAAS,EAAEC,QAAQ;MAAC;IACzD,GACH;EACN,CAAC;EAED,IAAAiB,gBAAS,EAAC,YAAM;IACZ;IACAN,aAAa,CAACK,OAAO,GAAGH,SAAS;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,4DACKd,SAAS,CAACmB,MAAM,gBACb,6BAAC,oBAAS,QACLnB,SAAS,CAACoB,GAAG,CAAC,UAACnB,QAAQ,EAAEoB,KAAK;IAAA,oBAC3B,6BAAC,wCAAmB;MAChB,GAAG,EAAEpB,QAAQ,CAACI,EAAG;MACjB,IAAI,EAAEJ,QAAQ,CAACI,EAAE,KAAKO,aAAa,CAACK,OAAQ;MAC5C,KAAK,EAAEI,KAAM;MACb,KAAK,EAAEZ,KAAM;MACb,QAAQ,EAAER,QAAS;MACnB,QAAQ,EAAEU;IAAY,EACxB;EAAA,CACL,CAAC,CACM,GACZ,IAAI,EACPX,SAAS,CAACmB,MAAM,gBACb,6BAAC,4BAAe;IAAC,UAAU,EAAEH;EAAW,EAAG,gBAE3C,6BAAC,8BAAiB;IAAC,UAAU,EAAEA;EAAW,EAC7C,CACF;AAEX,CAAC;AAAC"}
1
+ {"version":3,"names":["updateOrCreateTemplate","templates","template","templateIndex","findIndex","tpl","id","slice","DynamicZone","useModelField","field","useModelFieldEditor","updateField","newTemplateId","useRef","undefined","settings","onTemplate","current","useEffect","length","map","index"],"sources":["DynamicZone.tsx"],"sourcesContent":["import React, { useRef, useEffect } from \"react\";\nimport { Accordion } from \"@webiny/ui/Accordion\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { AddTemplateIcon, AddTemplateButton } from \"./AddTemplate\";\nimport { DynamicZoneTemplate } from \"./DynamicZoneTemplate\";\nimport { useModelField, useModelFieldEditor } from \"~/admin/hooks\";\n\nfunction updateOrCreateTemplate(\n templates: CmsDynamicZoneTemplate[],\n template: CmsDynamicZoneTemplate\n) {\n const templateIndex = templates.findIndex(tpl => tpl.id === template.id);\n\n if (templateIndex > -1) {\n return [\n ...templates.slice(0, templateIndex),\n template,\n ...templates.slice(templateIndex + 1)\n ];\n }\n\n return [...templates, template];\n}\n\nexport const DynamicZone: React.VFC = () => {\n const { field } = useModelField();\n const { updateField } = useModelFieldEditor();\n const newTemplateId = useRef<string | undefined>(undefined);\n\n const templates: CmsDynamicZoneTemplate[] = field.settings?.templates || [];\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n const templates = field.settings?.templates || [];\n\n newTemplateId.current = template.id;\n\n updateField({\n ...field,\n settings: {\n ...(field.settings || {}),\n templates: updateOrCreateTemplate(templates, template)\n }\n });\n };\n\n useEffect(() => {\n // We only want to open the accordion item on first mount of a new template.\n newTemplateId.current = undefined;\n }, []);\n\n return (\n <>\n {templates.length ? (\n <Accordion>\n {templates.map((template, index) => (\n <DynamicZoneTemplate\n key={template.id}\n open={template.id === newTemplateId.current}\n index={index}\n field={field}\n template={template}\n onChange={updateField}\n />\n ))}\n </Accordion>\n ) : null}\n {templates.length ? (\n <AddTemplateIcon onTemplate={onTemplate} />\n ) : (\n <AddTemplateButton onTemplate={onTemplate} />\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAEA,SAASA,sBAAsB,CAC3BC,SAAmC,EACnCC,QAAgC,EAClC;EACE,IAAMC,aAAa,GAAGF,SAAS,CAACG,SAAS,CAAC,UAAAC,GAAG;IAAA,OAAIA,GAAG,CAACC,EAAE,KAAKJ,QAAQ,CAACI,EAAE;EAAA,EAAC;EAExE,IAAIH,aAAa,GAAG,CAAC,CAAC,EAAE;IACpB,kDACOF,SAAS,CAACM,KAAK,CAAC,CAAC,EAAEJ,aAAa,CAAC,IACpCD,QAAQ,oCACLD,SAAS,CAACM,KAAK,CAACJ,aAAa,GAAG,CAAC,CAAC;EAE7C;EAEA,kDAAWF,SAAS,IAAEC,QAAQ;AAClC;AAEO,IAAMM,WAAsB,GAAG,SAAzBA,WAAsB,GAAS;EAAA;EACxC,qBAAkB,IAAAC,oBAAa,GAAE;IAAzBC,KAAK,kBAALA,KAAK;EACb,2BAAwB,IAAAC,0BAAmB,GAAE;IAArCC,WAAW,wBAAXA,WAAW;EACnB,IAAMC,aAAa,GAAG,IAAAC,aAAM,EAAqBC,SAAS,CAAC;EAE3D,IAAMd,SAAmC,GAAG,oBAAAS,KAAK,CAACM,QAAQ,oDAAd,gBAAgBf,SAAS,KAAI,EAAE;EAE3E,IAAMgB,UAAU,GAAG,SAAbA,UAAU,CAAIf,QAAgC,EAAK;IAAA;IACrD,IAAMD,SAAS,GAAG,qBAAAS,KAAK,CAACM,QAAQ,qDAAd,iBAAgBf,SAAS,KAAI,EAAE;IAEjDY,aAAa,CAACK,OAAO,GAAGhB,QAAQ,CAACI,EAAE;IAEnCM,WAAW,6DACJF,KAAK;MACRM,QAAQ,8DACAN,KAAK,CAACM,QAAQ,IAAI,CAAC,CAAC;QACxBf,SAAS,EAAED,sBAAsB,CAACC,SAAS,EAAEC,QAAQ;MAAC;IACzD,GACH;EACN,CAAC;EAED,IAAAiB,gBAAS,EAAC,YAAM;IACZ;IACAN,aAAa,CAACK,OAAO,GAAGH,SAAS;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,4DACKd,SAAS,CAACmB,MAAM,gBACb,6BAAC,oBAAS,QACLnB,SAAS,CAACoB,GAAG,CAAC,UAACnB,QAAQ,EAAEoB,KAAK;IAAA,oBAC3B,6BAAC,wCAAmB;MAChB,GAAG,EAAEpB,QAAQ,CAACI,EAAG;MACjB,IAAI,EAAEJ,QAAQ,CAACI,EAAE,KAAKO,aAAa,CAACK,OAAQ;MAC5C,KAAK,EAAEI,KAAM;MACb,KAAK,EAAEZ,KAAM;MACb,QAAQ,EAAER,QAAS;MACnB,QAAQ,EAAEU;IAAY,EACxB;EAAA,CACL,CAAC,CACM,GACZ,IAAI,EACPX,SAAS,CAACmB,MAAM,gBACb,6BAAC,4BAAe;IAAC,UAAU,EAAEH;EAAW,EAAG,gBAE3C,6BAAC,8BAAiB;IAAC,UAAU,EAAEA;EAAW,EAC7C,CACF;AAEX,CAAC;AAAC"}
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { CmsDynamicZoneTemplate, CmsModelField } from "../../../../types";
3
3
  interface DynamicZoneTemplateProps {
4
4
  index: number;
@@ -7,5 +7,5 @@ interface DynamicZoneTemplateProps {
7
7
  onChange: (field: CmsModelField) => void;
8
8
  open: boolean;
9
9
  }
10
- export declare const DynamicZoneTemplate: ({ index, field, template, onChange, open }: DynamicZoneTemplateProps) => JSX.Element;
10
+ export declare const DynamicZoneTemplate: React.VFC<DynamicZoneTemplateProps>;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["TEMPLATES_PATH","DynamicZoneTemplate","index","field","template","onChange","open","useConfirmationDialog","title","message","acceptLabel","showConfirmation","useState","undefined","templateToEdit","setTemplateToEdit","templates","settings","isFirst","isLast","length","callbackDeps","id","onDialogClose","useCallback","editTemplate","updateTemplate","params","set","tpl","updateFieldsAndLayout","moveTemplateUp","pullValueAtIndex","moveTemplateDown","pushValueAtIndex","deleteTemplate","removeValueAtIndex","icon","split","name","description","fields","layout"],"sources":["DynamicZoneTemplate.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete_outline.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@material-design-icons/svg/round/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@material-design-icons/svg/round/expand_more.svg\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\nimport { pullValueAtIndex, pushValueAtIndex, removeValueAtIndex } from \"~/admin/plugins/arrayUtils\";\nimport { CmsDynamicZoneTemplate, CmsEditorFieldsLayout, CmsModelField } from \"~/types\";\nimport { TemplateDialog } from \"./TemplateDialog\";\nimport { FieldEditor } from \"~/admin/components/FieldEditor\";\n\ninterface DynamicZoneTemplateProps {\n index: number;\n field: CmsModelField;\n template: CmsDynamicZoneTemplate;\n onChange: (field: CmsModelField) => void;\n open: boolean;\n}\n\ninterface UpdateTemplate {\n (template: CmsDynamicZoneTemplate): void;\n}\n\ninterface UpdateFieldsAndLayout {\n (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }): void;\n}\n\nconst TEMPLATES_PATH = \"settings.templates\";\n\nexport const DynamicZoneTemplate = ({\n index,\n field,\n template,\n onChange,\n open\n}: DynamicZoneTemplateProps) => {\n const { showConfirmation } = useConfirmationDialog({\n title: \"Delete content template\",\n message: \"Are you sure you want to delete this content template?\",\n acceptLabel: \"Yes, I'm sure!\"\n });\n\n const [templateToEdit, setTemplateToEdit] = useState<CmsDynamicZoneTemplate | undefined>(\n undefined\n );\n\n const templates = field.settings?.templates || [];\n const isFirst = index === 0;\n const isLast = index === templates.length - 1;\n\n const callbackDeps = [onChange, field, index, template.id];\n\n const onDialogClose = useCallback(() => {\n setTemplateToEdit(undefined);\n }, []);\n\n const editTemplate = useCallback(() => {\n setTemplateToEdit(template);\n }, [template]);\n\n const updateTemplate = useCallback<UpdateTemplate>(params => {\n onChange(\n set(field, `${TEMPLATES_PATH}.${index}`, (tpl: CmsDynamicZoneTemplate) => {\n return { ...tpl, ...params };\n })\n );\n }, callbackDeps);\n\n const updateFieldsAndLayout = useCallback<UpdateFieldsAndLayout>(\n params => {\n updateTemplate({ ...template, ...params });\n },\n [updateTemplate]\n );\n\n const moveTemplateUp = useCallback(() => {\n onChange(set(field, TEMPLATES_PATH, pullValueAtIndex(templates, index)));\n }, callbackDeps);\n\n const moveTemplateDown = useCallback(() => {\n onChange(set(field, TEMPLATES_PATH, pushValueAtIndex(templates, index)));\n }, callbackDeps);\n\n const deleteTemplate = useCallback(() => {\n showConfirmation(() => {\n onChange(set(field, TEMPLATES_PATH, removeValueAtIndex(templates, index)));\n });\n }, callbackDeps);\n\n const icon = template.icon ? (template.icon.split(\"/\") as IconProp) : undefined;\n\n return (\n <AccordionItem\n title={template.name}\n description={template.description}\n icon={icon ? <FontAwesomeIcon icon={icon} /> : undefined}\n open={open}\n actions={\n <AccordionItem.Actions>\n <AccordionItem.Action\n icon={<ArrowUpIcon />}\n onClick={moveTemplateUp}\n disabled={isFirst}\n />\n <AccordionItem.Action\n icon={<ArrowDownIcon />}\n onClick={moveTemplateDown}\n disabled={isLast}\n />\n <AccordionItem.Divider />\n <AccordionItem.Action icon={<EditIcon />} onClick={editTemplate} />\n <AccordionItem.Action icon={<DeleteIcon />} onClick={deleteTemplate} />\n </AccordionItem.Actions>\n }\n >\n {templateToEdit ? (\n <TemplateDialog\n template={templateToEdit}\n onTemplate={updateTemplate}\n onClose={onDialogClose}\n />\n ) : null}\n\n <FieldEditor\n parent={field}\n fields={template.fields}\n layout={template.layout}\n onChange={updateFieldsAndLayout}\n />\n </AccordionItem>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["TEMPLATES_PATH","DynamicZoneTemplate","index","field","template","onChange","open","useConfirmationDialog","title","message","acceptLabel","showConfirmation","useState","undefined","templateToEdit","setTemplateToEdit","templates","settings","isFirst","isLast","length","callbackDeps","id","onDialogClose","useCallback","editTemplate","updateTemplate","params","set","tpl","updateFieldsAndLayout","moveTemplateUp","pullValueAtIndex","moveTemplateDown","pushValueAtIndex","deleteTemplate","removeValueAtIndex","icon","split","name","description","fields","layout"],"sources":["DynamicZoneTemplate.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete_outline.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@material-design-icons/svg/round/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@material-design-icons/svg/round/expand_more.svg\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\nimport { pullValueAtIndex, pushValueAtIndex, removeValueAtIndex } from \"~/admin/plugins/arrayUtils\";\nimport { CmsDynamicZoneTemplate, CmsEditorFieldsLayout, CmsModelField } from \"~/types\";\nimport { TemplateDialog } from \"./TemplateDialog\";\nimport { FieldEditor } from \"~/admin/components/FieldEditor\";\n\ninterface DynamicZoneTemplateProps {\n index: number;\n field: CmsModelField;\n template: CmsDynamicZoneTemplate;\n onChange: (field: CmsModelField) => void;\n open: boolean;\n}\n\ninterface UpdateTemplate {\n (template: CmsDynamicZoneTemplate): void;\n}\n\ninterface UpdateFieldsAndLayout {\n (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }): void;\n}\n\nconst TEMPLATES_PATH = \"settings.templates\";\n\nexport const DynamicZoneTemplate: React.VFC<DynamicZoneTemplateProps> = ({\n index,\n field,\n template,\n onChange,\n open\n}) => {\n const { showConfirmation } = useConfirmationDialog({\n title: \"Delete content template\",\n message: \"Are you sure you want to delete this content template?\",\n acceptLabel: \"Yes, I'm sure!\"\n });\n\n const [templateToEdit, setTemplateToEdit] = useState<CmsDynamicZoneTemplate | undefined>(\n undefined\n );\n\n const templates = field.settings?.templates || [];\n const isFirst = index === 0;\n const isLast = index === templates.length - 1;\n\n const callbackDeps = [onChange, field, index, template.id];\n\n const onDialogClose = useCallback(() => {\n setTemplateToEdit(undefined);\n }, []);\n\n const editTemplate = useCallback(() => {\n setTemplateToEdit(template);\n }, [template]);\n\n const updateTemplate = useCallback<UpdateTemplate>(params => {\n onChange(\n set(field, `${TEMPLATES_PATH}.${index}`, (tpl: CmsDynamicZoneTemplate) => {\n return { ...tpl, ...params };\n })\n );\n }, callbackDeps);\n\n const updateFieldsAndLayout = useCallback<UpdateFieldsAndLayout>(\n params => {\n updateTemplate({ ...template, ...params });\n },\n [updateTemplate]\n );\n\n const moveTemplateUp = useCallback(() => {\n onChange(set(field, TEMPLATES_PATH, pullValueAtIndex(templates, index)));\n }, callbackDeps);\n\n const moveTemplateDown = useCallback(() => {\n onChange(set(field, TEMPLATES_PATH, pushValueAtIndex(templates, index)));\n }, callbackDeps);\n\n const deleteTemplate = useCallback(() => {\n showConfirmation(() => {\n onChange(set(field, TEMPLATES_PATH, removeValueAtIndex(templates, index)));\n });\n }, callbackDeps);\n\n const icon = template.icon ? (template.icon.split(\"/\") as IconProp) : undefined;\n\n return (\n <AccordionItem\n title={template.name}\n description={template.description}\n icon={icon ? <FontAwesomeIcon icon={icon} /> : undefined}\n open={open}\n actions={\n <AccordionItem.Actions>\n <AccordionItem.Action\n icon={<ArrowUpIcon />}\n onClick={moveTemplateUp}\n disabled={isFirst}\n />\n <AccordionItem.Action\n icon={<ArrowDownIcon />}\n onClick={moveTemplateDown}\n disabled={isLast}\n />\n <AccordionItem.Divider />\n <AccordionItem.Action icon={<EditIcon />} onClick={editTemplate} />\n <AccordionItem.Action icon={<DeleteIcon />} onClick={deleteTemplate} />\n </AccordionItem.Actions>\n }\n >\n {templateToEdit ? (\n <TemplateDialog\n template={templateToEdit}\n onTemplate={updateTemplate}\n onClose={onDialogClose}\n />\n ) : null}\n\n <FieldEditor\n parent={field}\n fields={template.fields}\n layout={template.layout}\n onChange={updateFieldsAndLayout}\n />\n </AccordionItem>\n );\n};\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { CmsDynamicZoneTemplate } from "../../../../types";
3
3
  interface TemplateDialogProps {
4
4
  onClose: () => void;
5
5
  template?: CmsDynamicZoneTemplate;
6
6
  onTemplate: (template: CmsDynamicZoneTemplate) => void;
7
7
  }
8
- export declare const TemplateDialog: (props: TemplateDialogProps) => JSX.Element;
8
+ export declare const TemplateDialog: React.VFC<TemplateDialogProps>;
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["typeNameValidator","value","regex","RegExp","test","Error","getGraphQLTypeName","titleCase","charAt","toUpperCase","slice","replace","TemplateDialog","props","useState","showWarning","setWarning","newTemplate","Boolean","template","dialogTitle","submitLabel","onSubmit","id","onTemplate","generateAlphaNumericLowerCaseId","fields","layout","onClose","showGqlTypeNameWarning","hideGqlTypeNameWarning","checkGqlType","data","gqlTypeName","nameOnBlur","form","name","setValue","onFormChange","Bind","submit","validation","create"],"sources":["TemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { ButtonPrimary, ButtonDefault } from \"@webiny/ui/Button\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form, FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { IconPicker } from \"~/admin/components/IconPicker\";\nimport { Dialog, DialogTitle, DialogContent, DialogActions } from \"~/admin/components/Dialog\";\nimport { Alert } from \"@webiny/ui/Alert\";\n\nconst typeNameValidator = (value: string) => {\n const regex = new RegExp(\"^[A-Z]+[_0-9A-Za-z]+$\");\n if (regex.test(value)) {\n return true;\n }\n\n throw Error(\n `Must start with a capital letter, may contain numbers, and must not contain spaces.`\n );\n};\n\nconst getGraphQLTypeName = (value: string) => {\n const titleCase = value.charAt(0).toUpperCase() + value.slice(1);\n return titleCase.replace(/[^a-zA-Z0-9]/g, \"\");\n};\n\ninterface TemplateDialogProps {\n onClose: () => void;\n template?: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateDialog = (props: TemplateDialogProps) => {\n const [showWarning, setWarning] = useState(false);\n const newTemplate = !Boolean(props.template);\n const dialogTitle = newTemplate ? \"Add Template\" : \"Edit Template\";\n const submitLabel = newTemplate ? \"Add Template\" : \"Update Template\";\n\n const onSubmit: FormOnSubmit<CmsDynamicZoneTemplate> = template => {\n if (template.id) {\n props.onTemplate(template);\n } else {\n props.onTemplate({\n ...template,\n id: generateAlphaNumericLowerCaseId(),\n fields: [],\n layout: []\n });\n }\n props.onClose();\n };\n\n const showGqlTypeNameWarning = () => {\n setWarning(true);\n };\n\n const hideGqlTypeNameWarning = () => {\n setWarning(false);\n };\n\n const checkGqlType: FormOnSubmit<CmsDynamicZoneTemplate> = data => {\n if (newTemplate) {\n return;\n }\n\n if (data.gqlTypeName !== props.template?.gqlTypeName) {\n showGqlTypeNameWarning();\n } else {\n hideGqlTypeNameWarning();\n }\n };\n\n const nameOnBlur = (form: FormAPI<CmsDynamicZoneTemplate>) => () => {\n if (!form.data.gqlTypeName) {\n /**\n * There is a possibility that name is undefined, so let's check for it.\n */\n const name = form.data.name;\n if (!name) {\n return;\n }\n form.setValue(\"gqlTypeName\", getGraphQLTypeName(name));\n }\n };\n\n const onFormChange: FormOnSubmit<CmsDynamicZoneTemplate> = (data, form) => {\n checkGqlType(data, form);\n };\n\n return (\n <Dialog open={true} onClose={props.onClose}>\n <Form<CmsDynamicZoneTemplate>\n onSubmit={onSubmit}\n data={props.template}\n onChange={onFormChange}\n >\n {({ Bind, submit, form }) => (\n <>\n <DialogTitle>{dialogTitle}</DialogTitle>\n <DialogContent>\n <Grid>\n {showWarning ? (\n <Cell span={12}>\n <Alert title={\"GraphQL Schema Change\"} type={\"danger\"}>\n You&apos;ve changed the GraphQL schema type name! If\n your API is being queried by a 3rd party application,\n this will affect the GraphQL queries in those\n applications. Make sure your consumers are informed\n about this change!\n </Alert>\n </Cell>\n ) : null}\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[validation.create(\"required\")]}\n >\n <Input label={\"Name\"} onBlur={nameOnBlur(form)} />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"gqlTypeName\"}\n validators={[\n validation.create(\"required\"),\n typeNameValidator\n ]}\n >\n <Input\n autoFocus={false}\n label={\"GraphQL Type Name\"}\n description={\n \"This string will be used to generate the GraphQL schema. \"\n }\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"icon\"}\n validators={[validation.create(\"required\")]}\n >\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"description\"}\n validators={[validation.create(\"required\")]}\n >\n <Input rows={3} label={\"Description\"} />\n </Bind>\n </Cell>\n </Grid>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={props.onClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={submit}>{submitLabel}</ButtonPrimary>\n </DialogActions>\n </>\n )}\n </Form>\n </Dialog>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["typeNameValidator","value","regex","RegExp","test","Error","getGraphQLTypeName","titleCase","charAt","toUpperCase","slice","replace","TemplateDialog","props","useState","showWarning","setWarning","newTemplate","Boolean","template","dialogTitle","submitLabel","onSubmit","id","onTemplate","generateAlphaNumericLowerCaseId","fields","layout","onClose","showGqlTypeNameWarning","hideGqlTypeNameWarning","checkGqlType","data","gqlTypeName","nameOnBlur","form","name","setValue","onFormChange","Bind","submit","validation","create"],"sources":["TemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { ButtonPrimary, ButtonDefault } from \"@webiny/ui/Button\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form, FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { IconPicker } from \"~/admin/components/IconPicker\";\nimport { Dialog, DialogTitle, DialogContent, DialogActions } from \"~/admin/components/Dialog\";\nimport { Alert } from \"@webiny/ui/Alert\";\n\nconst typeNameValidator = (value: string) => {\n const regex = new RegExp(\"^[A-Z]+[_0-9A-Za-z]+$\");\n if (regex.test(value)) {\n return true;\n }\n\n throw Error(\n `Must start with a capital letter, may contain numbers, and must not contain spaces.`\n );\n};\n\nconst getGraphQLTypeName = (value: string) => {\n const titleCase = value.charAt(0).toUpperCase() + value.slice(1);\n return titleCase.replace(/[^a-zA-Z0-9]/g, \"\");\n};\n\ninterface TemplateDialogProps {\n onClose: () => void;\n template?: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateDialog: React.VFC<TemplateDialogProps> = props => {\n const [showWarning, setWarning] = useState(false);\n const newTemplate = !Boolean(props.template);\n const dialogTitle = newTemplate ? \"Add Template\" : \"Edit Template\";\n const submitLabel = newTemplate ? \"Add Template\" : \"Update Template\";\n\n const onSubmit: FormOnSubmit<CmsDynamicZoneTemplate> = template => {\n if (template.id) {\n props.onTemplate(template);\n } else {\n props.onTemplate({\n ...template,\n id: generateAlphaNumericLowerCaseId(),\n fields: [],\n layout: []\n });\n }\n props.onClose();\n };\n\n const showGqlTypeNameWarning = () => {\n setWarning(true);\n };\n\n const hideGqlTypeNameWarning = () => {\n setWarning(false);\n };\n\n const checkGqlType: FormOnSubmit<CmsDynamicZoneTemplate> = data => {\n if (newTemplate) {\n return;\n }\n\n if (data.gqlTypeName !== props.template?.gqlTypeName) {\n showGqlTypeNameWarning();\n } else {\n hideGqlTypeNameWarning();\n }\n };\n\n const nameOnBlur = (form: FormAPI<CmsDynamicZoneTemplate>) => () => {\n if (!form.data.gqlTypeName) {\n /**\n * There is a possibility that name is undefined, so let's check for it.\n */\n const name = form.data.name;\n if (!name) {\n return;\n }\n form.setValue(\"gqlTypeName\", getGraphQLTypeName(name));\n }\n };\n\n const onFormChange: FormOnSubmit<CmsDynamicZoneTemplate> = (data, form) => {\n checkGqlType(data, form);\n };\n\n return (\n <Dialog open={true} onClose={props.onClose}>\n <Form<CmsDynamicZoneTemplate>\n onSubmit={onSubmit}\n data={props.template}\n onChange={onFormChange}\n >\n {({ Bind, submit, form }) => (\n <>\n <DialogTitle>{dialogTitle}</DialogTitle>\n <DialogContent>\n <Grid>\n {showWarning ? (\n <Cell span={12}>\n <Alert title={\"GraphQL Schema Change\"} type={\"danger\"}>\n You&apos;ve changed the GraphQL schema type name! If\n your API is being queried by a 3rd party application,\n this will affect the GraphQL queries in those\n applications. Make sure your consumers are informed\n about this change!\n </Alert>\n </Cell>\n ) : null}\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[validation.create(\"required\")]}\n >\n <Input label={\"Name\"} onBlur={nameOnBlur(form)} />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"gqlTypeName\"}\n validators={[\n validation.create(\"required\"),\n typeNameValidator\n ]}\n >\n <Input\n autoFocus={false}\n label={\"GraphQL Type Name\"}\n description={\n \"This string will be used to generate the GraphQL schema. \"\n }\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"icon\"}\n validators={[validation.create(\"required\")]}\n >\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"description\"}\n validators={[validation.create(\"required\")]}\n >\n <Input rows={3} label={\"Description\"} />\n </Bind>\n </Cell>\n </Grid>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={props.onClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={submit}>{submitLabel}</ButtonPrimary>\n </DialogActions>\n </>\n )}\n </Form>\n </Dialog>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,KAAa,EAAK;EACzC,IAAMC,KAAK,GAAG,IAAIC,MAAM,CAAC,uBAAuB,CAAC;EACjD,IAAID,KAAK,CAACE,IAAI,CAACH,KAAK,CAAC,EAAE;IACnB,OAAO,IAAI;EACf;EAEA,MAAMI,KAAK,uFAEV;AACL,CAAC;AAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIL,KAAa,EAAK;EAC1C,IAAMM,SAAS,GAAGN,KAAK,CAACO,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGR,KAAK,CAACS,KAAK,CAAC,CAAC,CAAC;EAChE,OAAOH,SAAS,CAACI,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACjD,CAAC;AAQM,IAAMC,cAA8C,GAAG,SAAjDA,cAA8C,CAAGC,KAAK,EAAI;EACnE,gBAAkC,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAA;IAA1CC,WAAW;IAAEC,UAAU;EAC9B,IAAMC,WAAW,GAAG,CAACC,OAAO,CAACL,KAAK,CAACM,QAAQ,CAAC;EAC5C,IAAMC,WAAW,GAAGH,WAAW,GAAG,cAAc,GAAG,eAAe;EAClE,IAAMI,WAAW,GAAGJ,WAAW,GAAG,cAAc,GAAG,iBAAiB;EAEpE,IAAMK,QAA8C,GAAG,SAAjDA,QAA8C,CAAGH,QAAQ,EAAI;IAC/D,IAAIA,QAAQ,CAACI,EAAE,EAAE;MACbV,KAAK,CAACW,UAAU,CAACL,QAAQ,CAAC;IAC9B,CAAC,MAAM;MACHN,KAAK,CAACW,UAAU,6DACTL,QAAQ;QACXI,EAAE,EAAE,IAAAE,sCAA+B,GAAE;QACrCC,MAAM,EAAE,EAAE;QACVC,MAAM,EAAE;MAAE,GACZ;IACN;IACAd,KAAK,CAACe,OAAO,EAAE;EACnB,CAAC;EAED,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,GAAS;IACjCb,UAAU,CAAC,IAAI,CAAC;EACpB,CAAC;EAED,IAAMc,sBAAsB,GAAG,SAAzBA,sBAAsB,GAAS;IACjCd,UAAU,CAAC,KAAK,CAAC;EACrB,CAAC;EAED,IAAMe,YAAkD,GAAG,SAArDA,YAAkD,CAAGC,IAAI,EAAI;IAAA;IAC/D,IAAIf,WAAW,EAAE;MACb;IACJ;IAEA,IAAIe,IAAI,CAACC,WAAW,yBAAKpB,KAAK,CAACM,QAAQ,oDAAd,gBAAgBc,WAAW,GAAE;MAClDJ,sBAAsB,EAAE;IAC5B,CAAC,MAAM;MACHC,sBAAsB,EAAE;IAC5B;EACJ,CAAC;EAED,IAAMI,UAAU,GAAG,SAAbA,UAAU,CAAIC,IAAqC;IAAA,OAAK,YAAM;MAChE,IAAI,CAACA,IAAI,CAACH,IAAI,CAACC,WAAW,EAAE;QACxB;AACZ;AACA;QACY,IAAMG,IAAI,GAAGD,IAAI,CAACH,IAAI,CAACI,IAAI;QAC3B,IAAI,CAACA,IAAI,EAAE;UACP;QACJ;QACAD,IAAI,CAACE,QAAQ,CAAC,aAAa,EAAE/B,kBAAkB,CAAC8B,IAAI,CAAC,CAAC;MAC1D;IACJ,CAAC;EAAA;EAED,IAAME,YAAkD,GAAG,SAArDA,YAAkD,CAAIN,IAAI,EAAEG,IAAI,EAAK;IACvEJ,YAAY,CAACC,IAAI,EAAEG,IAAI,CAAC;EAC5B,CAAC;EAED,oBACI,6BAAC,cAAM;IAAC,IAAI,EAAE,IAAK;IAAC,OAAO,EAAEtB,KAAK,CAACe;EAAQ,gBACvC,6BAAC,UAAI;IACD,QAAQ,EAAEN,QAAS;IACnB,IAAI,EAAET,KAAK,CAACM,QAAS;IACrB,QAAQ,EAAEmB;EAAa,GAEtB;IAAA,IAAGC,IAAI,QAAJA,IAAI;MAAEC,MAAM,QAANA,MAAM;MAAEL,IAAI,QAAJA,IAAI;IAAA,oBAClB,yEACI,6BAAC,mBAAW,QAAEf,WAAW,CAAe,eACxC,6BAAC,qBAAa,qBACV,6BAAC,UAAI,QACAL,WAAW,gBACR,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,YAAK;MAAC,KAAK,EAAE,uBAAwB;MAAC,IAAI,EAAE;IAAS,GAAC,4NAMvD,CAAQ,CACL,GACP,IAAI,eACR,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,IAAI;MACD,IAAI,EAAE,MAAO;MACb,UAAU,EAAE,CAAC0B,sBAAU,CAACC,MAAM,CAAC,UAAU,CAAC;IAAE,gBAE5C,6BAAC,YAAK;MAAC,KAAK,EAAE,MAAO;MAAC,MAAM,EAAER,UAAU,CAACC,IAAI;IAAE,EAAG,CAC/C,CACJ,eACP,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,IAAI;MACD,IAAI,EAAE,aAAc;MACpB,UAAU,EAAE,CACRM,sBAAU,CAACC,MAAM,CAAC,UAAU,CAAC,EAC7B1C,iBAAiB;IACnB,gBAEF,6BAAC,YAAK;MACF,SAAS,EAAE,KAAM;MACjB,KAAK,EAAE,mBAAoB;MAC3B,WAAW,EACP;IACH,EACH,CACC,CACJ,eACP,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,IAAI;MACD,IAAI,EAAE,MAAO;MACb,UAAU,EAAE,CAACyC,sBAAU,CAACC,MAAM,CAAC,UAAU,CAAC;IAAE,gBAE5C,6BAAC,sBAAU;MAAC,KAAK,EAAE;IAAO,EAAG,CAC1B,CACJ,eACP,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,IAAI;MACD,IAAI,EAAE,aAAc;MACpB,UAAU,EAAE,CAACD,sBAAU,CAACC,MAAM,CAAC,UAAU,CAAC;IAAE,gBAE5C,6BAAC,YAAK;MAAC,IAAI,EAAE,CAAE;MAAC,KAAK,EAAE;IAAc,EAAG,CACrC,CACJ,CACJ,CACK,eAChB,6BAAC,qBAAa,qBACV,6BAAC,qBAAa;MAAC,OAAO,EAAE7B,KAAK,CAACe;IAAQ,GAAC,QAAM,CAAgB,eAC7D,6BAAC,qBAAa;MAAC,OAAO,EAAEY;IAAO,GAAEnB,WAAW,CAAiB,CACjD,CACjB;EAAA,CACN,CACE,CACF;AAEjB,CAAC;AAAC"}
@@ -1,2 +1,2 @@
1
- import { CmsEditorFieldTypePlugin } from "../../../types";
2
- export declare const dynamicZoneField: CmsEditorFieldTypePlugin;
1
+ import { CmsModelFieldTypePlugin } from "../../../types";
2
+ export declare const dynamicZoneField: CmsModelFieldTypePlugin;
@@ -42,7 +42,7 @@ var dynamicZoneField = {
42
42
  },
43
43
  listValidators: listValidators,
44
44
  canAccept: function canAccept(_, draggable) {
45
- return draggable.fieldType !== "dynamicZone";
45
+ return draggable.fieldType !== "dynamicZone" && draggable.fieldType !== "ref";
46
46
  },
47
47
  multipleValuesLabel: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Use as a list of values"]))),
48
48
  createField: function createField() {
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","listValidators","validators","commonValidators","title","description","dynamicZoneField","type","name","field","label","icon","allowMultipleValues","allowPredefinedValues","multipleValues","canAccept","_","draggable","fieldType","multipleValuesLabel","createField","listValidation","settings","templates","renderer","render","graphql","queryField","model","prefix","singularApiName","createTypeName","fieldId","fragments","map","template","gqlTypeName","createFieldsList","fields","join"],"sources":["dynamicZone.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as ObjectIcon } from \"@material-design-icons/svg/outlined/dynamic_form.svg\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { DynamicZone } from \"~/admin/plugins/fields/dynamicZone/DynamicZone\";\nimport { createFieldsList } from \"~/admin/graphql/createFieldsList\";\nimport { createTypeName } from \"~/utils/createTypeName\";\nimport { CmsEditorFieldTypePlugin, CmsModelFieldValidatorsGroup } from \"~/types\";\nimport { commonValidators } from \"./dynamicZone/commonValidators\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst listValidators: CmsModelFieldValidatorsGroup = {\n validators: commonValidators,\n title: \"List validators\",\n description: \"These validators are applied to the entire dynamic zone.\"\n};\n\nexport const dynamicZoneField: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-dynamic-zone\",\n field: {\n type: \"dynamicZone\",\n label: t`Dynamic Zone`,\n description: t`Define content templates to be used during content creation.`,\n icon: <ObjectIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n validators: field => {\n if (field.multipleValues) {\n return {\n validators: [\"dynamicZone\"],\n title: \"Template Validators\",\n description: \"Validators for each of the templates in this dynamic zone.\"\n };\n }\n\n return [\"required\"];\n },\n listValidators,\n canAccept(_, draggable) {\n return draggable.fieldType !== \"dynamicZone\";\n },\n multipleValuesLabel: t`Use as a list of values`,\n createField() {\n return {\n type: this.type,\n listValidation: [{ name: \"dynamicZone\" }],\n settings: {\n templates: []\n },\n renderer: {\n name: \"dynamicZone\"\n }\n };\n },\n render() {\n return <DynamicZone />;\n },\n graphql: {\n queryField({ model, field }) {\n const prefix = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n const templates = field.settings?.templates || [];\n\n const fragments = templates.map(template => {\n return `...on ${prefix}_${template.gqlTypeName} {\n ${createFieldsList({ model, fields: template.fields || [] })}\n _templateId\n __typename\n }`;\n });\n return `{ ${fragments.join(\"\\n\")} }`;\n }\n }\n }\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAkE;AAElE,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,+BAA+B,CAAC;AAElD,IAAMC,cAA4C,GAAG;EACjDC,UAAU,EAAEC,kCAAgB;EAC5BC,KAAK,EAAE,iBAAiB;EACxBC,WAAW,EAAE;AACjB,CAAC;AAEM,IAAMC,gBAA0C,GAAG;EACtDC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,oCAAoC;EAC1CC,KAAK,EAAE;IACHF,IAAI,EAAE,aAAa;IACnBG,KAAK,EAAEZ,CAAC,+FAAc;IACtBO,WAAW,EAAEP,CAAC,iJAA8D;IAC5Ea,IAAI,eAAE,6BAAC,4BAAU,OAAG;IACpBC,mBAAmB,EAAE,IAAI;IACzBC,qBAAqB,EAAE,KAAK;IAC5BX,UAAU,EAAE,oBAAAO,KAAK,EAAI;MACjB,IAAIA,KAAK,CAACK,cAAc,EAAE;QACtB,OAAO;UACHZ,UAAU,EAAE,CAAC,aAAa,CAAC;UAC3BE,KAAK,EAAE,qBAAqB;UAC5BC,WAAW,EAAE;QACjB,CAAC;MACL;MAEA,OAAO,CAAC,UAAU,CAAC;IACvB,CAAC;IACDJ,cAAc,EAAdA,cAAc;IACdc,SAAS,qBAACC,CAAC,EAAEC,SAAS,EAAE;MACpB,OAAOA,SAAS,CAACC,SAAS,KAAK,aAAa;IAChD,CAAC;IACDC,mBAAmB,EAAErB,CAAC,4GAAyB;IAC/CsB,WAAW,yBAAG;MACV,OAAO;QACHb,IAAI,EAAE,IAAI,CAACA,IAAI;QACfc,cAAc,EAAE,CAAC;UAAEb,IAAI,EAAE;QAAc,CAAC,CAAC;QACzCc,QAAQ,EAAE;UACNC,SAAS,EAAE;QACf,CAAC;QACDC,QAAQ,EAAE;UACNhB,IAAI,EAAE;QACV;MACJ,CAAC;IACL,CAAC;IACDiB,MAAM,oBAAG;MACL,oBAAO,6BAAC,wBAAW,OAAG;IAC1B,CAAC;IACDC,OAAO,EAAE;MACLC,UAAU,4BAAmB;QAAA;QAAA,IAAhBC,KAAK,QAALA,KAAK;UAAEnB,KAAK,QAALA,KAAK;QACrB,IAAMoB,MAAM,aAAMD,KAAK,CAACE,eAAe,cAAI,IAAAC,8BAAc,EAACtB,KAAK,CAACuB,OAAO,CAAC,CAAE;QAC1E,IAAMT,SAAS,GAAG,oBAAAd,KAAK,CAACa,QAAQ,oDAAd,gBAAgBC,SAAS,KAAI,EAAE;QAEjD,IAAMU,SAAS,GAAGV,SAAS,CAACW,GAAG,CAAC,UAAAC,QAAQ,EAAI;UACxC,uBAAgBN,MAAM,cAAIM,QAAQ,CAACC,WAAW,yCACxC,IAAAC,kCAAgB,EAAC;YAAET,KAAK,EAALA,KAAK;YAAEU,MAAM,EAAEH,QAAQ,CAACG,MAAM,IAAI;UAAG,CAAC,CAAC;QAIpE,CAAC,CAAC;QACF,mBAAYL,SAAS,CAACM,IAAI,CAAC,IAAI,CAAC;MACpC;IACJ;EACJ;AACJ,CAAC;AAAC"}
1
+ {"version":3,"names":["t","i18n","ns","listValidators","validators","commonValidators","title","description","dynamicZoneField","type","name","field","label","icon","allowMultipleValues","allowPredefinedValues","multipleValues","canAccept","_","draggable","fieldType","multipleValuesLabel","createField","listValidation","settings","templates","renderer","render","graphql","queryField","model","prefix","singularApiName","createTypeName","fieldId","fragments","map","template","gqlTypeName","createFieldsList","fields","join"],"sources":["dynamicZone.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as ObjectIcon } from \"@material-design-icons/svg/outlined/dynamic_form.svg\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { DynamicZone } from \"~/admin/plugins/fields/dynamicZone/DynamicZone\";\nimport { createFieldsList } from \"~/admin/graphql/createFieldsList\";\nimport { createTypeName } from \"~/utils/createTypeName\";\nimport { CmsModelFieldTypePlugin, CmsModelFieldValidatorsGroup } from \"~/types\";\nimport { commonValidators } from \"./dynamicZone/commonValidators\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst listValidators: CmsModelFieldValidatorsGroup = {\n validators: commonValidators,\n title: \"List validators\",\n description: \"These validators are applied to the entire dynamic zone.\"\n};\n\nexport const dynamicZoneField: CmsModelFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-dynamic-zone\",\n field: {\n type: \"dynamicZone\",\n label: t`Dynamic Zone`,\n description: t`Define content templates to be used during content creation.`,\n icon: <ObjectIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n validators: field => {\n if (field.multipleValues) {\n return {\n validators: [\"dynamicZone\"],\n title: \"Template Validators\",\n description: \"Validators for each of the templates in this dynamic zone.\"\n };\n }\n\n return [\"required\"];\n },\n listValidators,\n canAccept(_, draggable) {\n return draggable.fieldType !== \"dynamicZone\" && draggable.fieldType !== \"ref\";\n },\n multipleValuesLabel: t`Use as a list of values`,\n createField() {\n return {\n type: this.type,\n listValidation: [{ name: \"dynamicZone\" }],\n settings: {\n templates: []\n },\n renderer: {\n name: \"dynamicZone\"\n }\n };\n },\n render() {\n return <DynamicZone />;\n },\n graphql: {\n queryField({ model, field }) {\n const prefix = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n const templates = field.settings?.templates || [];\n\n const fragments = templates.map(template => {\n return `...on ${prefix}_${template.gqlTypeName} {\n ${createFieldsList({ model, fields: template.fields || [] })}\n _templateId\n __typename\n }`;\n });\n return `{ ${fragments.join(\"\\n\")} }`;\n }\n }\n }\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAkE;AAElE,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,+BAA+B,CAAC;AAElD,IAAMC,cAA4C,GAAG;EACjDC,UAAU,EAAEC,kCAAgB;EAC5BC,KAAK,EAAE,iBAAiB;EACxBC,WAAW,EAAE;AACjB,CAAC;AAEM,IAAMC,gBAAyC,GAAG;EACrDC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,oCAAoC;EAC1CC,KAAK,EAAE;IACHF,IAAI,EAAE,aAAa;IACnBG,KAAK,EAAEZ,CAAC,+FAAc;IACtBO,WAAW,EAAEP,CAAC,iJAA8D;IAC5Ea,IAAI,eAAE,6BAAC,4BAAU,OAAG;IACpBC,mBAAmB,EAAE,IAAI;IACzBC,qBAAqB,EAAE,KAAK;IAC5BX,UAAU,EAAE,oBAAAO,KAAK,EAAI;MACjB,IAAIA,KAAK,CAACK,cAAc,EAAE;QACtB,OAAO;UACHZ,UAAU,EAAE,CAAC,aAAa,CAAC;UAC3BE,KAAK,EAAE,qBAAqB;UAC5BC,WAAW,EAAE;QACjB,CAAC;MACL;MAEA,OAAO,CAAC,UAAU,CAAC;IACvB,CAAC;IACDJ,cAAc,EAAdA,cAAc;IACdc,SAAS,qBAACC,CAAC,EAAEC,SAAS,EAAE;MACpB,OAAOA,SAAS,CAACC,SAAS,KAAK,aAAa,IAAID,SAAS,CAACC,SAAS,KAAK,KAAK;IACjF,CAAC;IACDC,mBAAmB,EAAErB,CAAC,4GAAyB;IAC/CsB,WAAW,yBAAG;MACV,OAAO;QACHb,IAAI,EAAE,IAAI,CAACA,IAAI;QACfc,cAAc,EAAE,CAAC;UAAEb,IAAI,EAAE;QAAc,CAAC,CAAC;QACzCc,QAAQ,EAAE;UACNC,SAAS,EAAE;QACf,CAAC;QACDC,QAAQ,EAAE;UACNhB,IAAI,EAAE;QACV;MACJ,CAAC;IACL,CAAC;IACDiB,MAAM,oBAAG;MACL,oBAAO,6BAAC,wBAAW,OAAG;IAC1B,CAAC;IACDC,OAAO,EAAE;MACLC,UAAU,4BAAmB;QAAA;QAAA,IAAhBC,KAAK,QAALA,KAAK;UAAEnB,KAAK,QAALA,KAAK;QACrB,IAAMoB,MAAM,aAAMD,KAAK,CAACE,eAAe,cAAI,IAAAC,8BAAc,EAACtB,KAAK,CAACuB,OAAO,CAAC,CAAE;QAC1E,IAAMT,SAAS,GAAG,oBAAAd,KAAK,CAACa,QAAQ,oDAAd,gBAAgBC,SAAS,KAAI,EAAE;QAEjD,IAAMU,SAAS,GAAGV,SAAS,CAACW,GAAG,CAAC,UAAAC,QAAQ,EAAI;UACxC,uBAAgBN,MAAM,cAAIM,QAAQ,CAACC,WAAW,yCACxC,IAAAC,kCAAgB,EAAC;YAAET,KAAK,EAALA,KAAK;YAAEU,MAAM,EAAEH,QAAQ,CAACG,MAAM,IAAI;UAAG,CAAC,CAAC;QAIpE,CAAC,CAAC;QACF,mBAAYL,SAAS,CAACM,IAAI,CAAC,IAAI,CAAC;MACpC;IACJ;EACJ;AACJ,CAAC;AAAC"}
@@ -24,6 +24,9 @@ var plugin = {
24
24
  allowMultipleValues: true,
25
25
  allowPredefinedValues: false,
26
26
  multipleValuesLabel: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Use as a repeatable object"]))),
27
+ canAccept: function canAccept(_, draggable) {
28
+ return draggable.fieldType !== "dynamicZone";
29
+ },
27
30
  createField: function createField() {
28
31
  return {
29
32
  type: this.type,
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","settings","fields","layout","renderer","render","props","graphql","queryField","model","createFieldsList"],"sources":["object.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as ObjectIcon } from \"@material-design-icons/svg/outlined/ballot.svg\";\nimport { CmsModelFieldTypePlugin, CmsModelField } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ObjectFields } from \"./object/ObjectFields\";\nimport { createFieldsList } from \"~/admin/graphql/createFieldsList\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsModelFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-object\",\n field: {\n type: \"object\",\n label: t`Object`,\n description: t`Store nested data structures.`,\n icon: <ObjectIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a repeatable object`,\n createField() {\n return {\n type: this.type,\n validation: [],\n settings: {\n fields: [],\n layout: []\n },\n renderer: {\n name: \"\"\n }\n };\n },\n render(props) {\n return <ObjectFields {...props} />;\n },\n graphql: {\n queryField({ field, model }) {\n const fields = (field.settings ? field.settings.fields : []) as CmsModelField[];\n return `{ ${createFieldsList({ model, fields })} }`;\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAAoE;AAEpE,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,+BAA+B,CAAC;AAElD,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,8BAA8B;EACpCC,KAAK,EAAE;IACHF,IAAI,EAAE,QAAQ;IACdG,KAAK,EAAEP,CAAC,yFAAQ;IAChBQ,WAAW,EAAER,CAAC,kHAA+B;IAC7CS,IAAI,eAAE,6BAAC,sBAAU,OAAG;IACpBC,mBAAmB,EAAE,IAAI;IACzBC,qBAAqB,EAAE,KAAK;IAC5BC,mBAAmB,EAAEZ,CAAC,+GAA4B;IAClDa,WAAW,yBAAG;MACV,OAAO;QACHT,IAAI,EAAE,IAAI,CAACA,IAAI;QACfU,UAAU,EAAE,EAAE;QACdC,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVC,MAAM,EAAE;QACZ,CAAC;QACDC,QAAQ,EAAE;UACNb,IAAI,EAAE;QACV;MACJ,CAAC;IACL,CAAC;IACDc,MAAM,kBAACC,KAAK,EAAE;MACV,oBAAO,6BAAC,0BAAY,EAAKA,KAAK,CAAI;IACtC,CAAC;IACDC,OAAO,EAAE;MACLC,UAAU,4BAAmB;QAAA,IAAhBhB,KAAK,QAALA,KAAK;UAAEiB,KAAK,QAALA,KAAK;QACrB,IAAMP,MAAM,GAAIV,KAAK,CAACS,QAAQ,GAAGT,KAAK,CAACS,QAAQ,CAACC,MAAM,GAAG,EAAsB;QAC/E,mBAAY,IAAAQ,kCAAgB,EAAC;UAAED,KAAK,EAALA,KAAK;UAAEP,MAAM,EAANA;QAAO,CAAC,CAAC;MACnD;IACJ;EACJ;AACJ,CAAC;AAAC,eAEab,MAAM;AAAA"}
1
+ {"version":3,"names":["t","i18n","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","canAccept","_","draggable","fieldType","createField","validation","settings","fields","layout","renderer","render","props","graphql","queryField","model","createFieldsList"],"sources":["object.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as ObjectIcon } from \"@material-design-icons/svg/outlined/ballot.svg\";\nimport { CmsModelFieldTypePlugin, CmsModelField } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ObjectFields } from \"./object/ObjectFields\";\nimport { createFieldsList } from \"~/admin/graphql/createFieldsList\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsModelFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-object\",\n field: {\n type: \"object\",\n label: t`Object`,\n description: t`Store nested data structures.`,\n icon: <ObjectIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a repeatable object`,\n canAccept(_, draggable): boolean {\n return draggable.fieldType !== \"dynamicZone\";\n },\n createField() {\n return {\n type: this.type,\n validation: [],\n settings: {\n fields: [],\n layout: []\n },\n renderer: {\n name: \"\"\n }\n };\n },\n render(props) {\n return <ObjectFields {...props} />;\n },\n graphql: {\n queryField({ field, model }) {\n const fields = (field.settings ? field.settings.fields : []) as CmsModelField[];\n return `{ ${createFieldsList({ model, fields })} }`;\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAAoE;AAEpE,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,+BAA+B,CAAC;AAElD,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,8BAA8B;EACpCC,KAAK,EAAE;IACHF,IAAI,EAAE,QAAQ;IACdG,KAAK,EAAEP,CAAC,yFAAQ;IAChBQ,WAAW,EAAER,CAAC,kHAA+B;IAC7CS,IAAI,eAAE,6BAAC,sBAAU,OAAG;IACpBC,mBAAmB,EAAE,IAAI;IACzBC,qBAAqB,EAAE,KAAK;IAC5BC,mBAAmB,EAAEZ,CAAC,+GAA4B;IAClDa,SAAS,qBAACC,CAAC,EAAEC,SAAS,EAAW;MAC7B,OAAOA,SAAS,CAACC,SAAS,KAAK,aAAa;IAChD,CAAC;IACDC,WAAW,yBAAG;MACV,OAAO;QACHb,IAAI,EAAE,IAAI,CAACA,IAAI;QACfc,UAAU,EAAE,EAAE;QACdC,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACVC,MAAM,EAAE;QACZ,CAAC;QACDC,QAAQ,EAAE;UACNjB,IAAI,EAAE;QACV;MACJ,CAAC;IACL,CAAC;IACDkB,MAAM,kBAACC,KAAK,EAAE;MACV,oBAAO,6BAAC,0BAAY,EAAKA,KAAK,CAAI;IACtC,CAAC;IACDC,OAAO,EAAE;MACLC,UAAU,4BAAmB;QAAA,IAAhBpB,KAAK,QAALA,KAAK;UAAEqB,KAAK,QAALA,KAAK;QACrB,IAAMP,MAAM,GAAId,KAAK,CAACa,QAAQ,GAAGb,KAAK,CAACa,QAAQ,CAACC,MAAM,GAAG,EAAsB;QAC/E,mBAAY,IAAAQ,kCAAgB,EAAC;UAAED,KAAK,EAALA,KAAK;UAAEP,MAAM,EAANA;QAAO,CAAC,CAAC;MACnD;IACJ;EACJ;AACJ,CAAC;AAAC,eAEajB,MAAM;AAAA"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer<{
2
+ declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsFieldValueTransformer<{
3
3
  id: string;
4
4
  type: string;
5
5
  fieldId: string;
@@ -26,7 +26,7 @@ declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin
26
26
  name: string;
27
27
  };
28
28
  tags?: string[] | undefined;
29
- }>[] | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("@webiny/app").ApolloCacheObjectIdPlugin<import("@webiny/app/plugins/ApolloCacheObjectIdPlugin").ApolloCacheObject> | import("../../types").CmsContentDetailsPlugin[] | {
29
+ }>[] | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app").ApolloCacheObjectIdPlugin<import("@webiny/app/plugins/ApolloCacheObjectIdPlugin").ApolloCacheObject> | import("../../types").CmsContentDetailsPlugin[] | {
30
30
  name: string;
31
31
  type: string;
32
32
  render(): JSX.Element;
@@ -17,6 +17,7 @@ var _reactRouter = require("@webiny/react-router");
17
17
  var _AdminLayout = require("@webiny/app-admin/components/AdminLayout");
18
18
  var _i18n = require("@webiny/app/i18n");
19
19
  var _ContentEntriesViewConfig = require("../views/contentEntries/experiment/ContentEntriesViewConfig");
20
+ var _ContentEntriesContainer = require("../views/contentEntries/ContentEntriesContainer");
20
21
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
21
22
  var _excluded = ["children"];
22
23
  var t = _i18n.i18n.ns("app-headless-cms/admin/routes");
@@ -63,7 +64,7 @@ var plugins = [{
63
64
  render: function render() {
64
65
  return /*#__PURE__*/_react.default.createElement(_components.SecureRoute, {
65
66
  permission: "cms.contentModel"
66
- }, /*#__PURE__*/_react.default.createElement(_AdminLayout.AdminLayout, null, /*#__PURE__*/_react.default.createElement(_reactHelmet.default, null, /*#__PURE__*/_react.default.createElement("title", null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Content"]))))), /*#__PURE__*/_react.default.createElement(_ContentEntriesViewConfig.ContentEntriesView, null)));
67
+ }, /*#__PURE__*/_react.default.createElement(_AdminLayout.AdminLayout, null, /*#__PURE__*/_react.default.createElement(_reactHelmet.default, null, /*#__PURE__*/_react.default.createElement("title", null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Content"]))))), /*#__PURE__*/_react.default.createElement(_ContentEntriesContainer.ContentEntriesContainer, null, /*#__PURE__*/_react.default.createElement(_ContentEntriesViewConfig.ContentEntriesView, null))));
67
68
  }
68
69
  })
69
70
  }, {