@webiny/app-dynamic-pages 0.0.0-unstable.e53eceafb5

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