@designcrowd/library.brand-page 6.0.11 → 6.0.13
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/lib/src/{CreatedOnBrandCrowd-de-de-DopPc6g2.js → CreatedOnBrandCrowd-de-de-CBjFFeBP.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-CSHmaAWm.js → CreatedOnBrandCrowd-en-us-NuNXF81K.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-C4vM0p2e.js → CreatedOnBrandCrowd-es-es-BJG8nfug.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-ArpBbnxm.js → CreatedOnBrandCrowd-fr-ca-uX-nL53e.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-ArpBbnxm.js → CreatedOnBrandCrowd-fr-fr-uX-nL53e.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-CGAQLXiX.js → CreatedOnBrandCrowd-pt-br-DTrgFGQV.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-CGAQLXiX.js → CreatedOnBrandCrowd-pt-pt-DTrgFGQV.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-3WVSgB6t.js → CreatedOnDcom-de-de-DSfpxioT.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-Dx-RHXrH.js → CreatedOnDcom-en-us-C7G4gKem.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-CfnEYFMA.js → CreatedOnDcom-es-es-DVckCaji.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-BSHZTiUO.js → CreatedOnDcom-fr-ca-C5GDrm_C.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DtHssrQb.js → CreatedOnDcom-fr-fr-v5eMm-j2.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-CdX1aRI8.js → CreatedOnDcom-pt-br-Dq3-fPUc.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-jy044FNL.js → CreatedOnDcom-pt-pt-DFsncYax.js} +1 -1
- package/lib/src/brand-page/components/image-gallery/ImageGallery.stories.js +3 -0
- package/lib/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.d.ts +1 -1
- package/lib/src/brand-page/components/images-section/ImagesSection.stories.js +2 -1
- package/lib/src/brand-page/components/social-links/SocialLinks.stories.js +3 -0
- package/lib/src/brand-page/components/testimonial-section/__fixtures__/data.js +3 -0
- package/lib/src/brand-page/components/text/Text.stories.js +2 -0
- package/lib/src/brand-page/models/index.d.ts +13 -0
- package/lib/src/brand-page/models/index.js +4 -0
- package/lib/src/brand-page/utils/migration/migration-01.js +2 -0
- package/lib/src/brand-page/utils/migration/migration-18.d.ts +14 -0
- package/lib/src/brand-page/utils/migration/migration-18.js +17 -0
- package/lib/src/brand-page/utils/migration.util.js +6 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +1 -0
- package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +5 -0
- package/lib/src/brand-page-maker/constants/config-settings-constant.js +4 -0
- package/lib/src/brand-page-maker/models/content-settings.js +4 -0
- package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +18 -0
- package/lib/src/index.mjs +84 -83
- package/lib/src/{lib-Bx7xK4dn.js → lib-BG-pyXi9.js} +19585 -19807
- package/lib/src/metadata-builder/ai-metadata-executor.js +24 -1
- package/lib/src/metadata-builder/builders/footer-builder.js +32 -41
- package/lib/src/metadata-builder/builders/item-id-utils.d.ts +54 -0
- package/lib/src/metadata-builder/builders/item-id-utils.js +96 -0
- package/lib/src/metadata-builder/builders/move-page-builder.d.ts +32 -0
- package/lib/src/metadata-builder/builders/move-page-builder.js +137 -0
- package/lib/src/metadata-builder/builders/nav-utils.d.ts +26 -0
- package/lib/src/metadata-builder/builders/nav-utils.js +95 -0
- package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +57 -68
- package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +58 -93
- package/lib/src/metadata-builder/builders/section-builders/move-section-builder.d.ts +13 -1
- package/lib/src/metadata-builder/builders/section-builders/move-section-builder.js +40 -30
- package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +66 -99
- package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +57 -17
- package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +51 -85
- package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +50 -74
- package/lib/src/metadata-builder/builders/section-field-maps.js +17 -0
- package/lib/src/metadata-builder/builders/set-page-visibility-builder.d.ts +23 -0
- package/lib/src/metadata-builder/builders/set-page-visibility-builder.js +83 -0
- package/lib/src/metadata-builder/metadata-executor.js +4 -0
- package/lib/src/metadata-builder/models.d.ts +2 -0
- package/lib/src/metadata-builder/models.js +2 -0
- package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +31 -7
- package/lib/src/metadata-builder/parsers/ai-toolcall-parser.js +2 -0
- package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +84 -48
- package/lib/src/shared/content-settings/components/links-field/LinksField.mixin.js +2 -0
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +2 -0
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +2 -0
- package/lib/src/tracker.d.ts +2 -0
- package/lib/src/tracker.js +12 -0
- package/lib/src/tracker.mjs +12 -0
- package/lib/src/useEventTracker-DmQ6AkNn.js +356 -0
- package/lib/src/utils/minify-brand-page-metadata.d.ts +2 -0
- package/lib/src/utils/minify-brand-page-metadata.js +8 -1
- package/package.json +16 -1
- package/src/brand-page/components/image-gallery/ImageGallery.stories.ts +3 -0
- package/src/brand-page/components/image-gallery/ImageGallery.test.ts +1 -0
- package/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.ts +2 -1
- package/src/brand-page/components/images-section/ImagesSection.stories.ts +2 -1
- package/src/brand-page/components/social-links/SocialLinks.stories.ts +3 -0
- package/src/brand-page/components/social-links/SocialLinks.vue.test.ts +5 -0
- package/src/brand-page/components/testimonial-section/__fixtures__/data.ts +3 -0
- package/src/brand-page/components/text/Text.stories.ts +2 -0
- package/src/brand-page/models/index.ts +17 -0
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +23 -3
- package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +6 -0
- package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +12 -0
- package/src/brand-page/utils/migration/migration-01.ts +2 -0
- package/src/brand-page/utils/migration/migration-18.test.ts +131 -0
- package/src/brand-page/utils/migration/migration-18.ts +22 -0
- package/src/brand-page/utils/migration.util.ts +7 -0
- package/src/brand-page/utils/personalisation.util.test.ts +4 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
- package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +1 -0
- package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +6 -0
- package/src/brand-page-maker/constants/config-settings-constant.ts +4 -0
- package/src/brand-page-maker/models/content-settings.ts +4 -0
- package/src/metadata-builder/ai-metadata-executor.ts +31 -1
- package/src/metadata-builder/builders/footer-builder.test.ts +335 -28
- package/src/metadata-builder/builders/footer-builder.ts +40 -57
- package/src/metadata-builder/builders/item-id-utils.test.ts +184 -0
- package/src/metadata-builder/builders/item-id-utils.ts +117 -0
- package/src/metadata-builder/builders/move-page-builder.ts +227 -0
- package/src/metadata-builder/builders/nav-utils.ts +141 -0
- package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +62 -88
- package/src/metadata-builder/builders/section-builders/images-section-builder.ts +66 -129
- package/src/metadata-builder/builders/section-builders/move-section-builder.ts +58 -35
- package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +105 -160
- package/src/metadata-builder/builders/section-builders/social-links-builder.ts +65 -20
- package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +83 -146
- package/src/metadata-builder/builders/section-builders/text-section-builder.ts +71 -122
- package/src/metadata-builder/builders/section-field-maps.ts +18 -0
- package/src/metadata-builder/builders/set-page-visibility-builder.ts +122 -0
- package/src/metadata-builder/metadata-executor.ts +4 -0
- package/src/metadata-builder/models.ts +2 -0
- package/src/metadata-builder/parsers/ai-toolcall-parser.ts +32 -7
- package/src/metadata-builder/parsers/section-tool-arguments.ts +84 -48
- package/src/shared/content-settings/components/links-field/LinksField.mixin.ts +2 -0
- package/src/tracker.ts +28 -0
- package/src/utils/minify-brand-page-metadata.ts +14 -2
- package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +0 -13
- package/lib/src/metadata-builder/builders/reorder-pages-builder.js +0 -49
- package/src/metadata-builder/builders/reorder-pages-builder.ts +0 -80
|
@@ -156,6 +156,7 @@ const minifyContent = (content, editor, assets) => {
|
|
|
156
156
|
...(Array.isArray(c.items) && {
|
|
157
157
|
items: c.items.map((item, index) => ({
|
|
158
158
|
position: index + 1,
|
|
159
|
+
...(item.id && { id: item.id }),
|
|
159
160
|
...st('name', item.name, editor),
|
|
160
161
|
...st('jobTitle', item.position, editor),
|
|
161
162
|
...st('testimonials', item.testimonials, editor),
|
|
@@ -183,6 +184,7 @@ const minifyContent = (content, editor, assets) => {
|
|
|
183
184
|
...(Array.isArray(c.items) && {
|
|
184
185
|
items: c.items.map((item, index) => ({
|
|
185
186
|
position: index + 1,
|
|
187
|
+
...(item.id && { id: item.id }),
|
|
186
188
|
...includeImageWithKey(item.imageUrl),
|
|
187
189
|
...st('title', item.title, editor),
|
|
188
190
|
...st('paragraph', item.paragraph, editor),
|
|
@@ -212,6 +214,7 @@ const minifyContent = (content, editor, assets) => {
|
|
|
212
214
|
...(Array.isArray(c.textItems) && {
|
|
213
215
|
textItems: c.textItems.map((item, index) => ({
|
|
214
216
|
position: index + 1,
|
|
217
|
+
...(item.id && { id: item.id }),
|
|
215
218
|
...st('text', item.text, editor),
|
|
216
219
|
...(includeStyle(item.textStyle) && { textStyle: item.textStyle }),
|
|
217
220
|
})),
|
|
@@ -292,6 +295,7 @@ const minifyContent = (content, editor, assets) => {
|
|
|
292
295
|
...(Array.isArray(c.links) && {
|
|
293
296
|
links: c.links.map((link, index) => ({
|
|
294
297
|
position: index + 1,
|
|
298
|
+
...(link.id && { id: link.id }),
|
|
295
299
|
...(includeString(link.url) && { url: link.url }),
|
|
296
300
|
...includeImageWithKey(link.imageUrl),
|
|
297
301
|
})),
|
|
@@ -331,6 +335,7 @@ const minifyContent = (content, editor, assets) => {
|
|
|
331
335
|
...(Array.isArray(c.images) && {
|
|
332
336
|
images: c.images.map((img, index) => ({
|
|
333
337
|
position: index + 1,
|
|
338
|
+
...(img.id && { id: img.id }),
|
|
334
339
|
...includeImageWithKey(img.imageUrl),
|
|
335
340
|
...st('imageTitle', img.imageTitle, editor),
|
|
336
341
|
})),
|
|
@@ -371,7 +376,9 @@ const minifyFooter = (footer, logoAssetKey) => {
|
|
|
371
376
|
logoImageWidth: footer.logoImageWidth || undefined,
|
|
372
377
|
...(logoAssetKey && { logoAssetKey }),
|
|
373
378
|
socialLinks: footer.socialLinks?.length
|
|
374
|
-
? footer.socialLinks.map((l) => ({
|
|
379
|
+
? footer.socialLinks.map((l, index) => ({
|
|
380
|
+
position: index + 1,
|
|
381
|
+
...(l.id && { id: l.id }),
|
|
375
382
|
imageUrl: l.imageUrl || '',
|
|
376
383
|
url: l.url || '',
|
|
377
384
|
}))
|
package/package.json
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@designcrowd/library.brand-page",
|
|
3
3
|
"description": "A collection of Maker/Designer applications",
|
|
4
|
-
"version": "6.0.
|
|
4
|
+
"version": "6.0.13",
|
|
5
5
|
"author": "Design.com Eng",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"types": "./lib/src/index.d.ts",
|
|
9
9
|
"main": "./lib/src/index.mjs",
|
|
10
|
+
"sideEffects": [
|
|
11
|
+
"**/*.css"
|
|
12
|
+
],
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./lib/src/index.d.ts",
|
|
16
|
+
"import": "./lib/src/index.mjs"
|
|
17
|
+
},
|
|
18
|
+
"./tracker": {
|
|
19
|
+
"types": "./lib/src/tracker.d.ts",
|
|
20
|
+
"import": "./lib/src/tracker.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./lib/src/css/*": "./lib/src/css/*",
|
|
23
|
+
"./package.json": "./package.json"
|
|
24
|
+
},
|
|
10
25
|
"files": [
|
|
11
26
|
"lib",
|
|
12
27
|
"src"
|
|
@@ -52,6 +52,7 @@ export const Carousel = () => {
|
|
|
52
52
|
|
|
53
53
|
content.images = new Array(10).fill(0).map((_, i) => {
|
|
54
54
|
return {
|
|
55
|
+
id: `gallery-carousel-item-${i}`,
|
|
55
56
|
imageUrl: `https://picsum.photos/${300 * ((i + 1) / 4)}/${300 * ((i + 1) / 4)}?random=${i}`,
|
|
56
57
|
width: 300,
|
|
57
58
|
height: 300,
|
|
@@ -83,6 +84,7 @@ export const Masonry = () => {
|
|
|
83
84
|
|
|
84
85
|
content.images = new Array(10).fill(0).map((_, i) => {
|
|
85
86
|
return {
|
|
87
|
+
id: `gallery-masonry-item-${i}`,
|
|
86
88
|
imageUrl: `https://picsum.photos/${300 * ((i + 1) / 4)}/${300 * ((i + 1) / 4)}?random=${i}`,
|
|
87
89
|
width: 564,
|
|
88
90
|
height: 416,
|
|
@@ -114,6 +116,7 @@ export const Grid = () => {
|
|
|
114
116
|
|
|
115
117
|
content.images = new Array(10).fill(0).map((_, i) => {
|
|
116
118
|
return {
|
|
119
|
+
id: `gallery-grid-item-${i}`,
|
|
117
120
|
imageUrl: `https://picsum.photos/${300 * ((i + 1) / 4)}/${300 * ((i + 1) / 4)}?random=${i}`,
|
|
118
121
|
width: 564,
|
|
119
122
|
height: 416,
|
|
@@ -7,7 +7,8 @@ import type { ImageGalleryImageClickPayload } from '../models';
|
|
|
7
7
|
import type { BrandPageContext, ImageGalleryItem } from '../../../models';
|
|
8
8
|
import { getImageAltText } from '../../../utils';
|
|
9
9
|
|
|
10
|
-
interface IndexedImageGalleryItem extends ImageGalleryItem {
|
|
10
|
+
interface IndexedImageGalleryItem extends Omit<ImageGalleryItem, 'id'> {
|
|
11
|
+
// Local rendering index, distinct from the stable string `id` on ImageItem.
|
|
11
12
|
id: number;
|
|
12
13
|
}
|
|
13
14
|
|
|
@@ -50,8 +50,9 @@ export const Images = () => {
|
|
|
50
50
|
data() {
|
|
51
51
|
const content = createInitialImagesSectionContent();
|
|
52
52
|
|
|
53
|
-
content.items = new Array(2).fill(0).map(() => {
|
|
53
|
+
content.items = new Array(2).fill(0).map((_, i) => {
|
|
54
54
|
return {
|
|
55
|
+
id: `images-section-item-${i}`,
|
|
55
56
|
imageUrl:
|
|
56
57
|
'https://bc-user-uploads.brandcrowd.com/public/media-int/6b3a4d19-e95c-4d59-aa22-ac033a2cec2f/1116870a-c672-4306-b515-32f8d5d6e10c',
|
|
57
58
|
width: 564,
|
|
@@ -14,6 +14,7 @@ const viewModel: SocialLinksViewModel = {
|
|
|
14
14
|
title: 'Follow us on',
|
|
15
15
|
links: [
|
|
16
16
|
{
|
|
17
|
+
id: 'social-link-facebook',
|
|
17
18
|
imageUrl: 'facebook',
|
|
18
19
|
url: '',
|
|
19
20
|
imageTitle: '',
|
|
@@ -24,6 +25,7 @@ const viewModel: SocialLinksViewModel = {
|
|
|
24
25
|
imageLink: '',
|
|
25
26
|
},
|
|
26
27
|
{
|
|
28
|
+
id: 'social-link-instagram',
|
|
27
29
|
imageUrl: 'instagram',
|
|
28
30
|
url: 'https://www.instagram.com',
|
|
29
31
|
imageTitle: '',
|
|
@@ -34,6 +36,7 @@ const viewModel: SocialLinksViewModel = {
|
|
|
34
36
|
imageLink: '',
|
|
35
37
|
},
|
|
36
38
|
{
|
|
39
|
+
id: 'social-link-empty',
|
|
37
40
|
imageUrl: '',
|
|
38
41
|
url: '',
|
|
39
42
|
imageTitle: '',
|
|
@@ -53,6 +53,7 @@ const createTestSocialLinksViewModel = (): SocialLinksViewModel => ({
|
|
|
53
53
|
isFullWidth: false,
|
|
54
54
|
links: [
|
|
55
55
|
{
|
|
56
|
+
id: 'social-link-facebook',
|
|
56
57
|
imageUrl: 'facebook',
|
|
57
58
|
url: 'https://www.facebook.com',
|
|
58
59
|
imageTitle: '',
|
|
@@ -63,6 +64,7 @@ const createTestSocialLinksViewModel = (): SocialLinksViewModel => ({
|
|
|
63
64
|
imageLink: '',
|
|
64
65
|
},
|
|
65
66
|
{
|
|
67
|
+
id: 'social-link-instagram',
|
|
66
68
|
imageUrl: 'instagram',
|
|
67
69
|
url: 'https://www.instagram.com',
|
|
68
70
|
imageTitle: '',
|
|
@@ -73,6 +75,7 @@ const createTestSocialLinksViewModel = (): SocialLinksViewModel => ({
|
|
|
73
75
|
imageLink: '',
|
|
74
76
|
},
|
|
75
77
|
{
|
|
78
|
+
id: 'social-link-twitter',
|
|
76
79
|
imageUrl: 'twitter',
|
|
77
80
|
url: 'https://www.twitter.com',
|
|
78
81
|
imageTitle: '',
|
|
@@ -115,6 +118,7 @@ describe('Social Links', () => {
|
|
|
115
118
|
isPreview: false,
|
|
116
119
|
links: [
|
|
117
120
|
{
|
|
121
|
+
id: 'social-link-facebook',
|
|
118
122
|
imageUrl: 'facebook',
|
|
119
123
|
url: '',
|
|
120
124
|
imageTitle: '',
|
|
@@ -145,6 +149,7 @@ describe('Social Links', () => {
|
|
|
145
149
|
isPreview: false,
|
|
146
150
|
links: [
|
|
147
151
|
{
|
|
152
|
+
id: 'social-link-facebook',
|
|
148
153
|
imageUrl: 'facebook',
|
|
149
154
|
url: 'https://www.fb.com',
|
|
150
155
|
imageTitle: '',
|
|
@@ -14,6 +14,7 @@ export const viewModel: TestimonialSectionViewModel = {
|
|
|
14
14
|
displayStyle: 'centered',
|
|
15
15
|
items: [
|
|
16
16
|
{
|
|
17
|
+
id: 'testimonial-1',
|
|
17
18
|
testimonials: faker.lorem.paragraphs(1),
|
|
18
19
|
imageUrl: unsplashImage,
|
|
19
20
|
name: '1',
|
|
@@ -22,6 +23,7 @@ export const viewModel: TestimonialSectionViewModel = {
|
|
|
22
23
|
colorReplacements: [],
|
|
23
24
|
},
|
|
24
25
|
{
|
|
26
|
+
id: 'testimonial-2',
|
|
25
27
|
testimonials: faker.lorem.paragraphs(3),
|
|
26
28
|
imageUrl: unsplashImage,
|
|
27
29
|
name: '2',
|
|
@@ -30,6 +32,7 @@ export const viewModel: TestimonialSectionViewModel = {
|
|
|
30
32
|
colorReplacements: [],
|
|
31
33
|
},
|
|
32
34
|
{
|
|
35
|
+
id: 'testimonial-3',
|
|
33
36
|
testimonials: faker.lorem.paragraphs(5),
|
|
34
37
|
imageUrl: 'https://source.unsplash.com/random/200x200?3',
|
|
35
38
|
name: '3',
|
|
@@ -34,6 +34,7 @@ const BSviewModel: TextViewModel = {
|
|
|
34
34
|
text: 'asdasjdlkasjmdlkmsad',
|
|
35
35
|
textItems: [
|
|
36
36
|
{
|
|
37
|
+
id: 'text-item-1',
|
|
37
38
|
text: 'lorem ipsum',
|
|
38
39
|
textStyle: {
|
|
39
40
|
fontSize: '1rem',
|
|
@@ -42,6 +43,7 @@ const BSviewModel: TextViewModel = {
|
|
|
42
43
|
},
|
|
43
44
|
},
|
|
44
45
|
{
|
|
46
|
+
id: 'text-item-2',
|
|
45
47
|
text: 'lorem ipsum',
|
|
46
48
|
textStyle: {
|
|
47
49
|
fontSize: '1rem',
|
|
@@ -28,6 +28,7 @@ import { TEXT_STYLE_TYPES, TextStyles } from './styles.model';
|
|
|
28
28
|
import { EMPTY_LOGO_IMAGE_MODEL, LogoStyles } from './logo.model';
|
|
29
29
|
import type { LogoImageModel, LogoTemplateImageModel } from './logo.model';
|
|
30
30
|
import cloneDeep from 'lodash.clonedeep';
|
|
31
|
+
import * as uuid from 'uuid';
|
|
31
32
|
import type { BrandPagePaymentConfig } from './payment.model';
|
|
32
33
|
|
|
33
34
|
export * from './brand-page-context.model';
|
|
@@ -234,6 +235,13 @@ export interface ImageContent extends Content {
|
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
export interface ImageItem {
|
|
238
|
+
/**
|
|
239
|
+
* Stable per-item identifier. Mirrors the section-level `Content.id` one
|
|
240
|
+
* level deeper so AI tool calls can reference items by id rather than by
|
|
241
|
+
* positional index. Backfilled on load for persisted data that predates
|
|
242
|
+
* item ids (see ensureItemIds), so it is always present at runtime.
|
|
243
|
+
*/
|
|
244
|
+
id: string;
|
|
237
245
|
imageUrl: string;
|
|
238
246
|
imageTitle: string;
|
|
239
247
|
width: number;
|
|
@@ -466,6 +474,8 @@ export interface ShapeItem extends ImageItem {
|
|
|
466
474
|
}
|
|
467
475
|
|
|
468
476
|
export interface TestimonialItems {
|
|
477
|
+
/** Stable per-item identifier. See ImageItem.id. */
|
|
478
|
+
id: string;
|
|
469
479
|
imageUrl: string;
|
|
470
480
|
name: string;
|
|
471
481
|
position: string;
|
|
@@ -483,6 +493,8 @@ export interface TestimonialItems {
|
|
|
483
493
|
}
|
|
484
494
|
|
|
485
495
|
export interface TextItem {
|
|
496
|
+
/** Stable per-item identifier. See ImageItem.id. */
|
|
497
|
+
id: string;
|
|
486
498
|
text: string;
|
|
487
499
|
textStyle: TextStyleDeclaration;
|
|
488
500
|
|
|
@@ -552,6 +564,8 @@ export interface AboutSectionContent extends Content {
|
|
|
552
564
|
}
|
|
553
565
|
|
|
554
566
|
export interface LinksItem {
|
|
567
|
+
/** Stable per-item identifier. See ImageItem.id. */
|
|
568
|
+
id: string;
|
|
555
569
|
imageUrl: string;
|
|
556
570
|
url: string;
|
|
557
571
|
size?: string;
|
|
@@ -828,6 +842,7 @@ export abstract class AbstractPageFooterStyles {
|
|
|
828
842
|
this.logoImageWidth = options.logoImageWidth || DEFAULT_LOGO_WIDTH;
|
|
829
843
|
this.socialLinks = options.socialLinks || [
|
|
830
844
|
{
|
|
845
|
+
id: uuid.v4(),
|
|
831
846
|
width: 0,
|
|
832
847
|
height: 0,
|
|
833
848
|
imageUrl: 'facebook',
|
|
@@ -837,6 +852,7 @@ export abstract class AbstractPageFooterStyles {
|
|
|
837
852
|
imageLink: '',
|
|
838
853
|
},
|
|
839
854
|
{
|
|
855
|
+
id: uuid.v4(),
|
|
840
856
|
width: 0,
|
|
841
857
|
height: 0,
|
|
842
858
|
imageUrl: 'instagram',
|
|
@@ -846,6 +862,7 @@ export abstract class AbstractPageFooterStyles {
|
|
|
846
862
|
imageLink: '',
|
|
847
863
|
},
|
|
848
864
|
{
|
|
865
|
+
id: uuid.v4(),
|
|
849
866
|
width: 0,
|
|
850
867
|
height: 0,
|
|
851
868
|
imageUrl: 'x',
|
|
@@ -57,6 +57,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
57
57
|
"socialLinks": [
|
|
58
58
|
{
|
|
59
59
|
"height": 0,
|
|
60
|
+
"id": "00000000-0000-4000-8000-000000000004",
|
|
60
61
|
"imageLink": "",
|
|
61
62
|
"imageTitle": "",
|
|
62
63
|
"imageUrl": "facebook",
|
|
@@ -66,6 +67,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
66
67
|
},
|
|
67
68
|
{
|
|
68
69
|
"height": 0,
|
|
70
|
+
"id": "00000000-0000-4000-8000-000000000005",
|
|
69
71
|
"imageLink": "",
|
|
70
72
|
"imageTitle": "",
|
|
71
73
|
"imageUrl": "instagram",
|
|
@@ -75,6 +77,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
75
77
|
},
|
|
76
78
|
{
|
|
77
79
|
"height": 0,
|
|
80
|
+
"id": "00000000-0000-4000-8000-000000000006",
|
|
78
81
|
"imageLink": "",
|
|
79
82
|
"imageTitle": "",
|
|
80
83
|
"imageUrl": "x",
|
|
@@ -112,6 +115,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
112
115
|
"socialLinks": [
|
|
113
116
|
{
|
|
114
117
|
"height": 0,
|
|
118
|
+
"id": "00000000-0000-4000-8000-000000000001",
|
|
115
119
|
"imageLink": "",
|
|
116
120
|
"imageTitle": "",
|
|
117
121
|
"imageUrl": "facebook",
|
|
@@ -121,6 +125,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
121
125
|
},
|
|
122
126
|
{
|
|
123
127
|
"height": 0,
|
|
128
|
+
"id": "00000000-0000-4000-8000-000000000002",
|
|
124
129
|
"imageLink": "",
|
|
125
130
|
"imageTitle": "",
|
|
126
131
|
"imageUrl": "instagram",
|
|
@@ -130,6 +135,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
130
135
|
},
|
|
131
136
|
{
|
|
132
137
|
"height": 0,
|
|
138
|
+
"id": "00000000-0000-4000-8000-000000000003",
|
|
133
139
|
"imageLink": "",
|
|
134
140
|
"imageTitle": "",
|
|
135
141
|
"imageUrl": "x",
|
|
@@ -457,7 +463,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
457
463
|
},
|
|
458
464
|
},
|
|
459
465
|
"userPromptContentKey": undefined,
|
|
460
|
-
"v":
|
|
466
|
+
"v": 18,
|
|
461
467
|
},
|
|
462
468
|
"useOldLogoRenderSize": true,
|
|
463
469
|
}
|
|
@@ -520,6 +526,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
520
526
|
"socialLinks": [
|
|
521
527
|
{
|
|
522
528
|
"height": 0,
|
|
529
|
+
"id": "00000000-0000-4000-8000-000000000004",
|
|
523
530
|
"imageLink": "",
|
|
524
531
|
"imageTitle": "",
|
|
525
532
|
"imageUrl": "facebook",
|
|
@@ -529,6 +536,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
529
536
|
},
|
|
530
537
|
{
|
|
531
538
|
"height": 0,
|
|
539
|
+
"id": "00000000-0000-4000-8000-000000000005",
|
|
532
540
|
"imageLink": "",
|
|
533
541
|
"imageTitle": "",
|
|
534
542
|
"imageUrl": "instagram",
|
|
@@ -538,6 +546,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
538
546
|
},
|
|
539
547
|
{
|
|
540
548
|
"height": 0,
|
|
549
|
+
"id": "00000000-0000-4000-8000-000000000006",
|
|
541
550
|
"imageLink": "",
|
|
542
551
|
"imageTitle": "",
|
|
543
552
|
"imageUrl": "x",
|
|
@@ -575,6 +584,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
575
584
|
"socialLinks": [
|
|
576
585
|
{
|
|
577
586
|
"height": 0,
|
|
587
|
+
"id": "00000000-0000-4000-8000-000000000001",
|
|
578
588
|
"imageLink": "",
|
|
579
589
|
"imageTitle": "",
|
|
580
590
|
"imageUrl": "facebook",
|
|
@@ -584,6 +594,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
584
594
|
},
|
|
585
595
|
{
|
|
586
596
|
"height": 0,
|
|
597
|
+
"id": "00000000-0000-4000-8000-000000000002",
|
|
587
598
|
"imageLink": "",
|
|
588
599
|
"imageTitle": "",
|
|
589
600
|
"imageUrl": "instagram",
|
|
@@ -593,6 +604,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
593
604
|
},
|
|
594
605
|
{
|
|
595
606
|
"height": 0,
|
|
607
|
+
"id": "00000000-0000-4000-8000-000000000003",
|
|
596
608
|
"imageLink": "",
|
|
597
609
|
"imageTitle": "",
|
|
598
610
|
"imageUrl": "x",
|
|
@@ -760,6 +772,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
760
772
|
"textColor": {},
|
|
761
773
|
"textItems": [
|
|
762
774
|
{
|
|
775
|
+
"id": "00000000-0000-4000-8000-000000000007",
|
|
763
776
|
"text": "Christmas",
|
|
764
777
|
"textStyle": {
|
|
765
778
|
"applyAutoScale": true,
|
|
@@ -903,7 +916,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
903
916
|
},
|
|
904
917
|
},
|
|
905
918
|
"userPromptContentKey": undefined,
|
|
906
|
-
"v":
|
|
919
|
+
"v": 18,
|
|
907
920
|
},
|
|
908
921
|
"useOldLogoRenderSize": true,
|
|
909
922
|
}
|
|
@@ -966,6 +979,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
966
979
|
"socialLinks": [
|
|
967
980
|
{
|
|
968
981
|
"height": 0,
|
|
982
|
+
"id": "00000000-0000-4000-8000-000000000004",
|
|
969
983
|
"imageLink": "",
|
|
970
984
|
"imageTitle": "",
|
|
971
985
|
"imageUrl": "facebook",
|
|
@@ -975,6 +989,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
975
989
|
},
|
|
976
990
|
{
|
|
977
991
|
"height": 0,
|
|
992
|
+
"id": "00000000-0000-4000-8000-000000000005",
|
|
978
993
|
"imageLink": "",
|
|
979
994
|
"imageTitle": "",
|
|
980
995
|
"imageUrl": "instagram",
|
|
@@ -984,6 +999,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
984
999
|
},
|
|
985
1000
|
{
|
|
986
1001
|
"height": 0,
|
|
1002
|
+
"id": "00000000-0000-4000-8000-000000000006",
|
|
987
1003
|
"imageLink": "",
|
|
988
1004
|
"imageTitle": "",
|
|
989
1005
|
"imageUrl": "x",
|
|
@@ -1021,6 +1037,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1021
1037
|
"socialLinks": [
|
|
1022
1038
|
{
|
|
1023
1039
|
"height": 0,
|
|
1040
|
+
"id": "00000000-0000-4000-8000-000000000001",
|
|
1024
1041
|
"imageLink": "",
|
|
1025
1042
|
"imageTitle": "",
|
|
1026
1043
|
"imageUrl": "facebook",
|
|
@@ -1030,6 +1047,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1030
1047
|
},
|
|
1031
1048
|
{
|
|
1032
1049
|
"height": 0,
|
|
1050
|
+
"id": "00000000-0000-4000-8000-000000000002",
|
|
1033
1051
|
"imageLink": "",
|
|
1034
1052
|
"imageTitle": "",
|
|
1035
1053
|
"imageUrl": "instagram",
|
|
@@ -1039,6 +1057,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1039
1057
|
},
|
|
1040
1058
|
{
|
|
1041
1059
|
"height": 0,
|
|
1060
|
+
"id": "00000000-0000-4000-8000-000000000003",
|
|
1042
1061
|
"imageLink": "",
|
|
1043
1062
|
"imageTitle": "",
|
|
1044
1063
|
"imageUrl": "x",
|
|
@@ -1206,6 +1225,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1206
1225
|
"textColor": {},
|
|
1207
1226
|
"textItems": [
|
|
1208
1227
|
{
|
|
1228
|
+
"id": "00000000-0000-4000-8000-000000000007",
|
|
1209
1229
|
"text": "Christmas",
|
|
1210
1230
|
"textStyle": {
|
|
1211
1231
|
"applyAutoScale": true,
|
|
@@ -1356,7 +1376,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1356
1376
|
},
|
|
1357
1377
|
},
|
|
1358
1378
|
"userPromptContentKey": undefined,
|
|
1359
|
-
"v":
|
|
1379
|
+
"v": 18,
|
|
1360
1380
|
},
|
|
1361
1381
|
"useOldLogoRenderSize": true,
|
|
1362
1382
|
}
|
|
@@ -45,6 +45,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
45
45
|
"socialLinks": [
|
|
46
46
|
{
|
|
47
47
|
"height": 0,
|
|
48
|
+
"id": "00000000-0000-4000-8000-000000000004",
|
|
48
49
|
"imageLink": "",
|
|
49
50
|
"imageTitle": "",
|
|
50
51
|
"imageUrl": "facebook",
|
|
@@ -54,6 +55,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
54
55
|
},
|
|
55
56
|
{
|
|
56
57
|
"height": 0,
|
|
58
|
+
"id": "00000000-0000-4000-8000-000000000005",
|
|
57
59
|
"imageLink": "",
|
|
58
60
|
"imageTitle": "",
|
|
59
61
|
"imageUrl": "instagram",
|
|
@@ -63,6 +65,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
63
65
|
},
|
|
64
66
|
{
|
|
65
67
|
"height": 0,
|
|
68
|
+
"id": "00000000-0000-4000-8000-000000000006",
|
|
66
69
|
"imageLink": "",
|
|
67
70
|
"imageTitle": "",
|
|
68
71
|
"imageUrl": "x",
|
|
@@ -101,6 +104,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
101
104
|
"socialLinks": [
|
|
102
105
|
{
|
|
103
106
|
"height": 0,
|
|
107
|
+
"id": "00000000-0000-4000-8000-000000000001",
|
|
104
108
|
"imageLink": "",
|
|
105
109
|
"imageTitle": "",
|
|
106
110
|
"imageUrl": "facebook",
|
|
@@ -110,6 +114,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
110
114
|
},
|
|
111
115
|
{
|
|
112
116
|
"height": 0,
|
|
117
|
+
"id": "00000000-0000-4000-8000-000000000002",
|
|
113
118
|
"imageLink": "",
|
|
114
119
|
"imageTitle": "",
|
|
115
120
|
"imageUrl": "instagram",
|
|
@@ -119,6 +124,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
119
124
|
},
|
|
120
125
|
{
|
|
121
126
|
"height": 0,
|
|
127
|
+
"id": "00000000-0000-4000-8000-000000000003",
|
|
122
128
|
"imageLink": "",
|
|
123
129
|
"imageTitle": "",
|
|
124
130
|
"imageUrl": "x",
|
|
@@ -44,6 +44,7 @@ BrandPageModel {
|
|
|
44
44
|
"socialLinks": [
|
|
45
45
|
{
|
|
46
46
|
"height": 0,
|
|
47
|
+
"id": "00000000-0000-4000-8000-000000000004",
|
|
47
48
|
"imageLink": "",
|
|
48
49
|
"imageTitle": "",
|
|
49
50
|
"imageUrl": "facebook",
|
|
@@ -53,6 +54,7 @@ BrandPageModel {
|
|
|
53
54
|
},
|
|
54
55
|
{
|
|
55
56
|
"height": 0,
|
|
57
|
+
"id": "00000000-0000-4000-8000-000000000005",
|
|
56
58
|
"imageLink": "",
|
|
57
59
|
"imageTitle": "",
|
|
58
60
|
"imageUrl": "instagram",
|
|
@@ -62,6 +64,7 @@ BrandPageModel {
|
|
|
62
64
|
},
|
|
63
65
|
{
|
|
64
66
|
"height": 0,
|
|
67
|
+
"id": "00000000-0000-4000-8000-000000000006",
|
|
65
68
|
"imageLink": "",
|
|
66
69
|
"imageTitle": "",
|
|
67
70
|
"imageUrl": "x",
|
|
@@ -100,6 +103,7 @@ BrandPageModel {
|
|
|
100
103
|
"socialLinks": [
|
|
101
104
|
{
|
|
102
105
|
"height": 0,
|
|
106
|
+
"id": "00000000-0000-4000-8000-000000000001",
|
|
103
107
|
"imageLink": "",
|
|
104
108
|
"imageTitle": "",
|
|
105
109
|
"imageUrl": "facebook",
|
|
@@ -109,6 +113,7 @@ BrandPageModel {
|
|
|
109
113
|
},
|
|
110
114
|
{
|
|
111
115
|
"height": 0,
|
|
116
|
+
"id": "00000000-0000-4000-8000-000000000002",
|
|
112
117
|
"imageLink": "",
|
|
113
118
|
"imageTitle": "",
|
|
114
119
|
"imageUrl": "instagram",
|
|
@@ -118,6 +123,7 @@ BrandPageModel {
|
|
|
118
123
|
},
|
|
119
124
|
{
|
|
120
125
|
"height": 0,
|
|
126
|
+
"id": "00000000-0000-4000-8000-000000000003",
|
|
121
127
|
"imageLink": "",
|
|
122
128
|
"imageTitle": "",
|
|
123
129
|
"imageUrl": "x",
|
|
@@ -495,6 +501,7 @@ BrandPageModel {
|
|
|
495
501
|
"socialLinks": [
|
|
496
502
|
{
|
|
497
503
|
"height": 0,
|
|
504
|
+
"id": "00000000-0000-4000-8000-000000000004",
|
|
498
505
|
"imageLink": "",
|
|
499
506
|
"imageTitle": "",
|
|
500
507
|
"imageUrl": "facebook",
|
|
@@ -504,6 +511,7 @@ BrandPageModel {
|
|
|
504
511
|
},
|
|
505
512
|
{
|
|
506
513
|
"height": 0,
|
|
514
|
+
"id": "00000000-0000-4000-8000-000000000005",
|
|
507
515
|
"imageLink": "",
|
|
508
516
|
"imageTitle": "",
|
|
509
517
|
"imageUrl": "instagram",
|
|
@@ -513,6 +521,7 @@ BrandPageModel {
|
|
|
513
521
|
},
|
|
514
522
|
{
|
|
515
523
|
"height": 0,
|
|
524
|
+
"id": "00000000-0000-4000-8000-000000000006",
|
|
516
525
|
"imageLink": "",
|
|
517
526
|
"imageTitle": "",
|
|
518
527
|
"imageUrl": "x",
|
|
@@ -551,6 +560,7 @@ BrandPageModel {
|
|
|
551
560
|
"socialLinks": [
|
|
552
561
|
{
|
|
553
562
|
"height": 0,
|
|
563
|
+
"id": "00000000-0000-4000-8000-000000000001",
|
|
554
564
|
"imageLink": "",
|
|
555
565
|
"imageTitle": "",
|
|
556
566
|
"imageUrl": "facebook",
|
|
@@ -560,6 +570,7 @@ BrandPageModel {
|
|
|
560
570
|
},
|
|
561
571
|
{
|
|
562
572
|
"height": 0,
|
|
573
|
+
"id": "00000000-0000-4000-8000-000000000002",
|
|
563
574
|
"imageLink": "",
|
|
564
575
|
"imageTitle": "",
|
|
565
576
|
"imageUrl": "instagram",
|
|
@@ -569,6 +580,7 @@ BrandPageModel {
|
|
|
569
580
|
},
|
|
570
581
|
{
|
|
571
582
|
"height": 0,
|
|
583
|
+
"id": "00000000-0000-4000-8000-000000000003",
|
|
572
584
|
"imageLink": "",
|
|
573
585
|
"imageTitle": "",
|
|
574
586
|
"imageUrl": "x",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as uuid from 'uuid';
|
|
1
2
|
import {
|
|
2
3
|
getLogoVariationIndexFromLogoImageUrl,
|
|
3
4
|
getLogoDraftTokenFromLogoImageUrl,
|
|
@@ -101,6 +102,7 @@ export const applyTextContentTextToTextItemsMigration = (
|
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
const textItem: TextItem = {
|
|
105
|
+
id: uuid.v4(),
|
|
104
106
|
text: item.text,
|
|
105
107
|
textStyle,
|
|
106
108
|
};
|