@webiny/app-dynamic-pages 5.43.2 → 6.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/ContentEntryForm/AddPreviewPane.js +24 -29
- package/admin/ContentEntryForm/AddPreviewPane.js.map +1 -1
- package/admin/ContentEntryForm/PassEntryToDataSource.js +39 -59
- package/admin/ContentEntryForm/PassEntryToDataSource.js.map +1 -1
- package/admin/ContentEntryForm/PreviewPane.js +21 -30
- package/admin/ContentEntryForm/PreviewPane.js.map +1 -1
- package/admin/Extensions.js +9 -18
- package/admin/Extensions.js.map +1 -1
- package/admin/PageTemplateDialog/CreateTemplateDialog.js +89 -92
- package/admin/PageTemplateDialog/CreateTemplateDialog.js.map +1 -1
- package/admin/PageTemplateDialog/PageTemplateDialog.js +24 -35
- package/admin/PageTemplateDialog/PageTemplateDialog.js.map +1 -1
- package/admin/SetupDynamicPages.js +13 -20
- package/admin/SetupDynamicPages.js.map +1 -1
- package/admin/elements/Elements.js +9 -16
- package/admin/elements/Elements.js.map +1 -1
- package/admin/elements/entriesList.js +12 -19
- package/admin/elements/entriesList.js.map +1 -1
- package/admin/elements/entriesSearch.js +10 -17
- package/admin/elements/entriesSearch.js.map +1 -1
- package/admin/elements/eventHandlers/ContentTraverser.js +7 -32
- package/admin/elements/eventHandlers/ContentTraverser.js.map +1 -1
- package/admin/elements/renderers/DynamicGrid.js +26 -32
- package/admin/elements/renderers/DynamicGrid.js.map +1 -1
- package/admin/elements/renderers/EntriesList.js +11 -19
- package/admin/elements/renderers/EntriesList.js.map +1 -1
- package/admin/elements/renderers/Repeater.js +11 -19
- package/admin/elements/renderers/Repeater.js.map +1 -1
- package/admin/elements/repeater.js +10 -17
- package/admin/elements/repeater.js.map +1 -1
- package/admin/index.js +1 -12
- package/admin/index.js.map +1 -1
- package/admin/pageEditor/DynamicPageEditorConfig.js +7 -14
- package/admin/pageEditor/DynamicPageEditorConfig.js.map +1 -1
- package/admin/pageEditor/ElementEventHandlers.js +52 -59
- package/admin/pageEditor/ElementEventHandlers.js.map +1 -1
- package/admin/templateEditor/DynamicTemplateEditorConfig.js +22 -25
- package/admin/templateEditor/DynamicTemplateEditorConfig.js.map +1 -1
- package/admin/templateEditor/ElementEventHandlers.js +52 -59
- package/admin/templateEditor/ElementEventHandlers.js.map +1 -1
- package/admin/templateEditor/EntrySelector/EntrySelector.js +16 -27
- package/admin/templateEditor/EntrySelector/EntrySelector.js.map +1 -1
- package/admin/templateEditor/EntrySelector/index.js +1 -16
- package/admin/templateEditor/EntrySelector/index.js.map +1 -1
- package/dataInjection/AddEntriesListDataSourceContext.js +14 -20
- package/dataInjection/AddEntriesListDataSourceContext.js.map +1 -1
- package/dataInjection/editor/DisableGridDelete.js +10 -15
- package/dataInjection/editor/DisableGridDelete.js.map +1 -1
- package/dataInjection/editor/ElementDataSettings.js +13 -20
- package/dataInjection/editor/ElementDataSettings.js.map +1 -1
- package/dataInjection/editor/HideIfChildOfEntriesList.js +10 -18
- package/dataInjection/editor/HideIfChildOfEntriesList.js.map +1 -1
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js +16 -25
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js.map +1 -1
- package/dataInjection/editor/SetupElementDataSettings.js +9 -14
- package/dataInjection/editor/SetupElementDataSettings.js.map +1 -1
- package/dataInjection/renderers/DynamicElementRenderers.js +14 -21
- package/dataInjection/renderers/DynamicElementRenderers.js.map +1 -1
- package/dataInjection/renderers/DynamicGrid.js +24 -30
- package/dataInjection/renderers/DynamicGrid.js.map +1 -1
- package/dataInjection/renderers/EntriesList.js +20 -26
- package/dataInjection/renderers/EntriesList.js.map +1 -1
- package/dataInjection/renderers/EntriesSearch.js +9 -21
- package/dataInjection/renderers/EntriesSearch.js.map +1 -1
- package/dataInjection/renderers/Repeater.js +20 -26
- package/dataInjection/renderers/Repeater.js.map +1 -1
- package/features/index.js +3 -38
- package/features/index.js.map +1 -1
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js +18 -25
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js.map +1 -1
- package/features/pageTemplate/hasMainDataSource.js +2 -10
- package/features/pageTemplate/hasMainDataSource.js.map +1 -1
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js +8 -15
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js.map +1 -1
- package/package.json +12 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_emotion","_reactFontawesome","_Icon","_Button","_List","_Dialog","_Progress","_appHeadlessCms","_keyboard_arrow_right","_info","_article","_dashboard","_templateObject","_templateObject2","_EMOTION_STRINGIFIED_CSS_ERROR__","dialogStyles","css","_taggedTemplateLiteral2","default","Info","_base","process","env","NODE_ENV","target","label","name","styles","map","toString","ListItemStyled","ListItem","ListItemContent","Title","Highlight","DynamicTemplatesInfo","leftButton","ModelIcon","_ref","model","createElement","FontAwesomeIcon","style","color","icon","split","width","size","HeadlessPageTemplateItem","_ref2","description","highlight","onClick","hasNestedFields","Icon","ReactComponent","className","CreateTemplateDialog","exports","_ref3","open","onClose","onDynamicTemplateSelect","onStaticTemplateSelect","existingDynamicTemplateModelIds","_useState","useState","_useState2","_slicedToArray2","dynamicTemplateSelect","setDynamicTemplateSelect","_useModels","useModels","models","loading","Dialog","DialogTitle","DialogContent","tabIndex","Fragment","CircularProgress","List","index","key","some","id","modelId","undefined","height","DialogActions","ButtonDefault","DialogCancel"],"sources":["CreateTemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\n\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ButtonDefault } from \"@webiny/ui/Button\";\nimport { List, ListItem } from \"@webiny/ui/List\";\nimport { Dialog, DialogTitle, DialogContent, DialogActions, DialogCancel } from \"@webiny/ui/Dialog\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { useModels } from \"@webiny/app-headless-cms\";\nimport { CmsModel } from \"@webiny/app-headless-cms/types\";\n\nimport { ReactComponent as ArrowRightIcon } from \"@material-design-icons/svg/round/keyboard_arrow_right.svg\";\nimport { ReactComponent as InfoIcon } from \"@material-design-icons/svg/outlined/info.svg\";\nimport { ReactComponent as ArticleIcon } from \"@material-design-icons/svg/outlined/article.svg\";\nimport { ReactComponent as DatabaseIcon } from \"@material-design-icons/svg/outlined/dashboard.svg\";\n\nconst dialogStyles = css`\n .mdc-dialog__surface {\n width: 600px;\n min-width: 600px;\n }\n\n .mdc-dialog__content {\n padding-top: 0 !important;\n }\n\n .content-wrapper:focus-visible {\n outline: none;\n }\n`;\n\nconst Info = styled.div`\n display: flex;\n align-items: center;\n padding: 12px;\n margin-top: 12px;\n background: var(--mdc-theme-background);\n color: var(--mdc-theme-text-secondary-on-background);\n fill: var(--mdc-theme-text-secondary-on-background);\n cursor: pointer;\n\n & svg {\n margin-right: 12px;\n }\n`;\n\nconst ListItemStyled = styled(ListItem)`\n padding-top: 8px;\n padding-bottom: 8px;\n height: auto;\n min-height: 64px;\n color: var(--mdc-theme-text-secondary-on-background);\n fill: var(--mdc-theme-text-secondary-on-background);\n\n & svg {\n flex-shrink: 0;\n }\n\n .arrow-right {\n margin-left: auto;\n }\n`;\n\nconst ListItemContent = styled.div`\n display: grid;\n padding-left: 21px;\n padding-right: 21px;\n`;\n\nconst Title = styled.div`\n font-size: 20px;\n`;\n\nconst Highlight = styled.div`\n color: var(--mdc-theme-primary);\n`;\n\nconst DynamicTemplatesInfo = styled.div`\n padding: 24px;\n font-size: 20px;\n line-height: 24px;\n color: var(--mdc-theme-text-secondary-on-background);\n`;\n\nconst leftButton = css`\n margin-right: auto;\n`;\n\ninterface ModelIconProps {\n model: CmsModel;\n}\nconst ModelIcon: React.FC<ModelIconProps> = ({ model }) => {\n return (\n <FontAwesomeIcon\n style={{ color: \"var(--mdc-theme-text-secondary-on-background)\" }}\n icon={(model.icon || \"fas/star\").split(\"/\") as IconProp}\n width={32}\n size={\"2x\"}\n />\n );\n};\n\ntype HeadlessPageTemplateItemProps = {\n icon: React.ReactElement<any>;\n name: string;\n description?: string;\n highlight?: string;\n onClick: () => void;\n hasNestedFields?: boolean;\n};\n\nconst HeadlessPageTemplateItem: React.FC<HeadlessPageTemplateItemProps> = ({\n icon,\n name,\n description,\n highlight,\n onClick,\n hasNestedFields\n}) => {\n return (\n <ListItemStyled onClick={onClick}>\n <Icon icon={icon} />\n <ListItemContent>\n <Title>{name}</Title>\n {description}\n <Highlight>{highlight}</Highlight>\n </ListItemContent>\n {hasNestedFields && <ArrowRightIcon className=\"arrow-right\" />}\n </ListItemStyled>\n );\n};\n\ntype CreateTemplateDialogProps = {\n open: boolean;\n onClose: () => void;\n onDynamicTemplateSelect: (model: CmsModel) => void;\n onStaticTemplateSelect: () => void;\n existingDynamicTemplateModelIds: string[];\n};\n\nexport const CreateTemplateDialog: React.FC<CreateTemplateDialogProps> = ({\n open,\n onClose,\n onDynamicTemplateSelect,\n onStaticTemplateSelect,\n existingDynamicTemplateModelIds\n}) => {\n const [dynamicTemplateSelect, setDynamicTemplateSelect] = useState(false);\n const { models, loading } = useModels();\n\n return (\n <Dialog open={open} className={dialogStyles} onClose={onClose}>\n <DialogTitle>What type of a template you wish to create?</DialogTitle>\n <DynamicTemplatesInfo>\n Select a Headless Page Template for which you want to create a dynamic page\n template:\n </DynamicTemplatesInfo>\n <DialogContent>\n <div className=\"content-wrapper\" tabIndex={0}>\n {dynamicTemplateSelect ? (\n <>\n {loading && <CircularProgress />}\n <List>\n {models.map((model, index) => (\n <HeadlessPageTemplateItem\n key={index}\n icon={<ModelIcon model={model} />}\n name={model.name}\n description={model.description}\n highlight={\n existingDynamicTemplateModelIds.some(\n id => id === model.modelId\n )\n ? \"Template already exists, click to edit.\"\n : undefined\n }\n onClick={() => onDynamicTemplateSelect(model)}\n />\n ))}\n </List>\n </>\n ) : (\n <>\n <HeadlessPageTemplateItem\n icon={<ArticleIcon width={36} height={36} />}\n name={\"Static template\"}\n description={\"Used for creating new Page Builder pages.\"}\n onClick={onStaticTemplateSelect}\n />\n <HeadlessPageTemplateItem\n icon={<DatabaseIcon width={36} height={36} />}\n name={\"Dynamic template\"}\n description={\n \"Used for auto-generating pages from Headless CMS entries.\"\n }\n onClick={() => setDynamicTemplateSelect(true)}\n hasNestedFields\n />\n <Info>\n <InfoIcon />\n Click here to learn about different template types.\n </Info>\n </>\n )}\n </div>\n </DialogContent>\n <DialogActions>\n {dynamicTemplateSelect && (\n <ButtonDefault\n onClick={() => {\n setDynamicTemplateSelect(false);\n }}\n className={leftButton}\n >\n < Go back\n </ButtonDefault>\n )}\n <DialogCancel onClick={onClose}>Cancel</DialogCancel>\n </DialogActions>\n </Dialog>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","css","FontAwesomeIcon","Icon","ButtonDefault","List","ListItem","Dialog","DialogTitle","DialogContent","DialogActions","DialogCancel","CircularProgress","useModels","ReactComponent","ArrowRightIcon","InfoIcon","ArticleIcon","DatabaseIcon","dialogStyles","Info","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","ListItemStyled","ListItemContent","Title","Highlight","DynamicTemplatesInfo","leftButton","ModelIcon","model","createElement","style","color","icon","split","width","size","HeadlessPageTemplateItem","description","highlight","onClick","hasNestedFields","className","CreateTemplateDialog","open","onClose","onDynamicTemplateSelect","onStaticTemplateSelect","existingDynamicTemplateModelIds","dynamicTemplateSelect","setDynamicTemplateSelect","models","loading","tabIndex","Fragment","index","key","some","id","modelId","undefined","height"],"sources":["CreateTemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\n\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ButtonDefault } from \"@webiny/ui/Button\";\nimport { List, ListItem } from \"@webiny/ui/List\";\nimport { Dialog, DialogTitle, DialogContent, DialogActions, DialogCancel } from \"@webiny/ui/Dialog\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { useModels } from \"@webiny/app-headless-cms\";\nimport { CmsModel } from \"@webiny/app-headless-cms/types\";\n\nimport { ReactComponent as ArrowRightIcon } from \"@webiny/icons/keyboard_arrow_right.svg\";\nimport { ReactComponent as InfoIcon } from \"@webiny/icons/info.svg\";\nimport { ReactComponent as ArticleIcon } from \"@webiny/icons/article.svg\";\nimport { ReactComponent as DatabaseIcon } from \"@webiny/icons/dashboard.svg\";\n\nconst dialogStyles = css`\n .mdc-dialog__surface {\n width: 600px;\n min-width: 600px;\n }\n\n .mdc-dialog__content {\n padding-top: 0 !important;\n }\n\n .content-wrapper:focus-visible {\n outline: none;\n }\n`;\n\nconst Info = styled.div`\n display: flex;\n align-items: center;\n padding: 12px;\n margin-top: 12px;\n background: var(--mdc-theme-background);\n color: var(--mdc-theme-text-secondary-on-background);\n fill: var(--mdc-theme-text-secondary-on-background);\n cursor: pointer;\n\n & svg {\n margin-right: 12px;\n }\n`;\n\nconst ListItemStyled = styled(ListItem)`\n padding-top: 8px;\n padding-bottom: 8px;\n height: auto;\n min-height: 64px;\n color: var(--mdc-theme-text-secondary-on-background);\n fill: var(--mdc-theme-text-secondary-on-background);\n\n & svg {\n flex-shrink: 0;\n }\n\n .arrow-right {\n margin-left: auto;\n }\n`;\n\nconst ListItemContent = styled.div`\n display: grid;\n padding-left: 21px;\n padding-right: 21px;\n`;\n\nconst Title = styled.div`\n font-size: 20px;\n`;\n\nconst Highlight = styled.div`\n color: var(--mdc-theme-primary);\n`;\n\nconst DynamicTemplatesInfo = styled.div`\n padding: 24px;\n font-size: 20px;\n line-height: 24px;\n color: var(--mdc-theme-text-secondary-on-background);\n`;\n\nconst leftButton = css`\n margin-right: auto;\n`;\n\ninterface ModelIconProps {\n model: CmsModel;\n}\nconst ModelIcon: React.FC<ModelIconProps> = ({ model }) => {\n return (\n <FontAwesomeIcon\n style={{ color: \"var(--mdc-theme-text-secondary-on-background)\" }}\n icon={(model.icon || \"fas/star\").split(\"/\") as IconProp}\n width={32}\n size={\"2x\"}\n />\n );\n};\n\ntype HeadlessPageTemplateItemProps = {\n icon: React.ReactElement<any>;\n name: string;\n description?: string;\n highlight?: string;\n onClick: () => void;\n hasNestedFields?: boolean;\n};\n\nconst HeadlessPageTemplateItem: React.FC<HeadlessPageTemplateItemProps> = ({\n icon,\n name,\n description,\n highlight,\n onClick,\n hasNestedFields\n}) => {\n return (\n <ListItemStyled onClick={onClick}>\n <Icon icon={icon} />\n <ListItemContent>\n <Title>{name}</Title>\n {description}\n <Highlight>{highlight}</Highlight>\n </ListItemContent>\n {hasNestedFields && <ArrowRightIcon className=\"arrow-right\" />}\n </ListItemStyled>\n );\n};\n\ntype CreateTemplateDialogProps = {\n open: boolean;\n onClose: () => void;\n onDynamicTemplateSelect: (model: CmsModel) => void;\n onStaticTemplateSelect: () => void;\n existingDynamicTemplateModelIds: string[];\n};\n\nexport const CreateTemplateDialog: React.FC<CreateTemplateDialogProps> = ({\n open,\n onClose,\n onDynamicTemplateSelect,\n onStaticTemplateSelect,\n existingDynamicTemplateModelIds\n}) => {\n const [dynamicTemplateSelect, setDynamicTemplateSelect] = useState(false);\n const { models, loading } = useModels();\n\n return (\n <Dialog open={open} className={dialogStyles} onClose={onClose}>\n <DialogTitle>What type of a template you wish to create?</DialogTitle>\n <DynamicTemplatesInfo>\n Select a Headless Page Template for which you want to create a dynamic page\n template:\n </DynamicTemplatesInfo>\n <DialogContent>\n <div className=\"content-wrapper\" tabIndex={0}>\n {dynamicTemplateSelect ? (\n <>\n {loading && <CircularProgress />}\n <List>\n {models.map((model, index) => (\n <HeadlessPageTemplateItem\n key={index}\n icon={<ModelIcon model={model} />}\n name={model.name}\n description={model.description}\n highlight={\n existingDynamicTemplateModelIds.some(\n id => id === model.modelId\n )\n ? \"Template already exists, click to edit.\"\n : undefined\n }\n onClick={() => onDynamicTemplateSelect(model)}\n />\n ))}\n </List>\n </>\n ) : (\n <>\n <HeadlessPageTemplateItem\n icon={<ArticleIcon width={36} height={36} />}\n name={\"Static template\"}\n description={\"Used for creating new Page Builder pages.\"}\n onClick={onStaticTemplateSelect}\n />\n <HeadlessPageTemplateItem\n icon={<DatabaseIcon width={36} height={36} />}\n name={\"Dynamic template\"}\n description={\n \"Used for auto-generating pages from Headless CMS entries.\"\n }\n onClick={() => setDynamicTemplateSelect(true)}\n hasNestedFields\n />\n <Info>\n <InfoIcon />\n Click here to learn about different template types.\n </Info>\n </>\n )}\n </div>\n </DialogContent>\n <DialogActions>\n {dynamicTemplateSelect && (\n <ButtonDefault\n onClick={() => {\n setDynamicTemplateSelect(false);\n }}\n className={leftButton}\n >\n < Go back\n </ButtonDefault>\n )}\n <DialogCancel onClick={onClose}>Cancel</DialogCancel>\n </DialogActions>\n </Dialog>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,52 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.PageTemplateDialog = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _appAdmin = require("@webiny/app-admin");
|
|
12
|
-
var _reactRouter = require("@webiny/react-router");
|
|
13
|
-
var _CreatePageTemplateDialog = require("@webiny/app-page-builder/admin/views/PageTemplates/CreatePageTemplateDialog");
|
|
14
|
-
var _CreateTemplateDialog = require("./CreateTemplateDialog");
|
|
15
|
-
var _useCreateDynamicTemplate = require("../../features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate");
|
|
16
|
-
var PageTemplateDialog = exports.PageTemplateDialog = _CreatePageTemplateDialog.CreatePageTemplateDialog.createDecorator(function (Original) {
|
|
1
|
+
import React, { useState, useCallback } from "react";
|
|
2
|
+
import { useSnackbar } from "@webiny/app-admin";
|
|
3
|
+
import { useRouter } from "@webiny/react-router";
|
|
4
|
+
import { CreatePageTemplateDialog } from "@webiny/app-page-builder/admin/views/PageTemplates/CreatePageTemplateDialog";
|
|
5
|
+
import { CreateTemplateDialog } from "./CreateTemplateDialog";
|
|
6
|
+
import { useCreateDynamicPageTemplate } from "../../features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate";
|
|
7
|
+
export const PageTemplateDialog = CreatePageTemplateDialog.createDecorator(Original => {
|
|
17
8
|
return function CreatePageTemplateDialog(props) {
|
|
18
|
-
|
|
19
|
-
history
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
9
|
+
const {
|
|
10
|
+
history
|
|
11
|
+
} = useRouter();
|
|
12
|
+
const {
|
|
13
|
+
showSnackbar
|
|
14
|
+
} = useSnackbar();
|
|
15
|
+
const {
|
|
16
|
+
createDynamicPageTemplate
|
|
17
|
+
} = useCreateDynamicPageTemplate();
|
|
18
|
+
const [showStaticTemplateDialog, setShowStaticTemplateDialog] = useState(false);
|
|
19
|
+
const createTemplate = useCallback(async model => {
|
|
29
20
|
try {
|
|
30
|
-
|
|
31
|
-
history.push(
|
|
21
|
+
const template = await createDynamicPageTemplate(model);
|
|
22
|
+
history.push(`/page-builder/template-editor/${template.id}`);
|
|
32
23
|
} catch (error) {
|
|
33
24
|
showSnackbar(error.message);
|
|
34
25
|
}
|
|
35
26
|
}, []);
|
|
36
|
-
|
|
27
|
+
const onClose = useCallback(() => {
|
|
37
28
|
setShowStaticTemplateDialog(false);
|
|
38
29
|
props.onClose();
|
|
39
30
|
}, [props.onClose]);
|
|
40
|
-
return /*#__PURE__*/
|
|
31
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Original, Object.assign({}, props, {
|
|
41
32
|
open: showStaticTemplateDialog,
|
|
42
33
|
onClose: onClose
|
|
43
|
-
})), /*#__PURE__*/
|
|
34
|
+
})), /*#__PURE__*/React.createElement(CreateTemplateDialog, {
|
|
44
35
|
open: props.open && !showStaticTemplateDialog,
|
|
45
36
|
onClose: props.onClose,
|
|
46
37
|
onDynamicTemplateSelect: createTemplate,
|
|
47
|
-
onStaticTemplateSelect:
|
|
48
|
-
return setShowStaticTemplateDialog(true);
|
|
49
|
-
},
|
|
38
|
+
onStaticTemplateSelect: () => setShowStaticTemplateDialog(true),
|
|
50
39
|
existingDynamicTemplateModelIds: []
|
|
51
40
|
}));
|
|
52
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","useState","useCallback","useSnackbar","useRouter","CreatePageTemplateDialog","CreateTemplateDialog","useCreateDynamicPageTemplate","PageTemplateDialog","createDecorator","Original","props","history","showSnackbar","createDynamicPageTemplate","showStaticTemplateDialog","setShowStaticTemplateDialog","createTemplate","model","template","push","id","error","message","onClose","createElement","Fragment","Object","assign","open","onDynamicTemplateSelect","onStaticTemplateSelect","existingDynamicTemplateModelIds"],"sources":["PageTemplateDialog.tsx"],"sourcesContent":["import React, { useState, useCallback } from \"react\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { CmsModel } from \"@webiny/app-headless-cms/types\";\nimport { CreatePageTemplateDialog } from \"@webiny/app-page-builder/admin/views/PageTemplates/CreatePageTemplateDialog\";\nimport { CreateTemplateDialog } from \"~/admin/PageTemplateDialog/CreateTemplateDialog\";\nimport { useCreateDynamicPageTemplate } from \"~/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate\";\n\nexport const PageTemplateDialog = CreatePageTemplateDialog.createDecorator(Original => {\n return function CreatePageTemplateDialog(props) {\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { createDynamicPageTemplate } = useCreateDynamicPageTemplate();\n const [showStaticTemplateDialog, setShowStaticTemplateDialog] = useState(false);\n\n const createTemplate = useCallback(async (model: CmsModel) => {\n try {\n const template = await createDynamicPageTemplate(model);\n history.push(`/page-builder/template-editor/${template.id}`);\n } catch (error) {\n showSnackbar(error.message);\n }\n }, []);\n\n const onClose = useCallback(() => {\n setShowStaticTemplateDialog(false);\n props.onClose();\n }, [props.onClose]);\n\n return (\n <>\n <Original {...props} open={showStaticTemplateDialog} onClose={onClose} />\n <CreateTemplateDialog\n open={props.open && !showStaticTemplateDialog}\n onClose={props.onClose}\n onDynamicTemplateSelect={createTemplate}\n onStaticTemplateSelect={() => setShowStaticTemplateDialog(true)}\n existingDynamicTemplateModelIds={[]}\n />\n </>\n );\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AACpD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,SAAS,QAAQ,sBAAsB;AAEhD,SAASC,wBAAwB,QAAQ,6EAA6E;AACtH,SAASC,oBAAoB;AAC7B,SAASC,4BAA4B;AAErC,OAAO,MAAMC,kBAAkB,GAAGH,wBAAwB,CAACI,eAAe,CAACC,QAAQ,IAAI;EACnF,OAAO,SAASL,wBAAwBA,CAACM,KAAK,EAAE;IAC5C,MAAM;MAAEC;IAAQ,CAAC,GAAGR,SAAS,CAAC,CAAC;IAC/B,MAAM;MAAES;IAAa,CAAC,GAAGV,WAAW,CAAC,CAAC;IACtC,MAAM;MAAEW;IAA0B,CAAC,GAAGP,4BAA4B,CAAC,CAAC;IACpE,MAAM,CAACQ,wBAAwB,EAAEC,2BAA2B,CAAC,GAAGf,QAAQ,CAAC,KAAK,CAAC;IAE/E,MAAMgB,cAAc,GAAGf,WAAW,CAAC,MAAOgB,KAAe,IAAK;MAC1D,IAAI;QACA,MAAMC,QAAQ,GAAG,MAAML,yBAAyB,CAACI,KAAK,CAAC;QACvDN,OAAO,CAACQ,IAAI,CAAC,iCAAiCD,QAAQ,CAACE,EAAE,EAAE,CAAC;MAChE,CAAC,CAAC,OAAOC,KAAK,EAAE;QACZT,YAAY,CAACS,KAAK,CAACC,OAAO,CAAC;MAC/B;IACJ,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMC,OAAO,GAAGtB,WAAW,CAAC,MAAM;MAC9Bc,2BAA2B,CAAC,KAAK,CAAC;MAClCL,KAAK,CAACa,OAAO,CAAC,CAAC;IACnB,CAAC,EAAE,CAACb,KAAK,CAACa,OAAO,CAAC,CAAC;IAEnB,oBACIxB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,qBACI1B,KAAA,CAAAyB,aAAA,CAACf,QAAQ,EAAAiB,MAAA,CAAAC,MAAA,KAAKjB,KAAK;MAAEkB,IAAI,EAAEd,wBAAyB;MAACS,OAAO,EAAEA;IAAQ,EAAE,CAAC,eACzExB,KAAA,CAAAyB,aAAA,CAACnB,oBAAoB;MACjBuB,IAAI,EAAElB,KAAK,CAACkB,IAAI,IAAI,CAACd,wBAAyB;MAC9CS,OAAO,EAAEb,KAAK,CAACa,OAAQ;MACvBM,uBAAuB,EAAEb,cAAe;MACxCc,sBAAsB,EAAEA,CAAA,KAAMf,2BAA2B,CAAC,IAAI,CAAE;MAChEgB,+BAA+B,EAAE;IAAG,CACvC,CACH,CAAC;EAEX,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,23 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _DynamicPageEditorConfig = require("./pageEditor/DynamicPageEditorConfig");
|
|
15
|
-
var _DynamicElementRenderers = require("../dataInjection/renderers/DynamicElementRenderers");
|
|
16
|
-
var _appHeadlessCms = require("@webiny/app-headless-cms");
|
|
17
|
-
var _WebsiteDataInjection = require("@webiny/app-page-builder/dataInjection/presets/WebsiteDataInjection");
|
|
18
|
-
var _AddEntriesListDataSourceContext = require("../dataInjection/AddEntriesListDataSourceContext");
|
|
19
|
-
var SetupDynamicPages = exports.SetupDynamicPages = function SetupDynamicPages() {
|
|
20
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Elements.Elements, null), /*#__PURE__*/_react.default.createElement(_PageTemplateDialog.PageTemplateDialog, null), /*#__PURE__*/_react.default.createElement(_DynamicTemplateEditorConfig.DynamicTemplateEditorConfig, null), /*#__PURE__*/_react.default.createElement(_DynamicPageEditorConfig.DynamicPageEditorConfig, null), /*#__PURE__*/_react.default.createElement(_AddPreviewPane.AddPreviewPane, null), /*#__PURE__*/_react.default.createElement(_PassEntryToDataSource.PassEntryToDataSource, null), /*#__PURE__*/_react.default.createElement(_DynamicElementRenderers.DynamicElementRenderers, null), /*#__PURE__*/_react.default.createElement(_appHeadlessCms.ContentEntryEditorConfig, null, /*#__PURE__*/_react.default.createElement(_WebsiteDataInjection.WebsiteDataInjection, null), /*#__PURE__*/_react.default.createElement(_AddEntriesListDataSourceContext.AddEntriesListDataSourceContext, null)));
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { PageTemplateDialog } from "./PageTemplateDialog/PageTemplateDialog";
|
|
3
|
+
import { DynamicTemplateEditorConfig } from "./templateEditor/DynamicTemplateEditorConfig";
|
|
4
|
+
import { AddPreviewPane } from "./ContentEntryForm/AddPreviewPane";
|
|
5
|
+
import { PassEntryToDataSource } from "./ContentEntryForm/PassEntryToDataSource";
|
|
6
|
+
import { Elements } from "./elements/Elements";
|
|
7
|
+
import { DynamicPageEditorConfig } from "./pageEditor/DynamicPageEditorConfig";
|
|
8
|
+
import { DynamicElementRenderers } from "../dataInjection/renderers/DynamicElementRenderers";
|
|
9
|
+
import { ContentEntryEditorConfig } from "@webiny/app-headless-cms";
|
|
10
|
+
import { WebsiteDataInjection } from "@webiny/app-page-builder/dataInjection/presets/WebsiteDataInjection";
|
|
11
|
+
import { AddEntriesListDataSourceContext } from "../dataInjection/AddEntriesListDataSourceContext";
|
|
12
|
+
export const SetupDynamicPages = () => {
|
|
13
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Elements, null), /*#__PURE__*/React.createElement(PageTemplateDialog, null), /*#__PURE__*/React.createElement(DynamicTemplateEditorConfig, null), /*#__PURE__*/React.createElement(DynamicPageEditorConfig, null), /*#__PURE__*/React.createElement(AddPreviewPane, null), /*#__PURE__*/React.createElement(PassEntryToDataSource, null), /*#__PURE__*/React.createElement(DynamicElementRenderers, null), /*#__PURE__*/React.createElement(ContentEntryEditorConfig, null, /*#__PURE__*/React.createElement(WebsiteDataInjection, null), /*#__PURE__*/React.createElement(AddEntriesListDataSourceContext, null)));
|
|
21
14
|
};
|
|
22
15
|
|
|
23
16
|
//# sourceMappingURL=SetupDynamicPages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","PageTemplateDialog","DynamicTemplateEditorConfig","AddPreviewPane","PassEntryToDataSource","Elements","DynamicPageEditorConfig","DynamicElementRenderers","ContentEntryEditorConfig","WebsiteDataInjection","AddEntriesListDataSourceContext","SetupDynamicPages","createElement","Fragment"],"sources":["SetupDynamicPages.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageTemplateDialog } from \"~/admin/PageTemplateDialog/PageTemplateDialog\";\nimport { DynamicTemplateEditorConfig } from \"~/admin/templateEditor/DynamicTemplateEditorConfig\";\nimport { AddPreviewPane } from \"~/admin/ContentEntryForm/AddPreviewPane\";\nimport { PassEntryToDataSource } from \"~/admin/ContentEntryForm/PassEntryToDataSource\";\nimport { Elements } from \"~/admin/elements/Elements\";\nimport { DynamicPageEditorConfig } from \"~/admin/pageEditor/DynamicPageEditorConfig\";\nimport { DynamicElementRenderers } from \"~/dataInjection/renderers/DynamicElementRenderers\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { WebsiteDataInjection } from \"@webiny/app-page-builder/dataInjection/presets/WebsiteDataInjection\";\nimport { AddEntriesListDataSourceContext } from \"~/dataInjection/AddEntriesListDataSourceContext\";\n\nexport const SetupDynamicPages = () => {\n return (\n <>\n {/* Register editor elements plugins. */}\n <Elements />\n\n {/* Decorate page template dialog. */}\n <PageTemplateDialog />\n\n {/* Configure Template editor. */}\n <DynamicTemplateEditorConfig />\n\n {/* Configure Page editor. */}\n <DynamicPageEditorConfig />\n\n {/* Enable live preview in the CMS entry form. */}\n <AddPreviewPane />\n\n <PassEntryToDataSource />\n\n {/* Register element renderers and decorators. */}\n <DynamicElementRenderers />\n\n {/* Add website-style data binding to page preview. */}\n <ContentEntryEditorConfig>\n <WebsiteDataInjection />\n <AddEntriesListDataSourceContext />\n </ContentEntryEditorConfig>\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB;AAC3B,SAASC,2BAA2B;AACpC,SAASC,cAAc;AACvB,SAASC,qBAAqB;AAC9B,SAASC,QAAQ;AACjB,SAASC,uBAAuB;AAChC,SAASC,uBAAuB;AAChC,SAASC,wBAAwB,QAAQ,0BAA0B;AACnE,SAASC,oBAAoB,QAAQ,qEAAqE;AAC1G,SAASC,+BAA+B;AAExC,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACnC,oBACIX,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAAa,QAAA,qBAEIb,KAAA,CAAAY,aAAA,CAACP,QAAQ,MAAE,CAAC,eAGZL,KAAA,CAAAY,aAAA,CAACX,kBAAkB,MAAE,CAAC,eAGtBD,KAAA,CAAAY,aAAA,CAACV,2BAA2B,MAAE,CAAC,eAG/BF,KAAA,CAAAY,aAAA,CAACN,uBAAuB,MAAE,CAAC,eAG3BN,KAAA,CAAAY,aAAA,CAACT,cAAc,MAAE,CAAC,eAElBH,KAAA,CAAAY,aAAA,CAACR,qBAAqB,MAAE,CAAC,eAGzBJ,KAAA,CAAAY,aAAA,CAACL,uBAAuB,MAAE,CAAC,eAG3BP,KAAA,CAAAY,aAAA,CAACJ,wBAAwB,qBACrBR,KAAA,CAAAY,aAAA,CAACH,oBAAoB,MAAE,CAAC,eACxBT,KAAA,CAAAY,aAAA,CAACF,+BAA+B,MAAE,CACZ,CAC5B,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _repeater = require("./repeater");
|
|
11
|
-
var _entriesList = require("./entriesList");
|
|
12
|
-
var _DynamicGrid = require("./renderers/DynamicGrid");
|
|
13
|
-
var _entriesSearch = require("./entriesSearch");
|
|
14
|
-
var Elements = exports.Elements = /*#__PURE__*/_react.default.memo(function Elements() {
|
|
15
|
-
_plugins.plugins.register((0, _repeater.createRepeaterElement)(), (0, _entriesList.createEntriesListElement)(), (0, _entriesSearch.createEntriesSearchElement)());
|
|
16
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DynamicGrid.DynamicGrid, null));
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { plugins } from "@webiny/plugins";
|
|
3
|
+
import { createRepeaterElement } from "./repeater";
|
|
4
|
+
import { createEntriesListElement } from "./entriesList";
|
|
5
|
+
import { DynamicGrid } from "./renderers/DynamicGrid";
|
|
6
|
+
import { createEntriesSearchElement } from "./entriesSearch";
|
|
7
|
+
export const Elements = /*#__PURE__*/React.memo(function Elements() {
|
|
8
|
+
plugins.register(createRepeaterElement(), createEntriesListElement(), createEntriesSearchElement());
|
|
9
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DynamicGrid, null));
|
|
17
10
|
});
|
|
18
11
|
|
|
19
12
|
//# sourceMappingURL=Elements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","plugins","createRepeaterElement","createEntriesListElement","DynamicGrid","createEntriesSearchElement","Elements","memo","register","createElement","Fragment"],"sources":["Elements.tsx"],"sourcesContent":["import React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { createRepeaterElement } from \"~/admin/elements/repeater\";\nimport { createEntriesListElement } from \"~/admin/elements/entriesList\";\nimport { DynamicGrid } from \"./renderers/DynamicGrid\";\nimport { createEntriesSearchElement } from \"~/admin/elements/entriesSearch\";\n\nexport const Elements = React.memo(function Elements() {\n plugins.register(\n createRepeaterElement(),\n createEntriesListElement(),\n createEntriesSearchElement()\n );\n\n return (\n <>\n <DynamicGrid />\n </>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,qBAAqB;AAC9B,SAASC,wBAAwB;AACjC,SAASC,WAAW;AACpB,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,QAAQ,gBAAGN,KAAK,CAACO,IAAI,CAAC,SAASD,QAAQA,CAAA,EAAG;EACnDL,OAAO,CAACO,QAAQ,CACZN,qBAAqB,CAAC,CAAC,EACvBC,wBAAwB,CAAC,CAAC,EAC1BE,0BAA0B,CAAC,CAC/B,CAAC;EAED,oBACIL,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,qBACIV,KAAA,CAAAS,aAAA,CAACL,WAAW,MAAE,CAChB,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,38 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.createEntriesListElement = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _repeat = require("@material-design-icons/svg/round/repeat.svg");
|
|
10
|
-
var _EntriesList = require("./renderers/EntriesList");
|
|
11
|
-
var _helpers = require("@webiny/app-page-builder/editor/helpers");
|
|
12
|
-
var createEntriesListElement = exports.createEntriesListElement = function createEntriesListElement() {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ReactComponent as RepeatIcon } from "@webiny/icons/repeat.svg";
|
|
3
|
+
import { AdminEntriesListRenderer } from "./renderers/EntriesList";
|
|
4
|
+
import { createElement } from "@webiny/app-page-builder/editor/helpers";
|
|
5
|
+
export const createEntriesListElement = () => {
|
|
13
6
|
return {
|
|
14
|
-
name:
|
|
7
|
+
name: `pb-editor-page-element-entries-list`,
|
|
15
8
|
type: "pb-editor-page-element",
|
|
16
9
|
elementType: "entries-list",
|
|
17
10
|
canReceiveChildren: true,
|
|
18
11
|
toolbar: {
|
|
19
12
|
title: "Entries List",
|
|
20
13
|
group: "pb-editor-element-group-basic",
|
|
21
|
-
preview
|
|
22
|
-
return /*#__PURE__*/
|
|
14
|
+
preview() {
|
|
15
|
+
return /*#__PURE__*/React.createElement(RepeatIcon, null);
|
|
23
16
|
}
|
|
24
17
|
},
|
|
25
18
|
settings: ["pb-editor-page-element-settings-clone", "pb-editor-page-element-settings-delete"],
|
|
26
19
|
target: ["cell", "block"],
|
|
27
|
-
create
|
|
20
|
+
create() {
|
|
28
21
|
return {
|
|
29
22
|
type: this.elementType,
|
|
30
|
-
elements: [
|
|
23
|
+
elements: [createElement("grid")],
|
|
31
24
|
data: {}
|
|
32
25
|
};
|
|
33
26
|
},
|
|
34
|
-
render
|
|
35
|
-
return /*#__PURE__*/
|
|
27
|
+
render(props) {
|
|
28
|
+
return /*#__PURE__*/React.createElement(AdminEntriesListRenderer, Object.assign({}, props, {
|
|
36
29
|
element: props.element
|
|
37
30
|
}));
|
|
38
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","ReactComponent","RepeatIcon","AdminEntriesListRenderer","createElement","createEntriesListElement","name","type","elementType","canReceiveChildren","toolbar","title","group","preview","settings","target","create","elements","data","render","props","Object","assign","element"],"sources":["entriesList.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as RepeatIcon } from \"@webiny/icons/repeat.svg\";\nimport { PbEditorPageElementPlugin, PbElement } from \"@webiny/app-page-builder/types\";\nimport { AdminEntriesListRenderer } from \"./renderers/EntriesList\";\nimport { createElement } from \"@webiny/app-page-builder/editor/helpers\";\n\nexport const createEntriesListElement = (): PbEditorPageElementPlugin => {\n return {\n name: `pb-editor-page-element-entries-list`,\n type: \"pb-editor-page-element\",\n elementType: \"entries-list\",\n canReceiveChildren: true,\n toolbar: {\n title: \"Entries List\",\n group: \"pb-editor-element-group-basic\",\n preview() {\n return <RepeatIcon />;\n }\n },\n settings: [\n \"pb-editor-page-element-settings-clone\",\n \"pb-editor-page-element-settings-delete\"\n ],\n target: [\"cell\", \"block\"],\n create() {\n return {\n type: this.elementType,\n elements: [createElement(\"grid\")],\n data: {}\n };\n },\n\n render(props) {\n return <AdminEntriesListRenderer {...props} element={props.element as PbElement} />;\n }\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,IAAIC,UAAU,QAAQ,0BAA0B;AAEvE,SAASC,wBAAwB;AACjC,SAASC,aAAa,QAAQ,yCAAyC;AAEvE,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAiC;EACrE,OAAO;IACHC,IAAI,EAAE,qCAAqC;IAC3CC,IAAI,EAAE,wBAAwB;IAC9BC,WAAW,EAAE,cAAc;IAC3BC,kBAAkB,EAAE,IAAI;IACxBC,OAAO,EAAE;MACLC,KAAK,EAAE,cAAc;MACrBC,KAAK,EAAE,+BAA+B;MACtCC,OAAOA,CAAA,EAAG;QACN,oBAAOb,KAAA,CAAAI,aAAA,CAACF,UAAU,MAAE,CAAC;MACzB;IACJ,CAAC;IACDY,QAAQ,EAAE,CACN,uCAAuC,EACvC,wCAAwC,CAC3C;IACDC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACzBC,MAAMA,CAAA,EAAG;MACL,OAAO;QACHT,IAAI,EAAE,IAAI,CAACC,WAAW;QACtBS,QAAQ,EAAE,CAACb,aAAa,CAAC,MAAM,CAAC,CAAC;QACjCc,IAAI,EAAE,CAAC;MACX,CAAC;IACL,CAAC;IAEDC,MAAMA,CAACC,KAAK,EAAE;MACV,oBAAOpB,KAAA,CAAAI,aAAA,CAACD,wBAAwB,EAAAkB,MAAA,CAAAC,MAAA,KAAKF,KAAK;QAAEG,OAAO,EAAEH,KAAK,CAACG;MAAqB,EAAE,CAAC;IACvF;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,37 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createEntriesSearchElement = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _repeat = require("@material-design-icons/svg/round/repeat.svg");
|
|
10
|
-
var _EntriesSearch = require("../../dataInjection/renderers/EntriesSearch");
|
|
11
|
-
var createEntriesSearchElement = exports.createEntriesSearchElement = function createEntriesSearchElement() {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ReactComponent as RepeatIcon } from "@webiny/icons/repeat.svg";
|
|
3
|
+
import { EntriesSearchRenderer } from "../../dataInjection/renderers/EntriesSearch";
|
|
4
|
+
export const createEntriesSearchElement = () => {
|
|
12
5
|
return {
|
|
13
|
-
name:
|
|
6
|
+
name: `pb-editor-page-element-entries-search`,
|
|
14
7
|
type: "pb-editor-page-element",
|
|
15
8
|
elementType: "entries-search",
|
|
16
9
|
canReceiveChildren: false,
|
|
17
10
|
toolbar: {
|
|
18
11
|
title: "Entries Search",
|
|
19
12
|
group: "pb-editor-element-group-basic",
|
|
20
|
-
preview
|
|
21
|
-
return /*#__PURE__*/
|
|
13
|
+
preview() {
|
|
14
|
+
return /*#__PURE__*/React.createElement(RepeatIcon, null);
|
|
22
15
|
}
|
|
23
16
|
},
|
|
24
17
|
settings: ["pb-editor-page-element-settings-delete"],
|
|
25
18
|
target: ["cell"],
|
|
26
|
-
create
|
|
19
|
+
create() {
|
|
27
20
|
return {
|
|
28
21
|
type: this.elementType,
|
|
29
22
|
elements: [],
|
|
30
23
|
data: {}
|
|
31
24
|
};
|
|
32
25
|
},
|
|
33
|
-
render
|
|
34
|
-
return /*#__PURE__*/
|
|
26
|
+
render(props) {
|
|
27
|
+
return /*#__PURE__*/React.createElement(EntriesSearchRenderer, Object.assign({}, props, {
|
|
35
28
|
element: props.element
|
|
36
29
|
}));
|
|
37
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","ReactComponent","RepeatIcon","EntriesSearchRenderer","createEntriesSearchElement","name","type","elementType","canReceiveChildren","toolbar","title","group","preview","createElement","settings","target","create","elements","data","render","props","Object","assign","element"],"sources":["entriesSearch.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as RepeatIcon } from \"@webiny/icons/repeat.svg\";\nimport { PbEditorPageElementPlugin, PbElement } from \"@webiny/app-page-builder/types\";\nimport { EntriesSearchRenderer } from \"~/dataInjection/renderers/EntriesSearch\";\n\nexport const createEntriesSearchElement = (): PbEditorPageElementPlugin => {\n return {\n name: `pb-editor-page-element-entries-search`,\n type: \"pb-editor-page-element\",\n elementType: \"entries-search\",\n canReceiveChildren: false,\n toolbar: {\n title: \"Entries Search\",\n group: \"pb-editor-element-group-basic\",\n preview() {\n return <RepeatIcon />;\n }\n },\n settings: [\"pb-editor-page-element-settings-delete\"],\n target: [\"cell\"],\n create() {\n return {\n type: this.elementType,\n elements: [],\n data: {}\n };\n },\n\n render(props) {\n return <EntriesSearchRenderer {...props} element={props.element as PbElement} />;\n }\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,IAAIC,UAAU,QAAQ,0BAA0B;AAEvE,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,0BAA0B,GAAGA,CAAA,KAAiC;EACvE,OAAO;IACHC,IAAI,EAAE,uCAAuC;IAC7CC,IAAI,EAAE,wBAAwB;IAC9BC,WAAW,EAAE,gBAAgB;IAC7BC,kBAAkB,EAAE,KAAK;IACzBC,OAAO,EAAE;MACLC,KAAK,EAAE,gBAAgB;MACvBC,KAAK,EAAE,+BAA+B;MACtCC,OAAOA,CAAA,EAAG;QACN,oBAAOZ,KAAA,CAAAa,aAAA,CAACX,UAAU,MAAE,CAAC;MACzB;IACJ,CAAC;IACDY,QAAQ,EAAE,CAAC,wCAAwC,CAAC;IACpDC,MAAM,EAAE,CAAC,MAAM,CAAC;IAChBC,MAAMA,CAAA,EAAG;MACL,OAAO;QACHV,IAAI,EAAE,IAAI,CAACC,WAAW;QACtBU,QAAQ,EAAE,EAAE;QACZC,IAAI,EAAE,CAAC;MACX,CAAC;IACL,CAAC;IAEDC,MAAMA,CAACC,KAAK,EAAE;MACV,oBAAOpB,KAAA,CAAAa,aAAA,CAACV,qBAAqB,EAAAkB,MAAA,CAAAC,MAAA,KAAKF,KAAK;QAAEG,OAAO,EAAEH,KAAK,CAACG;MAAqB,EAAE,CAAC;IACpF;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,35 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.ContentTraverser = void 0;
|
|
8
|
-
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var ContentTraverser = exports.ContentTraverser = /*#__PURE__*/function () {
|
|
12
|
-
function ContentTraverser() {
|
|
13
|
-
(0, _classCallCheck2.default)(this, ContentTraverser);
|
|
14
|
-
}
|
|
15
|
-
return (0, _createClass2.default)(ContentTraverser, [{
|
|
16
|
-
key: "traverse",
|
|
17
|
-
value: function traverse(element, visitor) {
|
|
18
|
-
visitor(element);
|
|
19
|
-
var _iterator = (0, _createForOfIteratorHelper2.default)(element.elements),
|
|
20
|
-
_step;
|
|
21
|
-
try {
|
|
22
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
23
|
-
var _node = _step.value;
|
|
24
|
-
this.traverse(_node, visitor);
|
|
25
|
-
}
|
|
26
|
-
} catch (err) {
|
|
27
|
-
_iterator.e(err);
|
|
28
|
-
} finally {
|
|
29
|
-
_iterator.f();
|
|
30
|
-
}
|
|
1
|
+
export class ContentTraverser {
|
|
2
|
+
traverse(element, visitor) {
|
|
3
|
+
visitor(element);
|
|
4
|
+
for (const node of element.elements) {
|
|
5
|
+
this.traverse(node, visitor);
|
|
31
6
|
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
7
|
+
}
|
|
8
|
+
}
|
|
34
9
|
|
|
35
10
|
//# sourceMappingURL=ContentTraverser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ContentTraverser","
|
|
1
|
+
{"version":3,"names":["ContentTraverser","traverse","element","visitor","node","elements"],"sources":["ContentTraverser.ts"],"sourcesContent":["import { PbEditorElement } from \"@webiny/app-page-builder/types\";\n\ntype ElementNode = Omit<PbEditorElement, \"elements\"> & {\n elements: ElementNode[];\n};\n\ninterface ElementNodeVisitor {\n (node: ElementNode): void;\n}\n\nexport class ContentTraverser {\n traverse(element: ElementNode, visitor: ElementNodeVisitor): void {\n visitor(element);\n for (const node of element.elements) {\n this.traverse(node, visitor);\n }\n }\n}\n"],"mappings":"AAUA,OAAO,MAAMA,gBAAgB,CAAC;EAC1BC,QAAQA,CAACC,OAAoB,EAAEC,OAA2B,EAAQ;IAC9DA,OAAO,CAACD,OAAO,CAAC;IAChB,KAAK,MAAME,IAAI,IAAIF,OAAO,CAACG,QAAQ,EAAE;MACjC,IAAI,CAACJ,QAAQ,CAACG,IAAI,EAAED,OAAO,CAAC;IAChC;EACJ;AACJ","ignoreList":[]}
|
|
@@ -1,54 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _appPageBuilderElements = require("@webiny/app-page-builder-elements");
|
|
11
|
-
var _PeGrid = require("@webiny/app-page-builder/editor/plugins/elements/grid/PeGrid");
|
|
12
|
-
var _editor = require("@webiny/app-page-builder/editor");
|
|
13
|
-
var _dataInjection = require("@webiny/app-page-builder/dataInjection");
|
|
14
|
-
var elementInputs = {
|
|
15
|
-
dataSource: _appPageBuilderElements.ElementInput.create({
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useRenderer, Elements, ElementInput } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import { PeGrid } from "@webiny/app-page-builder/editor/plugins/elements/grid/PeGrid";
|
|
4
|
+
import { useElementWithChildren } from "@webiny/app-page-builder/editor";
|
|
5
|
+
import { DataSourceDataProvider } from "@webiny/app-page-builder/dataInjection";
|
|
6
|
+
const elementInputs = {
|
|
7
|
+
dataSource: ElementInput.create({
|
|
16
8
|
name: "dataSource",
|
|
17
9
|
type: "array",
|
|
18
10
|
translatable: false,
|
|
19
|
-
getDefaultValue
|
|
11
|
+
getDefaultValue() {
|
|
20
12
|
return [];
|
|
21
13
|
}
|
|
22
14
|
})
|
|
23
15
|
};
|
|
24
|
-
|
|
16
|
+
export const DynamicGrid = PeGrid.Component.createDecorator(Original => {
|
|
25
17
|
return function DynamicGrid(props) {
|
|
26
|
-
|
|
27
|
-
getElement
|
|
28
|
-
getInputValues
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
18
|
+
const {
|
|
19
|
+
getElement,
|
|
20
|
+
getInputValues
|
|
21
|
+
} = useRenderer();
|
|
22
|
+
const element = getElement();
|
|
23
|
+
const elementWithChildren = useElementWithChildren(element.id);
|
|
24
|
+
const inputs = getInputValues();
|
|
32
25
|
if (!elementWithChildren) {
|
|
33
26
|
return null;
|
|
34
27
|
}
|
|
35
28
|
if (Array.isArray(inputs.dataSource)) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
29
|
+
const hasData = inputs.dataSource.length > 0;
|
|
30
|
+
const baseCell = elementWithChildren.elements[0];
|
|
31
|
+
const dynamicElement = {
|
|
32
|
+
...element,
|
|
39
33
|
elements: hasData ? Array(inputs.dataSource.length).fill(baseCell) : elementWithChildren.elements
|
|
40
|
-
}
|
|
41
|
-
return /*#__PURE__*/
|
|
34
|
+
};
|
|
35
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
42
36
|
element: dynamicElement,
|
|
43
|
-
wrapper:
|
|
44
|
-
|
|
45
|
-
return /*#__PURE__*/
|
|
37
|
+
wrapper: (element, index) => {
|
|
38
|
+
const dataSource = inputs.dataSource ? inputs.dataSource[index] : {};
|
|
39
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
46
40
|
dataSource: dataSource
|
|
47
41
|
}, element);
|
|
48
42
|
}
|
|
49
43
|
});
|
|
50
44
|
}
|
|
51
|
-
return /*#__PURE__*/
|
|
45
|
+
return /*#__PURE__*/React.createElement(Original, props);
|
|
52
46
|
};
|
|
53
47
|
});
|
|
54
48
|
|