create-sitecore-jss 22.2.0-canary.4 → 22.2.0-canary.6

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 (103) hide show
  1. package/dist/common/index.js +3 -3
  2. package/dist/common/processes/install.js +1 -1
  3. package/dist/common/processes/transform.js +6 -6
  4. package/dist/common/utils/helpers.js +18 -43
  5. package/dist/initializers/angular-sxp/index.js +1 -1
  6. package/dist/initializers/angular-xmcloud/index.js +1 -1
  7. package/dist/initializers/nextjs/index.js +2 -2
  8. package/dist/initializers/nextjs/remove-dev-dependencies.js +2 -2
  9. package/dist/initializers/nextjs-multisite/index.js +1 -1
  10. package/dist/initializers/nextjs-styleguide/index.js +1 -1
  11. package/dist/initializers/nextjs-styleguide-tracking/index.js +1 -1
  12. package/dist/initializers/nextjs-sxa/index.js +1 -1
  13. package/dist/initializers/nextjs-xmcloud/index.js +1 -1
  14. package/dist/initializers/react/index.js +3 -3
  15. package/dist/templates/angular-xmcloud/angular.json +34 -0
  16. package/dist/templates/angular-xmcloud/package.json +15 -10
  17. package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.html +13 -0
  18. package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.ts +16 -0
  19. package/dist/templates/angular-xmcloud/src/app/components/sxa.component.ts +15 -0
  20. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_component.scss +48 -0
  21. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_container.scss +64 -0
  22. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_fonts.scss +3 -0
  23. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_footer.scss +31 -0
  24. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_header.scss +49 -0
  25. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_navigation.scss +150 -0
  26. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_promo.scss +58 -0
  27. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_rich-text.scss +11 -0
  28. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_variables.scss +10 -0
  29. package/dist/templates/angular-xmcloud/src/assets/styles/basic/main.scss +8 -0
  30. package/dist/templates/angular-xmcloud/src/assets/styles/main.scss +4 -0
  31. package/dist/templates/angular-xmcloud/src/assets/styles/sass/_app.scss +103 -0
  32. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_functions.scss +8 -0
  33. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_mixins.scss +121 -0
  34. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_vars.scss +3 -0
  35. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_colors.scss +283 -0
  36. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_fontSizes.scss +16 -0
  37. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_margins.scss +11 -0
  38. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/_fonts.scss +1 -0
  39. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/index.scss +1 -0
  40. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/index.scss +3 -0
  41. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/_link-button.scss +26 -0
  42. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/index.scss +1 -0
  43. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_inputs.scss +58 -0
  44. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_links.scss +14 -0
  45. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_ui-datepicker.scss +7 -0
  46. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext-files-icons.scss +86 -0
  47. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext.scss +101 -0
  48. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/index.scss +2 -0
  49. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/_typehead.scss +95 -0
  50. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/index.scss +1 -0
  51. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-column-splitter.scss +14 -0
  52. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-container.scss +27 -0
  53. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-image.scss +18 -0
  54. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-navigation.scss +51 -0
  55. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-promo.scss +42 -0
  56. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-richtext-content.scss +19 -0
  57. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_alignment.scss +26 -0
  58. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_boxed.scss +16 -0
  59. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_clearfix.scss +11 -0
  60. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_highlighted.scss +63 -0
  61. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_link-button.scss +16 -0
  62. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_promoted-box.scss +3 -0
  63. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/index.scss +6 -0
  64. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_bordered.scss +24 -0
  65. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_title-row-box.scss +66 -0
  66. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/index.scss +1 -0
  67. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/_image-default-size.scss +6 -0
  68. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/index.scss +1 -0
  69. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-left.scss +3 -0
  70. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-right.scss +3 -0
  71. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/index.scss +17 -0
  72. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_acaindent.scss +5 -0
  73. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_background.scss +27 -0
  74. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/index.scss +1 -0
  75. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_component-link-list.scss +45 -0
  76. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_list-vertical.scss +20 -0
  77. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/index.scss +2 -0
  78. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-fat.scss +58 -0
  79. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-main-horizontal-vertical.scss +176 -0
  80. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-mobile.scss +85 -0
  81. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-sidebar.scss +29 -0
  82. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_sitemap-navigation.scss +20 -0
  83. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/index.scss +5 -0
  84. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_absolute-bottom-link.scss +8 -0
  85. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-hero.scss +40 -0
  86. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-shadow.scss +42 -0
  87. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/index.scss +3 -0
  88. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/_rich-text-lists.scss +63 -0
  89. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/index.scss +1 -0
  90. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_background-colors.scss +14 -0
  91. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_indent.scss +13 -0
  92. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/index.scss +2 -0
  93. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/_component-title.scss +30 -0
  94. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/index.scss +1 -0
  95. package/dist/templates/angular-xmcloud/src/assets/styles/sass/main.scss +4 -0
  96. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/index.scss +6 -0
  97. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/link-list/index.scss +0 -0
  98. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/navigation/index.scss +0 -0
  99. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/page-content/index.scss +0 -0
  100. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/promo/index.scss +0 -0
  101. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/rich-text/index.scss +0 -0
  102. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/title/index.scss +0 -0
  103. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.installPrePushHook = exports.lintFix = exports.installPackages = exports.nextSteps = exports.transform = exports.removeFile = exports.saveConfiguration = exports.getBaseTemplates = exports.getAllTemplates = exports.writePackageJson = exports.openPackageJson = exports.isDevEnvironment = exports.styleguidePrompts = exports.missingAddonMsg = exports.incompatibleAddonsMsg = exports.DEFAULT_APPNAME = exports.clientAppPrompts = void 0;
