@webiny/app-dynamic-pages 0.0.0-unstable.06b2ede40f
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/LICENSE +21 -0
- package/README.md +20 -0
- package/admin/ContentEntryForm/AddPreviewPane.d.ts +2 -0
- package/admin/ContentEntryForm/AddPreviewPane.js +47 -0
- package/admin/ContentEntryForm/AddPreviewPane.js.map +1 -0
- package/admin/ContentEntryForm/PassEntryToDataSource.d.ts +2 -0
- package/admin/ContentEntryForm/PassEntryToDataSource.js +58 -0
- package/admin/ContentEntryForm/PassEntryToDataSource.js.map +1 -0
- package/admin/ContentEntryForm/PreviewPane.d.ts +6 -0
- package/admin/ContentEntryForm/PreviewPane.js +56 -0
- package/admin/ContentEntryForm/PreviewPane.js.map +1 -0
- package/admin/Extensions.d.ts +2 -0
- package/admin/Extensions.js +14 -0
- package/admin/Extensions.js.map +1 -0
- package/admin/PageTemplateDialog/CreateTemplateDialog.d.ts +11 -0
- package/admin/PageTemplateDialog/CreateTemplateDialog.js +200 -0
- package/admin/PageTemplateDialog/CreateTemplateDialog.js.map +1 -0
- package/admin/PageTemplateDialog/PageTemplateDialog.d.ts +2 -0
- package/admin/PageTemplateDialog/PageTemplateDialog.js +44 -0
- package/admin/PageTemplateDialog/PageTemplateDialog.js.map +1 -0
- package/admin/SetupDynamicPages.d.ts +2 -0
- package/admin/SetupDynamicPages.js +16 -0
- package/admin/SetupDynamicPages.js.map +1 -0
- package/admin/elements/Elements.d.ts +2 -0
- package/admin/elements/Elements.js +12 -0
- package/admin/elements/Elements.js.map +1 -0
- package/admin/elements/entriesList.d.ts +2 -0
- package/admin/elements/entriesList.js +35 -0
- package/admin/elements/entriesList.js.map +1 -0
- package/admin/elements/entriesSearch.d.ts +2 -0
- package/admin/elements/entriesSearch.js +34 -0
- package/admin/elements/entriesSearch.js.map +1 -0
- package/admin/elements/eventHandlers/ContentTraverser.d.ts +11 -0
- package/admin/elements/eventHandlers/ContentTraverser.js +10 -0
- package/admin/elements/eventHandlers/ContentTraverser.js.map +1 -0
- package/admin/elements/renderers/DynamicGrid.d.ts +2 -0
- package/admin/elements/renderers/DynamicGrid.js +49 -0
- package/admin/elements/renderers/DynamicGrid.js.map +1 -0
- package/admin/elements/renderers/EntriesList.d.ts +10 -0
- package/admin/elements/renderers/EntriesList.js +22 -0
- package/admin/elements/renderers/EntriesList.js.map +1 -0
- package/admin/elements/renderers/Repeater.d.ts +7 -0
- package/admin/elements/renderers/Repeater.js +21 -0
- package/admin/elements/renderers/Repeater.js.map +1 -0
- package/admin/elements/repeater.d.ts +2 -0
- package/admin/elements/repeater.js +34 -0
- package/admin/elements/repeater.js.map +1 -0
- package/admin/index.d.ts +1 -0
- package/admin/index.js +3 -0
- package/admin/index.js.map +1 -0
- package/admin/pageEditor/DynamicPageEditorConfig.d.ts +2 -0
- package/admin/pageEditor/DynamicPageEditorConfig.js +10 -0
- package/admin/pageEditor/DynamicPageEditorConfig.js.map +1 -0
- package/admin/pageEditor/ElementEventHandlers.d.ts +1 -0
- package/admin/pageEditor/ElementEventHandlers.js +100 -0
- package/admin/pageEditor/ElementEventHandlers.js.map +1 -0
- package/admin/templateEditor/DynamicTemplateEditorConfig.d.ts +2 -0
- package/admin/templateEditor/DynamicTemplateEditorConfig.js +28 -0
- package/admin/templateEditor/DynamicTemplateEditorConfig.js.map +1 -0
- package/admin/templateEditor/ElementEventHandlers.d.ts +1 -0
- package/admin/templateEditor/ElementEventHandlers.js +100 -0
- package/admin/templateEditor/ElementEventHandlers.js.map +1 -0
- package/admin/templateEditor/EntrySelector/EntrySelector.d.ts +2 -0
- package/admin/templateEditor/EntrySelector/EntrySelector.js +27 -0
- package/admin/templateEditor/EntrySelector/EntrySelector.js.map +1 -0
- package/admin/templateEditor/EntrySelector/index.d.ts +1 -0
- package/admin/templateEditor/EntrySelector/index.js +3 -0
- package/admin/templateEditor/EntrySelector/index.js.map +1 -0
- package/dataInjection/AddEntriesListDataSourceContext.d.ts +2 -0
- package/dataInjection/AddEntriesListDataSourceContext.js +27 -0
- package/dataInjection/AddEntriesListDataSourceContext.js.map +1 -0
- package/dataInjection/editor/DisableGridDelete.d.ts +2 -0
- package/dataInjection/editor/DisableGridDelete.js +18 -0
- package/dataInjection/editor/DisableGridDelete.js.map +1 -0
- package/dataInjection/editor/ElementDataSettings.d.ts +2 -0
- package/dataInjection/editor/ElementDataSettings.js +21 -0
- package/dataInjection/editor/ElementDataSettings.js.map +1 -0
- package/dataInjection/editor/HideIfChildOfEntriesList.d.ts +6 -0
- package/dataInjection/editor/HideIfChildOfEntriesList.js +16 -0
- package/dataInjection/editor/HideIfChildOfEntriesList.js.map +1 -0
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.d.ts +6 -0
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js +22 -0
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js.map +1 -0
- package/dataInjection/editor/SetupElementDataSettings.d.ts +2 -0
- package/dataInjection/editor/SetupElementDataSettings.js +14 -0
- package/dataInjection/editor/SetupElementDataSettings.js.map +1 -0
- package/dataInjection/renderers/DynamicElementRenderers.d.ts +2 -0
- package/dataInjection/renderers/DynamicElementRenderers.js +20 -0
- package/dataInjection/renderers/DynamicElementRenderers.js.map +1 -0
- package/dataInjection/renderers/DynamicGrid.d.ts +2 -0
- package/dataInjection/renderers/DynamicGrid.js +44 -0
- package/dataInjection/renderers/DynamicGrid.js.map +1 -0
- package/dataInjection/renderers/EntriesList.d.ts +70 -0
- package/dataInjection/renderers/EntriesList.js +45 -0
- package/dataInjection/renderers/EntriesList.js.map +1 -0
- package/dataInjection/renderers/EntriesSearch.d.ts +47 -0
- package/dataInjection/renderers/EntriesSearch.js +26 -0
- package/dataInjection/renderers/EntriesSearch.js.map +1 -0
- package/dataInjection/renderers/Repeater.d.ts +70 -0
- package/dataInjection/renderers/Repeater.js +45 -0
- package/dataInjection/renderers/Repeater.js.map +1 -0
- package/features/index.d.ts +3 -0
- package/features/index.js +5 -0
- package/features/index.js.map +1 -0
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.d.ts +4 -0
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js +58 -0
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js.map +1 -0
- package/features/pageTemplate/hasMainDataSource.d.ts +2 -0
- package/features/pageTemplate/hasMainDataSource.js +5 -0
- package/features/pageTemplate/hasMainDataSource.js.map +1 -0
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.d.ts +3 -0
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js +13 -0
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","EditorConfig","HideIfEntriesListGridWithDataSource","ElementAction","DisableGridDelete","createDecorator","Original","DisableActions","props","name","createElement","Object","assign","element"],"sources":["DisableGridDelete.tsx"],"sourcesContent":["import React from \"react\";\nimport { EditorConfig } from \"@webiny/app-page-builder/editor\";\nimport { HideIfEntriesListGridWithDataSource } from \"./HideIfEntriesListGridWithDataSource\";\n\nconst { ElementAction } = EditorConfig;\n\nexport const DisableGridDelete = ElementAction.createDecorator(Original => {\n return function DisableActions(props) {\n if (props.name === \"delete\") {\n return (\n <Original\n {...props}\n element={\n <HideIfEntriesListGridWithDataSource>\n {props.element}\n </HideIfEntriesListGridWithDataSource>\n }\n />\n );\n }\n return <Original {...props} />;\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,iCAAiC;AAC9D,SAASC,mCAAmC;AAE5C,MAAM;EAAEC;AAAc,CAAC,GAAGF,YAAY;AAEtC,OAAO,MAAMG,iBAAiB,GAAGD,aAAa,CAACE,eAAe,CAACC,QAAQ,IAAI;EACvE,OAAO,SAASC,cAAcA,CAACC,KAAK,EAAE;IAClC,IAAIA,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;MACzB,oBACIT,KAAA,CAAAU,aAAA,CAACJ,QAAQ,EAAAK,MAAA,CAAAC,MAAA,KACDJ,KAAK;QACTK,OAAO,eACHb,KAAA,CAAAU,aAAA,CAACR,mCAAmC,QAC/BM,KAAK,CAACK,OAC0B;MACxC,EACJ,CAAC;IAEV;IACA,oBAAOb,KAAA,CAAAU,aAAA,CAACJ,QAAQ,EAAKE,KAAQ,CAAC;EAClC,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useActiveElement, useIsElementChildOfType, EditorConfig } from "@webiny/app-page-builder/editor";
|
|
3
|
+
const {
|
|
4
|
+
Ui
|
|
5
|
+
} = EditorConfig;
|
|
6
|
+
export const ElementDataSettings = () => {
|
|
7
|
+
const [element] = useActiveElement();
|
|
8
|
+
const {
|
|
9
|
+
isChildOfType
|
|
10
|
+
} = useIsElementChildOfType(element, "entries-list");
|
|
11
|
+
const isDisabled = !element || isChildOfType && element?.type === "grid";
|
|
12
|
+
return /*#__PURE__*/React.createElement(Ui.Sidebar.Group.Tab, {
|
|
13
|
+
label: "Data",
|
|
14
|
+
element: /*#__PURE__*/React.createElement(Ui.Sidebar.ScrollableContainer, null, /*#__PURE__*/React.createElement(Ui.Sidebar.Elements, {
|
|
15
|
+
group: "dataSettings"
|
|
16
|
+
})),
|
|
17
|
+
disabled: isDisabled
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=ElementDataSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useActiveElement","useIsElementChildOfType","EditorConfig","Ui","ElementDataSettings","element","isChildOfType","isDisabled","type","createElement","Sidebar","Group","Tab","label","ScrollableContainer","Elements","group","disabled"],"sources":["ElementDataSettings.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n useActiveElement,\n useIsElementChildOfType,\n EditorConfig\n} from \"@webiny/app-page-builder/editor\";\n\nconst { Ui } = EditorConfig;\n\nexport const ElementDataSettings = () => {\n const [element] = useActiveElement();\n const { isChildOfType } = useIsElementChildOfType(element, \"entries-list\");\n const isDisabled = !element || (isChildOfType && element?.type === \"grid\");\n\n return (\n <Ui.Sidebar.Group.Tab\n label={\"Data\"}\n element={\n <Ui.Sidebar.ScrollableContainer>\n <Ui.Sidebar.Elements group={\"dataSettings\"} />\n </Ui.Sidebar.ScrollableContainer>\n }\n disabled={isDisabled}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,gBAAgB,EAChBC,uBAAuB,EACvBC,YAAY,QACT,iCAAiC;AAExC,MAAM;EAAEC;AAAG,CAAC,GAAGD,YAAY;AAE3B,OAAO,MAAME,mBAAmB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,OAAO,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EACpC,MAAM;IAAEM;EAAc,CAAC,GAAGL,uBAAuB,CAACI,OAAO,EAAE,cAAc,CAAC;EAC1E,MAAME,UAAU,GAAG,CAACF,OAAO,IAAKC,aAAa,IAAID,OAAO,EAAEG,IAAI,KAAK,MAAO;EAE1E,oBACIT,KAAA,CAAAU,aAAA,CAACN,EAAE,CAACO,OAAO,CAACC,KAAK,CAACC,GAAG;IACjBC,KAAK,EAAE,MAAO;IACdR,OAAO,eACHN,KAAA,CAAAU,aAAA,CAACN,EAAE,CAACO,OAAO,CAACI,mBAAmB,qBAC3Bf,KAAA,CAAAU,aAAA,CAACN,EAAE,CAACO,OAAO,CAACK,QAAQ;MAACC,KAAK,EAAE;IAAe,CAAE,CACjB,CACnC;IACDC,QAAQ,EAAEV;EAAW,CACxB,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useActiveElement, useIsElementChildOfType } from "@webiny/app-page-builder/editor";
|
|
3
|
+
export const HideIfChildOfEntriesList = ({
|
|
4
|
+
children
|
|
5
|
+
}) => {
|
|
6
|
+
const [element] = useActiveElement();
|
|
7
|
+
const {
|
|
8
|
+
isChildOfType
|
|
9
|
+
} = useIsElementChildOfType(element, "entries-list");
|
|
10
|
+
if (!element) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return isChildOfType ? null : /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=HideIfChildOfEntriesList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useActiveElement","useIsElementChildOfType","HideIfChildOfEntriesList","children","element","isChildOfType","createElement","Fragment"],"sources":["HideIfChildOfEntriesList.tsx"],"sourcesContent":["import React from \"react\";\nimport { useActiveElement, useIsElementChildOfType } from \"@webiny/app-page-builder/editor\";\n\ninterface HideIfChildOfEntriesListProps {\n children: React.ReactNode;\n}\n\nexport const HideIfChildOfEntriesList = ({ children }: HideIfChildOfEntriesListProps) => {\n const [element] = useActiveElement();\n const { isChildOfType } = useIsElementChildOfType(element, \"entries-list\");\n\n if (!element) {\n return null;\n }\n\n return isChildOfType ? null : <>{children}</>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,iCAAiC;AAM3F,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EAAEC;AAAwC,CAAC,KAAK;EACrF,MAAM,CAACC,OAAO,CAAC,GAAGJ,gBAAgB,CAAC,CAAC;EACpC,MAAM;IAAEK;EAAc,CAAC,GAAGJ,uBAAuB,CAACG,OAAO,EAAE,cAAc,CAAC;EAE1E,IAAI,CAACA,OAAO,EAAE;IACV,OAAO,IAAI;EACf;EAEA,OAAOC,aAAa,GAAG,IAAI,gBAAGN,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAQ,QAAA,QAAGJ,QAAW,CAAC;AACjD,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface HideIfEntriesListGridWithDataSourceProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare const HideIfEntriesListGridWithDataSource: ({ children }: HideIfEntriesListGridWithDataSourceProps) => React.JSX.Element | null;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useActiveElement, useIsElementChildOfType } from "@webiny/app-page-builder/editor";
|
|
3
|
+
import { useElementBindings } from "@webiny/app-page-builder/dataInjection";
|
|
4
|
+
export const HideIfEntriesListGridWithDataSource = ({
|
|
5
|
+
children
|
|
6
|
+
}) => {
|
|
7
|
+
const [element] = useActiveElement();
|
|
8
|
+
const {
|
|
9
|
+
bindings
|
|
10
|
+
} = useElementBindings(element.id);
|
|
11
|
+
const {
|
|
12
|
+
isChildOfType
|
|
13
|
+
} = useIsElementChildOfType(element, "entries-list");
|
|
14
|
+
if (!element) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const hasDataSourceBinding = bindings.some(binding => binding.bindFrom === "*");
|
|
18
|
+
const shouldHide = isChildOfType && element.type === "grid" && hasDataSourceBinding;
|
|
19
|
+
return shouldHide ? null : /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=HideIfEntriesListGridWithDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useActiveElement","useIsElementChildOfType","useElementBindings","HideIfEntriesListGridWithDataSource","children","element","bindings","id","isChildOfType","hasDataSourceBinding","some","binding","bindFrom","shouldHide","type","createElement","Fragment"],"sources":["HideIfEntriesListGridWithDataSource.tsx"],"sourcesContent":["import React from \"react\";\nimport { useActiveElement, useIsElementChildOfType } from \"@webiny/app-page-builder/editor\";\nimport { useElementBindings } from \"@webiny/app-page-builder/dataInjection\";\n\ninterface HideIfEntriesListGridWithDataSourceProps {\n children: React.ReactNode;\n}\n\nexport const HideIfEntriesListGridWithDataSource = ({\n children\n}: HideIfEntriesListGridWithDataSourceProps) => {\n const [element] = useActiveElement();\n const { bindings } = useElementBindings(element!.id);\n const { isChildOfType } = useIsElementChildOfType(element, \"entries-list\");\n\n if (!element) {\n return null;\n }\n\n const hasDataSourceBinding = bindings.some(binding => binding.bindFrom === \"*\");\n const shouldHide = isChildOfType && element.type === \"grid\" && hasDataSourceBinding;\n\n return shouldHide ? null : <>{children}</>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,iCAAiC;AAC3F,SAASC,kBAAkB,QAAQ,wCAAwC;AAM3E,OAAO,MAAMC,mCAAmC,GAAGA,CAAC;EAChDC;AACsC,CAAC,KAAK;EAC5C,MAAM,CAACC,OAAO,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EACpC,MAAM;IAAEM;EAAS,CAAC,GAAGJ,kBAAkB,CAACG,OAAO,CAAEE,EAAE,CAAC;EACpD,MAAM;IAAEC;EAAc,CAAC,GAAGP,uBAAuB,CAACI,OAAO,EAAE,cAAc,CAAC;EAE1E,IAAI,CAACA,OAAO,EAAE;IACV,OAAO,IAAI;EACf;EAEA,MAAMI,oBAAoB,GAAGH,QAAQ,CAACI,IAAI,CAACC,OAAO,IAAIA,OAAO,CAACC,QAAQ,KAAK,GAAG,CAAC;EAC/E,MAAMC,UAAU,GAAGL,aAAa,IAAIH,OAAO,CAACS,IAAI,KAAK,MAAM,IAAIL,oBAAoB;EAEnF,OAAOI,UAAU,GAAG,IAAI,gBAAGd,KAAA,CAAAgB,aAAA,CAAAhB,KAAA,CAAAiB,QAAA,QAAGZ,QAAW,CAAC;AAC9C,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ElementDataSettings } from "./ElementDataSettings";
|
|
3
|
+
import { EditorConfig } from "@webiny/app-page-builder/editor";
|
|
4
|
+
const {
|
|
5
|
+
Ui
|
|
6
|
+
} = EditorConfig;
|
|
7
|
+
export const SetupElementDataSettings = () => {
|
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Ui.Sidebar.Group, {
|
|
9
|
+
name: "data",
|
|
10
|
+
element: /*#__PURE__*/React.createElement(ElementDataSettings, null)
|
|
11
|
+
}));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=SetupElementDataSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","ElementDataSettings","EditorConfig","Ui","SetupElementDataSettings","createElement","Fragment","Sidebar","Group","name","element"],"sources":["SetupElementDataSettings.tsx"],"sourcesContent":["import React from \"react\";\nimport { ElementDataSettings } from \"./ElementDataSettings\";\nimport { EditorConfig } from \"@webiny/app-page-builder/editor\";\n\nconst { Ui } = EditorConfig;\n\nexport const SetupElementDataSettings = () => {\n return (\n <>\n <Ui.Sidebar.Group name={\"data\"} element={<ElementDataSettings />} />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,YAAY,QAAQ,iCAAiC;AAE9D,MAAM;EAAEC;AAAG,CAAC,GAAGD,YAAY;AAE3B,OAAO,MAAME,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,oBACIJ,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAM,QAAA,qBACIN,KAAA,CAAAK,aAAA,CAACF,EAAE,CAACI,OAAO,CAACC,KAAK;IAACC,IAAI,EAAE,MAAO;IAACC,OAAO,eAAEV,KAAA,CAAAK,aAAA,CAACJ,mBAAmB,MAAE;EAAE,CAAE,CACrE,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { PbRenderElementPlugin } from "@webiny/app-page-builder";
|
|
3
|
+
import { RepeaterRenderer } from "./Repeater";
|
|
4
|
+
import { EntriesListRenderer } from "./EntriesList";
|
|
5
|
+
import { EntriesSearchRenderer } from "./EntriesSearch";
|
|
6
|
+
import { DynamicGrid } from "./DynamicGrid";
|
|
7
|
+
export const DynamicElementRenderers = () => {
|
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PbRenderElementPlugin, {
|
|
9
|
+
elementType: "repeater",
|
|
10
|
+
renderer: RepeaterRenderer
|
|
11
|
+
}), /*#__PURE__*/React.createElement(PbRenderElementPlugin, {
|
|
12
|
+
elementType: "entries-list",
|
|
13
|
+
renderer: EntriesListRenderer
|
|
14
|
+
}), /*#__PURE__*/React.createElement(PbRenderElementPlugin, {
|
|
15
|
+
elementType: "entries-search",
|
|
16
|
+
renderer: EntriesSearchRenderer
|
|
17
|
+
}), /*#__PURE__*/React.createElement(DynamicGrid, null));
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=DynamicElementRenderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PbRenderElementPlugin","RepeaterRenderer","EntriesListRenderer","EntriesSearchRenderer","DynamicGrid","DynamicElementRenderers","createElement","Fragment","elementType","renderer"],"sources":["DynamicElementRenderers.tsx"],"sourcesContent":["import React from \"react\";\nimport { PbRenderElementPlugin } from \"@webiny/app-page-builder\";\nimport { RepeaterRenderer } from \"~/dataInjection/renderers/Repeater\";\nimport { EntriesListRenderer } from \"~/dataInjection/renderers/EntriesList\";\nimport { EntriesSearchRenderer } from \"~/dataInjection/renderers/EntriesSearch\";\nimport { DynamicGrid } from \"~/dataInjection/renderers/DynamicGrid\";\n\nexport const DynamicElementRenderers = () => {\n return (\n <>\n <PbRenderElementPlugin elementType={\"repeater\"} renderer={RepeaterRenderer} />\n <PbRenderElementPlugin elementType={\"entries-list\"} renderer={EntriesListRenderer} />\n <PbRenderElementPlugin\n elementType={\"entries-search\"}\n renderer={EntriesSearchRenderer}\n />\n <DynamicGrid />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SAASC,WAAW;AAEpB,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EACzC,oBACIN,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAQ,QAAA,qBACIR,KAAA,CAAAO,aAAA,CAACN,qBAAqB;IAACQ,WAAW,EAAE,UAAW;IAACC,QAAQ,EAAER;EAAiB,CAAE,CAAC,eAC9EF,KAAA,CAAAO,aAAA,CAACN,qBAAqB;IAACQ,WAAW,EAAE,cAAe;IAACC,QAAQ,EAAEP;EAAoB,CAAE,CAAC,eACrFH,KAAA,CAAAO,aAAA,CAACN,qBAAqB;IAClBQ,WAAW,EAAE,gBAAiB;IAC9BC,QAAQ,EAAEN;EAAsB,CACnC,CAAC,eACFJ,KAAA,CAAAO,aAAA,CAACF,WAAW,MAAE,CAChB,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { useRenderer, Elements, ElementInput } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import { GridRenderer } from "@webiny/app-page-builder-elements/renderers/grid";
|
|
4
|
+
import { DataSourceDataProvider } from "@webiny/app-page-builder/dataInjection";
|
|
5
|
+
const elementInputs = {
|
|
6
|
+
dataSource: ElementInput.create({
|
|
7
|
+
name: "dataSource",
|
|
8
|
+
type: "array",
|
|
9
|
+
translatable: false,
|
|
10
|
+
getDefaultValue() {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
export const DynamicGrid = GridRenderer.Component.createDecorator(Original => {
|
|
16
|
+
return function DynamicGrid(props) {
|
|
17
|
+
const {
|
|
18
|
+
getElement,
|
|
19
|
+
getInputValues
|
|
20
|
+
} = useRenderer();
|
|
21
|
+
const element = getElement();
|
|
22
|
+
const inputs = getInputValues();
|
|
23
|
+
if (Array.isArray(inputs.dataSource)) {
|
|
24
|
+
const hasData = inputs.dataSource.length > 0;
|
|
25
|
+
const baseCell = element.elements[0];
|
|
26
|
+
const dynamicElement = {
|
|
27
|
+
...element,
|
|
28
|
+
elements: hasData ? Array(inputs.dataSource.length).fill(baseCell) : element.elements
|
|
29
|
+
};
|
|
30
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
31
|
+
element: dynamicElement,
|
|
32
|
+
wrapper: (element, index) => {
|
|
33
|
+
const dataSource = inputs.dataSource ? inputs.dataSource[index] : {};
|
|
34
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
35
|
+
dataSource: dataSource
|
|
36
|
+
}, element);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return /*#__PURE__*/React.createElement(Original, props);
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=DynamicGrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useRenderer","Elements","ElementInput","GridRenderer","DataSourceDataProvider","elementInputs","dataSource","create","name","type","translatable","getDefaultValue","DynamicGrid","Component","createDecorator","Original","props","getElement","getInputValues","element","inputs","Array","isArray","hasData","length","baseCell","elements","dynamicElement","fill","createElement","wrapper","index"],"sources":["DynamicGrid.tsx"],"sourcesContent":["import React from \"react\";\nimport { useRenderer, Elements, ElementInput } from \"@webiny/app-page-builder-elements\";\nimport { GridRenderer } from \"@webiny/app-page-builder-elements/renderers/grid\";\nimport type { GenericRecord } from \"@webiny/app/types\";\nimport { DataSourceDataProvider } from \"@webiny/app-page-builder/dataInjection\";\n\nconst elementInputs = {\n dataSource: ElementInput.create<GenericRecord[]>({\n name: \"dataSource\",\n type: \"array\",\n translatable: false,\n getDefaultValue() {\n return [];\n }\n })\n};\n\nexport const DynamicGrid = GridRenderer.Component.createDecorator(Original => {\n return function DynamicGrid(props) {\n const { getElement, getInputValues } = useRenderer();\n const element = getElement();\n const inputs = getInputValues<typeof elementInputs>();\n\n if (Array.isArray(inputs.dataSource)) {\n const hasData = inputs.dataSource.length > 0;\n\n const baseCell = element.elements[0];\n const dynamicElement = {\n ...element,\n elements: hasData\n ? Array(inputs.dataSource.length).fill(baseCell)\n : element.elements\n };\n\n return (\n <Elements\n element={dynamicElement}\n wrapper={(element, index) => {\n const dataSource = inputs.dataSource ? inputs.dataSource[index] : {};\n\n return (\n <DataSourceDataProvider dataSource={dataSource}>\n {element}\n </DataSourceDataProvider>\n );\n }}\n />\n );\n }\n\n return <Original {...props} />;\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,mCAAmC;AACvF,SAASC,YAAY,QAAQ,kDAAkD;AAE/E,SAASC,sBAAsB,QAAQ,wCAAwC;AAE/E,MAAMC,aAAa,GAAG;EAClBC,UAAU,EAAEJ,YAAY,CAACK,MAAM,CAAkB;IAC7CC,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,OAAO;IACbC,YAAY,EAAE,KAAK;IACnBC,eAAeA,CAAA,EAAG;MACd,OAAO,EAAE;IACb;EACJ,CAAC;AACL,CAAC;AAED,OAAO,MAAMC,WAAW,GAAGT,YAAY,CAACU,SAAS,CAACC,eAAe,CAACC,QAAQ,IAAI;EAC1E,OAAO,SAASH,WAAWA,CAACI,KAAK,EAAE;IAC/B,MAAM;MAAEC,UAAU;MAAEC;IAAe,CAAC,GAAGlB,WAAW,CAAC,CAAC;IACpD,MAAMmB,OAAO,GAAGF,UAAU,CAAC,CAAC;IAC5B,MAAMG,MAAM,GAAGF,cAAc,CAAuB,CAAC;IAErD,IAAIG,KAAK,CAACC,OAAO,CAACF,MAAM,CAACd,UAAU,CAAC,EAAE;MAClC,MAAMiB,OAAO,GAAGH,MAAM,CAACd,UAAU,CAACkB,MAAM,GAAG,CAAC;MAE5C,MAAMC,QAAQ,GAAGN,OAAO,CAACO,QAAQ,CAAC,CAAC,CAAC;MACpC,MAAMC,cAAc,GAAG;QACnB,GAAGR,OAAO;QACVO,QAAQ,EAAEH,OAAO,GACXF,KAAK,CAACD,MAAM,CAACd,UAAU,CAACkB,MAAM,CAAC,CAACI,IAAI,CAACH,QAAQ,CAAC,GAC9CN,OAAO,CAACO;MAClB,CAAC;MAED,oBACI3B,KAAA,CAAA8B,aAAA,CAAC5B,QAAQ;QACLkB,OAAO,EAAEQ,cAAe;QACxBG,OAAO,EAAEA,CAACX,OAAO,EAAEY,KAAK,KAAK;UACzB,MAAMzB,UAAU,GAAGc,MAAM,CAACd,UAAU,GAAGc,MAAM,CAACd,UAAU,CAACyB,KAAK,CAAC,GAAG,CAAC,CAAC;UAEpE,oBACIhC,KAAA,CAAA8B,aAAA,CAACzB,sBAAsB;YAACE,UAAU,EAAEA;UAAW,GAC1Ca,OACmB,CAAC;QAEjC;MAAE,CACL,CAAC;IAEV;IAEA,oBAAOpB,KAAA,CAAA8B,aAAA,CAACd,QAAQ,EAAKC,KAAQ,CAAC;EAClC,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ElementInput } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import type { GenericRecord } from "@webiny/app/types";
|
|
4
|
+
export declare const elementInputs: {
|
|
5
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
6
|
+
};
|
|
7
|
+
interface EntriesListRendererProps {
|
|
8
|
+
ifEmpty?: JSX.Element;
|
|
9
|
+
}
|
|
10
|
+
export declare const EntriesListRenderer: React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & EntriesListRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
11
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
12
|
+
}>> & {
|
|
13
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<EntriesListRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
16
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
17
|
+
}>>;
|
|
18
|
+
originalName: string;
|
|
19
|
+
displayName: string;
|
|
20
|
+
} & {
|
|
21
|
+
original: React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & EntriesListRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
22
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
23
|
+
}>> & {
|
|
24
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
25
|
+
} & {
|
|
26
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<EntriesListRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
27
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
28
|
+
}>>;
|
|
29
|
+
originalName: string;
|
|
30
|
+
displayName: string;
|
|
31
|
+
};
|
|
32
|
+
originalName: string;
|
|
33
|
+
displayName: string;
|
|
34
|
+
} & {
|
|
35
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & EntriesListRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
36
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
37
|
+
}>> & {
|
|
38
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
39
|
+
} & {
|
|
40
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<EntriesListRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
41
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
42
|
+
}>>;
|
|
43
|
+
originalName: string;
|
|
44
|
+
displayName: string;
|
|
45
|
+
}>) => (props: unknown) => React.JSX.Element;
|
|
46
|
+
} & {
|
|
47
|
+
Component: React.FunctionComponent<EntriesListRendererProps> & {
|
|
48
|
+
original: React.FunctionComponent<EntriesListRendererProps>;
|
|
49
|
+
originalName: string;
|
|
50
|
+
displayName: string;
|
|
51
|
+
} & {
|
|
52
|
+
original: React.FunctionComponent<EntriesListRendererProps> & {
|
|
53
|
+
original: React.FunctionComponent<EntriesListRendererProps>;
|
|
54
|
+
originalName: string;
|
|
55
|
+
displayName: string;
|
|
56
|
+
};
|
|
57
|
+
originalName: string;
|
|
58
|
+
displayName: string;
|
|
59
|
+
} & {
|
|
60
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<React.FunctionComponent<EntriesListRendererProps> & {
|
|
61
|
+
original: React.FunctionComponent<EntriesListRendererProps>;
|
|
62
|
+
originalName: string;
|
|
63
|
+
displayName: string;
|
|
64
|
+
}>) => (props: unknown) => React.JSX.Element;
|
|
65
|
+
};
|
|
66
|
+
inputs?: {
|
|
67
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
68
|
+
} | undefined;
|
|
69
|
+
};
|
|
70
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRenderer, ElementInput, Elements, useRenderer } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import { DataSourceDataProvider } from "@webiny/app-page-builder/dataInjection";
|
|
4
|
+
export const elementInputs = {
|
|
5
|
+
dataSource: ElementInput.create({
|
|
6
|
+
name: "dataSource",
|
|
7
|
+
type: "array",
|
|
8
|
+
translatable: false,
|
|
9
|
+
getDefaultValue() {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
};
|
|
14
|
+
export const EntriesListRenderer = createRenderer(({
|
|
15
|
+
ifEmpty = null
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
getElement,
|
|
19
|
+
getInputValues
|
|
20
|
+
} = useRenderer();
|
|
21
|
+
const element = getElement();
|
|
22
|
+
const inputs = getInputValues();
|
|
23
|
+
const dataSources = inputs.dataSource || [];
|
|
24
|
+
if (element.elements.length === 0) {
|
|
25
|
+
return ifEmpty;
|
|
26
|
+
}
|
|
27
|
+
if (!dataSources.length) {
|
|
28
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
29
|
+
element: element
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, dataSources.map((dataSource, index) => {
|
|
33
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
34
|
+
dataSource: dataSource,
|
|
35
|
+
key: index
|
|
36
|
+
}, /*#__PURE__*/React.createElement(Elements, {
|
|
37
|
+
element: element,
|
|
38
|
+
elementKeyPrefix: index.toString()
|
|
39
|
+
}));
|
|
40
|
+
}));
|
|
41
|
+
}, {
|
|
42
|
+
inputs: elementInputs
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=EntriesList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createRenderer","ElementInput","Elements","useRenderer","DataSourceDataProvider","elementInputs","dataSource","create","name","type","translatable","getDefaultValue","EntriesListRenderer","ifEmpty","getElement","getInputValues","element","inputs","dataSources","elements","length","createElement","Fragment","map","index","key","elementKeyPrefix","toString"],"sources":["EntriesList.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n createRenderer,\n ElementInput,\n Elements,\n useRenderer\n} from \"@webiny/app-page-builder-elements\";\nimport type { GenericRecord } from \"@webiny/app/types\";\nimport { DataSourceDataProvider } from \"@webiny/app-page-builder/dataInjection\";\n\nexport const elementInputs = {\n dataSource: ElementInput.create<GenericRecord[]>({\n name: \"dataSource\",\n type: \"array\",\n translatable: false,\n getDefaultValue() {\n return [];\n }\n })\n};\n\ninterface EntriesListRendererProps {\n ifEmpty?: JSX.Element;\n}\n\nexport const EntriesListRenderer = createRenderer<EntriesListRendererProps, typeof elementInputs>(\n ({ ifEmpty = null }) => {\n const { getElement, getInputValues } = useRenderer();\n\n const element = getElement();\n const inputs = getInputValues<typeof elementInputs>();\n const dataSources = inputs.dataSource || [];\n\n if (element.elements.length === 0) {\n return ifEmpty;\n }\n\n if (!dataSources.length) {\n return <Elements element={element} />;\n }\n\n return (\n <>\n {dataSources.map((dataSource, index) => {\n return (\n <DataSourceDataProvider dataSource={dataSource} key={index}>\n <Elements element={element} elementKeyPrefix={index.toString()} />\n </DataSourceDataProvider>\n );\n })}\n </>\n );\n },\n {\n inputs: elementInputs\n }\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,cAAc,EACdC,YAAY,EACZC,QAAQ,EACRC,WAAW,QACR,mCAAmC;AAE1C,SAASC,sBAAsB,QAAQ,wCAAwC;AAE/E,OAAO,MAAMC,aAAa,GAAG;EACzBC,UAAU,EAAEL,YAAY,CAACM,MAAM,CAAkB;IAC7CC,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,OAAO;IACbC,YAAY,EAAE,KAAK;IACnBC,eAAeA,CAAA,EAAG;MACd,OAAO,EAAE;IACb;EACJ,CAAC;AACL,CAAC;AAMD,OAAO,MAAMC,mBAAmB,GAAGZ,cAAc,CAC7C,CAAC;EAAEa,OAAO,GAAG;AAAK,CAAC,KAAK;EACpB,MAAM;IAAEC,UAAU;IAAEC;EAAe,CAAC,GAAGZ,WAAW,CAAC,CAAC;EAEpD,MAAMa,OAAO,GAAGF,UAAU,CAAC,CAAC;EAC5B,MAAMG,MAAM,GAAGF,cAAc,CAAuB,CAAC;EACrD,MAAMG,WAAW,GAAGD,MAAM,CAACX,UAAU,IAAI,EAAE;EAE3C,IAAIU,OAAO,CAACG,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;IAC/B,OAAOP,OAAO;EAClB;EAEA,IAAI,CAACK,WAAW,CAACE,MAAM,EAAE;IACrB,oBAAOrB,KAAA,CAAAsB,aAAA,CAACnB,QAAQ;MAACc,OAAO,EAAEA;IAAQ,CAAE,CAAC;EACzC;EAEA,oBACIjB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACKJ,WAAW,CAACK,GAAG,CAAC,CAACjB,UAAU,EAAEkB,KAAK,KAAK;IACpC,oBACIzB,KAAA,CAAAsB,aAAA,CAACjB,sBAAsB;MAACE,UAAU,EAAEA,UAAW;MAACmB,GAAG,EAAED;IAAM,gBACvDzB,KAAA,CAAAsB,aAAA,CAACnB,QAAQ;MAACc,OAAO,EAAEA,OAAQ;MAACU,gBAAgB,EAAEF,KAAK,CAACG,QAAQ,CAAC;IAAE,CAAE,CAC7C,CAAC;EAEjC,CAAC,CACH,CAAC;AAEX,CAAC,EACD;EACIV,MAAM,EAAEZ;AACZ,CACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const EntriesSearchRenderer: React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & Record<string, any> & import("@webiny/app-page-builder-elements").Inputs<import("@webiny/app-page-builder-elements").ElementInputs>> & {
|
|
3
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
4
|
+
} & {
|
|
5
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<Record<string, any> & import("@webiny/app-page-builder-elements").Inputs<import("@webiny/app-page-builder-elements").ElementInputs>>;
|
|
6
|
+
originalName: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
} & {
|
|
9
|
+
original: React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & Record<string, any> & import("@webiny/app-page-builder-elements").Inputs<import("@webiny/app-page-builder-elements").ElementInputs>> & {
|
|
10
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
11
|
+
} & {
|
|
12
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<Record<string, any> & import("@webiny/app-page-builder-elements").Inputs<import("@webiny/app-page-builder-elements").ElementInputs>>;
|
|
13
|
+
originalName: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
originalName: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
} & {
|
|
19
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & Record<string, any> & import("@webiny/app-page-builder-elements").Inputs<import("@webiny/app-page-builder-elements").ElementInputs>> & {
|
|
20
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
21
|
+
} & {
|
|
22
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<Record<string, any> & import("@webiny/app-page-builder-elements").Inputs<import("@webiny/app-page-builder-elements").ElementInputs>>;
|
|
23
|
+
originalName: string;
|
|
24
|
+
displayName: string;
|
|
25
|
+
}>) => (props: unknown) => React.JSX.Element;
|
|
26
|
+
} & {
|
|
27
|
+
Component: React.FunctionComponent<Record<string, any>> & {
|
|
28
|
+
original: React.FunctionComponent<Record<string, any>>;
|
|
29
|
+
originalName: string;
|
|
30
|
+
displayName: string;
|
|
31
|
+
} & {
|
|
32
|
+
original: React.FunctionComponent<Record<string, any>> & {
|
|
33
|
+
original: React.FunctionComponent<Record<string, any>>;
|
|
34
|
+
originalName: string;
|
|
35
|
+
displayName: string;
|
|
36
|
+
};
|
|
37
|
+
originalName: string;
|
|
38
|
+
displayName: string;
|
|
39
|
+
} & {
|
|
40
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<React.FunctionComponent<Record<string, any>> & {
|
|
41
|
+
original: React.FunctionComponent<Record<string, any>>;
|
|
42
|
+
originalName: string;
|
|
43
|
+
displayName: string;
|
|
44
|
+
}>) => (props: unknown) => React.JSX.Element;
|
|
45
|
+
};
|
|
46
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
47
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { useCallback, useState } from "react";
|
|
2
|
+
import { createRenderer } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import { useDataSource } from "@webiny/app-page-builder/dataInjection";
|
|
4
|
+
export const EntriesSearchRenderer = createRenderer(() => {
|
|
5
|
+
const data = useDataSource();
|
|
6
|
+
const [value, setValue] = useState("");
|
|
7
|
+
const onChange = useCallback(e => {
|
|
8
|
+
if (!data) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
e.preventDefault();
|
|
12
|
+
const value = e.target.value;
|
|
13
|
+
setValue(value);
|
|
14
|
+
data.loadData({
|
|
15
|
+
search: value !== "" ? value : undefined
|
|
16
|
+
});
|
|
17
|
+
}, [data]);
|
|
18
|
+
return /*#__PURE__*/React.createElement("input", {
|
|
19
|
+
type: "text",
|
|
20
|
+
placeholder: "Search",
|
|
21
|
+
value: value,
|
|
22
|
+
onChange: onChange
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=EntriesSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useState","createRenderer","useDataSource","EntriesSearchRenderer","data","value","setValue","onChange","e","preventDefault","target","loadData","search","undefined","createElement","type","placeholder"],"sources":["EntriesSearch.tsx"],"sourcesContent":["import type { ChangeEvent } from \"react\";\nimport React, { useCallback, useState } from \"react\";\nimport { createRenderer } from \"@webiny/app-page-builder-elements\";\nimport { useDataSource } from \"@webiny/app-page-builder/dataInjection\";\n\nexport const EntriesSearchRenderer = createRenderer(() => {\n const data = useDataSource();\n const [value, setValue] = useState(\"\");\n\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n if (!data) {\n return;\n }\n\n e.preventDefault();\n\n const value = e.target.value;\n\n setValue(value);\n\n data.loadData({\n search: value !== \"\" ? value : undefined\n });\n },\n [data]\n );\n\n return <input type={\"text\"} placeholder={\"Search\"} value={value} onChange={onChange} />;\n});\n"],"mappings":"AACA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,aAAa,QAAQ,wCAAwC;AAEtE,OAAO,MAAMC,qBAAqB,GAAGF,cAAc,CAAC,MAAM;EACtD,MAAMG,IAAI,GAAGF,aAAa,CAAC,CAAC;EAC5B,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAGN,QAAQ,CAAC,EAAE,CAAC;EAEtC,MAAMO,QAAQ,GAAGR,WAAW,CACvBS,CAAgC,IAAK;IAClC,IAAI,CAACJ,IAAI,EAAE;MACP;IACJ;IAEAI,CAAC,CAACC,cAAc,CAAC,CAAC;IAElB,MAAMJ,KAAK,GAAGG,CAAC,CAACE,MAAM,CAACL,KAAK;IAE5BC,QAAQ,CAACD,KAAK,CAAC;IAEfD,IAAI,CAACO,QAAQ,CAAC;MACVC,MAAM,EAAEP,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAGQ;IACnC,CAAC,CAAC;EACN,CAAC,EACD,CAACT,IAAI,CACT,CAAC;EAED,oBAAON,KAAA,CAAAgB,aAAA;IAAOC,IAAI,EAAE,MAAO;IAACC,WAAW,EAAE,QAAS;IAACX,KAAK,EAAEA,KAAM;IAACE,QAAQ,EAAEA;EAAS,CAAE,CAAC;AAC3F,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ElementInput } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import type { GenericRecord } from "@webiny/app/types";
|
|
4
|
+
export declare const elementInputs: {
|
|
5
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
6
|
+
};
|
|
7
|
+
interface RepeaterRendererProps {
|
|
8
|
+
ifEmpty?: JSX.Element;
|
|
9
|
+
}
|
|
10
|
+
export declare const RepeaterRenderer: React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & RepeaterRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
11
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
12
|
+
}>> & {
|
|
13
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<RepeaterRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
16
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
17
|
+
}>>;
|
|
18
|
+
originalName: string;
|
|
19
|
+
displayName: string;
|
|
20
|
+
} & {
|
|
21
|
+
original: React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & RepeaterRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
22
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
23
|
+
}>> & {
|
|
24
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
25
|
+
} & {
|
|
26
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<RepeaterRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
27
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
28
|
+
}>>;
|
|
29
|
+
originalName: string;
|
|
30
|
+
displayName: string;
|
|
31
|
+
};
|
|
32
|
+
originalName: string;
|
|
33
|
+
displayName: string;
|
|
34
|
+
} & {
|
|
35
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<React.FunctionComponent<import("@webiny/app-page-builder-elements/types").RendererProps<Record<string, any>> & RepeaterRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
36
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
37
|
+
}>> & {
|
|
38
|
+
inputs?: import("@webiny/app-page-builder-elements").ElementInputs | undefined;
|
|
39
|
+
} & {
|
|
40
|
+
original: import("@webiny/app-page-builder-elements/types").Renderer<RepeaterRendererProps & import("@webiny/app-page-builder-elements").Inputs<{
|
|
41
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
42
|
+
}>>;
|
|
43
|
+
originalName: string;
|
|
44
|
+
displayName: string;
|
|
45
|
+
}>) => (props: unknown) => React.JSX.Element;
|
|
46
|
+
} & {
|
|
47
|
+
Component: React.FunctionComponent<RepeaterRendererProps> & {
|
|
48
|
+
original: React.FunctionComponent<RepeaterRendererProps>;
|
|
49
|
+
originalName: string;
|
|
50
|
+
displayName: string;
|
|
51
|
+
} & {
|
|
52
|
+
original: React.FunctionComponent<RepeaterRendererProps> & {
|
|
53
|
+
original: React.FunctionComponent<RepeaterRendererProps>;
|
|
54
|
+
originalName: string;
|
|
55
|
+
displayName: string;
|
|
56
|
+
};
|
|
57
|
+
originalName: string;
|
|
58
|
+
displayName: string;
|
|
59
|
+
} & {
|
|
60
|
+
createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<React.FunctionComponent<RepeaterRendererProps> & {
|
|
61
|
+
original: React.FunctionComponent<RepeaterRendererProps>;
|
|
62
|
+
originalName: string;
|
|
63
|
+
displayName: string;
|
|
64
|
+
}>) => (props: unknown) => React.JSX.Element;
|
|
65
|
+
};
|
|
66
|
+
inputs?: {
|
|
67
|
+
dataSource: ElementInput<GenericRecord[], any>;
|
|
68
|
+
} | undefined;
|
|
69
|
+
};
|
|
70
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createRenderer, ElementInput, Elements, useRenderer } from "@webiny/app-page-builder-elements";
|
|
3
|
+
import { DataSourceDataProvider } from "@webiny/app-page-builder/dataInjection";
|
|
4
|
+
export const elementInputs = {
|
|
5
|
+
dataSource: ElementInput.create({
|
|
6
|
+
name: "dataSource",
|
|
7
|
+
type: "array",
|
|
8
|
+
translatable: false,
|
|
9
|
+
getDefaultValue() {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
};
|
|
14
|
+
export const RepeaterRenderer = createRenderer(({
|
|
15
|
+
ifEmpty = null
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
getElement,
|
|
19
|
+
getInputValues
|
|
20
|
+
} = useRenderer();
|
|
21
|
+
const element = getElement();
|
|
22
|
+
const inputs = getInputValues();
|
|
23
|
+
const dataSources = inputs.dataSource || [];
|
|
24
|
+
if (element.elements.length === 0) {
|
|
25
|
+
return ifEmpty;
|
|
26
|
+
}
|
|
27
|
+
if (!dataSources.length) {
|
|
28
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
29
|
+
element: element
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, dataSources.map((dataSource, index) => {
|
|
33
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
34
|
+
dataSource: dataSource,
|
|
35
|
+
key: index
|
|
36
|
+
}, /*#__PURE__*/React.createElement(Elements, {
|
|
37
|
+
element: element,
|
|
38
|
+
elementKeyPrefix: index.toString()
|
|
39
|
+
}));
|
|
40
|
+
}));
|
|
41
|
+
}, {
|
|
42
|
+
inputs: elementInputs
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=Repeater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createRenderer","ElementInput","Elements","useRenderer","DataSourceDataProvider","elementInputs","dataSource","create","name","type","translatable","getDefaultValue","RepeaterRenderer","ifEmpty","getElement","getInputValues","element","inputs","dataSources","elements","length","createElement","Fragment","map","index","key","elementKeyPrefix","toString"],"sources":["Repeater.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n createRenderer,\n ElementInput,\n Elements,\n useRenderer\n} from \"@webiny/app-page-builder-elements\";\nimport type { GenericRecord } from \"@webiny/app/types\";\nimport { DataSourceDataProvider } from \"@webiny/app-page-builder/dataInjection\";\n\nexport const elementInputs = {\n dataSource: ElementInput.create<GenericRecord[]>({\n name: \"dataSource\",\n type: \"array\",\n translatable: false,\n getDefaultValue() {\n return [];\n }\n })\n};\n\ninterface RepeaterRendererProps {\n ifEmpty?: JSX.Element;\n}\n\nexport const RepeaterRenderer = createRenderer<RepeaterRendererProps, typeof elementInputs>(\n ({ ifEmpty = null }) => {\n const { getElement, getInputValues } = useRenderer();\n\n const element = getElement();\n const inputs = getInputValues<typeof elementInputs>();\n const dataSources = inputs.dataSource || [];\n\n if (element.elements.length === 0) {\n return ifEmpty;\n }\n\n if (!dataSources.length) {\n return <Elements element={element} />;\n }\n\n return (\n <>\n {dataSources.map((dataSource, index) => {\n return (\n <DataSourceDataProvider dataSource={dataSource} key={index}>\n <Elements element={element} elementKeyPrefix={index.toString()} />\n </DataSourceDataProvider>\n );\n })}\n </>\n );\n },\n {\n inputs: elementInputs\n }\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,cAAc,EACdC,YAAY,EACZC,QAAQ,EACRC,WAAW,QACR,mCAAmC;AAE1C,SAASC,sBAAsB,QAAQ,wCAAwC;AAE/E,OAAO,MAAMC,aAAa,GAAG;EACzBC,UAAU,EAAEL,YAAY,CAACM,MAAM,CAAkB;IAC7CC,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,OAAO;IACbC,YAAY,EAAE,KAAK;IACnBC,eAAeA,CAAA,EAAG;MACd,OAAO,EAAE;IACb;EACJ,CAAC;AACL,CAAC;AAMD,OAAO,MAAMC,gBAAgB,GAAGZ,cAAc,CAC1C,CAAC;EAAEa,OAAO,GAAG;AAAK,CAAC,KAAK;EACpB,MAAM;IAAEC,UAAU;IAAEC;EAAe,CAAC,GAAGZ,WAAW,CAAC,CAAC;EAEpD,MAAMa,OAAO,GAAGF,UAAU,CAAC,CAAC;EAC5B,MAAMG,MAAM,GAAGF,cAAc,CAAuB,CAAC;EACrD,MAAMG,WAAW,GAAGD,MAAM,CAACX,UAAU,IAAI,EAAE;EAE3C,IAAIU,OAAO,CAACG,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;IAC/B,OAAOP,OAAO;EAClB;EAEA,IAAI,CAACK,WAAW,CAACE,MAAM,EAAE;IACrB,oBAAOrB,KAAA,CAAAsB,aAAA,CAACnB,QAAQ;MAACc,OAAO,EAAEA;IAAQ,CAAE,CAAC;EACzC;EAEA,oBACIjB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACKJ,WAAW,CAACK,GAAG,CAAC,CAACjB,UAAU,EAAEkB,KAAK,KAAK;IACpC,oBACIzB,KAAA,CAAAsB,aAAA,CAACjB,sBAAsB;MAACE,UAAU,EAAEA,UAAW;MAACmB,GAAG,EAAED;IAAM,gBACvDzB,KAAA,CAAAsB,aAAA,CAACnB,QAAQ;MAACc,OAAO,EAAEA,OAAQ;MAACU,gBAAgB,EAAEF,KAAK,CAACG,QAAQ,CAAC;IAAE,CAAE,CAC7C,CAAC;EAEjC,CAAC,CACH,CAAC;AAEX,CAAC,EACD;EACIV,MAAM,EAAEZ;AACZ,CACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./pageTemplate/hasMainDataSource\";\nexport * from \"./pageTemplate/createDynamicTemplate/useCreateDynamicTemplate\";\nexport * from \"./pageTemplate/listDynamicTemplates/useListDynamicTemplates\";\n"],"mappings":"AAAA;AACA;AACA","ignoreList":[]}
|