@webiny/app-dynamic-pages 5.42.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +52 -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 +78 -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 +65 -0
  11. package/admin/ContentEntryForm/PreviewPane.js.map +1 -0
  12. package/admin/Extensions.d.ts +2 -0
  13. package/admin/Extensions.js +23 -0
  14. package/admin/Extensions.js.map +1 -0
  15. package/admin/PageTemplateDialog/CreateTemplateDialog.d.ts +11 -0
  16. package/admin/PageTemplateDialog/CreateTemplateDialog.js +203 -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 +55 -0
  20. package/admin/PageTemplateDialog/PageTemplateDialog.js.map +1 -0
  21. package/admin/SetupDynamicPages.d.ts +2 -0
  22. package/admin/SetupDynamicPages.js +23 -0
  23. package/admin/SetupDynamicPages.js.map +1 -0
  24. package/admin/elements/Elements.d.ts +2 -0
  25. package/admin/elements/Elements.js +19 -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 +42 -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 +41 -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 +35 -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 +55 -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 +30 -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 +29 -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 +41 -0
  47. package/admin/elements/repeater.js.map +1 -0
  48. package/admin/index.d.ts +1 -0
  49. package/admin/index.js +14 -0
  50. package/admin/index.js.map +1 -0
  51. package/admin/pageEditor/DynamicPageEditorConfig.d.ts +2 -0
  52. package/admin/pageEditor/DynamicPageEditorConfig.js +17 -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 +107 -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 +31 -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 +107 -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 +38 -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 +18 -0
  68. package/admin/templateEditor/EntrySelector/index.js.map +1 -0
  69. package/dataInjection/AddEntriesListDataSourceContext.d.ts +2 -0
  70. package/dataInjection/AddEntriesListDataSourceContext.js +33 -0
  71. package/dataInjection/AddEntriesListDataSourceContext.js.map +1 -0
  72. package/dataInjection/editor/DisableGridDelete.d.ts +2 -0
  73. package/dataInjection/editor/DisableGridDelete.js +23 -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 +28 -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 +24 -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 +31 -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 +19 -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 +27 -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 +50 -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 +51 -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 +38 -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 +51 -0
  101. package/dataInjection/renderers/Repeater.js.map +1 -0
  102. package/features/index.d.ts +3 -0
  103. package/features/index.js +40 -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 +65 -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 +13 -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 +20 -0
  113. package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js.map +1 -0
  114. package/package.json +56 -0
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createEntriesSearchElement = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _repeat = require("@material-design-icons/svg/round/repeat.svg");
10
+ var _EntriesSearch = require("../../dataInjection/renderers/EntriesSearch");
11
+ var createEntriesSearchElement = exports.createEntriesSearchElement = function createEntriesSearchElement() {
12
+ return {
13
+ name: "pb-editor-page-element-entries-search",
14
+ type: "pb-editor-page-element",
15
+ elementType: "entries-search",
16
+ canReceiveChildren: false,
17
+ toolbar: {
18
+ title: "Entries Search",
19
+ group: "pb-editor-element-group-basic",
20
+ preview: function preview() {
21
+ return /*#__PURE__*/_react.default.createElement(_repeat.ReactComponent, null);
22
+ }
23
+ },
24
+ settings: ["pb-editor-page-element-settings-delete"],
25
+ target: ["cell"],
26
+ create: function create() {
27
+ return {
28
+ type: this.elementType,
29
+ elements: [],
30
+ data: {}
31
+ };
32
+ },
33
+ render: function render(props) {
34
+ return /*#__PURE__*/_react.default.createElement(_EntriesSearch.EntriesSearchRenderer, Object.assign({}, props, {
35
+ element: props.element
36
+ }));
37
+ }
38
+ };
39
+ };
40
+
41
+ //# sourceMappingURL=entriesSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_repeat","_EntriesSearch","createEntriesSearchElement","exports","name","type","elementType","canReceiveChildren","toolbar","title","group","preview","default","createElement","ReactComponent","settings","target","create","elements","data","render","props","EntriesSearchRenderer","Object","assign","element"],"sources":["entriesSearch.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as RepeatIcon } from \"@material-design-icons/svg/round/repeat.svg\";\nimport { PbEditorPageElementPlugin, PbElement } from \"@webiny/app-page-builder/types\";\nimport { EntriesSearchRenderer } from \"~/dataInjection/renderers/EntriesSearch\";\n\nexport const createEntriesSearchElement = (): PbEditorPageElementPlugin => {\n return {\n name: `pb-editor-page-element-entries-search`,\n type: \"pb-editor-page-element\",\n elementType: \"entries-search\",\n canReceiveChildren: false,\n toolbar: {\n title: \"Entries Search\",\n group: \"pb-editor-element-group-basic\",\n preview() {\n return <RepeatIcon />;\n }\n },\n settings: [\"pb-editor-page-element-settings-delete\"],\n target: [\"cell\"],\n create() {\n return {\n type: this.elementType,\n elements: [],\n data: {}\n };\n },\n\n render(props) {\n return <EntriesSearchRenderer {...props} element={props.element as PbElement} />;\n }\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAF,OAAA;AAEO,IAAMG,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,SAA7BA,0BAA0BA,CAAA,EAAoC;EACvE,OAAO;IACHE,IAAI,yCAAyC;IAC7CC,IAAI,EAAE,wBAAwB;IAC9BC,WAAW,EAAE,gBAAgB;IAC7BC,kBAAkB,EAAE,KAAK;IACzBC,OAAO,EAAE;MACLC,KAAK,EAAE,gBAAgB;MACvBC,KAAK,EAAE,+BAA+B;MACtCC,OAAO,WAAPA,OAAOA,CAAA,EAAG;QACN,oBAAOd,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACb,OAAA,CAAAc,cAAU,MAAE,CAAC;MACzB;IACJ,CAAC;IACDC,QAAQ,EAAE,CAAC,wCAAwC,CAAC;IACpDC,MAAM,EAAE,CAAC,MAAM,CAAC;IAChBC,MAAM,WAANA,MAAMA,CAAA,EAAG;MACL,OAAO;QACHZ,IAAI,EAAE,IAAI,CAACC,WAAW;QACtBY,QAAQ,EAAE,EAAE;QACZC,IAAI,EAAE,CAAC;MACX,CAAC;IACL,CAAC;IAEDC,MAAM,WAANA,MAAMA,CAACC,KAAK,EAAE;MACV,oBAAOxB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,cAAA,CAAAqB,qBAAqB,EAAAC,MAAA,CAAAC,MAAA,KAAKH,KAAK;QAAEI,OAAO,EAAEJ,KAAK,CAACI;MAAqB,EAAE,CAAC;IACpF;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { PbEditorElement } from "@webiny/app-page-builder/types";
2
+ type ElementNode = Omit<PbEditorElement, "elements"> & {
3
+ elements: ElementNode[];
4
+ };
5
+ interface ElementNodeVisitor {
6
+ (node: ElementNode): void;
7
+ }
8
+ export declare class ContentTraverser {
9
+ traverse(element: ElementNode, visitor: ElementNodeVisitor): void;
10
+ }
11
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ContentTraverser = void 0;
8
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var ContentTraverser = exports.ContentTraverser = /*#__PURE__*/function () {
12
+ function ContentTraverser() {
13
+ (0, _classCallCheck2.default)(this, ContentTraverser);
14
+ }
15
+ return (0, _createClass2.default)(ContentTraverser, [{
16
+ key: "traverse",
17
+ value: function traverse(element, visitor) {
18
+ visitor(element);
19
+ var _iterator = (0, _createForOfIteratorHelper2.default)(element.elements),
20
+ _step;
21
+ try {
22
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
23
+ var _node = _step.value;
24
+ this.traverse(_node, visitor);
25
+ }
26
+ } catch (err) {
27
+ _iterator.e(err);
28
+ } finally {
29
+ _iterator.f();
30
+ }
31
+ }
32
+ }]);
33
+ }();
34
+
35
+ //# sourceMappingURL=ContentTraverser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ContentTraverser","exports","_classCallCheck2","default","_createClass2","key","value","traverse","element","visitor","_iterator","_createForOfIteratorHelper2","elements","_step","s","n","done","node","err","e","f"],"sources":["ContentTraverser.ts"],"sourcesContent":["import { PbEditorElement } from \"@webiny/app-page-builder/types\";\n\ntype ElementNode = Omit<PbEditorElement, \"elements\"> & {\n elements: ElementNode[];\n};\n\ninterface ElementNodeVisitor {\n (node: ElementNode): void;\n}\n\nexport class ContentTraverser {\n traverse(element: ElementNode, visitor: ElementNodeVisitor): void {\n visitor(element);\n for (const node of element.elements) {\n this.traverse(node, visitor);\n }\n }\n}\n"],"mappings":";;;;;;;;;;IAUaA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA;EAAA,SAAAA,iBAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,gBAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,gBAAA;IAAAK,GAAA;IAAAC,KAAA,EACzB,SAAAC,QAAQA,CAACC,OAAoB,EAAEC,OAA2B,EAAQ;MAC9DA,OAAO,CAACD,OAAO,CAAC;MAAC,IAAAE,SAAA,OAAAC,2BAAA,CAAAR,OAAA,EACEK,OAAO,CAACI,QAAQ;QAAAC,KAAA;MAAA;QAAnC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAqC;UAAA,IAA1BC,KAAI,GAAAJ,KAAA,CAAAP,KAAA;UACX,IAAI,CAACC,QAAQ,CAACU,KAAI,EAAER,OAAO,CAAC;QAChC;MAAC,SAAAS,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;IACL;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const DynamicGrid: (props: unknown) => React.JSX.Element;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DynamicGrid = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _appPageBuilderElements = require("@webiny/app-page-builder-elements");
11
+ var _PeGrid = require("@webiny/app-page-builder/editor/plugins/elements/grid/PeGrid");
12
+ var _editor = require("@webiny/app-page-builder/editor");
13
+ var _dataInjection = require("@webiny/app-page-builder/dataInjection");
14
+ var elementInputs = {
15
+ dataSource: _appPageBuilderElements.ElementInput.create({
16
+ name: "dataSource",
17
+ type: "array",
18
+ translatable: false,
19
+ getDefaultValue: function getDefaultValue() {
20
+ return [];
21
+ }
22
+ })
23
+ };
24
+ var DynamicGrid = exports.DynamicGrid = _PeGrid.PeGrid.Component.createDecorator(function (Original) {
25
+ return function DynamicGrid(props) {
26
+ var _useRenderer = (0, _appPageBuilderElements.useRenderer)(),
27
+ getElement = _useRenderer.getElement,
28
+ getInputValues = _useRenderer.getInputValues;
29
+ var element = getElement();
30
+ var elementWithChildren = (0, _editor.useElementWithChildren)(element.id);
31
+ var inputs = getInputValues();
32
+ if (!elementWithChildren) {
33
+ return null;
34
+ }
35
+ if (Array.isArray(inputs.dataSource)) {
36
+ var hasData = inputs.dataSource.length > 0;
37
+ var baseCell = elementWithChildren.elements[0];
38
+ var dynamicElement = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, element), {}, {
39
+ elements: hasData ? Array(inputs.dataSource.length).fill(baseCell) : elementWithChildren.elements
40
+ });
41
+ return /*#__PURE__*/_react.default.createElement(_appPageBuilderElements.Elements, {
42
+ element: dynamicElement,
43
+ wrapper: function wrapper(element, index) {
44
+ var dataSource = inputs.dataSource ? inputs.dataSource[index] : {};
45
+ return /*#__PURE__*/_react.default.createElement(_dataInjection.DataSourceDataProvider, {
46
+ dataSource: dataSource
47
+ }, element);
48
+ }
49
+ });
50
+ }
51
+ return /*#__PURE__*/_react.default.createElement(Original, props);
52
+ };
53
+ });
54
+
55
+ //# sourceMappingURL=DynamicGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_appPageBuilderElements","_PeGrid","_editor","_dataInjection","elementInputs","dataSource","ElementInput","create","name","type","translatable","getDefaultValue","DynamicGrid","exports","PeGrid","Component","createDecorator","Original","props","_useRenderer","useRenderer","getElement","getInputValues","element","elementWithChildren","useElementWithChildren","id","inputs","Array","isArray","hasData","length","baseCell","elements","dynamicElement","_objectSpread2","default","fill","createElement","Elements","wrapper","index","DataSourceDataProvider"],"sources":["DynamicGrid.tsx"],"sourcesContent":["import React from \"react\";\nimport { useRenderer, Elements, ElementInput } from \"@webiny/app-page-builder-elements\";\nimport { PeGrid } from \"@webiny/app-page-builder/editor/plugins/elements/grid/PeGrid\";\nimport { useElementWithChildren } from \"@webiny/app-page-builder/editor\";\nimport { 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 = PeGrid.Component.createDecorator(Original => {\n return function DynamicGrid(props) {\n const { getElement, getInputValues } = useRenderer();\n const element = getElement();\n const elementWithChildren = useElementWithChildren(element.id);\n const inputs = getInputValues<typeof elementInputs>();\n\n if (!elementWithChildren) {\n return null;\n }\n\n if (Array.isArray(inputs.dataSource)) {\n const hasData = inputs.dataSource.length > 0;\n\n const baseCell = elementWithChildren.elements[0];\n const dynamicElement = {\n ...element,\n elements: hasData\n ? Array(inputs.dataSource.length).fill(baseCell)\n : elementWithChildren.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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AAEA,IAAMK,aAAa,GAAG;EAClBC,UAAU,EAAEC,oCAAY,CAACC,MAAM,CAAkB;IAC7CC,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,OAAO;IACbC,YAAY,EAAE,KAAK;IACnBC,eAAe,WAAfA,eAAeA,CAAA,EAAG;MACd,OAAO,EAAE;IACb;EACJ,CAAC;AACL,CAAC;AAEM,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGE,cAAM,CAACC,SAAS,CAACC,eAAe,CAAC,UAAAC,QAAQ,EAAI;EACpE,OAAO,SAASL,WAAWA,CAACM,KAAK,EAAE;IAC/B,IAAAC,YAAA,GAAuC,IAAAC,mCAAW,EAAC,CAAC;MAA5CC,UAAU,GAAAF,YAAA,CAAVE,UAAU;MAAEC,cAAc,GAAAH,YAAA,CAAdG,cAAc;IAClC,IAAMC,OAAO,GAAGF,UAAU,CAAC,CAAC;IAC5B,IAAMG,mBAAmB,GAAG,IAAAC,8BAAsB,EAACF,OAAO,CAACG,EAAE,CAAC;IAC9D,IAAMC,MAAM,GAAGL,cAAc,CAAuB,CAAC;IAErD,IAAI,CAACE,mBAAmB,EAAE;MACtB,OAAO,IAAI;IACf;IAEA,IAAII,KAAK,CAACC,OAAO,CAACF,MAAM,CAACtB,UAAU,CAAC,EAAE;MAClC,IAAMyB,OAAO,GAAGH,MAAM,CAACtB,UAAU,CAAC0B,MAAM,GAAG,CAAC;MAE5C,IAAMC,QAAQ,GAAGR,mBAAmB,CAACS,QAAQ,CAAC,CAAC,CAAC;MAChD,IAAMC,cAAc,OAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACbb,OAAO;QACVU,QAAQ,EAAEH,OAAO,GACXF,KAAK,CAACD,MAAM,CAACtB,UAAU,CAAC0B,MAAM,CAAC,CAACM,IAAI,CAACL,QAAQ,CAAC,GAC9CR,mBAAmB,CAACS;MAAQ,EACrC;MAED,oBACIpC,MAAA,CAAAuC,OAAA,CAAAE,aAAA,CAACtC,uBAAA,CAAAuC,QAAQ;QACLhB,OAAO,EAAEW,cAAe;QACxBM,OAAO,EAAE,SAATA,OAAOA,CAAGjB,OAAO,EAAEkB,KAAK,EAAK;UACzB,IAAMpC,UAAU,GAAGsB,MAAM,CAACtB,UAAU,GAAGsB,MAAM,CAACtB,UAAU,CAACoC,KAAK,CAAC,GAAG,CAAC,CAAC;UAEpE,oBACI5C,MAAA,CAAAuC,OAAA,CAAAE,aAAA,CAACnC,cAAA,CAAAuC,sBAAsB;YAACrC,UAAU,EAAEA;UAAW,GAC1CkB,OACmB,CAAC;QAEjC;MAAE,CACL,CAAC;IAEV;IAEA,oBAAO1B,MAAA,CAAAuC,OAAA,CAAAE,aAAA,CAACrB,QAAQ,EAAKC,KAAQ,CAAC;EAClC,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { PbElement } from "@webiny/app-page-builder/types";
3
+ interface AdminEntriesListRendererProps {
4
+ element: PbElement;
5
+ }
6
+ export declare const AdminEntriesListRenderer: {
7
+ ({ element, ...rest }: AdminEntriesListRendererProps): React.JSX.Element | null;
8
+ displayName: string;
9
+ };
10
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AdminEntriesListRenderer = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _EmptyCell = require("@webiny/app-page-builder/editor/plugins/elements/cell/EmptyCell");
11
+ var _editor = require("@webiny/app-page-builder/editor");
12
+ var _EntriesList = require("../../../dataInjection/renderers/EntriesList");
13
+ var _excluded = ["element"];
14
+ var AdminEntriesListRenderer = exports.AdminEntriesListRenderer = function AdminEntriesListRenderer(_ref) {
15
+ var element = _ref.element,
16
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
17
+ var elementWithChildren = (0, _editor.useElementWithChildren)(element.id);
18
+ if (!elementWithChildren) {
19
+ return null;
20
+ }
21
+ return /*#__PURE__*/_react.default.createElement(_EntriesList.EntriesListRenderer, Object.assign({}, rest, {
22
+ element: elementWithChildren,
23
+ ifEmpty: /*#__PURE__*/_react.default.createElement(_EmptyCell.EmptyCell, {
24
+ element: elementWithChildren
25
+ })
26
+ }));
27
+ };
28
+ AdminEntriesListRenderer.displayName = "AdminEntriesListRenderer";
29
+
30
+ //# sourceMappingURL=EntriesList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_EmptyCell","_editor","_EntriesList","_excluded","AdminEntriesListRenderer","exports","_ref","element","rest","_objectWithoutProperties2","default","elementWithChildren","useElementWithChildren","id","createElement","EntriesListRenderer","Object","assign","ifEmpty","EmptyCell","displayName"],"sources":["EntriesList.tsx"],"sourcesContent":["import React from \"react\";\nimport { PbElement } from \"@webiny/app-page-builder/types\";\nimport { EmptyCell } from \"@webiny/app-page-builder/editor/plugins/elements/cell/EmptyCell\";\nimport { useElementWithChildren } from \"@webiny/app-page-builder/editor\";\nimport { EntriesListRenderer } from \"~/dataInjection/renderers/EntriesList\";\n\ninterface AdminEntriesListRendererProps {\n element: PbElement;\n}\n\nexport const AdminEntriesListRenderer = ({ element, ...rest }: AdminEntriesListRendererProps) => {\n const elementWithChildren = useElementWithChildren(element.id);\n\n if (!elementWithChildren) {\n return null;\n }\n\n return (\n <EntriesListRenderer\n {...rest}\n element={elementWithChildren}\n ifEmpty={<EmptyCell element={elementWithChildren} />}\n />\n );\n};\n\nAdminEntriesListRenderer.displayName = \"AdminEntriesListRenderer\";\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAA4E,IAAAI,SAAA;AAMrE,IAAMC,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,SAA3BA,wBAAwBA,CAAAE,IAAA,EAA4D;EAAA,IAAtDC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAH,SAAA;EACvD,IAAMQ,mBAAmB,GAAG,IAAAC,8BAAsB,EAACL,OAAO,CAACM,EAAE,CAAC;EAE9D,IAAI,CAACF,mBAAmB,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,oBACId,MAAA,CAAAa,OAAA,CAAAI,aAAA,CAACZ,YAAA,CAAAa,mBAAmB,EAAAC,MAAA,CAAAC,MAAA,KACZT,IAAI;IACRD,OAAO,EAAEI,mBAAoB;IAC7BO,OAAO,eAAErB,MAAA,CAAAa,OAAA,CAAAI,aAAA,CAACd,UAAA,CAAAmB,SAAS;MAACZ,OAAO,EAAEI;IAAoB,CAAE;EAAE,EACxD,CAAC;AAEV,CAAC;AAEDP,wBAAwB,CAACgB,WAAW,GAAG,0BAA0B","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { PbElement } from "@webiny/app-page-builder/types";
3
+ interface AdminRepeaterRendererProps {
4
+ element: PbElement;
5
+ }
6
+ export declare const AdminRepeaterRenderer: ({ element, ...rest }: AdminRepeaterRendererProps) => React.JSX.Element | null;
7
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AdminRepeaterRenderer = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _EmptyCell = require("@webiny/app-page-builder/editor/plugins/elements/cell/EmptyCell");
11
+ var _editor = require("@webiny/app-page-builder/editor");
12
+ var _Repeater = require("../../../dataInjection/renderers/Repeater");
13
+ var _excluded = ["element"];
14
+ var AdminRepeaterRenderer = exports.AdminRepeaterRenderer = function AdminRepeaterRenderer(_ref) {
15
+ var element = _ref.element,
16
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
17
+ var elementWithChildren = (0, _editor.useElementWithChildren)(element.id);
18
+ if (!elementWithChildren) {
19
+ return null;
20
+ }
21
+ return /*#__PURE__*/_react.default.createElement(_Repeater.RepeaterRenderer, Object.assign({}, rest, {
22
+ element: elementWithChildren,
23
+ ifEmpty: /*#__PURE__*/_react.default.createElement(_EmptyCell.EmptyCell, {
24
+ element: elementWithChildren
25
+ })
26
+ }));
27
+ };
28
+
29
+ //# sourceMappingURL=Repeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_EmptyCell","_editor","_Repeater","_excluded","AdminRepeaterRenderer","exports","_ref","element","rest","_objectWithoutProperties2","default","elementWithChildren","useElementWithChildren","id","createElement","RepeaterRenderer","Object","assign","ifEmpty","EmptyCell"],"sources":["Repeater.tsx"],"sourcesContent":["import React from \"react\";\nimport { PbElement } from \"@webiny/app-page-builder/types\";\nimport { EmptyCell } from \"@webiny/app-page-builder/editor/plugins/elements/cell/EmptyCell\";\nimport { useElementWithChildren } from \"@webiny/app-page-builder/editor\";\nimport { RepeaterRenderer } from \"~/dataInjection/renderers/Repeater\";\n\ninterface AdminRepeaterRendererProps {\n element: PbElement;\n}\n\nexport const AdminRepeaterRenderer = ({ element, ...rest }: AdminRepeaterRendererProps) => {\n const elementWithChildren = useElementWithChildren(element.id);\n\n if (!elementWithChildren) {\n return null;\n }\n\n return (\n <RepeaterRenderer\n {...rest}\n element={elementWithChildren}\n ifEmpty={<EmptyCell element={elementWithChildren} />}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAAsE,IAAAI,SAAA;AAM/D,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAAE,IAAA,EAAyD;EAAA,IAAnDC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAH,SAAA;EACpD,IAAMQ,mBAAmB,GAAG,IAAAC,8BAAsB,EAACL,OAAO,CAACM,EAAE,CAAC;EAE9D,IAAI,CAACF,mBAAmB,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,oBACId,MAAA,CAAAa,OAAA,CAAAI,aAAA,CAACZ,SAAA,CAAAa,gBAAgB,EAAAC,MAAA,CAAAC,MAAA,KACTT,IAAI;IACRD,OAAO,EAAEI,mBAAoB;IAC7BO,OAAO,eAAErB,MAAA,CAAAa,OAAA,CAAAI,aAAA,CAACd,UAAA,CAAAmB,SAAS;MAACZ,OAAO,EAAEI;IAAoB,CAAE;EAAE,EACxD,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { PbEditorPageElementPlugin } from "@webiny/app-page-builder/types";
2
+ export declare const createRepeaterElement: () => PbEditorPageElementPlugin;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createRepeaterElement = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _repeat = require("@material-design-icons/svg/round/repeat.svg");
10
+ var _Repeater = require("./renderers/Repeater");
11
+ var createRepeaterElement = exports.createRepeaterElement = function createRepeaterElement() {
12
+ return {
13
+ name: "pb-editor-page-element-repeater",
14
+ type: "pb-editor-page-element",
15
+ elementType: "repeater",
16
+ canReceiveChildren: true,
17
+ toolbar: {
18
+ title: "Repeater Element",
19
+ group: "pb-editor-element-group-basic",
20
+ preview: function preview() {
21
+ return /*#__PURE__*/_react.default.createElement(_repeat.ReactComponent, null);
22
+ }
23
+ },
24
+ settings: ["pb-editor-page-element-settings-clone", "pb-editor-page-element-settings-delete"],
25
+ target: ["cell", "block"],
26
+ create: function create() {
27
+ return {
28
+ type: this.elementType,
29
+ elements: [],
30
+ data: {}
31
+ };
32
+ },
33
+ render: function render(props) {
34
+ return /*#__PURE__*/_react.default.createElement(_Repeater.AdminRepeaterRenderer, Object.assign({}, props, {
35
+ element: props.element
36
+ }));
37
+ }
38
+ };
39
+ };
40
+
41
+ //# sourceMappingURL=repeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_repeat","_Repeater","createRepeaterElement","exports","name","type","elementType","canReceiveChildren","toolbar","title","group","preview","default","createElement","ReactComponent","settings","target","create","elements","data","render","props","AdminRepeaterRenderer","Object","assign","element"],"sources":["repeater.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as RepeatIcon } from \"@material-design-icons/svg/round/repeat.svg\";\nimport { PbEditorPageElementPlugin, PbElement } from \"@webiny/app-page-builder/types\";\nimport { AdminRepeaterRenderer } from \"./renderers/Repeater\";\n\nexport const createRepeaterElement = (): PbEditorPageElementPlugin => {\n return {\n name: `pb-editor-page-element-repeater`,\n type: \"pb-editor-page-element\",\n elementType: \"repeater\",\n canReceiveChildren: true,\n toolbar: {\n title: \"Repeater Element\",\n group: \"pb-editor-element-group-basic\",\n preview() {\n return <RepeatIcon />;\n }\n },\n settings: [\n \"pb-editor-page-element-settings-clone\",\n \"pb-editor-page-element-settings-delete\"\n ],\n target: [\"cell\", \"block\"],\n create() {\n return {\n type: this.elementType,\n elements: [],\n data: {}\n };\n },\n\n render(props) {\n return <AdminRepeaterRenderer {...props} element={props.element as PbElement} />;\n }\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAEO,IAAMG,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAA,EAAoC;EAClE,OAAO;IACHE,IAAI,mCAAmC;IACvCC,IAAI,EAAE,wBAAwB;IAC9BC,WAAW,EAAE,UAAU;IACvBC,kBAAkB,EAAE,IAAI;IACxBC,OAAO,EAAE;MACLC,KAAK,EAAE,kBAAkB;MACzBC,KAAK,EAAE,+BAA+B;MACtCC,OAAO,WAAPA,OAAOA,CAAA,EAAG;QACN,oBAAOd,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACb,OAAA,CAAAc,cAAU,MAAE,CAAC;MACzB;IACJ,CAAC;IACDC,QAAQ,EAAE,CACN,uCAAuC,EACvC,wCAAwC,CAC3C;IACDC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACzBC,MAAM,WAANA,MAAMA,CAAA,EAAG;MACL,OAAO;QACHZ,IAAI,EAAE,IAAI,CAACC,WAAW;QACtBY,QAAQ,EAAE,EAAE;QACZC,IAAI,EAAE,CAAC;MACX,CAAC;IACL,CAAC;IAEDC,MAAM,WAANA,MAAMA,CAACC,KAAK,EAAE;MACV,oBAAOxB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,SAAA,CAAAqB,qBAAqB,EAAAC,MAAA,CAAAC,MAAA,KAAKH,KAAK;QAAEI,OAAO,EAAEJ,KAAK,CAACI;MAAqB,EAAE,CAAC;IACpF;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { Extensions as DynamicPages } from "./Extensions";
package/admin/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DynamicPages", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Extensions.Extensions;
10
+ }
11
+ });
12
+ var _Extensions = require("./Extensions");
13
+
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Extensions","require"],"sources":["index.ts"],"sourcesContent":["export { Extensions as DynamicPages } from \"./Extensions\";\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const DynamicPageEditorConfig: () => React.JSX.Element;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DynamicPageEditorConfig = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _pageEditor = require("@webiny/app-page-builder/pageEditor");
10
+ var _ElementEventHandlers = require("./ElementEventHandlers");
11
+ var _SetupElementDataSettings = require("../../dataInjection/editor/SetupElementDataSettings");
12
+ var _AddEntriesListDataSourceContext = require("../../dataInjection/AddEntriesListDataSourceContext");
13
+ var DynamicPageEditorConfig = exports.DynamicPageEditorConfig = function DynamicPageEditorConfig() {
14
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_pageEditor.PageEditorConfig, null, /*#__PURE__*/_react.default.createElement(_AddEntriesListDataSourceContext.AddEntriesListDataSourceContext, null), /*#__PURE__*/_react.default.createElement(_ElementEventHandlers.ElementEventHandlers, null), /*#__PURE__*/_react.default.createElement(_SetupElementDataSettings.SetupElementDataSettings, null)));
15
+ };
16
+
17
+ //# sourceMappingURL=DynamicPageEditorConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_pageEditor","_ElementEventHandlers","_SetupElementDataSettings","_AddEntriesListDataSourceContext","DynamicPageEditorConfig","exports","default","createElement","Fragment","PageEditorConfig","AddEntriesListDataSourceContext","ElementEventHandlers","SetupElementDataSettings"],"sources":["DynamicPageEditorConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig } from \"@webiny/app-page-builder/pageEditor\";\nimport { ElementEventHandlers } from \"./ElementEventHandlers\";\nimport { SetupElementDataSettings } from \"~/dataInjection/editor/SetupElementDataSettings\";\nimport { AddEntriesListDataSourceContext } from \"~/dataInjection/AddEntriesListDataSourceContext\";\n\nexport const DynamicPageEditorConfig = () => {\n return (\n <>\n <PageEditorConfig>\n <AddEntriesListDataSourceContext />\n <ElementEventHandlers />\n <SetupElementDataSettings />\n </PageEditorConfig>\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AACA,IAAAI,gCAAA,GAAAJ,OAAA;AAEO,IAAMK,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EACzC,oBACIP,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAAAV,MAAA,CAAAS,OAAA,CAAAE,QAAA,qBACIX,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACP,WAAA,CAAAS,gBAAgB,qBACbZ,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACJ,gCAAA,CAAAO,+BAA+B,MAAE,CAAC,eACnCb,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACN,qBAAA,CAAAU,oBAAoB,MAAE,CAAC,eACxBd,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACL,yBAAA,CAAAU,wBAAwB,MAAE,CACb,CACpB,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const ElementEventHandlers: () => null;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ElementEventHandlers = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _react = require("react");
11
+ var _editor = require("@webiny/app-page-builder/editor");
12
+ var _actions = require("@webiny/app-page-builder/editor/recoil/actions");
13
+ var _dataInjection = require("@webiny/app-page-builder/dataInjection");
14
+ var doNothing = {
15
+ actions: []
16
+ };
17
+ var addCmsListDataSource = function addCmsListDataSource(document, element) {
18
+ var dataSourceName = "element:".concat(element.id);
19
+ var gridElement = element.elements[0];
20
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, document), {}, {
21
+ dataSources: [].concat((0, _toConsumableArray2.default)(document.dataSources || []), [{
22
+ name: dataSourceName,
23
+ type: "cms.entries",
24
+ config: {
25
+ modelId: undefined,
26
+ limit: 10
27
+ }
28
+ }]),
29
+ dataBindings: [].concat((0, _toConsumableArray2.default)(document.dataBindings || []), [{
30
+ dataSource: dataSourceName,
31
+ bindFrom: "*",
32
+ bindTo: "element:".concat(gridElement.id, ".dataSource")
33
+ }])
34
+ });
35
+ };
36
+ var ElementEventHandlers = exports.ElementEventHandlers = function ElementEventHandlers() {
37
+ var eventHandler = (0, _editor.useEventActionHandler)();
38
+ var onElementCreate = function onElementCreate(state, _, args) {
39
+ if (!args) {
40
+ return doNothing;
41
+ }
42
+ var element = args.element;
43
+ if (element.type !== "entries-list") {
44
+ return doNothing;
45
+ }
46
+
47
+ // @ts-expect-error Event callable types need to be more generic.
48
+ var page = state.page;
49
+ var updatedPage = addCmsListDataSource(page, element);
50
+ return {
51
+ state: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
52
+ page: updatedPage
53
+ }),
54
+ actions: []
55
+ };
56
+ };
57
+ var onElementDelete = async function onElementDelete(state, _, args) {
58
+ if (!args) {
59
+ return doNothing;
60
+ }
61
+ var element = args.element;
62
+
63
+ // @ts-expect-error Event callable types need to be more generic.
64
+ var page = state.page;
65
+ var withDescendants = await state.getElementTree({
66
+ element: element
67
+ });
68
+ var traverser = new _dataInjection.ContentTraverser();
69
+ var deletedElements = [element.id];
70
+ traverser.traverse(withDescendants, function (node) {
71
+ deletedElements.push(node.id);
72
+ });
73
+ var deleteDataSources = deletedElements.map(function (id) {
74
+ return "element:".concat(id);
75
+ });
76
+ var deleteDataBindings = deletedElements.map(function (id) {
77
+ return "element:".concat(id, ".");
78
+ });
79
+ var updatedPage = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, page), {}, {
80
+ dataSources: (page.dataSources || []).filter(function (ds) {
81
+ return !deleteDataSources.includes(ds.name);
82
+ }),
83
+ dataBindings: (page.dataBindings || []).filter(function (binding) {
84
+ return !deleteDataBindings.some(function (toDelete) {
85
+ return binding.bindTo.startsWith(toDelete);
86
+ });
87
+ })
88
+ });
89
+ return {
90
+ state: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
91
+ page: updatedPage
92
+ }),
93
+ actions: []
94
+ };
95
+ };
96
+ (0, _react.useEffect)(function () {
97
+ var offCreateElement = eventHandler.on(_actions.CreateElementActionEvent, onElementCreate);
98
+ var offDeleteElement = eventHandler.on(_actions.DeleteElementActionEvent, onElementDelete);
99
+ return function () {
100
+ offCreateElement();
101
+ offDeleteElement();
102
+ };
103
+ }, []);
104
+ return null;
105
+ };
106
+
107
+ //# sourceMappingURL=ElementEventHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_editor","_actions","_dataInjection","doNothing","actions","addCmsListDataSource","document","element","dataSourceName","concat","id","gridElement","elements","_objectSpread2","default","dataSources","_toConsumableArray2","name","type","config","modelId","undefined","limit","dataBindings","dataSource","bindFrom","bindTo","ElementEventHandlers","exports","eventHandler","useEventActionHandler","onElementCreate","state","_","args","page","updatedPage","onElementDelete","withDescendants","getElementTree","traverser","ContentTraverser","deletedElements","traverse","node","push","deleteDataSources","map","deleteDataBindings","filter","ds","includes","binding","some","toDelete","startsWith","useEffect","offCreateElement","on","CreateElementActionEvent","offDeleteElement","DeleteElementActionEvent"],"sources":["ElementEventHandlers.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useEventActionHandler } from \"@webiny/app-page-builder/editor\";\nimport {\n CreateElementActionEvent,\n DeleteElementActionEvent\n} from \"@webiny/app-page-builder/editor/recoil/actions\";\nimport type {\n DynamicDocument,\n EventActionCallable,\n PbEditorElementTree\n} from \"@webiny/app-page-builder/types\";\nimport type { CreateElementEventActionArgsType } from \"@webiny/app-page-builder/editor/recoil/actions/createElement/types\";\nimport type { DeleteElementActionArgsType } from \"@webiny/app-page-builder/editor/recoil/actions/deleteElement/types\";\nimport type { PageAtomType } from \"@webiny/app-page-builder/pageEditor/state\";\nimport { ContentTraverser } from \"@webiny/app-page-builder/dataInjection\";\n\nconst doNothing = {\n actions: []\n};\n\nconst addCmsListDataSource = <T extends DynamicDocument>(\n document: T,\n element: PbEditorElementTree\n): T => {\n const dataSourceName = `element:${element.id}`;\n\n const gridElement = element.elements[0];\n\n return {\n ...document,\n dataSources: [\n ...(document.dataSources || []),\n {\n name: dataSourceName,\n type: \"cms.entries\",\n config: {\n modelId: undefined,\n limit: 10\n }\n }\n ],\n dataBindings: [\n ...(document.dataBindings || []),\n {\n dataSource: dataSourceName,\n bindFrom: \"*\",\n bindTo: `element:${gridElement.id}.dataSource`\n }\n ]\n };\n};\n\nexport const ElementEventHandlers = () => {\n const eventHandler = useEventActionHandler();\n\n const onElementCreate: EventActionCallable<CreateElementEventActionArgsType> = (\n state,\n _,\n args\n ) => {\n if (!args) {\n return doNothing;\n }\n\n const { element } = args;\n\n if (element.type !== \"entries-list\") {\n return doNothing;\n }\n\n // @ts-expect-error Event callable types need to be more generic.\n const page = state.page as PageAtomType;\n\n const updatedPage = addCmsListDataSource(page, element as PbEditorElementTree);\n\n return {\n state: {\n ...state,\n page: updatedPage\n },\n actions: []\n };\n };\n\n const onElementDelete: EventActionCallable<DeleteElementActionArgsType> = async (\n state,\n _,\n args\n ) => {\n if (!args) {\n return doNothing;\n }\n\n const { element } = args;\n\n // @ts-expect-error Event callable types need to be more generic.\n const page = state.page as PageAtomType;\n\n const withDescendants = await state.getElementTree({ element });\n\n const traverser = new ContentTraverser();\n const deletedElements: string[] = [element.id];\n\n traverser.traverse(withDescendants, node => {\n deletedElements.push(node.id);\n });\n\n const deleteDataSources = deletedElements.map(id => `element:${id}`);\n const deleteDataBindings = deletedElements.map(id => `element:${id}.`);\n\n const updatedPage: PageAtomType = {\n ...page,\n dataSources: (page.dataSources || []).filter(ds => {\n return !deleteDataSources.includes(ds.name);\n }),\n dataBindings: (page.dataBindings || []).filter(binding => {\n return !deleteDataBindings.some(toDelete => binding.bindTo.startsWith(toDelete));\n })\n };\n\n return {\n state: {\n ...state,\n page: updatedPage\n },\n actions: []\n };\n };\n\n useEffect(() => {\n const offCreateElement = eventHandler.on(CreateElementActionEvent, onElementCreate);\n const offDeleteElement = eventHandler.on(DeleteElementActionEvent, onElementDelete);\n\n return () => {\n offCreateElement();\n offDeleteElement();\n };\n }, []);\n return null;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAYA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAMI,SAAS,GAAG;EACdC,OAAO,EAAE;AACb,CAAC;AAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CACtBC,QAAW,EACXC,OAA4B,EACxB;EACJ,IAAMC,cAAc,cAAAC,MAAA,CAAcF,OAAO,CAACG,EAAE,CAAE;EAE9C,IAAMC,WAAW,GAAGJ,OAAO,CAACK,QAAQ,CAAC,CAAC,CAAC;EAEvC,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACOR,QAAQ;IACXS,WAAW,KAAAN,MAAA,KAAAO,mBAAA,CAAAF,OAAA,EACHR,QAAQ,CAACS,WAAW,IAAI,EAAE,IAC9B;MACIE,IAAI,EAAET,cAAc;MACpBU,IAAI,EAAE,aAAa;MACnBC,MAAM,EAAE;QACJC,OAAO,EAAEC,SAAS;QAClBC,KAAK,EAAE;MACX;IACJ,CAAC,EACJ;IACDC,YAAY,KAAAd,MAAA,KAAAO,mBAAA,CAAAF,OAAA,EACJR,QAAQ,CAACiB,YAAY,IAAI,EAAE,IAC/B;MACIC,UAAU,EAAEhB,cAAc;MAC1BiB,QAAQ,EAAE,GAAG;MACbC,MAAM,aAAAjB,MAAA,CAAaE,WAAW,CAACD,EAAE;IACrC,CAAC;EACJ;AAET,CAAC;AAEM,IAAMiB,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;EACtC,IAAME,YAAY,GAAG,IAAAC,6BAAqB,EAAC,CAAC;EAE5C,IAAMC,eAAsE,GAAG,SAAzEA,eAAsEA,CACxEC,KAAK,EACLC,CAAC,EACDC,IAAI,EACH;IACD,IAAI,CAACA,IAAI,EAAE;MACP,OAAO/B,SAAS;IACpB;IAEA,IAAQI,OAAO,GAAK2B,IAAI,CAAhB3B,OAAO;IAEf,IAAIA,OAAO,CAACW,IAAI,KAAK,cAAc,EAAE;MACjC,OAAOf,SAAS;IACpB;;IAEA;IACA,IAAMgC,IAAI,GAAGH,KAAK,CAACG,IAAoB;IAEvC,IAAMC,WAAW,GAAG/B,oBAAoB,CAAC8B,IAAI,EAAE5B,OAA8B,CAAC;IAE9E,OAAO;MACHyB,KAAK,MAAAnB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACEkB,KAAK;QACRG,IAAI,EAAEC;MAAW,EACpB;MACDhC,OAAO,EAAE;IACb,CAAC;EACL,CAAC;EAED,IAAMiC,eAAiE,GAAG,eAApEA,eAAiEA,CACnEL,KAAK,EACLC,CAAC,EACDC,IAAI,EACH;IACD,IAAI,CAACA,IAAI,EAAE;MACP,OAAO/B,SAAS;IACpB;IAEA,IAAQI,OAAO,GAAK2B,IAAI,CAAhB3B,OAAO;;IAEf;IACA,IAAM4B,IAAI,GAAGH,KAAK,CAACG,IAAoB;IAEvC,IAAMG,eAAe,GAAG,MAAMN,KAAK,CAACO,cAAc,CAAC;MAAEhC,OAAO,EAAPA;IAAQ,CAAC,CAAC;IAE/D,IAAMiC,SAAS,GAAG,IAAIC,+BAAgB,CAAC,CAAC;IACxC,IAAMC,eAAyB,GAAG,CAACnC,OAAO,CAACG,EAAE,CAAC;IAE9C8B,SAAS,CAACG,QAAQ,CAACL,eAAe,EAAE,UAAAM,IAAI,EAAI;MACxCF,eAAe,CAACG,IAAI,CAACD,IAAI,CAAClC,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,IAAMoC,iBAAiB,GAAGJ,eAAe,CAACK,GAAG,CAAC,UAAArC,EAAE;MAAA,kBAAAD,MAAA,CAAeC,EAAE;IAAA,CAAE,CAAC;IACpE,IAAMsC,kBAAkB,GAAGN,eAAe,CAACK,GAAG,CAAC,UAAArC,EAAE;MAAA,kBAAAD,MAAA,CAAeC,EAAE;IAAA,CAAG,CAAC;IAEtE,IAAM0B,WAAyB,OAAAvB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACxBqB,IAAI;MACPpB,WAAW,EAAE,CAACoB,IAAI,CAACpB,WAAW,IAAI,EAAE,EAAEkC,MAAM,CAAC,UAAAC,EAAE,EAAI;QAC/C,OAAO,CAACJ,iBAAiB,CAACK,QAAQ,CAACD,EAAE,CAACjC,IAAI,CAAC;MAC/C,CAAC,CAAC;MACFM,YAAY,EAAE,CAACY,IAAI,CAACZ,YAAY,IAAI,EAAE,EAAE0B,MAAM,CAAC,UAAAG,OAAO,EAAI;QACtD,OAAO,CAACJ,kBAAkB,CAACK,IAAI,CAAC,UAAAC,QAAQ;UAAA,OAAIF,OAAO,CAAC1B,MAAM,CAAC6B,UAAU,CAACD,QAAQ,CAAC;QAAA,EAAC;MACpF,CAAC;IAAC,EACL;IAED,OAAO;MACHtB,KAAK,MAAAnB,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACEkB,KAAK;QACRG,IAAI,EAAEC;MAAW,EACpB;MACDhC,OAAO,EAAE;IACb,CAAC;EACL,CAAC;EAED,IAAAoD,gBAAS,EAAC,YAAM;IACZ,IAAMC,gBAAgB,GAAG5B,YAAY,CAAC6B,EAAE,CAACC,iCAAwB,EAAE5B,eAAe,CAAC;IACnF,IAAM6B,gBAAgB,GAAG/B,YAAY,CAAC6B,EAAE,CAACG,iCAAwB,EAAExB,eAAe,CAAC;IAEnF,OAAO,YAAM;MACToB,gBAAgB,CAAC,CAAC;MAClBG,gBAAgB,CAAC,CAAC;IACtB,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const DynamicTemplateEditorConfig: () => React.JSX.Element;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DynamicTemplateEditorConfig = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _templateEditor = require("@webiny/app-page-builder/templateEditor");
10
+ var _EntrySelector = require("./EntrySelector");
11
+ var _features = require("../../features");
12
+ var _ElementEventHandlers = require("./ElementEventHandlers");
13
+ var _dataInjection = require("@webiny/app-page-builder/dataInjection");
14
+ var _SetupElementDataSettings = require("../../dataInjection/editor/SetupElementDataSettings");
15
+ var _AddEntriesListDataSourceContext = require("../../dataInjection/AddEntriesListDataSourceContext");
16
+ var Ui = _templateEditor.TemplateEditorConfig.Ui;
17
+ var OnDynamicTemplate = function OnDynamicTemplate(_ref) {
18
+ var children = _ref.children;
19
+ var _useDynamicDocument = (0, _dataInjection.useDynamicDocument)(),
20
+ dataSources = _useDynamicDocument.dataSources;
21
+ return (0, _features.hasMainDataSource)(dataSources) ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children) : null;
22
+ };
23
+ var DynamicTemplateEditorConfig = exports.DynamicTemplateEditorConfig = function DynamicTemplateEditorConfig() {
24
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_templateEditor.TemplateEditorConfig, null, /*#__PURE__*/_react.default.createElement(_AddEntriesListDataSourceContext.AddEntriesListDataSourceContext, null), /*#__PURE__*/_react.default.createElement(_SetupElementDataSettings.SetupElementDataSettings, null), /*#__PURE__*/_react.default.createElement(Ui.TopBar.Element, {
25
+ name: "entrySelector",
26
+ element: /*#__PURE__*/_react.default.createElement(OnDynamicTemplate, null, /*#__PURE__*/_react.default.createElement(_EntrySelector.EntrySelector, null)),
27
+ group: "center"
28
+ }), /*#__PURE__*/_react.default.createElement(_ElementEventHandlers.ElementEventHandlers, null)));
29
+ };
30
+
31
+ //# sourceMappingURL=DynamicTemplateEditorConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_templateEditor","_EntrySelector","_features","_ElementEventHandlers","_dataInjection","_SetupElementDataSettings","_AddEntriesListDataSourceContext","Ui","TemplateEditorConfig","OnDynamicTemplate","_ref","children","_useDynamicDocument","useDynamicDocument","dataSources","hasMainDataSource","default","createElement","Fragment","DynamicTemplateEditorConfig","exports","AddEntriesListDataSourceContext","SetupElementDataSettings","TopBar","Element","name","element","EntrySelector","group","ElementEventHandlers"],"sources":["DynamicTemplateEditorConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { TemplateEditorConfig } from \"@webiny/app-page-builder/templateEditor\";\nimport { EntrySelector } from \"~/admin/templateEditor/EntrySelector\";\nimport { hasMainDataSource } from \"~/features\";\nimport { ElementEventHandlers } from \"./ElementEventHandlers\";\nimport { useDynamicDocument } from \"@webiny/app-page-builder/dataInjection\";\nimport { SetupElementDataSettings } from \"~/dataInjection/editor/SetupElementDataSettings\";\nimport { AddEntriesListDataSourceContext } from \"~/dataInjection/AddEntriesListDataSourceContext\";\n\nconst { Ui } = TemplateEditorConfig;\n\nconst OnDynamicTemplate = ({ children }: { children: React.ReactNode }) => {\n const { dataSources } = useDynamicDocument();\n\n return hasMainDataSource(dataSources) ? <>{children}</> : null;\n};\n\nexport const DynamicTemplateEditorConfig = () => {\n return (\n <>\n <TemplateEditorConfig>\n <AddEntriesListDataSourceContext />\n <SetupElementDataSettings />\n <Ui.TopBar.Element\n name={\"entrySelector\"}\n element={\n <OnDynamicTemplate>\n <EntrySelector />\n </OnDynamicTemplate>\n }\n group={\"center\"}\n />\n\n <ElementEventHandlers />\n </TemplateEditorConfig>\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,yBAAA,GAAAN,OAAA;AACA,IAAAO,gCAAA,GAAAP,OAAA;AAEA,IAAQQ,EAAE,GAAKC,oCAAoB,CAA3BD,EAAE;AAEV,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAAoD;EAAA,IAA9CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACjC,IAAAC,mBAAA,GAAwB,IAAAC,iCAAkB,EAAC,CAAC;IAApCC,WAAW,GAAAF,mBAAA,CAAXE,WAAW;EAEnB,OAAO,IAAAC,2BAAiB,EAACD,WAAW,CAAC,gBAAGjB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAApB,MAAA,CAAAmB,OAAA,CAAAE,QAAA,QAAGP,QAAW,CAAC,GAAG,IAAI;AAClE,CAAC;AAEM,IAAMQ,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;EAC7C,oBACItB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAApB,MAAA,CAAAmB,OAAA,CAAAE,QAAA,qBACIrB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACjB,eAAA,CAAAQ,oBAAoB,qBACjBX,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACX,gCAAA,CAAAe,+BAA+B,MAAE,CAAC,eACnCxB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACZ,yBAAA,CAAAiB,wBAAwB,MAAE,CAAC,eAC5BzB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACV,EAAE,CAACgB,MAAM,CAACC,OAAO;IACdC,IAAI,EAAE,eAAgB;IACtBC,OAAO,eACH7B,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACR,iBAAiB,qBACdZ,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAChB,cAAA,CAAA0B,aAAa,MAAE,CACD,CACtB;IACDC,KAAK,EAAE;EAAS,CACnB,CAAC,eAEF/B,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACd,qBAAA,CAAA0B,oBAAoB,MAAE,CACL,CACxB,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const ElementEventHandlers: () => null;