@sitecore-jss/sitecore-jss-nextjs 22.1.0-canary.15 → 22.1.0-canary.18

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.
@@ -52,7 +52,7 @@ exports.Link = (0, react_1.forwardRef)((props, ref) => {
52
52
  ? field
53
53
  : field.value);
54
54
  const { href, querystring, anchor } = value;
55
- const isEditing = editable && field.editable;
55
+ const isEditing = editable && (field.editable || field.metadata);
56
56
  if (href && !isEditing) {
57
57
  const text = showLinkTextWithChildrenPresent || !children ? value.text || value.href : null;
58
58
  // determine if a link is a route or not.
@@ -20,7 +20,7 @@ const prop_types_1 = __importDefault(require("prop-types"));
20
20
  const react_1 = __importDefault(require("react"));
21
21
  const sitecore_jss_react_1 = require("@sitecore-jss/sitecore-jss-react");
22
22
  const image_1 = __importDefault(require("next/image"));
23
- const NextImage = (_a) => {
23
+ exports.NextImage = (0, sitecore_jss_react_1.withFieldMetadata)((_a) => {
24
24
  var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
25
25
  // next handles src and we use a custom loader,
26
26
  // throw error if these are present
@@ -59,8 +59,7 @@ const NextImage = (_a) => {
59
59
  return react_1.default.createElement(image_1.default, Object.assign({ alt: "" }, imageProps));
60
60
  }
61
61
  return null; // we can't handle the truth
62
- };
63
- exports.NextImage = NextImage;
62
+ });
64
63
  exports.NextImage.propTypes = {
65
64
  field: prop_types_1.default.oneOfType([
66
65
  prop_types_1.default.shape({
@@ -13,6 +13,7 @@ exports.EditingConfigMiddleware = void 0;
13
13
  const constants_1 = require("./constants");
14
14
  const utils_1 = require("../utils/utils");
15
15
  const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
16
+ const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
16
17
  const utils_2 = require("@sitecore-jss/sitecore-jss/utils");
17
18
  /**
18
19
  * Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
@@ -37,9 +38,11 @@ class EditingConfigMiddleware {
37
38
  const components = Array.isArray(this.config.components)
38
39
  ? this.config.components
39
40
  : Array.from(this.config.components.keys());
41
+ const editMode = this.config.pagesEditMode || layout_1.EditMode.Metadata;
40
42
  return res.status(200).json({
41
43
  components,
42
44
  packages: this.config.metadata.packages,
45
+ editMode,
43
46
  });
44
47
  });
45
48
  }
package/dist/cjs/index.js CHANGED
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DateField = exports.Text = exports.Image = exports.Context = exports.ComponentBuilder = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.EditingComponentPlaceholder = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.MultisiteGraphQLSitemapService = exports.GraphQLSitemapService = exports.DisconnectedSitemapService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.mediaApi = exports.getContentStylesheetLink = exports.EDITING_COMPONENT_ID = exports.EDITING_COMPONENT_PLACEHOLDER = exports.RenderingType = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.AxiosDataFetcher = exports.constants = void 0;
27
- exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.EditFrame = void 0;
26
+ exports.Text = exports.Image = exports.Context = exports.ComponentBuilder = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.EditingComponentPlaceholder = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.MultisiteGraphQLSitemapService = exports.GraphQLSitemapService = exports.DisconnectedSitemapService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.mediaApi = exports.EditMode = exports.getContentStylesheetLink = exports.EDITING_COMPONENT_ID = exports.EDITING_COMPONENT_PLACEHOLDER = exports.RenderingType = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.AxiosDataFetcher = exports.constants = void 0;
27
+ exports.EditingScripts = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.EditFrame = exports.DateField = void 0;
28
28
  var sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
29
29
  Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return sitecore_jss_1.constants; } });
30
30
  Object.defineProperty(exports, "AxiosDataFetcher", { enumerable: true, get: function () { return sitecore_jss_1.AxiosDataFetcher; } });
@@ -41,6 +41,7 @@ Object.defineProperty(exports, "RenderingType", { enumerable: true, get: functio
41
41
  Object.defineProperty(exports, "EDITING_COMPONENT_PLACEHOLDER", { enumerable: true, get: function () { return layout_1.EDITING_COMPONENT_PLACEHOLDER; } });
42
42
  Object.defineProperty(exports, "EDITING_COMPONENT_ID", { enumerable: true, get: function () { return layout_1.EDITING_COMPONENT_ID; } });
43
43
  Object.defineProperty(exports, "getContentStylesheetLink", { enumerable: true, get: function () { return layout_1.getContentStylesheetLink; } });
44
+ Object.defineProperty(exports, "EditMode", { enumerable: true, get: function () { return layout_1.EditMode; } });
44
45
  var media_1 = require("@sitecore-jss/sitecore-jss/media");
45
46
  Object.defineProperty(exports, "mediaApi", { enumerable: true, get: function () { return media_1.mediaApi; } });
46
47
  var tracking_1 = require("@sitecore-jss/sitecore-jss/tracking");
@@ -111,3 +112,5 @@ Object.defineProperty(exports, "useSitecoreContext", { enumerable: true, get: fu
111
112
  Object.defineProperty(exports, "withEditorChromes", { enumerable: true, get: function () { return sitecore_jss_react_1.withEditorChromes; } });
112
113
  Object.defineProperty(exports, "withPlaceholder", { enumerable: true, get: function () { return sitecore_jss_react_1.withPlaceholder; } });
113
114
  Object.defineProperty(exports, "withDatasourceCheck", { enumerable: true, get: function () { return sitecore_jss_react_1.withDatasourceCheck; } });
115
+ Object.defineProperty(exports, "withFieldMetadata", { enumerable: true, get: function () { return sitecore_jss_react_1.withFieldMetadata; } });
116
+ Object.defineProperty(exports, "EditingScripts", { enumerable: true, get: function () { return sitecore_jss_react_1.EditingScripts; } });
@@ -23,7 +23,7 @@ export const Link = forwardRef((props, ref) => {
23
23
  ? field
24
24
  : field.value);
25
25
  const { href, querystring, anchor } = value;
26
- const isEditing = editable && field.editable;
26
+ const isEditing = editable && (field.editable || field.metadata);
27
27
  if (href && !isEditing) {
28
28
  const text = showLinkTextWithChildrenPresent || !children ? value.text || value.href : null;
29
29
  // determine if a link is a route or not.
@@ -12,9 +12,9 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import { mediaApi } from '@sitecore-jss/sitecore-jss/media';
13
13
  import PropTypes from 'prop-types';
14
14
  import React from 'react';
15
- import { getEEMarkup, } from '@sitecore-jss/sitecore-jss-react';
15
+ import { getEEMarkup, withFieldMetadata, } from '@sitecore-jss/sitecore-jss-react';
16
16
  import Image from 'next/image';
17
- export const NextImage = (_a) => {
17
+ export const NextImage = withFieldMetadata((_a) => {
18
18
  var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
19
19
  // next handles src and we use a custom loader,
20
20
  // throw error if these are present
@@ -53,7 +53,7 @@ export const NextImage = (_a) => {
53
53
  return React.createElement(Image, Object.assign({ alt: "" }, imageProps));
54
54
  }
55
55
  return null; // we can't handle the truth
56
- };
56
+ });
57
57
  NextImage.propTypes = {
58
58
  field: PropTypes.oneOfType([
59
59
  PropTypes.shape({
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET } from './constants';
11
11
  import { getJssEditingSecret } from '../utils/utils';
12
12
  import { debug } from '@sitecore-jss/sitecore-jss';
13
+ import { EditMode } from '@sitecore-jss/sitecore-jss/layout';
13
14
  import { enforceCors } from '@sitecore-jss/sitecore-jss/utils';
14
15
  /**
15
16
  * Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
@@ -34,9 +35,11 @@ export class EditingConfigMiddleware {
34
35
  const components = Array.isArray(this.config.components)
35
36
  ? this.config.components
36
37
  : Array.from(this.config.components.keys());
38
+ const editMode = this.config.pagesEditMode || EditMode.Metadata;
37
39
  return res.status(200).json({
38
40
  components,
39
41
  packages: this.config.metadata.packages,
42
+ editMode,
40
43
  });
41
44
  });
42
45
  }
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { constants, AxiosDataFetcher, NativeDataFetcher, enableDebug, debug, } from '@sitecore-jss/sitecore-jss';
2
- export { LayoutServicePageState, GraphQLLayoutService, RestLayoutService, getChildPlaceholder, getFieldValue, RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, getContentStylesheetLink, } from '@sitecore-jss/sitecore-jss/layout';
2
+ export { LayoutServicePageState, GraphQLLayoutService, RestLayoutService, getChildPlaceholder, getFieldValue, RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, getContentStylesheetLink, EditMode, } from '@sitecore-jss/sitecore-jss/layout';
3
3
  export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
4
4
  export { trackingApi, } from '@sitecore-jss/sitecore-jss/tracking';
5
5
  export { GraphQLDictionaryService, RestDictionaryService, } from '@sitecore-jss/sitecore-jss/i18n';
@@ -21,4 +21,4 @@ export { FEaaSWrapper };
21
21
  export { BYOCWrapper };
22
22
  export { ComponentBuilder } from './ComponentBuilder';
23
23
  export { Context } from './context';
24
- export { Image, Text, DateField, EditFrame, FEaaSComponent, fetchFEaaSComponentServerProps, BYOCComponent, getComponentLibraryStylesheetLinks, File, VisitorIdentification, SitecoreContext, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, } from '@sitecore-jss/sitecore-jss-react';
24
+ export { Image, Text, DateField, EditFrame, FEaaSComponent, fetchFEaaSComponentServerProps, BYOCComponent, getComponentLibraryStylesheetLinks, File, VisitorIdentification, SitecoreContext, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, withFieldMetadata, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "22.1.0-canary.15",
3
+ "version": "22.1.0-canary.18",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -72,9 +72,9 @@
72
72
  "react-dom": "^18.2.0"
73
73
  },
74
74
  "dependencies": {
75
- "@sitecore-jss/sitecore-jss": "^22.1.0-canary.15",
76
- "@sitecore-jss/sitecore-jss-dev-tools": "^22.1.0-canary.15",
77
- "@sitecore-jss/sitecore-jss-react": "^22.1.0-canary.15",
75
+ "@sitecore-jss/sitecore-jss": "^22.1.0-canary.18",
76
+ "@sitecore-jss/sitecore-jss-dev-tools": "^22.1.0-canary.18",
77
+ "@sitecore-jss/sitecore-jss-react": "^22.1.0-canary.18",
78
78
  "@vercel/kv": "^0.2.1",
79
79
  "node-html-parser": "^6.1.4",
80
80
  "prop-types": "^15.8.1",
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "description": "",
85
85
  "types": "types/index.d.ts",
86
- "gitHead": "9efee87fe31c7c0cba592e5bbb3b88f97933ec8d",
86
+ "gitHead": "2834e7813cc9acd3e35911ac2adf0986366d40ca",
87
87
  "files": [
88
88
  "dist",
89
89
  "types",
@@ -1,4 +1,9 @@
1
1
  /// <reference types="@types/react" />
2
2
  import React from 'react';
3
- import { PlaceholderComponentProps } from '@sitecore-jss/sitecore-jss-react';
4
- export declare const Placeholder: (props: PlaceholderComponentProps) => React.JSX.Element;
3
+ import { PlaceholderComponentProps, WithSitecoreContextProps, EnhancedOmit } from '@sitecore-jss/sitecore-jss-react';
4
+ /**
5
+ * React Placeholder component wrapped by withSitecoreContext, so these properties shouldn't be passed to the Next.js Placeholder.
6
+ */
7
+ type PlaceholderProps = EnhancedOmit<PlaceholderComponentProps, keyof WithSitecoreContextProps>;
8
+ export declare const Placeholder: (props: PlaceholderProps) => React.JSX.Element;
9
+ export {};
@@ -19,6 +19,9 @@ export declare const RichText: {
19
19
  field: PropTypes.Requireable<PropTypes.InferProps<{
20
20
  value: PropTypes.Requireable<string>;
21
21
  editable: PropTypes.Requireable<string>;
22
+ metadata: PropTypes.Requireable<{
23
+ [x: string]: any;
24
+ }>;
22
25
  }>>;
23
26
  tag: PropTypes.Requireable<string>;
24
27
  editable: PropTypes.Requireable<boolean>;
@@ -1,4 +1,5 @@
1
1
  import { NextApiRequest, NextApiResponse } from 'next';
2
+ import { EditMode } from '@sitecore-jss/sitecore-jss/layout';
2
3
  import { Metadata } from '@sitecore-jss/sitecore-jss-dev-tools';
3
4
  export type EditingConfigMiddlewareConfig = {
4
5
  /**
@@ -9,6 +10,12 @@ export type EditingConfigMiddlewareConfig = {
9
10
  * Application metadata
10
11
  */
11
12
  metadata: Metadata;
13
+ /**
14
+ * Determines which editing mode should be used by Pages.
15
+ * Can be either 'chromes' or 'metadata'.
16
+ * By default its 'metadata'
17
+ */
18
+ pagesEditMode?: EditMode;
12
19
  };
13
20
  /**
14
21
  * Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
package/types/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { constants, HttpDataFetcher, HttpResponse, AxiosResponse, AxiosDataFetcher, AxiosDataFetcherConfig, NativeDataFetcher, NativeDataFetcherConfig, HTMLLink, enableDebug, debug, } from '@sitecore-jss/sitecore-jss';
2
- export { LayoutService, LayoutServiceData, LayoutServicePageState, LayoutServiceContext, LayoutServiceContextData, GraphQLLayoutService, GraphQLLayoutServiceConfig, RestLayoutService, RestLayoutServiceConfig, PlaceholderData, PlaceholdersData, RouteData, Field, Item, HtmlElementRendering, getChildPlaceholder, getFieldValue, ComponentRendering, ComponentFields, ComponentParams, RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, getContentStylesheetLink, } from '@sitecore-jss/sitecore-jss/layout';
2
+ export { LayoutService, LayoutServiceData, LayoutServicePageState, LayoutServiceContext, LayoutServiceContextData, GraphQLLayoutService, GraphQLLayoutServiceConfig, RestLayoutService, RestLayoutServiceConfig, PlaceholderData, PlaceholdersData, RouteData, Field, Item, HtmlElementRendering, getChildPlaceholder, getFieldValue, ComponentRendering, ComponentFields, ComponentParams, RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, getContentStylesheetLink, EditMode, } from '@sitecore-jss/sitecore-jss/layout';
3
3
  export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
4
4
  export { trackingApi, TrackingRequestOptions, CampaignInstance, GoalInstance, OutcomeInstance, EventInstance, PageViewInstance, } from '@sitecore-jss/sitecore-jss/tracking';
5
5
  export { DictionaryPhrases, DictionaryService, GraphQLDictionaryService, GraphQLDictionaryServiceConfig, RestDictionaryService, RestDictionaryServiceConfig, } from '@sitecore-jss/sitecore-jss/i18n';
@@ -24,4 +24,4 @@ export { FEaaSWrapper };
24
24
  export { BYOCWrapper };
25
25
  export { ComponentBuilder, ComponentBuilderConfig } from './ComponentBuilder';
26
26
  export { Context, ContextConfig, SDK } from './context';
27
- export { ComponentFactory, Image, ImageField, ImageFieldValue, ImageProps, LinkField, LinkFieldValue, Text, TextField, DateField, EditFrame, FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, BYOCComponentParams, BYOCComponent, BYOCComponentProps, getComponentLibraryStylesheetLinks, File, FileField, RichTextField, VisitorIdentification, PlaceholderComponentProps, SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, ImageSizeParameters, ComponentConsumerProps, WithSitecoreContextOptions, WithSitecoreContextProps, } from '@sitecore-jss/sitecore-jss-react';
27
+ export { ComponentFactory, Image, ImageField, ImageFieldValue, ImageProps, LinkField, LinkFieldValue, Text, TextField, DateField, EditFrame, FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, BYOCComponentParams, BYOCComponent, BYOCComponentProps, getComponentLibraryStylesheetLinks, File, FileField, RichTextField, VisitorIdentification, PlaceholderComponentProps, SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, ImageSizeParameters, WithSitecoreContextOptions, WithSitecoreContextProps, WithSitecoreContextHocProps, withFieldMetadata, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';