@designcrowd/library.brand-page 5.16.2 → 5.16.3-background-1
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-Oj_ab97C.js → CreatedOnBrandCrowd-de-de-SsqsrkVk.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-GsCBx_Vo.js → CreatedOnBrandCrowd-en-us-DsGqYTNa.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-CWp_kHxD.js → CreatedOnBrandCrowd-es-es-C7s1ZcE5.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-DrPrFgKC.js → CreatedOnBrandCrowd-fr-ca-DsNnq4vF.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-DrPrFgKC.js → CreatedOnBrandCrowd-fr-fr-DsNnq4vF.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-BgvbBOFa.js → CreatedOnBrandCrowd-pt-br-BxAl5qbC.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-BgvbBOFa.js → CreatedOnBrandCrowd-pt-pt-BxAl5qbC.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-BZRXmSAH.js → CreatedOnDcom-de-de-rwohNRHC.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-D_xjisVj.js → CreatedOnDcom-en-us-CvwjVlGZ.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-CJzkN8Oq.js → CreatedOnDcom-es-es-X40dNkrj.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-C5ilNf57.js → CreatedOnDcom-fr-ca-DHVcZD4U.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-CZypZWWq.js → CreatedOnDcom-fr-fr-Bx2kBJe8.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-JZXunSWT.js → CreatedOnDcom-pt-br-OFY9pGT7.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-CjL1qKnl.js → CreatedOnDcom-pt-pt-Del779gQ.js} +1 -1
- package/lib/src/brand-page/components/page/Page.mixin.js +20 -15
- package/lib/src/brand-page/components/page/Page.stories.js +2 -2
- package/lib/src/brand-page/models/index.d.ts +1 -0
- package/lib/src/brand-page/models/index.js +2 -0
- package/lib/src/brand-page/utils/migration/migration-07.js +1 -1
- package/lib/src/brand-page/utils/view-model.util.d.ts +2 -1
- package/lib/src/brand-page/utils/view-model.util.js +27 -2
- package/lib/src/brand-page/view-models.d.ts +17 -2
- package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +3 -0
- package/lib/src/brand-page-maker/components/admin-background-settings/AdminBackgroundSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +4 -0
- package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +3 -0
- package/lib/src/brand-page-maker/components/preview/Preview.stories.js +2 -2
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +244 -1
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +68 -4
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +9 -1
- package/lib/src/brand-page-maker/stores/user/user-store.d.ts +4 -0
- package/lib/src/brand-page-maker/stores/user/user-store.js +4 -0
- package/lib/src/bundled-translations-DEk3SiLd.js +161 -0
- package/lib/src/bundles/bundled-translations.json +3 -1
- package/lib/src/clients/design-template-client.d.ts +1 -0
- package/lib/src/clients/models.d.ts +1 -0
- package/lib/src/css/library.brand-page-brandCrowd.min.css +48 -20
- package/lib/src/css/library.brand-page-brandPage.min.css +48 -20
- package/lib/src/css/library.brand-page-designCom.min.css +48 -20
- package/lib/src/css/library.brand-page-preview.min.css +48 -20
- package/lib/src/index.mjs +1 -1
- package/lib/src/{lib-BCV7U_Bf.js → lib-Dv7p4Gdd.js} +13374 -13187
- package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +10 -2
- package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -0
- package/lib/src/shared/background-settings/store/background-settings-store.js +34 -2
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +3 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +26 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +6 -1
- package/lib/src/shared/content-settings/components/image-field/ImageField.mixin.js +3 -1
- package/lib/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.mixin.d.ts +3 -0
- package/lib/src/shared/page-settings/components/delete-page-modal/DeletePageModal.mixin.d.ts +1 -1
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +3 -0
- package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +3 -0
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +5 -0
- package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +1 -0
- package/lib/src/shared/template-settings/models.d.ts +2 -0
- package/lib/src/shared/template-settings/store/template-settings-store.d.ts +6 -0
- package/lib/src/shared/template-settings/store/template-settings-store.js +109 -35
- package/package.json +1 -1
- package/src/brand-page/components/page/Page.mixin.ts +24 -15
- package/src/brand-page/components/page/Page.stories.ts +2 -1
- package/src/brand-page/components/page/Page.vue +19 -3
- package/src/brand-page/models/index.ts +3 -0
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -0
- package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +1 -0
- package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +2 -0
- package/src/brand-page/utils/migration/migration-07.ts +6 -4
- package/src/brand-page/utils/view-model.util.ts +42 -2
- package/src/brand-page/view-models.ts +23 -1
- package/src/brand-page-maker/components/preview/Preview.stories.ts +2 -1
- package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +90 -5
- package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +41 -4
- package/src/brand-page-maker/components/template-preview-with-state/TemplatePreviewWithState.vue +4 -6
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +14 -1
- package/src/brand-page-maker/stores/user/user-store.ts +5 -0
- package/src/bundles/bundled-translations.json +3 -1
- package/src/clients/design-template-client.ts +1 -0
- package/src/clients/models.ts +1 -0
- package/src/shared/background-settings/components/BackgroundSettings.vue +28 -8
- package/src/shared/background-settings/components/ReplaceImageSettingsForBackgroundSettings.vue +9 -0
- package/src/shared/background-settings/components/i18n/background-settings.json +3 -1
- package/src/shared/background-settings/store/background-settings-store.ts +51 -2
- package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +9 -3
- package/src/shared/content-settings/components/image-field/ImageField.mixin.ts +4 -1
- package/src/shared/template-settings/models.ts +2 -0
- package/src/shared/template-settings/store/template-settings-store.ts +141 -41
- package/lib/src/bundled-translations-D9iHE5G9.js +0 -161
|
@@ -16,7 +16,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
16
16
|
aspectRatio?: string | undefined;
|
|
17
17
|
width?: string | undefined;
|
|
18
18
|
height?: string | undefined;
|
|
19
|
-
textAlign?: string | undefined;
|
|
20
19
|
backgroundAttachment?: string | undefined;
|
|
21
20
|
background?: string | undefined;
|
|
22
21
|
backgroundImage?: string | undefined;
|
|
@@ -48,6 +47,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
48
47
|
overflowWrap?: string | undefined;
|
|
49
48
|
paddingTop?: string | undefined;
|
|
50
49
|
position?: string | undefined;
|
|
50
|
+
textAlign?: string | undefined;
|
|
51
51
|
textDecoration?: string | undefined;
|
|
52
52
|
top?: string | undefined;
|
|
53
53
|
transform?: string | undefined;
|
|
@@ -60,7 +60,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
60
60
|
aspectRatio?: string | undefined;
|
|
61
61
|
width?: string | undefined;
|
|
62
62
|
height?: string | undefined;
|
|
63
|
-
textAlign?: string | undefined;
|
|
64
63
|
backgroundAttachment?: string | undefined;
|
|
65
64
|
background?: string | undefined;
|
|
66
65
|
backgroundImage?: string | undefined;
|
|
@@ -92,6 +91,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
92
91
|
overflowWrap?: string | undefined;
|
|
93
92
|
paddingTop?: string | undefined;
|
|
94
93
|
position?: string | undefined;
|
|
94
|
+
textAlign?: string | undefined;
|
|
95
95
|
textDecoration?: string | undefined;
|
|
96
96
|
top?: string | undefined;
|
|
97
97
|
transform?: string | undefined;
|
|
@@ -149,6 +149,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
149
149
|
};
|
|
150
150
|
}[];
|
|
151
151
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
152
|
+
media?: {
|
|
153
|
+
type: import("../../../../brand-page").MediaTypes;
|
|
154
|
+
} | undefined;
|
|
152
155
|
}>;
|
|
153
156
|
userStore: import("pinia").Store<"brandPageMakerUser", import("../../../../brand-page-maker/stores").UserState, {}, {
|
|
154
157
|
setEmailAddress(payload: string): void;
|
|
@@ -158,6 +161,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
158
161
|
isAdmin: boolean;
|
|
159
162
|
}): void;
|
|
160
163
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
164
|
+
setUserToken(payload: {
|
|
165
|
+
userToken: string;
|
|
166
|
+
}): void;
|
|
161
167
|
}>;
|
|
162
168
|
backgroundSettingsStore: import("pinia").Store<"uiBackgroundSettings", import("../../store").BackgroundSettingsState, {}, {
|
|
163
169
|
onBackgroundChanged(): void;
|
|
@@ -194,6 +200,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
194
200
|
setBackgroundMode(payload: {
|
|
195
201
|
backgroundMode: "images" | "edit";
|
|
196
202
|
}): void;
|
|
203
|
+
setBackgroundMedia(payload: import("../../../my-uploads/models").MediaBaseSelectedPayload): void;
|
|
204
|
+
removeBackgroundVideo(): void;
|
|
197
205
|
}>;
|
|
198
206
|
}, {}, {
|
|
199
207
|
color(): string;
|
|
@@ -2,6 +2,7 @@ import type { BackgroundShape, BackgroundStyle, BackgroundStyles, Personalisatio
|
|
|
2
2
|
import { type BrandPageSettingsMode } from '../../../brand-page-maker/stores/brandpage-maker/brandpage-maker-store';
|
|
3
3
|
import type { SetBackgroundShapeSettingsPayload, SetLogoColorsPayload, SetRecommendedLogoColorsPayload } from '../background-settings-models';
|
|
4
4
|
import type { BackgroundSetStatePayload, BackgroundSettingsTabId } from '../models';
|
|
5
|
+
import type { MediaBaseSelectedPayload } from '../../my-uploads/models';
|
|
5
6
|
export interface BackgroundSettingsState {
|
|
6
7
|
backgroundStyles: BackgroundStyles;
|
|
7
8
|
logoColors: string[];
|
|
@@ -45,4 +46,6 @@ export declare const useUiBackgroundSettingsStore: import("pinia").StoreDefiniti
|
|
|
45
46
|
setBackgroundMode(payload: {
|
|
46
47
|
backgroundMode: BrandPageSettingsMode;
|
|
47
48
|
}): void;
|
|
49
|
+
setBackgroundMedia(payload: MediaBaseSelectedPayload): void;
|
|
50
|
+
removeBackgroundVideo(): void;
|
|
48
51
|
}>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PageStyles } from '../../../brand-page';
|
|
1
|
+
import { GettyVideoMedia, PageStyles } from '../../../brand-page';
|
|
2
2
|
import { BRANDPAGE_SETTINGS_MODES, } from '../../../brand-page-maker/stores/brandpage-maker/brandpage-maker-store';
|
|
3
3
|
import { backgroundSettingsTabId } from '../models';
|
|
4
4
|
import { defineStore } from 'pinia';
|
|
5
|
-
import { useUiStore } from '../../../brand-page-maker/stores';
|
|
5
|
+
import { useUiStore, useVideoStore } from '../../../brand-page-maker/stores';
|
|
6
6
|
export const useUiBackgroundSettingsStore = defineStore('uiBackgroundSettings', {
|
|
7
7
|
state: () => ({
|
|
8
8
|
backgroundStyles: {
|
|
@@ -10,6 +10,7 @@ export const useUiBackgroundSettingsStore = defineStore('uiBackgroundSettings',
|
|
|
10
10
|
backgroundShapeStyle: {},
|
|
11
11
|
backgroundShapes: [],
|
|
12
12
|
backgroundImageUrl: '',
|
|
13
|
+
media: undefined,
|
|
13
14
|
},
|
|
14
15
|
logoColors: [],
|
|
15
16
|
recommendedLogoColors: [],
|
|
@@ -130,5 +131,36 @@ export const useUiBackgroundSettingsStore = defineStore('uiBackgroundSettings',
|
|
|
130
131
|
setBackgroundMode(payload) {
|
|
131
132
|
this.backgroundMode = payload.backgroundMode;
|
|
132
133
|
},
|
|
134
|
+
setBackgroundMedia(payload) {
|
|
135
|
+
console.log('Here in the background settings store', payload);
|
|
136
|
+
if (payload.type === 'getty-video') {
|
|
137
|
+
const gettyMedia = payload;
|
|
138
|
+
const videoStore = useVideoStore();
|
|
139
|
+
videoStore.setVideoUrlsWithToken(gettyMedia.token, gettyMedia.videoSrc, gettyMedia.imageSrc, gettyMedia.assetId);
|
|
140
|
+
this.backgroundStyles.media = new GettyVideoMedia({
|
|
141
|
+
gettyToken: gettyMedia.token,
|
|
142
|
+
gettyAssetId: gettyMedia.assetId,
|
|
143
|
+
mimeType: gettyMedia.mimeType,
|
|
144
|
+
settings: {
|
|
145
|
+
autoPlay: gettyMedia.autoPlay,
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
// Clear any existing background image/shape
|
|
149
|
+
this.backgroundStyles.backgroundImageUrl = '';
|
|
150
|
+
// Default background style for videos
|
|
151
|
+
this.setBackgroundStyle({
|
|
152
|
+
backgroundStyle: {
|
|
153
|
+
backgroundRepeat: 'no-repeat',
|
|
154
|
+
backgroundPosition: 'center center',
|
|
155
|
+
backgroundSize: 'cover',
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
this.onBackgroundChanged();
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
removeBackgroundVideo() {
|
|
162
|
+
this.backgroundStyles.media = undefined;
|
|
163
|
+
this.onBackgroundChanged();
|
|
164
|
+
},
|
|
133
165
|
},
|
|
134
166
|
});
|
|
@@ -481,6 +481,9 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
481
481
|
isAdmin: boolean;
|
|
482
482
|
}): void;
|
|
483
483
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
484
|
+
setUserToken(payload: {
|
|
485
|
+
userToken: string;
|
|
486
|
+
}): void;
|
|
484
487
|
}>;
|
|
485
488
|
pageSettingsStore: import("pinia").Store<"uiPageSettings", import("../../../page-settings/store").PageSettingsState, {
|
|
486
489
|
pageIndex(): number;
|
|
@@ -636,6 +636,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
636
636
|
isAdmin: boolean;
|
|
637
637
|
}): void;
|
|
638
638
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
639
|
+
setUserToken(payload: {
|
|
640
|
+
userToken: string;
|
|
641
|
+
}): void;
|
|
639
642
|
}>;
|
|
640
643
|
uiStore: import("pinia").Store<"ui", import("../../../models").UIRootState, {
|
|
641
644
|
endpoints: () => import("../../../models").Endpoints;
|
|
@@ -757,6 +760,29 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
757
760
|
collapseAllSections(): void;
|
|
758
761
|
setPreviousSelectedDisplayStyle(viewport: string, displayStyle: string): void;
|
|
759
762
|
}>;
|
|
763
|
+
uiLogoSettingsStore: import("pinia").Store<"uiLogoSettings", import("../../../logo-settings/store").LogoSettingsState, {
|
|
764
|
+
selectedLogoImageUrl(): {
|
|
765
|
+
logoImageUrl: string | undefined;
|
|
766
|
+
logoImageBase64Url: string | undefined;
|
|
767
|
+
};
|
|
768
|
+
selectedLogoTemplateImage(): import("../../../../brand-page").LogoTemplateImageModel | undefined;
|
|
769
|
+
logoVariationImageUrls(): Record<number, string>;
|
|
770
|
+
}, {
|
|
771
|
+
redirectToCreateNewDesignPage(): Promise<void>;
|
|
772
|
+
setState(payload: {
|
|
773
|
+
newState: import("../../../logo-settings/store").LogoSettingsState;
|
|
774
|
+
}): void;
|
|
775
|
+
addDefaultLogoContentToCurrentPage(): void;
|
|
776
|
+
setLogoImageToAllContentsAndSections({ logoImage, keepLogoVariation, }: {
|
|
777
|
+
logoImage: import("../../../../brand-page").LogoImageModel;
|
|
778
|
+
keepLogoVariation?: boolean | undefined;
|
|
779
|
+
}): void;
|
|
780
|
+
setSelectedLogoImage(selectedLogoImage: import("../../../../brand-page").LogoImageModel): void;
|
|
781
|
+
setSelectedLogoImageToAll(payload: import("../../../logo-settings/store").SetSelectedLogoImagePayload): void;
|
|
782
|
+
applyLogoDesignAttributes(logoDesignAttributes: import("../../../../clients/fabric-render-client").BrandPageLogoDesignAttributesModel): void;
|
|
783
|
+
setLogoVariation(payload: import("../../../logo-settings/store").SetLogoVariationPayload): void;
|
|
784
|
+
setLogoToAllContentsAndSectionsByCreateByoLogoDraftResult(result: import("../../../models").CreateByoLogoDraftResult): void;
|
|
785
|
+
}>;
|
|
760
786
|
}, {
|
|
761
787
|
isToggled: boolean;
|
|
762
788
|
}, {
|
|
@@ -8,6 +8,7 @@ import { SIDE_BAR_TAB_NAMES } from '../../../../brand-page-maker/constants';
|
|
|
8
8
|
import { ITEM_FIELD_TYPES, } from '../../../../brand-page-maker/models';
|
|
9
9
|
import { useUiPageSettingsStore } from '../../../page-settings/store';
|
|
10
10
|
import { PAGE_SECTIONS } from '../../../page-settings/models';
|
|
11
|
+
import { useUiLogoSettingsStore } from '../../../logo-settings/store';
|
|
11
12
|
const RTE_ALLOWED_SECTION_TYPES = [
|
|
12
13
|
'banner-section',
|
|
13
14
|
'text',
|
|
@@ -49,6 +50,7 @@ export default defineComponent({
|
|
|
49
50
|
const uiStore = useUiStore();
|
|
50
51
|
const sideBarStore = useUiSideBarStore();
|
|
51
52
|
const pageSettingsStore = useUiPageSettingsStore();
|
|
53
|
+
const uiLogoSettingsStore = useUiLogoSettingsStore();
|
|
52
54
|
return {
|
|
53
55
|
getFieldSettings: computed(() => contentSettingsStore.getFieldSettings),
|
|
54
56
|
getContent: computed(() => contentSettingsStore.getContent),
|
|
@@ -65,6 +67,7 @@ export default defineComponent({
|
|
|
65
67
|
uiStore,
|
|
66
68
|
sideBarStore,
|
|
67
69
|
pageSettingsStore,
|
|
70
|
+
uiLogoSettingsStore,
|
|
68
71
|
};
|
|
69
72
|
},
|
|
70
73
|
data: () => ({
|
|
@@ -193,11 +196,13 @@ export default defineComponent({
|
|
|
193
196
|
// for brand page, when first page logo content is changing we want to keep the header and footer logo synced even if they are not used becuase of designlink
|
|
194
197
|
const logoContentItem = this.contentSettingsStore.items.find((i) => i.type === 'logo');
|
|
195
198
|
if (logoContentItem) {
|
|
199
|
+
const logoImage = JSON.parse(JSON.stringify(logoContentItem.settings.content.logoImage));
|
|
200
|
+
this.uiLogoSettingsStore.setSelectedLogoImage(logoImage);
|
|
196
201
|
[PAGE_SECTIONS.header, PAGE_SECTIONS.footer].forEach((section) => {
|
|
197
202
|
[VIEWPORTS.desktop, VIEWPORTS.mobile].forEach((viewPort) => {
|
|
198
203
|
this.pageSettingsStore.setPageSettingsSectionLogoImage({
|
|
199
204
|
sectionName: section,
|
|
200
|
-
logoImage:
|
|
205
|
+
logoImage: logoImage,
|
|
201
206
|
logoTemplateImage: undefined,
|
|
202
207
|
logoImageBase64Url: logoContentItem.settings.content.logoImageBase64Url,
|
|
203
208
|
viewport: viewPort,
|
package/lib/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.mixin.d.ts
CHANGED
|
@@ -105,6 +105,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
105
105
|
isAdmin: boolean;
|
|
106
106
|
}): void;
|
|
107
107
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
108
|
+
setUserToken(payload: {
|
|
109
|
+
userToken: string;
|
|
110
|
+
}): void;
|
|
108
111
|
}>;
|
|
109
112
|
}, {
|
|
110
113
|
dropdownValues: {};
|
package/lib/src/shared/page-settings/components/delete-page-modal/DeletePageModal.mixin.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
16
16
|
}>, {}, {}, {}, {
|
|
17
17
|
onCancel(): void;
|
|
18
18
|
onConfirm(): void;
|
|
19
|
-
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("
|
|
19
|
+
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("confirm" | "cancel")[], "confirm" | "cancel", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
20
20
|
isVisible: {
|
|
21
21
|
type: BooleanConstructor;
|
|
22
22
|
required: false;
|
|
@@ -3893,6 +3893,9 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
3893
3893
|
isAdmin: boolean;
|
|
3894
3894
|
}): void;
|
|
3895
3895
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
3896
|
+
setUserToken(payload: {
|
|
3897
|
+
userToken: string;
|
|
3898
|
+
}): void;
|
|
3896
3899
|
}>;
|
|
3897
3900
|
pageSettingsStore: import("pinia").Store<"uiPageSettings", import("../../store").PageSettingsState, {
|
|
3898
3901
|
pageIndex(): number;
|
|
@@ -261,6 +261,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
261
261
|
isAdmin: boolean;
|
|
262
262
|
}): void;
|
|
263
263
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
264
|
+
setUserToken(payload: {
|
|
265
|
+
userToken: string;
|
|
266
|
+
}): void;
|
|
264
267
|
}>;
|
|
265
268
|
'side-bar-content': import("vue").Ref<null, null>;
|
|
266
269
|
isPrepurchase: import("vue").ComputedRef<boolean>;
|
|
@@ -470,6 +470,9 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
470
470
|
isAdmin: boolean;
|
|
471
471
|
}): void;
|
|
472
472
|
setBrandPageCommissionPercentage(payload: number): void;
|
|
473
|
+
setUserToken(payload: {
|
|
474
|
+
userToken: string;
|
|
475
|
+
}): void;
|
|
473
476
|
}>;
|
|
474
477
|
brandPageMakerStore: import("pinia").Store<"brandPageMaker", import("../../../brand-page-maker/stores").BrandPageMakerState, {
|
|
475
478
|
contentErrorCount(): number;
|
|
@@ -850,6 +853,8 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
850
853
|
setBackgroundMode(payload: {
|
|
851
854
|
backgroundMode: "images" | "edit";
|
|
852
855
|
}): void;
|
|
856
|
+
setBackgroundMedia(payload: import("../../my-uploads/models").MediaBaseSelectedPayload): void;
|
|
857
|
+
removeBackgroundVideo(): void;
|
|
853
858
|
}>;
|
|
854
859
|
eventTracker: {
|
|
855
860
|
sendExperimentStartedEvent: (abTestKey: string, abTestValue: string) => void;
|
|
@@ -514,6 +514,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
514
514
|
}): void;
|
|
515
515
|
clearTemplates(): void;
|
|
516
516
|
getTemplateByTemplateId(id: string): TemplateSettingsTemplate | undefined;
|
|
517
|
+
setupLogoChangeWatcher(): void;
|
|
517
518
|
}>;
|
|
518
519
|
uiStore: import("pinia").Store<"ui", import("../../models").UIRootState, {
|
|
519
520
|
endpoints: () => import("../../models").Endpoints;
|
|
@@ -4,6 +4,8 @@ export interface TemplateSettingsTemplate {
|
|
|
4
4
|
isPersonalisable?: boolean;
|
|
5
5
|
personalisationContentIndex?: number;
|
|
6
6
|
brandPageModel: BrandPageModel;
|
|
7
|
+
contentKey?: string;
|
|
8
|
+
previewImageUrl?: string;
|
|
7
9
|
}
|
|
8
10
|
export type DesignTemplateType = 'Facebook cover' | 'Brand Page' | 'Brand Site' | 'Brand Contact';
|
|
9
11
|
export declare const TEMPLATE_TABS: {
|
|
@@ -19,6 +19,8 @@ export interface TemplatesSettingState {
|
|
|
19
19
|
selectedCategory: string | undefined;
|
|
20
20
|
searchTerm: string | undefined;
|
|
21
21
|
tabsWithTranslations: SelectedTabType[];
|
|
22
|
+
logoChangeWatcherInitialized: boolean;
|
|
23
|
+
renderAsImage: boolean;
|
|
22
24
|
}
|
|
23
25
|
export declare const useUiTemplateSettingsStore: import("pinia").StoreDefinition<"uiTemplateSettings", TemplatesSettingState, {}, {
|
|
24
26
|
_addTemplates({ templates }: {
|
|
@@ -71,5 +73,9 @@ export declare const useUiTemplateSettingsStore: import("pinia").StoreDefinition
|
|
|
71
73
|
}): void;
|
|
72
74
|
clearTemplates(): void;
|
|
73
75
|
getTemplateByTemplateId(id: string): TemplateSettingsTemplate | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* re-fetch templates when the logo changes to regenerate preview images with the new logo.
|
|
78
|
+
*/
|
|
79
|
+
setupLogoChangeWatcher(): void;
|
|
74
80
|
}>;
|
|
75
81
|
export {};
|
|
@@ -2,48 +2,58 @@ import { TEMPLATE_TABS } from '../models';
|
|
|
2
2
|
import * as DesignTemplateClient from '../../../clients/design-template-client';
|
|
3
3
|
import {} from '../../../clients/models';
|
|
4
4
|
import { BP_DEFAULT_TEMPLATE_TYPE_NAME, SIDE_BAR_TAB_NAMES, } from '../../../brand-page-maker/constants';
|
|
5
|
-
import { defineStore } from 'pinia';
|
|
6
|
-
import { useBrandPageContainerStore, useBrandPageMakerStore, useUiStore, } from '../../../brand-page-maker/stores';
|
|
5
|
+
import { defineStore, storeToRefs } from 'pinia';
|
|
6
|
+
import { useBrandPageContainerStore, useBrandPageMakerStore, useBrandPageMakerUserStore, useUiStore, } from '../../../brand-page-maker/stores';
|
|
7
7
|
import { useUiSideBarStore } from '../../side-bar/store';
|
|
8
8
|
import { BrandPageModel } from '../../../brand-page/models';
|
|
9
9
|
import { migrateBrandPageModel } from '../../../brand-page/utils';
|
|
10
10
|
import { getAiContentIndexByTemplateTokenAndNumberOfVariations } from '../../../brand-page-maker/utils/ai-content-selection.util';
|
|
11
11
|
import { useUiLogoSettingsStore } from '../../logo-settings/store';
|
|
12
12
|
import { templateSettingsTr, getCurrentLocale, } from '../../../composables/useTranslate';
|
|
13
|
+
import { watch } from 'vue';
|
|
13
14
|
export const DEFAULT_PAGE_SIZE = 6;
|
|
14
15
|
const LOAD_PAGE_RETRY_DELAY = 250;
|
|
15
16
|
export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
16
|
-
state: () =>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
tabsWithTranslations: [
|
|
32
|
-
{
|
|
17
|
+
state: () => {
|
|
18
|
+
const brandPageContainerStore = useBrandPageContainerStore();
|
|
19
|
+
const brandPageMakerUserStore = useBrandPageMakerUserStore();
|
|
20
|
+
// Set renderAsImage to true if not admin AND not pre-purchase
|
|
21
|
+
const renderAsImage = !brandPageMakerUserStore.isAdmin &&
|
|
22
|
+
!brandPageContainerStore.isPrePurchase;
|
|
23
|
+
return {
|
|
24
|
+
isBusy: false,
|
|
25
|
+
pageCount: 0,
|
|
26
|
+
pageNo: 1,
|
|
27
|
+
pageNoLoaded: 0,
|
|
28
|
+
pageSize: DEFAULT_PAGE_SIZE,
|
|
29
|
+
templateType: BP_DEFAULT_TEMPLATE_TYPE_NAME,
|
|
30
|
+
templates: [],
|
|
31
|
+
selectedTab: {
|
|
33
32
|
key: 'all',
|
|
34
33
|
displayName: templateSettingsTr(`headerAll`),
|
|
35
34
|
},
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
searchTerm: undefined,
|
|
36
|
+
selectedCategory: undefined,
|
|
37
|
+
templateCategories: [],
|
|
38
|
+
tabsWithTranslations: [
|
|
39
|
+
{
|
|
40
|
+
key: 'all',
|
|
41
|
+
displayName: templateSettingsTr(`headerAll`),
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'categories',
|
|
45
|
+
displayName: templateSettingsTr(`headerCategories`),
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
key: 'ai',
|
|
49
|
+
displayName: templateSettingsTr(`headerAi`),
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
cachedTemplates: {},
|
|
53
|
+
logoChangeWatcherInitialized: false,
|
|
54
|
+
renderAsImage,
|
|
55
|
+
};
|
|
56
|
+
},
|
|
47
57
|
actions: {
|
|
48
58
|
_addTemplates({ templates }) {
|
|
49
59
|
this.templates = this.templates.concat(templates);
|
|
@@ -132,6 +142,7 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
|
132
142
|
async loadPageNo({ pageNo }) {
|
|
133
143
|
const brandPageMakerStore = useBrandPageMakerStore();
|
|
134
144
|
const brandPageContainerStore = useBrandPageContainerStore();
|
|
145
|
+
const brandPageMakerUserStore = useBrandPageMakerUserStore();
|
|
135
146
|
const logoSettingsStore = useUiLogoSettingsStore();
|
|
136
147
|
const designTemplateToken = brandPageContainerStore.designTemplateToken;
|
|
137
148
|
if (brandPageMakerStore.isInitialising) {
|
|
@@ -163,6 +174,7 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
|
163
174
|
categoryName: this.selectedCategory,
|
|
164
175
|
searchTerm: this.searchTerm,
|
|
165
176
|
logoDraftToken: logoSettingsStore.selectedLogoImage.logoDraftToken,
|
|
177
|
+
logoVariation: logoSettingsStore.selectedLogoImage.logoVariation,
|
|
166
178
|
personalisable: this.selectedTab.key === TEMPLATE_TABS.AI,
|
|
167
179
|
selectedTemplateToken: designTemplateToken,
|
|
168
180
|
locale: currentLocale,
|
|
@@ -171,11 +183,39 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
|
171
183
|
return;
|
|
172
184
|
}
|
|
173
185
|
this._setPageCount({ pageCount: result.pageCount });
|
|
174
|
-
const templates =
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
186
|
+
const templates = await Promise.all(result.paginatedItems.map(async (item) => {
|
|
187
|
+
try {
|
|
188
|
+
if (brandPageContainerStore.isPrePurchase ||
|
|
189
|
+
brandPageMakerUserStore.isAdmin) {
|
|
190
|
+
// Pre-purchase: full template with brandPageModel for live rendering
|
|
191
|
+
const template = await designTemplateClient.getTemplateByTemplateToken(item.designTemplateToken);
|
|
192
|
+
return this.safeMapToTemplateSettingsTemplate(template);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
let personalisationContentIndex;
|
|
196
|
+
let contentKey;
|
|
197
|
+
if (uiStore.personalisationData?.length) {
|
|
198
|
+
personalisationContentIndex =
|
|
199
|
+
await getAiContentIndexByTemplateTokenAndNumberOfVariations(item.designTemplateToken, uiStore.personalisationData.length);
|
|
200
|
+
// Get the contentKey from the selected personalisation variation
|
|
201
|
+
// This is needed for the backend preview URL to show the correct variation
|
|
202
|
+
const selectedPersonalisation = uiStore.personalisationData[personalisationContentIndex];
|
|
203
|
+
contentKey = selectedPersonalisation.contentKey;
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
id: item.designTemplateToken,
|
|
207
|
+
contentKey,
|
|
208
|
+
previewImageUrl: item.previewImageUrl,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
}));
|
|
216
|
+
// Filter out null templates before adding
|
|
217
|
+
const validTemplates = templates.filter((t) => t !== null);
|
|
218
|
+
this._addTemplates({ templates: validTemplates });
|
|
179
219
|
this._setPageNoLoaded({ pageNoLoaded: pageNo });
|
|
180
220
|
}
|
|
181
221
|
finally {
|
|
@@ -244,6 +284,10 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
|
244
284
|
throw new Error('templateType should not be falsy');
|
|
245
285
|
}
|
|
246
286
|
this.templateType = templateType;
|
|
287
|
+
if (!this.logoChangeWatcherInitialized) {
|
|
288
|
+
this.setupLogoChangeWatcher();
|
|
289
|
+
this.logoChangeWatcherInitialized = true;
|
|
290
|
+
}
|
|
247
291
|
},
|
|
248
292
|
async setTemplateCategories(payload) {
|
|
249
293
|
await this._setTemplateCategories({
|
|
@@ -270,5 +314,35 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
|
270
314
|
getTemplateByTemplateId(id) {
|
|
271
315
|
return (this.templates.find((t) => t.id === id) || this.cachedTemplates[id]);
|
|
272
316
|
},
|
|
317
|
+
/**
|
|
318
|
+
* re-fetch templates when the logo changes to regenerate preview images with the new logo.
|
|
319
|
+
*/
|
|
320
|
+
setupLogoChangeWatcher() {
|
|
321
|
+
const logoSettingsStore = useUiLogoSettingsStore();
|
|
322
|
+
const brandPageContainerStore = useBrandPageContainerStore();
|
|
323
|
+
const brandPageMakerUserStore = useBrandPageMakerUserStore();
|
|
324
|
+
const { selectedLogoImage } = storeToRefs(logoSettingsStore);
|
|
325
|
+
// Watch for changes to logoImage (token or variation changes)
|
|
326
|
+
watch(() => selectedLogoImage.value, async (newLogoImage, oldLogoImage) => {
|
|
327
|
+
// Skip initial load when oldLogoImage is undefined
|
|
328
|
+
if (!oldLogoImage) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
// Only refetch for post-purchase users and when logo actually changes
|
|
332
|
+
const hasLogoChanged = newLogoImage.logoDraftToken !== oldLogoImage.logoDraftToken ||
|
|
333
|
+
newLogoImage.logoVariation !== oldLogoImage.logoVariation;
|
|
334
|
+
if (!brandPageContainerStore.isPrePurchase &&
|
|
335
|
+
!brandPageMakerUserStore.isAdmin &&
|
|
336
|
+
newLogoImage.logoDraftToken &&
|
|
337
|
+
hasLogoChanged) {
|
|
338
|
+
// Reset templates state and reload with new logo
|
|
339
|
+
// Use the same pattern as onCategorySelected and onSearch
|
|
340
|
+
await this._setTemplates({ templates: [] });
|
|
341
|
+
await this._setPageNoLoaded({ pageNoLoaded: 0 });
|
|
342
|
+
await this._setPageNo({ pageNo: 1 });
|
|
343
|
+
await this.loadPageNo({ pageNo: 1 });
|
|
344
|
+
}
|
|
345
|
+
}, { deep: true });
|
|
346
|
+
},
|
|
273
347
|
},
|
|
274
348
|
});
|
package/package.json
CHANGED
|
@@ -99,16 +99,21 @@ export default defineComponent({
|
|
|
99
99
|
|
|
100
100
|
backgroundShapes(): BackgroundShape[] {
|
|
101
101
|
const backgroundShapes: BackgroundShape[] = [
|
|
102
|
-
...(this.viewModel?.styles?.
|
|
102
|
+
...(this.viewModel?.styles?.backgroundStylesViewModel
|
|
103
|
+
?.backgroundShapes || []),
|
|
103
104
|
];
|
|
104
105
|
|
|
105
106
|
// TODO: create style viewmodel object to include backgroundImageContent attribute only on viewmodel
|
|
106
107
|
// p.s backgroundImageUrl can be url or SVG content string
|
|
107
|
-
if (
|
|
108
|
+
if (
|
|
109
|
+
this.viewModel.styles?.backgroundStylesViewModel?.backgroundImageUrl
|
|
110
|
+
) {
|
|
108
111
|
backgroundShapes.splice(0, 0, {
|
|
109
|
-
name: this.viewModel.styles.
|
|
112
|
+
name: this.viewModel.styles.backgroundStylesViewModel
|
|
113
|
+
.backgroundImageUrl,
|
|
110
114
|
style: {
|
|
111
|
-
...this.viewModel.styles.
|
|
115
|
+
...this.viewModel.styles.backgroundStylesViewModel
|
|
116
|
+
.backgroundShapeStyle,
|
|
112
117
|
width: `100%`,
|
|
113
118
|
height: `100%`,
|
|
114
119
|
},
|
|
@@ -122,11 +127,12 @@ export default defineComponent({
|
|
|
122
127
|
let styles: BrandPageCssStyle = {};
|
|
123
128
|
|
|
124
129
|
if (
|
|
125
|
-
!this.viewModel?.styles?.
|
|
126
|
-
|
|
130
|
+
!this.viewModel?.styles?.backgroundStylesViewModel
|
|
131
|
+
?.backgroundImageUrl &&
|
|
132
|
+
this.viewModel?.styles?.backgroundStylesViewModel?.style
|
|
127
133
|
) {
|
|
128
134
|
styles = {
|
|
129
|
-
...this.viewModel?.styles?.
|
|
135
|
+
...this.viewModel?.styles?.backgroundStylesViewModel?.style,
|
|
130
136
|
};
|
|
131
137
|
}
|
|
132
138
|
|
|
@@ -149,38 +155,41 @@ export default defineComponent({
|
|
|
149
155
|
},
|
|
150
156
|
|
|
151
157
|
rootBackgroundStyles(): BrandPageCssStyle {
|
|
158
|
+
console.log('vm styles ', this.viewModel.styles);
|
|
152
159
|
const styles: BrandPageCssStyle = {
|
|
153
|
-
...(this.viewModel?.styles?.
|
|
160
|
+
...(this.viewModel?.styles?.backgroundStylesViewModel?.style || {}),
|
|
154
161
|
};
|
|
155
162
|
|
|
156
163
|
delete styles.backgroundAttachment;
|
|
157
164
|
|
|
158
165
|
if (
|
|
159
|
-
this.viewModel.styles?.
|
|
160
|
-
(this.viewModel.styles.
|
|
166
|
+
this.viewModel.styles?.backgroundStylesViewModel?.backgroundImageUrl &&
|
|
167
|
+
(this.viewModel.styles.backgroundStylesViewModel.backgroundImageUrl.endsWith(
|
|
161
168
|
`.svg`,
|
|
162
169
|
) ||
|
|
163
|
-
!this.viewModel.styles?.
|
|
170
|
+
!this.viewModel.styles?.backgroundStylesViewModel?.backgroundImageUrl.startsWith(
|
|
164
171
|
'http',
|
|
165
172
|
))
|
|
166
173
|
) {
|
|
167
174
|
// Any backgroundImageUrl that handles svg file, svg markup is handled as BackgroundShape object
|
|
168
175
|
delete styles.backgroundImage;
|
|
169
|
-
} else if (
|
|
176
|
+
} else if (
|
|
177
|
+
this.viewModel?.styles?.backgroundStylesViewModel?.backgroundImageUrl
|
|
178
|
+
) {
|
|
170
179
|
// if background is a gradient
|
|
171
180
|
if (
|
|
172
|
-
this.viewModel?.styles?.
|
|
181
|
+
this.viewModel?.styles?.backgroundStylesViewModel?.style?.background?.startsWith(
|
|
173
182
|
'linear-gradient',
|
|
174
183
|
)
|
|
175
184
|
) {
|
|
176
185
|
// combine image and gradient into the `background` property
|
|
177
|
-
styles.backgroundImage = `url(${this.viewModel?.styles?.
|
|
186
|
+
styles.backgroundImage = `url(${this.viewModel?.styles?.backgroundStylesViewModel?.backgroundImageUrl}), ${this.viewModel?.styles?.backgroundStylesViewModel?.style?.background}`;
|
|
178
187
|
|
|
179
188
|
delete styles.background;
|
|
180
189
|
} else {
|
|
181
190
|
// background is a solid color
|
|
182
191
|
styles.backgroundColor = styles.background;
|
|
183
|
-
styles.backgroundImage = `url(${this.viewModel?.styles?.
|
|
192
|
+
styles.backgroundImage = `url(${this.viewModel?.styles?.backgroundStylesViewModel?.backgroundImageUrl})`;
|
|
184
193
|
|
|
185
194
|
delete styles.background;
|
|
186
195
|
}
|