@designcrowd/library.brand-page 5.10.2 → 5.10.3-jj1

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 (70) hide show
  1. package/lib/src/brand-page/models/content.model.d.ts +12 -0
  2. package/lib/src/brand-page/models/index.d.ts +11 -0
  3. package/lib/src/brand-page/models/user-personalisation.model.d.ts +1 -1
  4. package/lib/src/brand-page/utils/personalisation.util.d.ts +6 -1
  5. package/lib/src/brand-page/utils/personalisation.util.js +28 -18
  6. package/lib/src/brand-page-maker/assessors/index.d.ts +1 -0
  7. package/lib/src/brand-page-maker/assessors/index.js +1 -0
  8. package/lib/src/brand-page-maker/assessors/personalisation-visibility.assessor.d.ts +3 -0
  9. package/lib/src/brand-page-maker/assessors/personalisation-visibility.assessor.js +20 -0
  10. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +12 -0
  11. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +72 -0
  12. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +2 -0
  13. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +4 -50
  14. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +84 -0
  15. package/lib/src/brand-page-maker/constants/config-settings-constant.js +232 -2
  16. package/lib/src/brand-page-maker/models/assessor.model.d.ts +1 -1
  17. package/lib/src/brand-page-maker/models/content-settings-configs.d.ts +1 -0
  18. package/lib/src/brand-page-maker/models/content-settings-configs.js +1 -0
  19. package/lib/src/brand-page-maker/validators/field.validator.js +2 -0
  20. package/lib/src/css/library.brand-page-brandCrowd.min.css +13 -13
  21. package/lib/src/css/library.brand-page-brandPage.min.css +13 -13
  22. package/lib/src/css/library.brand-page-designCom.min.css +13 -13
  23. package/lib/src/css/library.brand-page-preview.min.css +13 -13
  24. package/lib/src/index.mjs +20437 -19996
  25. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +84 -0
  26. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +84 -0
  27. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +72 -0
  28. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +72 -0
  29. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +72 -0
  30. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +14 -1
  31. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.js +8 -0
  32. package/lib/src/shared/content-settings/components/text-image-field/TextImageField.mixin.d.ts +5 -0
  33. package/lib/src/shared/content-settings/components/text-image-field/TextImageField.mixin.js +4 -0
  34. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +14 -1
  35. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +8 -0
  36. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +72 -0
  37. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +100 -0
  38. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +88 -0
  39. package/package.json +1 -1
  40. package/src/brand-page/models/content.model.ts +14 -0
  41. package/src/brand-page/models/index.ts +21 -0
  42. package/src/brand-page/models/user-personalisation.model.ts +3 -2
  43. package/src/brand-page/utils/personalisation.util.test.ts +64 -1
  44. package/src/brand-page/utils/personalisation.util.ts +45 -29
  45. package/src/brand-page-maker/assessors/index.ts +1 -0
  46. package/src/brand-page-maker/assessors/personalisation-visibility.assessor.ts +32 -0
  47. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +2 -0
  48. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +4 -51
  49. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +1 -1
  50. package/src/brand-page-maker/constants/config-settings-constant.ts +278 -1
  51. package/src/brand-page-maker/models/assessor.model.ts +1 -0
  52. package/src/brand-page-maker/models/content-settings-configs.ts +1 -0
  53. package/src/brand-page-maker/validators/field.validator.ts +2 -0
  54. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  55. package/src/shared/common/SideBarSettingsHeader.vue +1 -1
  56. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -0
  57. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.vue +2 -0
  58. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +1 -0
  59. package/src/shared/content-settings/components/personalisation-override-field/PersonalisationOverrideField.vue +180 -0
  60. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +69 -9
  61. package/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.ts +16 -0
  62. package/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.vue +46 -0
  63. package/src/shared/content-settings/components/text-image-field/TextImageField.mixin.ts +11 -0
  64. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +67 -17
  65. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +17 -0
  66. package/src/shared/content-settings/components/text-items-field/TextItemsField.vue +13 -0
  67. package/lib/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.mixin.d.ts +0 -395
  68. package/lib/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.mixin.js +0 -57
  69. package/src/shared/content-settings/components/personalisation-field/PersonalisationField.vue +0 -35
  70. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.mixin.ts +0 -63
