create-sitecore-jss 22.2.1 → 22.3.0-canary.10

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 (622) hide show
  1. package/LICENSE.MD +202 -202
  2. package/README.md +10 -10
  3. package/dist/bin.js +35 -19
  4. package/dist/common/index.js +5 -3
  5. package/dist/common/processes/install.js +9 -2
  6. package/dist/common/processes/next.js +6 -3
  7. package/dist/common/processes/transform.js +18 -13
  8. package/dist/common/prompts/base.js +0 -25
  9. package/dist/common/prompts/proxy.js +35 -0
  10. package/dist/common/prompts/sxp.js +34 -0
  11. package/dist/common/utils/helpers.js +29 -19
  12. package/dist/init-runner.js +16 -11
  13. package/dist/initializers/angular/index.js +13 -0
  14. package/dist/initializers/angular/prompts.js +22 -1
  15. package/dist/initializers/angular-sxp/index.js +62 -0
  16. package/dist/initializers/angular-xmcloud/index.js +80 -0
  17. package/dist/initializers/nextjs/index.js +2 -2
  18. package/dist/initializers/nextjs/prompts.js +2 -0
  19. package/dist/initializers/nextjs/remove-dev-dependencies.js +2 -2
  20. package/dist/initializers/nextjs-multisite/index.js +1 -1
  21. package/dist/initializers/nextjs-styleguide/index.js +1 -1
  22. package/dist/initializers/nextjs-styleguide-tracking/index.js +1 -1
  23. package/dist/initializers/nextjs-sxa/index.js +1 -1
  24. package/dist/initializers/nextjs-xmcloud/index.js +1 -1
  25. package/dist/initializers/node-xmcloud-proxy/index.js +33 -0
  26. package/dist/initializers/react/index.js +3 -3
  27. package/dist/initializers/react/prompts.js +1 -1
  28. package/dist/initializers/react-native/prompts.js +1 -0
  29. package/dist/initializers/vue/prompts.js +1 -1
  30. package/dist/templates/angular/.env +4 -3
  31. package/dist/templates/angular/.eslintignore +3 -3
  32. package/dist/templates/angular/.eslintrc +66 -65
  33. package/dist/templates/angular/LICENSE.txt +202 -202
  34. package/dist/templates/angular/README.md +13 -53
  35. package/dist/templates/angular/angular.json +172 -177
  36. package/dist/templates/angular/e2e/tsconfig.e2e.json +15 -15
  37. package/dist/templates/angular/gitignore +52 -47
  38. package/dist/templates/angular/package.json +115 -127
  39. package/dist/templates/angular/proxy.conf.js +5 -23
  40. package/dist/templates/angular/scripts/bootstrap.ts +5 -24
  41. package/dist/templates/angular/scripts/config/index.ts +28 -0
  42. package/dist/templates/angular/scripts/config/plugins/computed.ts +21 -0
  43. package/dist/templates/angular/scripts/config/plugins/fallback.ts +22 -0
  44. package/dist/templates/angular/scripts/config/plugins/package-json.ts +22 -0
  45. package/dist/templates/angular/scripts/config/plugins/scjssconfig.ts +29 -0
  46. package/dist/templates/angular/scripts/generate-component-factory/index.ts +45 -0
  47. package/dist/templates/angular/scripts/generate-component-factory/plugins/component-factory.ts +147 -0
  48. package/dist/templates/angular/scripts/generate-component-factory/plugins/components.ts +19 -0
  49. package/dist/templates/angular/scripts/generate-component-factory/plugins/packages.ts +29 -0
  50. package/dist/templates/angular/scripts/generate-component-factory/template.ts +46 -0
  51. package/dist/templates/angular/scripts/generate-config.ts +71 -72
  52. package/dist/templates/angular/scripts/generate-plugins.ts +33 -0
  53. package/dist/templates/angular/scripts/temp/gitignore +2 -0
  54. package/dist/templates/angular/scripts/update-graphql-fragment-data.ts +21 -28
  55. package/dist/templates/angular/server.bundle.ts +3 -5
  56. package/dist/templates/angular/server.exports.ts +13 -0
  57. package/dist/templates/angular/src/app/JssState.ts +2 -9
  58. package/dist/templates/angular/src/app/app.component.html +1 -1
  59. package/dist/templates/angular/src/app/app.module.ts +5 -6
  60. package/dist/templates/angular/src/app/app.server.module.ts +9 -6
  61. package/dist/templates/angular/src/app/components/app-components.shared.module.ts +4 -19
  62. package/dist/templates/angular/src/app/components/content-block/content-block.component.html +4 -4
  63. package/dist/templates/angular/src/app/components/gitignore +7 -7
  64. package/dist/templates/angular/src/app/i18n/jss-translation-client-loader.service.ts +15 -7
  65. package/dist/templates/angular/src/app/i18n/jss-translation-server-loader.service.ts +14 -2
  66. package/dist/templates/angular/src/app/jss-context.server-side.service.ts +4 -4
  67. package/dist/templates/angular/src/app/jss-context.service.ts +14 -11
  68. package/dist/templates/angular/src/app/jss-graphql.service.ts +7 -7
  69. package/dist/templates/angular/src/app/layout/jss-layout.service.ts +2 -2
  70. package/dist/templates/angular/src/app/lib/config.ts +16 -0
  71. package/dist/templates/angular/src/app/lib/dictionary-service-factory.ts +24 -13
  72. package/dist/templates/angular/src/app/lib/graphql-client-factory/config.ts +21 -0
  73. package/dist/templates/angular/src/app/lib/graphql-client-factory/index.ts +16 -0
  74. package/dist/templates/angular/src/app/lib/layout-service-factory.ts +20 -12
  75. package/dist/templates/angular/src/app/routing/layout/layout.component.html +17 -17
  76. package/dist/templates/angular/src/app/routing/layout/layout.component.ts +11 -11
  77. package/dist/templates/angular/src/app/routing/navigation/navigation.component.html +20 -21
  78. package/dist/templates/angular/src/app/routing/navigation/navigation.component.ts +1 -2
  79. package/dist/templates/angular/src/app/routing/not-found/not-found.component.html +7 -7
  80. package/dist/templates/angular/src/app/routing/routing.module.ts +14 -21
  81. package/dist/templates/angular/src/app/routing/scripts/scripts.component.html +1 -0
  82. package/dist/templates/angular/src/app/routing/scripts/scripts.component.ts +7 -0
  83. package/dist/templates/angular/src/app/routing/scripts/scripts.module.ts +8 -0
  84. package/dist/templates/angular/src/app/routing/server-error/server-error.component.html +3 -3
  85. package/dist/templates/angular/src/assets/images/sc_logo.svg +52 -52
  86. package/dist/templates/angular/src/environments/gitignore +2 -1
  87. package/dist/templates/angular/src/graphql-fragment-types.ts +0 -95
  88. package/dist/templates/angular/src/index.html +12 -12
  89. package/dist/templates/angular/src/styles.css +34 -34
  90. package/dist/templates/angular/src/tsconfig.app.json +22 -22
  91. package/dist/templates/angular/src/tsconfig.server.json +21 -21
  92. package/dist/templates/angular/src/tsconfig.spec.json +24 -24
  93. package/dist/templates/angular/src/tsconfig.webpack-server.json +6 -6
  94. package/dist/templates/angular/tsconfig.json +36 -31
  95. package/dist/templates/angular-sxp/.env +2 -0
  96. package/dist/templates/{angular → angular-sxp}/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +9 -9
  97. package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item1/en.yml +6 -6
  98. package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item2/en.yml +6 -6
  99. package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item1/en.yml +6 -6
  100. package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item2/en.yml +6 -6
  101. package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item1/en.yml +6 -6
  102. package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item2/en.yml +6 -6
  103. package/dist/templates/{angular → angular-sxp}/data/dictionary/en.yml +4 -4
  104. package/dist/templates/{angular → angular-sxp}/data/dictionary/{{language}}.yml +4 -4
  105. package/dist/templates/{angular → angular-sxp}/data/routes/en.yml +61 -61
  106. package/dist/templates/{angular → angular-sxp}/data/routes/graphql/en.yml +27 -27
  107. package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-1/en.yml +9 -9
  108. package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-2/en.yml +9 -9
  109. package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/custom-route-type/en.yml +12 -12
  110. package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/en.yml +271 -271
  111. package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/{{language}}.yml +25 -25
  112. package/dist/templates/{angular → angular-sxp}/data/routes/{{language}}.yml +4 -4
  113. package/dist/templates/angular-sxp/package.json +12 -0
  114. package/dist/templates/angular-sxp/proxy.conf.js +43 -0
  115. package/dist/templates/angular-sxp/scripts/config/plugins/disconnected.ts +29 -0
  116. package/dist/templates/{angular → angular-sxp}/sitecore/config/{{appName}}.config +90 -90
  117. package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.graphql +71 -71
  118. package/dist/templates/{angular → angular-sxp}/sitecore/gitignore +2 -2
  119. package/dist/templates/angular-sxp/src/app/components/app-components.shared.module.ts +35 -0
  120. package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.graphql +69 -69
  121. package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.html +55 -55
  122. package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.html +47 -47
  123. package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.html +22 -22
  124. package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.ts +1 -1
  125. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.html +5 -5
  126. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.html +19 -19
  127. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.html +14 -14
  128. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.html +19 -19
  129. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.html +11 -11
  130. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.html +26 -26
  131. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.html +4 -4
  132. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.html +27 -27
  133. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.html +10 -10
  134. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.html +30 -30
  135. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.html +17 -17
  136. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.html +44 -44
  137. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.html +11 -11
  138. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.html +11 -11
  139. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.html +13 -13
  140. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.html +20 -20
  141. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.html +52 -52
  142. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.html +37 -37
  143. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.html +12 -12
  144. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.html +15 -15
  145. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.html +8 -8
  146. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.html +7 -7
  147. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.html +3 -3
  148. package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.html +175 -175
  149. package/dist/templates/{angular → angular-sxp}/src/app/jss-data-fetcher.service.ts +3 -1
  150. package/dist/templates/angular-sxp/src/app/routing/navigation/navigation.component.html +23 -0
  151. package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.component.html +3 -0
  152. package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.module.ts +9 -0
  153. package/dist/templates/{angular/src/app/routing → angular-sxp/src/app/routing/scripts}/visitor-identification/visitor-identification.component.ts +9 -3
  154. package/dist/templates/angular-sxp/src/graphql-fragment-types.ts +219 -0
  155. package/dist/templates/angular-xmcloud/.env +14 -0
  156. package/dist/templates/angular-xmcloud/README.md +55 -0
  157. package/dist/templates/angular-xmcloud/angular.json +33 -0
  158. package/dist/templates/angular-xmcloud/package.json +17 -0
  159. package/dist/templates/angular-xmcloud/scripts/bootstrap.ts +28 -0
  160. package/dist/templates/angular-xmcloud/scripts/config/plugins/xmcloud.ts +39 -0
  161. package/dist/templates/angular-xmcloud/scripts/generate-component-factory/plugins/packages.ts +34 -0
  162. package/dist/templates/angular-xmcloud/scripts/generate-component-factory/template.ts +57 -0
  163. package/dist/templates/angular-xmcloud/scripts/generate-metadata.ts +25 -0
  164. package/dist/templates/angular-xmcloud/scripts/proxy-build.ts +15 -0
  165. package/dist/templates/angular-xmcloud/server.exports.ts +25 -0
  166. package/dist/templates/angular-xmcloud/src/app/components/app-components.shared.module.ts +21 -0
  167. package/dist/templates/angular-xmcloud/src/app/components/column-splitter/column-splitter.component.html +5 -0
  168. package/dist/templates/angular-xmcloud/src/app/components/column-splitter/column-splitter.component.ts +40 -0
  169. package/dist/templates/angular-xmcloud/src/app/components/container/container.component.html +14 -0
  170. package/dist/templates/angular-xmcloud/src/app/components/container/container.component.ts +30 -0
  171. package/dist/templates/angular-xmcloud/src/app/components/image/image.component.html +36 -0
  172. package/dist/templates/angular-xmcloud/src/app/components/image/image.component.ts +67 -0
  173. package/dist/templates/angular-xmcloud/src/app/components/link-list/link-list.component.html +15 -0
  174. package/dist/templates/angular-xmcloud/src/app/components/link-list/link-list.component.ts +41 -0
  175. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation-item.component.html +23 -0
  176. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation-item.component.ts +65 -0
  177. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation.component.html +21 -0
  178. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation.component.ts +49 -0
  179. package/dist/templates/angular-xmcloud/src/app/components/page-content/page-content.component.html +5 -0
  180. package/dist/templates/angular-xmcloud/src/app/components/page-content/page-content.component.ts +39 -0
  181. package/dist/templates/angular-xmcloud/src/app/components/partial-design-dynamic-placeholder/partial-design-dynamic-placeholder.component.html +1 -0
  182. package/dist/templates/angular-xmcloud/src/app/components/partial-design-dynamic-placeholder/partial-design-dynamic-placeholder.component.ts +15 -0
  183. package/dist/templates/angular-xmcloud/src/app/components/promo/promo.component.html +21 -0
  184. package/dist/templates/angular-xmcloud/src/app/components/promo/promo.component.ts +13 -0
  185. package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.html +8 -0
  186. package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.ts +21 -0
  187. package/dist/templates/angular-xmcloud/src/app/components/row-splitter/row-splitter.component.html +11 -0
  188. package/dist/templates/angular-xmcloud/src/app/components/row-splitter/row-splitter.component.ts +35 -0
  189. package/dist/templates/angular-xmcloud/src/app/components/sxa.component.ts +15 -0
  190. package/dist/templates/angular-xmcloud/src/app/components/title/title.component.html +10 -0
  191. package/dist/templates/angular-xmcloud/src/app/components/title/title.component.ts +56 -0
  192. package/dist/templates/angular-xmcloud/src/app/jss-link.service.ts +55 -0
  193. package/dist/templates/angular-xmcloud/src/app/lib/config.ts +17 -0
  194. package/dist/templates/angular-xmcloud/src/app/lib/graphql-client-factory/config.ts +57 -0
  195. package/dist/templates/angular-xmcloud/src/app/routing/layout/layout.component.html +38 -0
  196. package/dist/templates/angular-xmcloud/src/app/routing/layout/layout.component.ts +104 -0
  197. package/dist/templates/angular-xmcloud/src/app/routing/scripts/cdp-page-view.component.ts +77 -0
  198. package/dist/templates/angular-xmcloud/src/app/routing/scripts/cloud-sdk-init.component.ts +48 -0
  199. package/dist/templates/angular-xmcloud/src/app/routing/scripts/scripts.component.html +5 -0
  200. package/dist/templates/angular-xmcloud/src/app/routing/scripts/scripts.module.ts +12 -0
  201. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_component.scss +48 -0
  202. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_container.scss +64 -0
  203. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_fonts.scss +3 -0
  204. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_footer.scss +31 -0
  205. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_header.scss +51 -0
  206. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_navigation.scss +150 -0
  207. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_promo.scss +58 -0
  208. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_rich-text.scss +11 -0
  209. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_variables.scss +10 -0
  210. package/dist/templates/angular-xmcloud/src/assets/styles/basic/main.scss +8 -0
  211. package/dist/templates/angular-xmcloud/src/assets/styles/main.scss +14 -0
  212. package/dist/templates/angular-xmcloud/src/assets/styles/sass/_app.scss +103 -0
  213. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_functions.scss +8 -0
  214. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_mixins.scss +121 -0
  215. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_vars.scss +3 -0
  216. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_colors.scss +283 -0
  217. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_fontSizes.scss +16 -0
  218. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_margins.scss +11 -0
  219. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/_fonts.scss +1 -0
  220. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/index.scss +1 -0
  221. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/index.scss +3 -0
  222. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/_link-button.scss +26 -0
  223. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/index.scss +1 -0
  224. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_inputs.scss +58 -0
  225. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_links.scss +14 -0
  226. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_ui-datepicker.scss +7 -0
  227. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext-files-icons.scss +86 -0
  228. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext.scss +101 -0
  229. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/index.scss +2 -0
  230. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/_typehead.scss +95 -0
  231. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/index.scss +1 -0
  232. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-column-splitter.scss +14 -0
  233. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-container.scss +27 -0
  234. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-image.scss +18 -0
  235. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-navigation.scss +51 -0
  236. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-promo.scss +42 -0
  237. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-richtext-content.scss +19 -0
  238. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_alignment.scss +26 -0
  239. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_boxed.scss +16 -0
  240. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_clearfix.scss +11 -0
  241. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_highlighted.scss +63 -0
  242. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_link-button.scss +16 -0
  243. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_promoted-box.scss +3 -0
  244. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/index.scss +6 -0
  245. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_bordered.scss +24 -0
  246. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_title-row-box.scss +66 -0
  247. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/index.scss +1 -0
  248. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/_image-default-size.scss +6 -0
  249. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/index.scss +1 -0
  250. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-left.scss +3 -0
  251. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-right.scss +3 -0
  252. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/index.scss +17 -0
  253. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_acaindent.scss +5 -0
  254. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_background.scss +27 -0
  255. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/index.scss +1 -0
  256. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_component-link-list.scss +45 -0
  257. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_list-vertical.scss +20 -0
  258. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/index.scss +2 -0
  259. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-fat.scss +58 -0
  260. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-main-horizontal-vertical.scss +176 -0
  261. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-mobile.scss +85 -0
  262. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-sidebar.scss +29 -0
  263. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_sitemap-navigation.scss +20 -0
  264. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/index.scss +5 -0
  265. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_absolute-bottom-link.scss +8 -0
  266. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-hero.scss +40 -0
  267. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-shadow.scss +42 -0
  268. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/index.scss +3 -0
  269. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/_rich-text-lists.scss +63 -0
  270. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/index.scss +1 -0
  271. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_background-colors.scss +14 -0
  272. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_indent.scss +13 -0
  273. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/index.scss +2 -0
  274. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/_component-title.scss +30 -0
  275. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/index.scss +1 -0
  276. package/dist/templates/angular-xmcloud/src/assets/styles/sass/main.scss +4 -0
  277. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/index.scss +6 -0
  278. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/link-list/index.scss +0 -0
  279. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/navigation/index.scss +0 -0
  280. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/page-content/index.scss +0 -0
  281. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/promo/index.scss +0 -0
  282. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/rich-text/index.scss +0 -0
  283. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/title/index.scss +0 -0
  284. package/dist/templates/nextjs/.eslintrc +26 -26
  285. package/dist/templates/nextjs/.gitattributes +11 -11
  286. package/dist/templates/nextjs/.graphql-let.yml +8 -8
  287. package/dist/templates/nextjs/.prettierrc +8 -8
  288. package/dist/templates/nextjs/.vscode/launch.json +15 -15
  289. package/dist/templates/nextjs/LICENSE.txt +202 -202
  290. package/dist/templates/nextjs/README.md +8 -8
  291. package/dist/templates/nextjs/gitignore +32 -32
  292. package/dist/templates/nextjs/package.json +87 -87
  293. package/dist/templates/nextjs/public/sc_logo.svg +52 -52
  294. package/dist/templates/nextjs/scripts/config/plugins/fallback.ts +0 -1
  295. package/dist/templates/nextjs/scripts/generate-config.ts +8 -1
  296. package/dist/templates/nextjs/scripts/temp/gitignore +2 -2
  297. package/dist/templates/nextjs/sitecore/config/{{appName}}.config +165 -165
  298. package/dist/templates/nextjs/src/assets/app.css +36 -36
  299. package/dist/templates/nextjs/src/temp/GraphQLIntrospectionResult.json +22215 -22215
  300. package/dist/templates/nextjs/src/temp/gitignore +3 -3
  301. package/dist/templates/nextjs/tsconfig.json +37 -37
  302. package/dist/templates/nextjs/tsconfig.scripts.json +11 -11
  303. package/dist/templates/nextjs-styleguide/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +9 -9
  304. package/dist/templates/nextjs-styleguide/data/content/Styleguide/ContentListField/Item1/en.yml +6 -6
  305. package/dist/templates/nextjs-styleguide/data/content/Styleguide/ContentListField/Item2/en.yml +6 -6
  306. package/dist/templates/nextjs-styleguide/data/content/Styleguide/EditFrameDemo/Item1/en.yml +6 -6
  307. package/dist/templates/nextjs-styleguide/data/content/Styleguide/EditFrameDemo/Item2/en.yml +6 -6
  308. package/dist/templates/nextjs-styleguide/data/content/Styleguide/ItemLinkField/Item1/en.yml +6 -6
  309. package/dist/templates/nextjs-styleguide/data/content/Styleguide/ItemLinkField/Item2/en.yml +6 -6
  310. package/dist/templates/nextjs-styleguide/data/dictionary/en.yml +4 -4
  311. package/dist/templates/nextjs-styleguide/data/dictionary/{{language}}.yml +4 -4
  312. package/dist/templates/nextjs-styleguide/data/routes/en.yml +63 -63
  313. package/dist/templates/nextjs-styleguide/data/routes/graphql/en.yml +27 -27
  314. package/dist/templates/nextjs-styleguide/data/routes/graphql/sample-1/en.yml +9 -9
  315. package/dist/templates/nextjs-styleguide/data/routes/graphql/sample-2/en.yml +9 -9
  316. package/dist/templates/nextjs-styleguide/data/routes/styleguide/custom-route-type/en.yml +12 -12
  317. package/dist/templates/nextjs-styleguide/data/routes/styleguide/en.yml +259 -259
  318. package/dist/templates/nextjs-styleguide/data/routes/styleguide/{{language}}.yml +25 -25
  319. package/dist/templates/nextjs-styleguide/data/routes/{{language}}.yml +4 -4
  320. package/dist/templates/nextjs-styleguide/package.json +14 -14
  321. package/dist/templates/nextjs-styleguide/scripts/config/plugins/disconnected.ts +1 -0
  322. package/dist/templates/nextjs-styleguide/sitecore/definitions/components/graphql/GraphQL-IntegratedDemo.sitecore.graphql +71 -71
  323. package/dist/templates/nextjs-styleguide/sitecore/gitignore +3 -3
  324. package/dist/templates/nextjs-styleguide/src/components/graphql/GraphQL-ConnectedDemo.dynamic.graphql +69 -69
  325. package/dist/templates/nextjs-styleguide-tracking/data/dictionary/en.yml +5 -5
  326. package/dist/templates/nextjs-styleguide-tracking/data/routes/tracking/en.yml +8 -8
  327. package/dist/templates/nextjs-sxa/package.json +11 -11
  328. package/dist/templates/nextjs-sxa/src/assets/basic/_component.scss +48 -48
  329. package/dist/templates/nextjs-sxa/src/assets/basic/_container.scss +64 -64
  330. package/dist/templates/nextjs-sxa/src/assets/basic/_fonts.scss +3 -3
  331. package/dist/templates/nextjs-sxa/src/assets/basic/_footer.scss +31 -31
  332. package/dist/templates/nextjs-sxa/src/assets/basic/_header.scss +49 -49
  333. package/dist/templates/nextjs-sxa/src/assets/basic/_navigation.scss +150 -150
  334. package/dist/templates/nextjs-sxa/src/assets/basic/_promo.scss +58 -58
  335. package/dist/templates/nextjs-sxa/src/assets/basic/_rich-text.scss +11 -11
  336. package/dist/templates/nextjs-sxa/src/assets/basic/_variables.scss +9 -9
  337. package/dist/templates/nextjs-sxa/src/assets/basic/main.scss +8 -8
  338. package/dist/templates/nextjs-sxa/src/assets/main.scss +4 -4
  339. package/dist/templates/nextjs-sxa/src/assets/sass/_app.scss +103 -103
  340. package/dist/templates/nextjs-sxa/src/assets/sass/abstracts/_functions.scss +8 -8
  341. package/dist/templates/nextjs-sxa/src/assets/sass/abstracts/_mixins.scss +121 -121
  342. package/dist/templates/nextjs-sxa/src/assets/sass/abstracts/_vars.scss +3 -3
  343. package/dist/templates/nextjs-sxa/src/assets/sass/abstracts/vars/_colors.scss +283 -283
  344. package/dist/templates/nextjs-sxa/src/assets/sass/abstracts/vars/_fontSizes.scss +16 -16
  345. package/dist/templates/nextjs-sxa/src/assets/sass/abstracts/vars/_margins.scss +10 -10
  346. package/dist/templates/nextjs-sxa/src/assets/sass/base/fonts/_fonts.scss +1 -1
  347. package/dist/templates/nextjs-sxa/src/assets/sass/base/fonts/index.scss +1 -1
  348. package/dist/templates/nextjs-sxa/src/assets/sass/base/index.scss +3 -3
  349. package/dist/templates/nextjs-sxa/src/assets/sass/base/links/_link-button.scss +26 -26
  350. package/dist/templates/nextjs-sxa/src/assets/sass/base/links/index.scss +1 -1
  351. package/dist/templates/nextjs-sxa/src/assets/sass/base/reset/_inputs.scss +58 -58
  352. package/dist/templates/nextjs-sxa/src/assets/sass/base/reset/_links.scss +14 -14
  353. package/dist/templates/nextjs-sxa/src/assets/sass/base/reset/_ui-datepicker.scss +7 -7
  354. package/dist/templates/nextjs-sxa/src/assets/sass/base/richtext/_richtext-files-icons.scss +86 -86
  355. package/dist/templates/nextjs-sxa/src/assets/sass/base/richtext/_richtext.scss +101 -101
  356. package/dist/templates/nextjs-sxa/src/assets/sass/base/richtext/index.scss +2 -2
  357. package/dist/templates/nextjs-sxa/src/assets/sass/base/typehead/_typehead.scss +95 -95
  358. package/dist/templates/nextjs-sxa/src/assets/sass/base/typehead/index.scss +1 -1
  359. package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-column-splitter.scss +14 -14
  360. package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-container.scss +27 -27
  361. package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-image.scss +18 -18
  362. package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-navigation.scss +51 -51
  363. package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-promo.scss +42 -42
  364. package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-richtext-content.scss +19 -19
  365. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_alignment.scss +53 -26
  366. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_boxed.scss +16 -16
  367. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_clearfix.scss +11 -11
  368. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_highlighted.scss +62 -62
  369. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_link-button.scss +16 -16
  370. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_promoted-box.scss +3 -3
  371. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/index.scss +5 -5
  372. package/dist/templates/nextjs-sxa/src/assets/sass/components/container/_bordered.scss +23 -23
  373. package/dist/templates/nextjs-sxa/src/assets/sass/components/container/_title-row-box.scss +66 -66
  374. package/dist/templates/nextjs-sxa/src/assets/sass/components/container/index.scss +1 -1
  375. package/dist/templates/nextjs-sxa/src/assets/sass/components/image/_image-default-size.scss +6 -6
  376. package/dist/templates/nextjs-sxa/src/assets/sass/components/image/index.scss +1 -1
  377. package/dist/templates/nextjs-sxa/src/assets/sass/components/image-alignment/_image-left.scss +3 -3
  378. package/dist/templates/nextjs-sxa/src/assets/sass/components/image-alignment/_image-right.scss +3 -3
  379. package/dist/templates/nextjs-sxa/src/assets/sass/components/index.scss +17 -17
  380. package/dist/templates/nextjs-sxa/src/assets/sass/components/layout/_acaindent.scss +5 -5
  381. package/dist/templates/nextjs-sxa/src/assets/sass/components/layout/_background.scss +27 -27
  382. package/dist/templates/nextjs-sxa/src/assets/sass/components/layout/index.scss +1 -1
  383. package/dist/templates/nextjs-sxa/src/assets/sass/components/link-list/_component-link-list.scss +45 -45
  384. package/dist/templates/nextjs-sxa/src/assets/sass/components/link-list/_list-vertical.scss +20 -20
  385. package/dist/templates/nextjs-sxa/src/assets/sass/components/link-list/index.scss +2 -2
  386. package/dist/templates/nextjs-sxa/src/assets/sass/components/navigation/_navigation-fat.scss +58 -58
  387. package/dist/templates/nextjs-sxa/src/assets/sass/components/navigation/_navigation-main-horizontal-vertical.scss +176 -176
  388. package/dist/templates/nextjs-sxa/src/assets/sass/components/navigation/_navigation-mobile.scss +85 -85
  389. package/dist/templates/nextjs-sxa/src/assets/sass/components/navigation/_navigation-sidebar.scss +29 -29
  390. package/dist/templates/nextjs-sxa/src/assets/sass/components/navigation/_sitemap-navigation.scss +20 -20
  391. package/dist/templates/nextjs-sxa/src/assets/sass/components/navigation/index.scss +5 -5
  392. package/dist/templates/nextjs-sxa/src/assets/sass/components/promo/_absolute-bottom-link.scss +8 -8
  393. package/dist/templates/nextjs-sxa/src/assets/sass/components/promo/_promo-hero.scss +40 -40
  394. package/dist/templates/nextjs-sxa/src/assets/sass/components/promo/_promo-shadow.scss +42 -42
  395. package/dist/templates/nextjs-sxa/src/assets/sass/components/promo/index.scss +3 -3
  396. package/dist/templates/nextjs-sxa/src/assets/sass/components/rich-text/_rich-text-lists.scss +63 -63
  397. package/dist/templates/nextjs-sxa/src/assets/sass/components/rich-text/index.scss +1 -1
  398. package/dist/templates/nextjs-sxa/src/assets/sass/components/spacing/_background-colors.scss +14 -14
  399. package/dist/templates/nextjs-sxa/src/assets/sass/components/spacing/_indent.scss +13 -13
  400. package/dist/templates/nextjs-sxa/src/assets/sass/components/spacing/index.scss +2 -2
  401. package/dist/templates/nextjs-sxa/src/assets/sass/components/title/_component-title.scss +30 -30
  402. package/dist/templates/nextjs-sxa/src/assets/sass/components/title/index.scss +1 -1
  403. package/dist/templates/nextjs-sxa/src/assets/sass/main.scss +4 -4
  404. package/dist/templates/nextjs-sxa/src/assets/sass/variants/index.scss +5 -5
  405. package/dist/templates/nextjs-xmcloud/.env +19 -19
  406. package/dist/templates/nextjs-xmcloud/package.json +8 -8
  407. package/dist/templates/node-headless-ssr-experience-edge/README.md +56 -56
  408. package/dist/templates/node-headless-ssr-experience-edge/gitignore +19 -0
  409. package/dist/templates/node-headless-ssr-experience-edge/package.json +34 -34
  410. package/dist/templates/node-headless-ssr-experience-edge/tsconfig.json +22 -22
  411. package/dist/templates/node-headless-ssr-proxy/.vscode/launch.json +47 -47
  412. package/dist/templates/node-headless-ssr-proxy/LICENSE.txt +202 -202
  413. package/dist/templates/node-headless-ssr-proxy/README.md +65 -65
  414. package/dist/templates/node-headless-ssr-proxy/gitignore +19 -0
  415. package/dist/templates/node-headless-ssr-proxy/package.json +39 -39
  416. package/dist/templates/node-headless-ssr-proxy/src/config.ts +3 -3
  417. package/dist/templates/node-headless-ssr-proxy/src/error.html +200 -200
  418. package/dist/templates/node-headless-ssr-proxy/src/httpAgents.ts +2 -2
  419. package/dist/templates/node-headless-ssr-proxy/src/index.ts +9 -2
  420. package/dist/templates/node-headless-ssr-proxy/tsconfig.json +22 -22
  421. package/dist/templates/node-xmcloud-proxy/.env +25 -0
  422. package/dist/templates/node-xmcloud-proxy/README.md +130 -0
  423. package/dist/templates/node-xmcloud-proxy/gitignore +33 -0
  424. package/dist/templates/node-xmcloud-proxy/package.json +26 -0
  425. package/dist/templates/node-xmcloud-proxy/src/config.ts +91 -0
  426. package/dist/templates/node-xmcloud-proxy/src/index.ts +199 -0
  427. package/dist/templates/node-xmcloud-proxy/src/personalize.ts +34 -0
  428. package/dist/templates/node-xmcloud-proxy/src/types.ts +37 -0
  429. package/dist/templates/node-xmcloud-proxy/tsconfig.json +22 -0
  430. package/dist/templates/react/.prettierrc +9 -9
  431. package/dist/templates/react/LICENSE.txt +202 -202
  432. package/dist/templates/react/README.md +2402 -2402
  433. package/dist/templates/react/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +9 -9
  434. package/dist/templates/react/data/content/Styleguide/ContentListField/Item1/en.yml +6 -6
  435. package/dist/templates/react/data/content/Styleguide/ContentListField/Item2/en.yml +6 -6
  436. package/dist/templates/react/data/content/Styleguide/EditFrameDemo/Item1/en.yml +6 -6
  437. package/dist/templates/react/data/content/Styleguide/EditFrameDemo/Item2/en.yml +6 -6
  438. package/dist/templates/react/data/content/Styleguide/ItemLinkField/Item1/en.yml +6 -6
  439. package/dist/templates/react/data/content/Styleguide/ItemLinkField/Item2/en.yml +6 -6
  440. package/dist/templates/react/data/dictionary/en.yml +4 -4
  441. package/dist/templates/react/data/dictionary/{{language}}.yml +4 -4
  442. package/dist/templates/react/data/routes/en.yml +61 -61
  443. package/dist/templates/react/data/routes/graphql/en.yml +27 -27
  444. package/dist/templates/react/data/routes/graphql/sample-1/en.yml +9 -9
  445. package/dist/templates/react/data/routes/graphql/sample-2/en.yml +9 -9
  446. package/dist/templates/react/data/routes/styleguide/custom-route-type/en.yml +12 -12
  447. package/dist/templates/react/data/routes/styleguide/en.yml +263 -263
  448. package/dist/templates/react/data/routes/styleguide/{{language}}.yml +26 -26
  449. package/dist/templates/react/data/routes/{{language}}.yml +4 -4
  450. package/dist/templates/react/gitignore +25 -25
  451. package/dist/templates/react/package.json +5 -5
  452. package/dist/templates/react/public/index.html +35 -35
  453. package/dist/templates/react/scripts/generate-config.js +10 -3
  454. package/dist/templates/react/sitecore/config/{{appName}}.config +90 -90
  455. package/dist/templates/react/sitecore/definitions/components/graphql/GraphQL-IntegratedDemo.sitecore.graphql +71 -71
  456. package/dist/templates/react/sitecore/gitignore +2 -2
  457. package/dist/templates/react/src/assets/sc_logo.svg +52 -52
  458. package/dist/templates/react/src/components/graphql/query.graphql +69 -69
  459. package/dist/templates/react/src/temp/GraphQLFragmentTypes.json +207 -207
  460. package/dist/templates/react/src/temp/gitignore +3 -3
  461. package/dist/templates/react-native/.buckconfig +6 -6
  462. package/dist/templates/react-native/.eslintrc +74 -74
  463. package/dist/templates/react-native/.gitattributes +1 -1
  464. package/dist/templates/react-native/.prettierrc +9 -9
  465. package/dist/templates/react-native/.vscode/launch.json +42 -42
  466. package/dist/templates/react-native/.vscode/settings.json +1 -1
  467. package/dist/templates/react-native/LICENSE.txt +202 -202
  468. package/dist/templates/react-native/README.MD +115 -115
  469. package/dist/templates/react-native/android/app/BUCK +55 -55
  470. package/dist/templates/react-native/android/app/build.gradle +201 -201
  471. package/dist/templates/react-native/android/app/build_defs.bzl +19 -19
  472. package/dist/templates/react-native/android/app/proguard-rules.pro +10 -10
  473. package/dist/templates/react-native/android/app/src/debug/AndroidManifest.xml +8 -8
  474. package/dist/templates/react-native/android/app/src/main/AndroidManifest.xml +26 -26
  475. package/dist/templates/react-native/android/app/src/main/java/com/{{appName}}/MainActivity.java +15 -15
  476. package/dist/templates/react-native/android/app/src/main/java/com/{{appName}}/MainApplication.java +74 -74
  477. package/dist/templates/react-native/android/app/src/main/res/values/strings.xml +3 -3
  478. package/dist/templates/react-native/android/app/src/main/res/values/styles.xml +9 -9
  479. package/dist/templates/react-native/android/build.gradle +38 -38
  480. package/dist/templates/react-native/android/gradle/wrapper/gradle-wrapper.properties +5 -5
  481. package/dist/templates/react-native/android/gradle.properties +21 -21
  482. package/dist/templates/react-native/android/gradlew +188 -188
  483. package/dist/templates/react-native/android/gradlew.bat +100 -100
  484. package/dist/templates/react-native/android/settings.gradle +3 -3
  485. package/dist/templates/react-native/app.json +3 -3
  486. package/dist/templates/react-native/assets/img/sc_logo.svg +52 -52
  487. package/dist/templates/react-native/data/content/Styleguide/ItemLinkField/Item1/en.json +10 -10
  488. package/dist/templates/react-native/data/routes/en.json +22 -22
  489. package/dist/templates/react-native/data/routes/styleguide/en.json +227 -227
  490. package/dist/templates/react-native/data/routes/styleguide/{{language}}.json +31 -31
  491. package/dist/templates/react-native/data/routes/{{language}}.json +7 -7
  492. package/dist/templates/react-native/gitignore +60 -60
  493. package/dist/templates/react-native/ios/Podfile +53 -53
  494. package/dist/templates/react-native/ios/{{appName}}/AppDelegate.h +15 -15
  495. package/dist/templates/react-native/ios/{{appName}}/AppDelegate.m +42 -42
  496. package/dist/templates/react-native/ios/{{appName}}/Base.lproj/LaunchScreen.xib +42 -42
  497. package/dist/templates/react-native/ios/{{appName}}/Images.xcassets/AppIcon.appiconset/Contents.json +38 -38
  498. package/dist/templates/react-native/ios/{{appName}}/Images.xcassets/Contents.json +6 -6
  499. package/dist/templates/react-native/ios/{{appName}}/Info.plist +57 -57
  500. package/dist/templates/react-native/ios/{{appName}}/main.m +16 -16
  501. package/dist/templates/react-native/ios/{{appName}}-tvOS/Info.plist +53 -53
  502. package/dist/templates/react-native/ios/{{appName}}-tvOSTests/Info.plist +24 -24
  503. package/dist/templates/react-native/ios/{{appName}}.xcodeproj/xcshareddata/xcschemes/BasicSampleReactNative-tvOS.xcscheme +129 -129
  504. package/dist/templates/react-native/ios/{{appName}}.xcodeproj/xcshareddata/xcschemes/BasicSampleReactNative.xcscheme +129 -129
  505. package/dist/templates/react-native/ios/{{appName}}Tests/BasicSampleReactNativeTests.m +72 -72
  506. package/dist/templates/react-native/ios/{{appName}}Tests/Info.plist +24 -24
  507. package/dist/templates/react-native/package.json +78 -78
  508. package/dist/templates/react-native/sitecore/config/{{appName}}.config +47 -47
  509. package/dist/templates/react-native/sitecore/gitignore +2 -2
  510. package/dist/templates/vue/.browserslistrc +2 -2
  511. package/dist/templates/vue/.prettierrc +9 -9
  512. package/dist/templates/vue/LICENSE.txt +202 -202
  513. package/dist/templates/vue/README.md +36 -36
  514. package/dist/templates/vue/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +9 -9
  515. package/dist/templates/vue/data/content/Styleguide/ContentListField/Item1/en.yml +6 -6
  516. package/dist/templates/vue/data/content/Styleguide/ContentListField/Item2/en.yml +6 -6
  517. package/dist/templates/vue/data/content/Styleguide/EditFrameDemo/Item1/en.yml +6 -6
  518. package/dist/templates/vue/data/content/Styleguide/EditFrameDemo/Item2/en.yml +6 -6
  519. package/dist/templates/vue/data/content/Styleguide/ItemLinkField/Item1/en.yml +6 -6
  520. package/dist/templates/vue/data/content/Styleguide/ItemLinkField/Item2/en.yml +6 -6
  521. package/dist/templates/vue/data/dictionary/en.yml +7 -7
  522. package/dist/templates/vue/data/dictionary/{{language}}.yml +7 -7
  523. package/dist/templates/vue/data/routes/en.yml +63 -63
  524. package/dist/templates/vue/data/routes/graphql/en.yml +34 -34
  525. package/dist/templates/vue/data/routes/graphql/sample-1/en.yml +9 -9
  526. package/dist/templates/vue/data/routes/graphql/sample-2/en.yml +9 -9
  527. package/dist/templates/vue/data/routes/styleguide/custom-route-type/en.yml +12 -12
  528. package/dist/templates/vue/data/routes/styleguide/en.yml +264 -264
  529. package/dist/templates/vue/data/routes/styleguide/{{language}}.yml +26 -26
  530. package/dist/templates/vue/data/routes/{{language}}.yml +4 -4
  531. package/dist/templates/vue/gitignore +25 -25
  532. package/dist/templates/vue/package.json +88 -90
  533. package/dist/templates/vue/public/img/icons/safari-pinned-tab.svg +75 -75
  534. package/dist/templates/vue/public/index.html +27 -27
  535. package/dist/templates/vue/public/manifest.json +14 -14
  536. package/dist/templates/vue/public/robots.txt +2 -2
  537. package/dist/templates/vue/scripts/generate-config.js +5 -0
  538. package/dist/templates/vue/sitecore/config/{{appName}}.config +89 -89
  539. package/dist/templates/vue/sitecore/definitions/components/GraphQL-IntegratedDemo.sitecore.graphql +71 -71
  540. package/dist/templates/vue/sitecore/gitignore +4 -4
  541. package/dist/templates/vue/src/assets/app.css +30 -30
  542. package/dist/templates/vue/src/assets/sc_logo.svg +52 -52
  543. package/dist/templates/vue/src/components/GraphQL/GraphQL-ConnectedDemo.query.graphql +69 -69
  544. package/dist/templates/vue/src/temp/GraphQLFragmentTypes.json +273 -273
  545. package/dist/templates/vue/src/temp/gitignore +3 -3
  546. package/package.json +2 -2
  547. package/dist/templates/angular/scripts/generate-component-factory.ts +0 -166
  548. package/dist/templates/angular/src/app/lib/client-factory.ts +0 -28
  549. /package/dist/templates/{angular → angular-sxp}/data/component-content/gitignore +0 -0
  550. /package/dist/templates/{angular → angular-sxp}/data/content/gitignore +0 -0
  551. /package/dist/templates/{angular → angular-sxp}/data/media/files/jss.pdf +0 -0
  552. /package/dist/templates/{angular → angular-sxp}/data/media/img/jss_logo.png +0 -0
  553. /package/dist/templates/{angular → angular-sxp}/data/media/img/sc_logo.png +0 -0
  554. /package/dist/templates/{angular → angular-sxp}/scripts/disconnected-mode-proxy.ts +0 -0
  555. /package/dist/templates/{angular → angular-sxp}/scripts/lint-yml.ts +0 -0
  556. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/component-content.sitecore.ts +0 -0
  557. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Reuse.sitecore.ts +0 -0
  558. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs-Tab.sitecore.ts +0 -0
  559. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs.sitecore.ts +0 -0
  560. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout.sitecore.ts +0 -0
  561. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Multilingual.sitecore.ts +0 -0
  562. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Section.sitecore.ts +0 -0
  563. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/content-block.sitecore.ts +0 -0
  564. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-connected-demo.sitecore.ts +0 -0
  565. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.ts +0 -0
  566. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-layout.sitecore.ts +0 -0
  567. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-angular-lazy-loading.sitecore.ts +0 -0
  568. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-component-params.sitecore.ts +0 -0
  569. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-custom-route-type.sitecore.ts +0 -0
  570. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-edit-frame.sitecore.ts +0 -0
  571. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-checkbox.sitecore.ts +0 -0
  572. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-content-list.sitecore.ts +0 -0
  573. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-custom.sitecore.ts +0 -0
  574. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-date.sitecore.ts +0 -0
  575. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-file.sitecore.ts +0 -0
  576. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-image.sitecore.ts +0 -0
  577. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-item-link.sitecore.ts +0 -0
  578. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-link.sitecore.ts +0 -0
  579. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-number.sitecore.ts +0 -0
  580. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-rich-text.sitecore.ts +0 -0
  581. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-text.sitecore.ts +0 -0
  582. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-route-fields.sitecore.ts +0 -0
  583. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-sitecore-context.sitecore.ts +0 -0
  584. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-tracking.sitecore.ts +0 -0
  585. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/config.js +0 -0
  586. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/content.sitecore.ts +0 -0
  587. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/dictionary.sitecore.ts +0 -0
  588. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/placeholders.sitecore.ts +0 -0
  589. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/routes.sitecore.ts +0 -0
  590. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/Styleguide-Explanatory-Component.sitecore.ts +0 -0
  591. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-content-list-template.sitecore.ts +0 -0
  592. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-edit-frame-list-item-template.sitecore.ts +0 -0
  593. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-item-link-template.sitecore.ts +0 -0
  594. /package/dist/templates/{angular → angular-sxp}/sitecore/pipelines/example.patch.ts +0 -0
  595. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.ts +0 -0
  596. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.ts +0 -0
  597. /package/dist/templates/{angular → angular-sxp}/src/app/components/shared/styleguide-specimen/styleguide-specimen.component.ts +0 -0
  598. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.ts +0 -0
  599. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.module.ts +0 -0
  600. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.ts +0 -0
  601. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.ts +0 -0
  602. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.ts +0 -0
  603. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.ts +0 -0
  604. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.ts +0 -0
  605. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.ts +0 -0
  606. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.ts +0 -0
  607. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.ts +0 -0
  608. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.ts +0 -0
  609. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.ts +0 -0
  610. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.ts +0 -0
  611. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.ts +0 -0
  612. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.ts +0 -0
  613. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.ts +0 -0
  614. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.ts +0 -0
  615. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.ts +0 -0
  616. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.ts +0 -0
  617. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.ts +0 -0
  618. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.ts +0 -0
  619. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.ts +0 -0
  620. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.ts +0 -0
  621. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.ts +0 -0
  622. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.ts +0 -0
