@enonic/nextjs-adapter 3.3.0-B1 → 3.3.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 (296) hide show
  1. package/dist/baseMappings.d.ts +1 -0
  2. package/{src/baseMappings.ts → dist/baseMappings.js} +4 -14
  3. package/dist/baseMappings.js.map +1 -0
  4. package/dist/client/getClientHydratedHtml.d.ts +1 -0
  5. package/{src/client/getClientHydratedHtml.tsx → dist/client/getClientHydratedHtml.jsx} +3 -6
  6. package/dist/client/getClientHydratedHtml.jsx.map +1 -0
  7. package/dist/client.d.ts +1 -0
  8. package/dist/client.js +3 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/common/ComponentRegistry.d.ts +34 -0
  11. package/dist/common/ComponentRegistry.js +121 -0
  12. package/dist/common/ComponentRegistry.js.map +1 -0
  13. package/dist/common/UrlProcessor.d.ts +25 -0
  14. package/{src/common/UrlProcessor.ts → dist/common/UrlProcessor.js} +49 -70
  15. package/dist/common/UrlProcessor.js.map +1 -0
  16. package/dist/common/constants.d.ts +51 -0
  17. package/{src/common/constants.ts → dist/common/constants.js} +38 -44
  18. package/dist/common/constants.js.map +1 -0
  19. package/dist/common/env.d.ts +12 -0
  20. package/{src/common/env.ts → dist/common/env.js} +3 -14
  21. package/dist/common/env.js.map +1 -0
  22. package/dist/guillotine/applyProcessors.d.ts +2 -0
  23. package/dist/guillotine/applyProcessors.js +33 -0
  24. package/dist/guillotine/applyProcessors.js.map +1 -0
  25. package/dist/guillotine/buildComponentTree.d.ts +2 -0
  26. package/{src/guillotine/buildComponentTree.ts → dist/guillotine/buildComponentTree.js} +13 -25
  27. package/dist/guillotine/buildComponentTree.js.map +1 -0
  28. package/dist/guillotine/buildErrorResponse.d.ts +3 -0
  29. package/{src/guillotine/buildErrorResponse.ts → dist/guillotine/buildErrorResponse.js} +2 -10
  30. package/dist/guillotine/buildErrorResponse.js.map +1 -0
  31. package/dist/guillotine/buildPage.d.ts +2 -0
  32. package/dist/guillotine/buildPage.js +10 -0
  33. package/dist/guillotine/buildPage.js.map +1 -0
  34. package/dist/guillotine/collectComponentDescriptors.d.ts +6 -0
  35. package/{src/guillotine/collectComponentDescriptors.ts → dist/guillotine/collectComponentDescriptors.js} +13 -26
  36. package/dist/guillotine/collectComponentDescriptors.js.map +1 -0
  37. package/dist/guillotine/combineMultipleQueries.d.ts +2 -0
  38. package/{src/guillotine/combineMultipleQueries.ts → dist/guillotine/combineMultipleQueries.js} +9 -23
  39. package/dist/guillotine/combineMultipleQueries.js.map +1 -0
  40. package/dist/guillotine/createMetaData.d.ts +18 -0
  41. package/dist/guillotine/createMetaData.js +45 -0
  42. package/dist/guillotine/createMetaData.js.map +1 -0
  43. package/dist/guillotine/fetchContent.d.ts +9 -0
  44. package/dist/guillotine/fetchContent.js +222 -0
  45. package/dist/guillotine/fetchContent.js.map +1 -0
  46. package/dist/guillotine/fetchContentData.d.ts +2 -0
  47. package/dist/guillotine/fetchContentData.js +30 -0
  48. package/dist/guillotine/fetchContentData.js.map +1 -0
  49. package/dist/guillotine/fetchContentPathsForAllLocales.d.ts +2 -0
  50. package/dist/guillotine/fetchContentPathsForAllLocales.js +21 -0
  51. package/dist/guillotine/fetchContentPathsForAllLocales.js.map +1 -0
  52. package/dist/guillotine/fetchContentPathsForLocale.d.ts +2 -0
  53. package/dist/guillotine/fetchContentPathsForLocale.js +42 -0
  54. package/dist/guillotine/fetchContentPathsForLocale.js.map +1 -0
  55. package/dist/guillotine/fetchFromApi.d.ts +3 -0
  56. package/dist/guillotine/fetchFromApi.js +76 -0
  57. package/dist/guillotine/fetchFromApi.js.map +1 -0
  58. package/dist/guillotine/fetchGuillotine.d.ts +3 -0
  59. package/dist/guillotine/fetchGuillotine.js +75 -0
  60. package/dist/guillotine/fetchGuillotine.js.map +1 -0
  61. package/dist/guillotine/fetchMetaData.d.ts +2 -0
  62. package/dist/guillotine/fetchMetaData.js +33 -0
  63. package/dist/guillotine/fetchMetaData.js.map +1 -0
  64. package/dist/guillotine/getCleanContentPathArrayOrThrow400.d.ts +2 -0
  65. package/{src/guillotine/getCleanContentPathArrayOrThrow400.ts → dist/guillotine/getCleanContentPathArrayOrThrow400.js} +7 -9
  66. package/dist/guillotine/getCleanContentPathArrayOrThrow400.js.map +1 -0
  67. package/dist/guillotine/getComponentConfig.d.ts +2 -0
  68. package/{src/guillotine/getComponentConfig.ts → dist/guillotine/getComponentConfig.js} +3 -5
  69. package/dist/guillotine/getComponentConfig.js.map +1 -0
  70. package/dist/guillotine/getContentAndComponentPaths.d.ts +1 -0
  71. package/{src/guillotine/getContentAndComponentPaths.ts → dist/guillotine/getContentAndComponentPaths.js} +6 -5
  72. package/dist/guillotine/getContentAndComponentPaths.js.map +1 -0
  73. package/dist/guillotine/getMetaData.d.ts +2 -0
  74. package/{src/guillotine/getMetaData.ts → dist/guillotine/getMetaData.js} +11 -18
  75. package/dist/guillotine/getMetaData.js.map +1 -0
  76. package/dist/guillotine/getParentRegion.d.ts +2 -0
  77. package/{src/guillotine/getParentRegion.ts → dist/guillotine/getParentRegion.js} +9 -23
  78. package/dist/guillotine/getParentRegion.js.map +1 -0
  79. package/dist/guillotine/getQueryAndVariables.d.ts +2 -0
  80. package/{src/guillotine/getQueryAndVariables.ts → dist/guillotine/getQueryAndVariables.js} +7 -23
  81. package/dist/guillotine/getQueryAndVariables.js.map +1 -0
  82. package/dist/guillotine/metadata/configQuery.d.ts +2 -0
  83. package/dist/guillotine/metadata/configQuery.js +36 -0
  84. package/dist/guillotine/metadata/configQuery.js.map +1 -0
  85. package/dist/guillotine/metadata/richTextQuery.d.ts +1 -0
  86. package/{src/guillotine/metadata/richTextQuery.ts → dist/guillotine/metadata/richTextQuery.js} +6 -8
  87. package/dist/guillotine/metadata/richTextQuery.js.map +1 -0
  88. package/dist/guillotine/parseComponentPath.d.ts +2 -0
  89. package/{src/guillotine/parseComponentPath.ts → dist/guillotine/parseComponentPath.js} +4 -8
  90. package/dist/guillotine/parseComponentPath.js.map +1 -0
  91. package/dist/guillotine/prefixFragmentCmpPath.d.ts +1 -0
  92. package/{src/guillotine/prefixFragmentCmpPath.ts → dist/guillotine/prefixFragmentCmpPath.js} +5 -5
  93. package/dist/guillotine/prefixFragmentCmpPath.js.map +1 -0
  94. package/dist/guillotine/processComponentConfig.d.ts +2 -0
  95. package/{src/guillotine/processComponentConfig.ts → dist/guillotine/processComponentConfig.js} +4 -12
  96. package/dist/guillotine/processComponentConfig.js.map +1 -0
  97. package/dist/guillotine/restrictComponentsToPath.d.ts +2 -0
  98. package/{src/guillotine/restrictComponentsToPath.ts → dist/guillotine/restrictComponentsToPath.js} +9 -19
  99. package/dist/guillotine/restrictComponentsToPath.js.map +1 -0
  100. package/dist/guillotine/validateData.d.ts +2 -0
  101. package/dist/guillotine/validateData.js +7 -0
  102. package/dist/guillotine/validateData.js.map +1 -0
  103. package/dist/guillotine/validateNotFound.d.ts +2 -0
  104. package/{src/guillotine/validateNotFound.ts → dist/guillotine/validateNotFound.js} +5 -9
  105. package/dist/guillotine/validateNotFound.js.map +1 -0
  106. package/dist/guillotine/validateShortcut.d.ts +2 -0
  107. package/{src/guillotine/validateShortcut.ts → dist/guillotine/validateShortcut.js} +12 -20
  108. package/dist/guillotine/validateShortcut.js.map +1 -0
  109. package/dist/i18n/LocaleContext.d.ts +7 -0
  110. package/dist/i18n/LocaleContext.jsx +50 -0
  111. package/dist/i18n/LocaleContext.jsx.map +1 -0
  112. package/dist/i18n/i18n.d.ts +12 -0
  113. package/dist/i18n/i18n.js +59 -0
  114. package/dist/i18n/i18n.js.map +1 -0
  115. package/dist/index.d.ts +14 -0
  116. package/dist/index.js +14 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/query/Shortcut.d.ts +1 -0
  119. package/{src/query/Shortcut.ts → dist/query/Shortcut.js} +1 -0
  120. package/dist/query/Shortcut.js.map +1 -0
  121. package/dist/server/getServerRenderedHtml.d.ts +1 -0
  122. package/dist/server/getServerRenderedHtml.js +4 -0
  123. package/dist/server/getServerRenderedHtml.js.map +1 -0
  124. package/dist/server.d.ts +5 -0
  125. package/dist/server.js +6 -0
  126. package/dist/server.js.map +1 -0
  127. package/{src/types/component.ts → dist/types/component.d.ts} +23 -62
  128. package/dist/types/component.js +2 -0
  129. package/dist/types/component.js.map +1 -0
  130. package/dist/types/componentProps.d.ts +107 -0
  131. package/dist/types/componentProps.js +2 -0
  132. package/dist/types/componentProps.js.map +1 -0
  133. package/dist/types/guillotine.d.ts +344 -0
  134. package/dist/types/guillotine.js +2 -0
  135. package/dist/types/guillotine.js.map +1 -0
  136. package/dist/types/i18n.d.ts +7 -0
  137. package/dist/types/i18n.js +2 -0
  138. package/dist/types/i18n.js.map +1 -0
  139. package/{src/types/index.ts → dist/types/index.d.ts} +19 -34
  140. package/dist/types/index.js +3 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/next.d.ts +6 -0
  143. package/dist/types/next.js +2 -0
  144. package/dist/types/next.js.map +1 -0
  145. package/dist/types/util.d.ts +3 -0
  146. package/dist/types/util.js +3 -0
  147. package/dist/types/util.js.map +1 -0
  148. package/dist/utils/addLineNumbers.d.ts +1 -0
  149. package/dist/utils/addLineNumbers.js +4 -0
  150. package/dist/utils/addLineNumbers.js.map +1 -0
  151. package/dist/utils/buildGuillotineRequestHeaders.d.ts +7 -0
  152. package/dist/utils/buildGuillotineRequestHeaders.js +16 -0
  153. package/dist/utils/buildGuillotineRequestHeaders.js.map +1 -0
  154. package/dist/utils/commonChars.d.ts +1 -0
  155. package/{src/utils/commonChars.ts → dist/utils/commonChars.js} +5 -4
  156. package/dist/utils/commonChars.js.map +1 -0
  157. package/dist/utils/enonicLog.d.ts +5 -0
  158. package/dist/utils/enonicLog.js +23 -0
  159. package/dist/utils/enonicLog.js.map +1 -0
  160. package/dist/utils/fixDoubleSlashes.d.ts +1 -0
  161. package/dist/utils/fixDoubleSlashes.js +4 -0
  162. package/dist/utils/fixDoubleSlashes.js.map +1 -0
  163. package/dist/utils/getAllLocales.d.ts +1 -0
  164. package/dist/utils/getAllLocales.js +5 -0
  165. package/dist/utils/getAllLocales.js.map +1 -0
  166. package/dist/utils/getContentApiUrl.d.ts +2 -0
  167. package/dist/utils/getContentApiUrl.js +15 -0
  168. package/dist/utils/getContentApiUrl.js.map +1 -0
  169. package/dist/utils/getLocaleMapping.d.ts +2 -0
  170. package/dist/utils/getLocaleMapping.js +19 -0
  171. package/dist/utils/getLocaleMapping.js.map +1 -0
  172. package/dist/utils/getLocaleMappingByLocale.d.ts +2 -0
  173. package/dist/utils/getLocaleMappingByLocale.js +13 -0
  174. package/dist/utils/getLocaleMappingByLocale.js.map +1 -0
  175. package/dist/utils/getLocaleMappingByProjectId.d.ts +2 -0
  176. package/dist/utils/getLocaleMappingByProjectId.js +16 -0
  177. package/dist/utils/getLocaleMappingByProjectId.js.map +1 -0
  178. package/dist/utils/getLocaleMappings.d.ts +2 -0
  179. package/{src/utils/getLocaleMappings.ts → dist/utils/getLocaleMappings.js} +8 -14
  180. package/dist/utils/getLocaleMappings.js.map +1 -0
  181. package/dist/utils/getRenderMode.d.ts +3 -0
  182. package/dist/utils/getRenderMode.js +8 -0
  183. package/dist/utils/getRenderMode.js.map +1 -0
  184. package/dist/utils/getRequestLocaleInfo.d.ts +6 -0
  185. package/{src/utils/getRequestLocaleInfo.ts → dist/utils/getRequestLocaleInfo.js} +12 -13
  186. package/dist/utils/getRequestLocaleInfo.js.map +1 -0
  187. package/dist/utils/getXpBaseUrl.d.ts +2 -0
  188. package/dist/utils/getXpBaseUrl.js +8 -0
  189. package/dist/utils/getXpBaseUrl.js.map +1 -0
  190. package/dist/utils/indent.d.ts +1 -0
  191. package/dist/utils/indent.js +5 -0
  192. package/dist/utils/indent.js.map +1 -0
  193. package/dist/utils/sanitizeGraphqlName.d.ts +1 -0
  194. package/{src/utils/sanitizeGraphqlName.ts → dist/utils/sanitizeGraphqlName.js} +3 -2
  195. package/dist/utils/sanitizeGraphqlName.js.map +1 -0
  196. package/dist/views/BaseComponent.d.ts +20 -0
  197. package/{src/views/BaseComponent.tsx → dist/views/BaseComponent.jsx} +49 -76
  198. package/dist/views/BaseComponent.jsx.map +1 -0
  199. package/dist/views/BaseContent.d.ts +3 -0
  200. package/dist/views/BaseContent.jsx +38 -0
  201. package/dist/views/BaseContent.jsx.map +1 -0
  202. package/dist/views/BaseLayout.d.ts +3 -0
  203. package/dist/views/BaseLayout.jsx +24 -0
  204. package/dist/views/BaseLayout.jsx.map +1 -0
  205. package/dist/views/BaseMacro.d.ts +6 -0
  206. package/{src/views/BaseMacro.tsx → dist/views/BaseMacro.jsx} +37 -42
  207. package/dist/views/BaseMacro.jsx.map +1 -0
  208. package/dist/views/BasePage.d.ts +3 -0
  209. package/dist/views/BasePage.jsx +34 -0
  210. package/dist/views/BasePage.jsx.map +1 -0
  211. package/dist/views/BasePart.d.ts +3 -0
  212. package/dist/views/BasePart.jsx +24 -0
  213. package/dist/views/BasePart.jsx.map +1 -0
  214. package/dist/views/Empty.d.ts +2 -0
  215. package/{src/views/Empty.tsx → dist/views/Empty.jsx} +1 -2
  216. package/dist/views/Empty.jsx.map +1 -0
  217. package/dist/views/Fragment.d.ts +3 -0
  218. package/dist/views/Fragment.jsx +30 -0
  219. package/dist/views/Fragment.jsx.map +1 -0
  220. package/dist/views/MainView.d.ts +3 -0
  221. package/dist/views/MainView.jsx +14 -0
  222. package/dist/views/MainView.jsx.map +1 -0
  223. package/dist/views/PropsView.d.ts +2 -0
  224. package/dist/views/PropsView.jsx +21 -0
  225. package/dist/views/PropsView.jsx.map +1 -0
  226. package/dist/views/Region.d.ts +6 -0
  227. package/{src/views/Region.tsx → dist/views/Region.jsx} +17 -41
  228. package/dist/views/Region.jsx.map +1 -0
  229. package/dist/views/RichTextView.d.ts +3 -0
  230. package/dist/views/RichTextView.jsx +65 -0
  231. package/dist/views/RichTextView.jsx.map +1 -0
  232. package/dist/views/SingleComponent.d.ts +4 -0
  233. package/dist/views/SingleComponent.jsx +10 -0
  234. package/dist/views/SingleComponent.jsx.map +1 -0
  235. package/dist/views/StaticContent.d.ts +10 -0
  236. package/dist/views/StaticContent.jsx +37 -0
  237. package/dist/views/StaticContent.jsx.map +1 -0
  238. package/dist/views/Text.d.ts +8 -0
  239. package/dist/views/Text.jsx +4 -0
  240. package/dist/views/Text.jsx.map +1 -0
  241. package/dist/views/macros/DefaultMacro.d.ts +3 -0
  242. package/dist/views/macros/DefaultMacro.jsx +4 -0
  243. package/dist/views/macros/DefaultMacro.jsx.map +1 -0
  244. package/dist/views/macros/DisableMacro.d.ts +3 -0
  245. package/dist/views/macros/DisableMacro.jsx +3 -0
  246. package/dist/views/macros/DisableMacro.jsx.map +1 -0
  247. package/package.json +20 -32
  248. package/src/client.ts +0 -2
  249. package/src/common/ComponentRegistry.ts +0 -159
  250. package/src/guillotine/applyProcessors.ts +0 -34
  251. package/src/guillotine/buildPage.ts +0 -15
  252. package/src/guillotine/createMetaData.ts +0 -72
  253. package/src/guillotine/fetchContent.ts +0 -240
  254. package/src/guillotine/fetchContentData.ts +0 -31
  255. package/src/guillotine/fetchContentPathsForAllLocales.ts +0 -21
  256. package/src/guillotine/fetchContentPathsForLocale.ts +0 -43
  257. package/src/guillotine/fetchFromApi.ts +0 -76
  258. package/src/guillotine/fetchGuillotine.ts +0 -76
  259. package/src/guillotine/fetchMetaData.ts +0 -31
  260. package/src/guillotine/metadata/configQuery.ts +0 -46
  261. package/src/guillotine/validateData.ts +0 -11
  262. package/src/i18n/LocaleContext.tsx +0 -59
  263. package/src/i18n/i18n.ts +0 -57
  264. package/src/index.ts +0 -42
  265. package/src/server/getServerRenderedHtml.ts +0 -3
  266. package/src/server.ts +0 -5
  267. package/src/types/componentProps.ts +0 -143
  268. package/src/types/guillotine.ts +0 -428
  269. package/src/types/i18n.ts +0 -8
  270. package/src/types/next.ts +0 -7
  271. package/src/types/util.ts +0 -5
  272. package/src/utils/addLineNumbers.ts +0 -3
  273. package/src/utils/buildGuillotineRequestHeaders.ts +0 -29
  274. package/src/utils/enonicLog.ts +0 -28
  275. package/src/utils/fixDoubleSlashes.ts +0 -3
  276. package/src/utils/getAllLocales.ts +0 -6
  277. package/src/utils/getContentApiUrl.ts +0 -20
  278. package/src/utils/getLocaleMapping.ts +0 -24
  279. package/src/utils/getLocaleMappingByLocale.ts +0 -19
  280. package/src/utils/getLocaleMappingByProjectId.ts +0 -21
  281. package/src/utils/getRenderMode.ts +0 -11
  282. package/src/utils/getXpBaseUrl.ts +0 -12
  283. package/src/utils/indent.ts +0 -4
  284. package/src/views/BaseContent.tsx +0 -47
  285. package/src/views/BaseLayout.tsx +0 -33
  286. package/src/views/BasePage.tsx +0 -42
  287. package/src/views/BasePart.tsx +0 -34
  288. package/src/views/Fragment.tsx +0 -41
  289. package/src/views/MainView.tsx +0 -22
  290. package/src/views/PropsView.tsx +0 -38
  291. package/src/views/RichTextView.tsx +0 -106
  292. package/src/views/SingleComponent.tsx +0 -19
  293. package/src/views/StaticContent.tsx +0 -39
  294. package/src/views/Text.tsx +0 -19
  295. package/src/views/macros/DefaultMacro.tsx +0 -9
  296. package/src/views/macros/DisableMacro.tsx +0 -8