@@ -46,4 +46,16 @@ export interface Content {
46
46
  id: string;
47
47
  type: ContentType;
48
48
  personalisationRole?: PersonalisationRole;
49
+ imageUrlOverride?: string;
50
+ imageUrlsOverride?: string;
51
+ avatarImageUrlOverride?: string;
52
+ backgroundImageUrlOverride?: string;
53
+ nameOverride?: string;
54
+ titleOverride?: string;
55
+ descriptionOverride?: string;
56
+ buttonTextOverride?: string;
57
+ ctaTitleOverride?: string;
58
+ urlOverride?: string;
59
+ textOverride?: string;
60
+ paragraphOverride?: string;
49
61
  }
@@ -115,6 +115,8 @@ export interface ImageItem {
115
115
  colorReplacements?: ColorReplacement[];
116
116
  size?: string;
117
117
  imageLink: string;
118
+ imageUrlOverride?: string;
119
+ imageTitleOverride?: string;
118
120
  }
119
121
  export type ImageGalleryItem = ImageItem;
120
122
  export interface ImageGalleryContent extends Content {
@@ -275,6 +277,8 @@ export interface TextMediaItem extends ImageItem {
275
277
  paragraph: string;
276
278
  imageLink: string;
277
279
  itemsId: number;
280
+ titleOverride?: string;
281
+ paragraphOverride?: string;
278
282
  }
279
283
  export interface TextShapeItem extends TextMediaItem {
280
284
  colorReplacements: ColorReplacement[];
@@ -286,6 +290,8 @@ export interface ShapeItem extends ImageItem {
286
290
  mediaType: 'shape';
287
291
  title?: string;
288
292
  paragraph?: string;
293
+ titleOverride?: string;
294
+ paragraphOverride?: string;
289
295
  }
290
296
  export interface TestimonialItems {
291
297
  imageUrl: string;
@@ -296,10 +302,15 @@ export interface TestimonialItems {
296
302
  mediaType: string;
297
303
  size?: string;
298
304
  aspectRatio?: number | null;
305
+ nameOverride?: string;
306
+ testimonialsOverride?: string;
307
+ imageUrlOverride?: string;
308
+ positionOverride?: string;
299
309
  }
300
310
  export interface TextItem {
301
311
  text: string;
302
312
  textStyle: TextStyleDeclaration;
313
+ textOverride?: string;
303
314
  }
304
315
  export interface ShapesSectionContent extends Content, MediaSection {
305
316
  type: 'shapes-section';
@@ -70,7 +70,7 @@ export declare enum ShapeAspectRatioCategory {
70
70
  Wide = "wide"
71
71
  }
72
72
  export type ContentPersonalisationMapping<T extends Content> = {
73
- [key in keyof UserPersonalisationSection]?: (keyof T)[];
73
+ [key in keyof UserPersonalisationSection | keyof UserPersonalisationItem]?: (keyof T)[];
74
74
  };
75
75
  export interface UserPersonalisationSectionWithIndices extends UserPersonalisationSection {
76
76
  imageIndex: number;
@@ -1,5 +1,10 @@
1
1
  import { ShapeAspectRatioCategory } from '../models';
2
- import type { BrandPageModel, PageModel, PageStyles, UserPersonalisation, UserPersonalisationWithIndices } from '../models';
2
+ import type { BrandPageModel, BrandPageType, ContentPersonalisationMapping, PageModel, PageStyles, PersonalisationMappingType, UserPersonalisation, UserPersonalisationItem, UserPersonalisationSection, UserPersonalisationWithIndices } from '../models';
3
+ export declare const getPersonalisationMappingForContentType: (contentType: PersonalisationMappingType) => ContentPersonalisationMapping<any>;
4
+ export declare const getModifiedPersonalisationPropertyKeyBasedOnCondition: (property: keyof UserPersonalisationSection | keyof UserPersonalisationItem, option: {
5
+ brandPageType: BrandPageType;
6
+ isSvgShape?: boolean;
7
+ }) => keyof UserPersonalisationSection | keyof UserPersonalisationItem;
3
8
  export declare const filterPersonalisationByShapesAspectRatio: (personalisation: UserPersonalisationWithIndices, aspectRatio: ShapeAspectRatioCategory | null) => UserPersonalisationWithIndices;
4
9
  export declare const applyUserPersonalisationToBrandPageContentsAsync: (userPersonalisation: UserPersonalisationWithIndices, pages: PageModel[]) => Promise<{
5
10
  pages: PageModel[];
@@ -1,9 +1,10 @@
1
+ import { escapeContentText } from '../../shared/content-settings/utils';
1
2
  import { DEFAULT_PERSONALISATION_MAPPING, PERSONALISATION_MAPPINGS, TEXT_MEDIA_CONTENT_TYPES, } from '../../brand-page-maker/constants/personalisation.constant';
2
3
  import { BRAND_PAGE_TYPES, ShapeAspectRatioCategory } from '../models';
3
4
  import { getColorReplacementsFromSvgString, getColorReplacementsFromSvgStringServer, } from './svg-color.util';
4
5
  const ASPECT_RATIO_LOWER_CUT_OFF = 0.5;
5
6
  const ASPECT_RATIO_UPPER_CUT_OFF = 1.5;
6
- const getPersonalisationMappingForContentType = (contentType) => {
7
+ export const getPersonalisationMappingForContentType = (contentType) => {
7
8
  const baseMapping = Object.assign({}, DEFAULT_PERSONALISATION_MAPPING);
8
9
  const contentBasedMapping = PERSONALISATION_MAPPINGS[contentType];
9
10
  if (contentBasedMapping) {
@@ -15,13 +16,19 @@ const getPersonalisationMappingForContentType = (contentType) => {
15
16
  }
16
17
  return Object.assign({}, baseMapping, contentBasedMapping);
17
18
  };
18
- const getPersonalisationValueAsync = async (section, property, value, brandPageType) => {
19
- let propertyValue = section[property];
20
- if (typeof value === 'string' &&
21
- (property === 'imageUrls' || property === 'shapes')) {
22
- property = value.endsWith('.svg') ? 'shapes' : 'imageUrls';
23
- propertyValue = section[property];
19
+ export const getModifiedPersonalisationPropertyKeyBasedOnCondition = (property, option) => {
20
+ let newProperty = property;
21
+ if (property === 'description' &&
22
+ option.brandPageType !== BRAND_PAGE_TYPES.brandSite) {
23
+ newProperty = 'descriptionShort';
24
+ }
25
+ else if (property === 'imageUrls' || property === 'shapes') {
26
+ newProperty = !!option.isSvgShape ? 'shapes' : 'imageUrls';
24
27
  }
28
+ return newProperty;
29
+ };
30
+ const getPersonalisationValueAsync = async (section, property) => {
31
+ const propertyValue = section[property];
25
32
  if ((property === 'imageUrls' && section.imageUrls?.length === 0) ||
26
33
  (property === 'shapes' && section.shapes?.length === 0)) {
27
34
  return { value: undefined, section };
@@ -32,11 +39,6 @@ const getPersonalisationValueAsync = async (section, property, value, brandPageT
32
39
  property === 'itemDescriptionShort')) {
33
40
  return { value: undefined, section };
34
41
  }
35
- if (property === 'description' &&
36
- brandPageType === BRAND_PAGE_TYPES.default) {
37
- property = 'descriptionShort';
38
- propertyValue = section[property];
39
- }
40
42
  switch (property) {
41
43
  case 'imageUrls':
42
44
  if (section.imageUrls) {
@@ -195,8 +197,8 @@ const getPersonalisationValueAsync = async (section, property, value, brandPageT
195
197
  }
196
198
  return { value: propertyValue, section };
197
199
  };
198
- const getPersonalisationValueFromPropertyAsync = async (propertyKey, propertyValue, personalisationRole, personalisation, contentType) => {
199
- if (!personalisationRole) {
200
+ const getPersonalisationValueFromPropertyAsync = async (propertyKey, propertyValue, personalisationRole, personalisationOverride, personalisation, contentType) => {
201
+ if (!personalisationRole || personalisationOverride === 'none') {
200
202
  return { value: undefined, personalisation };
201
203
  }
202
204
  const matchingValue = Object.entries(personalisation).find(([key]) => key === `${personalisationRole}Section`);
@@ -209,8 +211,12 @@ const getPersonalisationValueFromPropertyAsync = async (propertyKey, propertyVal
209
211
  if (!matchingProperty) {
210
212
  return { value: undefined, personalisation };
211
213
  }
212
- const property = matchingProperty[0];
213
- const { value, section: updatedSection, valuesToUpdate, } = await getPersonalisationValueAsync(section, property, propertyValue, personalisation.type);
214
+ let property = matchingProperty[0];
215
+ property = getModifiedPersonalisationPropertyKeyBasedOnCondition(property, {
216
+ brandPageType: personalisation.type,
217
+ isSvgShape: typeof propertyValue === 'string' && propertyValue.endsWith('.svg'),
218
+ });
219
+ const { value, section: updatedSection, valuesToUpdate, } = await getPersonalisationValueAsync(section, property);
214
220
  return {
215
221
  value,
216
222
  personalisation: {
@@ -246,7 +252,9 @@ const applyPersonalisationToBrandPageContentsRecursiveAsync = async (personalisa
246
252
  isApplied = isApplied || output.isApplied;
247
253
  continue;
248
254
  }
249
- if (value) {
255
+ // If original value is falsy, skip personalisation due to curation team have design the UI to no have any data
256
+ if (value &&
257
+ (typeof value !== 'string' || !!escapeContentText(value)?.trim())) {
250
258
  if (shouldFilterShapeContentsByAspectRatio(personalisationRole, mappingType, key, value)) {
251
259
  const aspectRatio = Number(value);
252
260
  const aspectRatioCategory = getShapeAspectRatioCategory(aspectRatio);
@@ -254,9 +262,11 @@ const applyPersonalisationToBrandPageContentsRecursiveAsync = async (personalisa
254
262
  newPersonalisation = filterPersonalisationByShapesAspectRatio(newPersonalisation, aspectRatioCategory);
255
263
  }
256
264
  }
257
- const { personalisation: updatedPersonalisation, value: personalisationValue, valuesToUpdate: newValuesToUpdate, } = await getPersonalisationValueFromPropertyAsync(key, value, personalisationRole, newPersonalisation, mappingType);
265
+ const { personalisation: updatedPersonalisation, value: personalisationValue, valuesToUpdate: newValuesToUpdate, } = await getPersonalisationValueFromPropertyAsync(key, value, personalisationRole, content[`${key}Override`], newPersonalisation, mappingType);
258
266
  newPersonalisation = updatedPersonalisation;
259
267
  if (personalisationValue) {
268
+ console.log('newContents', content);
269
+ console.log('1111', personalisationValue, '--', key, '--', value);
260
270
  newContents[key] = personalisationValue;
261
271
  if (newValuesToUpdate) {
262
272
  for (const [k, v] of Object.entries(newValuesToUpdate)) {
@@ -14,3 +14,4 @@ export * from './color-replacement-icon-visibility.assessor';
14
14
  export * from './contact-form-visibility.assessor';
15
15
  export * from './logo-field-visibility.assessor';
16
16
  export * from './shop-item-color-visibility.assessor';
17
+ export * from './personalisation-visibility.assessor';
@@ -14,3 +14,4 @@ export * from './color-replacement-icon-visibility.assessor';
14
14
  export * from './contact-form-visibility.assessor';
15
15
  export * from './logo-field-visibility.assessor';
16
16
  export * from './shop-item-color-visibility.assessor';
17
+ export * from './personalisation-visibility.assessor';
@@ -0,0 +1,3 @@
1
+ import { type Content } from '../../brand-page';
2
+ import type { VisibilityAssessor } from '../models';
3
+ export declare const personalisationOverrideVisibility: VisibilityAssessor<Content>;
@@ -0,0 +1,20 @@
1
+ import { isTextContent } from '../../brand-page/utils';
2
+ import { BRAND_PAGE_TYPES } from '../../brand-page';
3
+ // Accepts an optional third parameter for the target property key
4
+ export const personalisationOverrideVisibility = (content, context, targetPropertyKey) => {
5
+ const personalisationRoleEnabled = Boolean(content.personalisationRole);
6
+ if (!personalisationRoleEnabled) {
7
+ return false;
8
+ }
9
+ if (isTextContent(content)) {
10
+ if (context?.brandPageType === BRAND_PAGE_TYPES.brandSite &&
11
+ targetPropertyKey === 'text') {
12
+ return false;
13
+ }
14
+ else if (context?.brandPageType !== BRAND_PAGE_TYPES.brandSite &&
15
+ targetPropertyKey === 'textItems') {
16
+ return false;
17
+ }
18
+ }
19
+ return true;
20
+ };
@@ -8,6 +8,18 @@ declare const _default: import("vue").DefineComponent<{}, {
8
8
  id: string;
9
9
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
10
10
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
11
+ imageUrlOverride?: string | undefined;
12
+ imageUrlsOverride?: string | undefined;
13
+ avatarImageUrlOverride?: string | undefined;
14
+ backgroundImageUrlOverride?: string | undefined;
15
+ nameOverride?: string | undefined;
16
+ titleOverride?: string | undefined;
17
+ descriptionOverride?: string | undefined;
18
+ buttonTextOverride?: string | undefined;
19
+ ctaTitleOverride?: string | undefined;
20
+ urlOverride?: string | undefined;
21
+ textOverride?: string | undefined;
22
+ paragraphOverride?: string | undefined;
11
23
  };
12
24
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
13
25
  };
@@ -420,6 +420,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
420
420
  id: string;
421
421
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
422
422
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
423
+ imageUrlOverride?: string | undefined;
424
+ imageUrlsOverride?: string | undefined;
425
+ avatarImageUrlOverride?: string | undefined;
426
+ backgroundImageUrlOverride?: string | undefined;
427
+ nameOverride?: string | undefined;
428
+ titleOverride?: string | undefined;
429
+ descriptionOverride?: string | undefined;
430
+ buttonTextOverride?: string | undefined;
431
+ ctaTitleOverride?: string | undefined;
432
+ urlOverride?: string | undefined;
433
+ textOverride?: string | undefined;
434
+ paragraphOverride?: string | undefined;
423
435
  };
424
436
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
425
437
  };
@@ -457,6 +469,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
457
469
  id: string;
458
470
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
459
471
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
472
+ imageUrlOverride?: string | undefined;
473
+ imageUrlsOverride?: string | undefined;
474
+ avatarImageUrlOverride?: string | undefined;
475
+ backgroundImageUrlOverride?: string | undefined;
476
+ nameOverride?: string | undefined;
477
+ titleOverride?: string | undefined;
478
+ descriptionOverride?: string | undefined;
479
+ buttonTextOverride?: string | undefined;
480
+ ctaTitleOverride?: string | undefined;
481
+ urlOverride?: string | undefined;
482
+ textOverride?: string | undefined;
483
+ paragraphOverride?: string | undefined;
460
484
  };
461
485
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
462
486
  };
@@ -494,6 +518,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
494
518
  id: string;
495
519
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
496
520
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
521
+ imageUrlOverride?: string | undefined;
522
+ imageUrlsOverride?: string | undefined;
523
+ avatarImageUrlOverride?: string | undefined;
524
+ backgroundImageUrlOverride?: string | undefined;
525
+ nameOverride?: string | undefined;
526
+ titleOverride?: string | undefined;
527
+ descriptionOverride?: string | undefined;
528
+ buttonTextOverride?: string | undefined;
529
+ ctaTitleOverride?: string | undefined;
530
+ urlOverride?: string | undefined;
531
+ textOverride?: string | undefined;
532
+ paragraphOverride?: string | undefined;
497
533
  };
498
534
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
499
535
  };
@@ -531,6 +567,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
531
567
  id: string;
532
568
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
533
569
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
570
+ imageUrlOverride?: string | undefined;
571
+ imageUrlsOverride?: string | undefined;
572
+ avatarImageUrlOverride?: string | undefined;
573
+ backgroundImageUrlOverride?: string | undefined;
574
+ nameOverride?: string | undefined;
575
+ titleOverride?: string | undefined;
576
+ descriptionOverride?: string | undefined;
577
+ buttonTextOverride?: string | undefined;
578
+ ctaTitleOverride?: string | undefined;
579
+ urlOverride?: string | undefined;
580
+ textOverride?: string | undefined;
581
+ paragraphOverride?: string | undefined;
534
582
  };
535
583
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
536
584
  };
@@ -568,6 +616,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
568
616
  id: string;
569
617
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
570
618
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
619
+ imageUrlOverride?: string | undefined;
620
+ imageUrlsOverride?: string | undefined;
621
+ avatarImageUrlOverride?: string | undefined;
622
+ backgroundImageUrlOverride?: string | undefined;
623
+ nameOverride?: string | undefined;
624
+ titleOverride?: string | undefined;
625
+ descriptionOverride?: string | undefined;
626
+ buttonTextOverride?: string | undefined;
627
+ ctaTitleOverride?: string | undefined;
628
+ urlOverride?: string | undefined;
629
+ textOverride?: string | undefined;
630
+ paragraphOverride?: string | undefined;
571
631
  };
572
632
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
573
633
  };
@@ -605,6 +665,18 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
605
665
  id: string;
606
666
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
607
667
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
668
+ imageUrlOverride?: string | undefined;
669
+ imageUrlsOverride?: string | undefined;
670
+ avatarImageUrlOverride?: string | undefined;
671
+ backgroundImageUrlOverride?: string | undefined;
672
+ nameOverride?: string | undefined;
673
+ titleOverride?: string | undefined;
674
+ descriptionOverride?: string | undefined;
675
+ buttonTextOverride?: string | undefined;
676
+ ctaTitleOverride?: string | undefined;
677
+ urlOverride?: string | undefined;
678
+ textOverride?: string | undefined;
679
+ paragraphOverride?: string | undefined;
608
680
  };
609
681
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
610
682
  };
@@ -1117,6 +1117,7 @@ export const SampleAdminMode = () => {
1117
1117
  unsplashApplicationName: '',
1118
1118
  templateCategories: [],
1119
1119
  initialCategories: {},
1120
+ isPersonalisationEnabled: true,
1120
1121
  };
1121
1122
  return {
1122
1123
  viewModel,
@@ -1157,6 +1158,7 @@ export const SampleAdminModeBrandSite = {
1157
1158
  unsplashApplicationName: '',
1158
1159
  templateCategories: [],
1159
1160
  initialCategories: {},
1161
+ isPersonalisationEnabled: true,
1160
1162
  };
1161
1163
  return {
1162
1164
  viewModel,
@@ -130,55 +130,9 @@ export const BRAND_SITE = {
130
130
  title: 'Home',
131
131
  slug: 'home',
132
132
  contents: [
133
- {
134
- id: '837a501d-a6b7-4803-9859-d264a6d3b82c',
135
- url: '',
136
- size: '100%',
137
- type: 'banner-section',
138
- title: 'Building the Future, One Project at a Time.',
139
- imageUrl: 'https://bcassetcdn.com/shapes/prod/b2efecd4-f406-4b20-b9a6-f362fb0db749.svg',
140
- pageSlug: '',
141
- cardStyle: {
142
- backgroundColor: 'rgb(255,255,255)',
143
- },
144
- mediaType: 'shape',
145
- buttonText: 'Explore Portfolio',
146
- titleStyle: {
147
- color: 'logo-text-color',
148
- fontSize: '4.375em',
149
- textAlign: 'left',
150
- fontFamily: 'Oswald',
151
- fontWeight: 'bold',
152
- lineHeight: '1.5',
153
- textDecoration: '',
154
- },
155
- description: `<p style="text-align: left"><span style="font-family: Nunito; font-size: 1.5em; line-height: 1.5; color: rgb(0, 0, 0)">We're a team of passionate construction professionals dedicated to </span></p><p><br /></p><p style="text-align: left"><span style="font-family: Nunito; font-size: 1.5em; line-height: 1.5; color: rgb(0, 0, 0)">exceeding client expectations and creating exceptional spaces.</span></p></br></br>`,
156
- displayStyle: 'right-aligned',
157
- buttonLinkType: 'page',
158
- backgroundStyle: {
159
- backgroundColor: 'logo-background-color',
160
- },
161
- buttonTextStyle: {
162
- color: 'logo-background-color',
163
- fontSize: '1.25rem',
164
- fontFamily: 'Nunito',
165
- lineHeight: '1.875rem',
166
- },
167
- descriptionStyle: {
168
- color: 'logo-text-color',
169
- fontSize: '1.5rem',
170
- textAlign: 'left',
171
- fontFamily: 'Nunito',
172
- lineHeight: '2rem',
173
- },
174
- colorReplacements: [
175
- {
176
- attribute: 'fill',
177
- originalColor: '#2F455C',
178
- replacementColor: 'logo-text-color',
179
- },
180
- ],
181
- },
133
+ ...Object.values(CONTENT_SETTINGS_CONFIGS())
134
+ .filter((x) => x.brandPageType === BRAND_PAGE_TYPES.brandSite)
135
+ .map((x) => x.createInitialContent()),
182
136
  {
183
137
  id: '837a501d-a6b7-4803-9859-d264a6d3b82css',
184
138
  url: '',
@@ -233,7 +187,7 @@ export const BRAND_SITE = {
233
187
  {
234
188
  title: 'About',
235
189
  slug: 'about',
236
- contents: Object.values(CONTENT_SETTINGS_CONFIGS)
190
+ contents: Object.values(CONTENT_SETTINGS_CONFIGS())
237
191
  .filter((x) => x.brandPageType === BRAND_PAGE_TYPES.brandSite)
238
192
  .map((x) => x.createInitialContent()),
239
193
  },
@@ -11,6 +11,18 @@ declare const _default: import("vue").DefineComponent<{}, {
11
11
  id: string;
12
12
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
13
13
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
14
+ imageUrlOverride?: string | undefined;
15
+ imageUrlsOverride?: string | undefined;
16
+ avatarImageUrlOverride?: string | undefined;
17
+ backgroundImageUrlOverride?: string | undefined;
18
+ nameOverride?: string | undefined;
19
+ titleOverride?: string | undefined;
20
+ descriptionOverride?: string | undefined;
21
+ buttonTextOverride?: string | undefined;
22
+ ctaTitleOverride?: string | undefined;
23
+ urlOverride?: string | undefined;
24
+ textOverride?: string | undefined;
25
+ paragraphOverride?: string | undefined;
14
26
  };
15
27
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
16
28
  };
@@ -46,6 +58,18 @@ declare const _default: import("vue").DefineComponent<{}, {
46
58
  id: string;
47
59
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
48
60
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
61
+ imageUrlOverride?: string | undefined;
62
+ imageUrlsOverride?: string | undefined;
63
+ avatarImageUrlOverride?: string | undefined;
64
+ backgroundImageUrlOverride?: string | undefined;
65
+ nameOverride?: string | undefined;
66
+ titleOverride?: string | undefined;
67
+ descriptionOverride?: string | undefined;
68
+ buttonTextOverride?: string | undefined;
69
+ ctaTitleOverride?: string | undefined;
70
+ urlOverride?: string | undefined;
71
+ textOverride?: string | undefined;
72
+ paragraphOverride?: string | undefined;
49
73
  };
50
74
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
51
75
  };
@@ -83,6 +107,18 @@ declare const _default: import("vue").DefineComponent<{}, {
83
107
  id: string;
84
108
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
85
109
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
110
+ imageUrlOverride?: string | undefined;
111
+ imageUrlsOverride?: string | undefined;
112
+ avatarImageUrlOverride?: string | undefined;
113
+ backgroundImageUrlOverride?: string | undefined;
114
+ nameOverride?: string | undefined;
115
+ titleOverride?: string | undefined;
116
+ descriptionOverride?: string | undefined;
117
+ buttonTextOverride?: string | undefined;
118
+ ctaTitleOverride?: string | undefined;
119
+ urlOverride?: string | undefined;
120
+ textOverride?: string | undefined;
121
+ paragraphOverride?: string | undefined;
86
122
  };
87
123
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
88
124
  };
@@ -120,6 +156,18 @@ declare const _default: import("vue").DefineComponent<{}, {
120
156
  id: string;
121
157
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
122
158
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
159
+ imageUrlOverride?: string | undefined;
160
+ imageUrlsOverride?: string | undefined;
161
+ avatarImageUrlOverride?: string | undefined;
162
+ backgroundImageUrlOverride?: string | undefined;
163
+ nameOverride?: string | undefined;
164
+ titleOverride?: string | undefined;
165
+ descriptionOverride?: string | undefined;
166
+ buttonTextOverride?: string | undefined;
167
+ ctaTitleOverride?: string | undefined;
168
+ urlOverride?: string | undefined;
169
+ textOverride?: string | undefined;
170
+ paragraphOverride?: string | undefined;
123
171
  };
124
172
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
125
173
  };
@@ -157,6 +205,18 @@ declare const _default: import("vue").DefineComponent<{}, {
157
205
  id: string;
158
206
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
159
207
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
208
+ imageUrlOverride?: string | undefined;
209
+ imageUrlsOverride?: string | undefined;
210
+ avatarImageUrlOverride?: string | undefined;
211
+ backgroundImageUrlOverride?: string | undefined;
212
+ nameOverride?: string | undefined;
213
+ titleOverride?: string | undefined;
214
+ descriptionOverride?: string | undefined;
215
+ buttonTextOverride?: string | undefined;
216
+ ctaTitleOverride?: string | undefined;
217
+ urlOverride?: string | undefined;
218
+ textOverride?: string | undefined;
219
+ paragraphOverride?: string | undefined;
160
220
  };
161
221
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
162
222
  };
@@ -194,6 +254,18 @@ declare const _default: import("vue").DefineComponent<{}, {
194
254
  id: string;
195
255
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
196
256
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
257
+ imageUrlOverride?: string | undefined;
258
+ imageUrlsOverride?: string | undefined;
259
+ avatarImageUrlOverride?: string | undefined;
260
+ backgroundImageUrlOverride?: string | undefined;
261
+ nameOverride?: string | undefined;
262
+ titleOverride?: string | undefined;
263
+ descriptionOverride?: string | undefined;
264
+ buttonTextOverride?: string | undefined;
265
+ ctaTitleOverride?: string | undefined;
266
+ urlOverride?: string | undefined;
267
+ textOverride?: string | undefined;
268
+ paragraphOverride?: string | undefined;
197
269
  };
198
270
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
199
271
  };
@@ -231,6 +303,18 @@ declare const _default: import("vue").DefineComponent<{}, {
231
303
  id: string;
232
304
  type: "image" | "facebook" | "twitter" | "email" | "phone" | "logo" | "general-link" | "profile" | "website" | "video" | "text" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section";
233
305
  personalisationRole?: "email" | "phone" | "profile" | "website" | "about" | "information" | "media" | undefined;
306
+ imageUrlOverride?: string | undefined;
307
+ imageUrlsOverride?: string | undefined;
308
+ avatarImageUrlOverride?: string | undefined;
309
+ backgroundImageUrlOverride?: string | undefined;
310
+ nameOverride?: string | undefined;
311
+ titleOverride?: string | undefined;
312
+ descriptionOverride?: string | undefined;
313
+ buttonTextOverride?: string | undefined;
314
+ ctaTitleOverride?: string | undefined;
315
+ urlOverride?: string | undefined;
316
+ textOverride?: string | undefined;
317
+ paragraphOverride?: string | undefined;
234
318
  };
235
319
  fields: Record<string, import("../../../shared/content-settings/models").ContentItemFieldSettings>;
236
320
  };