@@ -0,0 +1,55 @@
1
+ # Angular for XMCloud
2
+
3
+ > Sitecore JSS Angular App for XM Cloud. For the current release this feature is experimental.
4
+
5
+ [Documentation](<TODO>)
6
+
7
+ This Single Page Application (SPA) built with Angular is designed to be fully compatible with XM Cloud, incorporating several key add-ons and features to streamline the development process and enable seamless integration. The supported key features are as follows:
8
+
9
+ - `Context ID`: The Context ID environment variable simplifies setting up and configuring XM Cloud solutions. It's a unified identifier that maps to all your configured resources, such as content, sites, files, forms, and integration settings.
10
+
11
+ - `Pages new editing integration via HTTP render engine endpoint`: Before JSS 22.1, JSS Next.js apps integrated with Sitecore editors through chromes, where data was sent via a POST request. With the 22.1 release, a new metadata method was introduced, rendering the app inside an iframe in XM Cloud Pages, offering benefits like faster load times, simpler configuration, and direct local host connections without tunneling.
12
+
13
+ - `XM Cloud proxy personalization` with embedded personalization and A/B Component Test support.
14
+
15
+ - `Forms support`: provides the capability to consume and post Sitecore Forms from JSS apps. Sitecore Forms is a form-authoring framework that enables marketers to author their own forms, collect data, and analyze form performance.
16
+
17
+ This SPA is tailored to enhance development workflows and enable full utilization of XM Cloud’s capabilities, providing a seamless and efficient foundation for developers.
18
+
19
+ ## Components and Supporting Applications
20
+
21
+ The following components and supporting applications have been added to the Angular base app to ensure compatibility with XM Cloud:
22
+
23
+ - `XM Cloud Angular`: Adds support for the Sitecore Context data, which simplifies connecting the application to XM Cloud and configuring the integration of multiple composable Sitecore products. Angular app provides components and can be used during development. Once the app is built and its build artifacts are copied into the proxy, the proxy app can be used to connect to an XMCloud instance and render its content (including personalization etc).
24
+
25
+ - `XM Cloud Proxy`: Adds integration with XMCloud for the JSS SPA applications and enables editing, personalization and A/B component testing support.
26
+
27
+ ## Environment Variables
28
+
29
+ The following environment variables can be set to configure the angular app. You can use the `.env` file located in the root of the app or set these directly in the environment (for example, in containers).
30
+
31
+ | Parameter | Description |
32
+ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
33
+ | `PROXY_HOST` | Your XM Cloud Proxy hostname is needed to build the app and execute the client-side requests against the proxy server. Default value `http://localhost:3000` |
34
+ | `PROXY_BUILD_PATH` | Your XM Cloud Proxy server path is needed to build the app. The build output will be copied to the XMCloud Proxy application path. Default value `<xmcloud_proxy_path>\dist`.
35
+ | `SITECORE_EDGE_CONTEXT_ID` | The Context ID, which covers many system configurations, required for connecting to the XM Cloud back end. This is an XM Cloud system environment variable. When the application runs on the XM Cloud rendering host, this value is always set to the preview Context ID. |
36
+ | `SITECORE_API_KEY` | The API key for GRAPH_QL_ENDPOINT authentication. For Experience Edge, you can find the API key in the Sites dashboard by opening the actions menu for a site and navigating to Settings > Developer settings. Copy the value for SITECORE_API_KEY. For a preview endpoint (a CM instance either on XM Cloud or locally), use your preview API Key from the CM instance.
37
+ | `SITECORE_API_HOST` | The API hostname, needed to build the application. This should be used in combination with SITECORE_API_KEY for local development or local container setup. For example, https://<xmc_cm_host>.sitecorecloud.io. |
38
+ | `GRAPH_QL_ENDPOINT` | Your GraphQL Edge endpoint. This is typically optional. By default, the endpoint is calculated using the resolved Sitecore API hostname + the `graphQLEndpointPath` defined in your `package.json`. For a preview endpoint (a CM instance on XM Cloud or a local one), the value is <xmc_cm_host>/sitecore/api/graph/edge. |
39
+ | `SITECORE_SITE_NAME` | The name of your site. This variable overrides the config.appName defined in the package.json file. You can find this value in the Sites dashboard by opening the actions menu for a site and navigating to Settings > Developer settings. Default value `<appName>`,
40
+ ` |
41
+ | `DEFAULT_LANGUAGE` | The default language of your app. Default value `en` |
42
+ | `DEBUG` | Optional. Debug level for the proxy. Set the DEBUG environment variable to 'sitecore-jss:*,proxy*,http-proxy-middleware*' to see all logs. Refer to the [official docs](https://doc.sitecore.com/xp/en/developers/hd/latest/sitecore-headless-development/debug-logging-in-jss-apps.html#namespaces) for all the available namespaces.
43
+
44
+ ## Build & run
45
+
46
+ Build your Angular SPA app bundle with `jss build` or `npm run build`. The build output should be placed in the `dist` folder and will automatically get copied to the proxy app.
47
+
48
+ To run your app in production mode. Go to the proxy app:
49
+
50
+ 1. Run `npm install`
51
+
52
+ 2. Run `npm run start`
53
+
54
+ You should be able to see the following message:
55
+ `server listening on port 3000!`.
@@ -0,0 +1,33 @@
1
+ {
2
+ "projects": {
3
+ "<%- appName %>": {
4
+ "architect": {
5
+ "build": {
6
+ "options": {
7
+ "styles": [
8
+ "src/styles.css",
9
+ "src/assets/styles/main.scss"
10
+ ],
11
+ "stylePreprocessorOptions": {
12
+ "includePaths": ["src/assets/styles", "node_modules"]
13
+ }
14
+ }
15
+ },
16
+ "test": {
17
+ "options": {
18
+ "styles": ["src/styles.css", "src/assets/styles/main.scss"],
19
+ "stylePreprocessorOptions": {
20
+ "includePaths": ["src/assets/styles", "node_modules"]
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
26
+ },
27
+ "schematics": {
28
+ "@schematics/angular:component": {
29
+ "prefix": "app",
30
+ "style": "scss"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,17 @@
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
+ "@sitecore-cloudsdk/core": "^0.4.1",
12
+ "@sitecore-cloudsdk/events": "^0.4.1",
13
+ "font-awesome": "^4.7.0",
14
+ "sass": "^1.52.3",
15
+ "sass-alias": "^1.0.5"
16
+ }
17
+ }
@@ -0,0 +1,28 @@
1
+ import 'dotenv/config';
2
+
3
+ /*
4
+ BOOTSTRAPPING
5
+ The bootstrap process runs before build, and generates TS that needs to be
6
+ included into the build - specifically, the component name to component mapping,
7
+ and the global config module.
8
+ */
9
+
10
+ /*
11
+ PLUGINS GENERATION
12
+ */
13
+ require('./generate-plugins');
14
+
15
+ /*
16
+ CONFIG GENERATION
17
+ */
18
+ require('./generate-config');
19
+
20
+ /*
21
+ COMPONENT FACTORY GENERATION
22
+ */
23
+ require('./generate-component-factory');
24
+
25
+ /*
26
+ METADATA GENERATION
27
+ */
28
+ require('./generate-metadata');
@@ -0,0 +1,39 @@
1
+ import { JssConfig } from 'lib/config';
2
+ import { ConfigPlugin } from '..';
3
+ import { constantCase } from 'constant-case';
4
+ import chalk from 'chalk';
5
+
6
+ /**
7
+ * This plugin will set XM Cloud related config props.
8
+ */
9
+ class XMCloudPlugin implements ConfigPlugin {
10
+ // should come after other plugins (but before fallback)
11
+ order = 10;
12
+
13
+ async exec(config: JssConfig) {
14
+ const proxyBuildPath = process.env[`${constantCase('proxyBuildPath')}`]?.replace(/\/$/, '');
15
+ const proxyHost = process.env[`${constantCase('proxyHost')}`];
16
+
17
+ const sitecoreEdgeUrl =
18
+ process.env[`${constantCase('sitecoreEdgeUrl')}`]?.replace(/\/$/, '') ||
19
+ 'https://edge-platform.sitecorecloud.io';
20
+ const sitecoreEdgeContextId = process.env[`${constantCase('sitecoreEdgeContextId')}`];
21
+
22
+ if (config.sitecoreApiKey && sitecoreEdgeContextId) {
23
+ console.log(
24
+ chalk.yellow(
25
+ "You have configured both 'sitecoreApiKey' and 'sitecoreEdgeContextId' values. The 'sitecoreEdgeContextId' is used instead."
26
+ )
27
+ );
28
+ }
29
+
30
+ return Object.assign({}, config, {
31
+ proxyBuildPath,
32
+ proxyHost,
33
+ sitecoreEdgeUrl,
34
+ sitecoreEdgeContextId,
35
+ });
36
+ }
37
+ }
38
+
39
+ export const xmcloudPlugin = new XMCloudPlugin();
@@ -0,0 +1,34 @@
1
+ import { ComponentFactoryPlugin, ComponentFactoryPluginConfig } from '..';
2
+
3
+ /**
4
+ * Provides custom packages configuration
5
+ */
6
+ class PackagesPlugin implements ComponentFactoryPlugin {
7
+ order = 0;
8
+
9
+ exec(config: ComponentFactoryPluginConfig) {
10
+ /**
11
+ * You can specify components which you want to import from external/internal packages
12
+ * in format:
13
+ * {
14
+ * name: 'package name',
15
+ * components: [
16
+ * {
17
+ * componentName: 'component name', // component rendering name,
18
+ * moduleName: 'module name' // component name to import from the package
19
+ * }
20
+ * ]
21
+ * }
22
+ */
23
+ config.packages = [
24
+ {
25
+ name: '@sitecore-jss/sitecore-jss-angular',
26
+ components: [{ componentName: 'Form', moduleName: 'FormComponent' }],
27
+ },
28
+ ];
29
+
30
+ return config;
31
+ }
32
+ }
33
+
34
+ export const packagesPlugin = new PackagesPlugin();
@@ -0,0 +1,57 @@
1
+ export const componentFactoryTemplate = ({
2
+ imports,
3
+ components,
4
+ registrations,
5
+ lazyRegistrations,
6
+ declarations,
7
+ }: {
8
+ imports: string[];
9
+ components: string[];
10
+ registrations: string[];
11
+ lazyRegistrations: string[];
12
+ declarations: string[];
13
+ }) => `// Do not edit this file, it is auto-generated at build time!
14
+ // See scripts/generate-component-factory/index.ts to modify the generation of this file.
15
+ // Use app-components.shared.module.ts to modify the imports, etc of this module.
16
+ // Note: code-generation is optional! See ./.gitignore for directions to remove it,
17
+ // if you do not want it.
18
+
19
+ import { NgModule } from '@angular/core';
20
+ import { EDGE_CONFIG, JssModule } from '@sitecore-jss/sitecore-jss-angular';
21
+ import { AppComponentsSharedModule } from './app-components.shared.module';
22
+ import { environment } from '../../environments/environment';
23
+ ${imports.join('\n')}
24
+
25
+ export const components = [
26
+ ${components.map((c) => `'${c}'`).join(',\n ')}
27
+ ];
28
+
29
+ @NgModule({
30
+ imports: [
31
+ AppComponentsSharedModule,
32
+ JssModule.withComponents([
33
+ ${registrations.join('\n ')}
34
+ ], [
35
+ ${lazyRegistrations.join('\n ')}
36
+ ]),
37
+ ],
38
+ providers: [
39
+ {
40
+ // This configuration is used to be able to integrate sitecore-jss-angular SDK with Sitecore Edge
41
+ provide: EDGE_CONFIG,
42
+ useValue: {
43
+ sitecoreEdgeUrl: environment.sitecoreEdgeUrl,
44
+ sitecoreEdgeContextId: environment.sitecoreEdgeContextId,
45
+ },
46
+ },
47
+ ],
48
+ exports: [
49
+ JssModule,
50
+ AppComponentsSharedModule,
51
+ ],
52
+ declarations: [
53
+ ${declarations.join('\n ')}
54
+ ],
55
+ })
56
+ export class AppComponentsModule { }
57
+ `;
@@ -0,0 +1,25 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { Metadata, getMetadata } from '@sitecore-jss/sitecore-jss-dev-tools';
4
+
5
+ /*
6
+ METADATA GENERATION
7
+ Generates the /src/environments/metadata.json file which contains application
8
+ configuration metadata that is used for Sitecore XM Cloud integration.
9
+ */
10
+ generateMetadata();
11
+
12
+ function generateMetadata(): void {
13
+ const metadata: Metadata = getMetadata();
14
+ writeMetadata(metadata);
15
+ }
16
+
17
+ /**
18
+ * Writes the metadata object to disk.
19
+ * @param {Metadata} metadata metadata to write.
20
+ */
21
+ function writeMetadata(metadata: Metadata): void {
22
+ const filePath = path.resolve('src/environments/metadata.json');
23
+ console.log(`Writing metadata to ${filePath}`);
24
+ fs.writeFileSync(filePath, JSON.stringify(metadata, null, 2), { encoding: 'utf8' });
25
+ }
@@ -0,0 +1,15 @@
1
+ import { execSync } from 'child_process';
2
+ import { environment } from '../src/environments/environment';
3
+
4
+ // Executed at the end of the build process (jss build) to move the build output to the proxy build path
5
+
6
+ try {
7
+ console.log('Moving build output to proxy build path:', environment.proxyBuildPath);
8
+
9
+ execSync(`del-cli ${environment.proxyBuildPath} --force`, { stdio: 'inherit' });
10
+ execSync(`move-cli ./dist ${environment.proxyBuildPath}`, { stdio: 'inherit' });
11
+
12
+ console.log('Proxy build prepared successfully!');
13
+ } catch (error) {
14
+ console.error('Error preparing proxy build:', error);
15
+ }
@@ -0,0 +1,25 @@
1
+ import clientFactory from './src/app/lib/graphql-client-factory';
2
+ import { getGraphQLClientFactoryConfig } from './src/app/lib/graphql-client-factory/config';
3
+ import { dictionaryServiceFactory } from './src/app/lib/dictionary-service-factory';
4
+ import { layoutServiceFactory } from './src/app/lib/layout-service-factory';
5
+ import { environment } from './src/environments/environment';
6
+ import { components } from './src/app/components/app-components.module';
7
+ import metadata from './src/environments/metadata.json';
8
+ /**
9
+ * Define the required configuration values to be exported from the server.bundle.ts.
10
+ */
11
+
12
+ const defaultLanguage = environment.defaultLanguage;
13
+ const sitecoreSiteName = environment.sitecoreSiteName;
14
+ const getClientFactoryConfig = getGraphQLClientFactoryConfig;
15
+
16
+ export {
17
+ clientFactory,
18
+ getClientFactoryConfig,
19
+ dictionaryServiceFactory,
20
+ layoutServiceFactory,
21
+ defaultLanguage,
22
+ sitecoreSiteName,
23
+ components,
24
+ metadata,
25
+ };
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { RouterModule } from '@angular/router';
6
+ import { JssModule } from '@sitecore-jss/sitecore-jss-angular';
7
+ import { NavigationItemComponent } from './navigation/navigation-item.component';
8
+
9
+ /*
10
+ This module is imported by the generated app-components.module.ts.
11
+ You can use this module to provide shared Angular components that are not
12
+ JSS components, etc to the generated module.
13
+
14
+ Don't want code generation? See ./.gitignore for instructions to turn it off.
15
+ */
16
+ @NgModule({
17
+ imports: [CommonModule, TranslateModule, RouterModule, JssModule, FormsModule],
18
+ exports: [CommonModule, TranslateModule, RouterModule, FormsModule, NavigationItemComponent],
19
+ declarations: [NavigationItemComponent],
20
+ })
21
+ export class AppComponentsSharedModule {}
@@ -0,0 +1,5 @@
1
+ <div *ngFor="let ph of enabledPlaceholders" [ngClass]="getColumnClass(+ph - 1)">
2
+ <div class="row">
3
+ <sc-placeholder [name]="getPlaceholderName(ph)" [rendering]="rendering"> </sc-placeholder>
4
+ </div>
5
+ </div>
@@ -0,0 +1,40 @@
1
+ import { Component } from '@angular/core';
2
+ import { SxaComponent } from '../sxa.component';
3
+
4
+ @Component({
5
+ selector: 'app-column-splitter',
6
+ templateUrl: './column-splitter.component.html',
7
+ host: {
8
+ 'class': 'row component column-splitter',
9
+ '[class]': 'columnSplitterStyles',
10
+ '[id]' : 'id'
11
+ }
12
+ })
13
+ export class ColumnSplitterComponent extends SxaComponent {
14
+ get columnSplitterStyles(): string {
15
+ return `${this.rendering.params.GridParameters ?? ''} ${this.rendering.params.Styles ??
16
+ ''}`.trimEnd();
17
+ }
18
+
19
+ get columnWidths(): string[] {
20
+ return Array.from({ length: 8 }, (_, i) => this.rendering.params[`ColumnWidth${i + 1}`]);
21
+ }
22
+
23
+ get columnStyles(): string[] {
24
+ return Array.from({ length: 8 }, (_, i) => this.rendering.params[`Styles${i + 1}`]);
25
+ }
26
+
27
+ get enabledPlaceholders(): string[] {
28
+ return this.rendering.params.EnabledPlaceholders.split(',');
29
+ }
30
+
31
+ getColumnClass(index: number): string {
32
+ const widthClass = this.columnWidths[index] || '';
33
+ const styleClass = this.columnStyles[index] || '';
34
+ return `${widthClass} ${styleClass}`.trim();
35
+ }
36
+
37
+ getPlaceholderName(ph: string): string {
38
+ return `column-${ph}-{*}`;
39
+ }
40
+ }
@@ -0,0 +1,14 @@
1
+ <div class="container-wrapper" *ngIf="wrapped; else default">
2
+ <ng-container *ngTemplateOutlet="default"></ng-container>
3
+ </div>
4
+ <ng-template #default>
5
+ <div class="component container-default {{ styles }}" [attr.id]="id">
6
+ <div class="component-content" [ngStyle]="backgroundStyle">
7
+ <sc-placeholder
8
+ [name]="placeholderName"
9
+ [rendering]="rendering"
10
+ class="row">
11
+ </sc-placeholder>
12
+ </div>
13
+ </div>
14
+ </ng-template>
@@ -0,0 +1,30 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { SxaComponent } from '../sxa.component';
3
+
4
+ @Component({
5
+ selector: 'app-container',
6
+ templateUrl: './container.component.html',
7
+ })
8
+ export class ContainerComponent extends SxaComponent implements OnInit {
9
+ placeholderName: string;
10
+ wrapped: boolean;
11
+
12
+ override ngOnInit() {
13
+ super.ngOnInit();
14
+
15
+ this.placeholderName = `container-${this.rendering.params?.DynamicPlaceholderId}`;
16
+ this.wrapped = this.rendering.params?.Styles?.split(' ').includes('container');
17
+ }
18
+
19
+ get backgroundStyle() {
20
+ const backgroundImage = this.rendering.params?.BackgroundImage;
21
+ const mediaUrlPattern = new RegExp(/mediaurl=\"([^"]*)\"/, 'i');
22
+ if (!backgroundImage || !backgroundImage.match(mediaUrlPattern)) {
23
+ return {};
24
+ }
25
+ const mediaUrl = backgroundImage.match(mediaUrlPattern)[1];
26
+ return {
27
+ backgroundImage: `url('${mediaUrl}')`,
28
+ };
29
+ }
30
+ }
@@ -0,0 +1,36 @@
1
+ <ng-container [ngTemplateOutlet]="variant"></ng-container>
2
+
3
+ <ng-template #default>
4
+ <div class="component image {{ styles }}" [attr.id]="id" *ngIf="rendering.fields; else empty">
5
+ <div class="component-content">
6
+ <ng-container *ngIf="isEditing || !rendering.fields.TargetUrl?.value?.href; else withLink">
7
+ <img *scImage="rendering.fields.Image" />
8
+ </ng-container>
9
+ <span class="image-caption field-imagecaption" *scText="rendering.fields.ImageCaption"></span>
10
+ </div>
11
+ </div>
12
+ </ng-template>
13
+
14
+ <ng-template #banner>
15
+ <div class="component hero-banner {{ styles }} {{ classHeroBannerEmpty }}" [attr.id]="id">
16
+ <div class="component-content sc-sxa-image-hero-banner" [ngStyle]="backgroundStyle">
17
+ <ng-container *ngIf="isEditing">
18
+ <img *scImage="modifyImageProps" />
19
+ </ng-container>
20
+ </div>
21
+ </div>
22
+ </ng-template>
23
+
24
+ <ng-template #withLink>
25
+ <a *scGenericLink="rendering.fields.TargetUrl">
26
+ <img *scImage="rendering.fields.Image" />
27
+ </a>
28
+ </ng-template>
29
+
30
+ <ng-template #empty>
31
+ <div class="component image {{ styles }}">
32
+ <div class="component-content">
33
+ <span class="is-empty-hint">Image</span>
34
+ </div>
35
+ </div>
36
+ </ng-template>
@@ -0,0 +1,67 @@
1
+ import { Component, OnInit, OnDestroy, ViewChild, TemplateRef } from '@angular/core';
2
+ import { Subscription } from 'rxjs';
3
+ import { EditMode, ImageField } from '@sitecore-jss/sitecore-jss-angular';
4
+ import { SxaComponent } from '../sxa.component';
5
+ import { JssContextService } from '../../jss-context.service';
6
+
7
+ @Component({
8
+ selector: 'app-image',
9
+ templateUrl: './image.component.html',
10
+ })
11
+ export class ImageComponent extends SxaComponent implements OnInit, OnDestroy {
12
+ @ViewChild('default', { static: true }) defaultVariant: TemplateRef<any>;
13
+ @ViewChild('banner', { static: true }) bannerVariant: TemplateRef<any>;
14
+ classHeroBannerEmpty = '';
15
+ backgroundStyle = {};
16
+ modifyImageProps = {};
17
+ isEditing = false;
18
+ private contextSubscription: Subscription;
19
+
20
+ constructor(private jssContext: JssContextService) {
21
+ super();
22
+ }
23
+
24
+ ngOnInit() {
25
+ super.ngOnInit();
26
+
27
+ const imageField = this.rendering.fields?.Image as ImageField;
28
+ this.backgroundStyle = imageField?.value?.src && {
29
+ 'background-image': `url('${imageField.value.src}')`,
30
+ };
31
+
32
+ this.contextSubscription = this.jssContext.state.subscribe((newState) => {
33
+ this.isEditing = newState.sitecore && newState.sitecore.context.pageEditing;
34
+
35
+ this.classHeroBannerEmpty =
36
+ this.isEditing && imageField?.value?.class === 'scEmptyImage' ? 'hero-banner-empty' : '';
37
+
38
+ const isMetadataMode = newState.sitecore?.context?.editMode === EditMode.Metadata;
39
+ this.modifyImageProps = !isMetadataMode
40
+ ? {
41
+ ...imageField,
42
+ editable: imageField?.editable
43
+ ?.replace(`width="${imageField?.value?.width}"`, 'width="100%"')
44
+ .replace(`height="${imageField?.value?.height}"`, 'height="100%"'),
45
+ }
46
+ : {
47
+ ...imageField,
48
+ value: {
49
+ ...imageField?.value,
50
+ style: { width: '100%', height: '100%' },
51
+ },
52
+ };
53
+ });
54
+ }
55
+
56
+ ngOnDestroy() {
57
+ if (this.contextSubscription) {
58
+ this.contextSubscription.unsubscribe();
59
+ }
60
+ }
61
+
62
+ public get variant(): TemplateRef<any> {
63
+ return this.rendering.params?.FieldNames === 'Banner'
64
+ ? this.bannerVariant
65
+ : this.defaultVariant;
66
+ }
67
+ }
@@ -0,0 +1,15 @@
1
+ <div class="component-content">
2
+ <ng-container *ngIf="title; else defaultTitle">
3
+ <h3 *scText="title"></h3>
4
+ </ng-container>
5
+ <ul>
6
+ <li *ngFor="let fieldLink of fieldLinks; index as i" [ngClass]="getFieldLinkClass(i)">
7
+ <div class="field-link">
8
+ <a *scGenericLink="fieldLink"></a>
9
+ </div>
10
+ </li>
11
+ </ul>
12
+ </div>
13
+ <ng-template #defaultTitle>
14
+ <span class="is-empty-hint">Link list</span>
15
+ </ng-template>
@@ -0,0 +1,41 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { SxaComponent } from '../sxa.component';
3
+ import { Field, LinkField, SxaLinkListFields } from '@sitecore-jss/sitecore-jss-angular';
4
+
5
+ @Component({
6
+ selector: 'app-link-list',
7
+ templateUrl: './link-list.component.html',
8
+ host: {
9
+ 'class': 'component link-list',
10
+ '[class]': 'styles',
11
+ '[attr.id]': 'id',
12
+ }
13
+ })
14
+ export class LinkListComponent extends SxaComponent<SxaLinkListFields> implements OnInit {
15
+ title?: Field<string>;
16
+ fieldLinks: LinkField[] = [];
17
+
18
+ getFieldLinkClass(index: number): string {
19
+ let className = `item${index}`;
20
+ className += (index + 1) % 2 == 0 ? ' even' : ' odd';
21
+ if (index === 0) {
22
+ className += ' first';
23
+ }
24
+ if (index + 1 === this.fieldLinks.length) {
25
+ className += ' last';
26
+ }
27
+ return className;
28
+ }
29
+
30
+ ngOnInit() {
31
+ super.ngOnInit();
32
+ const datasource = this.rendering.fields?.data?.datasource;
33
+ if (datasource) {
34
+ this.title = datasource.field?.title as Field<string>;
35
+ datasource.children.results.forEach(item => {
36
+ if (item.field?.link)
37
+ this.fieldLinks.push(item.field.link as LinkField);
38
+ });
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,23 @@
1
+ <li [class]="cssClasses" [ngClass]="{ active: isActive }" tabIndex="0">
2
+ <div [ngClass]="{ 'navigation-title': true, child: hasChildren }" (click)="isActive = !isActive">
3
+ <a *scRouterLink="linkField" (click)="onClick($event)">
4
+ <ng-container *ngIf="navItemFields.NavigationTitle"
5
+ ><span *scText="navItemFields.NavigationTitle"></span
6
+ ></ng-container>
7
+ <ng-container *ngIf="!navItemFields.NavigationTitle && navItemFields.Title">
8
+ <span *scText="navItemFields.Title"></span
9
+ ></ng-container>
10
+ <ng-container *ngIf="!navItemFields.NavigationTitle && !navItemFields.Title">{{
11
+ navItemFields.DisplayName
12
+ }}</ng-container>
13
+ </a>
14
+ </div>
15
+ <ul *ngIf="hasChildren" class="clearfix">
16
+ <app-navigation-item
17
+ *ngFor="let childNavItemFields of navItemFields.Children"
18
+ [navItemFields]="childNavItemFields"
19
+ [relativeLevel]="childrenRelativeLevel"
20
+ (childLinkClickEvent)="onClick($event)"
21
+ ></app-navigation-item>
22
+ </ul>
23
+ </li>