create-sitecore-jss 22.2.0-canary.1 → 22.2.0-canary.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +69 -28
- package/dist/common/processes/install.js +9 -2
- package/dist/common/processes/transform.js +7 -2
- package/dist/init-runner.js +12 -8
- package/dist/initializers/angular/index.js +16 -0
- package/dist/initializers/angular/prompts.js +22 -1
- package/dist/initializers/angular-sxp/index.js +56 -0
- package/dist/initializers/angular-xmcloud/index.js +56 -0
- package/dist/initializers/node-xmcloud-proxy/index.js +32 -0
- package/dist/templates/angular/.env +5 -3
- package/dist/templates/angular/README.md +5 -45
- package/dist/templates/angular/angular.json +1 -6
- package/dist/templates/angular/package.json +5 -15
- package/dist/templates/angular/proxy.conf.js +5 -23
- package/dist/templates/angular/scripts/bootstrap.ts +5 -24
- package/dist/templates/angular/scripts/config/index.ts +28 -0
- package/dist/templates/angular/scripts/config/plugins/computed.ts +21 -0
- package/dist/templates/angular/scripts/config/plugins/fallback.ts +23 -0
- package/dist/templates/angular/scripts/config/plugins/package-json.ts +22 -0
- package/dist/templates/angular/scripts/config/plugins/scjssconfig.ts +29 -0
- package/dist/templates/angular/scripts/generate-config.ts +53 -73
- package/dist/templates/angular/scripts/generate-plugins.ts +28 -0
- package/dist/templates/angular/scripts/temp/gitignore +2 -0
- package/dist/templates/angular/scripts/update-graphql-fragment-data.ts +4 -2
- package/dist/templates/angular/server.bundle.ts +19 -1
- package/dist/templates/angular/src/app/app.module.ts +0 -2
- package/dist/templates/angular/src/app/components/app-components.shared.module.ts +4 -19
- package/dist/templates/angular/src/app/jss-context.server-side.service.ts +0 -2
- package/dist/templates/angular/src/app/lib/config.ts +16 -0
- package/dist/templates/angular/src/app/lib/dictionary-service-factory.ts +21 -13
- package/dist/templates/angular/src/app/lib/layout-service-factory.ts +20 -12
- package/dist/templates/angular/src/app/routing/layout/layout.component.html +1 -1
- package/dist/templates/angular/src/app/routing/layout/layout.component.ts +1 -2
- package/dist/templates/angular/src/app/routing/navigation/navigation.component.html +5 -6
- package/dist/templates/angular/src/app/routing/navigation/navigation.component.ts +1 -2
- package/dist/templates/angular/src/app/routing/routing.module.ts +14 -21
- package/dist/templates/angular/src/app/routing/scripts/scripts.component.html +1 -0
- package/dist/templates/angular/src/app/routing/scripts/scripts.component.ts +7 -0
- package/dist/templates/angular/src/app/routing/scripts/scripts.module.ts +8 -0
- package/dist/templates/angular/src/graphql-fragment-types.ts +0 -95
- package/dist/templates/angular/tsconfig.json +7 -2
- package/dist/templates/angular-sxp/package.json +12 -0
- package/dist/templates/angular-sxp/proxy.conf.js +43 -0
- package/dist/templates/angular-sxp/scripts/config/plugins/disconnected.ts +27 -0
- package/dist/templates/angular-sxp/src/app/components/app-components.shared.module.ts +35 -0
- package/dist/templates/{angular → angular-sxp}/src/app/jss-data-fetcher.service.ts +3 -1
- package/dist/templates/angular-sxp/src/app/routing/navigation/navigation.component.html +23 -0
- package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.component.html +3 -0
- package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.module.ts +9 -0
- package/dist/templates/{angular/src/app/routing → angular-sxp/src/app/routing/scripts}/visitor-identification/visitor-identification.component.ts +9 -3
- package/dist/templates/angular-sxp/src/graphql-fragment-types.ts +219 -0
- package/dist/templates/angular-xmcloud/.env +8 -0
- package/dist/templates/angular-xmcloud/package.json +10 -0
- package/dist/templates/angular-xmcloud/scripts/config/plugins/xmcloud.ts +23 -0
- package/dist/templates/angular-xmcloud/scripts/proxy-build.ts +15 -0
- package/dist/templates/angular-xmcloud/src/app/lib/config.ts +15 -0
- package/dist/templates/angular-xmcloud/src/app/lib/graphql-client-factory.ts +44 -0
- package/dist/templates/node-xmcloud-proxy/.env +8 -0
- package/dist/templates/node-xmcloud-proxy/README.md +36 -0
- package/dist/templates/node-xmcloud-proxy/package.json +25 -0
- package/dist/templates/node-xmcloud-proxy/src/config.ts +19 -0
- package/dist/templates/node-xmcloud-proxy/src/index.ts +161 -0
- package/dist/templates/node-xmcloud-proxy/src/types.ts +59 -0
- package/dist/templates/node-xmcloud-proxy/tsconfig.json +22 -0
- package/package.json +2 -2
- /package/dist/templates/angular/src/app/lib/{client-factory.ts → graphql-client-factory.ts} +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/component-content/gitignore +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/gitignore +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/dictionary/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/dictionary/{{language}}.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/media/files/jss.pdf +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/media/img/jss_logo.png +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/media/img/sc_logo.png +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/custom-route-type/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/{{language}}.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/{{language}}.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/scripts/disconnected-mode-proxy.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/scripts/lint-yml.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/config/{{appName}}.config +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/component-content.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Reuse.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs-Tab.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Multilingual.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Section.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/content-block.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-connected-demo.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.graphql +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-layout.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-angular-lazy-loading.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-component-params.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-custom-route-type.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-edit-frame.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-checkbox.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-content-list.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-custom.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-date.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-file.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-image.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-item-link.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-link.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-number.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-rich-text.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-text.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-route-fields.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-sitecore-context.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-tracking.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/config.js +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/content.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/dictionary.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/placeholders.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/routes.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/Styleguide-Explanatory-Component.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-content-list-template.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-edit-frame-list-item-template.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-item-link-template.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/gitignore +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/pipelines/example.patch.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.graphql +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/shared/styleguide-specimen/styleguide-specimen.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.module.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.ts +0 -0
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import 'dotenv/config';
|
|
2
|
-
import { constants } from '@sitecore-jss/sitecore-jss-angular/cjs';
|
|
3
|
-
import { generateConfig } from './generate-config';
|
|
4
|
-
const projects = require('../angular.json').projects;
|
|
5
|
-
const chalk = require('chalk');
|
|
6
2
|
|
|
7
3
|
/*
|
|
8
4
|
BOOTSTRAPPING
|
|
@@ -11,30 +7,15 @@ const chalk = require('chalk');
|
|
|
11
7
|
and the global config module.
|
|
12
8
|
*/
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
10
|
+
/*
|
|
11
|
+
PLUGINS GENERATION
|
|
12
|
+
*/
|
|
13
|
+
require('./generate-plugins');
|
|
19
14
|
|
|
20
15
|
/*
|
|
21
16
|
CONFIG GENERATION
|
|
22
|
-
Generates the /src/environments/environment.js file which contains runtime configuration
|
|
23
|
-
that the app can import and use.
|
|
24
|
-
|
|
25
|
-
This is generated rather than using Angular environments because of the need to set config params
|
|
26
|
-
based on build arguments, which env files don't directly allow.
|
|
27
17
|
*/
|
|
28
|
-
|
|
29
|
-
if (disconnected) {
|
|
30
|
-
configOverride.sitecoreApiHost = `http://localhost:${projects['<%- appName %>'].architect.serve.options.port}`;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
generateConfig(configOverride, outputPath);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
writeConfig({ production: false });
|
|
37
|
-
writeConfig({ production: true }, 'src/environments/environment.prod.js');
|
|
18
|
+
require('./generate-config');
|
|
38
19
|
|
|
39
20
|
/*
|
|
40
21
|
COMPONENT FACTORY GENERATION
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
2
|
+
const plugins = require('scripts/temp/config-plugins');
|
|
3
|
+
import { JssConfig } from 'lib/config';
|
|
4
|
+
|
|
5
|
+
export interface ConfigPlugin {
|
|
6
|
+
/**
|
|
7
|
+
* Detect order when the plugin should be called, e.g. 0 - will be called first (can be a plugin which data is required for other plugins)
|
|
8
|
+
*/
|
|
9
|
+
order: number;
|
|
10
|
+
/**
|
|
11
|
+
* A function which will be called during config generation
|
|
12
|
+
* @param {JssConfig} config Current (accumulated) config
|
|
13
|
+
*/
|
|
14
|
+
exec(config: JssConfig): Promise<JssConfig>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class JssConfigFactory {
|
|
18
|
+
public async create(defaultConfig: JssConfig = {}): Promise<JssConfig> {
|
|
19
|
+
return (Object.values(plugins) as ConfigPlugin[])
|
|
20
|
+
.sort((p1, p2) => p1.order - p2.order)
|
|
21
|
+
.reduce(
|
|
22
|
+
(promise, plugin) => promise.then((config) => plugin.exec(config)),
|
|
23
|
+
Promise.resolve(defaultConfig)
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const jssConfigFactory = new JssConfigFactory();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { JssConfig } from 'lib/config';
|
|
2
|
+
import { ConfigPlugin } from '..';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This plugin will set computed config props.
|
|
6
|
+
* The "graphQLEndpoint" is an example of making a _computed_ config setting
|
|
7
|
+
* based on other config settings.
|
|
8
|
+
*/
|
|
9
|
+
class ComputedPlugin implements ConfigPlugin {
|
|
10
|
+
// should come after other plugins (but before fallback)
|
|
11
|
+
order = 10;
|
|
12
|
+
|
|
13
|
+
async exec(config: JssConfig) {
|
|
14
|
+
return Object.assign({}, config, {
|
|
15
|
+
graphQLEndpoint:
|
|
16
|
+
config.graphQLEndpoint || `${config.sitecoreApiHost}${config.graphQLEndpointPath}`,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const computedPlugin = new ComputedPlugin();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { JssConfig } from 'lib/config';
|
|
2
|
+
import { ConfigPlugin } from '..';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This config will set fallback values for properties that were left empty
|
|
6
|
+
* If neither env, nor other places had a proper value, this will ensure a fallback is set
|
|
7
|
+
*/
|
|
8
|
+
class FallbackPlugin implements ConfigPlugin {
|
|
9
|
+
// should always come last
|
|
10
|
+
order = 100;
|
|
11
|
+
|
|
12
|
+
async exec(config: JssConfig) {
|
|
13
|
+
return Object.assign({}, config, {
|
|
14
|
+
defaultLanguage: config.defaultLanguage || 'en',
|
|
15
|
+
sitecoreApiKey: config.sitecoreApiKey || 'no-api-key-set',
|
|
16
|
+
<% if (!locals.xmcloud) { -%>
|
|
17
|
+
layoutServiceConfigurationName: config.layoutServiceConfigurationName || 'default',
|
|
18
|
+
<% } -%>
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const fallbackPlugin = new FallbackPlugin();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { JssConfig } from 'lib/config';
|
|
2
|
+
import { ConfigPlugin } from '..';
|
|
3
|
+
import packageConfig from 'package.json';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This plugin will set config props based on package.json.
|
|
7
|
+
*/
|
|
8
|
+
class PackageJsonPlugin implements ConfigPlugin {
|
|
9
|
+
order = 1;
|
|
10
|
+
|
|
11
|
+
async exec(config: JssConfig) {
|
|
12
|
+
if (!packageConfig.config) return config;
|
|
13
|
+
|
|
14
|
+
return Object.assign({}, config, {
|
|
15
|
+
sitecoreSiteName: config.sitecoreSiteName || packageConfig.config.appName,
|
|
16
|
+
graphQLEndpointPath: config.graphQLEndpointPath || packageConfig.config.graphQLEndpointPath,
|
|
17
|
+
defaultLanguage: config.defaultLanguage || packageConfig.config.language,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const packageJsonPlugin = new PackageJsonPlugin();
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { JssConfig } from 'lib/config';
|
|
2
|
+
import { ConfigPlugin } from '..';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This plugin will set config props based on scjssconfig.json.
|
|
6
|
+
* scjssconfig.json may not exist if you've never run `jss setup` (development)
|
|
7
|
+
* or are depending on environment variables instead (production).
|
|
8
|
+
*/
|
|
9
|
+
class ScJssConfigPlugin implements ConfigPlugin {
|
|
10
|
+
order = 1;
|
|
11
|
+
|
|
12
|
+
async exec(config: JssConfig) {
|
|
13
|
+
let scJssConfig;
|
|
14
|
+
try {
|
|
15
|
+
scJssConfig = require('scjssconfig.json');
|
|
16
|
+
} catch (e) {
|
|
17
|
+
return config;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (!scJssConfig) return config;
|
|
21
|
+
|
|
22
|
+
return Object.assign({}, config, {
|
|
23
|
+
sitecoreApiKey: config.sitecoreApiKey || scJssConfig.sitecore?.apiKey,
|
|
24
|
+
sitecoreApiHost: config.sitecoreApiHost || scJssConfig.sitecore?.layoutServiceHost,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const scjssconfigPlugin = new ScJssConfigPlugin();
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { constantCase } from 'constant-case';
|
|
4
|
-
|
|
4
|
+
import { jssConfigFactory } from './config';
|
|
5
|
+
import { JssConfig } from 'lib/config';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Generate config
|
|
@@ -10,91 +11,70 @@ const packageConfig = require('../package.json');
|
|
|
10
11
|
* settings as variables into the JSS app.
|
|
11
12
|
* NOTE! Any configs returned here will be written into the client-side JS bundle. DO NOT PUT SECRETS HERE.
|
|
12
13
|
*/
|
|
13
|
-
export function generateConfig(configOverrides?: { [key: string]: unknown }, outputPath?: string) {
|
|
14
|
-
const defaultConfig = {
|
|
15
|
-
production: false,
|
|
16
|
-
sitecoreApiHost: '',
|
|
17
|
-
sitecoreApiKey: 'no-api-key-set',
|
|
18
|
-
sitecoreSiteName: process.env.SITECORE_SITE_NAME,
|
|
19
|
-
sitecoreLayoutServiceConfig: 'jss',
|
|
20
|
-
defaultLanguage: 'en',
|
|
21
|
-
defaultServerRoute: '/',
|
|
22
|
-
layoutServiceConfigurationName: 'default',
|
|
23
|
-
};
|
|
24
14
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
15
|
+
const defaultConfigValue: JssConfig = {
|
|
16
|
+
production: false,
|
|
17
|
+
sitecoreApiKey: process.env[`${constantCase('sitecoreApiKey')}`],
|
|
18
|
+
sitecoreApiHost: process.env[`${constantCase('sitecoreApiHost')}`],
|
|
19
|
+
sitecoreSiteName: process.env[`${constantCase('sitecoreSiteName')}`],
|
|
20
|
+
defaultLanguage: process.env[`${constantCase('defaultLanguage')}`],
|
|
21
|
+
graphQLEndpoint: process.env[`${constantCase('graphQLEndpoint')}`],
|
|
22
|
+
graphQLEndpointPath: process.env[`${constantCase('graphQLEndpointPath')}`],
|
|
23
|
+
defaultServerRoute: '/',
|
|
24
|
+
};
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const packageJson = transformPackageConfig();
|
|
26
|
+
generateConfig('src/environments/environment.js', defaultConfigValue, { production: false });
|
|
27
|
+
generateConfig('src/environments/environment.prod.js', defaultConfigValue, { production: true });
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Generates the JSS config based on config plugins (under ./config/plugins)
|
|
31
|
+
* and then writes the config to disk.
|
|
32
|
+
* @param {string} outputPath the output path of the generated config.
|
|
33
|
+
* @param {JssConfig} [defaultConfig] Default configuration.
|
|
34
|
+
* @param {[key: string]:unknown} [configOverrides] configuration values that override the generated ones.
|
|
35
|
+
*/
|
|
36
|
+
export function generateConfig(
|
|
37
|
+
outputPath: string,
|
|
38
|
+
defaultConfig: JssConfig = defaultConfigValue,
|
|
39
|
+
configOverrides?: { [key: string]: unknown }
|
|
40
|
+
) {
|
|
41
|
+
jssConfigFactory
|
|
42
|
+
.create(defaultConfig)
|
|
43
|
+
.then((config) => {
|
|
44
|
+
writeConfig(Object.assign(config, configOverrides), outputPath);
|
|
45
|
+
})
|
|
46
|
+
.catch((e) => {
|
|
47
|
+
console.error('Error generating config');
|
|
48
|
+
console.error(e);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
40
52
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Writes the config object to disk with support for environment variables.
|
|
55
|
+
* @param {JssConfig} config JSS configuration to write.
|
|
56
|
+
* @param {string} outputPath the outputh path of the generated config.
|
|
57
|
+
*/
|
|
58
|
+
export function writeConfig(config: JssConfig, outputPath?: string) {
|
|
59
|
+
if (!outputPath) {
|
|
60
|
+
outputPath = 'src/environments/environment.js';
|
|
61
|
+
}
|
|
45
62
|
|
|
46
63
|
let configText = `/* eslint-disable */
|
|
47
|
-
// Do not edit this file, it is auto-generated at build time!
|
|
48
|
-
// See scripts/bootstrap.ts to modify the generation of this file.
|
|
49
|
-
const config = {};\n`;
|
|
64
|
+
// Do not edit this file, it is auto-generated at build time!
|
|
65
|
+
// See scripts/bootstrap.ts to modify the generation of this file.
|
|
66
|
+
const config = {};\n`;
|
|
50
67
|
|
|
51
68
|
// Set base configuration values, allowing override with environment variables
|
|
52
69
|
Object.keys(config).forEach((prop) => {
|
|
53
|
-
configText += `config.${prop} = process.env.${constantCase(prop)} || "${config[prop]
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Object.keys(computedConfig).forEach((prop) => {
|
|
57
|
-
configText += `config.${prop} = process.env.${constantCase(prop)} || ${
|
|
58
|
-
computedConfig[prop]?.toString().trim()
|
|
59
|
-
};\n`;
|
|
70
|
+
configText += `config.${prop} = process.env.${constantCase(prop)} || "${config[prop]
|
|
71
|
+
?.toString()
|
|
72
|
+
.trim()}";\n`;
|
|
60
73
|
});
|
|
74
|
+
|
|
61
75
|
configText += `module.exports.environment = config;`;
|
|
62
76
|
|
|
63
77
|
const configPath = path.resolve(outputPath);
|
|
64
78
|
console.log(`Writing runtime config to ${configPath}`);
|
|
65
79
|
fs.writeFileSync(configPath, configText, { encoding: 'utf8' });
|
|
66
80
|
}
|
|
67
|
-
|
|
68
|
-
function transformScJssConfig() {
|
|
69
|
-
// scjssconfig.json may not exist if you've never run setup
|
|
70
|
-
// so if it doesn't we substitute a fake object
|
|
71
|
-
let config;
|
|
72
|
-
try {
|
|
73
|
-
config = require('../scjssconfig.json');
|
|
74
|
-
} catch (e) {
|
|
75
|
-
return {};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (!config) {
|
|
79
|
-
return {};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return {
|
|
83
|
-
sitecoreApiKey: config.sitecore.apiKey,
|
|
84
|
-
sitecoreApiHost: config.sitecore.layoutServiceHost,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function transformPackageConfig() {
|
|
89
|
-
const packageAny = packageConfig;
|
|
90
|
-
|
|
91
|
-
if (!packageAny.config) {
|
|
92
|
-
return {};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return {
|
|
96
|
-
sitecoreSiteName: packageAny.config.appName,
|
|
97
|
-
defaultLanguage: packageAny.config.language || 'en',
|
|
98
|
-
graphQLEndpointPath: packageAny.config.graphQLEndpointPath || null,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generatePlugins,
|
|
3
|
+
ModuleType,
|
|
4
|
+
PluginDefinition,
|
|
5
|
+
} from '@sitecore-jss/sitecore-jss-dev-tools';
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
PLUGINS GENERATION
|
|
9
|
+
NOTE: pluginName: the name of the plugin in the src/lib folder
|
|
10
|
+
Generates the `/src/temp/{pluginName}-plugins.ts` file, which exports list of plugins
|
|
11
|
+
|
|
12
|
+
Generating the plugins is optional, and it can be maintained manually if preferred.
|
|
13
|
+
|
|
14
|
+
The default convention uses the plugin's filename (without the extension) as the first part of the component
|
|
15
|
+
name. For example, the file `/lib/page-props-factory/plugins/exampleName.ts` would map to plugin `exampleNamePlugin`.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const pluginDefinitions: PluginDefinition[] = [
|
|
19
|
+
{
|
|
20
|
+
distPath: 'scripts/temp/config-plugins.ts',
|
|
21
|
+
rootPath: 'scripts/config/plugins',
|
|
22
|
+
moduleType: ModuleType.ESM,
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
pluginDefinitions.forEach((definition) => {
|
|
27
|
+
generatePlugins(definition);
|
|
28
|
+
});
|
|
@@ -9,7 +9,7 @@ import { generateConfig } from './generate-config';
|
|
|
9
9
|
//
|
|
10
10
|
// The `jss graphql:update` command should be executed when Sitecore templates related to the site are altered.
|
|
11
11
|
|
|
12
|
-
generateConfig();
|
|
12
|
+
generateConfig('src/environments/environment.js');
|
|
13
13
|
|
|
14
14
|
let jssConfig;
|
|
15
15
|
|
|
@@ -47,7 +47,9 @@ fetch(jssConfig.graphQLEndpoint, {
|
|
|
47
47
|
.then((result) => result.json())
|
|
48
48
|
.then((result) => {
|
|
49
49
|
// here we're filtering out any type information unrelated to unions or interfaces
|
|
50
|
-
const filteredData = result.data.__schema.types.filter(
|
|
50
|
+
const filteredData = result.data.__schema.types.filter(
|
|
51
|
+
(type: { possibleTypes: Array<string> }) => type.possibleTypes !== null
|
|
52
|
+
);
|
|
51
53
|
|
|
52
54
|
const filteredResult = { ...result };
|
|
53
55
|
filteredResult.data.__schema.types = filteredData;
|
|
@@ -6,6 +6,9 @@ import 'zone.js';
|
|
|
6
6
|
import { JssRouteBuilderService } from './src/app/routing/jss-route-builder.service';
|
|
7
7
|
import { environment } from './src/environments/environment';
|
|
8
8
|
import { AppServerModule, renderModule } from './src/main.server';
|
|
9
|
+
import { clientFactory } from './src/app/lib/graphql-client-factory';
|
|
10
|
+
import { dictionaryServiceFactory } from './src/app/lib/dictionary-service-factory';
|
|
11
|
+
import { layoutServiceFactory } from './src/app/lib/layout-service-factory';
|
|
9
12
|
|
|
10
13
|
export * from './src/main.server';
|
|
11
14
|
|
|
@@ -99,5 +102,20 @@ function parseRouteUrl(url: string) {
|
|
|
99
102
|
|
|
100
103
|
const apiKey = environment.sitecoreApiKey;
|
|
101
104
|
const siteName = environment.sitecoreSiteName;
|
|
105
|
+
const defaultLanguage = environment.defaultLanguage;
|
|
106
|
+
const graphQLEndpointPath = environment.graphQLEndpointPath;
|
|
107
|
+
const graphQLEndpoint = environment.graphQLEndpoint;
|
|
102
108
|
|
|
103
|
-
export {
|
|
109
|
+
export {
|
|
110
|
+
renderView,
|
|
111
|
+
parseRouteUrl,
|
|
112
|
+
setUpDefaultAgents,
|
|
113
|
+
apiKey,
|
|
114
|
+
siteName,
|
|
115
|
+
clientFactory,
|
|
116
|
+
dictionaryServiceFactory,
|
|
117
|
+
layoutServiceFactory,
|
|
118
|
+
defaultLanguage,
|
|
119
|
+
graphQLEndpointPath,
|
|
120
|
+
graphQLEndpoint,
|
|
121
|
+
};
|
|
@@ -10,7 +10,6 @@ import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
|
10
10
|
import { JssTranslationClientLoaderService } from './i18n/jss-translation-client-loader.service';
|
|
11
11
|
import { JssTranslationLoaderService } from './i18n/jss-translation-loader.service';
|
|
12
12
|
import { GraphQLModule } from './jss-graphql.module';
|
|
13
|
-
import { JssDataFetcherService } from './jss-data-fetcher.service';
|
|
14
13
|
import { JssMetaService } from './jss-meta.service';
|
|
15
14
|
|
|
16
15
|
@NgModule({
|
|
@@ -31,7 +30,6 @@ import { JssMetaService } from './jss-meta.service';
|
|
|
31
30
|
// The token is needed in cases when multiple applications are bootstrapped on a page
|
|
32
31
|
{ provide: APP_ID, useValue: 'my-app' },
|
|
33
32
|
JssContextService,
|
|
34
|
-
JssDataFetcherService,
|
|
35
33
|
JssLayoutService,
|
|
36
34
|
JssMetaService,
|
|
37
35
|
// IMPORTANT: you must set the base href with this token, not a <base> tag in the HTML.
|
|
@@ -3,7 +3,6 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
5
5
|
import { RouterModule } from '@angular/router';
|
|
6
|
-
import { StyleguideSpecimenComponent } from './shared/styleguide-specimen/styleguide-specimen.component';
|
|
7
6
|
import { JssModule } from '@sitecore-jss/sitecore-jss-angular';
|
|
8
7
|
|
|
9
8
|
/*
|
|
@@ -14,22 +13,8 @@ import { JssModule } from '@sitecore-jss/sitecore-jss-angular';
|
|
|
14
13
|
Don't want code generation? See ./.gitignore for instructions to turn it off.
|
|
15
14
|
*/
|
|
16
15
|
@NgModule({
|
|
17
|
-
imports: [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
RouterModule,
|
|
21
|
-
JssModule,
|
|
22
|
-
FormsModule,
|
|
23
|
-
],
|
|
24
|
-
exports: [
|
|
25
|
-
CommonModule,
|
|
26
|
-
TranslateModule,
|
|
27
|
-
RouterModule,
|
|
28
|
-
FormsModule,
|
|
29
|
-
StyleguideSpecimenComponent
|
|
30
|
-
],
|
|
31
|
-
declarations: [
|
|
32
|
-
StyleguideSpecimenComponent
|
|
33
|
-
],
|
|
16
|
+
imports: [CommonModule, TranslateModule, RouterModule, JssModule, FormsModule],
|
|
17
|
+
exports: [CommonModule, TranslateModule, RouterModule, FormsModule],
|
|
18
|
+
declarations: [],
|
|
34
19
|
})
|
|
35
|
-
export class AppComponentsSharedModule {
|
|
20
|
+
export class AppComponentsSharedModule {}
|
|
@@ -2,7 +2,6 @@ import { Injectable, Inject, TransferState } from '@angular/core';
|
|
|
2
2
|
import { JssContextService, jssKey } from './jss-context.service';
|
|
3
3
|
import { JssState } from './JssState';
|
|
4
4
|
import { Observable, of as observableOf } from 'rxjs';
|
|
5
|
-
import { JssDataFetcherService } from './jss-data-fetcher.service';
|
|
6
5
|
import { JssLayoutService } from './layout/jss-layout.service';
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -15,7 +14,6 @@ export class JssContextServerSideService extends JssContextService {
|
|
|
15
14
|
constructor(
|
|
16
15
|
protected transferState: TransferState,
|
|
17
16
|
protected layoutService: JssLayoutService,
|
|
18
|
-
protected dataFetcher: JssDataFetcherService,
|
|
19
17
|
// this initial state from sitecore is injected by server.bundle for "integrated" mode
|
|
20
18
|
@Inject('JSS_SERVER_LAYOUT_DATA') private serverToSsrState: JssState
|
|
21
19
|
) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Represents the type of config object available within the generated /environments/environment.js
|
|
3
|
+
*/
|
|
4
|
+
export interface JssConfig extends Record<string, string | boolean | undefined> {
|
|
5
|
+
production?: false;
|
|
6
|
+
sitecoreApiKey?: string;
|
|
7
|
+
sitecoreApiHost?: string;
|
|
8
|
+
sitecoreSiteName?: string;
|
|
9
|
+
defaultLanguage?: string;
|
|
10
|
+
graphQLEndpoint?: string;
|
|
11
|
+
graphQLEndpointPath?: string;
|
|
12
|
+
<% if (!locals.xmcloud) { -%>
|
|
13
|
+
layoutServiceConfigurationName?: string;
|
|
14
|
+
<% } -%>
|
|
15
|
+
defaultServerRoute?: string;
|
|
16
|
+
}
|
|
@@ -1,30 +1,38 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DictionaryService,
|
|
3
3
|
GraphQLDictionaryService,
|
|
4
|
+
<% if (!locals.xmcloud) { -%>
|
|
4
5
|
RestDictionaryService,
|
|
5
6
|
constants,
|
|
7
|
+
<% } -%>
|
|
6
8
|
} from '@sitecore-jss/sitecore-jss-angular';
|
|
7
9
|
import { environment as env } from '../../environments/environment';
|
|
8
|
-
import { clientFactory } from './client-factory';
|
|
10
|
+
import { clientFactory } from './graphql-client-factory';
|
|
9
11
|
|
|
10
12
|
export class DictionaryServiceFactory {
|
|
11
13
|
create(): DictionaryService {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/*
|
|
17
|
-
The Dictionary Service needs a root item ID in order to fetch dictionary phrases for the current
|
|
18
|
-
app. If your Sitecore instance only has 1 JSS App, you can specify the root item ID here;
|
|
19
|
-
otherwise, the service will attempt to figure out the root item for the current JSS App using GraphQL and app name.
|
|
20
|
-
rootItemId: '{GUID}'
|
|
21
|
-
*/
|
|
22
|
-
})
|
|
23
|
-
: new RestDictionaryService({
|
|
14
|
+
const service =
|
|
15
|
+
<% if (!locals.xmcloud) { -%>
|
|
16
|
+
process.env.FETCH_WITH === constants.FETCH_WITH.REST
|
|
17
|
+
? new RestDictionaryService({
|
|
24
18
|
apiHost: env.sitecoreApiHost,
|
|
25
19
|
apiKey: env.sitecoreApiKey,
|
|
26
20
|
siteName: env.sitecoreSiteName,
|
|
21
|
+
})
|
|
22
|
+
:
|
|
23
|
+
<% } -%>
|
|
24
|
+
new GraphQLDictionaryService({
|
|
25
|
+
clientFactory,
|
|
26
|
+
siteName: env.sitecoreSiteName,
|
|
27
|
+
/*
|
|
28
|
+
The Dictionary Service needs a root item ID in order to fetch dictionary phrases for the current
|
|
29
|
+
app. If your Sitecore instance only has 1 JSS App, you can specify the root item ID here;
|
|
30
|
+
otherwise, the service will attempt to figure out the root item for the current JSS App using GraphQL and app name.
|
|
31
|
+
rootItemId: '{GUID}'
|
|
32
|
+
*/
|
|
27
33
|
});
|
|
34
|
+
|
|
35
|
+
return service;
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LayoutService,
|
|
3
3
|
GraphQLLayoutService,
|
|
4
|
+
<% if (!locals.xmcloud) { -%>
|
|
4
5
|
RestLayoutService,
|
|
5
6
|
constants,
|
|
7
|
+
<% } -%>
|
|
6
8
|
} from '@sitecore-jss/sitecore-jss-angular';
|
|
7
9
|
import { environment } from '../../environments/environment';
|
|
8
|
-
import { clientFactory } from './client-factory';
|
|
10
|
+
import { clientFactory } from './graphql-client-factory';
|
|
9
11
|
|
|
10
12
|
export class LayoutServiceFactory {
|
|
11
13
|
create(): LayoutService {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
const service =
|
|
15
|
+
<% if (!locals.xmcloud) { -%>
|
|
16
|
+
process.env.FETCH_WITH === constants.FETCH_WITH.REST
|
|
17
|
+
? new RestLayoutService({
|
|
18
|
+
apiHost: environment.sitecoreApiHost,
|
|
19
|
+
apiKey: environment.sitecoreApiKey,
|
|
20
|
+
siteName: environment.sitecoreSiteName,
|
|
21
|
+
configurationName: environment.layoutServiceConfigurationName,
|
|
22
|
+
})
|
|
23
|
+
:
|
|
24
|
+
<% } -%>
|
|
25
|
+
new GraphQLLayoutService({
|
|
26
|
+
clientFactory,
|
|
27
|
+
siteName: environment.sitecoreSiteName,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
return service;
|
|
23
31
|
}
|
|
24
32
|
}
|
|
25
33
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<app-navigation></app-navigation>
|
|
2
2
|
<div class="container">
|
|
3
3
|
<ng-container *ngIf="state === LayoutState.Layout">
|
|
4
|
-
<app-
|
|
4
|
+
<app-scripts></app-scripts>
|
|
5
5
|
<sc-placeholder
|
|
6
6
|
name="<%- helper.getAppPrefix(appPrefix, appName) %>jss-main"
|
|
7
7
|
[rendering]="route"
|
|
@@ -71,9 +71,8 @@ export class LayoutComponent implements OnInit, OnDestroy {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
onPlaceholderLoaded(
|
|
74
|
+
onPlaceholderLoaded(_placeholderName: string) {
|
|
75
75
|
// you may optionally hook to the loaded event for a placeholder,
|
|
76
76
|
// which can be useful for analytics and other DOM-based things that need to know when a placeholder's content is available.
|
|
77
|
-
console.debug(`layout.component.ts: placeholder component fired loaded event for the ${placeholderName} placeholder`);
|
|
78
77
|
}
|
|
79
78
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<div
|
|
1
|
+
<div
|
|
2
|
+
class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom"
|
|
3
|
+
>
|
|
2
4
|
<h5 class="my-0 me-md-auto fw-normal">
|
|
3
5
|
<a routerLink="/" class="text-dark" class="logo"></a>
|
|
4
6
|
</h5>
|
|
@@ -11,11 +13,8 @@
|
|
|
11
13
|
>
|
|
12
14
|
{{ 'Documentation' | translate }}
|
|
13
15
|
</a>
|
|
14
|
-
<a
|
|
15
|
-
{{ '
|
|
16
|
-
</a>
|
|
17
|
-
<a routerLink="/graphql" class="p-2 text-dark">
|
|
18
|
-
{{ 'GraphQL' | translate }}
|
|
16
|
+
<a href="https://github.com/Sitecore/jss" class="p-2 text-dark">
|
|
17
|
+
{{ 'JSS Repository' | translate }}
|
|
19
18
|
</a>
|
|
20
19
|
</nav>
|
|
21
20
|
</div>
|