@designcrowd/library.brand-page 5.16.32 → 5.16.33

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 (43) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-C5AHj5yG.js → CreatedOnBrandCrowd-de-de-nDG-SvL9.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-9vm89uNN.js → CreatedOnBrandCrowd-en-us-Dt-_cNx9.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-InrLqZ7B.js → CreatedOnBrandCrowd-es-es-DOHLEX6U.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-X4r6d53Z.js → CreatedOnBrandCrowd-fr-ca-ZcxoXYEH.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-X4r6d53Z.js → CreatedOnBrandCrowd-fr-fr-ZcxoXYEH.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-CQ41-qP5.js → CreatedOnBrandCrowd-pt-br-D6WcOax8.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-CQ41-qP5.js → CreatedOnBrandCrowd-pt-pt-D6WcOax8.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-ESORkxko.js → CreatedOnDcom-de-de-Boyt5XwN.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-DKWbRt35.js → CreatedOnDcom-en-us-Cpw1nF3G.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-CtVdE5DL.js → CreatedOnDcom-es-es-rRRk339c.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-BTl6zmCF.js → CreatedOnDcom-fr-ca-CBPG0ctC.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-CbdWfp16.js → CreatedOnDcom-fr-fr-DvGxUvqy.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-B8QbSViW.js → CreatedOnDcom-pt-br-D0Tu4f-H.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-_GQdFxAH.js → CreatedOnDcom-pt-pt-X9_clgUZ.js} +1 -1
  15. package/lib/src/brand-page/utils/logo.util.d.ts +7 -2
  16. package/lib/src/brand-page/utils/logo.util.js +38 -28
  17. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +1 -0
  18. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +1 -0
  19. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +1 -0
  20. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +1 -0
  21. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +1 -0
  22. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +1 -0
  23. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +1 -0
  24. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +1 -0
  25. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +1 -0
  26. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -0
  27. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +17 -23
  28. package/lib/src/index.d.ts +1 -1
  29. package/lib/src/index.mjs +41 -39
  30. package/lib/src/{lib-BfzwtsTk.js → lib-DllHzIBd.js} +10427 -10418
  31. package/lib/src/lib.js +1 -1
  32. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +1 -0
  33. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +1 -0
  34. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +1 -0
  35. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +1 -0
  36. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +1 -0
  37. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +1 -0
  38. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +1 -0
  39. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +1 -0
  40. package/package.json +1 -1
  41. package/src/brand-page/utils/logo.util.ts +76 -44
  42. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +30 -46
  43. package/src/lib.ts +2 -0
package/lib/src/lib.js CHANGED
@@ -26,7 +26,7 @@ export { default as SensitiveContentModal } from './brand-page/components/sensit
26
26
  // functions
27
27
  export { getBrandPageViewModelFromBrandPageModel, migrateBrandPageModel, } from './brand-page/utils';
28
28
  export * as brandPageUtils from './brand-page/utils';
29
- export { getOptimalLogoSize, calculateOptimizedLogoDimensions, applyLogoImageBase64UrlToBrandPageTemplateModel, } from './brand-page/utils/logo.util';
29
+ export { getOptimalLogoSize, calculateOptimizedLogoDimensions, applyLogoImageBase64UrlToBrandPageTemplateModel, recalculateLogoContentDimensions, recalculateHeaderLogoSizes, } from './brand-page/utils/logo.util';
30
30
  export { sanitizeRTEHtml } from './brand-page-maker/utils';
31
31
  export { getPageSlugFromPageTitle } from './brand-page-maker/utils/slug.util';
32
32
  // stores