@@ -1,33 +0,0 @@
1
- /// <reference types="react" />
2
- import type {BaseLayoutProps} from '../types';
3
-
4
-
5
- import {XP_COMPONENT_TYPE} from '../common/constants';
6
- import {ComponentRegistry} from '../common/ComponentRegistry';
7
- import {MissingComponent, shouldShowMissingView} from './BaseComponent';
8
-
9
-
10
- const BaseLayout = (props: BaseLayoutProps) => {
11
-
12
- const {component, common, regions, meta, path} = props;
13
- let layoutSelection;
14
- if (component) {
15
- layoutSelection = ComponentRegistry.getLayout(component.descriptor);
16
- }
17
- const SelectedLayoutView = layoutSelection?.view;
18
- if (SelectedLayoutView) {
19
- return <SelectedLayoutView layout={{descriptor: component?.descriptor, regions: regions || {}, config: component?.config}}
20
- path={path}
21
- common={common}
22
- meta={meta}/>;
23
- } else if (component?.descriptor) {
24
- // empty descriptor usually means uninitialized layout
25
- console.warn(`BaseLayout: can not render layout '${component?.descriptor}': no next view or catch-all defined`);
26
- if (shouldShowMissingView(meta)) {
27
- return <MissingComponent type={XP_COMPONENT_TYPE.LAYOUT} descriptor={component.descriptor}/>;
28
- }
29
- }
30
- return null;
31
- };
32
-
33
- export default BaseLayout;
@@ -1,42 +0,0 @@
1
- /// <reference types="react" />
2
- import type {BasePageProps} from '../types';
3
-
4
-
5
- import {ComponentRegistry} from '../common/ComponentRegistry';
6
- import {XP_COMPONENT_TYPE} from '../common/constants';
7
- import {ErrorComponent, MissingComponent, shouldShowErrorView, shouldShowMissingView} from './BaseComponent';
8
-
9
-
10
- const BasePage = (props: BasePageProps) => {
11
- const {component, data, common, error, meta, path} = props;
12
- const desc = component?.descriptor;
13
- if (error) {
14
- console.warn(`BasePage: '${desc}' error: ${error}`);
15
- if (shouldShowErrorView(meta)) {
16
- return <ErrorComponent reason={error} descriptor={desc} type={XP_COMPONENT_TYPE.PAGE}/>;
17
- } else {
18
- return null;
19
- }
20
- }
21
- let pageDef;
22
- if (desc) {
23
- pageDef = ComponentRegistry.getPage(desc);
24
- }
25
- const PageView = pageDef?.view;
26
- if (PageView) {
27
- return <PageView page={component}
28
- path={path}
29
- data={data}
30
- common={common}
31
- meta={meta}/>;
32
- } else if (component?.descriptor) {
33
- // empty descriptor usually means uninitialized page
34
- console.warn(`BasePage: can not render page '${desc}': no next view or catch-all defined`);
35
- if (shouldShowMissingView(meta)) {
36
- return <MissingComponent type={XP_COMPONENT_TYPE.PAGE} descriptor={component.descriptor}/>;
37
- }
38
- }
39
- return null;
40
- };
41
-
42
- export default BasePage;
@@ -1,34 +0,0 @@
1
- /// <reference types="react" />
2
- import type {BasePartProps} from '../types';
3
-
4
-
5
- import {ComponentRegistry} from '../common/ComponentRegistry';
6
- import {XP_COMPONENT_TYPE} from '../common/constants';
7
- import {MissingComponent, shouldShowMissingView} from './BaseComponent';
8
-
9
-
10
- const BasePart = (props: BasePartProps) => {
11
- const {component, data, common, meta, path} = props;
12
-
13
- let partSelection;
14
- if (component) {
15
- partSelection = ComponentRegistry.getPart(component.descriptor);
16
- }
17
- const SelectedPartView = partSelection?.view;
18
- if (SelectedPartView) {
19
- return <SelectedPartView part={component}
20
- path={path}
21
- data={data}
22
- common={common}
23
- meta={meta}/>;
24
- } else if (component?.descriptor) {
25
- // empty descriptor usually means uninitialized part
26
- console.warn(`BasePart: can not render part '${component.descriptor}': no next view or catch-all defined`);
27
- if (shouldShowMissingView(meta)) {
28
- return <MissingComponent type={XP_COMPONENT_TYPE.PART} descriptor={component.descriptor}/>;
29
- }
30
- }
31
- return null;
32
- };
33
-
34
- export default BasePart;
@@ -1,41 +0,0 @@
1
- /// <reference types="react" />
2
- import type {FragmentProps, PageComponent} from '../types';
3
-
4
-
5
- import {FRAGMENT_DEFAULT_REGION_NAME, XP_COMPONENT_TYPE} from '../common/constants';
6
- import BaseComponent, {MissingComponent, shouldShowMissingView} from './BaseComponent';
7
-
8
-
9
- const FragmentView = (props: FragmentProps) => {
10
- const {component, page} = props;
11
- const comps: PageComponent[] = [];
12
- if (page) {
13
- // rendering whole page
14
- const regions = page.regions || {};
15
- const regionComps = regions[FRAGMENT_DEFAULT_REGION_NAME]?.components;
16
- if (regionComps) {
17
- comps.push(...regionComps);
18
- }
19
- } else if (component?.fragment) {
20
- // rendering a part of a page
21
- comps.push(...component.fragment.components);
22
- }
23
-
24
- if (!comps.length && shouldShowMissingView(props.meta)) {
25
- return <MissingComponent type={XP_COMPONENT_TYPE.FRAGMENT} descriptor={page?.descriptor || component?.id}/>;
26
- } else {
27
- const {common, meta} = props;
28
-
29
- return (
30
- <>
31
- {
32
- comps.map((comp: PageComponent, i: number) => (
33
- <BaseComponent key={i} component={comp} common={common} meta={meta}/>
34
- ))
35
- }
36
- </>
37
- );
38
- }
39
- };
40
-
41
- export default FragmentView;
@@ -1,22 +0,0 @@
1
- /// <reference types="react" />
2
- import type {FetchContentResult} from '../types';
3
-
4
-
5
- import {XP_REQUEST_TYPE} from '../common/constants';
6
- import SingleComponent from './SingleComponent';
7
- import BaseContent from './BaseContent';
8
-
9
-
10
- const _MainView = (props: FetchContentResult) => {
11
- const {meta} = props;
12
-
13
- // Single-component render:
14
- if (meta?.requestType === XP_REQUEST_TYPE.COMPONENT) {
15
- return <SingleComponent {...props} />;
16
- }
17
-
18
- // meta.requestType="type", and hence content-type based, is standard view for now.
19
- return <BaseContent {...props} />;
20
- };
21
-
22
- export default _MainView;
@@ -1,38 +0,0 @@
1
- /// <reference types="react" />
2
-
3
- interface Props {
4
- label: string
5
- data: any
6
- }
7
-
8
- const PropsView = (props: any) => {
9
- return (
10
- <div className='debug'
11
- style={{margin: '10px', padding: '10px', border: '2px solid lightgrey'}}>
12
- <DataDump label='Page' data={props.page}/>
13
- <DataDump label='Part' data={props.part}/>
14
- <DataDump label='Layout' data={props.layout}/>
15
- <DataDump label='Data' data={props.data}/>
16
- <DataDump label='Common' data={props.common}/>
17
- </div>
18
- );
19
- };
20
-
21
- export default PropsView;
22
-
23
- const DataDump = ({label, data}: Props) => (
24
- (data && (
25
- <>
26
- {label && (
27
- <h5 style={{marginTop: '0', marginBottom: '0'}}>{label}:</h5>
28
- )}
29
- <pre style={{
30
- fontSize: '.8em',
31
- width: '100%',
32
- whiteSpace: 'pre-wrap',
33
- wordWrap: 'break-word'
34
- }}>{JSON.stringify(data, null, 2)}</pre>
35
- </>
36
- )
37
- ) || null
38
- );
@@ -1,106 +0,0 @@
1
- import type {MetaData, RichTextViewProps, Replacer as NextReplacer, RichTextData, MacroData} from '../types';
2
-
3
- import {getUrl, UrlProcessor} from '../common/UrlProcessor';
4
- import BaseMacro from './BaseMacro';
5
- import Link from 'next/link';
6
- import {useMemo} from 'react';
7
- import type {
8
- MacroComponentParams,
9
- LinkComponentParams,
10
- ImageComponentParams,
11
- Replacer as ComponentsReplacer,
12
- ExtendedRichTextData,
13
- ComponentDataAndProps,
14
- MacroComponentData
15
- } from '@enonic/react-components';
16
- import {RichText, RichTextMetaData} from '@enonic/react-components';
17
- import type {DOMNode} from 'html-react-parser';
18
- import {LiteralUnion, TextComponent} from '@enonic-types/core';
19
-
20
- interface ExtraRichTextProps {
21
- nextMeta: MetaData;
22
- renderInEditMode?: boolean;
23
- }
24
-
25
- const RichTextView = (props: RichTextViewProps) => {
26
- const component: TextComponent = useMemo(() => ({
27
- type: 'text',
28
- path: props.meta.path,
29
- text: props.data.processedHtml
30
- }), [props.meta.path, props.data.processedHtml]);
31
-
32
- return <RichText<ExtraRichTextProps>
33
- data={wrapData(props.data)}
34
- meta={toRichTextMetaData(props.meta)}
35
- nextMeta={props.meta}
36
- component={component}
37
- className={props.className}
38
- tag={props.tag}
39
- replacer={wrapReplacer(props.customReplacer, props.meta, props.renderMacroInEditMode)}
40
- renderInEditMode={props.renderMacroInEditMode ?? true}
41
- Macro={MacroAdapter}
42
- Link={LinkAdapter}
43
- Image={ImageAdapter}
44
- />;
45
- };
46
-
47
- function wrapReplacer(nextReplacer: NextReplacer | undefined, meta: MetaData,
48
- renderMacroInEditMode: boolean): ComponentsReplacer<ExtraRichTextProps> {
49
- if (!nextReplacer) {
50
- return null;
51
- }
52
- return ({el, data}: { el: DOMNode, data: RichTextData, mode?: LiteralUnion<RequestMode> }) => {
53
- return nextReplacer(el, data, meta, renderMacroInEditMode);
54
- };
55
- }
56
-
57
- function wrapData(data: RichTextData): ExtendedRichTextData {
58
- if (!data.macros || !data.macros.length) {
59
- return data as ExtendedRichTextData;
60
- }
61
- const macroComponents = data.macros.map(macroData => {
62
- return {
63
- component: {
64
- type: 'macro',
65
- ref: macroData.ref,
66
- name: macroData.name,
67
- descriptor: macroData.descriptor
68
- },
69
- data: {
70
- name: macroData.name,
71
- descriptor: macroData.descriptor,
72
- config: macroData.config || {}
73
- }
74
- } as ComponentDataAndProps<MacroComponentData>;
75
- });
76
- return {
77
- ...data,
78
- macroComponents
79
- };
80
- }
81
-
82
- function MacroAdapter(props: MacroComponentParams<ExtraRichTextProps>) {
83
- const {children, component, data, common, meta, nextMeta, renderInEditMode} = props;
84
-
85
- return <BaseMacro data={data as Omit<MacroData, 'ref'>} meta={nextMeta} renderInEditMode={renderInEditMode}>{children}</BaseMacro>;
86
- }
87
-
88
- function LinkAdapter(props: LinkComponentParams<ExtraRichTextProps>) {
89
- return <Link href={getUrl(props.href, props.nextMeta)}>{props.children}</Link>;
90
- }
91
-
92
- function ImageAdapter(props: ImageComponentParams<ExtraRichTextProps>) {
93
- const srcSet = props.srcSet?.length ? UrlProcessor.processSrcSet(props.srcSet, props.nextMeta) : undefined;
94
- return <img src={getUrl(props.src, props.nextMeta)} style={props.style} alt={props.alt} sizes={props.sizes} srcSet={srcSet}/>;
95
- }
96
-
97
- function toRichTextMetaData(meta: MetaData): RichTextMetaData {
98
- return {
99
- type: meta.type,
100
- mode: meta.renderMode,
101
- path: meta.path,
102
- id: meta.id
103
- }
104
- }
105
-
106
- export default RichTextView;
@@ -1,19 +0,0 @@
1
- /// <reference types="react" />
2
- /** Render only one component as a result of a request from XP-side .../_/component/... during edit refresh. */
3
- import type {FetchContentResult} from '../types';
4
-
5
-
6
- import BaseComponent from './BaseComponent';
7
-
8
-
9
- const SingleComponent = ({meta, common}: FetchContentResult) => {
10
-
11
- if (!meta?.requestedComponent) {
12
- // TODO: Handle missing target region (Throw a 404, "component path not found"?)
13
- return null;
14
- }
15
-
16
- return <BaseComponent component={meta.requestedComponent} common={common} meta={meta}/>;
17
- };
18
-
19
- export default SingleComponent;
@@ -1,39 +0,0 @@
1
- import {StaticContentProps} from '../types';
2
-
3
-
4
- import {createElement, createRef} from 'react';
5
-
6
-
7
- function useStaticContent(ref, isServer) {
8
- if (isServer) {
9
- return false;
10
- }
11
-
12
- if (ref?.current?.innerHTML === '') {
13
- return false;
14
- }
15
-
16
- return true;
17
- }
18
-
19
-
20
- export default function StaticContent({children, element = 'div', condition = true, ...props}: StaticContentProps) {
21
- const isServer = typeof window === 'undefined';
22
- const ref = createRef();
23
- const isStatic = useStaticContent(ref, isServer);
24
-
25
- // avoid re-render on the client
26
- if (isStatic && condition) {
27
- return createElement(element, {
28
- ...props,
29
- ref,
30
- suppressHydrationWarning: true,
31
- dangerouslySetInnerHTML: {__html: ''}
32
- });
33
- }
34
-
35
- // just render if:
36
- // - condition is false
37
- // - we're in the server or a spa navigation
38
- return createElement(element, props, ...[].concat(children));
39
- }
@@ -1,19 +0,0 @@
1
- /// <reference types="react" />
2
- import type {MetaData, TextData} from '../types';
3
-
4
-
5
- import RichTextView from './RichTextView';
6
-
7
-
8
- interface Props {
9
- meta: MetaData
10
- component: TextData
11
- path: string
12
- }
13
-
14
-
15
- const DefaultTextView = ({component, meta, path}: Props) => (
16
- <RichTextView data={component.value} meta={meta} renderMacroInEditMode={false}/>
17
- );
18
-
19
- export default DefaultTextView;
@@ -1,9 +0,0 @@
1
- import type {MacroProps} from '../../types';
2
- import HTMLReactParser from 'html-react-parser';
3
-
4
-
5
- const DefaultMacro = ({name, config, meta}: MacroProps) => (
6
- HTMLReactParser(config.body) as JSX.Element
7
- );
8
-
9
- export default DefaultMacro;
@@ -1,8 +0,0 @@
1
- import type {MacroProps} from '../../types';
2
-
3
-
4
- const DisableMacro = ({name, config, meta}: MacroProps) => (
5
- config.body
6
- );
7
-
8
- export default DisableMacro;