@parameter1/base-cms-marko-web 3.8.0 → 3.13.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 (87) hide show
  1. package/components/browser-component.marko.js +86 -0
  2. package/components/document/components/body-wrapper.marko.js +33 -0
  3. package/components/document/components/error.marko.js +85 -0
  4. package/components/document/components/live-reload.marko.js +30 -0
  5. package/components/document/container.marko.js +54 -0
  6. package/components/document/index.marko.js +118 -0
  7. package/components/element/array.marko.js +67 -0
  8. package/components/element/block.marko.js +44 -0
  9. package/components/element/clear.marko.js +32 -0
  10. package/components/element/components/image.marko.js +62 -0
  11. package/components/element/components/text.marko.js +37 -0
  12. package/components/element/content/address1.marko.js +40 -0
  13. package/components/element/content/address2.marko.js +40 -0
  14. package/components/element/content/authors.marko.js +43 -0
  15. package/components/element/content/body.marko.js +62 -0
  16. package/components/element/content/byline.marko.js +41 -0
  17. package/components/element/content/city-state-zip.marko.js +40 -0
  18. package/components/element/content/contributors.marko.js +43 -0
  19. package/components/element/content/country.marko.js +40 -0
  20. package/components/element/content/embed-code.marko.js +41 -0
  21. package/components/element/content/end-date.marko.js +42 -0
  22. package/components/element/content/fax.marko.js +40 -0
  23. package/components/element/content/mobile.marko.js +40 -0
  24. package/components/element/content/name.marko.js +41 -0
  25. package/components/element/content/phone.marko.js +40 -0
  26. package/components/element/content/photographers.marko.js +43 -0
  27. package/components/element/content/public-email.marko.js +47 -0
  28. package/components/element/content/published.marko.js +42 -0
  29. package/components/element/content/short-name.marko.js +41 -0
  30. package/components/element/content/sidebars.marko.js +63 -0
  31. package/components/element/content/source.marko.js +40 -0
  32. package/components/element/content/sponsors.marko.js +43 -0
  33. package/components/element/content/start-date.marko.js +42 -0
  34. package/components/element/content/teaser.marko.js +41 -0
  35. package/components/element/content/title.marko.js +40 -0
  36. package/components/element/content/tollfree.marko.js +40 -0
  37. package/components/element/content/website.marko.js +51 -0
  38. package/components/element/date.marko.js +27 -0
  39. package/components/element/image/caption.marko.js +41 -0
  40. package/components/element/image/credit.marko.js +41 -0
  41. package/components/element/image/display-name.marko.js +40 -0
  42. package/components/element/img.marko.js +43 -0
  43. package/components/element/index.marko.js +47 -0
  44. package/components/element/link.marko.js +54 -0
  45. package/components/element/obj-array.marko.js +56 -0
  46. package/components/element/obj-date.marko.js +54 -0
  47. package/components/element/obj-nodes.marko.js +62 -0
  48. package/components/element/obj-text.marko.js +53 -0
  49. package/components/element/obj.marko.js +61 -0
  50. package/components/element/picture.marko.js +85 -0
  51. package/components/element/text.marko.js +76 -0
  52. package/components/element/website-section/name.marko.js +46 -0
  53. package/components/load-more/index.marko.js +119 -0
  54. package/components/load-more/trigger.marko.js +40 -0
  55. package/components/node/body.marko.js +112 -0
  56. package/components/node/element.marko.js +39 -0
  57. package/components/node/footer.marko.js +63 -0
  58. package/components/node/header.marko.js +63 -0
  59. package/components/node/image-inner-wrapper.marko.js +116 -0
  60. package/components/node/image-wrapper.marko.js +98 -0
  61. package/components/node/image.marko.js +93 -0
  62. package/components/node/index.marko.js +100 -0
  63. package/components/node-list/body.marko.js +50 -0
  64. package/components/node-list/element.marko.js +35 -0
  65. package/components/node-list/footer.marko.js +50 -0
  66. package/components/node-list/header.marko.js +50 -0
  67. package/components/node-list/index.marko.js +93 -0
  68. package/components/node-list/node.marko.js +49 -0
  69. package/components/node-list/nodes.marko.js +126 -0
  70. package/components/page/container.marko.js +46 -0
  71. package/components/page/description.marko.js +26 -0
  72. package/components/page/image.marko.js +122 -0
  73. package/components/page/layouts/content.marko.js +63 -0
  74. package/components/page/layouts/default.marko.js +61 -0
  75. package/components/page/layouts/website-section.marko.js +78 -0
  76. package/components/page/metadata/components/common.marko.js +108 -0
  77. package/components/page/metadata/content.marko.js +201 -0
  78. package/components/page/metadata/default.marko.js +29 -0
  79. package/components/page/metadata/website-section.marko.js +79 -0
  80. package/components/page/rel-canonical.marko.js +42 -0
  81. package/components/page/title.marko.js +46 -0
  82. package/components/page/wrapper.marko.js +63 -0
  83. package/components/resolve/page.marko.js +49 -0
  84. package/components/rss/website-section.marko.js +46 -0
  85. package/middleware/page-node/index.js +15 -2
  86. package/middleware/with-content.js +2 -0
  87. package/package.json +4 -4