@@ -117,6 +117,7 @@ declare const _default: import("vue").DefineComponent<{}, {
117
117
  setSelectedTemplateId(payload: {
118
118
  templateId: string | false;
119
119
  }): void;
120
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
120
121
  applySelectedTemplate(): Promise<void>;
121
122
  enqueueErrorMessage(): Promise<void>;
122
123
  enqueueSaveSuccessMessage(payload?: {
@@ -637,6 +637,7 @@ declare const _default: import("vue").DefineComponent<{}, {
637
637
  setSelectedTemplateId(payload: {
638
638
  templateId: string | false;
639
639
  }): void;
640
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
640
641
  applySelectedTemplate(): Promise<void>;
641
642
  enqueueErrorMessage(): Promise<void>;
642
643
  enqueueSaveSuccessMessage(payload?: {
@@ -580,6 +580,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
580
580
  setSelectedTemplateId(payload: {
581
581
  templateId: string | false;
582
582
  }): void;
583
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
583
584
  applySelectedTemplate(): Promise<void>;
584
585
  enqueueErrorMessage(): Promise<void>;
585
586
  enqueueSaveSuccessMessage(payload?: {
@@ -107,6 +107,7 @@ declare const _default: import("vue").DefineComponent<{}, {
107
107
  setSelectedTemplateId(payload: {
108
108
  templateId: string | false;
109
109
  }): void;
110
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
110
111
  applySelectedTemplate(): Promise<void>;
111
112
  enqueueErrorMessage(): Promise<void>;
112
113
  enqueueSaveSuccessMessage(payload?: {
@@ -3795,6 +3795,7 @@ declare const _default: import("vue").DefineComponent<{}, {
3795
3795
  setSelectedTemplateId(payload: {
3796
3796
  templateId: string | false;
3797
3797
  }): void;
3798
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
3798
3799
  applySelectedTemplate(): Promise<void>;
3799
3800
  enqueueErrorMessage(): Promise<void>;
3800
3801
  enqueueSaveSuccessMessage(payload?: {
@@ -4315,6 +4315,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4315
4315
  setSelectedTemplateId(payload: {
4316
4316
  templateId: string | false;
4317
4317
  }): void;
4318
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
4318
4319
  applySelectedTemplate(): Promise<void>;
4319
4320
  enqueueErrorMessage(): Promise<void>;
4320
4321
  enqueueSaveSuccessMessage(payload?: {
@@ -141,6 +141,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
141
141
  setSelectedTemplateId(payload: {
142
142
  templateId: string | false;
143
143
  }): void;
144
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
144
145
  applySelectedTemplate(): Promise<void>;
145
146
  enqueueErrorMessage(): Promise<void>;
146
147
  enqueueSaveSuccessMessage(payload?: {
@@ -550,6 +550,7 @@ declare const _default: import("vue").DefineComponent<{}, {
550
550
  setSelectedTemplateId(payload: {
551
551
  templateId: string | false;
552
552
  }): void;
553
+ recalculateLogoSizes(forceRecalculate?: boolean): Promise<void>;
553
554
  applySelectedTemplate(): Promise<void>;
554
555
  enqueueErrorMessage(): Promise<void>;
555
556
  enqueueSaveSuccessMessage(payload?: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@designcrowd/library.brand-page",
3
3
  "description": "A collection of Maker/Designer applications",
4
- "version": "5.16.32",
4
+ "version": "5.16.33",
5
5
  "author": "Design.com Eng",
6
6
  "license": "UNLICENSED",
7
7
  "type": "module",
@@ -396,67 +396,99 @@ export const calculateOptimizedLogoDimensions = (
396
396
 
397
397
  export const recalculateLogoContentDimensions = async (
398
398
  pageData: any,
399
- editableLogoVariations?: {
399
+ editableLogoVariations: {
400
400
  variationId: number;
401
401
  width: number;
402
402
  height: number;
403
403
  }[],
404
+ logoImage: LogoImageModel,
405
+ isPrePurchase: boolean,
404
406
  ) => {
405
407
  try {
406
- const logoContents: {
407
- content: any;
408
- pageIndex: number;
409
- contentIndex: number;
410
- }[] = [];
411
-
412
- pageData.pages.forEach((page: any, pageIndex: number) => {
413
- page.contents.forEach((contentItem: any, contentIndex: number) => {
408
+ let logoData: { width: number; height: number } | undefined;
409
+
410
+ // For prepurchase, use editableLogoVariations
411
+ if (isPrePurchase && logoImage.logoVariation !== undefined) {
412
+ logoData = editableLogoVariations.find(
413
+ (v) => v.variationId === logoImage.logoVariation,
414
+ );
415
+ }
416
+
417
+ // For post-purchase or fallback, fetch from Fabric
418
+ if (!logoData || logoData.width <= 0 || logoData.height <= 0) {
419
+ logoData =
420
+ await FabricRenderClient.getInstance().getLogoSvgUrlByLogoImageAsync(
421
+ logoImage,
422
+ );
423
+ }
424
+
425
+ if (!logoData || logoData.width <= 0 || logoData.height <= 0) {
426
+ return;
427
+ }
428
+
429
+ const dimensions = getOptimalLogoSize(
430
+ BRAND_PAGE_TYPES.default,
431
+ logoData.width,
432
+ logoData.height,
433
+ );
434
+
435
+ pageData.pages.forEach((page: any) => {
436
+ page.contents.forEach((contentItem: any) => {
414
437
  const content = contentItem.settings.content;
415
438
 
416
439
  if (isLogoContent(content)) {
417
- logoContents.push({ content, pageIndex, contentIndex });
440
+ content.logoImageHeight = dimensions.newLogoSize;
441
+ content.logoImageWidth = dimensions.newLogoSize;
418
442
  }
419
443
  });
420
444
  });
445
+ } catch (error) {
446
+ console.warn('Failed to recalculate logo dimensions:', error);
447
+ }
448
+ };
421
449
 
422
- if (logoContents.length === 0) {
423
- return;
424
- }
450
+ export const recalculateHeaderLogoSizes = async (
451
+ pageSettingsStore: any,
452
+ logoSettingsStore: any,
453
+ editableLogoVariations: {
454
+ variationId: number;
455
+ width: number;
456
+ height: number;
457
+ }[],
458
+ brandPageType: BrandPageType,
459
+ isPrePurchase: boolean,
460
+ forceRecalculate = false,
461
+ ) => {
462
+ try {
463
+ const logoImageHeight =
464
+ pageSettingsStore.sections.header.desktop.logoImageHeight;
465
+ const logoVariation =
466
+ pageSettingsStore.sections.header.desktop.logoVariation;
425
467
 
426
- logoContents.forEach(({ content }) => {
427
- let logoData: { width: number; height: number } | null = null;
428
-
429
- // First priority: Use editableLogoVariations if available
430
- if (
431
- editableLogoVariations &&
432
- content.logoImage?.logoVariation !== undefined
433
- ) {
434
- const matchingVariation = editableLogoVariations.find(
435
- (variation) =>
436
- variation.variationId === content.logoImage.logoVariation,
437
- );
468
+ const logoPrePurchase = editableLogoVariations.find(
469
+ (logo) => logo.variationId === logoVariation,
470
+ );
438
471
 
439
- if (matchingVariation) {
440
- logoData = {
441
- width: matchingVariation.width,
442
- height: matchingVariation.height,
443
- };
444
- }
445
- }
472
+ const logoPostPurchase =
473
+ await FabricRenderClient.getInstance().getLogoSvgUrlByLogoImageAsync(
474
+ logoSettingsStore.selectedLogoImage,
475
+ );
446
476
 
447
- // Apply dimensions or fallback logic
448
- if (logoData && logoData.width && logoData.height) {
449
- const dimensions = getOptimalLogoSize(
450
- BRAND_PAGE_TYPES.default,
451
- logoData.width,
452
- logoData.height,
453
- );
477
+ const logo = isPrePurchase ? logoPrePurchase : logoPostPurchase;
454
478
 
455
- content.logoImageHeight = dimensions.newLogoSize;
456
- content.logoImageWidth = dimensions.newLogoSize;
457
- }
458
- });
479
+ if (logo && (logoImageHeight || forceRecalculate)) {
480
+ const optimalSize = getOptimalLogoSize(
481
+ brandPageType,
482
+ logo.width,
483
+ logo.height,
484
+ );
485
+
486
+ pageSettingsStore.sections.header.desktop.logoImageWidth =
487
+ optimalSize.newLogoSize;
488
+ pageSettingsStore.sections.header.desktop.logoImageHeight =
489
+ optimalSize.newLogoSize;
490
+ }
459
491
  } catch (error) {
460
- console.warn('Failed to recalculate prepurchase logo dimensions:', error);
492
+ console.warn('Failed to recalculate header logo dimensions:', error);
461
493
  }
462
494
  };
@@ -92,6 +92,7 @@ import {
92
92
  applyLogoTemplateImageToBrandPageTemplateModel,
93
93
  getOptimalLogoSize,
94
94
  recalculateLogoContentDimensions,
95
+ recalculateHeaderLogoSizes,
95
96
  } from '../../../brand-page/utils/logo.util';
96
97
  import type { ShopConfigData } from '../../../brand-page/models/shop.model';
97
98
  import { FabricRenderClient } from '../../../clients/fabric-render-client';
@@ -349,6 +350,31 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
349
350
  setSelectedTemplateId(payload: { templateId: string | false }): void {
350
351
  this.selectedTemplateId = payload.templateId;
351
352
  },
353
+ async recalculateLogoSizes(forceRecalculate = false) {
354
+ const brandPageContainerStore = useBrandPageContainerStore();
355
+ const userStore = useBrandPageMakerUserStore();
356
+ const pageSettingsStore = useUiPageSettingsStore();
357
+ const logoSettingsStore = useUiLogoSettingsStore();
358
+ const editableLogoStore = useUiEditableLogoStore();
359
+
360
+ if (!userStore.isAdmin && this.isBrandSite) {
361
+ await recalculateHeaderLogoSizes(
362
+ pageSettingsStore,
363
+ logoSettingsStore,
364
+ editableLogoStore.editableLogoVariations,
365
+ this.brandPageType,
366
+ brandPageContainerStore.isPrePurchase,
367
+ forceRecalculate,
368
+ );
369
+ } else if (!userStore.isAdmin && this.isBrandPageOrIsBrandContact) {
370
+ await recalculateLogoContentDimensions(
371
+ pageSettingsStore,
372
+ editableLogoStore.editableLogoVariations,
373
+ logoSettingsStore.selectedLogoImage,
374
+ brandPageContainerStore.isPrePurchase,
375
+ );
376
+ }
377
+ },
352
378
  async applySelectedTemplate() {
353
379
  const uiStore = useUiStore();
354
380
  const logoSettingsStore = useUiLogoSettingsStore();
@@ -567,6 +593,8 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
567
593
  backgroundStyles: brandPageModel.styles.backgroundStyles,
568
594
  });
569
595
 
596
+ await this.recalculateLogoSizes(true);
597
+
570
598
  this.setIsModifiedAfterTemplateApplied({
571
599
  isModified: false,
572
600
  });
@@ -901,52 +929,8 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
901
929
  });
902
930
  }
903
931
 
904
- if (
905
- !brandPageContainerStore.designDraftToken &&
906
- !userStore.isAdmin &&
907
- this.isBrandSite
908
- ) {
909
- const logoImageHeight =
910
- pageSettingsStore.sections[PAGE_SECTIONS.header][VIEWPORTS.desktop]
911
- .logoImageHeight;
912
- const logoVariation =
913
- pageSettingsStore.sections[PAGE_SECTIONS.header][VIEWPORTS.desktop]
914
- .logoVariation;
915
- const logoPrePurchase = editableLogoStore.editableLogoVariations.find(
916
- (logo) => logo.variationId === logoVariation,
917
- );
918
- const logoPostPurchase =
919
- await FabricRenderClient.getInstance().getLogoSvgUrlByLogoImageAsync(
920
- logoSettingsStore.selectedLogoImage,
921
- );
922
-
923
- const logo = brandPageContainerStore.isPrePurchase
924
- ? logoPrePurchase
925
- : logoPostPurchase;
926
-
927
- if (logo && logoImageHeight) {
928
- const optimalSize = getOptimalLogoSize(
929
- this.brandPageType,
930
- logo.width,
931
- logo.height,
932
- );
933
-
934
- pageSettingsStore.sections[PAGE_SECTIONS.header][
935
- VIEWPORTS.desktop
936
- ].logoImageWidth = optimalSize.newLogoSize;
937
- pageSettingsStore.sections[PAGE_SECTIONS.header][
938
- VIEWPORTS.desktop
939
- ].logoImageHeight = optimalSize.newLogoSize;
940
- }
941
- } else if (
942
- !brandPageContainerStore.designDraftToken &&
943
- !userStore.isAdmin &&
944
- this.isBrandPageOrIsBrandContact
945
- ) {
946
- recalculateLogoContentDimensions(
947
- pageSettingsStore,
948
- editableLogoStore.editableLogoVariations,
949
- );
932
+ if (!brandPageContainerStore.designDraftToken) {
933
+ await this.recalculateLogoSizes();
950
934
  }
951
935
 
952
936
  const backgroundStyles = new BackgroundStyles(
package/src/lib.ts CHANGED
@@ -62,6 +62,8 @@ export {
62
62
  getOptimalLogoSize,
63
63
  calculateOptimizedLogoDimensions,
64
64
  applyLogoImageBase64UrlToBrandPageTemplateModel,
65
+ recalculateLogoContentDimensions,
66
+ recalculateHeaderLogoSizes,
65
67
  } from './brand-page/utils/logo.util';
66
68
  export { sanitizeRTEHtml } from './brand-page-maker/utils';
67
69
  export { getPageSlugFromPageTitle } from './brand-page-maker/utils/slug.util';