@sitecore-content-sdk/core 1.3.0-canary.9 → 1.4.0-canary.2

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 (342) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/cache-client.js +55 -54
  3. package/dist/cjs/client/constants.js +7 -7
  4. package/dist/cjs/client/edge-proxy.js +24 -22
  5. package/dist/cjs/client/index.js +15 -15
  6. package/dist/cjs/client/models.js +2 -2
  7. package/dist/cjs/client/sitecore-client.js +421 -419
  8. package/dist/cjs/client/utils.js +47 -46
  9. package/dist/cjs/config/define-config.js +194 -193
  10. package/dist/cjs/config/index.js +7 -7
  11. package/dist/cjs/config/models.js +12 -11
  12. package/dist/cjs/config-cli/define-cli-config.js +23 -22
  13. package/dist/cjs/config-cli/index.js +7 -7
  14. package/dist/cjs/config-cli/models.js +8 -7
  15. package/dist/cjs/constants.js +49 -17
  16. package/dist/cjs/debug.js +48 -46
  17. package/dist/cjs/editing/codegen/index.js +14 -9
  18. package/dist/cjs/editing/codegen/preview.js +277 -193
  19. package/dist/cjs/editing/component-layout-service.js +62 -61
  20. package/dist/cjs/editing/design-library.js +183 -126
  21. package/dist/cjs/editing/editing-service.js +75 -74
  22. package/dist/cjs/editing/index.js +33 -27
  23. package/dist/cjs/editing/metadata.js +42 -42
  24. package/dist/cjs/editing/models.js +44 -38
  25. package/dist/cjs/editing/utils.js +108 -90
  26. package/dist/cjs/form/form.js +81 -78
  27. package/dist/cjs/form/index.js +7 -7
  28. package/dist/cjs/graphql-request-client.js +108 -107
  29. package/dist/cjs/i18n/dictionary-service.js +122 -121
  30. package/dist/cjs/i18n/index.js +7 -7
  31. package/dist/cjs/i18n/utils.js +16 -15
  32. package/dist/cjs/index.js +60 -60
  33. package/dist/cjs/layout/content-styles.js +72 -71
  34. package/dist/cjs/layout/index.js +24 -24
  35. package/dist/cjs/layout/layout-service.js +62 -57
  36. package/dist/cjs/layout/models.js +39 -34
  37. package/dist/cjs/layout/themes.js +76 -75
  38. package/dist/cjs/layout/utils.js +117 -110
  39. package/dist/cjs/media/index.js +38 -38
  40. package/dist/cjs/media/media-api.js +100 -96
  41. package/dist/cjs/models.js +2 -2
  42. package/dist/cjs/native-fetcher.js +194 -179
  43. package/dist/cjs/personalize/index.js +15 -15
  44. package/dist/cjs/personalize/layout-personalizer.js +98 -97
  45. package/dist/cjs/personalize/personalize-service.js +98 -94
  46. package/dist/cjs/personalize/utils.js +143 -136
  47. package/dist/cjs/retries.js +43 -42
  48. package/dist/cjs/site/error-pages-service.js +65 -64
  49. package/dist/cjs/site/index.js +26 -26
  50. package/dist/cjs/site/models.js +2 -2
  51. package/dist/cjs/site/redirects-service.js +94 -81
  52. package/dist/cjs/site/robots-service.js +66 -65
  53. package/dist/cjs/site/site-resolver.js +73 -72
  54. package/dist/cjs/site/siteinfo-service.js +84 -80
  55. package/dist/cjs/site/sitemap-xml-service.js +84 -83
  56. package/dist/cjs/site/sitepath-service.js +165 -164
  57. package/dist/cjs/site/utils.js +55 -47
  58. package/dist/cjs/sitecore-service-base.js +36 -36
  59. package/dist/cjs/tools/auth/flow.js +65 -64
  60. package/dist/cjs/tools/auth/index.js +5 -5
  61. package/dist/cjs/tools/auth/models.js +2 -2
  62. package/dist/cjs/tools/auth/tenant-store.js +38 -38
  63. package/dist/cjs/tools/codegen/component-generation.js +52 -50
  64. package/dist/cjs/tools/codegen/extract-files.js +105 -107
  65. package/dist/cjs/tools/codegen/import-map.js +401 -349
  66. package/dist/cjs/tools/codegen/utils.js +418 -418
  67. package/dist/cjs/tools/generate-map.js +2 -2
  68. package/dist/cjs/tools/generateMetadata.js +36 -35
  69. package/dist/cjs/tools/generateSites.js +59 -58
  70. package/dist/cjs/tools/index.js +75 -73
  71. package/dist/cjs/tools/scaffold.js +60 -59
  72. package/dist/cjs/tools/templating/components.js +96 -266
  73. package/dist/cjs/tools/templating/index.js +11 -14
  74. package/dist/cjs/tools/templating/plugins.js +80 -78
  75. package/dist/cjs/tools/templating/utils.js +67 -66
  76. package/dist/cjs/utils/ensurePath.js +20 -20
  77. package/dist/cjs/utils/env.js +28 -27
  78. package/dist/cjs/utils/globalCache.js +55 -0
  79. package/dist/cjs/utils/index.js +26 -21
  80. package/dist/cjs/utils/is-server.js +11 -10
  81. package/dist/cjs/utils/normalize-url.js +5 -5
  82. package/dist/cjs/utils/timeout-promise.js +31 -31
  83. package/dist/cjs/utils/utils.js +254 -229
  84. package/dist/esm/cache-client.js +51 -50
  85. package/dist/esm/client/constants.js +4 -4
  86. package/dist/esm/client/edge-proxy.js +19 -17
  87. package/dist/esm/client/index.js +5 -5
  88. package/dist/esm/client/models.js +1 -1
  89. package/dist/esm/client/sitecore-client.js +414 -412
  90. package/dist/esm/client/utils.js +43 -42
  91. package/dist/esm/config/define-config.js +188 -187
  92. package/dist/esm/config/index.js +2 -2
  93. package/dist/esm/config/models.js +9 -8
  94. package/dist/esm/config-cli/define-cli-config.js +19 -18
  95. package/dist/esm/config-cli/index.js +2 -2
  96. package/dist/esm/config-cli/models.js +5 -4
  97. package/dist/esm/constants.js +46 -14
  98. package/dist/esm/debug.js +41 -39
  99. package/dist/esm/editing/codegen/index.js +1 -1
  100. package/dist/esm/editing/codegen/preview.js +263 -185
  101. package/dist/esm/editing/component-layout-service.js +55 -54
  102. package/dist/esm/editing/design-library.js +171 -117
  103. package/dist/esm/editing/editing-service.js +68 -67
  104. package/dist/esm/editing/index.js +6 -5
  105. package/dist/esm/editing/metadata.js +39 -39
  106. package/dist/esm/editing/models.js +41 -35
  107. package/dist/esm/editing/utils.js +98 -80
  108. package/dist/esm/form/form.js +72 -69
  109. package/dist/esm/form/index.js +1 -1
  110. package/dist/esm/graphql-request-client.js +101 -100
  111. package/dist/esm/i18n/dictionary-service.js +115 -114
  112. package/dist/esm/i18n/index.js +2 -2
  113. package/dist/esm/i18n/utils.js +13 -12
  114. package/dist/esm/index.js +13 -13
  115. package/dist/esm/layout/content-styles.js +64 -63
  116. package/dist/esm/layout/index.js +6 -6
  117. package/dist/esm/layout/layout-service.js +55 -50
  118. package/dist/esm/layout/models.js +36 -31
  119. package/dist/esm/layout/themes.js +71 -70
  120. package/dist/esm/layout/utils.js +109 -102
  121. package/dist/esm/media/index.js +2 -2
  122. package/dist/esm/media/media-api.js +90 -86
  123. package/dist/esm/models.js +1 -1
  124. package/dist/esm/native-fetcher.js +187 -172
  125. package/dist/esm/personalize/index.js +3 -3
  126. package/dist/esm/personalize/layout-personalizer.js +93 -92
  127. package/dist/esm/personalize/personalize-service.js +91 -87
  128. package/dist/esm/personalize/utils.js +135 -128
  129. package/dist/esm/retries.js +39 -38
  130. package/dist/esm/site/error-pages-service.js +58 -57
  131. package/dist/esm/site/index.js +8 -8
  132. package/dist/esm/site/models.js +1 -1
  133. package/dist/esm/site/redirects-service.js +87 -74
  134. package/dist/esm/site/robots-service.js +59 -58
  135. package/dist/esm/site/site-resolver.js +69 -68
  136. package/dist/esm/site/siteinfo-service.js +77 -73
  137. package/dist/esm/site/sitemap-xml-service.js +77 -76
  138. package/dist/esm/site/sitepath-service.js +157 -156
  139. package/dist/esm/site/utils.js +49 -41
  140. package/dist/esm/sitecore-service-base.js +29 -29
  141. package/dist/esm/tools/auth/flow.js +62 -61
  142. package/dist/esm/tools/auth/index.js +1 -1
  143. package/dist/esm/tools/auth/models.js +1 -1
  144. package/dist/esm/tools/auth/tenant-store.js +35 -35
  145. package/dist/esm/tools/codegen/component-generation.js +44 -42
  146. package/dist/esm/tools/codegen/extract-files.js +99 -101
  147. package/dist/esm/tools/codegen/import-map.js +358 -306
  148. package/dist/esm/tools/codegen/utils.js +373 -373
  149. package/dist/esm/tools/generate-map.js +1 -1
  150. package/dist/esm/tools/generateMetadata.js +29 -28
  151. package/dist/esm/tools/generateSites.js +52 -51
  152. package/dist/esm/tools/index.js +28 -27
  153. package/dist/esm/tools/scaffold.js +52 -51
  154. package/dist/esm/tools/templating/components.js +59 -223
  155. package/dist/esm/tools/templating/index.js +3 -3
  156. package/dist/esm/tools/templating/plugins.js +72 -70
  157. package/dist/esm/tools/templating/utils.js +59 -58
  158. package/dist/esm/utils/ensurePath.js +13 -13
  159. package/dist/esm/utils/env.js +24 -23
  160. package/dist/esm/utils/globalCache.js +49 -0
  161. package/dist/esm/utils/index.js +4 -3
  162. package/dist/esm/utils/is-server.js +9 -8
  163. package/dist/esm/utils/normalize-url.js +1 -1
  164. package/dist/esm/utils/timeout-promise.js +28 -28
  165. package/dist/esm/utils/utils.js +238 -213
  166. package/package.json +73 -5
  167. package/types/cache-client.d.ts +68 -64
  168. package/types/cache-client.d.ts.map +1 -0
  169. package/types/client/constants.d.ts +5 -4
  170. package/types/client/constants.d.ts.map +1 -0
  171. package/types/client/edge-proxy.d.ts +18 -15
  172. package/types/client/edge-proxy.d.ts.map +1 -0
  173. package/types/client/index.d.ts +8 -7
  174. package/types/client/index.d.ts.map +1 -0
  175. package/types/client/models.d.ts +21 -19
  176. package/types/client/models.d.ts.map +1 -0
  177. package/types/client/sitecore-client.d.ts +338 -327
  178. package/types/client/sitecore-client.d.ts.map +1 -0
  179. package/types/client/utils.d.ts +15 -9
  180. package/types/client/utils.d.ts.map +1 -0
  181. package/types/config/define-config.d.ts +20 -18
  182. package/types/config/define-config.d.ts.map +1 -0
  183. package/types/config/index.d.ts +3 -2
  184. package/types/config/index.d.ts.map +1 -0
  185. package/types/config/models.d.ts +287 -268
  186. package/types/config/models.d.ts.map +1 -0
  187. package/types/config-cli/define-cli-config.d.ts +9 -7
  188. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  189. package/types/config-cli/index.d.ts +3 -2
  190. package/types/config-cli/index.d.ts.map +1 -0
  191. package/types/config-cli/models.d.ts +6 -4
  192. package/types/config-cli/models.d.ts.map +1 -0
  193. package/types/constants.d.ts +44 -11
  194. package/types/constants.d.ts.map +1 -0
  195. package/types/debug.d.ts +35 -28
  196. package/types/debug.d.ts.map +1 -0
  197. package/types/editing/codegen/index.d.ts +2 -1
  198. package/types/editing/codegen/index.d.ts.map +1 -0
  199. package/types/editing/codegen/preview.d.ts +256 -195
  200. package/types/editing/codegen/preview.d.ts.map +1 -0
  201. package/types/editing/component-layout-service.d.ts +84 -80
  202. package/types/editing/component-layout-service.d.ts.map +1 -0
  203. package/types/editing/design-library.d.ts +111 -63
  204. package/types/editing/design-library.d.ts.map +1 -0
  205. package/types/editing/editing-service.d.ts +72 -62
  206. package/types/editing/editing-service.d.ts.map +1 -0
  207. package/types/editing/index.d.ts +7 -6
  208. package/types/editing/index.d.ts.map +1 -0
  209. package/types/editing/metadata.d.ts +8 -7
  210. package/types/editing/metadata.d.ts.map +1 -0
  211. package/types/editing/models.d.ts +103 -92
  212. package/types/editing/models.d.ts.map +1 -0
  213. package/types/editing/utils.d.ts +91 -74
  214. package/types/editing/utils.d.ts.map +1 -0
  215. package/types/form/form.d.ts +25 -21
  216. package/types/form/form.d.ts.map +1 -0
  217. package/types/form/index.d.ts +2 -1
  218. package/types/form/index.d.ts.map +1 -0
  219. package/types/graphql-request-client.d.ts +112 -105
  220. package/types/graphql-request-client.d.ts.map +1 -0
  221. package/types/i18n/dictionary-service.d.ts +135 -131
  222. package/types/i18n/dictionary-service.d.ts.map +1 -0
  223. package/types/i18n/index.d.ts +3 -2
  224. package/types/i18n/index.d.ts.map +1 -0
  225. package/types/i18n/utils.d.ts +9 -7
  226. package/types/i18n/utils.d.ts.map +1 -0
  227. package/types/index.d.ts +13 -12
  228. package/types/index.d.ts.map +1 -0
  229. package/types/layout/content-styles.d.ts +20 -18
  230. package/types/layout/content-styles.d.ts.map +1 -0
  231. package/types/layout/index.d.ts +6 -5
  232. package/types/layout/index.d.ts.map +1 -0
  233. package/types/layout/layout-service.d.ts +45 -35
  234. package/types/layout/layout-service.d.ts.map +1 -0
  235. package/types/layout/models.d.ts +174 -151
  236. package/types/layout/models.d.ts.map +1 -0
  237. package/types/layout/themes.d.ts +13 -11
  238. package/types/layout/themes.d.ts.map +1 -0
  239. package/types/layout/utils.d.ts +56 -41
  240. package/types/layout/utils.d.ts.map +1 -0
  241. package/types/media/index.d.ts +3 -2
  242. package/types/media/index.d.ts.map +1 -0
  243. package/types/media/media-api.d.ts +60 -55
  244. package/types/media/media-api.d.ts.map +1 -0
  245. package/types/models.d.ts +94 -84
  246. package/types/models.d.ts.map +1 -0
  247. package/types/native-fetcher.d.ts +124 -114
  248. package/types/native-fetcher.d.ts.map +1 -0
  249. package/types/personalize/index.d.ts +4 -3
  250. package/types/personalize/index.d.ts.map +1 -0
  251. package/types/personalize/layout-personalizer.d.ts +29 -27
  252. package/types/personalize/layout-personalizer.d.ts.map +1 -0
  253. package/types/personalize/personalize-service.d.ts +90 -80
  254. package/types/personalize/personalize-service.d.ts.map +1 -0
  255. package/types/personalize/utils.d.ts +78 -69
  256. package/types/personalize/utils.d.ts.map +1 -0
  257. package/types/retries.d.ts +26 -24
  258. package/types/retries.d.ts.map +1 -0
  259. package/types/site/error-pages-service.d.ts +64 -57
  260. package/types/site/error-pages-service.d.ts.map +1 -0
  261. package/types/site/index.d.ts +10 -9
  262. package/types/site/index.d.ts.map +1 -0
  263. package/types/site/models.d.ts +23 -18
  264. package/types/site/models.d.ts.map +1 -0
  265. package/types/site/redirects-service.d.ts +92 -69
  266. package/types/site/redirects-service.d.ts.map +1 -0
  267. package/types/site/robots-service.d.ts +57 -50
  268. package/types/site/robots-service.d.ts.map +1 -0
  269. package/types/site/site-resolver.d.ts +28 -26
  270. package/types/site/site-resolver.d.ts.map +1 -0
  271. package/types/site/siteinfo-service.d.ts +65 -52
  272. package/types/site/siteinfo-service.d.ts.map +1 -0
  273. package/types/site/sitemap-xml-service.d.ts +63 -56
  274. package/types/site/sitemap-xml-service.d.ts.map +1 -0
  275. package/types/site/sitepath-service.d.ts +137 -134
  276. package/types/site/sitepath-service.d.ts.map +1 -0
  277. package/types/site/utils.d.ts +41 -28
  278. package/types/site/utils.d.ts.map +1 -0
  279. package/types/sitecore-service-base.d.ts +31 -30
  280. package/types/sitecore-service-base.d.ts.map +1 -0
  281. package/types/tools/auth/flow.d.ts +29 -27
  282. package/types/tools/auth/flow.d.ts.map +1 -0
  283. package/types/tools/auth/index.d.ts +2 -1
  284. package/types/tools/auth/index.d.ts.map +1 -0
  285. package/types/tools/auth/models.d.ts +35 -33
  286. package/types/tools/auth/models.d.ts.map +1 -0
  287. package/types/tools/auth/tenant-store.d.ts +12 -11
  288. package/types/tools/auth/tenant-store.d.ts.map +1 -0
  289. package/types/tools/codegen/component-generation.d.ts +50 -47
  290. package/types/tools/codegen/component-generation.d.ts.map +1 -0
  291. package/types/tools/codegen/extract-files.d.ts +24 -22
  292. package/types/tools/codegen/extract-files.d.ts.map +1 -0
  293. package/types/tools/codegen/import-map.d.ts +103 -70
  294. package/types/tools/codegen/import-map.d.ts.map +1 -0
  295. package/types/tools/codegen/utils.d.ts +76 -75
  296. package/types/tools/codegen/utils.d.ts.map +1 -0
  297. package/types/tools/generate-map.d.ts +36 -26
  298. package/types/tools/generate-map.d.ts.map +1 -0
  299. package/types/tools/generateMetadata.d.ts +24 -22
  300. package/types/tools/generateMetadata.d.ts.map +1 -0
  301. package/types/tools/generateSites.d.ts +25 -22
  302. package/types/tools/generateSites.d.ts.map +1 -0
  303. package/types/tools/index.d.ts +22 -20
  304. package/types/tools/index.d.ts.map +1 -0
  305. package/types/tools/scaffold.d.ts +27 -25
  306. package/types/tools/scaffold.d.ts.map +1 -0
  307. package/types/tools/templating/components.d.ts +104 -103
  308. package/types/tools/templating/components.d.ts.map +1 -0
  309. package/types/tools/templating/index.d.ts +4 -3
  310. package/types/tools/templating/index.d.ts.map +1 -0
  311. package/types/tools/templating/plugins.d.ts +71 -67
  312. package/types/tools/templating/plugins.d.ts.map +1 -0
  313. package/types/tools/templating/utils.d.ts +42 -40
  314. package/types/tools/templating/utils.d.ts.map +1 -0
  315. package/types/utils/ensurePath.d.ts +7 -6
  316. package/types/utils/ensurePath.d.ts.map +1 -0
  317. package/types/utils/env.d.ts +9 -7
  318. package/types/utils/env.d.ts.map +1 -0
  319. package/types/utils/globalCache.d.ts +37 -0
  320. package/types/utils/globalCache.d.ts.map +1 -0
  321. package/types/utils/index.d.ts +5 -3
  322. package/types/utils/index.d.ts.map +1 -0
  323. package/types/utils/is-server.d.ts +8 -6
  324. package/types/utils/is-server.d.ts.map +1 -0
  325. package/types/utils/normalize-url.d.ts +2 -1
  326. package/types/utils/normalize-url.d.ts.map +1 -0
  327. package/types/utils/timeout-promise.d.ts +18 -17
  328. package/types/utils/timeout-promise.d.ts.map +1 -0
  329. package/types/utils/utils.d.ts +104 -79
  330. package/types/utils/utils.d.ts.map +1 -0
  331. package/client.js +0 -1
  332. package/codegen.js +0 -1
  333. package/config-cli.js +0 -1
  334. package/config.js +0 -1
  335. package/editing.js +0 -1
  336. package/i18n.js +0 -1
  337. package/layout.js +0 -1
  338. package/media.js +0 -1
  339. package/personalize.js +0 -1
  340. package/site.js +0 -1
  341. package/tools.js +0 -1
  342. package/utils.js +0 -1
