@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.
- package/LICENSE +21 -0
- package/README.md +20 -0
- package/admin/ContentEntryForm/AddPreviewPane.d.ts +2 -0
- package/admin/ContentEntryForm/AddPreviewPane.js +47 -0
- package/admin/ContentEntryForm/AddPreviewPane.js.map +1 -0
- package/admin/ContentEntryForm/PassEntryToDataSource.d.ts +2 -0
- package/admin/ContentEntryForm/PassEntryToDataSource.js +58 -0
- package/admin/ContentEntryForm/PassEntryToDataSource.js.map +1 -0
- package/admin/ContentEntryForm/PreviewPane.d.ts +6 -0
- package/admin/ContentEntryForm/PreviewPane.js +56 -0
- package/admin/ContentEntryForm/PreviewPane.js.map +1 -0
- package/admin/Extensions.d.ts +2 -0
- package/admin/Extensions.js +14 -0
- package/admin/Extensions.js.map +1 -0
- package/admin/PageTemplateDialog/CreateTemplateDialog.d.ts +11 -0
- package/admin/PageTemplateDialog/CreateTemplateDialog.js +200 -0
- package/admin/PageTemplateDialog/CreateTemplateDialog.js.map +1 -0
- package/admin/PageTemplateDialog/PageTemplateDialog.d.ts +2 -0
- package/admin/PageTemplateDialog/PageTemplateDialog.js +44 -0
- package/admin/PageTemplateDialog/PageTemplateDialog.js.map +1 -0
- package/admin/SetupDynamicPages.d.ts +2 -0
- package/admin/SetupDynamicPages.js +16 -0
- package/admin/SetupDynamicPages.js.map +1 -0
- package/admin/elements/Elements.d.ts +2 -0
- package/admin/elements/Elements.js +12 -0
- package/admin/elements/Elements.js.map +1 -0
- package/admin/elements/entriesList.d.ts +2 -0
- package/admin/elements/entriesList.js +35 -0
- package/admin/elements/entriesList.js.map +1 -0
- package/admin/elements/entriesSearch.d.ts +2 -0
- package/admin/elements/entriesSearch.js +34 -0
- package/admin/elements/entriesSearch.js.map +1 -0
- package/admin/elements/eventHandlers/ContentTraverser.d.ts +11 -0
- package/admin/elements/eventHandlers/ContentTraverser.js +10 -0
- package/admin/elements/eventHandlers/ContentTraverser.js.map +1 -0
- package/admin/elements/renderers/DynamicGrid.d.ts +2 -0
- package/admin/elements/renderers/DynamicGrid.js +49 -0
- package/admin/elements/renderers/DynamicGrid.js.map +1 -0
- package/admin/elements/renderers/EntriesList.d.ts +10 -0
- package/admin/elements/renderers/EntriesList.js +22 -0
- package/admin/elements/renderers/EntriesList.js.map +1 -0
- package/admin/elements/renderers/Repeater.d.ts +7 -0
- package/admin/elements/renderers/Repeater.js +21 -0
- package/admin/elements/renderers/Repeater.js.map +1 -0
- package/admin/elements/repeater.d.ts +2 -0
- package/admin/elements/repeater.js +34 -0
- package/admin/elements/repeater.js.map +1 -0
- package/admin/index.d.ts +1 -0
- package/admin/index.js +3 -0
- package/admin/index.js.map +1 -0
- package/admin/pageEditor/DynamicPageEditorConfig.d.ts +2 -0
- package/admin/pageEditor/DynamicPageEditorConfig.js +10 -0
- package/admin/pageEditor/DynamicPageEditorConfig.js.map +1 -0
- package/admin/pageEditor/ElementEventHandlers.d.ts +1 -0
- package/admin/pageEditor/ElementEventHandlers.js +100 -0
- package/admin/pageEditor/ElementEventHandlers.js.map +1 -0
- package/admin/templateEditor/DynamicTemplateEditorConfig.d.ts +2 -0
- package/admin/templateEditor/DynamicTemplateEditorConfig.js +28 -0
- package/admin/templateEditor/DynamicTemplateEditorConfig.js.map +1 -0
- package/admin/templateEditor/ElementEventHandlers.d.ts +1 -0
- package/admin/templateEditor/ElementEventHandlers.js +100 -0
- package/admin/templateEditor/ElementEventHandlers.js.map +1 -0
- package/admin/templateEditor/EntrySelector/EntrySelector.d.ts +2 -0
- package/admin/templateEditor/EntrySelector/EntrySelector.js +27 -0
- package/admin/templateEditor/EntrySelector/EntrySelector.js.map +1 -0
- package/admin/templateEditor/EntrySelector/index.d.ts +1 -0
- package/admin/templateEditor/EntrySelector/index.js +3 -0
- package/admin/templateEditor/EntrySelector/index.js.map +1 -0
- package/dataInjection/AddEntriesListDataSourceContext.d.ts +2 -0
- package/dataInjection/AddEntriesListDataSourceContext.js +27 -0
- package/dataInjection/AddEntriesListDataSourceContext.js.map +1 -0
- package/dataInjection/editor/DisableGridDelete.d.ts +2 -0
- package/dataInjection/editor/DisableGridDelete.js +18 -0
- package/dataInjection/editor/DisableGridDelete.js.map +1 -0
- package/dataInjection/editor/ElementDataSettings.d.ts +2 -0
- package/dataInjection/editor/ElementDataSettings.js +21 -0
- package/dataInjection/editor/ElementDataSettings.js.map +1 -0
- package/dataInjection/editor/HideIfChildOfEntriesList.d.ts +6 -0
- package/dataInjection/editor/HideIfChildOfEntriesList.js +16 -0
- package/dataInjection/editor/HideIfChildOfEntriesList.js.map +1 -0
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.d.ts +6 -0
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js +22 -0
- package/dataInjection/editor/HideIfEntriesListGridWithDataSource.js.map +1 -0
- package/dataInjection/editor/SetupElementDataSettings.d.ts +2 -0
- package/dataInjection/editor/SetupElementDataSettings.js +14 -0
- package/dataInjection/editor/SetupElementDataSettings.js.map +1 -0
- package/dataInjection/renderers/DynamicElementRenderers.d.ts +2 -0
- package/dataInjection/renderers/DynamicElementRenderers.js +20 -0
- package/dataInjection/renderers/DynamicElementRenderers.js.map +1 -0
- package/dataInjection/renderers/DynamicGrid.d.ts +2 -0
- package/dataInjection/renderers/DynamicGrid.js +44 -0
- package/dataInjection/renderers/DynamicGrid.js.map +1 -0
- package/dataInjection/renderers/EntriesList.d.ts +70 -0
- package/dataInjection/renderers/EntriesList.js +45 -0
- package/dataInjection/renderers/EntriesList.js.map +1 -0
- package/dataInjection/renderers/EntriesSearch.d.ts +47 -0
- package/dataInjection/renderers/EntriesSearch.js +26 -0
- package/dataInjection/renderers/EntriesSearch.js.map +1 -0
- package/dataInjection/renderers/Repeater.d.ts +70 -0
- package/dataInjection/renderers/Repeater.js +45 -0
- package/dataInjection/renderers/Repeater.js.map +1 -0
- package/features/index.d.ts +3 -0
- package/features/index.js +5 -0
- package/features/index.js.map +1 -0
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.d.ts +4 -0
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js +58 -0
- package/features/pageTemplate/createDynamicTemplate/useCreateDynamicTemplate.js.map +1 -0
- package/features/pageTemplate/hasMainDataSource.d.ts +2 -0
- package/features/pageTemplate/hasMainDataSource.js +5 -0
- package/features/pageTemplate/hasMainDataSource.js.map +1 -0
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.d.ts +3 -0
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js +13 -0
- package/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,58 @@
|
|
|
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");
|
|
15
|
+
if (!dataSource) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return dataSource.config.modelId === model.modelId;
|
|
19
|
+
});
|
|
20
|
+
if (existingDynamicTemplate) {
|
|
21
|
+
return existingDynamicTemplate;
|
|
22
|
+
}
|
|
23
|
+
const templateSlug = slugify(model.name, {
|
|
24
|
+
replacement: "-",
|
|
25
|
+
lower: true,
|
|
26
|
+
remove: /[*#\?<>_\{\}\[\]+~.()'"!:;@]/g,
|
|
27
|
+
trim: false
|
|
28
|
+
});
|
|
29
|
+
return createPageTemplate({
|
|
30
|
+
title: `${model.name} Page Template`,
|
|
31
|
+
slug: templateSlug,
|
|
32
|
+
description: "Dynamic page template",
|
|
33
|
+
tags: [`model:${model.modelId}`],
|
|
34
|
+
layout: "static",
|
|
35
|
+
dataSources: [{
|
|
36
|
+
name: "main",
|
|
37
|
+
type: "cms.entry",
|
|
38
|
+
config: {
|
|
39
|
+
modelId: model.modelId
|
|
40
|
+
}
|
|
41
|
+
}],
|
|
42
|
+
dataBindings: [{
|
|
43
|
+
dataSource: "main",
|
|
44
|
+
bindFrom: "title",
|
|
45
|
+
bindTo: "page:title"
|
|
46
|
+
}, {
|
|
47
|
+
dataSource: "main",
|
|
48
|
+
bindFrom: "title",
|
|
49
|
+
bindTo: "page:settings.general.title"
|
|
50
|
+
}]
|
|
51
|
+
});
|
|
52
|
+
}, [dynamicTemplates]);
|
|
53
|
+
return {
|
|
54
|
+
createDynamicPageTemplate
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=useCreateDynamicTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","slugify","useCreatePageTemplate","useListDynamicTemplates","useCreateDynamicPageTemplate","dynamicTemplates","createPageTemplate","createDynamicPageTemplate","model","existingDynamicTemplate","find","template","dataSource","dataSources","ds","name","config","modelId","templateSlug","replacement","lower","remove","trim","title","slug","description","tags","layout","type","dataBindings","bindFrom","bindTo"],"sources":["useCreateDynamicTemplate.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport slugify from \"slugify\";\nimport type { CmsModel } from \"@webiny/app-headless-cms/types\";\nimport { useCreatePageTemplate } from \"@webiny/app-page-builder/features\";\nimport { useListDynamicTemplates } from \"~/features/pageTemplate/listDynamicTemplates/useListDynamicTemplates\";\n\nexport const useCreateDynamicPageTemplate = () => {\n const { dynamicTemplates } = useListDynamicTemplates();\n const { createPageTemplate } = useCreatePageTemplate();\n\n const createDynamicPageTemplate = useCallback(\n async (model: CmsModel) => {\n const existingDynamicTemplate = dynamicTemplates.find(template => {\n const dataSource = template.dataSources.find(ds => ds.name === \"main\");\n if (!dataSource) {\n return false;\n }\n\n return dataSource.config.modelId === model.modelId;\n });\n\n if (existingDynamicTemplate) {\n return existingDynamicTemplate;\n }\n\n const templateSlug = slugify(model.name, {\n replacement: \"-\",\n lower: true,\n remove: /[*#\\?<>_\\{\\}\\[\\]+~.()'\"!:;@]/g,\n trim: false\n });\n\n return createPageTemplate({\n title: `${model.name} Page Template`,\n slug: templateSlug,\n description: \"Dynamic page template\",\n tags: [`model:${model.modelId}`],\n layout: \"static\",\n dataSources: [\n {\n name: \"main\",\n type: \"cms.entry\",\n config: {\n modelId: model.modelId\n }\n }\n ],\n dataBindings: [\n {\n dataSource: \"main\",\n bindFrom: \"title\",\n bindTo: \"page:title\"\n },\n {\n dataSource: \"main\",\n bindFrom: \"title\",\n bindTo: \"page:settings.general.title\"\n }\n ]\n });\n },\n [dynamicTemplates]\n );\n\n return { createDynamicPageTemplate };\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,OAAOC,OAAO,MAAM,SAAS;AAE7B,SAASC,qBAAqB,QAAQ,mCAAmC;AACzE,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,4BAA4B,GAAGA,CAAA,KAAM;EAC9C,MAAM;IAAEC;EAAiB,CAAC,GAAGF,uBAAuB,CAAC,CAAC;EACtD,MAAM;IAAEG;EAAmB,CAAC,GAAGJ,qBAAqB,CAAC,CAAC;EAEtD,MAAMK,yBAAyB,GAAGP,WAAW,CACzC,MAAOQ,KAAe,IAAK;IACvB,MAAMC,uBAAuB,GAAGJ,gBAAgB,CAACK,IAAI,CAACC,QAAQ,IAAI;MAC9D,MAAMC,UAAU,GAAGD,QAAQ,CAACE,WAAW,CAACH,IAAI,CAACI,EAAE,IAAIA,EAAE,CAACC,IAAI,KAAK,MAAM,CAAC;MACtE,IAAI,CAACH,UAAU,EAAE;QACb,OAAO,KAAK;MAChB;MAEA,OAAOA,UAAU,CAACI,MAAM,CAACC,OAAO,KAAKT,KAAK,CAACS,OAAO;IACtD,CAAC,CAAC;IAEF,IAAIR,uBAAuB,EAAE;MACzB,OAAOA,uBAAuB;IAClC;IAEA,MAAMS,YAAY,GAAGjB,OAAO,CAACO,KAAK,CAACO,IAAI,EAAE;MACrCI,WAAW,EAAE,GAAG;MAChBC,KAAK,EAAE,IAAI;MACXC,MAAM,EAAE,+BAA+B;MACvCC,IAAI,EAAE;IACV,CAAC,CAAC;IAEF,OAAOhB,kBAAkB,CAAC;MACtBiB,KAAK,EAAE,GAAGf,KAAK,CAACO,IAAI,gBAAgB;MACpCS,IAAI,EAAEN,YAAY;MAClBO,WAAW,EAAE,uBAAuB;MACpCC,IAAI,EAAE,CAAC,SAASlB,KAAK,CAACS,OAAO,EAAE,CAAC;MAChCU,MAAM,EAAE,QAAQ;MAChBd,WAAW,EAAE,CACT;QACIE,IAAI,EAAE,MAAM;QACZa,IAAI,EAAE,WAAW;QACjBZ,MAAM,EAAE;UACJC,OAAO,EAAET,KAAK,CAACS;QACnB;MACJ,CAAC,CACJ;MACDY,YAAY,EAAE,CACV;QACIjB,UAAU,EAAE,MAAM;QAClBkB,QAAQ,EAAE,OAAO;QACjBC,MAAM,EAAE;MACZ,CAAC,EACD;QACInB,UAAU,EAAE,MAAM;QAClBkB,QAAQ,EAAE,OAAO;QACjBC,MAAM,EAAE;MACZ,CAAC;IAET,CAAC,CAAC;EACN,CAAC,EACD,CAAC1B,gBAAgB,CACrB,CAAC;EAED,OAAO;IAAEE;EAA0B,CAAC;AACxC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hasMainDataSource","dataSources","some","source","name"],"sources":["hasMainDataSource.ts"],"sourcesContent":["import type { PbDataSource } from \"@webiny/app-page-builder/types\";\n\nexport const hasMainDataSource = (dataSources: PbDataSource[]): boolean => {\n return dataSources.some(source => source.name === \"main\");\n};\n"],"mappings":"AAEA,OAAO,MAAMA,iBAAiB,GAAIC,WAA2B,IAAc;EACvE,OAAOA,WAAW,CAACC,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACC,IAAI,KAAK,MAAM,CAAC;AAC7D,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useListPageTemplates } from "@webiny/app-page-builder/features";
|
|
2
|
+
import { hasMainDataSource } from "../..";
|
|
3
|
+
export const useListDynamicTemplates = () => {
|
|
4
|
+
const {
|
|
5
|
+
pageTemplates
|
|
6
|
+
} = useListPageTemplates();
|
|
7
|
+
const dynamicTemplates = pageTemplates.filter(template => hasMainDataSource(template.dataSources));
|
|
8
|
+
return {
|
|
9
|
+
dynamicTemplates
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=useListDynamicTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useListPageTemplates","hasMainDataSource","useListDynamicTemplates","pageTemplates","dynamicTemplates","filter","template","dataSources"],"sources":["useListDynamicTemplates.ts"],"sourcesContent":["import { useListPageTemplates } from \"@webiny/app-page-builder/features\";\nimport { hasMainDataSource } from \"~/features\";\n\nexport const useListDynamicTemplates = () => {\n const { pageTemplates } = useListPageTemplates();\n\n const dynamicTemplates = pageTemplates.filter(template =>\n hasMainDataSource(template.dataSources)\n );\n\n return { dynamicTemplates };\n};\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,mCAAmC;AACxE,SAASC,iBAAiB;AAE1B,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EACzC,MAAM;IAAEC;EAAc,CAAC,GAAGH,oBAAoB,CAAC,CAAC;EAEhD,MAAMI,gBAAgB,GAAGD,aAAa,CAACE,MAAM,CAACC,QAAQ,IAClDL,iBAAiB,CAACK,QAAQ,CAACC,WAAW,CAC1C,CAAC;EAED,OAAO;IAAEH;EAAiB,CAAC;AAC/B,CAAC","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webiny/app-dynamic-pages",
|
|
3
|
+
"version": "0.0.0-unstable.3bc8100a7f",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/webiny/webiny-js.git"
|
|
8
|
+
},
|
|
9
|
+
"author": "Webiny Ltd",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@emotion/react": "11.10.8",
|
|
13
|
+
"@emotion/styled": "11.10.6",
|
|
14
|
+
"@fortawesome/fontawesome-svg-core": "1.3.0",
|
|
15
|
+
"@fortawesome/react-fontawesome": "0.1.19",
|
|
16
|
+
"@types/react": "18.2.79",
|
|
17
|
+
"@webiny/app": "0.0.0-unstable.3bc8100a7f",
|
|
18
|
+
"@webiny/app-admin": "0.0.0-unstable.3bc8100a7f",
|
|
19
|
+
"@webiny/app-headless-cms": "0.0.0-unstable.3bc8100a7f",
|
|
20
|
+
"@webiny/app-page-builder": "0.0.0-unstable.3bc8100a7f",
|
|
21
|
+
"@webiny/app-page-builder-elements": "0.0.0-unstable.3bc8100a7f",
|
|
22
|
+
"@webiny/icons": "0.0.0-unstable.3bc8100a7f",
|
|
23
|
+
"@webiny/plugins": "0.0.0-unstable.3bc8100a7f",
|
|
24
|
+
"@webiny/react-router": "0.0.0-unstable.3bc8100a7f",
|
|
25
|
+
"@webiny/ui": "0.0.0-unstable.3bc8100a7f",
|
|
26
|
+
"apollo-client": "2.6.10",
|
|
27
|
+
"emotion": "10.0.27",
|
|
28
|
+
"graphql": "15.9.0",
|
|
29
|
+
"mobx": "6.9.0",
|
|
30
|
+
"react": "18.2.0",
|
|
31
|
+
"react-dom": "18.2.0",
|
|
32
|
+
"slugify": "1.6.6"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@emotion/babel-plugin": "11.11.0",
|
|
36
|
+
"@webiny/project-utils": "0.0.0-unstable.3bc8100a7f",
|
|
37
|
+
"rimraf": "6.0.1",
|
|
38
|
+
"typescript": "5.3.3"
|
|
39
|
+
},
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public",
|
|
42
|
+
"directory": "dist"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "node ../cli/bin.js run build",
|
|
46
|
+
"watch": "node ../cli/bin.js run watch"
|
|
47
|
+
},
|
|
48
|
+
"svgo": {
|
|
49
|
+
"plugins": {
|
|
50
|
+
"removeViewBox": false
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "3bc8100a7f1fb3a8d6a3454a2765f8ef377c279e"
|
|
54
|
+
}
|