@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.
- package/README.md +7 -7
- package/dist/cjs/cache-client.js +55 -54
- package/dist/cjs/client/constants.js +7 -7
- package/dist/cjs/client/edge-proxy.js +24 -22
- package/dist/cjs/client/index.js +15 -15
- package/dist/cjs/client/models.js +2 -2
- package/dist/cjs/client/sitecore-client.js +421 -419
- package/dist/cjs/client/utils.js +47 -46
- package/dist/cjs/config/define-config.js +194 -193
- package/dist/cjs/config/index.js +7 -7
- package/dist/cjs/config/models.js +12 -11
- package/dist/cjs/config-cli/define-cli-config.js +23 -22
- package/dist/cjs/config-cli/index.js +7 -7
- package/dist/cjs/config-cli/models.js +8 -7
- package/dist/cjs/constants.js +49 -17
- package/dist/cjs/debug.js +48 -46
- package/dist/cjs/editing/codegen/index.js +14 -9
- package/dist/cjs/editing/codegen/preview.js +277 -193
- package/dist/cjs/editing/component-layout-service.js +62 -61
- package/dist/cjs/editing/design-library.js +183 -126
- package/dist/cjs/editing/editing-service.js +75 -74
- package/dist/cjs/editing/index.js +33 -27
- package/dist/cjs/editing/metadata.js +42 -42
- package/dist/cjs/editing/models.js +44 -38
- package/dist/cjs/editing/utils.js +108 -90
- package/dist/cjs/form/form.js +81 -78
- package/dist/cjs/form/index.js +7 -7
- package/dist/cjs/graphql-request-client.js +108 -107
- package/dist/cjs/i18n/dictionary-service.js +122 -121
- package/dist/cjs/i18n/index.js +7 -7
- package/dist/cjs/i18n/utils.js +16 -15
- package/dist/cjs/index.js +60 -60
- package/dist/cjs/layout/content-styles.js +72 -71
- package/dist/cjs/layout/index.js +24 -24
- package/dist/cjs/layout/layout-service.js +62 -57
- package/dist/cjs/layout/models.js +39 -34
- package/dist/cjs/layout/themes.js +76 -75
- package/dist/cjs/layout/utils.js +117 -110
- package/dist/cjs/media/index.js +38 -38
- package/dist/cjs/media/media-api.js +100 -96
- package/dist/cjs/models.js +2 -2
- package/dist/cjs/native-fetcher.js +194 -179
- package/dist/cjs/personalize/index.js +15 -15
- package/dist/cjs/personalize/layout-personalizer.js +98 -97
- package/dist/cjs/personalize/personalize-service.js +98 -94
- package/dist/cjs/personalize/utils.js +143 -136
- package/dist/cjs/retries.js +43 -42
- package/dist/cjs/site/error-pages-service.js +65 -64
- package/dist/cjs/site/index.js +26 -26
- package/dist/cjs/site/models.js +2 -2
- package/dist/cjs/site/redirects-service.js +94 -81
- package/dist/cjs/site/robots-service.js +66 -65
- package/dist/cjs/site/site-resolver.js +73 -72
- package/dist/cjs/site/siteinfo-service.js +84 -80
- package/dist/cjs/site/sitemap-xml-service.js +84 -83
- package/dist/cjs/site/sitepath-service.js +165 -164
- package/dist/cjs/site/utils.js +55 -47
- package/dist/cjs/sitecore-service-base.js +36 -36
- package/dist/cjs/tools/auth/flow.js +65 -64
- package/dist/cjs/tools/auth/index.js +5 -5
- package/dist/cjs/tools/auth/models.js +2 -2
- package/dist/cjs/tools/auth/tenant-store.js +38 -38
- package/dist/cjs/tools/codegen/component-generation.js +52 -50
- package/dist/cjs/tools/codegen/extract-files.js +105 -107
- package/dist/cjs/tools/codegen/import-map.js +401 -349
- package/dist/cjs/tools/codegen/utils.js +418 -418
- package/dist/cjs/tools/generate-map.js +2 -2
- package/dist/cjs/tools/generateMetadata.js +36 -35
- package/dist/cjs/tools/generateSites.js +59 -58
- package/dist/cjs/tools/index.js +75 -73
- package/dist/cjs/tools/scaffold.js +60 -59
- package/dist/cjs/tools/templating/components.js +96 -266
- package/dist/cjs/tools/templating/index.js +11 -14
- package/dist/cjs/tools/templating/plugins.js +80 -78
- package/dist/cjs/tools/templating/utils.js +67 -66
- package/dist/cjs/utils/ensurePath.js +20 -20
- package/dist/cjs/utils/env.js +28 -27
- package/dist/cjs/utils/globalCache.js +55 -0
- package/dist/cjs/utils/index.js +26 -21
- package/dist/cjs/utils/is-server.js +11 -10
- package/dist/cjs/utils/normalize-url.js +5 -5
- package/dist/cjs/utils/timeout-promise.js +31 -31
- package/dist/cjs/utils/utils.js +254 -229
- package/dist/esm/cache-client.js +51 -50
- package/dist/esm/client/constants.js +4 -4
- package/dist/esm/client/edge-proxy.js +19 -17
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/models.js +1 -1
- package/dist/esm/client/sitecore-client.js +414 -412
- package/dist/esm/client/utils.js +43 -42
- package/dist/esm/config/define-config.js +188 -187
- package/dist/esm/config/index.js +2 -2
- package/dist/esm/config/models.js +9 -8
- package/dist/esm/config-cli/define-cli-config.js +19 -18
- package/dist/esm/config-cli/index.js +2 -2
- package/dist/esm/config-cli/models.js +5 -4
- package/dist/esm/constants.js +46 -14
- package/dist/esm/debug.js +41 -39
- package/dist/esm/editing/codegen/index.js +1 -1
- package/dist/esm/editing/codegen/preview.js +263 -185
- package/dist/esm/editing/component-layout-service.js +55 -54
- package/dist/esm/editing/design-library.js +171 -117
- package/dist/esm/editing/editing-service.js +68 -67
- package/dist/esm/editing/index.js +6 -5
- package/dist/esm/editing/metadata.js +39 -39
- package/dist/esm/editing/models.js +41 -35
- package/dist/esm/editing/utils.js +98 -80
- package/dist/esm/form/form.js +72 -69
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/graphql-request-client.js +101 -100
- package/dist/esm/i18n/dictionary-service.js +115 -114
- package/dist/esm/i18n/index.js +2 -2
- package/dist/esm/i18n/utils.js +13 -12
- package/dist/esm/index.js +13 -13
- package/dist/esm/layout/content-styles.js +64 -63
- package/dist/esm/layout/index.js +6 -6
- package/dist/esm/layout/layout-service.js +55 -50
- package/dist/esm/layout/models.js +36 -31
- package/dist/esm/layout/themes.js +71 -70
- package/dist/esm/layout/utils.js +109 -102
- package/dist/esm/media/index.js +2 -2
- package/dist/esm/media/media-api.js +90 -86
- package/dist/esm/models.js +1 -1
- package/dist/esm/native-fetcher.js +187 -172
- package/dist/esm/personalize/index.js +3 -3
- package/dist/esm/personalize/layout-personalizer.js +93 -92
- package/dist/esm/personalize/personalize-service.js +91 -87
- package/dist/esm/personalize/utils.js +135 -128
- package/dist/esm/retries.js +39 -38
- package/dist/esm/site/error-pages-service.js +58 -57
- package/dist/esm/site/index.js +8 -8
- package/dist/esm/site/models.js +1 -1
- package/dist/esm/site/redirects-service.js +87 -74
- package/dist/esm/site/robots-service.js +59 -58
- package/dist/esm/site/site-resolver.js +69 -68
- package/dist/esm/site/siteinfo-service.js +77 -73
- package/dist/esm/site/sitemap-xml-service.js +77 -76
- package/dist/esm/site/sitepath-service.js +157 -156
- package/dist/esm/site/utils.js +49 -41
- package/dist/esm/sitecore-service-base.js +29 -29
- package/dist/esm/tools/auth/flow.js +62 -61
- package/dist/esm/tools/auth/index.js +1 -1
- package/dist/esm/tools/auth/models.js +1 -1
- package/dist/esm/tools/auth/tenant-store.js +35 -35
- package/dist/esm/tools/codegen/component-generation.js +44 -42
- package/dist/esm/tools/codegen/extract-files.js +99 -101
- package/dist/esm/tools/codegen/import-map.js +358 -306
- package/dist/esm/tools/codegen/utils.js +373 -373
- package/dist/esm/tools/generate-map.js +1 -1
- package/dist/esm/tools/generateMetadata.js +29 -28
- package/dist/esm/tools/generateSites.js +52 -51
- package/dist/esm/tools/index.js +28 -27
- package/dist/esm/tools/scaffold.js +52 -51
- package/dist/esm/tools/templating/components.js +59 -223
- package/dist/esm/tools/templating/index.js +3 -3
- package/dist/esm/tools/templating/plugins.js +72 -70
- package/dist/esm/tools/templating/utils.js +59 -58
- package/dist/esm/utils/ensurePath.js +13 -13
- package/dist/esm/utils/env.js +24 -23
- package/dist/esm/utils/globalCache.js +49 -0
- package/dist/esm/utils/index.js +4 -3
- package/dist/esm/utils/is-server.js +9 -8
- package/dist/esm/utils/normalize-url.js +1 -1
- package/dist/esm/utils/timeout-promise.js +28 -28
- package/dist/esm/utils/utils.js +238 -213
- package/package.json +73 -5
- package/types/cache-client.d.ts +68 -64
- package/types/cache-client.d.ts.map +1 -0
- package/types/client/constants.d.ts +5 -4
- package/types/client/constants.d.ts.map +1 -0
- package/types/client/edge-proxy.d.ts +18 -15
- package/types/client/edge-proxy.d.ts.map +1 -0
- package/types/client/index.d.ts +8 -7
- package/types/client/index.d.ts.map +1 -0
- package/types/client/models.d.ts +21 -19
- package/types/client/models.d.ts.map +1 -0
- package/types/client/sitecore-client.d.ts +338 -327
- package/types/client/sitecore-client.d.ts.map +1 -0
- package/types/client/utils.d.ts +15 -9
- package/types/client/utils.d.ts.map +1 -0
- package/types/config/define-config.d.ts +20 -18
- package/types/config/define-config.d.ts.map +1 -0
- package/types/config/index.d.ts +3 -2
- package/types/config/index.d.ts.map +1 -0
- package/types/config/models.d.ts +287 -268
- package/types/config/models.d.ts.map +1 -0
- package/types/config-cli/define-cli-config.d.ts +9 -7
- package/types/config-cli/define-cli-config.d.ts.map +1 -0
- package/types/config-cli/index.d.ts +3 -2
- package/types/config-cli/index.d.ts.map +1 -0
- package/types/config-cli/models.d.ts +6 -4
- package/types/config-cli/models.d.ts.map +1 -0
- package/types/constants.d.ts +44 -11
- package/types/constants.d.ts.map +1 -0
- package/types/debug.d.ts +35 -28
- package/types/debug.d.ts.map +1 -0
- package/types/editing/codegen/index.d.ts +2 -1
- package/types/editing/codegen/index.d.ts.map +1 -0
- package/types/editing/codegen/preview.d.ts +256 -195
- package/types/editing/codegen/preview.d.ts.map +1 -0
- package/types/editing/component-layout-service.d.ts +84 -80
- package/types/editing/component-layout-service.d.ts.map +1 -0
- package/types/editing/design-library.d.ts +111 -63
- package/types/editing/design-library.d.ts.map +1 -0
- package/types/editing/editing-service.d.ts +72 -62
- package/types/editing/editing-service.d.ts.map +1 -0
- package/types/editing/index.d.ts +7 -6
- package/types/editing/index.d.ts.map +1 -0
- package/types/editing/metadata.d.ts +8 -7
- package/types/editing/metadata.d.ts.map +1 -0
- package/types/editing/models.d.ts +103 -92
- package/types/editing/models.d.ts.map +1 -0
- package/types/editing/utils.d.ts +91 -74
- package/types/editing/utils.d.ts.map +1 -0
- package/types/form/form.d.ts +25 -21
- package/types/form/form.d.ts.map +1 -0
- package/types/form/index.d.ts +2 -1
- package/types/form/index.d.ts.map +1 -0
- package/types/graphql-request-client.d.ts +112 -105
- package/types/graphql-request-client.d.ts.map +1 -0
- package/types/i18n/dictionary-service.d.ts +135 -131
- package/types/i18n/dictionary-service.d.ts.map +1 -0
- package/types/i18n/index.d.ts +3 -2
- package/types/i18n/index.d.ts.map +1 -0
- package/types/i18n/utils.d.ts +9 -7
- package/types/i18n/utils.d.ts.map +1 -0
- package/types/index.d.ts +13 -12
- package/types/index.d.ts.map +1 -0
- package/types/layout/content-styles.d.ts +20 -18
- package/types/layout/content-styles.d.ts.map +1 -0
- package/types/layout/index.d.ts +6 -5
- package/types/layout/index.d.ts.map +1 -0
- package/types/layout/layout-service.d.ts +45 -35
- package/types/layout/layout-service.d.ts.map +1 -0
- package/types/layout/models.d.ts +174 -151
- package/types/layout/models.d.ts.map +1 -0
- package/types/layout/themes.d.ts +13 -11
- package/types/layout/themes.d.ts.map +1 -0
- package/types/layout/utils.d.ts +56 -41
- package/types/layout/utils.d.ts.map +1 -0
- package/types/media/index.d.ts +3 -2
- package/types/media/index.d.ts.map +1 -0
- package/types/media/media-api.d.ts +60 -55
- package/types/media/media-api.d.ts.map +1 -0
- package/types/models.d.ts +94 -84
- package/types/models.d.ts.map +1 -0
- package/types/native-fetcher.d.ts +124 -114
- package/types/native-fetcher.d.ts.map +1 -0
- package/types/personalize/index.d.ts +4 -3
- package/types/personalize/index.d.ts.map +1 -0
- package/types/personalize/layout-personalizer.d.ts +29 -27
- package/types/personalize/layout-personalizer.d.ts.map +1 -0
- package/types/personalize/personalize-service.d.ts +90 -80
- package/types/personalize/personalize-service.d.ts.map +1 -0
- package/types/personalize/utils.d.ts +78 -69
- package/types/personalize/utils.d.ts.map +1 -0
- package/types/retries.d.ts +26 -24
- package/types/retries.d.ts.map +1 -0
- package/types/site/error-pages-service.d.ts +64 -57
- package/types/site/error-pages-service.d.ts.map +1 -0
- package/types/site/index.d.ts +10 -9
- package/types/site/index.d.ts.map +1 -0
- package/types/site/models.d.ts +23 -18
- package/types/site/models.d.ts.map +1 -0
- package/types/site/redirects-service.d.ts +92 -69
- package/types/site/redirects-service.d.ts.map +1 -0
- package/types/site/robots-service.d.ts +57 -50
- package/types/site/robots-service.d.ts.map +1 -0
- package/types/site/site-resolver.d.ts +28 -26
- package/types/site/site-resolver.d.ts.map +1 -0
- package/types/site/siteinfo-service.d.ts +65 -52
- package/types/site/siteinfo-service.d.ts.map +1 -0
- package/types/site/sitemap-xml-service.d.ts +63 -56
- package/types/site/sitemap-xml-service.d.ts.map +1 -0
- package/types/site/sitepath-service.d.ts +137 -134
- package/types/site/sitepath-service.d.ts.map +1 -0
- package/types/site/utils.d.ts +41 -28
- package/types/site/utils.d.ts.map +1 -0
- package/types/sitecore-service-base.d.ts +31 -30
- package/types/sitecore-service-base.d.ts.map +1 -0
- package/types/tools/auth/flow.d.ts +29 -27
- package/types/tools/auth/flow.d.ts.map +1 -0
- package/types/tools/auth/index.d.ts +2 -1
- package/types/tools/auth/index.d.ts.map +1 -0
- package/types/tools/auth/models.d.ts +35 -33
- package/types/tools/auth/models.d.ts.map +1 -0
- package/types/tools/auth/tenant-store.d.ts +12 -11
- package/types/tools/auth/tenant-store.d.ts.map +1 -0
- package/types/tools/codegen/component-generation.d.ts +50 -47
- package/types/tools/codegen/component-generation.d.ts.map +1 -0
- package/types/tools/codegen/extract-files.d.ts +24 -22
- package/types/tools/codegen/extract-files.d.ts.map +1 -0
- package/types/tools/codegen/import-map.d.ts +103 -70
- package/types/tools/codegen/import-map.d.ts.map +1 -0
- package/types/tools/codegen/utils.d.ts +76 -75
- package/types/tools/codegen/utils.d.ts.map +1 -0
- package/types/tools/generate-map.d.ts +36 -26
- package/types/tools/generate-map.d.ts.map +1 -0
- package/types/tools/generateMetadata.d.ts +24 -22
- package/types/tools/generateMetadata.d.ts.map +1 -0
- package/types/tools/generateSites.d.ts +25 -22
- package/types/tools/generateSites.d.ts.map +1 -0
- package/types/tools/index.d.ts +22 -20
- package/types/tools/index.d.ts.map +1 -0
- package/types/tools/scaffold.d.ts +27 -25
- package/types/tools/scaffold.d.ts.map +1 -0
- package/types/tools/templating/components.d.ts +104 -103
- package/types/tools/templating/components.d.ts.map +1 -0
- package/types/tools/templating/index.d.ts +4 -3
- package/types/tools/templating/index.d.ts.map +1 -0
- package/types/tools/templating/plugins.d.ts +71 -67
- package/types/tools/templating/plugins.d.ts.map +1 -0
- package/types/tools/templating/utils.d.ts +42 -40
- package/types/tools/templating/utils.d.ts.map +1 -0
- package/types/utils/ensurePath.d.ts +7 -6
- package/types/utils/ensurePath.d.ts.map +1 -0
- package/types/utils/env.d.ts +9 -7
- package/types/utils/env.d.ts.map +1 -0
- package/types/utils/globalCache.d.ts +37 -0
- package/types/utils/globalCache.d.ts.map +1 -0
- package/types/utils/index.d.ts +5 -3
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/is-server.d.ts +8 -6
- package/types/utils/is-server.d.ts.map +1 -0
- package/types/utils/normalize-url.d.ts +2 -1
- package/types/utils/normalize-url.d.ts.map +1 -0
- package/types/utils/timeout-promise.d.ts +18 -17
- package/types/utils/timeout-promise.d.ts.map +1 -0
- package/types/utils/utils.d.ts +104 -79
- package/types/utils/utils.d.ts.map +1 -0
- package/client.js +0 -1
- package/codegen.js +0 -1
- package/config-cli.js +0 -1
- package/config.js +0 -1
- package/editing.js +0 -1
- package/i18n.js +0 -1
- package/layout.js +0 -1
- package/media.js +0 -1
- package/personalize.js +0 -1
- package/site.js +0 -1
- package/tools.js +0 -1
- package/utils.js +0 -1
package/dist/esm/layout/utils.js
CHANGED
|
@@ -1,102 +1,109 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @param {ComponentRendering | Fields} renderingOrFields the rendering or fields object to extract the field from
|
|
3
|
-
* @param {string} fieldName the name of the field to extract
|
|
4
|
-
* @param {T} [defaultValue] the default value to return if the field is not defined
|
|
5
|
-
* @returns {Field | T} the field value or the default value if the field is not defined
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
*
|
|
28
|
-
* @param {
|
|
29
|
-
* @
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
!
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*
|
|
61
|
-
* @
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
if (
|
|
79
|
-
return
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @param {ComponentRendering | Fields} renderingOrFields the rendering or fields object to extract the field from
|
|
3
|
+
* @param {string} fieldName the name of the field to extract
|
|
4
|
+
* @param {T} [defaultValue] the default value to return if the field is not defined
|
|
5
|
+
* @returns {Field | T} the field value or the default value if the field is not defined
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
// eslint-disable-next-line no-redeclare
|
|
9
|
+
export function getFieldValue(renderingOrFields, fieldName, defaultValue) {
|
|
10
|
+
if (!renderingOrFields || !fieldName) {
|
|
11
|
+
return defaultValue;
|
|
12
|
+
}
|
|
13
|
+
const fields = renderingOrFields;
|
|
14
|
+
const field = fields[fieldName];
|
|
15
|
+
if (field && typeof field.value !== 'undefined') {
|
|
16
|
+
return field.value;
|
|
17
|
+
}
|
|
18
|
+
const rendering = renderingOrFields;
|
|
19
|
+
if (!rendering.fields ||
|
|
20
|
+
!rendering.fields[fieldName] ||
|
|
21
|
+
typeof rendering.fields[fieldName].value === 'undefined') {
|
|
22
|
+
return defaultValue;
|
|
23
|
+
}
|
|
24
|
+
return rendering.fields[fieldName].value;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Gets rendering definitions in a given child placeholder under a current rendering.
|
|
28
|
+
* @param {ComponentRendering} rendering
|
|
29
|
+
* @param {string} placeholderName
|
|
30
|
+
* @returns {ComponentRendering[]} child placeholder
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
export function getChildPlaceholder(rendering, placeholderName) {
|
|
34
|
+
if (!rendering ||
|
|
35
|
+
!placeholderName ||
|
|
36
|
+
!rendering.placeholders ||
|
|
37
|
+
!rendering.placeholders[placeholderName]) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return rendering.placeholders[placeholderName];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Returns a regular expression pattern for a dynamic placeholder name.
|
|
44
|
+
* @param {string} placeholder Placeholder name with a dynamic segment (e.g. 'main-{*}')
|
|
45
|
+
* @returns Regular expression pattern for the dynamic segment
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export const getDynamicPlaceholderPattern = (placeholder) => {
|
|
49
|
+
return new RegExp(`^${placeholder.replace(/\{\*\}+/i, '\\d+')}$`);
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Checks if the placeholder name is dynamic.
|
|
53
|
+
* @param {string} placeholder Placeholder name
|
|
54
|
+
* @returns True if the placeholder name is dynamic
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export const isDynamicPlaceholder = (placeholder) => placeholder.indexOf('{*}') !== -1;
|
|
58
|
+
/**
|
|
59
|
+
* The default value for an empty Date field.
|
|
60
|
+
* This value is defined as a default one by .NET
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
export const EMPTY_DATE_FIELD_VALUE = '0001-01-01T00:00:00Z';
|
|
64
|
+
/**
|
|
65
|
+
* Determines if the passed in field object's value is empty.
|
|
66
|
+
* @param {GenericFieldValue | Partial<Field>} field the field object.
|
|
67
|
+
* Partial<T> type is used here because _field.value_ could be required or optional for the different field types
|
|
68
|
+
* @returns True if the field value is empty
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
export function isFieldValueEmpty(field) {
|
|
72
|
+
if (!field)
|
|
73
|
+
return true;
|
|
74
|
+
const isImageFieldEmpty = (fieldValue) => !fieldValue.src;
|
|
75
|
+
const isFileFieldEmpty = (fieldValue) => !fieldValue.src;
|
|
76
|
+
const isLinkFieldEmpty = (fieldValue) => !fieldValue.href;
|
|
77
|
+
const isDateFieldEmpty = (fieldValue) => {
|
|
78
|
+
if (typeof fieldValue === 'string') {
|
|
79
|
+
return fieldValue === EMPTY_DATE_FIELD_VALUE;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return !(typeof (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.getMonth) === 'function' &&
|
|
83
|
+
!isNaN(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.getMonth()));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const isEmpty = (fieldValue) => {
|
|
87
|
+
if (fieldValue === null || fieldValue === undefined) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
if (typeof fieldValue === 'object') {
|
|
91
|
+
return (isImageFieldEmpty(fieldValue) &&
|
|
92
|
+
isFileFieldEmpty(fieldValue) &&
|
|
93
|
+
isLinkFieldEmpty(fieldValue) &&
|
|
94
|
+
isDateFieldEmpty(fieldValue));
|
|
95
|
+
}
|
|
96
|
+
else if (typeof fieldValue === 'number' || typeof fieldValue === 'boolean') {
|
|
97
|
+
// Avoid returning true for 0 and false values
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
return !fieldValue || isDateFieldEmpty(fieldValue);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const dynamicField = field;
|
|
105
|
+
if (dynamicField.value !== undefined) {
|
|
106
|
+
return isEmpty(dynamicField.value);
|
|
107
|
+
}
|
|
108
|
+
return isEmpty(field);
|
|
109
|
+
}
|
package/dist/esm/media/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import * as mediaApi from './media-api';
|
|
2
|
-
export { mediaApi };
|
|
1
|
+
import * as mediaApi from './media-api';
|
|
2
|
+
export { mediaApi };
|
|
@@ -1,86 +1,90 @@
|
|
|
1
|
-
import URL from 'url-parse';
|
|
2
|
-
// finds the Sitecore media URL prefix
|
|
3
|
-
const mediaUrlPrefixRegex = /\/([-~]{1})\/media\//i;
|
|
4
|
-
/**
|
|
5
|
-
* Get required query string params which should be merged with user params
|
|
6
|
-
* @param {object} qs layout service parsed query string
|
|
7
|
-
* @returns {object} requiredParams
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* @param {
|
|
18
|
-
* @
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* @param {
|
|
38
|
-
* @
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* @param {
|
|
72
|
-
* @
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
1
|
+
import URL from 'url-parse';
|
|
2
|
+
// finds the Sitecore media URL prefix
|
|
3
|
+
const mediaUrlPrefixRegex = /\/([-~]{1})\/media\//i;
|
|
4
|
+
/**
|
|
5
|
+
* Get required query string params which should be merged with user params
|
|
6
|
+
* @param {object} qs layout service parsed query string
|
|
7
|
+
* @returns {object} requiredParams
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export const getRequiredParams = (qs) => {
|
|
11
|
+
const { rev, db, la, vs, ts } = qs;
|
|
12
|
+
return { rev, db, la, vs, ts };
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Replace `/~/media` or `/-/media` with `/~/jssmedia` or `/-/jssmedia`, respectively.
|
|
16
|
+
* Can use `mediaUrlPrefix` in order to use a custom prefix.
|
|
17
|
+
* @param {string} url The URL to replace the media URL prefix in
|
|
18
|
+
* @param {RegExp} [mediaUrlPrefix] The regex to match the media URL prefix
|
|
19
|
+
* @returns {string} The URL with the media URL prefix replaced
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export const replaceMediaUrlPrefix = (url, mediaUrlPrefix = mediaUrlPrefixRegex) => {
|
|
23
|
+
const parsed = URL(url, {}, true);
|
|
24
|
+
const match = mediaUrlPrefix.exec(parsed.pathname);
|
|
25
|
+
if (match && match.length > 1) {
|
|
26
|
+
// regex will provide us with /-/ or /~/ type
|
|
27
|
+
parsed.set('pathname', parsed.pathname.replace(mediaUrlPrefix, `/${match[1]}/jssmedia/`));
|
|
28
|
+
}
|
|
29
|
+
return parsed.toString();
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Prepares a Sitecore media URL with `params` for use by the Content SDK media handler.
|
|
33
|
+
* This is done by replacing `/~/media` or `/-/media` with `/~/jssmedia` or `/-/jssmedia`, respectively.
|
|
34
|
+
* Provided `params` are used as the querystring parameters for the media URL.
|
|
35
|
+
* Can use `mediaUrlPrefix` in order to use a custom prefix.
|
|
36
|
+
* If no `params` are sent, the original media URL is returned.
|
|
37
|
+
* @param {string} url The URL to prepare
|
|
38
|
+
* @param {object} [params] The querystring parameters to use
|
|
39
|
+
* @param {RegExp} [mediaUrlPrefix] The regex to match the media URL prefix
|
|
40
|
+
* @returns {string} The prepared URL
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export const updateImageUrl = (url, params, mediaUrlPrefix = mediaUrlPrefixRegex) => {
|
|
44
|
+
if (!params || Object.keys(params).length === 0) {
|
|
45
|
+
// if params aren't supplied, no need to run it through Content SDK media handler
|
|
46
|
+
return url;
|
|
47
|
+
}
|
|
48
|
+
// polyfill node `global` in browser to workaround https://github.com/unshiftio/url-parse/issues/150
|
|
49
|
+
if (typeof window !== 'undefined' && !window.global) {
|
|
50
|
+
window.global = {};
|
|
51
|
+
}
|
|
52
|
+
const parsed = URL(replaceMediaUrlPrefix(url, mediaUrlPrefix), {}, true);
|
|
53
|
+
const requiredParams = getRequiredParams(parsed.query);
|
|
54
|
+
const query = Object.assign({}, params);
|
|
55
|
+
Object.entries(requiredParams).forEach(([key, param]) => {
|
|
56
|
+
if (param) {
|
|
57
|
+
query[key] = param;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
parsed.set('query', query);
|
|
61
|
+
return parsed.toString();
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Receives an array of `srcSet` parameters that are iterated and used as parameters to generate
|
|
65
|
+
* a corresponding set of updated Sitecore media URLs via @see updateImageUrl. The result is a comma-delimited
|
|
66
|
+
* list of media URLs with respective dimension parameters.
|
|
67
|
+
* @example
|
|
68
|
+
* // returns '/ipsum.jpg?h=1000&w=1000 1000w, /ipsum.jpg?mh=250&mw=250 250w'
|
|
69
|
+
* getSrcSet('/ipsum.jpg', [{ h: 1000, w: 1000 }, { mh: 250, mw: 250 } ])
|
|
70
|
+
* More information about `srcSet`: {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img}
|
|
71
|
+
* @param {string} url The URL to prepare
|
|
72
|
+
* @param {Array} srcSet The array of parameters to use
|
|
73
|
+
* @param {object} [imageParams] The querystring parameters to use
|
|
74
|
+
* @param {RegExp} [mediaUrlPrefix] The regex to match the media URL prefix
|
|
75
|
+
* @returns {string} The prepared URL
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
export const getSrcSet = (url, srcSet, imageParams, mediaUrlPrefix) => {
|
|
79
|
+
return srcSet
|
|
80
|
+
.map((params) => {
|
|
81
|
+
const newParams = Object.assign(Object.assign({}, imageParams), params);
|
|
82
|
+
const imageWidth = newParams.w || newParams.mw;
|
|
83
|
+
if (!imageWidth) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return `${updateImageUrl(url, newParams, mediaUrlPrefix)} ${imageWidth}w`;
|
|
87
|
+
})
|
|
88
|
+
.filter((value) => value)
|
|
89
|
+
.join(', ');
|
|
90
|
+
};
|
package/dist/esm/models.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|