@@ -0,0 +1,201 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/page/metadata/content.marko",
6
+ marko_component = require("./content.marko"),
7
+ marko_renderer = require("marko/src/runtime/components/renderer"),
8
+ module_gql = require("graphql-tag"),
9
+ gql = module_gql.default || module_gql,
10
+ module_baseCmsObjectPath_module = require("@parameter1/base-cms-object-path"),
11
+ baseCmsObjectPath_module = module_baseCmsObjectPath_module.default || module_baseCmsObjectPath_module,
12
+ get = module_baseCmsObjectPath_module.get,
13
+ module_baseCmsUtils_module = require("@parameter1/base-cms-utils"),
14
+ baseCmsUtils_module = module_baseCmsUtils_module.default || module_baseCmsUtils_module,
15
+ warn = module_baseCmsUtils_module.warn,
16
+ isFunction = module_baseCmsUtils_module.isFunction,
17
+ module_utils_module = require("@parameter1/base-cms-web-common/src/utils"),
18
+ utils_module = module_utils_module.default || module_utils_module,
19
+ extractFragmentData = module_utils_module.extractFragmentData,
20
+ module_defaultBuildStructuredData = require("./google-structured-data/content"),
21
+ defaultBuildStructuredData = module_defaultBuildStructuredData.default || module_defaultBuildStructuredData,
22
+ common_template = require("./components/common.marko"),
23
+ marko_loadTag = require("marko/src/runtime/helpers/load-tag"),
24
+ common_tag = marko_loadTag(common_template),
25
+ marko_attr = require("marko/src/runtime/html/helpers/attr"),
26
+ helpers_escape_xml = require("marko/src/runtime/html/helpers/escape-xml"),
27
+ marko_escapeXml = helpers_escape_xml.x,
28
+ marko_escapeScript = require("marko/src/runtime/html/helpers/escape-script-placeholder"),
29
+ marko_web_query_template = require("@parameter1/base-cms-marko-core/components/queries/index.marko"),
30
+ marko_web_query_tag = marko_loadTag(marko_web_query_template);
31
+
32
+ function render(input, out, __component, component, state) {
33
+ var data = input;
34
+
35
+ const { id, structuredDataQueryFragment } = input;
36
+
37
+ const { spreadFragmentName, processedFragment } = extractFragmentData(structuredDataQueryFragment);
38
+
39
+ const queryFragment = gql`
40
+ fragment ContentPageMetadataFragment on Content {
41
+ id
42
+ type
43
+ siteContext {
44
+ url
45
+ path
46
+ canonicalUrl
47
+ noIndex
48
+ }
49
+ published
50
+ updated
51
+ metadata {
52
+ title
53
+ description
54
+ publishedDate
55
+ updatedDate
56
+ expiresDate
57
+ image {
58
+ id
59
+ src(input: { options: { auto: "format,compress", w: "1200", fit: "max", q: 70 } })
60
+ }
61
+ }
62
+ ... on ContentVideo {
63
+ embedSrc
64
+ }
65
+ ... on ContentPodcast {
66
+ fileSrc
67
+ fileName
68
+ }
69
+ ... on Authorable {
70
+ authors {
71
+ edges {
72
+ node {
73
+ id
74
+ name
75
+ }
76
+ }
77
+ }
78
+ }
79
+ ... on Addressable {
80
+ address1
81
+ address2
82
+ city
83
+ state
84
+ zip
85
+ country
86
+ }
87
+ ... on Contactable {
88
+ phone
89
+ tollfree
90
+ fax
91
+ website
92
+ title
93
+ mobile
94
+ publicEmail
95
+ }
96
+ ... on ContentCompany {
97
+ email
98
+ }
99
+ images(input:{ pagination: { limit: 0 }, sort: { order: values } }) {
100
+ edges {
101
+ node {
102
+ id
103
+ src(input: { options: { auto: "format,compress", w: "1200", fit: "max", q: 70 } })
104
+ }
105
+ }
106
+ }
107
+ ${spreadFragmentName}
108
+ }
109
+ ${processedFragment}
110
+ `;
111
+
112
+ const buildStructuredData = isFunction(input.buildStructuredData) ? input.buildStructuredData : defaultBuildStructuredData;
113
+
114
+ if (id) {
115
+ marko_web_query_tag({
116
+ collapsible: true,
117
+ name: "content",
118
+ params: {
119
+ id: id,
120
+ queryFragment: queryFragment
121
+ },
122
+ whenEmpty: {
123
+ renderBody: function(out) {
124
+ warn(`Unable to create content metadata: no content found for ${id}.`);
125
+ }
126
+ },
127
+ renderBody: function(out, { node }) {
128
+ const metadata = {
129
+ type: node.type,
130
+ title: get(node, "metadata.title"),
131
+ description: get(node, "metadata.description"),
132
+ canonicalPath: get(node, "siteContext.path"),
133
+ canonicalUrl: get(node, "siteContext.canonicalUrl"),
134
+ noIndex: get(node, "siteContext.noIndex"),
135
+ imageSrc: get(node, "metadata.image.src"),
136
+ };
137
+
138
+ const publishedDate = get(node, "metadata.publishedDate");
139
+
140
+ const updatedDate = get(node, "metadata.updatedDate");
141
+
142
+ const expiresDate = get(node, "metadata.expiresDate");
143
+
144
+ common_tag(metadata, out, __component, "1");
145
+
146
+ if (node.type === "video") {
147
+ out.w("<meta property=\"og:type\" content=\"video.other\">");
148
+
149
+ if (publishedDate) {
150
+ out.w("<meta property=\"video:release_date\"" +
151
+ marko_attr("content", publishedDate) +
152
+ ">");
153
+ }
154
+ } else {
155
+ out.w("<meta property=\"og:type\" content=\"article\">");
156
+
157
+ if (publishedDate) {
158
+ out.w("<meta property=\"article:published_time\"" +
159
+ marko_attr("content", publishedDate) +
160
+ ">");
161
+ }
162
+
163
+ if (updatedDate) {
164
+ out.w("<meta property=\"article:modified_time\"" +
165
+ marko_attr("content", updatedDate) +
166
+ ">");
167
+ }
168
+
169
+ if (expiresDate) {
170
+ out.w("<meta property=\"article:expiration_time\"" +
171
+ marko_attr("content", expiresDate) +
172
+ ">");
173
+ }
174
+ }
175
+
176
+ const structuredData = buildStructuredData(node);
177
+
178
+ if (structuredData) {
179
+ out.w("<script type=\"application/ld+json\">" +
180
+ marko_escapeScript(("\n " + structuredData) + "\n ") +
181
+ "</script>");
182
+ }
183
+ }
184
+ }, out, __component, "0");
185
+ } else {
186
+ warn('Unable to create content metadata: no content id was provided.');
187
+ }
188
+ }
189
+
190
+ marko_template._ = marko_renderer(render, {
191
+ ___type: marko_componentType
192
+ }, marko_component);
193
+
194
+ marko_template.meta = {
195
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/page/metadata/content.marko",
196
+ component: "./content.marko",
197
+ tags: [
198
+ "./components/common.marko",
199
+ "@parameter1/base-cms-marko-core/components/queries/index.marko"
200
+ ]
201
+ };
@@ -0,0 +1,29 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/page/metadata/default.marko",
6
+ marko_renderer = require("marko/src/runtime/components/renderer"),
7
+ common_template = require("./components/common.marko"),
8
+ marko_loadTag = require("marko/src/runtime/helpers/load-tag"),
9
+ common_tag = marko_loadTag(common_template);
10
+
11
+ function render(input, out, __component, component, state) {
12
+ var data = input;
13
+
14
+ common_tag(input, out, __component, "0");
15
+
16
+ out.w("<meta property=\"og:type\" content=\"website\">");
17
+ }
18
+
19
+ marko_template._ = marko_renderer(render, {
20
+ ___implicit: true,
21
+ ___type: marko_componentType
22
+ });
23
+
24
+ marko_template.meta = {
25
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/page/metadata/default.marko",
26
+ tags: [
27
+ "./components/common.marko"
28
+ ]
29
+ };
@@ -0,0 +1,79 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/page/metadata/website-section.marko",
6
+ marko_component = require("./website-section.marko"),
7
+ marko_renderer = require("marko/src/runtime/components/renderer"),
8
+ module_gql = require("graphql-tag"),
9
+ gql = module_gql.default || module_gql,
10
+ module_baseCmsObjectPath_module = require("@parameter1/base-cms-object-path"),
11
+ baseCmsObjectPath_module = module_baseCmsObjectPath_module.default || module_baseCmsObjectPath_module,
12
+ get = module_baseCmsObjectPath_module.get,
13
+ module_baseCmsUtils_module = require("@parameter1/base-cms-utils"),
14
+ baseCmsUtils_module = module_baseCmsUtils_module.default || module_baseCmsUtils_module,
15
+ warn = module_baseCmsUtils_module.warn,
16
+ common_template = require("./components/common.marko"),
17
+ marko_loadTag = require("marko/src/runtime/helpers/load-tag"),
18
+ common_tag = marko_loadTag(common_template),
19
+ marko_web_query_template = require("@parameter1/base-cms-marko-core/components/queries/index.marko"),
20
+ marko_web_query_tag = marko_loadTag(marko_web_query_template);
21
+
22
+ function render(input, out, __component, component, state) {
23
+ var data = input;
24
+
25
+ const { alias } = input;
26
+
27
+ const queryFragment = gql`
28
+ fragment WebsiteSectionPageMetadataFragment on WebsiteSection {
29
+ id
30
+ canonicalPath
31
+ metadata {
32
+ title
33
+ description
34
+ }
35
+ }
36
+ `;
37
+
38
+ if (alias) {
39
+ marko_web_query_tag({
40
+ collapsible: true,
41
+ name: "website-section",
42
+ params: {
43
+ alias: alias,
44
+ queryFragment: queryFragment
45
+ },
46
+ whenEmpty: {
47
+ renderBody: function(out) {
48
+ warn(`Unable to create website section metadata: no section found for ${alias}.`);
49
+ }
50
+ },
51
+ renderBody: function(out, { node }) {
52
+ const metadata = {
53
+ title: get(node, "metadata.title"),
54
+ description: get(node, "metadata.description"),
55
+ canonicalPath: node.canonicalPath,
56
+ };
57
+
58
+ common_tag(metadata, out, __component, "1");
59
+
60
+ out.w("<meta property=\"og:type\" content=\"website\">");
61
+ }
62
+ }, out, __component, "0");
63
+ } else {
64
+ warn('Unable to create website section metadata: no section alias was provided.');
65
+ }
66
+ }
67
+
68
+ marko_template._ = marko_renderer(render, {
69
+ ___type: marko_componentType
70
+ }, marko_component);
71
+
72
+ marko_template.meta = {
73
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/page/metadata/website-section.marko",
74
+ component: "./website-section.marko",
75
+ tags: [
76
+ "./components/common.marko",
77
+ "@parameter1/base-cms-marko-core/components/queries/index.marko"
78
+ ]
79
+ };
@@ -0,0 +1,42 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/page/rel-canonical.marko",
6
+ marko_renderer = require("marko/src/runtime/components/renderer"),
7
+ module_baseCmsUtils_module = require("@parameter1/base-cms-utils"),
8
+ baseCmsUtils_module = module_baseCmsUtils_module.default || module_baseCmsUtils_module,
9
+ cleanPath = module_baseCmsUtils_module.cleanPath,
10
+ marko_dynamicTag = require("marko/src/runtime/helpers/dynamic-tag"),
11
+ marko_attr = require("marko/src/runtime/html/helpers/attr");
12
+
13
+ function render(input, out, __component, component, state) {
14
+ var data = input;
15
+
16
+ const { req, requestOrigin } = out.global;
17
+
18
+ const path = input.path || req.path;
19
+
20
+ const href = input.url || `${out.global.requestOrigin}/${cleanPath(path)}`;
21
+
22
+ if (input.renderBody) {
23
+ marko_dynamicTag(out, input.renderBody, function() {
24
+ return {
25
+ href: href
26
+ };
27
+ }, null, null, null, __component, "0");
28
+ } else {
29
+ out.w("<link rel=\"canonical\"" +
30
+ marko_attr("href", href) +
31
+ ">");
32
+ }
33
+ }
34
+
35
+ marko_template._ = marko_renderer(render, {
36
+ ___implicit: true,
37
+ ___type: marko_componentType
38
+ });
39
+
40
+ marko_template.meta = {
41
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/page/rel-canonical.marko"
42
+ };
@@ -0,0 +1,46 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/page/title.marko",
6
+ marko_renderer = require("marko/src/runtime/components/renderer"),
7
+ module_baseCmsUtils_module = require("@parameter1/base-cms-utils"),
8
+ baseCmsUtils_module = module_baseCmsUtils_module.default || module_baseCmsUtils_module,
9
+ cleanPath = module_baseCmsUtils_module.cleanPath,
10
+ marko_dynamicTag = require("marko/src/runtime/helpers/dynamic-tag"),
11
+ helpers_escape_xml = require("marko/src/runtime/html/helpers/escape-xml"),
12
+ marko_escapeXml = helpers_escape_xml.x;
13
+
14
+ function render(input, out, __component, component, state) {
15
+ var data = input;
16
+
17
+ const { config } = out.global;
18
+
19
+ const parts = [
20
+ input.value,
21
+ config.website("name"),
22
+ ];
23
+
24
+ const concatWith = input.concatWith || "|";
25
+
26
+ const title = parts.filter(v => v && v !== 'Home').join(` ${concatWith} `);
27
+
28
+ out.w("<title>");
29
+
30
+ if (input.renderBody) {
31
+ marko_dynamicTag(out, input.renderBody, null, null, null, null, __component, "1");
32
+ } else {
33
+ out.w(marko_escapeXml(title));
34
+ }
35
+
36
+ out.w("</title>");
37
+ }
38
+
39
+ marko_template._ = marko_renderer(render, {
40
+ ___implicit: true,
41
+ ___type: marko_componentType
42
+ });
43
+
44
+ marko_template.meta = {
45
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/page/title.marko"
46
+ };
@@ -0,0 +1,63 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/page/wrapper.marko",
6
+ marko_renderer = require("marko/src/runtime/components/renderer"),
7
+ module_baseCmsObjectPath_module = require("@parameter1/base-cms-object-path"),
8
+ baseCmsObjectPath_module = module_baseCmsObjectPath_module.default || module_baseCmsObjectPath_module,
9
+ getAsArray = module_baseCmsObjectPath_module.getAsArray,
10
+ marko_forOf = require("marko/src/runtime/helpers/for-of"),
11
+ marko_assign = require("marko/src/runtime/helpers/assign"),
12
+ marko_web_element_template = require("../element"),
13
+ marko_loadTag = require("marko/src/runtime/helpers/load-tag"),
14
+ marko_web_element_tag = marko_loadTag(marko_web_element_template),
15
+ marko_dynamicTag = require("marko/src/runtime/helpers/dynamic-tag");
16
+
17
+ function render(input, out, __component, component, state) {
18
+ var data = input;
19
+
20
+ const blockName = input.blockName || "page-wrapper";
21
+
22
+ const tag = input.tag || "div";
23
+
24
+ const sections = getAsArray(input.sections);
25
+
26
+ const modifiers = [...getAsArray(input.modifiers)];
27
+
28
+ const classNames = [blockName, ...modifiers.map(mod => `${blockName}--${mod}`), input.class];
29
+
30
+ if (sections.length) {
31
+ marko_dynamicTag(out, tag, function() {
32
+ return marko_assign({}, input.attrs, {
33
+ class: classNames
34
+ });
35
+ }, function(out) {
36
+ var $for$0 = 0;
37
+
38
+ marko_forOf(sections, function(section) {
39
+ var $keyScope$0 = "[" + (($for$0++) + "]");
40
+
41
+ marko_web_element_tag(marko_assign({
42
+ name: "default",
43
+ tag: "div"
44
+ }, section, {
45
+ blockName: blockName,
46
+ name: "section"
47
+ }), out, __component, "1" + $keyScope$0);
48
+ });
49
+ }, null, null, __component, "0");
50
+ }
51
+ }
52
+
53
+ marko_template._ = marko_renderer(render, {
54
+ ___implicit: true,
55
+ ___type: marko_componentType
56
+ });
57
+
58
+ marko_template.meta = {
59
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/page/wrapper.marko",
60
+ tags: [
61
+ "../element"
62
+ ]
63
+ };
@@ -0,0 +1,49 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/resolve/page.marko",
6
+ marko_component = require("./page.marko"),
7
+ marko_renderer = require("marko/src/runtime/components/renderer"),
8
+ module_baseCmsUtils_module = require("@parameter1/base-cms-utils"),
9
+ baseCmsUtils_module = module_baseCmsUtils_module.default || module_baseCmsUtils_module,
10
+ isFunction = module_baseCmsUtils_module.isFunction,
11
+ module_baseCmsObjectPath_module = require("@parameter1/base-cms-object-path"),
12
+ baseCmsObjectPath_module = module_baseCmsObjectPath_module.default || module_baseCmsObjectPath_module,
13
+ getAsObject = module_baseCmsObjectPath_module.getAsObject,
14
+ marko_dynamicTag = require("marko/src/runtime/helpers/dynamic-tag"),
15
+ marko_web_resolve_template = require("@parameter1/base-cms-marko-core/components/resolve.marko"),
16
+ marko_loadTag = require("marko/src/runtime/helpers/load-tag"),
17
+ marko_web_resolve_tag = marko_loadTag(marko_web_resolve_template);
18
+
19
+ function render(input, out, __component, component, state) {
20
+ var data = input;
21
+
22
+ const node = getAsObject(input, "node");
23
+
24
+ if (isFunction(node.load)) {
25
+ marko_web_resolve_tag({
26
+ promise: node.load(),
27
+ renderBody: function(out, { resolved }) {
28
+ marko_dynamicTag(out, input.renderBody, function() {
29
+ return {
30
+ resolved: resolved,
31
+ data: resolved.data
32
+ };
33
+ }, null, null, null, __component, "1");
34
+ }
35
+ }, out, __component, "0");
36
+ }
37
+ }
38
+
39
+ marko_template._ = marko_renderer(render, {
40
+ ___type: marko_componentType
41
+ }, marko_component);
42
+
43
+ marko_template.meta = {
44
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/resolve/page.marko",
45
+ component: "./page.marko",
46
+ tags: [
47
+ "@parameter1/base-cms-marko-core/components/resolve.marko"
48
+ ]
49
+ };
@@ -0,0 +1,46 @@
1
+ // Compiled using marko@4.20.2 - DO NOT EDIT
2
+ "use strict";
3
+
4
+ var marko_template = module.exports = require("marko/src/html").t(__filename),
5
+ marko_componentType = "/@parameter1/base-cms-marko-web$3.11.0/components/rss/website-section.marko",
6
+ marko_renderer = require("marko/src/runtime/components/renderer"),
7
+ module_url_module = require("url"),
8
+ url_module = module_url_module.default || module_url_module,
9
+ URLSearchParams = module_url_module.URLSearchParams,
10
+ marko_attr = require("marko/src/runtime/html/helpers/attr");
11
+
12
+ function render(input, out, __component, component, state) {
13
+ var data = input;
14
+
15
+ const { config } = out.global;
16
+
17
+ const { queryName, queryParams, channelParams } = input;
18
+
19
+ const defaultTitle = input.name ? `RSS Feed for ${input.name}` : "RSS Feed";
20
+
21
+ const title = input.title || defaultTitle;
22
+
23
+ const query = new URLSearchParams();
24
+
25
+ query.append("input", JSON.stringify(queryParams));
26
+
27
+ if (channelParams) query.append("channel", JSON.stringify(channelParams));
28
+
29
+ const href = `${config.rssMountPoint()}/${queryName}.xml?${query}`;
30
+
31
+ if (queryName) {
32
+ out.w("<link rel=\"alternate\" type=\"application/rss+xml\"" +
33
+ marko_attr("title", title) +
34
+ marko_attr("href", href) +
35
+ ">");
36
+ }
37
+ }
38
+
39
+ marko_template._ = marko_renderer(render, {
40
+ ___implicit: true,
41
+ ___type: marko_componentType
42
+ });
43
+
44
+ marko_template.meta = {
45
+ id: "/@parameter1/base-cms-marko-web$3.11.0/components/rss/website-section.marko"
46
+ };
@@ -1,3 +1,4 @@
1
+ const { isFunction: isFn } = require('@parameter1/base-cms-utils');
1
2
  const { getAsObject } = require('@parameter1/base-cms-object-path');
