@webiny/app-dynamic-pages 0.0.0-unstable.3bc8100a7f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -0
  3. package/admin/ContentEntryForm/AddPreviewPane.d.ts +2 -0
  4. package/admin/ContentEntryForm/AddPreviewPane.js +47 -0
  5. package/admin/ContentEntryForm/AddPreviewPane.js.map +1 -0
  6. package/admin/ContentEntryForm/PassEntryToDataSource.d.ts +2 -0
  7. package/admin/ContentEntryForm/PassEntryToDataSource.js +58 -0
  8. package/admin/ContentEntryForm/PassEntryToDataSource.js.map +1 -0
  9. package/admin/ContentEntryForm/PreviewPane.d.ts +6 -0
  10. package/admin/ContentEntryForm/PreviewPane.js +56 -0
  11. package/admin/ContentEntryForm/PreviewPane.js.map +1 -0
  12. package/admin/Extensions.d.ts +2 -0
  13. package/admin/Extensions.js +14 -0
  14. package/admin/Extensions.js.map +1 -0
  15. package/admin/PageTemplateDialog/CreateTemplateDialog.d.ts +11 -0
  16. package/admin/PageTemplateDialog/CreateTemplateDialog.js +200 -0
  17. package/admin/PageTemplateDialog/CreateTemplateDialog.js.map +1 -0
  18. package/admin/PageTemplateDialog/PageTemplateDialog.d.ts +2 -0
  19. package/admin/PageTemplateDialog/PageTemplateDialog.js +44 -0
  20. package/admin/PageTemplateDialog/PageTemplateDialog.js.map +1 -0
  21. package/admin/SetupDynamicPages.d.ts +2 -0
  22. package/admin/SetupDynamicPages.js +16 -0
  23. package/admin/SetupDynamicPages.js.map +1 -0
  24. package/admin/elements/Elements.d.ts +2 -0
  25. package/admin/elements/Elements.js +12 -0
  26. package/admin/elements/Elements.js.map +1 -0
  27. package/admin/elements/entriesList.d.ts +2 -0
  28. package/admin/elements/entriesList.js +35 -0
  29. package/admin/elements/entriesList.js.map +1 -0
  30. package/admin/elements/entriesSearch.d.ts +2 -0
  31. package/admin/elements/entriesSearch.js +34 -0
  32. package/admin/elements/entriesSearch.js.map +1 -0
  33. package/admin/elements/eventHandlers/ContentTraverser.d.ts +11 -0
  34. package/admin/elements/eventHandlers/ContentTraverser.js +10 -0
  35. package/admin/elements/eventHandlers/ContentTraverser.js.map +1 -0
  36. package/admin/elements/renderers/DynamicGrid.d.ts +2 -0
  37. package/admin/elements/renderers/DynamicGrid.js +49 -0
  38. package/admin/elements/renderers/DynamicGrid.js.map +1 -0
  39. package/admin/elements/renderers/EntriesList.d.ts +10 -0
  40. package/admin/elements/renderers/EntriesList.js +22 -0
  41. package/admin/elements/renderers/EntriesList.js.map +1 -0
  42. package/admin/elements/renderers/Repeater.d.ts +7 -0
  43. package/admin/elements/renderers/Repeater.js +21 -0
  44. package/admin/elements/renderers/Repeater.js.map +1 -0
  45. package/admin/elements/repeater.d.ts +2 -0
  46. package/admin/elements/repeater.js +34 -0
  47. package/admin/elements/repeater.js.map +1 -0
  48. package/admin/index.d.ts +1 -0
  49. package/admin/index.js +3 -0
  50. package/admin/index.js.map +1 -0
  51. package/admin/pageEditor/DynamicPageEditorConfig.d.ts +2 -0
  52. package/admin/pageEditor/DynamicPageEditorConfig.js +10 -0
  53. package/admin/pageEditor/DynamicPageEditorConfig.js.map +1 -0
  54. package/admin/pageEditor/ElementEventHandlers.d.ts +1 -0
  55. package/admin/pageEditor/ElementEventHandlers.js +100 -0
  56. package/admin/pageEditor/ElementEventHandlers.js.map +1 -0
  57. package/admin/templateEditor/DynamicTemplateEditorConfig.d.ts +2 -0
  58. package/admin/templateEditor/DynamicTemplateEditorConfig.js +28 -0
  59. package/admin/templateEditor/DynamicTemplateEditorConfig.js.map +1 -0
  60. package/admin/templateEditor/ElementEventHandlers.d.ts +1 -0
  61. package/admin/templateEditor/ElementEventHandlers.js +100 -0
  62. package/admin/templateEditor/ElementEventHandlers.js.map +1 -0
  63. package/admin/templateEditor/EntrySelector/EntrySelector.d.ts +2 -0
  64. package/admin/templateEditor/EntrySelector/EntrySelector.js +27 -0
  65. package/admin/templateEditor/EntrySelector/EntrySelector.js.map +1 -0
  66. package/admin/templateEditor/EntrySelector/index.d.ts +1 -0
  67. package/admin/templateEditor/EntrySelector/index.js +3 -0
  68. package/admin/templateEditor/EntrySelector/index.js.map +1 -0
  69. package/dataInjection/AddEntriesListDataSourceContext.d.ts +2 -0
  70. package/dataInjection/AddEntriesListDataSourceContext.js +27 -0
  71. package/dataInjection/AddEntriesListDataSourceContext.js.map +1 -0
  72. package/dataInjection/editor/DisableGridDelete.d.ts +2 -0
  73. package/dataInjection/editor/DisableGridDelete.js +18 -0
  74. package/dataInjection/editor/DisableGridDelete.js.map +1 -0
  75. package/dataInjection/editor/ElementDataSettings.d.ts +2 -0
  76. package/dataInjection/editor/ElementDataSettings.js +21 -0
  77. package/dataInjection/editor/ElementDataSettings.js.map +1 -0
  78. package/dataInjection/editor/HideIfChildOfEntriesList.d.ts +6 -0
  79. package/dataInjection/editor/HideIfChildOfEntriesList.js +16 -0
  80. package/dataInjection/editor/HideIfChildOfEntriesList.js.map +1 -0
  81. package/dataInjection/editor/HideIfEntriesListGridWithDataSource.d.ts +6 -0
  82. package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js +22 -0
  83. package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js.map +1 -0
  84. package/dataInjection/editor/SetupElementDataSettings.d.ts +2 -0
  85. package/dataInjection/editor/SetupElementDataSettings.js +14 -0
  86. package/dataInjection/editor/SetupElementDataSettings.js.map +1 -0
  87. package/dataInjection/renderers/DynamicElementRenderers.d.ts +2 -0
  88. package/dataInjection/renderers/DynamicElementRenderers.js +20 -0
  89. package/dataInjection/renderers/DynamicElementRenderers.js.map +1 -0
  90. package/dataInjection/renderers/DynamicGrid.d.ts +2 -0
  91. package/dataInjection/renderers/DynamicGrid.js +44 -0
  92. package/dataInjection/renderers/DynamicGrid.js.map +1 -0
  93. package/dataInjection/renderers/EntriesList.d.ts +70 -0
  94. package/dataInjection/renderers/EntriesList.js +45 -0
  95. package/dataInjection/renderers/EntriesList.js.map +1 -0
  96. package/dataInjection/renderers/EntriesSearch.d.ts +47 -0
  97. package/dataInjection/renderers/EntriesSearch.js +26 -0
  98. package/dataInjection/renderers/EntriesSearch.js.map +1 -0
  99. package/dataInjection/renderers/Repeater.d.ts +70 -0
  100. package/dataInjection/renderers/Repeater.js +45 -0
  101. package/dataInjection/renderers/Repeater.js.map +1 -0
  102. package/features/index.d.ts +3 -0
  103. package/features/index.js +5 -0
  104. package/features/index.js.map +1 -0
  105. package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.d.ts +4 -0
  106. package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js +58 -0
  107. package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js.map +1 -0
  108. package/features/pageTemplate/hasMainDataSource.d.ts +2 -0
  109. package/features/pageTemplate/hasMainDataSource.js +5 -0
  110. package/features/pageTemplate/hasMainDataSource.js.map +1 -0
  111. package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.d.ts +3 -0
  112. package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js +13 -0
  113. package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js.map +1 -0
  114. 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,2 @@