3
+ exports.installPrePushHook = exports.lintFix = exports.installPackages = exports.nextSteps = exports.transform = exports.removeFile = exports.saveConfiguration = exports.getBaseTemplates = exports.getAllTemplates = exports.writeJsonFile = exports.openJsonFile = exports.isDevEnvironment = exports.styleguidePrompts = exports.missingAddonMsg = exports.incompatibleAddonsMsg = exports.DEFAULT_APPNAME = exports.clientAppPrompts = void 0;
4
4
  var base_1 = require("./prompts/base");
5
5
  Object.defineProperty(exports, "clientAppPrompts", { enumerable: true, get: function () { return base_1.clientAppPrompts; } });
6
6
  Object.defineProperty(exports, "DEFAULT_APPNAME", { enumerable: true, get: function () { return base_1.DEFAULT_APPNAME; } });
@@ -10,8 +10,8 @@ var styleguide_1 = require("./prompts/styleguide");
10
10
  Object.defineProperty(exports, "styleguidePrompts", { enumerable: true, get: function () { return styleguide_1.styleguidePrompts; } });
11
11
  var helpers_1 = require("./utils/helpers");
12
12
  Object.defineProperty(exports, "isDevEnvironment", { enumerable: true, get: function () { return helpers_1.isDevEnvironment; } });
13
- Object.defineProperty(exports, "openPackageJson", { enumerable: true, get: function () { return helpers_1.openPackageJson; } });
14
- Object.defineProperty(exports, "writePackageJson", { enumerable: true, get: function () { return helpers_1.writePackageJson; } });
13
+ Object.defineProperty(exports, "openJsonFile", { enumerable: true, get: function () { return helpers_1.openJsonFile; } });
14
+ Object.defineProperty(exports, "writeJsonFile", { enumerable: true, get: function () { return helpers_1.writeJsonFile; } });
15
15
  Object.defineProperty(exports, "getAllTemplates", { enumerable: true, get: function () { return helpers_1.getAllTemplates; } });
16
16
  Object.defineProperty(exports, "getBaseTemplates", { enumerable: true, get: function () { return helpers_1.getBaseTemplates; } });
17
17
  Object.defineProperty(exports, "saveConfiguration", { enumerable: true, get: function () { return helpers_1.saveConfiguration; } });