2
3
  const ResolvedNode = require('./resolved');
3
4
 
@@ -9,12 +10,14 @@ class PageNode {
9
10
  queryFragment,
10
11
  variables,
11
12
  resultField,
13
+ sideloadDataFn,
12
14
  }) {
13
15
  this.apolloClient = apolloClient;
14
16
  this.queryFactory = queryFactory;
15
17
  this.queryFragment = queryFragment;
16
18
  this.variables = variables;
17
19
  this.resultField = resultField;
20
+ this.sideloadDataFn = sideloadDataFn;
18
21
  }
19
22
 
20
23
  async load() {
@@ -22,8 +25,18 @@ class PageNode {
22
25
  const { queryFragment, variables, resultField } = this;
23
26
  const path = `data.${resultField}`;
24
27
  const query = this.queryFactory({ queryFragment, queryName: 'PageNode' });
25
- this.promise = this.apolloClient.query({ query, variables })
26
- .then(r => createNode(getAsObject(r, path)));
28
+ const [r, sideloadedData] = await Promise.all([
29
+ this.apolloClient.query({ query, variables }),
30
+ (async () => {
31
+ if (isFn(this.sideloadDataFn)) {
32
+ this.sideloadDataFn.bind(this);
33
+ return this.sideloadDataFn();
34
+ }
35
+ return undefined;
36
+ })(),
37
+ ]);
38
+ this.promise = createNode(getAsObject(r, path));
39
+ this.sideloadedData = sideloadedData;
27
40
  }
28
41
  return this.promise;
29
42
  }
@@ -15,6 +15,7 @@ module.exports = ({
15
15
  redirectToFn,
16
16
  pathFn,
17
17
  formatResponse,
18
+ sideloadDataFn,
18
19
  } = {}) => asyncRoute(async (req, res) => {
19
20
  const id = isFn(idResolver) ? await idResolver(req, res) : req.params.id;
20
21
  const { apollo, query } = req;
@@ -36,6 +37,7 @@ module.exports = ({
36
37
  queryFragment,
37
38
  variables: { input: { id: Number(id), ...additionalInput } },
38
39
  resultField: 'content',
40
+ sideloadDataFn,
39
41
  });
40
42
  if (isFn(formatResponse)) await formatResponse({ res, content, pageNode });
41
43
  return res.marko(template, { ...content, pageNode });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parameter1/base-cms-marko-web",
3
- "version": "3.8.0",
3
+ "version": "3.13.0",
4
4
  "description": "Core Marko+Express components for BaseCMS websites",
5
5
  "author": "Jacob Bare <jacob@parameter1.com>",
6
6
  "main": "index.js",
@@ -16,10 +16,10 @@
16
16
  "dependencies": {
17
17
  "@godaddy/terminus": "^4.9.0",
18
18
  "@parameter1/base-cms-apollo-ssr": "^3.0.0",
19
- "@parameter1/base-cms-embedded-media": "^3.8.0",
19
+ "@parameter1/base-cms-embedded-media": "^3.13.0",
20
20
  "@parameter1/base-cms-express-apollo": "^3.0.0",
21
21
  "@parameter1/base-cms-graphql-fragment-types": "^3.0.0",
22
- "@parameter1/base-cms-image": "^3.8.0",
22
+ "@parameter1/base-cms-image": "^3.13.0",
23
23
  "@parameter1/base-cms-inflector": "^3.0.0",
24
24
  "@parameter1/base-cms-marko-node-require": "^3.0.0",
25
25
  "@parameter1/base-cms-object-path": "^3.0.0",
@@ -46,5 +46,5 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "de7ed3f6665b430872553b8f5b51e4cf51db4066"
49
+ "gitHead": "2b9579aef02949a06b27119afdd4046ee891eb24"
50
50
  }