1
+ import React from "react";
2
+ export declare const ElementDataSettings: () => React.JSX.Element;
@@ -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,6 @@
1
+ import React from "react";
2
+ interface HideIfChildOfEntriesListProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const HideIfChildOfEntriesList: ({ children }: HideIfChildOfEntriesListProps) => React.JSX.Element | null;
6
+ export {};
@@ -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,2 @@
1
+ import React from "react";
2
+ export declare const SetupElementDataSettings: () => React.JSX.Element;
@@ -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,2 @@
1
+ import React from "react";
2
+ export declare const DynamicElementRenderers: () => React.JSX.Element;
@@ -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,2 @@
1
+ import React from "react";
2
+ export declare const DynamicGrid: (props: unknown) => React.JSX.Element;
@@ -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,3 @@
1
+ export * from "./pageTemplate/hasMainDataSource";
2
+ export * from "./pageTemplate/createDynamicTemplate/useCreateDynamicTemplate";
3
+ export * from "./pageTemplate/listDynamicTemplates/useListDynamicTemplates";
@@ -0,0 +1,5 @@
1
+ export * from "./pageTemplate/hasMainDataSource";
2
+ export * from "./pageTemplate/createDynamicTemplate/useCreateDynamicTemplate";
3
+ export * from "./pageTemplate/listDynamicTemplates/useListDynamicTemplates";
4
+
5
+ //# sourceMappingURL=index.js.map
@@ -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":[]}
@@ -0,0 +1,4 @@
1
+ import type { CmsModel } from "@webiny/app-headless-cms/types";
2
+ export declare const useCreateDynamicPageTemplate: () => {
3
+ createDynamicPageTemplate: (model: CmsModel) => Promise<import("@webiny/app-page-builder/types").PbPageTemplateWithContent>;
4
+ };