@@ -85,5 +85,5 @@ const installPrePushHook = (destination, silent) => __awaiter(void 0, void 0, vo
85
85
  exports.installPrePushHook = installPrePushHook;
86
86
  const getPackageJson = (projectFolder) => {
87
87
  const packagePath = path_1.default.join(projectFolder, 'package.json');
88
- return (0, helpers_1.openPackageJson)(packagePath);
88
+ return (0, helpers_1.openJsonFile)(packagePath);
89
89
  };
@@ -233,13 +233,13 @@ const transform = (templatePath, answers, options = {}) => __awaiter(void 0, voi
233
233
  fs_extra_1.default.copySync(pathToTemplate, pathToNewFile);
234
234
  continue;
235
235
  }
236
- if (file.endsWith('package.json') && fs_extra_1.default.existsSync(pathToNewFile)) {
237
- // we treat package.json a bit differently
238
- // read the current package.json and the template package.json (rendered with ejs)
239
- const currentPkg = (0, helpers_1.openPackageJson)(pathToNewFile);
240
- const templatePkg = JSON.parse(yield (0, ejs_1.renderFile)(path_1.default.resolve(pathToTemplate), ejsData));
236
+ if (file.endsWith('.json') && fs_extra_1.default.existsSync(pathToNewFile)) {
237
+ // we treat a .json a bit differently
238
+ // read the current .json and the template .json (rendered with ejs)
239
+ const currentJson = (0, helpers_1.openJsonFile)(pathToNewFile);
240
+ const templateJson = JSON.parse(yield (0, ejs_1.renderFile)(path_1.default.resolve(pathToTemplate), ejsData));
241
241
  // merge them and set the result to str which will then go through diff
242
- const merged = (0, exports.merge)(currentPkg, templatePkg);
242
+ const merged = (0, exports.merge)(currentJson, templateJson);
243
243
  str = JSON.stringify(merged, null, 2);
244
244
  }
245
245
  if (file.endsWith('.env') && fs_extra_1.default.existsSync(pathToNewFile)) {
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -35,10 +12,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
13
  };
37
14
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.removeFile = exports.writeFileToPath = exports.getAppPrefix = exports.getBaseTemplates = exports.getAllTemplates = exports.sortKeys = exports.saveConfiguration = exports.writePackageJson = exports.openPackageJson = exports.getPascalCaseName = exports.isDevEnvironment = void 0;
15
+ exports.removeFile = exports.writeFileToPath = exports.getAppPrefix = exports.getBaseTemplates = exports.getAllTemplates = exports.sortKeys = exports.saveConfiguration = exports.writeJsonFile = exports.openJsonFile = exports.getPascalCaseName = exports.isDevEnvironment = void 0;
39
16
  const chalk_1 = __importDefault(require("chalk"));
40
17
  const fs_1 = __importDefault(require("fs"));
41
- const path_1 = __importStar(require("path"));
18
+ const path_1 = __importDefault(require("path"));
42
19
  const InitializerFactory_1 = require("../../InitializerFactory");
43
20
  /**
44
21
  * Determines whether you are in a dev environment.
@@ -61,46 +38,44 @@ const getPascalCaseName = (name) => {
61
38
  };
62
39
  exports.getPascalCaseName = getPascalCaseName;
63
40
  /**
64
- * Provides `package.json` data
65
- * @param {string} [pkgPath] path to `package.json`. Default is './package.json'.
66
- * @returns `package.json` data
41
+ * Provides json data from a file
42
+ * @param {string} jsonFilePath path to the .json file.
43
+ * @returns json data
67
44
  */
68
- const openPackageJson = (pkgPath) => {
69
- const filePath = path_1.default.resolve(pkgPath !== null && pkgPath !== void 0 ? pkgPath : `.${path_1.sep}package.json`);
45
+ const openJsonFile = (jsonFilePath) => {
70
46
  try {
71
- const data = fs_1.default.readFileSync(filePath, 'utf8');
47
+ const data = fs_1.default.readFileSync(jsonFilePath, 'utf8');
72
48
  return data ? JSON.parse(data) : undefined;
73
49
  }
74
50
  catch (error) {
75
- console.log(chalk_1.default.red(`The following error occurred while trying to read ${filePath}:`));
51
+ console.log(chalk_1.default.red(`The following error occurred while trying to read ${jsonFilePath}:`));
76
52
  console.log(chalk_1.default.red(error));
77
53
  }
78
54
  };
79
- exports.openPackageJson = openPackageJson;
55
+ exports.openJsonFile = openJsonFile;
80
56
  /**
81
- * Creates `package.json` file and inserts provided data
82
- * @param {Object} data data to be written into package.json
83
- * @param {string} [pkgPath] a path to a file. Default is './package.json'.
57
+ * Creates a .json file and inserts provided data
58
+ * @param {Object} data data to be written into the .json file
59
+ * @param {string} jsonFilePath a path to a file.
84
60
  */
85
- const writePackageJson = (data, pkgPath) => {
86
- const filePath = path_1.default.resolve(pkgPath !== null && pkgPath !== void 0 ? pkgPath : `.${path_1.sep}package.json`);
61
+ const writeJsonFile = (data, jsonFilePath) => {
87
62
  try {
88
- fs_1.default.writeFileSync(filePath, JSON.stringify(data, null, 2), { encoding: 'utf8' });
63
+ fs_1.default.writeFileSync(jsonFilePath, JSON.stringify(data, null, 2), { encoding: 'utf8' });
89
64
  }
90
65
  catch (error) {
91
- console.log(chalk_1.default.red(`The following error occurred while trying to write ${filePath}:`));
66
+ console.log(chalk_1.default.red(`The following error occurred while trying to write ${jsonFilePath}:`));
92
67
  console.log(chalk_1.default.red(error));
93
68
  }
94
69
  };
95
- exports.writePackageJson = writePackageJson;
70
+ exports.writeJsonFile = writeJsonFile;
96
71
  /**
97
72
  * Save configuration params to the package.json
98
73
  * @param {string[]} templates templates applied to the sample
99
74
  * @param {string} [pkgPath] path to the package.json
100
75
  */
101
76
  const saveConfiguration = (templates, pkgPath) => {
102
- const pkg = (0, exports.openPackageJson)(pkgPath);
103
- (0, exports.writePackageJson)(Object.assign(Object.assign({}, pkg), { config: Object.assign(Object.assign({}, pkg.config), { templates }) }), pkgPath);
77
+ const pkg = (0, exports.openJsonFile)(pkgPath);
78
+ (0, exports.writeJsonFile)(Object.assign(Object.assign({}, pkg), { config: Object.assign(Object.assign({}, pkg.config), { templates }) }), pkgPath);
104
79
  };
105
80
  exports.saveConfiguration = saveConfiguration;
106
81
  const sortKeys = (obj) => {
@@ -41,7 +41,7 @@ class AngularSxpInitializer {
41
41
  init(args) {
42
42
  var _a, _b;
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
44
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
45
45
  const mergedArgs = Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false });
46
46
  const templatePath = path_1.default.resolve(__dirname, '../../templates/angular-sxp');
47
47
  yield (0, common_1.transform)(templatePath, mergedArgs);
@@ -41,7 +41,7 @@ class AngularXmCloudInitializer {
41
41
  init(args) {
42
42
  var _a, _b;
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
44
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
45
45
  const mergedArgs = Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false });
46
46
  const templatePath = path_1.default.resolve(__dirname, '../../templates/angular-xmcloud');
47
47
  yield (0, common_1.transform)(templatePath, mergedArgs);
@@ -105,9 +105,9 @@ class NextjsInitializer {
105
105
  }
106
106
  if (!addInitializers.includes('nextjs-styleguide') &&
107
107
  !args.templates.includes('nextjs-styleguide')) {
108
- const pkg = (0, common_1.openPackageJson)(pkgPath);
108
+ const pkg = (0, common_1.openJsonFile)(pkgPath);
109
109
  pkg.scripts.bootstrap = pkg.scripts.bootstrap.replace(' && graphql-let', '');
110
- (0, common_1.writePackageJson)(pkg, pkgPath);
110
+ (0, common_1.writeJsonFile)(pkg, pkgPath);
111
111
  }
112
112
  const response = {
113
113
  nextSteps: [`* Connect to Sitecore with ${chalk_1.default.green('jss setup')} (optional)`],
@@ -10,10 +10,10 @@ const common_1 = require("../../common");
10
10
  const removeDevDependencies = (projectPath) => {
11
11
  // remove `next-transpile-modules` dependency
12
12
  const packagePath = path_1.default.join(projectPath, 'package.json');
13
- const pkg = (0, common_1.openPackageJson)(packagePath);
13
+ const pkg = (0, common_1.openJsonFile)(packagePath);
14
14
  if (pkg === null || pkg === void 0 ? void 0 : pkg.devDependencies['next-transpile-modules']) {
15
15
  delete pkg.devDependencies['next-transpile-modules'];
16
- (0, common_1.writePackageJson)(pkg, packagePath);
16
+ (0, common_1.writeJsonFile)(pkg, packagePath);
17
17
  }
18
18
  // remove monorepo next.config.js plugin
19
19
  const monorepoPlugin = path_1.default.join(projectPath, 'src/lib/next-config/plugins/monorepo.js');
@@ -41,7 +41,7 @@ class NextjsMultisiteInitializer {
41
41
  init(args) {
42
42
  var _a, _b;
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
44
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
45
45
  const mergedArgs = Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false });
46
46
  const templatePath = path_1.default.resolve(__dirname, '../../templates/nextjs-multisite');
47
47
  yield (0, common_1.transform)(templatePath, mergedArgs);
@@ -46,7 +46,7 @@ class NextjsStyleguideInitializer {
46
46
  init(args) {
47
47
  var _a, _b;
48
48
  return __awaiter(this, void 0, void 0, function* () {
49
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
49
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
50
50
  const answers = yield inquirer_1.default.prompt(common_1.styleguidePrompts, args);
51
51
  const mergedArgs = Object.assign(Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false }), answers);
52
52
  const templatePath = path_1.default.resolve(__dirname, '../../templates/nextjs-styleguide');
@@ -41,7 +41,7 @@ class NextjsStyleguideInitializer {
41
41
  init(args) {
42
42
  var _a, _b, _c, _d, _e, _f;
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
44
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
45
45
  const mergedArgs = Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false });
46
46
  const templatePath = path_1.default.resolve(__dirname, '../../templates/nextjs-styleguide-tracking');
47
47
  yield (0, common_1.transform)(templatePath, mergedArgs);
@@ -41,7 +41,7 @@ class NextjsSxaInitializer {
41
41
  init(args) {
42
42
  var _a, _b, _c, _d;
43
43
  return __awaiter(this, void 0, void 0, function* () {
44
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
44
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
45
45
  // TODO: prompts for SXA
46
46
  // const answers = await prompt<StyleguideAnswer>(styleguidePrompts, args);
47
47
  const mergedArgs = Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false });
@@ -42,7 +42,7 @@ class NextjsXMCloudInitializer {
42
42
  init(args) {
43
43
  var _a, _b, _c, _d;
44
44
  return __awaiter(this, void 0, void 0, function* () {
45
- const pkg = (0, common_1.openPackageJson)(`${args.destination}${path_1.sep}package.json`);
45
+ const pkg = (0, common_1.openJsonFile)(`${args.destination}${path_1.sep}package.json`);
46
46
  const mergedArgs = Object.assign(Object.assign({}, args), { appName: args.appName || ((_a = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _a === void 0 ? void 0 : _a.appName) || common_1.DEFAULT_APPNAME, appPrefix: args.appPrefix || ((_b = pkg === null || pkg === void 0 ? void 0 : pkg.config) === null || _b === void 0 ? void 0 : _b.prefix) || false });
47
47
  const templatePath = path_1.default.resolve(__dirname, '../../templates/nextjs-xmcloud');
48
48
  yield (0, common_1.transform)(templatePath, mergedArgs);
@@ -52,7 +52,7 @@ class ReactInitializer {
52
52
  yield (0, common_1.transform)(templatePath, mergedArgs);
53
53
  const isDev = (0, common_1.isDevEnvironment)(args.destination);
54
54
  const pkgPath = path_1.default.resolve(`${args.destination}${path_1.sep}package.json`);
55
- const pkg = (0, common_1.openPackageJson)(pkgPath);
55
+ const pkg = (0, common_1.openJsonFile)(pkgPath);
56
56
  if (isDev) {
57
57
  Object.entries(pkg.scripts).forEach(([key, value]) => {
58
58
  // Can't rewire `eject` script
@@ -61,14 +61,14 @@ class ReactInitializer {
61
61
  // It's required to start each command using `react-app-rewired`, to solve duplicate `react` issue
62
62
  pkg.scripts[key] = value.replace('react-scripts', 'react-app-rewired');
63
63
  });
64
- (0, common_1.writePackageJson)(pkg, pkgPath);
64
+ (0, common_1.writeJsonFile)(pkg, pkgPath);
65
65
  }
66
66
  else {
67
67
  // Don't need to rewire anything if we are not in the dev env
68
68
  delete pkg.devDependencies['react-app-rewired'];
69
69
  // Remove webpack overrides
70
70
  (0, common_1.removeFile)(path_1.default.resolve(`${args.destination}${path_1.sep}config-overrides.js`));
71
- (0, common_1.writePackageJson)(pkg, pkgPath);
71
+ (0, common_1.writeJsonFile)(pkg, pkgPath);
72
72
  }
73
73
  const response = {
74
74
  nextSteps: [`* Connect to Sitecore with ${chalk_1.default.green('jss setup')} (optional)`],
@@ -0,0 +1,34 @@
1
+ {
2
+ "projects": {
3
+ "<%- appName %>": {
4
+ "architect": {
5
+ "build": {
6
+ "options": {
7
+ "styles": [
8
+ "node_modules/bootstrap/dist/css/bootstrap.min.css",
9
+ "src/styles.css",
10
+ "src/assets/styles/main.scss"
11
+ ],
12
+ "stylePreprocessorOptions": {
13
+ "includePaths": ["src/assets/styles", "node_modules"]
14
+ }
15
+ }
16
+ },
17
+ "test": {
18
+ "options": {
19
+ "styles": ["src/styles.css", "src/assets/styles/main.scss"],
20
+ "stylePreprocessorOptions": {
21
+ "includePaths": ["src/assets/styles", "node_modules"]
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ },
28
+ "schematics": {
29
+ "@schematics/angular:component": {
30
+ "prefix": "app",
31
+ "style": "scss"
32
+ }
33
+ }
34
+ }
@@ -1,10 +1,15 @@
1
- {
2
- "config": {
3
- "sitecoreDistPath": "/dist"
4
- },
5
- "scripts": {
6
- "postbuild:server": "npm-run-all --serial prepare:build prepare:proxy-build",
7
- "prepare:build": "move-cli ./dist/main.js ./dist/server.bundle.js",
8
- "prepare:proxy-build": "ts-node --project src/tsconfig.webpack-server.json ./scripts/proxy-build.ts"
9
- }
10
- }
1
+ {
2
+ "config": {
3
+ "sitecoreDistPath": "/dist"
4
+ },
5
+ "scripts": {
6
+ "postbuild:server": "npm-run-all --serial prepare:build prepare:proxy-build",
7
+ "prepare:build": "move-cli ./dist/main.js ./dist/server.bundle.js",
8
+ "prepare:proxy-build": "ts-node --project src/tsconfig.webpack-server.json ./scripts/proxy-build.ts"
9
+ },
10
+ "dependencies": {
11
+ "font-awesome": "^4.7.0",
12
+ "sass": "^1.52.3",
13
+ "sass-alias": "^1.0.5"
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ <div
2
+ class="component rich-text {{ styles }}"
3
+ [attr.id]="id"
4
+ >
5
+ <div class="component-content">
6
+ <ng-container *ngIf="text; else emptyHint">
7
+ <div *scRichText="text"></div>
8
+ </ng-container>
9
+ <ng-template #emptyHint>
10
+ <span class="is-empty-hint">Rich text</span>
11
+ </ng-template>
12
+ </div>
13
+ </div>
@@ -0,0 +1,16 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { Field } from '@sitecore-jss/sitecore-jss-angular';
3
+ import { SxaComponent } from '../sxa.component';
4
+
5
+ @Component({
6
+ selector: 'app-richtext',
7
+ templateUrl: './richtext.component.html',
8
+ })
9
+ export class RichTextComponent extends SxaComponent implements OnInit {
10
+ text?: Field<string>;
11
+
12
+ ngOnInit() {
13
+ super.ngOnInit();
14
+ this.text = this.rendering.fields?.Text as Field<string>;
15
+ }
16
+ }
@@ -0,0 +1,15 @@
1
+ import { OnInit, Input, Directive } from '@angular/core';
2
+ import { ComponentRendering } from '@sitecore-jss/sitecore-jss-angular';
3
+
4
+ @Directive()
5
+ export abstract class SxaComponent implements OnInit {
6
+ @Input() rendering: ComponentRendering;
7
+
8
+ id?: string;
9
+ styles?: string;
10
+
11
+ ngOnInit() {
12
+ this.id = this.rendering.params?.RenderingIdentifier;
13
+ this.styles = this.rendering.params?.styles;
14
+ }
15
+ }
@@ -0,0 +1,48 @@
1
+ .component-content {
2
+ @include respond-to(mobile-large) {
3
+ .row {
4
+ padding: 0;
5
+ margin: 0;
6
+ }
7
+ }
8
+ }
9
+ @include respond-to(mobile-large) {
10
+ .row {
11
+ margin: 0;
12
+ padding: 0;
13
+ > * {
14
+ padding: 0;
15
+ margin: 0;
16
+ }
17
+ }
18
+ }
19
+
20
+ .hero-banner {
21
+ .component-content {
22
+ background-position: center;
23
+ background-repeat: no-repeat;
24
+ background-size: cover;
25
+ height: 800px;
26
+
27
+ @include respond-to(mobile-large) {
28
+ height: 300px;
29
+ }
30
+ }
31
+ .sc-image-wrapper {
32
+ opacity: 0;
33
+ }
34
+ &.scEnabledChrome {
35
+ &.hero-banner-empty {
36
+ .sc-image-wrapper {
37
+ display: block;
38
+ width: 100%;
39
+
40
+ .scEmptyImage {
41
+ max-height: 800px;
42
+ max-width: 100%;
43
+ width: 100%;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,64 @@
1
+ @import "sass/abstracts/mixins";
2
+ @import "variables";
3
+
4
+ body {
5
+ font-family: Roboto;
6
+ color: $main-color;
7
+ }
8
+
9
+
10
+ @media (min-width: 1400px) {
11
+ .container {
12
+ max-width: 1250px;
13
+ }
14
+ }
15
+
16
+ main {
17
+ .main-header {
18
+ margin-top: 55px;
19
+ margin-bottom: 30px;
20
+
21
+ @include respond-to(mobile-large) {
22
+ margin-bottom: 0;
23
+ }
24
+
25
+ h4 {
26
+ font-size: $text-size-50;
27
+ font-weight: 500;
28
+ line-height: 70px;
29
+ }
30
+ }
31
+
32
+ .main-news-header {
33
+ margin-top: 60px;
34
+
35
+ h2 {
36
+ font-size: $text-size-36;
37
+ line-height: 43px;
38
+ }
39
+ }
40
+
41
+ @include respond-to(mobile-large) {
42
+ padding-top: 0;
43
+ margin-bottom: 0;
44
+
45
+ .main-header {
46
+ margin-top: 10px;
47
+
48
+ h4 {
49
+ font-size: $text-size-24;
50
+ line-height: 32px;
51
+ }
52
+ }
53
+
54
+ .main-news-header {
55
+ padding-bottom: 35px;
56
+
57
+ h2 {
58
+ margin-top: 0;
59
+ font-size: $text-size-18;
60
+ line-height: 22px;
61
+ }
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,3 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');
2
+ /* FontAwesome */
3
+ @import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css');
@@ -0,0 +1,31 @@
1
+ @import "sass/abstracts/mixins";
2
+ @import "variables";
3
+
4
+ footer {
5
+ @include respond-to(mobile-large) {
6
+ padding-top: 0;
7
+ }
8
+ .container-dark-background {
9
+ background-color: #262626;
10
+ }
11
+
12
+ .contacts {
13
+ font-size: $text-size-14;
14
+
15
+ a {
16
+ color: $text-white;
17
+ }
18
+
19
+ p, span {
20
+ color: $text-white;
21
+ }
22
+ }
23
+
24
+ .indent-inner {
25
+ padding: 65px;
26
+
27
+ @include respond-to(mobile-large) {
28
+ padding: 40px 0;
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,49 @@
1
+ @import "sass/abstracts/vars/colors";
2
+ @import "sass/abstracts/mixins";
3
+ @import "variables";
4
+
5
+ .prod-mode {
6
+ #header {
7
+ display: flex;
8
+
9
+ @include respond-to(mobile-large) {
10
+ padding-bottom: 0;
11
+ flex-direction: column-reverse;
12
+ }
13
+ }
14
+ }
15
+
16
+ header {
17
+ #header {
18
+ .bs-title {
19
+ padding-left: 50px;
20
+
21
+ h1 {
22
+ font-size: $text-size-24;
23
+ font-weight: 600;
24
+ line-height: 18px;
25
+ padding-top: 40px;
26
+ margin: 0;
27
+ }
28
+ }
29
+
30
+ @include respond-to(mobile-large) {
31
+ padding-bottom: 0;
32
+ padding-top: 0;
33
+ flex-direction: column-reverse;
34
+
35
+ .bs-title {
36
+ padding-left: 0;
37
+ text-align: center;
38
+ margin-top: -5px;
39
+
40
+ h1 {
41
+ font-weight: 500;
42
+ line-height: 29px;
43
+ padding-top: 0;
44
+ margin-bottom: 10px;
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }