@webiny/app-dynamic-pages 5.43.3 → 6.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/ContentEntryForm/AddPreviewPane.js +24 -29
- package/admin/ContentEntryForm/AddPreviewPane.js.map +1 -1
- package/admin/ContentEntryForm/PassEntryToDataSource.js +39 -59
- package/admin/ContentEntryForm/PassEntryToDataSource.js.map +1 -1
- package/admin/ContentEntryForm/PreviewPane.d.ts +1 -1
- package/admin/ContentEntryForm/PreviewPane.js +23 -32
- package/admin/ContentEntryForm/PreviewPane.js.map +1 -1
- package/admin/Extensions.js +9 -18
- package/admin/Extensions.js.map +1 -1
- package/admin/PageTemplateDialog/CreateTemplateDialog.d.ts +1 -1
- package/admin/PageTemplateDialog/CreateTemplateDialog.js +89 -92
- package/admin/PageTemplateDialog/CreateTemplateDialog.js.map +1 -1
- package/admin/PageTemplateDialog/PageTemplateDialog.js +24 -35
- package/admin/PageTemplateDialog/PageTemplateDialog.js.map +1 -1
- package/admin/SetupDynamicPages.js +13 -20
- package/admin/SetupDynamicPages.js.map +1 -1
- package/admin/elements/Elements.js +9 -16
- package/admin/elements/Elements.js.map +1 -1
- package/admin/elements/entriesList.d.ts +1 -1
- package/admin/elements/entriesList.js +12 -19
- package/admin/elements/entriesList.js.map +1 -1
- package/admin/elements/entriesSearch.d.ts +1 -1
- package/admin/elements/entriesSearch.js +10 -17
- package/admin/elements/entriesSearch.js.map +1 -1
- package/admin/elements/eventHandlers/ContentTraverser.d.ts +1 -1
- package/admin/elements/eventHandlers/ContentTraverser.js +7 -32
- package/admin/elements/eventHandlers/ContentTraverser.js.map +1 -1
- package/admin/elements/renderers/DynamicGrid.js +26 -32
- package/admin/elements/renderers/DynamicGrid.js.map +1 -1
- package/admin/elements/renderers/EntriesList.d.ts +1 -1
- package/admin/elements/renderers/EntriesList.js +11 -19
- package/admin/elements/renderers/EntriesList.js.map +1 -1
- package/admin/elements/renderers/Repeater.d.ts +1 -1
- package/admin/elements/renderers/Repeater.js +11 -19
- package/admin/elements/renderers/Repeater.js.map +1 -1
- package/admin/elements/repeater.d.ts +1 -1
- package/admin/elements/repeater.js +10 -17
- package/admin/elements/repeater.js.map +1 -1
- package/admin/index.js +1 -12
- package/admin/index.js.map +1 -1
- package/admin/pageEditor/DynamicPageEditorConfig.js +7 -14
- package/admin/pageEditor/DynamicPageEditorConfig.js.map +1 -1
- package/admin/pageEditor/ElementEventHandlers.js +52 -59
- package/admin/pageEditor/ElementEventHandlers.js.map +1 -1
- package/admin/templateEditor/DynamicTemplateEditorConfig.js +22 -25
- package/admin/templateEditor/DynamicTemplateEditorConfig.js.map +1 -1
- package/admin/templateEditor/ElementEventHandlers.js +52 -59
- package/admin/templateEditor/ElementEventHandlers.js.map +1 -1
- package/admin/templateEditor/EntrySelector/EntrySelector.js +16 -27
- package/admin/templateEditor/EntrySelector/EntrySelector.js.map +1 -1
- package/admin/templateEditor/EntrySelector/index.js +1 -16
- package/admin/templateEditor/EntrySelector/index.js.map +1 -1
- package/dataInjection/AddEntriesListDataSourceContext.js +14 -20
- package/dataInjection/AddEntriesListDataSourceContext.js.map +1 -1
- package/dataInjection/editor/DisableGridDelete.js +10 -15
- package/dataInjection/editor/DisableGridDelete.js.map +1 -1
- package/dataInjection/editor/ElementDataSettings.js +13 -20
- package/dataInjection/editor/ElementDataSettings.js.map +1 -1
- package/dataInjection/editor/HideIfChildOfEntriesList.js +10 -18
- package/dataInjection/editor/HideIfChildOfEntriesList.js.map +1 -1
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js +16 -25
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js.map +1 -1
- package/dataInjection/editor/SetupElementDataSettings.js +9 -14
- package/dataInjection/editor/SetupElementDataSettings.js.map +1 -1
- package/dataInjection/renderers/DynamicElementRenderers.js +14 -21
- package/dataInjection/renderers/DynamicElementRenderers.js.map +1 -1
- package/dataInjection/renderers/DynamicGrid.js +24 -30
- package/dataInjection/renderers/DynamicGrid.js.map +1 -1
- package/dataInjection/renderers/EntriesList.d.ts +1 -1
- package/dataInjection/renderers/EntriesList.js +20 -26
- package/dataInjection/renderers/EntriesList.js.map +1 -1
- package/dataInjection/renderers/EntriesSearch.js +9 -21
- package/dataInjection/renderers/EntriesSearch.js.map +1 -1
- package/dataInjection/renderers/Repeater.d.ts +1 -1
- package/dataInjection/renderers/Repeater.js +20 -26
- package/dataInjection/renderers/Repeater.js.map +1 -1
- package/features/index.js +3 -38
- package/features/index.js.map +1 -1
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.d.ts +1 -1
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js +18 -25
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js.map +1 -1
- package/features/pageTemplate/hasMainDataSource.js +2 -10
- package/features/pageTemplate/hasMainDataSource.js.map +1 -1
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js +8 -15
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js.map +1 -1
- package/package.json +12 -13
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _ElementDataSettings = require("./ElementDataSettings");
|
|
10
|
-
var _editor = require("@webiny/app-page-builder/editor");
|
|
11
|
-
var Ui = _editor.EditorConfig.Ui;
|
|
12
|
-
var SetupElementDataSettings = exports.SetupElementDataSettings = function SetupElementDataSettings() {
|
|
13
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Ui.Sidebar.Group, {
|
|
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, {
|
|
14
9
|
name: "data",
|
|
15
|
-
element: /*#__PURE__*/
|
|
10
|
+
element: /*#__PURE__*/React.createElement(ElementDataSettings, null)
|
|
16
11
|
}));
|
|
17
12
|
};
|
|
18
13
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
|
@@ -1,27 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _appPageBuilder = require("@webiny/app-page-builder");
|
|
10
|
-
var _Repeater = require("./Repeater");
|
|
11
|
-
var _EntriesList = require("./EntriesList");
|
|
12
|
-
var _EntriesSearch = require("./EntriesSearch");
|
|
13
|
-
var _DynamicGrid = require("./DynamicGrid");
|
|
14
|
-
var DynamicElementRenderers = exports.DynamicElementRenderers = function DynamicElementRenderers() {
|
|
15
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_appPageBuilder.PbRenderElementPlugin, {
|
|
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, {
|
|
16
9
|
elementType: "repeater",
|
|
17
|
-
renderer:
|
|
18
|
-
}), /*#__PURE__*/
|
|
10
|
+
renderer: RepeaterRenderer
|
|
11
|
+
}), /*#__PURE__*/React.createElement(PbRenderElementPlugin, {
|
|
19
12
|
elementType: "entries-list",
|
|
20
|
-
renderer:
|
|
21
|
-
}), /*#__PURE__*/
|
|
13
|
+
renderer: EntriesListRenderer
|
|
14
|
+
}), /*#__PURE__*/React.createElement(PbRenderElementPlugin, {
|
|
22
15
|
elementType: "entries-search",
|
|
23
|
-
renderer:
|
|
24
|
-
}), /*#__PURE__*/
|
|
16
|
+
renderer: EntriesSearchRenderer
|
|
17
|
+
}), /*#__PURE__*/React.createElement(DynamicGrid, null));
|
|
25
18
|
};
|
|
26
19
|
|
|
27
20
|
//# sourceMappingURL=DynamicElementRenderers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
|
@@ -1,49 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 _grid = require("@webiny/app-page-builder-elements/renderers/grid");
|
|
12
|
-
var _dataInjection = require("@webiny/app-page-builder/dataInjection");
|
|
13
|
-
var elementInputs = {
|
|
14
|
-
dataSource: _appPageBuilderElements.ElementInput.create({
|
|
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({
|
|
15
7
|
name: "dataSource",
|
|
16
8
|
type: "array",
|
|
17
9
|
translatable: false,
|
|
18
|
-
getDefaultValue
|
|
10
|
+
getDefaultValue() {
|
|
19
11
|
return [];
|
|
20
12
|
}
|
|
21
13
|
})
|
|
22
14
|
};
|
|
23
|
-
|
|
15
|
+
export const DynamicGrid = GridRenderer.Component.createDecorator(Original => {
|
|
24
16
|
return function DynamicGrid(props) {
|
|
25
|
-
|
|
26
|
-
getElement
|
|
27
|
-
getInputValues
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
const {
|
|
18
|
+
getElement,
|
|
19
|
+
getInputValues
|
|
20
|
+
} = useRenderer();
|
|
21
|
+
const element = getElement();
|
|
22
|
+
const inputs = getInputValues();
|
|
30
23
|
if (Array.isArray(inputs.dataSource)) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
const hasData = inputs.dataSource.length > 0;
|
|
25
|
+
const baseCell = element.elements[0];
|
|
26
|
+
const dynamicElement = {
|
|
27
|
+
...element,
|
|
34
28
|
elements: hasData ? Array(inputs.dataSource.length).fill(baseCell) : element.elements
|
|
35
|
-
}
|
|
36
|
-
return /*#__PURE__*/
|
|
29
|
+
};
|
|
30
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
37
31
|
element: dynamicElement,
|
|
38
|
-
wrapper:
|
|
39
|
-
|
|
40
|
-
return /*#__PURE__*/
|
|
32
|
+
wrapper: (element, index) => {
|
|
33
|
+
const dataSource = inputs.dataSource ? inputs.dataSource[index] : {};
|
|
34
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
41
35
|
dataSource: dataSource
|
|
42
36
|
}, element);
|
|
43
37
|
}
|
|
44
38
|
});
|
|
45
39
|
}
|
|
46
|
-
return /*#__PURE__*/
|
|
40
|
+
return /*#__PURE__*/React.createElement(Original, props);
|
|
47
41
|
};
|
|
48
42
|
});
|
|
49
43
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ElementInput } from "@webiny/app-page-builder-elements";
|
|
3
|
-
import { GenericRecord } from "@webiny/app/types";
|
|
3
|
+
import type { GenericRecord } from "@webiny/app/types";
|
|
4
4
|
export declare const elementInputs: {
|
|
5
5
|
dataSource: ElementInput<GenericRecord[], any>;
|
|
6
6
|
};
|
|
@@ -1,45 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.elementInputs = exports.EntriesListRenderer = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _appPageBuilderElements = require("@webiny/app-page-builder-elements");
|
|
10
|
-
var _dataInjection = require("@webiny/app-page-builder/dataInjection");
|
|
11
|
-
var elementInputs = exports.elementInputs = {
|
|
12
|
-
dataSource: _appPageBuilderElements.ElementInput.create({
|
|
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({
|
|
13
6
|
name: "dataSource",
|
|
14
7
|
type: "array",
|
|
15
8
|
translatable: false,
|
|
16
|
-
getDefaultValue
|
|
9
|
+
getDefaultValue() {
|
|
17
10
|
return [];
|
|
18
11
|
}
|
|
19
12
|
})
|
|
20
13
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
getElement
|
|
26
|
-
getInputValues
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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 || [];
|
|
30
24
|
if (element.elements.length === 0) {
|
|
31
25
|
return ifEmpty;
|
|
32
26
|
}
|
|
33
27
|
if (!dataSources.length) {
|
|
34
|
-
return /*#__PURE__*/
|
|
28
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
35
29
|
element: element
|
|
36
30
|
});
|
|
37
31
|
}
|
|
38
|
-
return /*#__PURE__*/
|
|
39
|
-
return /*#__PURE__*/
|
|
32
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, dataSources.map((dataSource, index) => {
|
|
33
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
40
34
|
dataSource: dataSource,
|
|
41
35
|
key: index
|
|
42
|
-
}, /*#__PURE__*/
|
|
36
|
+
}, /*#__PURE__*/React.createElement(Elements, {
|
|
43
37
|
element: element,
|
|
44
38
|
elementKeyPrefix: index.toString()
|
|
45
39
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
|
@@ -1,33 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
value
|
|
7
|
-
|
|
8
|
-
exports.EntriesSearchRenderer = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _appPageBuilderElements = require("@webiny/app-page-builder-elements");
|
|
12
|
-
var _dataInjection = require("@webiny/app-page-builder/dataInjection");
|
|
13
|
-
var EntriesSearchRenderer = exports.EntriesSearchRenderer = (0, _appPageBuilderElements.createRenderer)(function () {
|
|
14
|
-
var data = (0, _dataInjection.useDataSource)();
|
|
15
|
-
var _useState = (0, _react.useState)(""),
|
|
16
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
17
|
-
value = _useState2[0],
|
|
18
|
-
setValue = _useState2[1];
|
|
19
|
-
var onChange = (0, _react.useCallback)(function (e) {
|
|
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 => {
|
|
20
8
|
if (!data) {
|
|
21
9
|
return;
|
|
22
10
|
}
|
|
23
11
|
e.preventDefault();
|
|
24
|
-
|
|
12
|
+
const value = e.target.value;
|
|
25
13
|
setValue(value);
|
|
26
14
|
data.loadData({
|
|
27
15
|
search: value !== "" ? value : undefined
|
|
28
16
|
});
|
|
29
17
|
}, [data]);
|
|
30
|
-
return /*#__PURE__*/
|
|
18
|
+
return /*#__PURE__*/React.createElement("input", {
|
|
31
19
|
type: "text",
|
|
32
20
|
placeholder: "Search",
|
|
33
21
|
value: value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ElementInput } from "@webiny/app-page-builder-elements";
|
|
3
|
-
import { GenericRecord } from "@webiny/app/types";
|
|
3
|
+
import type { GenericRecord } from "@webiny/app/types";
|
|
4
4
|
export declare const elementInputs: {
|
|
5
5
|
dataSource: ElementInput<GenericRecord[], any>;
|
|
6
6
|
};
|
|
@@ -1,45 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.elementInputs = exports.RepeaterRenderer = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _appPageBuilderElements = require("@webiny/app-page-builder-elements");
|
|
10
|
-
var _dataInjection = require("@webiny/app-page-builder/dataInjection");
|
|
11
|
-
var elementInputs = exports.elementInputs = {
|
|
12
|
-
dataSource: _appPageBuilderElements.ElementInput.create({
|
|
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({
|
|
13
6
|
name: "dataSource",
|
|
14
7
|
type: "array",
|
|
15
8
|
translatable: false,
|
|
16
|
-
getDefaultValue
|
|
9
|
+
getDefaultValue() {
|
|
17
10
|
return [];
|
|
18
11
|
}
|
|
19
12
|
})
|
|
20
13
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
getElement
|
|
26
|
-
getInputValues
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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 || [];
|
|
30
24
|
if (element.elements.length === 0) {
|
|
31
25
|
return ifEmpty;
|
|
32
26
|
}
|
|
33
27
|
if (!dataSources.length) {
|
|
34
|
-
return /*#__PURE__*/
|
|
28
|
+
return /*#__PURE__*/React.createElement(Elements, {
|
|
35
29
|
element: element
|
|
36
30
|
});
|
|
37
31
|
}
|
|
38
|
-
return /*#__PURE__*/
|
|
39
|
-
return /*#__PURE__*/
|
|
32
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, dataSources.map((dataSource, index) => {
|
|
33
|
+
return /*#__PURE__*/React.createElement(DataSourceDataProvider, {
|
|
40
34
|
dataSource: dataSource,
|
|
41
35
|
key: index
|
|
42
|
-
}, /*#__PURE__*/
|
|
36
|
+
}, /*#__PURE__*/React.createElement(Elements, {
|
|
43
37
|
element: element,
|
|
44
38
|
elementKeyPrefix: index.toString()
|
|
45
39
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|
package/features/index.js
CHANGED
|
@@ -1,40 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _hasMainDataSource = require("./pageTemplate/hasMainDataSource");
|
|
7
|
-
Object.keys(_hasMainDataSource).forEach(function (key) {
|
|
8
|
-
if (key === "default" || key === "__esModule") return;
|
|
9
|
-
if (key in exports && exports[key] === _hasMainDataSource[key]) return;
|
|
10
|
-
Object.defineProperty(exports, key, {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function get() {
|
|
13
|
-
return _hasMainDataSource[key];
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
var _useCreateDynamicTemplate = require("./pageTemplate/createDynamicTemplate/useCreateDynamicTemplate");
|
|
18
|
-
Object.keys(_useCreateDynamicTemplate).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] === _useCreateDynamicTemplate[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function get() {
|
|
24
|
-
return _useCreateDynamicTemplate[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
var _useListDynamicTemplates = require("./pageTemplate/listDynamicTemplates/useListDynamicTemplates");
|
|
29
|
-
Object.keys(_useListDynamicTemplates).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _useListDynamicTemplates[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function get() {
|
|
35
|
-
return _useListDynamicTemplates[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
1
|
+
export * from "./pageTemplate/hasMainDataSource";
|
|
2
|
+
export * from "./pageTemplate/createDynamicTemplate/useCreateDynamicTemplate";
|
|
3
|
+
export * from "./pageTemplate/listDynamicTemplates/useListDynamicTemplates";
|
|
39
4
|
|
|
40
5
|
//# sourceMappingURL=index.js.map
|
package/features/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
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":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CmsModel } from "@webiny/app-headless-cms/types";
|
|
1
|
+
import type { CmsModel } from "@webiny/app-headless-cms/types";
|
|
2
2
|
export declare const useCreateDynamicPageTemplate: () => {
|
|
3
3
|
createDynamicPageTemplate: (model: CmsModel) => Promise<import("@webiny/app-page-builder/types").PbPageTemplateWithContent>;
|
|
4
4
|
};
|
|
@@ -1,24 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _useCreatePageTemplat = (0, _features.useCreatePageTemplate)(),
|
|
16
|
-
createPageTemplate = _useCreatePageTemplat.createPageTemplate;
|
|
17
|
-
var createDynamicPageTemplate = (0, _react.useCallback)(async function (model) {
|
|
18
|
-
var existingDynamicTemplate = dynamicTemplates.find(function (template) {
|
|
19
|
-
var dataSource = template.dataSources.find(function (ds) {
|
|
20
|
-
return ds.name === "main";
|
|
21
|
-
});
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import slugify from "slugify";
|
|
3
|
+
import { useCreatePageTemplate } from "@webiny/app-page-builder/features";
|
|
4
|
+
import { useListDynamicTemplates } from "../listDynamicTemplates/useListDynamicTemplates";
|
|
5
|
+
export const useCreateDynamicPageTemplate = () => {
|
|
6
|
+
const {
|
|
7
|
+
dynamicTemplates
|
|
8
|
+
} = useListDynamicTemplates();
|
|
9
|
+
const {
|
|
10
|
+
createPageTemplate
|
|
11
|
+
} = useCreatePageTemplate();
|
|
12
|
+
const createDynamicPageTemplate = useCallback(async model => {
|
|
13
|
+
const existingDynamicTemplate = dynamicTemplates.find(template => {
|
|
14
|
+
const dataSource = template.dataSources.find(ds => ds.name === "main");
|
|
22
15
|
if (!dataSource) {
|
|
23
16
|
return false;
|
|
24
17
|
}
|
|
@@ -27,17 +20,17 @@ var useCreateDynamicPageTemplate = exports.useCreateDynamicPageTemplate = functi
|
|
|
27
20
|
if (existingDynamicTemplate) {
|
|
28
21
|
return existingDynamicTemplate;
|
|
29
22
|
}
|
|
30
|
-
|
|
23
|
+
const templateSlug = slugify(model.name, {
|
|
31
24
|
replacement: "-",
|
|
32
25
|
lower: true,
|
|
33
26
|
remove: /[*#\?<>_\{\}\[\]+~.()'"!:;@]/g,
|
|
34
27
|
trim: false
|
|
35
28
|
});
|
|
36
29
|
return createPageTemplate({
|
|
37
|
-
title:
|
|
30
|
+
title: `${model.name} Page Template`,
|
|
38
31
|
slug: templateSlug,
|
|
39
32
|
description: "Dynamic page template",
|
|
40
|
-
tags: [
|
|
33
|
+
tags: [`model:${model.modelId}`],
|
|
41
34
|
layout: "static",
|
|
42
35
|
dataSources: [{
|
|
43
36
|
name: "main",
|
|
@@ -58,7 +51,7 @@ var useCreateDynamicPageTemplate = exports.useCreateDynamicPageTemplate = functi
|
|
|
58
51
|
});
|
|
59
52
|
}, [dynamicTemplates]);
|
|
60
53
|
return {
|
|
61
|
-
createDynamicPageTemplate
|
|
54
|
+
createDynamicPageTemplate
|
|
62
55
|
};
|
|
63
56
|
};
|
|
64
57
|
|