@designcrowd/library.brand-page 5.15.21 → 5.15.24-ast-previews-2
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-DZ5Vucii.js → CreatedOnBrandCrowd-de-de-eUKSDWA0.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-DknGL3Zu.js → CreatedOnBrandCrowd-en-us-C_uqDCbw.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-NwtO4oKe.js → CreatedOnBrandCrowd-es-es-D00N7D1y.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-DfUf3ajR.js → CreatedOnBrandCrowd-fr-ca-C_Y11ve1.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-DfUf3ajR.js → CreatedOnBrandCrowd-fr-fr-C_Y11ve1.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-TjO5ceZp.js → CreatedOnBrandCrowd-pt-br-b-NirRyH.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-TjO5ceZp.js → CreatedOnBrandCrowd-pt-pt-b-NirRyH.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-CiEaeern.js → CreatedOnDcom-de-de-DGenvk6d.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-BsQTy39u.js → CreatedOnDcom-en-us-BNO9QrD0.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-BgUs8RD2.js → CreatedOnDcom-es-es-BG_gd286.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-5Rt16LTN.js → CreatedOnDcom-fr-ca-DLBcHowo.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DRajgiLq.js → CreatedOnDcom-fr-fr-jInQfULX.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-CpGsGCmj.js → CreatedOnDcom-pt-br-Di1Kb5Xa.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-C1CjD8Ks.js → CreatedOnDcom-pt-pt-BWZ0TIJv.js} +1 -1
- package/lib/src/brand-page/components/media/Media.mixin.d.ts +12 -0
- package/lib/src/brand-page/components/media/Media.mixin.js +5 -0
- package/lib/src/brand-page/components/page/Page.stories.js +1 -1
- package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +1 -0
- package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +1 -0
- package/lib/src/brand-page/models/brand-page-context.model.d.ts +1 -0
- package/lib/src/brand-page/models/index.d.ts +16 -0
- package/lib/src/brand-page/models/index.js +19 -0
- package/lib/src/brand-page/models/payment.model.d.ts +7 -0
- package/lib/src/brand-page/utils/migration/migration-07.js +1 -1
- package/lib/src/brand-page/utils/view-model.util.d.ts +16 -5
- package/lib/src/brand-page/utils/view-model.util.js +48 -8
- package/lib/src/brand-page/view-models.d.ts +19 -1
- package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +1 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +4 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +1 -0
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +4 -0
- package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +1 -0
- package/lib/src/brand-page-maker/components/preview/Preview.mixin.js +1 -0
- package/lib/src/brand-page-maker/components/preview/Preview.stories.js +1 -1
- package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +1 -0
- package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +1 -0
- package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +1 -0
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +228 -0
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +72 -6
- package/lib/src/brand-page-maker/constants/config-settings-constant.js +28 -11
- package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +12 -0
- package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +20 -3
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -0
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +35 -4
- package/lib/src/brand-page-maker/stores/index.d.ts +1 -0
- package/lib/src/brand-page-maker/stores/index.js +1 -0
- package/lib/src/brand-page-maker/stores/video/index.d.ts +1 -0
- package/lib/src/brand-page-maker/stores/video/index.js +1 -0
- package/lib/src/brand-page-maker/stores/video/video-store.d.ts +27 -0
- package/lib/src/brand-page-maker/stores/video/video-store.js +27 -0
- package/lib/src/{bundled-translations-wzmaFfsm.js → bundled-translations-D9iHE5G9.js} +1 -1
- package/lib/src/bundled-translations-DfL3kp2E.js +27 -0
- package/lib/src/bundled-translations.de-DE-C-Q--DoV.js +27 -0
- package/lib/src/bundled-translations.de-DE-DW3iDx_G.js +161 -0
- package/lib/src/bundled-translations.es-ES-C2bDEZN2.js +27 -0
- package/lib/src/bundled-translations.es-ES-C9I8wDyq.js +161 -0
- package/lib/src/bundled-translations.fr-CA-BT6vKgDQ.js +27 -0
- package/lib/src/bundled-translations.fr-CA-C0NN8DsO.js +161 -0
- package/lib/src/bundled-translations.fr-FR-BekT99Kc.js +27 -0
- package/lib/src/bundled-translations.fr-FR-oKV5NyE1.js +161 -0
- package/lib/src/bundled-translations.pt-BR-CTvCfv1X.js +161 -0
- package/lib/src/bundled-translations.pt-BR-DjzgcAmv.js +27 -0
- package/lib/src/bundled-translations.pt-PT-CbwxwRY1.js +161 -0
- package/lib/src/bundled-translations.pt-PT-ZxaU_1Hw.js +27 -0
- package/lib/src/bundles/bundled-translations.de-DE.json +4 -0
- package/lib/src/bundles/bundled-translations.es-ES.json +4 -0
- package/lib/src/bundles/bundled-translations.fr-CA.json +4 -0
- package/lib/src/bundles/bundled-translations.fr-FR.json +4 -0
- package/lib/src/bundles/bundled-translations.json +4 -0
- package/lib/src/bundles/bundled-translations.pt-BR.json +4 -0
- package/lib/src/bundles/bundled-translations.pt-PT.json +4 -0
- package/lib/src/clients/brand-page-client.d.ts +1 -0
- package/lib/src/clients/brand-page-client.js +11 -1
- package/lib/src/clients/gettyimages-client.js +1 -1
- package/lib/src/css/library.brand-page-brandCrowd.min.css +59 -44
- package/lib/src/css/library.brand-page-brandPage.min.css +59 -44
- package/lib/src/css/library.brand-page-designCom.min.css +59 -44
- package/lib/src/css/library.brand-page-preview.min.css +59 -44
- package/lib/src/helpers/ts.helper.d.ts +1 -0
- package/lib/src/helpers/ts.helper.js +22 -0
- package/lib/src/index.d.ts +1 -1
- package/lib/src/index.mjs +183 -180
- package/lib/src/{lib-BpQH-xbj.js → lib-Crz0R1bS.js} +20226 -19710
- package/lib/src/lib.js +1 -1
- package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +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/ReplaceImageSettingsForContent.mixin.d.ts +6 -1
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.js +4 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +2 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +1 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +4 -0
- package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +2 -0
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +1 -0
- package/lib/src/shared/content-settings/components/image-field/ImageField.mixin.d.ts +23 -1
- package/lib/src/shared/content-settings/components/image-field/ImageField.mixin.js +25 -1
- package/lib/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.mixin.d.ts +1 -0
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +79 -1
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +16 -0
- package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +1 -1
- package/lib/src/shared/content-settings/models.d.ts +2 -0
- package/lib/src/shared/content-settings/store/content-settings-store.d.ts +3 -0
- package/lib/src/shared/content-settings/store/content-settings-store.js +37 -1
- package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +2 -0
- package/lib/src/shared/my-uploads/models.d.ts +12 -0
- package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +1 -0
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +4 -0
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +4 -0
- package/lib/src/shared/page-settings/store/page-settings-store.d.ts +2 -1
- package/lib/src/shared/page-settings/store/page-settings-store.js +35 -0
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +1 -0
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +1 -0
- package/lib/src/shared/template-settings/store/template-settings-store.js +18 -5
- package/package.json +2 -2
- package/src/brand-page/components/banner-section/BannerSection.vue +6 -1
- package/src/brand-page/components/media/Media.mixin.ts +6 -0
- package/src/brand-page/components/media/Media.vue +18 -3
- package/src/brand-page/components/media/Video.vue +62 -0
- package/src/brand-page/components/page/Page.stories.ts +1 -0
- package/src/brand-page/components/page/Page.vue +2 -2
- package/src/brand-page/models/brand-page-context.model.ts +1 -0
- package/src/brand-page/models/index.ts +34 -0
- package/src/brand-page/models/payment.model.ts +8 -0
- package/src/brand-page/utils/migration/migration-07.ts +6 -4
- package/src/brand-page/utils/view-model.util.test.ts +10 -2
- package/src/brand-page/utils/view-model.util.ts +93 -7
- package/src/brand-page/view-models.ts +24 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
- package/src/brand-page-maker/components/preview/Preview.mixin.ts +1 -0
- package/src/brand-page-maker/components/preview/Preview.stories.ts +1 -0
- package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +93 -5
- package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +40 -4
- package/src/brand-page-maker/components/template-preview-with-state/TemplatePreviewWithState.vue +4 -6
- package/src/brand-page-maker/constants/config-settings-constant.ts +30 -10
- package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +46 -1
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +41 -1
- package/src/brand-page-maker/stores/index.ts +1 -0
- package/src/brand-page-maker/stores/video/index.ts +1 -0
- package/src/brand-page-maker/stores/video/video-store.ts +47 -0
- package/src/bundles/bundled-translations.de-DE.json +4 -0
- package/src/bundles/bundled-translations.es-ES.json +4 -0
- package/src/bundles/bundled-translations.fr-CA.json +4 -0
- package/src/bundles/bundled-translations.fr-FR.json +4 -0
- package/src/bundles/bundled-translations.json +4 -0
- package/src/bundles/bundled-translations.pt-BR.json +4 -0
- package/src/bundles/bundled-translations.pt-PT.json +4 -0
- package/src/clients/brand-page-client.ts +20 -1
- package/src/clients/gettyimages-client.js +1 -1
- package/src/helpers/ts.helper.ts +30 -0
- package/src/lib.ts +1 -0
- package/src/shared/common/i18n/common.de-DE.json +1 -0
- package/src/shared/common/i18n/common.es-ES.json +1 -0
- package/src/shared/common/i18n/common.fr-CA.json +1 -0
- package/src/shared/common/i18n/common.fr-FR.json +1 -0
- package/src/shared/common/i18n/common.json +2 -0
- package/src/shared/common/i18n/common.pt-BR.json +1 -0
- package/src/shared/common/i18n/common.pt-PT.json +1 -0
- package/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.ts +12 -1
- package/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.vue +1 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +3 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +3 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +3 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +3 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +4 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +3 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +3 -0
- package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +1 -0
- package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +1 -0
- package/src/shared/content-settings/components/image-field/ImageField.mixin.ts +31 -1
- package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +34 -0
- package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.vue +23 -8
- package/src/shared/content-settings/components/replace-image-base-settings/ReplaceImageBaseSettings.vue +10 -2
- package/src/shared/content-settings/models.ts +3 -0
- package/src/shared/content-settings/store/content-settings-store.ts +68 -0
- package/src/shared/my-uploads/models.ts +16 -0
- package/src/shared/page-settings/store/page-settings-store.ts +58 -0
- package/src/shared/template-settings/store/template-settings-store.ts +27 -14
- package/src/shared/video-library/VideoLibrary.vue +32 -11
- package/lib/src/bundled-translations-BMr0LtzI.js +0 -27
- package/lib/src/bundled-translations.de-DE-BDSwnN6z.js +0 -27
- package/lib/src/bundled-translations.de-DE-BNwDY0Gw.js +0 -161
- package/lib/src/bundled-translations.es-ES-B4FHib2V.js +0 -27
- package/lib/src/bundled-translations.es-ES-DTvCIjvS.js +0 -161
- package/lib/src/bundled-translations.fr-CA-5oL4PLEx.js +0 -161
- package/lib/src/bundled-translations.fr-CA-SQDJwXv_.js +0 -27
- package/lib/src/bundled-translations.fr-FR-B84T67W5.js +0 -27
- package/lib/src/bundled-translations.fr-FR-DWL7DJQp.js +0 -161
- package/lib/src/bundled-translations.pt-BR-C9ZYeoLd.js +0 -27
- package/lib/src/bundled-translations.pt-BR-CDj0L4EF.js +0 -161
- package/lib/src/bundled-translations.pt-PT-BB4hTIYd.js +0 -27
- package/lib/src/bundled-translations.pt-PT-M916KJYD.js +0 -161
|
@@ -3,11 +3,12 @@ import { CONTENT_SETTINGS_CONFIGS, SIDE_BAR_TAB_NAMES, } from '../../../brand-pa
|
|
|
3
3
|
import { RESERVED_FIELD_NAMES } from '../constants';
|
|
4
4
|
import { UI_EVENT_SOURCES } from '../../models';
|
|
5
5
|
import { CONTENT_SETTINGS_DISPLAY_MODES, ITEM_CATEGORIES, ITEM_CATEGORY_NAMES, } from '../../../brand-page-maker/models';
|
|
6
|
-
import { useUiStore, useBrandPageMakerUserStore, useBrandPageMakerStore, } from '../../../brand-page-maker/stores';
|
|
6
|
+
import { useUiStore, useBrandPageMakerUserStore, useBrandPageMakerStore, useVideoStore, } from '../../../brand-page-maker/stores';
|
|
7
7
|
import { useUiSideBarStore } from '../../side-bar/store';
|
|
8
8
|
import { createDefaultContentItemGroupState, createDefaultContentItemState, } from '../../navigation-style-settings/store';
|
|
9
9
|
import { adminValidatorsDict, dummyValidator, validatorDict, } from '../../../brand-page-maker/validators';
|
|
10
10
|
import { vueDeepMerge } from '../../../helpers/vue.helper';
|
|
11
|
+
import {} from '../../../brand-page-maker/stores/video';
|
|
11
12
|
const DEFAULT_TEXT_COLOR_DEPENDENT_TYPES = [
|
|
12
13
|
'profile',
|
|
13
14
|
'text',
|
|
@@ -131,6 +132,37 @@ export const useUiContentSettingsStore = defineStore('uiContentSettings', {
|
|
|
131
132
|
aspectRatio,
|
|
132
133
|
}, this.selectedItemIndex ?? undefined);
|
|
133
134
|
},
|
|
135
|
+
_setSelectedItemMedia(selectedItemId, mediaPayload) {
|
|
136
|
+
const selectedItem = this.items.find((i) => i.id === selectedItemId);
|
|
137
|
+
if (!selectedItem) {
|
|
138
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
139
|
+
throw new Error('unable to locate the selected item for setting video');
|
|
140
|
+
}
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (!this.selectedItemFieldName) {
|
|
144
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
145
|
+
throw new Error('selectedItemFieldName should be defined');
|
|
146
|
+
}
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const replaceImageSettings = selectedItem.settings.fields[this.selectedItemFieldName]
|
|
150
|
+
.replaceImageSettings;
|
|
151
|
+
if (!replaceImageSettings) {
|
|
152
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
153
|
+
throw new Error('replaceImageSettings should be an object');
|
|
154
|
+
}
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
replaceImageSettings.setContentMedia(selectedItem.settings.content, {
|
|
158
|
+
media: mediaPayload,
|
|
159
|
+
});
|
|
160
|
+
if (mediaPayload.type === 'getty-video') {
|
|
161
|
+
const gettyPayload = mediaPayload;
|
|
162
|
+
const videoStore = useVideoStore();
|
|
163
|
+
videoStore.setVideoUrlsWithToken(gettyPayload.token, gettyPayload.videoSrc, gettyPayload.imageSrc, gettyPayload.assetId);
|
|
164
|
+
}
|
|
165
|
+
},
|
|
134
166
|
_setItems({ items }) {
|
|
135
167
|
this.items = items;
|
|
136
168
|
},
|
|
@@ -396,6 +428,10 @@ export const useUiContentSettingsStore = defineStore('uiContentSettings', {
|
|
|
396
428
|
this._setSelectedItemImage(payload);
|
|
397
429
|
this.onContentChanged();
|
|
398
430
|
},
|
|
431
|
+
setSelectedItemMedia(selectedItemId, mediaPayload) {
|
|
432
|
+
this._setSelectedItemMedia(selectedItemId, mediaPayload);
|
|
433
|
+
this.onContentChanged();
|
|
434
|
+
},
|
|
399
435
|
setItems(payload) {
|
|
400
436
|
if (process.env.NODE_ENV !== 'production') {
|
|
401
437
|
const idCountMap = payload.items.reduce((prev, item) => {
|
|
@@ -42,6 +42,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
42
42
|
brandPageTemplate(): any;
|
|
43
43
|
brandPageTitle(): string;
|
|
44
44
|
brandPageViewModel(): import("../../../brand-page").BrandPageViewModel;
|
|
45
|
+
gettyVideoIds(): string[];
|
|
45
46
|
isInteractivePreviewEnabled(): boolean;
|
|
46
47
|
isProduction(): boolean;
|
|
47
48
|
isPublishButtonEnabled(): boolean;
|
|
@@ -556,6 +557,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
556
557
|
logoImageHeight: string | undefined;
|
|
557
558
|
logoImageWidth: string | undefined;
|
|
558
559
|
}): void;
|
|
560
|
+
updatePaymentConfigCurrency(updatedPaymentConfig: import("../../../brand-page").BrandPagePaymentConfig, newCurrency: import("../../../brand-page").BrandPagePaymentConfigCurrency): void;
|
|
559
561
|
setPageTitle({ pageTitle, pageIndex, }: {
|
|
560
562
|
pageTitle: string;
|
|
561
563
|
pageIndex: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MediaTypes } from '../../brand-page';
|
|
1
2
|
interface UserMediaItemMedia {
|
|
2
3
|
token: string;
|
|
3
4
|
userToken: string;
|
|
@@ -18,4 +19,15 @@ export interface UserMediaItemWithDimensions extends UserMediaItem {
|
|
|
18
19
|
width: number;
|
|
19
20
|
height: number;
|
|
20
21
|
}
|
|
22
|
+
export interface MediaBaseSelectedPayload {
|
|
23
|
+
type: MediaTypes;
|
|
24
|
+
}
|
|
25
|
+
export interface GettyVideoMediaSelectedPayload extends MediaBaseSelectedPayload {
|
|
26
|
+
assetId: string;
|
|
27
|
+
token: string;
|
|
28
|
+
mimeType: string;
|
|
29
|
+
autoPlay: boolean;
|
|
30
|
+
imageSrc: string;
|
|
31
|
+
videoSrc: string;
|
|
32
|
+
}
|
|
21
33
|
export {};
|
|
@@ -55,6 +55,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
55
55
|
logoImageHeight: string | undefined;
|
|
56
56
|
logoImageWidth: string | undefined;
|
|
57
57
|
}): void;
|
|
58
|
+
updatePaymentConfigCurrency(updatedPaymentConfig: import("../../../../brand-page").BrandPagePaymentConfig, newCurrency: import("../../../../brand-page").BrandPagePaymentConfigCurrency): void;
|
|
58
59
|
setPageTitle({ pageTitle, pageIndex, }: {
|
|
59
60
|
pageTitle: string;
|
|
60
61
|
pageIndex: number;
|
|
@@ -3732,6 +3732,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
3732
3732
|
brandPageTemplate(): any;
|
|
3733
3733
|
brandPageTitle(): string;
|
|
3734
3734
|
brandPageViewModel(): import("../../../../brand-page").BrandPageViewModel;
|
|
3735
|
+
gettyVideoIds(): string[];
|
|
3735
3736
|
isInteractivePreviewEnabled(): boolean;
|
|
3736
3737
|
isProduction(): boolean;
|
|
3737
3738
|
isPublishButtonEnabled(): boolean;
|
|
@@ -3948,6 +3949,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
3948
3949
|
logoImageHeight: string | undefined;
|
|
3949
3950
|
logoImageWidth: string | undefined;
|
|
3950
3951
|
}): void;
|
|
3952
|
+
updatePaymentConfigCurrency(updatedPaymentConfig: import("../../../../brand-page").BrandPagePaymentConfig, newCurrency: import("../../../../brand-page").BrandPagePaymentConfigCurrency): void;
|
|
3951
3953
|
setPageTitle({ pageTitle, pageIndex, }: {
|
|
3952
3954
|
pageTitle: string;
|
|
3953
3955
|
pageIndex: number;
|
|
@@ -4307,6 +4309,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
4307
4309
|
colorReplacements?: import("../../../../brand-page").ColorReplacement[] | undefined;
|
|
4308
4310
|
aspectRatio?: number | null | undefined;
|
|
4309
4311
|
}): void;
|
|
4312
|
+
_setSelectedItemMedia(selectedItemId: string | null, mediaPayload: import("../../../my-uploads/models").MediaBaseSelectedPayload): void;
|
|
4310
4313
|
_setItems({ items }: {
|
|
4311
4314
|
items: ContentItem<any>[];
|
|
4312
4315
|
}): void;
|
|
@@ -4382,6 +4385,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
4382
4385
|
colorReplacements?: import("../../../../brand-page").ColorReplacement[] | undefined;
|
|
4383
4386
|
aspectRatio?: number | null | undefined;
|
|
4384
4387
|
}): void;
|
|
4388
|
+
setSelectedItemMedia(selectedItemId: string | null, mediaPayload: import("../../../my-uploads/models").MediaBaseSelectedPayload): void;
|
|
4385
4389
|
setItems(payload: {
|
|
4386
4390
|
items: ContentItem<Content>[];
|
|
4387
4391
|
}): void;
|
|
@@ -3267,6 +3267,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3267
3267
|
logoImageHeight: string | undefined;
|
|
3268
3268
|
logoImageWidth: string | undefined;
|
|
3269
3269
|
}): void;
|
|
3270
|
+
updatePaymentConfigCurrency(updatedPaymentConfig: import("../../../../brand-page").BrandPagePaymentConfig, newCurrency: import("../../../../brand-page").BrandPagePaymentConfigCurrency): void;
|
|
3270
3271
|
setPageTitle({ pageTitle, pageIndex, }: {
|
|
3271
3272
|
pageTitle: string;
|
|
3272
3273
|
pageIndex: number;
|
|
@@ -3739,6 +3740,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3739
3740
|
colorReplacements?: import("../../../../brand-page").ColorReplacement[] | undefined;
|
|
3740
3741
|
aspectRatio?: number | null | undefined;
|
|
3741
3742
|
}): void;
|
|
3743
|
+
_setSelectedItemMedia(selectedItemId: string | null, mediaPayload: import("../../../my-uploads/models").MediaBaseSelectedPayload): void;
|
|
3742
3744
|
_setItems({ items }: {
|
|
3743
3745
|
items: import("../../../content-settings/models").ContentItem<any>[];
|
|
3744
3746
|
}): void;
|
|
@@ -3814,6 +3816,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3814
3816
|
colorReplacements?: import("../../../../brand-page").ColorReplacement[] | undefined;
|
|
3815
3817
|
aspectRatio?: number | null | undefined;
|
|
3816
3818
|
}): void;
|
|
3819
|
+
setSelectedItemMedia(selectedItemId: string | null, mediaPayload: import("../../../my-uploads/models").MediaBaseSelectedPayload): void;
|
|
3817
3820
|
setItems(payload: {
|
|
3818
3821
|
items: import("../../../content-settings/models").ContentItem<import("../../../../brand-page").Content>[];
|
|
3819
3822
|
}): void;
|
|
@@ -4232,6 +4235,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4232
4235
|
brandPageTemplate(): any;
|
|
4233
4236
|
brandPageTitle(): string;
|
|
4234
4237
|
brandPageViewModel(): import("../../../../brand-page").BrandPageViewModel;
|
|
4238
|
+
gettyVideoIds(): string[];
|
|
4235
4239
|
isInteractivePreviewEnabled(): boolean;
|
|
4236
4240
|
isProduction(): boolean;
|
|
4237
4241
|
isPublishButtonEnabled(): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ContentItem } from '../../content-settings/models';
|
|
2
2
|
import { PageHeaderDesktop, PageHeaderMobile, PageFooterDesktop, PageFooterMobile, VIEWPORTS } from '../../../brand-page';
|
|
3
|
-
import type { Content, ImageGalleryItem, LinksItem, LogoImageModel, ViewportsType, LogoTemplateImageModel } from '../../../brand-page';
|
|
3
|
+
import type { Content, ImageGalleryItem, LinksItem, LogoImageModel, ViewportsType, LogoTemplateImageModel, BrandPagePaymentConfig, BrandPagePaymentConfigCurrency } from '../../../brand-page';
|
|
4
4
|
import type { ContentPage } from '../models';
|
|
5
5
|
import { PAGE_SECTIONS } from '../models';
|
|
6
6
|
export type PageSettingsStateSectionStyles = Partial<PageHeaderDesktop & PageHeaderMobile & PageFooterDesktop & PageFooterMobile>;
|
|
@@ -88,6 +88,7 @@ export declare const useUiPageSettingsStore: import("pinia").StoreDefinition<"ui
|
|
|
88
88
|
logoImageHeight: string | undefined;
|
|
89
89
|
logoImageWidth: string | undefined;
|
|
90
90
|
}): void;
|
|
91
|
+
updatePaymentConfigCurrency(updatedPaymentConfig: BrandPagePaymentConfig, newCurrency: BrandPagePaymentConfigCurrency): void;
|
|
91
92
|
setPageTitle({ pageTitle, pageIndex, }: {
|
|
92
93
|
pageTitle: string;
|
|
93
94
|
pageIndex: number;
|
|
@@ -7,6 +7,7 @@ import { useUiContentSettingsStore } from '../../content-settings/store';
|
|
|
7
7
|
import { useBrandPageMakerStore, useBrandPageMakerUserStore, useBrandPageContainerStore, useUiStore, } from '../../../brand-page-maker/stores';
|
|
8
8
|
import { useUiLogoSettingsStore } from '../../logo-settings/store';
|
|
9
9
|
import { TRIGGER_TYPE, UPGRADE_CTA_LOCATIONS, useEventTracker, } from '../../../brand-page-maker/composables/useEventTracker';
|
|
10
|
+
import { useShopConfigStore } from '../../ecommerce-settings/store/shop-settings-store';
|
|
10
11
|
export const PAGE_SECTIONS_PAGES = 'pages';
|
|
11
12
|
export const PAGE_SETTINGS_SECTIONS = {
|
|
12
13
|
...PAGE_SECTIONS,
|
|
@@ -162,6 +163,40 @@ export const useUiPageSettingsStore = defineStore('uiPageSettings', {
|
|
|
162
163
|
this.sections[sectionName][viewport].logoImageHeight = logoImageHeight;
|
|
163
164
|
this.sections[sectionName][viewport].logoImageWidth = logoImageWidth;
|
|
164
165
|
},
|
|
166
|
+
updatePaymentConfigCurrency(updatedPaymentConfig, newCurrency) {
|
|
167
|
+
const currencyUpdate = {
|
|
168
|
+
name: updatedPaymentConfig.name,
|
|
169
|
+
defaultCurrency: newCurrency.iso4127Code,
|
|
170
|
+
defaultCurrencySymbol: newCurrency.symbol,
|
|
171
|
+
};
|
|
172
|
+
this.pages.forEach((page) => {
|
|
173
|
+
page.contents.forEach((contentItem) => {
|
|
174
|
+
if (contentItem.type === 'support-me') {
|
|
175
|
+
if (contentItem.settings.content.supportMeConfig.paymentConfig?.id ===
|
|
176
|
+
updatedPaymentConfig.id) {
|
|
177
|
+
Object.assign(contentItem.settings.content.supportMeConfig.paymentConfig, currencyUpdate);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (contentItem.type === 'request-payment') {
|
|
181
|
+
if (contentItem.settings.content.requestPaymentConfig.paymentConfig
|
|
182
|
+
?.id === updatedPaymentConfig.id) {
|
|
183
|
+
Object.assign(contentItem.settings.content.requestPaymentConfig.paymentConfig, currencyUpdate);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else if (contentItem.type === 'shop-section') {
|
|
187
|
+
if (contentItem.settings.content.shopPaymentConfig.paymentConfig
|
|
188
|
+
?.id === updatedPaymentConfig.id) {
|
|
189
|
+
Object.assign(contentItem.settings.content.shopPaymentConfig.paymentConfig, currencyUpdate);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
const shopConfigStore = useShopConfigStore();
|
|
195
|
+
if (shopConfigStore.paymentConfig &&
|
|
196
|
+
shopConfigStore.paymentConfig.id === updatedPaymentConfig.id) {
|
|
197
|
+
Object.assign(shopConfigStore.paymentConfig, currencyUpdate);
|
|
198
|
+
}
|
|
199
|
+
},
|
|
165
200
|
setPageTitle({ pageTitle, pageIndex, }) {
|
|
166
201
|
const slug = getPageSlugFromPageTitle(pageTitle, this.pages.filter((_p, i) => i !== pageIndex).map((p) => p.slug));
|
|
167
202
|
this.setPageTitleAndSlug({
|
package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts
CHANGED
|
@@ -76,6 +76,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
76
76
|
brandPageTemplate(): any;
|
|
77
77
|
brandPageTitle(): string;
|
|
78
78
|
brandPageViewModel(): import("../../brand-page").BrandPageViewModel;
|
|
79
|
+
gettyVideoIds(): string[];
|
|
79
80
|
isInteractivePreviewEnabled(): boolean;
|
|
80
81
|
isProduction(): boolean;
|
|
81
82
|
isPublishButtonEnabled(): boolean;
|
|
@@ -482,6 +482,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
482
482
|
brandPageTemplate(): any;
|
|
483
483
|
brandPageTitle(): string;
|
|
484
484
|
brandPageViewModel(): import("../../../brand-page").BrandPageViewModel;
|
|
485
|
+
gettyVideoIds(): string[];
|
|
485
486
|
isInteractivePreviewEnabled(): boolean;
|
|
486
487
|
isProduction(): boolean;
|
|
487
488
|
isPublishButtonEnabled(): boolean;
|
|
@@ -171,11 +171,24 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
|
|
|
171
171
|
return;
|
|
172
172
|
}
|
|
173
173
|
this._setPageCount({ pageCount: result.pageCount });
|
|
174
|
-
const templates =
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
const templates = await Promise.all(result.paginatedItems.map(async (i) => {
|
|
175
|
+
try {
|
|
176
|
+
if (brandPageContainerStore.isPrePurchase) {
|
|
177
|
+
const template = await designTemplateClient.getTemplateByTemplateToken(i.designTemplateToken);
|
|
178
|
+
return this.safeMapToTemplateSettingsTemplate(template);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
return {
|
|
182
|
+
id: i.designTemplateToken,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
}));
|
|
190
|
+
const validTemplates = templates.filter((template) => template !== null);
|
|
191
|
+
this._addTemplates({ templates: validTemplates });
|
|
179
192
|
this._setPageNoLoaded({ pageNoLoaded: pageNo });
|
|
180
193
|
}
|
|
181
194
|
finally {
|
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.15.
|
|
4
|
+
"version": "5.15.24-ast-previews-2",
|
|
5
5
|
"author": "Design.com Eng",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"type": "module",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@ckpack/vue-color": "1.4.1",
|
|
58
|
-
"@designcrowd/fe-shared-lib": "1.4.
|
|
58
|
+
"@designcrowd/fe-shared-lib": "1.4.3",
|
|
59
59
|
"@pinia/nuxt": "0.11.0",
|
|
60
60
|
"@storybook/react": "9.0.4",
|
|
61
61
|
"@tiptap/extension-bubble-menu": "^2.14.0",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
v-if="
|
|
16
16
|
(viewModel.isBigImageType &&
|
|
17
17
|
!viewModel.backgroundStyle.backgroundColor) ||
|
|
18
|
-
(viewModel.isBigImageType && viewModel.imageUrl)
|
|
18
|
+
(viewModel.isBigImageType && viewModel.imageUrl) ||
|
|
19
|
+
(viewModel.isBigImageType && viewModel.media)
|
|
19
20
|
"
|
|
20
21
|
:image-url="viewModel.imageUrl"
|
|
21
22
|
:color-replacements="viewModel.colorReplacements"
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
viewModel.isBigImageType,
|
|
29
30
|
}"
|
|
30
31
|
:content-index="contentIndex"
|
|
32
|
+
:media="viewModel.mediaViewModel"
|
|
31
33
|
/>
|
|
32
34
|
<div
|
|
33
35
|
class="tw-w-full tw-h-full tw-inset-0 tw-absolute"
|
|
@@ -63,6 +65,7 @@
|
|
|
63
65
|
:role="viewModel.role"
|
|
64
66
|
img-classes="tw-w-full tw-object-cover tw-aspect-square tw-rounded-md tw-relative"
|
|
65
67
|
:content-index="contentIndex"
|
|
68
|
+
:media="viewModel.mediaViewModel"
|
|
66
69
|
/>
|
|
67
70
|
</div>
|
|
68
71
|
<div
|
|
@@ -158,6 +161,7 @@
|
|
|
158
161
|
:role="viewModel.role"
|
|
159
162
|
img-classes="tw-inset-0 tw-w-full tw-h-full full-square-image tw-relative"
|
|
160
163
|
:content-index="contentIndex"
|
|
164
|
+
:media="viewModel.mediaViewModel"
|
|
161
165
|
/>
|
|
162
166
|
</div>
|
|
163
167
|
</div>
|
|
@@ -187,6 +191,7 @@
|
|
|
187
191
|
:role="viewModel.role"
|
|
188
192
|
img-classes="tw-w-full tw-object-cover tw-aspect-square tw-rounded-md tw-relative"
|
|
189
193
|
:content-index="contentIndex"
|
|
194
|
+
:media="viewModel.mediaViewModel"
|
|
190
195
|
/>
|
|
191
196
|
</div>
|
|
192
197
|
<div
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import type { PropType } from 'vue';
|
|
3
3
|
import type { BrandPageContext, ColorReplacement } from '../../models';
|
|
4
|
+
import type { MediaViewModel } from '../../../lib';
|
|
4
5
|
|
|
5
6
|
export default defineComponent({
|
|
6
7
|
props: {
|
|
@@ -62,6 +63,11 @@ export default defineComponent({
|
|
|
62
63
|
required: false,
|
|
63
64
|
default: undefined,
|
|
64
65
|
},
|
|
66
|
+
media: {
|
|
67
|
+
type: Object as PropType<MediaViewModel>,
|
|
68
|
+
required: false,
|
|
69
|
+
default: undefined,
|
|
70
|
+
},
|
|
65
71
|
},
|
|
66
72
|
data() {
|
|
67
73
|
return {
|
|
@@ -5,8 +5,22 @@
|
|
|
5
5
|
'tw-h-full tw-w-full': mediaType === 'shape',
|
|
6
6
|
}"
|
|
7
7
|
>
|
|
8
|
+
<Video
|
|
9
|
+
v-if="media && media.type === 'getty-video'"
|
|
10
|
+
:media="media"
|
|
11
|
+
:class="{ 'tw-flex tw-justify-center': size }"
|
|
12
|
+
:video-classes="imgClasses"
|
|
13
|
+
:display-style="displayStyle"
|
|
14
|
+
:context="context"
|
|
15
|
+
:content-index="contentIndex"
|
|
16
|
+
/>
|
|
8
17
|
<FallbackImage
|
|
9
|
-
v-if="
|
|
18
|
+
v-if="
|
|
19
|
+
imageUrl &&
|
|
20
|
+
(mediaType === 'image' || !mediaType) &&
|
|
21
|
+
!isImageBroken &&
|
|
22
|
+
!media
|
|
23
|
+
"
|
|
10
24
|
:image-url="imageUrl"
|
|
11
25
|
:alt="altText"
|
|
12
26
|
:classes="imgClasses"
|
|
@@ -27,7 +41,7 @@
|
|
|
27
41
|
/>
|
|
28
42
|
<Placeholder
|
|
29
43
|
v-if="
|
|
30
|
-
(context.isPreview && imageUrl === '') ||
|
|
44
|
+
(context.isPreview && !media && imageUrl === '') ||
|
|
31
45
|
(context.isPreview && isImageBroken)
|
|
32
46
|
"
|
|
33
47
|
class="tw-w-full"
|
|
@@ -42,9 +56,10 @@ import Shape from './Shape.vue';
|
|
|
42
56
|
import MediaMixin from './Media.mixin.ts';
|
|
43
57
|
import Placeholder from '../placeholder/Placeholder.vue';
|
|
44
58
|
import FallbackImage from '../fallback-image/FallbackImage.vue';
|
|
59
|
+
import Video from './Video.vue';
|
|
45
60
|
|
|
46
61
|
export default {
|
|
47
|
-
components: { Shape, Placeholder, FallbackImage },
|
|
62
|
+
components: { Shape, Placeholder, FallbackImage, Video },
|
|
48
63
|
mixins: [MediaMixin],
|
|
49
64
|
};
|
|
50
65
|
</script>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<video
|
|
3
|
+
v-if="!context.options?.renderVideoAsImage"
|
|
4
|
+
ref="videoElement"
|
|
5
|
+
:class="videoClasses"
|
|
6
|
+
:src="media?.videoUrl"
|
|
7
|
+
autoplay
|
|
8
|
+
muted
|
|
9
|
+
loop
|
|
10
|
+
:controls="false"
|
|
11
|
+
playsinline
|
|
12
|
+
preload="metadata"
|
|
13
|
+
@canplay="attemptAutoplay"
|
|
14
|
+
/>
|
|
15
|
+
<FallbackImage
|
|
16
|
+
v-else
|
|
17
|
+
:image-url="media?.previewImageUrl || ''"
|
|
18
|
+
:classes="videoClasses"
|
|
19
|
+
:styles="displayStyle"
|
|
20
|
+
:context="context"
|
|
21
|
+
:content-index="contentIndex"
|
|
22
|
+
loading="lazy"
|
|
23
|
+
/>
|
|
24
|
+
</template>
|
|
25
|
+
<script setup lang="ts">
|
|
26
|
+
import { nextTick, onMounted, ref } from 'vue';
|
|
27
|
+
import { type BrandPageContext, type GettyVideoViewModel } from '../../../lib';
|
|
28
|
+
import FallbackImage from '../fallback-image/FallbackImage.vue';
|
|
29
|
+
|
|
30
|
+
interface Props {
|
|
31
|
+
media: GettyVideoViewModel;
|
|
32
|
+
contentIndex: number;
|
|
33
|
+
context: BrandPageContext;
|
|
34
|
+
videoClasses?: string;
|
|
35
|
+
displayStyle?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
39
|
+
media: undefined,
|
|
40
|
+
videoClasses: '',
|
|
41
|
+
displayStyle: '',
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const videoElement = ref<HTMLVideoElement>();
|
|
45
|
+
|
|
46
|
+
const attemptAutoplay = async () => {
|
|
47
|
+
if (props.context.options?.renderVideoAsImage || !videoElement.value) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
await videoElement.value.play();
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error('Autoplay failed:', error);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
onMounted(async () => {
|
|
59
|
+
await nextTick();
|
|
60
|
+
attemptAutoplay();
|
|
61
|
+
});
|
|
62
|
+
</script>
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
'tw-cursor-pointer': context.isPreview,
|
|
51
51
|
'brand-page__content--outline-selected': isHeaderSelected,
|
|
52
52
|
}"
|
|
53
|
+
:is-mobile="true"
|
|
53
54
|
@open-side-menu="openSideMenu"
|
|
54
55
|
@header-container-click="onPageHeaderContainerClick"
|
|
55
|
-
:is-mobile="true"
|
|
56
56
|
/>
|
|
57
57
|
</template>
|
|
58
58
|
</MediaQuery>
|
|
@@ -211,9 +211,9 @@
|
|
|
211
211
|
isFooterSelected,
|
|
212
212
|
}"
|
|
213
213
|
:show-brand-crowd-logo="showBrandCrowdLogo"
|
|
214
|
+
:is-mobile="true"
|
|
214
215
|
@footer-container-click="onPageFooterContainerClick"
|
|
215
216
|
@on-logo-click="onLogoClick"
|
|
216
|
-
:is-mobile="true"
|
|
217
217
|
/>
|
|
218
218
|
</template>
|
|
219
219
|
</MediaQuery>
|
|
@@ -413,6 +413,7 @@ export interface BannerSectionContent extends Content {
|
|
|
413
413
|
overlayColor: BrandPageCssStyle;
|
|
414
414
|
overlayOpacity: number;
|
|
415
415
|
aspectRatio?: number | null;
|
|
416
|
+
media?: AbstractMedia;
|
|
416
417
|
}
|
|
417
418
|
|
|
418
419
|
export const MEDIA_TYPES = {
|
|
@@ -832,6 +833,39 @@ export abstract class AbstractPageFooterStyles {
|
|
|
832
833
|
}
|
|
833
834
|
}
|
|
834
835
|
|
|
836
|
+
//jyao: START: Media related entities and classes
|
|
837
|
+
export type MediaTypes = 'getty-video' | 'user-upload-video' | 'image';
|
|
838
|
+
|
|
839
|
+
export abstract class AbstractMedia {
|
|
840
|
+
abstract type: MediaTypes;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
type GettyVideoMediaType = Partial<GettyVideoMedia>;
|
|
844
|
+
|
|
845
|
+
export class GettyVideoMedia extends AbstractMedia {
|
|
846
|
+
type: MediaTypes = 'getty-video';
|
|
847
|
+
gettyToken: string;
|
|
848
|
+
gettyAssetId: string;
|
|
849
|
+
mimeType: string;
|
|
850
|
+
|
|
851
|
+
settings: {
|
|
852
|
+
autoPlay?: boolean;
|
|
853
|
+
};
|
|
854
|
+
|
|
855
|
+
constructor(options: GettyVideoMediaType = {}) {
|
|
856
|
+
options = cloneDeep(options);
|
|
857
|
+
super();
|
|
858
|
+
|
|
859
|
+
this.type = 'getty-video';
|
|
860
|
+
this.gettyToken = options.gettyToken || '';
|
|
861
|
+
this.gettyAssetId = options.gettyAssetId || '';
|
|
862
|
+
this.mimeType = options.mimeType || '';
|
|
863
|
+
|
|
864
|
+
this.settings = options.settings || {};
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
//jyao: END of media related entities and classes
|
|
868
|
+
|
|
835
869
|
export class PageFooterDesktop extends AbstractPageFooterStyles {
|
|
836
870
|
constructor(options: AbstractPageFooterStylesType = {}) {
|
|
837
871
|
options = cloneDeep(options);
|
|
@@ -52,6 +52,14 @@ export interface PaymentConfig {
|
|
|
52
52
|
paymentOptions: PaymentOption[];
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
export interface BrandPagePaymentConfigCurrency {
|
|
56
|
+
id: string;
|
|
57
|
+
iso31662Code: string;
|
|
58
|
+
iso4127Code: string;
|
|
59
|
+
name: string;
|
|
60
|
+
symbol: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
55
63
|
export const PAYMENT_OPTION_DISPLAY_TYPES = {
|
|
56
64
|
text: 'text',
|
|
57
65
|
thumbnail: 'thumbnail',
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BRAND_PAGE_TYPES,
|
|
3
|
-
DEFAULT_LOGO_HEIGHT,
|
|
4
|
-
DEFAULT_LOGO_WIDTH,
|
|
1
|
+
import type {
|
|
5
2
|
PageFooterDesktop,
|
|
6
3
|
PageFooterMobile,
|
|
7
4
|
PageHeaderDesktop,
|
|
8
5
|
PageHeaderMobile,
|
|
9
6
|
} from '../..';
|
|
7
|
+
import {
|
|
8
|
+
BRAND_PAGE_TYPES,
|
|
9
|
+
DEFAULT_LOGO_HEIGHT,
|
|
10
|
+
DEFAULT_LOGO_WIDTH,
|
|
11
|
+
} from '../..';
|
|
10
12
|
import { FabricRenderClient } from '../../../clients/fabric-render-client';
|
|
11
13
|
import { calculateLogoDimensions } from '../logo.util';
|
|
12
14
|
import type { MigrationData } from '../migration.util';
|
|
@@ -172,7 +172,11 @@ describe('view model util', () => {
|
|
|
172
172
|
};
|
|
173
173
|
|
|
174
174
|
// Act
|
|
175
|
-
const viewModel = mapToBannerSectionViewModel(
|
|
175
|
+
const viewModel = mapToBannerSectionViewModel(
|
|
176
|
+
bannerContent,
|
|
177
|
+
pageStyles,
|
|
178
|
+
{},
|
|
179
|
+
);
|
|
176
180
|
|
|
177
181
|
// Assert
|
|
178
182
|
const url = new URL(viewModel.imageUrl);
|
|
@@ -195,7 +199,11 @@ describe('view model util', () => {
|
|
|
195
199
|
};
|
|
196
200
|
|
|
197
201
|
// Act
|
|
198
|
-
const viewModel = mapToBannerSectionViewModel(
|
|
202
|
+
const viewModel = mapToBannerSectionViewModel(
|
|
203
|
+
bannerContent,
|
|
204
|
+
pageStyles,
|
|
205
|
+
{},
|
|
206
|
+
);
|
|
199
207
|
|
|
200
208
|
// Assert
|
|
201
209
|
const url = new URL(viewModel.imageUrl);
|