@@ -1,75 +1,76 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStylesheetUrl = void 0;
4
- exports.getDesignLibraryStylesheetLinks = getDesignLibraryStylesheetLinks;
5
- const _1 = require(".");
6
- const constants_1 = require("../constants");
7
- const normalize_url_1 = require("../utils/normalize-url");
8
- /**
9
- * Pattern for library ids
10
- * @example -library--foo
11
- */
12
- const STYLES_LIBRARY_ID_REGEX = /-library--([^\s]+)/;
13
- /**
14
- * Walks through rendering tree and returns list of links of all FEAAS, BYOC or SXA Design Library Stylesheets that are used
15
- * @param {LayoutServiceData} layoutData Layout service data
16
- * @param {string} sitecoreEdgeContextId Sitecore Edge Context ID
17
- * @param {string} [sitecoreEdgeUrl] Sitecore Edge Platform URL. Default is https://edge-platform.sitecorecloud.io
18
- * @returns {HTMLLink[]} library stylesheet links
19
- */
20
- function getDesignLibraryStylesheetLinks(layoutData, sitecoreEdgeContextId, sitecoreEdgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT) {
21
- const ids = new Set();
22
- if (!layoutData.sitecore.route)
23
- return [];
24
- traverseComponent(layoutData.sitecore.route, ids);
25
- return [...ids].map((id) => ({
26
- href: (0, exports.getStylesheetUrl)(id, sitecoreEdgeContextId, sitecoreEdgeUrl),
27
- rel: 'stylesheet',
28
- }));
29
- }
30
- const getStylesheetUrl = (id, sitecoreEdgeContextId, sitecoreEdgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT) => {
31
- return `${(0, normalize_url_1.normalizeUrl)(sitecoreEdgeUrl)}/v1/files/components/styles/${id}.css?sitecoreContextId=${sitecoreEdgeContextId}`;
32
- };
33
- exports.getStylesheetUrl = getStylesheetUrl;
34
- /**
35
- * Traverse placeholder and components to add library ids
36
- * @param {ComponentRendering[]} components
37
- * @param {Set<string>} ids library ids
38
- */
39
- const traversePlaceholder = (components, ids) => {
40
- components.map((component) => {
41
- return traverseComponent(component, ids);
42
- });
43
- };
44
- /**
45
- * Traverse component and children to add library ids
46
- * @param {RouteData | ComponentRendering | HtmlElementRendering} component component data
47
- * @param {Set<string>} ids library ids
48
- */
49
- const traverseComponent = (component, ids) => {
50
- var _a, _b, _c, _d, _e, _f;
51
- let libraryId = undefined;
52
- if ('params' in component && component.params) {
53
- // LibraryID in css class name takes precedence over LibraryId attribute
54
- libraryId =
55
- ((_b = (_a = component.params.CSSStyles) === null || _a === void 0 ? void 0 : _a.match(STYLES_LIBRARY_ID_REGEX)) === null || _b === void 0 ? void 0 : _b[1]) ||
56
- ((_d = (_c = component.params.Styles) === null || _c === void 0 ? void 0 : _c.match(STYLES_LIBRARY_ID_REGEX)) === null || _d === void 0 ? void 0 : _d[1]) ||
57
- component.params.LibraryId ||
58
- undefined;
59
- }
60
- // if params are empty we try to fall back to data source
61
- if (!libraryId && 'fields' in component && component.fields) {
62
- libraryId =
63
- ((_e = (0, _1.getFieldValue)(component.fields, 'CSSStyles', '').match(STYLES_LIBRARY_ID_REGEX)) === null || _e === void 0 ? void 0 : _e[1]) ||
64
- ((_f = (0, _1.getFieldValue)(component.fields, 'Styles', '').match(STYLES_LIBRARY_ID_REGEX)) === null || _f === void 0 ? void 0 : _f[1]) ||
65
- (0, _1.getFieldValue)(component.fields, 'LibraryId', '') ||
66
- undefined;
67
- }
68
- if (libraryId) {
69
- ids.add(libraryId);
70
- }
71
- const placeholders = component.placeholders || {};
72
- Object.keys(placeholders).forEach((placeholder) => {
73
- traversePlaceholder(placeholders[placeholder], ids);
74
- });
75
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStylesheetUrl = void 0;
4
+ exports.getDesignLibraryStylesheetLinks = getDesignLibraryStylesheetLinks;
5
+ const _1 = require(".");
6
+ const constants_1 = require("../constants");
7
+ const normalize_url_1 = require("../utils/normalize-url");
8
+ /**
9
+ * Pattern for library ids
10
+ * @example -library--foo
11
+ */
12
+ const STYLES_LIBRARY_ID_REGEX = /-library--([^\s]+)/;
13
+ /**
14
+ * Walks through rendering tree and returns list of links of all FEAAS, BYOC or SXA Design Library Stylesheets that are used
15
+ * @param {LayoutServiceData} layoutData Layout service data
16
+ * @param {string} sitecoreEdgeContextId Sitecore Edge Context ID
17
+ * @param {string} [sitecoreEdgeUrl] Sitecore Edge Platform URL. Default is https://edge-platform.sitecorecloud.io
18
+ * @returns {HTMLLink[]} library stylesheet links
19
+ * @public
20
+ */
21
+ function getDesignLibraryStylesheetLinks(layoutData, sitecoreEdgeContextId, sitecoreEdgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT) {
22
+ const ids = new Set();
23
+ if (!layoutData.sitecore.route)
24
+ return [];
25
+ traverseComponent(layoutData.sitecore.route, ids);
26
+ return [...ids].map((id) => ({
27
+ href: (0, exports.getStylesheetUrl)(id, sitecoreEdgeContextId, sitecoreEdgeUrl),
28
+ rel: 'stylesheet',
29
+ }));
30
+ }
31
+ const getStylesheetUrl = (id, sitecoreEdgeContextId, sitecoreEdgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT) => {
32
+ return `${(0, normalize_url_1.normalizeUrl)(sitecoreEdgeUrl)}/v1/files/components/styles/${id}.css?sitecoreContextId=${sitecoreEdgeContextId}`;
33
+ };
34
+ exports.getStylesheetUrl = getStylesheetUrl;
35
+ /**
36
+ * Traverse placeholder and components to add library ids
37
+ * @param {ComponentRendering[]} components
38
+ * @param {Set<string>} ids library ids
39
+ */
40
+ const traversePlaceholder = (components, ids) => {
41
+ components.map((component) => {
42
+ return traverseComponent(component, ids);
43
+ });
44
+ };
45
+ /**
46
+ * Traverse component and children to add library ids
47
+ * @param {RouteData | ComponentRendering | HtmlElementRendering} component component data
48
+ * @param {Set<string>} ids library ids
49
+ */
50
+ const traverseComponent = (component, ids) => {
51
+ var _a, _b, _c, _d, _e, _f;
52
+ let libraryId = undefined;
53
+ if ('params' in component && component.params) {
54
+ // LibraryID in css class name takes precedence over LibraryId attribute
55
+ libraryId =
56
+ ((_b = (_a = component.params.CSSStyles) === null || _a === void 0 ? void 0 : _a.match(STYLES_LIBRARY_ID_REGEX)) === null || _b === void 0 ? void 0 : _b[1]) ||
57
+ ((_d = (_c = component.params.Styles) === null || _c === void 0 ? void 0 : _c.match(STYLES_LIBRARY_ID_REGEX)) === null || _d === void 0 ? void 0 : _d[1]) ||
58
+ component.params.LibraryId ||
59
+ undefined;
60
+ }
61
+ // if params are empty we try to fall back to data source
62
+ if (!libraryId && 'fields' in component && component.fields) {
63
+ libraryId =
64
+ ((_e = (0, _1.getFieldValue)(component.fields, 'CSSStyles', '').match(STYLES_LIBRARY_ID_REGEX)) === null || _e === void 0 ? void 0 : _e[1]) ||
65
+ ((_f = (0, _1.getFieldValue)(component.fields, 'Styles', '').match(STYLES_LIBRARY_ID_REGEX)) === null || _f === void 0 ? void 0 : _f[1]) ||
66
+ (0, _1.getFieldValue)(component.fields, 'LibraryId', '') ||
67
+ undefined;
68
+ }
69
+ if (libraryId) {
70
+ ids.add(libraryId);
71
+ }
72
+ const placeholders = component.placeholders || {};
73
+ Object.keys(placeholders).forEach((placeholder) => {
74
+ traversePlaceholder(placeholders[placeholder], ids);
75
+ });
76
+ };
@@ -1,110 +1,117 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EMPTY_DATE_FIELD_VALUE = exports.isDynamicPlaceholder = exports.getDynamicPlaceholderPattern = void 0;
4
- exports.getFieldValue = getFieldValue;
5
- exports.getChildPlaceholder = getChildPlaceholder;
6
- exports.isFieldValueEmpty = isFieldValueEmpty;
7
- /**
8
- * @param {ComponentRendering | Fields} renderingOrFields the rendering or fields object to extract the field from
9
- * @param {string} fieldName the name of the field to extract
10
- * @param {T} [defaultValue] the default value to return if the field is not defined
11
- * @returns {Field | T} the field value or the default value if the field is not defined
12
- */
13
- // eslint-disable-next-line no-redeclare
14
- function getFieldValue(renderingOrFields, fieldName, defaultValue) {
15
- if (!renderingOrFields || !fieldName) {
16
- return defaultValue;
17
- }
18
- const fields = renderingOrFields;
19
- const field = fields[fieldName];
20
- if (field && typeof field.value !== 'undefined') {
21
- return field.value;
22
- }
23
- const rendering = renderingOrFields;
24
- if (!rendering.fields ||
25
- !rendering.fields[fieldName] ||
26
- typeof rendering.fields[fieldName].value === 'undefined') {
27
- return defaultValue;
28
- }
29
- return rendering.fields[fieldName].value;
30
- }
31
- /**
32
- * Gets rendering definitions in a given child placeholder under a current rendering.
33
- * @param {ComponentRendering} rendering
34
- * @param {string} placeholderName
35
- * @returns {ComponentRendering[]} child placeholder
36
- */
37
- function getChildPlaceholder(rendering, placeholderName) {
38
- if (!rendering ||
39
- !placeholderName ||
40
- !rendering.placeholders ||
41
- !rendering.placeholders[placeholderName]) {
42
- return [];
43
- }
44
- return rendering.placeholders[placeholderName];
45
- }
46
- /**
47
- * Returns a regular expression pattern for a dynamic placeholder name.
48
- * @param {string} placeholder Placeholder name with a dynamic segment (e.g. 'main-{*}')
49
- * @returns Regular expression pattern for the dynamic segment
50
- */
51
- const getDynamicPlaceholderPattern = (placeholder) => {
52
- return new RegExp(`^${placeholder.replace(/\{\*\}+/i, '\\d+')}$`);
53
- };
54
- exports.getDynamicPlaceholderPattern = getDynamicPlaceholderPattern;
55
- /**
56
- * Checks if the placeholder name is dynamic.
57
- * @param {string} placeholder Placeholder name
58
- * @returns True if the placeholder name is dynamic
59
- */
60
- const isDynamicPlaceholder = (placeholder) => placeholder.indexOf('{*}') !== -1;
61
- exports.isDynamicPlaceholder = isDynamicPlaceholder;
62
- /**
63
- * The default value for an empty Date field.
64
- * This value is defined as a default one by .NET
65
- */
66
- exports.EMPTY_DATE_FIELD_VALUE = '0001-01-01T00:00:00Z';
67
- /**
68
- * Determines if the passed in field object's value is empty.
69
- * @param {GenericFieldValue | Partial<Field>} field the field object.
70
- * Partial<T> type is used here because _field.value_ could be required or optional for the different field types
71
- */
72
- function isFieldValueEmpty(field) {
73
- const isImageFieldEmpty = (fieldValue) => !fieldValue.src;
74
- const isFileFieldEmpty = (fieldValue) => !fieldValue.src;
75
- const isLinkFieldEmpty = (fieldValue) => !fieldValue.href;
76
- const isDateFieldEmpty = (fieldValue) => {
77
- if (typeof fieldValue === 'string') {
78
- return fieldValue === exports.EMPTY_DATE_FIELD_VALUE;
79
- }
80
- else {
81
- return !(typeof (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.getMonth) === 'function' &&
82
- !isNaN(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.getMonth()));
83
- }
84
- };
85
- const isEmpty = (fieldValue) => {
86
- if (fieldValue === null || fieldValue === undefined) {
87
- return true;
88
- }
89
- if (typeof fieldValue === 'object') {
90
- return (isImageFieldEmpty(fieldValue) &&
91
- isFileFieldEmpty(fieldValue) &&
92
- isLinkFieldEmpty(fieldValue) &&
93
- isDateFieldEmpty(fieldValue));
94
- }
95
- else if (typeof fieldValue === 'number' || typeof fieldValue === 'boolean') {
96
- // Avoid returning true for 0 and false values
97
- return false;
98
- }
99
- else {
100
- return !fieldValue || isDateFieldEmpty(fieldValue);
101
- }
102
- };
103
- if (!field)
104
- return true;
105
- const dynamicField = field;
106
- if (dynamicField.value !== undefined) {
107
- return isEmpty(dynamicField.value);
108
- }
109
- return isEmpty(field);
110
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EMPTY_DATE_FIELD_VALUE = exports.isDynamicPlaceholder = exports.getDynamicPlaceholderPattern = void 0;
4
+ exports.getFieldValue = getFieldValue;
5
+ exports.getChildPlaceholder = getChildPlaceholder;
6
+ exports.isFieldValueEmpty = isFieldValueEmpty;
7
+ /**
8
+ * @param {ComponentRendering | Fields} renderingOrFields the rendering or fields object to extract the field from
9
+ * @param {string} fieldName the name of the field to extract
10
+ * @param {T} [defaultValue] the default value to return if the field is not defined
11
+ * @returns {Field | T} the field value or the default value if the field is not defined
12
+ * @public
13
+ */
14
+ // eslint-disable-next-line no-redeclare
15
+ function getFieldValue(renderingOrFields, fieldName, defaultValue) {
16
+ if (!renderingOrFields || !fieldName) {
17
+ return defaultValue;
18
+ }
19
+ const fields = renderingOrFields;
20
+ const field = fields[fieldName];
21
+ if (field && typeof field.value !== 'undefined') {
22
+ return field.value;
23
+ }
24
+ const rendering = renderingOrFields;
25
+ if (!rendering.fields ||
26
+ !rendering.fields[fieldName] ||
27
+ typeof rendering.fields[fieldName].value === 'undefined') {
28
+ return defaultValue;
29
+ }
30
+ return rendering.fields[fieldName].value;
31
+ }
32
+ /**
33
+ * Gets rendering definitions in a given child placeholder under a current rendering.
34
+ * @param {ComponentRendering} rendering
35
+ * @param {string} placeholderName
36
+ * @returns {ComponentRendering[]} child placeholder
37
+ * @public
38
+ */
39
+ function getChildPlaceholder(rendering, placeholderName) {
40
+ if (!rendering ||
41
+ !placeholderName ||
42
+ !rendering.placeholders ||
43
+ !rendering.placeholders[placeholderName]) {
44
+ return [];
45
+ }
46
+ return rendering.placeholders[placeholderName];
47
+ }
48
+ /**
49
+ * Returns a regular expression pattern for a dynamic placeholder name.
50
+ * @param {string} placeholder Placeholder name with a dynamic segment (e.g. 'main-{*}')
51
+ * @returns Regular expression pattern for the dynamic segment
52
+ * @internal
53
+ */
54
+ const getDynamicPlaceholderPattern = (placeholder) => {
55
+ return new RegExp(`^${placeholder.replace(/\{\*\}+/i, '\\d+')}$`);
56
+ };
57
+ exports.getDynamicPlaceholderPattern = getDynamicPlaceholderPattern;
58
+ /**
59
+ * Checks if the placeholder name is dynamic.
60
+ * @param {string} placeholder Placeholder name
61
+ * @returns True if the placeholder name is dynamic
62
+ * @internal
63
+ */
64
+ const isDynamicPlaceholder = (placeholder) => placeholder.indexOf('{*}') !== -1;
65
+ exports.isDynamicPlaceholder = isDynamicPlaceholder;
66
+ /**
67
+ * The default value for an empty Date field.
68
+ * This value is defined as a default one by .NET
69
+ * @internal
70
+ */
71
+ exports.EMPTY_DATE_FIELD_VALUE = '0001-01-01T00:00:00Z';
72
+ /**
73
+ * Determines if the passed in field object's value is empty.
74
+ * @param {GenericFieldValue | Partial<Field>} field the field object.
75
+ * Partial<T> type is used here because _field.value_ could be required or optional for the different field types
76
+ * @returns True if the field value is empty
77
+ * @public
78
+ */
79
+ function isFieldValueEmpty(field) {
80
+ if (!field)
81
+ return true;
82
+ const isImageFieldEmpty = (fieldValue) => !fieldValue.src;
83
+ const isFileFieldEmpty = (fieldValue) => !fieldValue.src;
84
+ const isLinkFieldEmpty = (fieldValue) => !fieldValue.href;
85
+ const isDateFieldEmpty = (fieldValue) => {
86
+ if (typeof fieldValue === 'string') {
87
+ return fieldValue === exports.EMPTY_DATE_FIELD_VALUE;
88
+ }
89
+ else {
90
+ return !(typeof (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.getMonth) === 'function' &&
91
+ !isNaN(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.getMonth()));
92
+ }
93
+ };
94
+ const isEmpty = (fieldValue) => {
95
+ if (fieldValue === null || fieldValue === undefined) {
96
+ return true;
97
+ }
98
+ if (typeof fieldValue === 'object') {
99
+ return (isImageFieldEmpty(fieldValue) &&
100
+ isFileFieldEmpty(fieldValue) &&
101
+ isLinkFieldEmpty(fieldValue) &&
102
+ isDateFieldEmpty(fieldValue));
103
+ }
104
+ else if (typeof fieldValue === 'number' || typeof fieldValue === 'boolean') {
105
+ // Avoid returning true for 0 and false values
106
+ return false;
107
+ }
108
+ else {
109
+ return !fieldValue || isDateFieldEmpty(fieldValue);
110
+ }
111
+ };
112
+ const dynamicField = field;
113
+ if (dynamicField.value !== undefined) {
114
+ return isEmpty(dynamicField.value);
115
+ }
116
+ return isEmpty(field);
117
+ }
@@ -1,38 +1,38 @@
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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.mediaApi = void 0;
37
- const mediaApi = __importStar(require("./media-api"));
38
- exports.mediaApi = mediaApi;
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.mediaApi = void 0;
37
+ const mediaApi = __importStar(require("./media-api"));
38
+ exports.mediaApi = mediaApi;