@designcrowd/library.brand-page 5.14.1 → 5.14.2-ml3
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-GGeRP-yJ.js → CreatedOnBrandCrowd-de-de-DxLeSo0D.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-D-mcoYKD.js → CreatedOnBrandCrowd-en-us-p9-PKTfD.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-UB-XVZLH.js → CreatedOnBrandCrowd-es-es-Dg1DkZwL.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-BcLwD-Ww.js → CreatedOnBrandCrowd-fr-fr-r6Ers47p.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-DuTtIiT7.js → CreatedOnBrandCrowd-pt-pt-CRvyq6iB.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-6nOtKdaY.js → CreatedOnDcom-de-de-DfCzyu8K.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-BlzEFog2.js → CreatedOnDcom-en-us-CP6lT2IJ.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-B_v3IYem.js → CreatedOnDcom-es-es-CABw9-cD.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DmWvH9K_.js → CreatedOnDcom-fr-fr-DIN2-W0Q.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-P25mfZVx.js → CreatedOnDcom-pt-pt-BLTdvqrM.js} +1 -1
- package/lib/src/brand-page/models/brand-page-context.model.d.ts +2 -0
- package/lib/src/brand-page/models/brand-page-context.model.js +2 -1
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +12 -3
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +16 -3
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +12 -3
- package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +12 -3
- package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +12 -3
- package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +12 -3
- package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +12 -3
- package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +7 -1
- package/lib/src/brand-page-maker/composables/useEventTracker.js +29 -4
- package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +14 -3
- package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +56 -9
- package/lib/src/brand-page-maker/stores/route/localised-route-store.js +6 -0
- package/lib/src/clients/brand-page-client.d.ts +20 -3
- package/lib/src/clients/brand-page-client.js +29 -17
- package/lib/src/css/library.brand-page-brandCrowd.min.css +14 -11
- package/lib/src/css/library.brand-page-brandPage.min.css +14 -11
- package/lib/src/css/library.brand-page-designCom.min.css +14 -11
- package/lib/src/css/library.brand-page-preview.min.css +14 -11
- package/lib/src/index.mjs +35 -34
- package/lib/src/{lib-CQSKlB0S.js → lib-OVp_vdPB.js} +20480 -20315
- package/lib/src/mockServiceWorker.js +1 -1
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +4 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +4 -0
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +12 -3
- package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +12 -3
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +16 -3
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +12 -3
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +30 -10
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +25 -2
- package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +12 -3
- package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +4 -0
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +16 -3
- package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +4 -0
- package/package.json +2 -2
- package/src/brand-page/models/brand-page-context.model.ts +7 -1
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
- package/src/brand-page-maker/composables/useEventTracker.ts +37 -4
- package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +96 -9
- package/src/brand-page-maker/stores/route/localised-route-store.ts +6 -0
- package/src/clients/brand-page-client.ts +55 -20
- package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +31 -2
- package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.vue +8 -0
|
@@ -1,7 +1,41 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
1
|
+
import axios, { type AxiosInstance } from 'axios';
|
|
2
2
|
import type { BrandPageType } from '../brand-page';
|
|
3
3
|
import { BRAND_PAGE_TYPES } from '../brand-page';
|
|
4
4
|
import type { WebsiteSlugCheckResponse } from '../brand-page-maker/models/api.model';
|
|
5
|
+
import { getCurrentLocale } from '../composables/useTranslate';
|
|
6
|
+
|
|
7
|
+
export interface SaveBrandPageResponse {
|
|
8
|
+
designDraftToken: string;
|
|
9
|
+
status: string;
|
|
10
|
+
slug: string;
|
|
11
|
+
canPublish: boolean;
|
|
12
|
+
websiteUpsellAbTestKey: string;
|
|
13
|
+
websiteUpsellAbTestValue: string;
|
|
14
|
+
websiteUpsellModalViewModel: any;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface PublishBrandPageResponse {
|
|
18
|
+
designDraftToken: string;
|
|
19
|
+
status: string;
|
|
20
|
+
slug: string;
|
|
21
|
+
websiteUpsellAbTestKey: string;
|
|
22
|
+
websiteUpsellAbTestValue: string;
|
|
23
|
+
websiteUpsellModalViewModel: any;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let AXIOS_INSTANCE: AxiosInstance;
|
|
27
|
+
|
|
28
|
+
const getAxiosInstance = () => {
|
|
29
|
+
if (!AXIOS_INSTANCE) {
|
|
30
|
+
AXIOS_INSTANCE = axios.create({
|
|
31
|
+
headers: {
|
|
32
|
+
'Accept-Language': getCurrentLocale(),
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return AXIOS_INSTANCE;
|
|
38
|
+
};
|
|
5
39
|
|
|
6
40
|
const getApiUrlPrefix = (brandPageType: BrandPageType) => {
|
|
7
41
|
switch (brandPageType) {
|
|
@@ -20,12 +54,12 @@ const saveBrandPageAsync = async (
|
|
|
20
54
|
brandPageType: BrandPageType,
|
|
21
55
|
request: any,
|
|
22
56
|
designDraftToken?: string,
|
|
23
|
-
) => {
|
|
57
|
+
): Promise<SaveBrandPageResponse | null> => {
|
|
24
58
|
const url = `${getApiUrlPrefix(brandPageType)}${
|
|
25
59
|
designDraftToken ? `/${designDraftToken}` : ''
|
|
26
60
|
}`;
|
|
27
61
|
|
|
28
|
-
const response = await
|
|
62
|
+
const response = await getAxiosInstance().post(url, request);
|
|
29
63
|
|
|
30
64
|
if (response.status === 200) {
|
|
31
65
|
return response.data;
|
|
@@ -38,12 +72,12 @@ const setBrandPageSlugAsync = async (
|
|
|
38
72
|
brandPageType: BrandPageType,
|
|
39
73
|
designDraftToken,
|
|
40
74
|
options,
|
|
41
|
-
) => {
|
|
75
|
+
): Promise<PublishBrandPageResponse | null> => {
|
|
42
76
|
const { slug, shouldPublish, brandPageContentTypes } = options;
|
|
43
77
|
|
|
44
78
|
const url = `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/publish`;
|
|
45
79
|
|
|
46
|
-
const response = await
|
|
80
|
+
const response = await getAxiosInstance().post(url, {
|
|
47
81
|
slug,
|
|
48
82
|
shouldPublish,
|
|
49
83
|
brandPageContentTypes: brandPageContentTypes || [],
|
|
@@ -65,7 +99,7 @@ const createDefaultBrandPage = async (
|
|
|
65
99
|
brandPageType,
|
|
66
100
|
)}/${slug}/default/${logoDraftToken}`;
|
|
67
101
|
|
|
68
|
-
const response = await
|
|
102
|
+
const response = await getAxiosInstance().get(url);
|
|
69
103
|
|
|
70
104
|
if (response.status !== 200) {
|
|
71
105
|
return null;
|
|
@@ -77,10 +111,10 @@ const createDefaultBrandPage = async (
|
|
|
77
111
|
const unpublishBrandPageAsync = async (
|
|
78
112
|
brandPageType: BrandPageType,
|
|
79
113
|
designDraftToken,
|
|
80
|
-
) => {
|
|
114
|
+
): Promise<PublishBrandPageResponse | null> => {
|
|
81
115
|
const url = `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/unpublish`;
|
|
82
116
|
|
|
83
|
-
const response = await
|
|
117
|
+
const response = await getAxiosInstance().post(url);
|
|
84
118
|
|
|
85
119
|
if (response.status !== 200) {
|
|
86
120
|
return null;
|
|
@@ -96,7 +130,7 @@ const updateBrandPageMetaAsync = async (
|
|
|
96
130
|
) => {
|
|
97
131
|
const url = `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/meta`;
|
|
98
132
|
|
|
99
|
-
const response = await
|
|
133
|
+
const response = await getAxiosInstance().put(url, request);
|
|
100
134
|
|
|
101
135
|
if (response.status !== 200) {
|
|
102
136
|
return null;
|
|
@@ -112,7 +146,7 @@ const updateSensitiveContentAsync = async (
|
|
|
112
146
|
) => {
|
|
113
147
|
const url = `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/updateSensitiveContent`;
|
|
114
148
|
|
|
115
|
-
const response = await
|
|
149
|
+
const response = await getAxiosInstance().put(url, request);
|
|
116
150
|
|
|
117
151
|
if (response.status !== 200) {
|
|
118
152
|
return null;
|
|
@@ -130,7 +164,7 @@ const triggerBrandPageSavedEvent = async (
|
|
|
130
164
|
brandPageType,
|
|
131
165
|
)}/${designDraftToken}/events/saved`;
|
|
132
166
|
|
|
133
|
-
await
|
|
167
|
+
await getAxiosInstance().post(url, request);
|
|
134
168
|
};
|
|
135
169
|
|
|
136
170
|
const getStripeOnboardingUrl = async (
|
|
@@ -145,7 +179,7 @@ const getStripeOnboardingUrl = async (
|
|
|
145
179
|
taxId ? `?taxId=${taxId}` : ''
|
|
146
180
|
}`;
|
|
147
181
|
|
|
148
|
-
const response = await
|
|
182
|
+
const response = await getAxiosInstance().post(url, options);
|
|
149
183
|
|
|
150
184
|
if (response.status !== 200) {
|
|
151
185
|
return null;
|
|
@@ -162,7 +196,7 @@ const getBrandPageCustomDomainStatusAsync = async (
|
|
|
162
196
|
brandPageType,
|
|
163
197
|
)}/${designDraftToken}/custom-domains/latest`;
|
|
164
198
|
|
|
165
|
-
const response = await
|
|
199
|
+
const response = await getAxiosInstance().get(url);
|
|
166
200
|
|
|
167
201
|
return response.data;
|
|
168
202
|
};
|
|
@@ -177,7 +211,7 @@ const createBrandPageCustomDomainAsync = async (
|
|
|
177
211
|
? `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/purchased-domains`
|
|
178
212
|
: `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/custom-domains`;
|
|
179
213
|
|
|
180
|
-
const response = await
|
|
214
|
+
const response = await getAxiosInstance().post(
|
|
181
215
|
url,
|
|
182
216
|
{ domainName },
|
|
183
217
|
{
|
|
@@ -196,7 +230,8 @@ const checkWebsiteSlugAsync = async (
|
|
|
196
230
|
const url = `${getApiUrlPrefix(brandPageType)}/${designDraftToken}/slug-check?slug=${encodeURIComponent(slug)}`;
|
|
197
231
|
|
|
198
232
|
try {
|
|
199
|
-
const response =
|
|
233
|
+
const response =
|
|
234
|
+
await getAxiosInstance().get<WebsiteSlugCheckResponse>(url);
|
|
200
235
|
|
|
201
236
|
return response.data;
|
|
202
237
|
} catch (error) {
|
|
@@ -218,7 +253,7 @@ const deleteBrandPageCustomDomainByCustomDomainIdAsync = async (
|
|
|
218
253
|
brandPageType,
|
|
219
254
|
)}/${designDraftToken}/custom-domains/${customDomainId}`;
|
|
220
255
|
|
|
221
|
-
await
|
|
256
|
+
await getAxiosInstance().delete(url);
|
|
222
257
|
};
|
|
223
258
|
|
|
224
259
|
const getBrandPageCustomDomainConfigAsync = async (
|
|
@@ -228,7 +263,7 @@ const getBrandPageCustomDomainConfigAsync = async (
|
|
|
228
263
|
brandPageType,
|
|
229
264
|
)}/custom-domains/configs/default`;
|
|
230
265
|
|
|
231
|
-
const response = await
|
|
266
|
+
const response = await getAxiosInstance().get(url);
|
|
232
267
|
|
|
233
268
|
return response.data;
|
|
234
269
|
};
|
|
@@ -242,7 +277,7 @@ const updateBrandPageIsCustomDomainEnabledAsync = async (
|
|
|
242
277
|
brandPageType,
|
|
243
278
|
)}/${designDraftToken}/is-custom-domain-enabled`;
|
|
244
279
|
|
|
245
|
-
const response = await
|
|
280
|
+
const response = await getAxiosInstance().put(url, { isCustomDomainEnabled });
|
|
246
281
|
|
|
247
282
|
return response.data;
|
|
248
283
|
};
|
|
@@ -255,7 +290,7 @@ const getBrandPageIsCustomDomainEnabledAsync = async (
|
|
|
255
290
|
brandPageType,
|
|
256
291
|
)}/${designDraftToken}/is-custom-domain-enabled`;
|
|
257
292
|
|
|
258
|
-
const response = await
|
|
293
|
+
const response = await getAxiosInstance().get(url);
|
|
259
294
|
|
|
260
295
|
return response.data;
|
|
261
296
|
};
|
|
@@ -268,7 +303,7 @@ const getBrandPageCustomDomainAsync = async (
|
|
|
268
303
|
brandPageType,
|
|
269
304
|
)}/${designDraftToken}/custom-domains/latest`;
|
|
270
305
|
|
|
271
|
-
const response = await
|
|
306
|
+
const response = await getAxiosInstance().get(url, {
|
|
272
307
|
validateStatus: (status) => status === 200 || status === 404,
|
|
273
308
|
});
|
|
274
309
|
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
useEventTracker,
|
|
18
18
|
} from '../../brand-page-maker/composables/useEventTracker';
|
|
19
19
|
import { publishBrandPageModalWithStateTr } from '../../composables/useTranslate';
|
|
20
|
+
import { BRAND_PAGE_TYPES } from '../../brand-page/models';
|
|
20
21
|
|
|
21
22
|
export default defineComponent({
|
|
22
23
|
props: {
|
|
@@ -40,7 +41,13 @@ export default defineComponent({
|
|
|
40
41
|
default: false,
|
|
41
42
|
},
|
|
42
43
|
},
|
|
43
|
-
emits: [
|
|
44
|
+
emits: [
|
|
45
|
+
'on-close',
|
|
46
|
+
'on-publish',
|
|
47
|
+
'on-slug-changed',
|
|
48
|
+
'on-publish-options',
|
|
49
|
+
'upsell-offered',
|
|
50
|
+
],
|
|
44
51
|
setup() {
|
|
45
52
|
const brandPageMakerStore = useBrandPageMakerStore();
|
|
46
53
|
const brandPageContainerStore = useBrandPageContainerStore();
|
|
@@ -98,7 +105,11 @@ export default defineComponent({
|
|
|
98
105
|
isBrandPageSlugEditMode: computed(
|
|
99
106
|
() => brandPageContainerStore.isBrandPageSlugEditMode,
|
|
100
107
|
),
|
|
108
|
+
abTests: computed(() => brandPageContainerStore.abTests),
|
|
101
109
|
brandPageType: computed(() => brandPageMakerStore.brandPageType),
|
|
110
|
+
isSubsequentPublish: computed(
|
|
111
|
+
() => brandPageContainerStore.isSubsequentPublish,
|
|
112
|
+
),
|
|
102
113
|
brandPageMakerStore,
|
|
103
114
|
brandPageContainerStore,
|
|
104
115
|
eventTracker,
|
|
@@ -166,6 +177,13 @@ export default defineComponent({
|
|
|
166
177
|
CUSTOM_DOMAIN_STATUSES.active
|
|
167
178
|
);
|
|
168
179
|
},
|
|
180
|
+
showUpsellRotation(): boolean {
|
|
181
|
+
return (
|
|
182
|
+
this.abTests.bp_4092_rotating_upsells_at_publish &&
|
|
183
|
+
this.abTests.bp_4092_rotating_upsells_at_publish.isVariation &&
|
|
184
|
+
this.brandPageMakerStore.brandPageType === BRAND_PAGE_TYPES.brandSite
|
|
185
|
+
);
|
|
186
|
+
},
|
|
169
187
|
},
|
|
170
188
|
watch: {
|
|
171
189
|
customDomain(newCustomDomain) {
|
|
@@ -275,11 +293,22 @@ export default defineComponent({
|
|
|
275
293
|
domain: domain,
|
|
276
294
|
isPurchasedDomain: this.hasPurchasedDomains,
|
|
277
295
|
});
|
|
296
|
+
|
|
297
|
+
this.brandPageContainerStore.setIsPublishModalVisible({
|
|
298
|
+
isVisible: true,
|
|
299
|
+
});
|
|
278
300
|
} else {
|
|
279
|
-
await this.publishBrandPage({
|
|
301
|
+
const response = await this.publishBrandPage({
|
|
280
302
|
shouldPublish: this.shouldPublish,
|
|
281
303
|
slug: slug,
|
|
282
304
|
});
|
|
305
|
+
|
|
306
|
+
this.brandPageContainerStore.setIsPublishModalVisible({
|
|
307
|
+
isVisible: true,
|
|
308
|
+
websiteUpsellModalViewModel: response?.websiteUpsellModalViewModel
|
|
309
|
+
? response.websiteUpsellModalViewModel
|
|
310
|
+
: undefined,
|
|
311
|
+
});
|
|
283
312
|
}
|
|
284
313
|
|
|
285
314
|
this.eventTracker.sendPublishContinuationEvent(
|
|
@@ -26,6 +26,8 @@
|
|
|
26
26
|
:is-busy="false"
|
|
27
27
|
:is-custom-domain-active="isCustomDomainActive"
|
|
28
28
|
:brand-page-type="brandPageType"
|
|
29
|
+
:show-upsell-rotation="showUpsellRotation"
|
|
30
|
+
:is-subsequent-publish="isSubsequentPublish"
|
|
29
31
|
@close-modal="closeModal"
|
|
30
32
|
@on-slug-changed="onSlugChanged"
|
|
31
33
|
@internal-publish-brand-page="onPublish"
|
|
@@ -50,6 +52,12 @@
|
|
|
50
52
|
@on-show-domain-list-modal="onShowDomainListModal"
|
|
51
53
|
/>
|
|
52
54
|
</template>
|
|
55
|
+
|
|
56
|
+
<template #upsellContainer>
|
|
57
|
+
<div @on-show-domain-modal="onShowDomainListModal">
|
|
58
|
+
<slot name="upsell" />
|
|
59
|
+
</div>
|
|
60
|
+
</template>
|
|
53
61
|
</PublishBrandPageModal>
|
|
54
62
|
</template>
|
|
55
63
|
<script>
|