@designcrowd/library.brand-page 5.18.6 → 5.18.7-ast-padding-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-DlYq1LAT.js → CreatedOnBrandCrowd-de-de-Cn8zNuGM.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-BssRIQqn.js → CreatedOnBrandCrowd-en-us-CP8xAFc-.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-BGF9pptH.js → CreatedOnBrandCrowd-es-es-Ds8NijwP.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-Caupqu2Z.js → CreatedOnBrandCrowd-fr-ca-BiVV_7lj.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-Caupqu2Z.js → CreatedOnBrandCrowd-fr-fr-BiVV_7lj.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-s9q4uJ4u.js → CreatedOnBrandCrowd-pt-br-CjjrYojo.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-s9q4uJ4u.js → CreatedOnBrandCrowd-pt-pt-CjjrYojo.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-UnYnZbA7.js → CreatedOnDcom-de-de-ChR5jvlP.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-rDv6H12L.js → CreatedOnDcom-en-us-C4rO1BMA.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-DKPLaT6o.js → CreatedOnDcom-es-es-DxGMS6JK.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-DAv34bG7.js → CreatedOnDcom-fr-ca-n31u4t7u.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DsOHnS8q.js → CreatedOnDcom-fr-fr-gwdsX7YV.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-DpjDBCLj.js → CreatedOnDcom-pt-br-iZjFp--s.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-rFG0unf1.js → CreatedOnDcom-pt-pt-B3Z3-RLC.js} +1 -1
- package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +8 -4
- package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.js +4 -0
- package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +4 -1
- package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.js +4 -0
- package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +4 -1
- package/lib/src/brand-page/components/video/Video.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/video/Video.mixin.js +4 -0
- package/lib/src/brand-page/constants/misc.constants.d.ts +26 -0
- package/lib/src/brand-page/constants/misc.constants.js +42 -0
- package/lib/src/brand-page/models/content.model.d.ts +2 -0
- package/lib/src/brand-page/utils/content-padding.util.d.ts +13 -0
- package/lib/src/brand-page/utils/content-padding.util.js +10 -0
- package/lib/src/brand-page/utils/index.d.ts +1 -0
- package/lib/src/brand-page/utils/index.js +1 -0
- package/lib/src/brand-page/utils/migration/migration-17.d.ts +2 -0
- package/lib/src/brand-page/utils/migration/migration-17.js +48 -0
- package/lib/src/brand-page/utils/migration.util.js +10 -0
- package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +2 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +19 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +8 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +1 -0
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +104 -2
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +5 -0
- package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +3 -0
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.js +11 -0
- package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +9 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +21 -1
- package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +20 -0
- package/lib/src/brand-page-maker/composables/useEventTracker.js +17 -0
- package/lib/src/brand-page-maker/composables/useUndoRedoFlag.d.ts +17 -0
- package/lib/src/brand-page-maker/composables/useUndoRedoFlag.js +25 -0
- package/lib/src/brand-page-maker/constants/config-settings-constant.js +38 -0
- package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +9 -1
- package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +7 -1
- package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +6 -1
- package/lib/src/brand-page-maker/models/content-settings.js +36 -2
- package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +12 -0
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +41 -2
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +307 -5
- package/lib/src/brand-page-maker/stores/history/history-store.d.ts +86 -0
- package/lib/src/brand-page-maker/stores/history/history-store.js +501 -0
- package/lib/src/brand-page-maker/stores/logo-store/logo-store.d.ts +1 -0
- package/lib/src/brand-page-maker/stores/user/user-store.js +1 -0
- package/lib/src/bundled-translations-BUyt4scr.js +175 -0
- package/lib/src/bundled-translations.de-DE-DEw_OVai.js +175 -0
- package/lib/src/bundled-translations.es-ES-CFKWmkgY.js +175 -0
- package/lib/src/bundled-translations.fr-CA-DCl5LJS4.js +175 -0
- package/lib/src/bundled-translations.fr-FR-B5BjgllA.js +175 -0
- package/lib/src/bundled-translations.pt-BR-5PWpMPuM.js +175 -0
- package/lib/src/bundled-translations.pt-PT-B9_wN0HR.js +175 -0
- package/lib/src/bundles/bundled-translations.de-DE.json +5 -1
- package/lib/src/bundles/bundled-translations.es-ES.json +5 -1
- package/lib/src/bundles/bundled-translations.fr-CA.json +5 -1
- package/lib/src/bundles/bundled-translations.fr-FR.json +5 -1
- package/lib/src/bundles/bundled-translations.json +5 -1
- package/lib/src/bundles/bundled-translations.pt-BR.json +5 -1
- package/lib/src/bundles/bundled-translations.pt-PT.json +5 -1
- package/lib/src/constants/ui.d.ts +1 -0
- package/lib/src/css/library.brand-page-brandCrowd.min.css +128 -131
- package/lib/src/css/library.brand-page-brandPage.min.css +128 -132
- package/lib/src/css/library.brand-page-designCom.min.css +128 -131
- package/lib/src/css/library.brand-page-preview.min.css +128 -131
- package/lib/src/index.mjs +1 -1
- package/lib/src/{lib-ngdDRkSL.js → lib-CIj_C38s.js} +36378 -35591
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +104 -2
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +5 -0
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.stories.js +1 -0
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +37 -2
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +28 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +19 -2
- package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.d.ts +3 -0
- package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.js +19 -2
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +12 -0
- package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.js +18 -8
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +67 -0
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +6 -0
- package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +9 -0
- package/lib/src/shared/content-settings/store/content-settings-store.d.ts +12 -0
- package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +19 -0
- package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +11 -0
- package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +10 -2
- package/lib/src/shared/logo-settings/store/editable-logo-store.d.ts +5 -1
- package/lib/src/shared/logo-settings/store/editable-logo-store.js +31 -0
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +40 -2
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +24 -2
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +23 -2
- package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +16 -0
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +23 -2
- package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +16 -0
- package/lib/src/utils/minify-brand-page-metadata.js +11 -1
- package/package.json +1 -1
- package/src/brand-page/components/about-section/AboutSection.vue +10 -4
- package/src/brand-page/components/banner-section/BannerSection.vue +11 -4
- package/src/brand-page/components/booking-section/BookingSection.vue +11 -3
- package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
- package/src/brand-page/components/contact-form/ContactForm.vue +105 -104
- package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +5 -0
- package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
- package/src/brand-page/components/mailing-list/MailingList.mixin.ts +8 -1
- package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
- package/src/brand-page/components/map/Map.vue +5 -1
- package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +5 -0
- package/src/brand-page/components/payment/request-payment/RequestPayment.vue +1 -0
- package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +8 -1
- package/src/brand-page/components/payment/support-me/SupportMe.vue +1 -0
- package/src/brand-page/components/shop/Shop.vue +7 -2
- package/src/brand-page/components/social-links/SocialLinks.vue +7 -3
- package/src/brand-page/components/text/Text.vue +12 -5
- package/src/brand-page/components/text-media-section/TextMediaSection.vue +11 -3
- package/src/brand-page/components/video/Video.mixin.ts +5 -0
- package/src/brand-page/components/video/Video.vue +1 -1
- package/src/brand-page/constants/misc.constants.ts +48 -0
- package/src/brand-page/models/content.model.ts +2 -0
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +9 -3
- package/src/brand-page/utils/content-padding.util.test.ts +29 -0
- package/src/brand-page/utils/content-padding.util.ts +13 -0
- package/src/brand-page/utils/index.ts +1 -0
- package/src/brand-page/utils/migration/migration-17.ts +65 -0
- package/src/brand-page/utils/migration.util.test.ts +195 -0
- package/src/brand-page/utils/migration.util.ts +11 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +9 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.vue +2 -3
- package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +1 -0
- package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +5 -0
- package/src/brand-page-maker/components/cookie-collection/CookieSettings.vue +18 -17
- package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.ts +13 -0
- package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.vue +26 -3
- package/src/brand-page-maker/components/quick-link-bar/RedoButton.vue +66 -0
- package/src/brand-page-maker/components/quick-link-bar/UndoButton.vue +66 -0
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.de-DE.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.es-ES.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-CA.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-FR.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.json +3 -1
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-BR.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-PT.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/undo-redo-buttons.test.ts +116 -0
- package/src/brand-page-maker/components/save-contact/SaveContact.vue +12 -19
- package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +10 -0
- package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +28 -1
- package/src/brand-page-maker/composables/useEventTracker.ts +29 -0
- package/src/brand-page-maker/composables/useUndoRedoFlag.ts +30 -0
- package/src/brand-page-maker/constants/config-settings-constant.ts +44 -0
- package/src/brand-page-maker/convertors/about-display-style.convertor.ts +10 -0
- package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +8 -0
- package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +50 -0
- package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +8 -0
- package/src/brand-page-maker/models/content-settings.ts +38 -2
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +334 -0
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +371 -4
- package/src/brand-page-maker/stores/history/history-store.test.ts +1120 -0
- package/src/brand-page-maker/stores/history/history-store.ts +666 -0
- package/src/brand-page-maker/stores/logo-store/logo-store.ts +5 -0
- package/src/brand-page-maker/stores/user/user-store.ts +1 -0
- package/src/bundles/bundled-translations.de-DE.json +5 -1
- package/src/bundles/bundled-translations.es-ES.json +5 -1
- package/src/bundles/bundled-translations.fr-CA.json +5 -1
- package/src/bundles/bundled-translations.fr-FR.json +5 -1
- package/src/bundles/bundled-translations.json +5 -1
- package/src/bundles/bundled-translations.pt-BR.json +5 -1
- package/src/bundles/bundled-translations.pt-PT.json +5 -1
- package/src/constants/ui.ts +1 -0
- package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +5 -0
- package/src/shared/content-settings/components/content-settings/ContentSettings.stories.ts +1 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +2 -0
- package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
- package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.ts +19 -2
- package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.vue +1 -1
- package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
- package/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.ts +26 -10
- package/src/shared/content-settings/components/logo-selection-field/LogoSelection.vue +63 -48
- package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +4 -0
- package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +7 -0
- package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
- package/src/shared/content-settings/components/text-field/TextField.vue +1 -0
- package/src/shared/content-settings/components/text-image-field/TextImageField.vue +33 -4
- package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +11 -0
- package/src/shared/logo-settings/store/editable-logo-store.ts +42 -1
- package/src/utils/minify-brand-page-metadata.ts +11 -1
- package/lib/src/bundled-translations-B5Fkt3qd.js +0 -175
- package/lib/src/bundled-translations.de-DE-DpdVePM9.js +0 -175
- package/lib/src/bundled-translations.es-ES-BsIcrzZF.js +0 -175
- package/lib/src/bundled-translations.fr-CA-G1XCp2Qh.js +0 -175
- package/lib/src/bundled-translations.fr-FR-BdwLXOnB.js +0 -175
- package/lib/src/bundled-translations.pt-BR-Bvn5ePe7.js +0 -175
- package/lib/src/bundled-translations.pt-PT-CDtkb2k1.js +0 -175
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
<section data-component="contact-form">
|
|
3
3
|
<div
|
|
4
4
|
:class="{
|
|
5
|
-
'tw-flex': isCenteredLayout && !hasBgImage,
|
|
6
5
|
'tw-block': !viewModel.layoutStyle,
|
|
7
|
-
'tw-relative': hasBgImage,
|
|
6
|
+
'tw-relative tw-overflow-hidden': hasBgImage,
|
|
8
7
|
}"
|
|
9
|
-
:style="
|
|
8
|
+
:style="[
|
|
9
|
+
hasBgColor ? viewModel.backgroundStyle : {},
|
|
10
|
+
contentPaddingStyle,
|
|
11
|
+
]"
|
|
10
12
|
>
|
|
11
13
|
<Media
|
|
12
14
|
v-if="hasBgImage && isCenteredLayout"
|
|
@@ -108,110 +110,115 @@
|
|
|
108
110
|
</Collapsible>
|
|
109
111
|
<div
|
|
110
112
|
v-else-if="isCenteredLayout"
|
|
111
|
-
class="
|
|
112
|
-
:class="{
|
|
113
|
-
'tw-px-6 tw-py-8': hasCard,
|
|
114
|
-
'tw-py-6': !hasCard,
|
|
115
|
-
'tw-w-full': !hasBgImage,
|
|
116
|
-
}"
|
|
113
|
+
:class="{ 'tw-relative': hasBgImage, 'tw-flex': !hasBgImage }"
|
|
117
114
|
>
|
|
118
115
|
<div
|
|
119
|
-
|
|
120
|
-
class="
|
|
116
|
+
class="contact-container"
|
|
117
|
+
:class="{
|
|
118
|
+
'tw-px-6': hasCard,
|
|
119
|
+
'tw-py-8': hasBgImage,
|
|
120
|
+
'tw-w-full': !hasBgImage,
|
|
121
|
+
}"
|
|
121
122
|
>
|
|
122
|
-
<
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
value.field.required ? '*' : ''
|
|
152
|
-
}`"
|
|
153
|
-
:label="`${value.field.name}${value.field.required ? '*' : ''}`"
|
|
154
|
-
:show-label-screen-reader-only="true"
|
|
155
|
-
size="sm"
|
|
156
|
-
:error="!!value.error"
|
|
157
|
-
:type="getTextInputTypeByFieldType(value.field.type)"
|
|
158
|
-
class="tw-w-full"
|
|
159
|
-
@input="onValueChange(index)"
|
|
160
|
-
/>
|
|
161
|
-
<Textarea
|
|
162
|
-
v-if="value.field.type === 'text-area'"
|
|
163
|
-
v-model="value.value"
|
|
164
|
-
:placeholder="`${value.field.name}${
|
|
165
|
-
value.field.required ? '*' : ''
|
|
166
|
-
}`"
|
|
167
|
-
:label="`${value.field.name}${value.field.required ? '*' : ''}`"
|
|
168
|
-
:show-label-screen-reader-only="true"
|
|
169
|
-
size="sm"
|
|
170
|
-
:error="!!value.error"
|
|
171
|
-
:resize="false"
|
|
172
|
-
class="tw-w-full"
|
|
173
|
-
@input="onValueChange(index)"
|
|
174
|
-
/>
|
|
175
|
-
<p v-if="!!value.error" class="form-error">
|
|
176
|
-
{{ value.error }}
|
|
177
|
-
</p>
|
|
178
|
-
</div>
|
|
179
|
-
<div class="tw-flex tw-w-full tw-justify-center tw-col-span-2">
|
|
180
|
-
<button
|
|
181
|
-
v-if="isSubmitButtonVisible"
|
|
182
|
-
class="tw-block tw-border-0 tw-py-2 tw-select-none tw-text-base tw-text-center tw-w-fit hover:tw-cursor-pointer tw-px-8 tw-py-3 c-button-full"
|
|
183
|
-
:style="submitButtonStyle"
|
|
184
|
-
:class="{ 'tw-w-full': isMobileDevice }"
|
|
123
|
+
<div
|
|
124
|
+
:style="hasCard ? viewModel.cardStyle : {}"
|
|
125
|
+
class="tw-relative tw-block tw-px-6 tw-rounded-2xl"
|
|
126
|
+
:class="{ 'tw-py-8': hasCard }"
|
|
127
|
+
>
|
|
128
|
+
<form v-if="!hasSubmitted" @submit.prevent="submitContactForm">
|
|
129
|
+
<TextWrapper
|
|
130
|
+
v-if="viewModel.title"
|
|
131
|
+
:text-style="viewModel.titleStyle"
|
|
132
|
+
:text="viewModel.title"
|
|
133
|
+
element="h1"
|
|
134
|
+
class="tw-mb-4 tw-text-base"
|
|
135
|
+
/>
|
|
136
|
+
<TextWrapper
|
|
137
|
+
v-if="renderText"
|
|
138
|
+
:text-style="viewModel.descriptionStyle"
|
|
139
|
+
:text="renderText"
|
|
140
|
+
element="div"
|
|
141
|
+
class="tw-mb-4 tw-text-base"
|
|
142
|
+
/>
|
|
143
|
+
<div v-if="!isSubmitting" class="tw-grid tw-grid-cols-2 tw-gap-4">
|
|
144
|
+
<div
|
|
145
|
+
v-for="(value, index) in values"
|
|
146
|
+
:key="index"
|
|
147
|
+
class="tw-text-secondary-500 c-col-span-2"
|
|
148
|
+
:class="{
|
|
149
|
+
'tw-col-span-2':
|
|
150
|
+
value.field.type === 'text-area' || isMobileDevice,
|
|
151
|
+
}"
|
|
185
152
|
>
|
|
186
|
-
<
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
153
|
+
<TextInput
|
|
154
|
+
v-if="value.field.type !== 'text-area'"
|
|
155
|
+
v-model="value.value"
|
|
156
|
+
:placeholder="`${value.field.name}${
|
|
157
|
+
value.field.required ? '*' : ''
|
|
158
|
+
}`"
|
|
159
|
+
:label="`${value.field.name}${value.field.required ? '*' : ''}`"
|
|
160
|
+
:show-label-screen-reader-only="true"
|
|
161
|
+
size="sm"
|
|
162
|
+
:error="!!value.error"
|
|
163
|
+
:type="getTextInputTypeByFieldType(value.field.type)"
|
|
164
|
+
class="tw-w-full"
|
|
165
|
+
@input="onValueChange(index)"
|
|
190
166
|
/>
|
|
191
|
-
|
|
167
|
+
<Textarea
|
|
168
|
+
v-if="value.field.type === 'text-area'"
|
|
169
|
+
v-model="value.value"
|
|
170
|
+
:placeholder="`${value.field.name}${
|
|
171
|
+
value.field.required ? '*' : ''
|
|
172
|
+
}`"
|
|
173
|
+
:label="`${value.field.name}${value.field.required ? '*' : ''}`"
|
|
174
|
+
:show-label-screen-reader-only="true"
|
|
175
|
+
size="sm"
|
|
176
|
+
:error="!!value.error"
|
|
177
|
+
:resize="false"
|
|
178
|
+
class="tw-w-full"
|
|
179
|
+
@input="onValueChange(index)"
|
|
180
|
+
/>
|
|
181
|
+
<p v-if="!!value.error" class="form-error">
|
|
182
|
+
{{ value.error }}
|
|
183
|
+
</p>
|
|
184
|
+
</div>
|
|
185
|
+
<div class="tw-flex tw-w-full tw-justify-center tw-col-span-2">
|
|
186
|
+
<button
|
|
187
|
+
v-if="isSubmitButtonVisible"
|
|
188
|
+
class="tw-block tw-border-0 tw-py-2 tw-select-none tw-text-base tw-text-center tw-w-fit hover:tw-cursor-pointer tw-px-8 tw-py-3 c-button-full"
|
|
189
|
+
:style="submitButtonStyle"
|
|
190
|
+
:class="{ 'tw-w-full': isMobileDevice }"
|
|
191
|
+
>
|
|
192
|
+
<TextWrapper
|
|
193
|
+
:text-style="submitButtonTextStyle"
|
|
194
|
+
:text="viewModel.buttonText"
|
|
195
|
+
class="tw-text-center tw-text-base"
|
|
196
|
+
/>
|
|
197
|
+
</button>
|
|
198
|
+
</div>
|
|
192
199
|
</div>
|
|
200
|
+
<div v-else class="tw-w-full tw-flex tw-justify-center">
|
|
201
|
+
<Loader />
|
|
202
|
+
</div>
|
|
203
|
+
<p
|
|
204
|
+
v-if="hasSubmitError"
|
|
205
|
+
class="tw-text-center tw-mt-2 form-error"
|
|
206
|
+
>
|
|
207
|
+
{{ submitError }}
|
|
208
|
+
</p>
|
|
209
|
+
</form>
|
|
210
|
+
<div v-else :style="successMessageColorStyle">
|
|
211
|
+
<TextWrapper
|
|
212
|
+
v-if="viewModel.successMessage"
|
|
213
|
+
:text="renderSuccessText"
|
|
214
|
+
element="p"
|
|
215
|
+
:class="'tw-my-0.5'"
|
|
216
|
+
/>
|
|
193
217
|
</div>
|
|
194
|
-
<div v-else class="tw-w-full tw-flex tw-justify-center">
|
|
195
|
-
<Loader />
|
|
196
|
-
</div>
|
|
197
|
-
<p v-if="hasSubmitError" class="tw-text-center tw-mt-2 form-error">
|
|
198
|
-
{{ submitError }}
|
|
199
|
-
</p>
|
|
200
|
-
</form>
|
|
201
|
-
<div v-else :style="successMessageColorStyle">
|
|
202
|
-
<TextWrapper
|
|
203
|
-
v-if="viewModel.successMessage"
|
|
204
|
-
:text="renderSuccessText"
|
|
205
|
-
element="p"
|
|
206
|
-
:class="'tw-my-0.5'"
|
|
207
|
-
/>
|
|
208
218
|
</div>
|
|
209
219
|
</div>
|
|
210
220
|
</div>
|
|
211
|
-
<div
|
|
212
|
-
v-else-if="isTextOnly"
|
|
213
|
-
class="tw-px-6 tw-py-8 tw-gap-2 contact-container"
|
|
214
|
-
>
|
|
221
|
+
<div v-else-if="isTextOnly" class="tw-px-6 tw-gap-2 contact-container">
|
|
215
222
|
<span v-if="!hasSubmitted" class="tw-grid tw-grid-cols-2">
|
|
216
223
|
<div
|
|
217
224
|
v-if="!isSubmitting"
|
|
@@ -350,10 +357,7 @@
|
|
|
350
357
|
}"
|
|
351
358
|
>
|
|
352
359
|
<div
|
|
353
|
-
class="tw-flex tw-flex-col tw-gap-2 tw-px-8 tw-w-full tw-justify-center
|
|
354
|
-
:class="{
|
|
355
|
-
'tw-py-6': isMobileDevice,
|
|
356
|
-
}"
|
|
360
|
+
class="tw-flex tw-flex-col tw-gap-2 tw-px-8 tw-py-6 tw-w-full tw-justify-center"
|
|
357
361
|
>
|
|
358
362
|
<span v-if="!hasSubmitted">
|
|
359
363
|
<TextWrapper
|
|
@@ -516,9 +520,6 @@ export default {
|
|
|
516
520
|
.c-text-padding {
|
|
517
521
|
@apply tw-px-0 tw-col-span-2;
|
|
518
522
|
}
|
|
519
|
-
.c-py-6 {
|
|
520
|
-
@apply tw-py-6;
|
|
521
|
-
}
|
|
522
523
|
.c-divided-container {
|
|
523
524
|
@apply tw-flex-col;
|
|
524
525
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import type { PropType } from 'vue';
|
|
3
3
|
import type { ImageGalleryViewModel } from '@brand-page/view-models';
|
|
4
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
4
5
|
import ComponentCommonMixin from '../mixins/component-common.mixin';
|
|
5
6
|
import ImageModalMixin from '../mixins/image-modal.mixin';
|
|
6
7
|
import type { ImageGalleryImageClickPayload } from './models';
|
|
@@ -34,6 +35,10 @@ export default defineComponent({
|
|
|
34
35
|
};
|
|
35
36
|
},
|
|
36
37
|
computed: {
|
|
38
|
+
contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
|
|
39
|
+
return toContentPaddingStyle(this.viewModel);
|
|
40
|
+
},
|
|
41
|
+
|
|
37
42
|
getContainerStyle(): BrandPageCssStyle {
|
|
38
43
|
if (this.galleryType === 'carousel') {
|
|
39
44
|
const maxWidth = this.containerClientWidth
|
|
@@ -2,7 +2,10 @@ import { defineComponent } from 'vue';
|
|
|
2
2
|
import type { PropType } from 'vue';
|
|
3
3
|
import type { MailingListViewModel } from '@brand-page/view-models';
|
|
4
4
|
import brandPageClient from '../../clients/brand-page.client';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
getEmailValidationError,
|
|
7
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
8
|
+
} from '@brand-page/utils';
|
|
6
9
|
import type { BrandPageContext } from '@brand-page/models';
|
|
7
10
|
import {
|
|
8
11
|
contentSettingsTr,
|
|
@@ -61,6 +64,10 @@ export default defineComponent({
|
|
|
61
64
|
}
|
|
62
65
|
},
|
|
63
66
|
computed: {
|
|
67
|
+
contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
|
|
68
|
+
return toContentPaddingStyle(this.viewModel);
|
|
69
|
+
},
|
|
70
|
+
|
|
64
71
|
hasNameError(): boolean {
|
|
65
72
|
return !!this.nameError;
|
|
66
73
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div data-component="map">
|
|
2
|
+
<div data-component="map" :style="contentPaddingStyle">
|
|
3
3
|
<div
|
|
4
4
|
class="c-map"
|
|
5
5
|
:class="{
|
|
@@ -22,6 +22,7 @@ import Placeholder from '../placeholder/Placeholder.vue';
|
|
|
22
22
|
import type { MapViewModel } from '@brand-page/view-models';
|
|
23
23
|
import type { BrandPageContext } from '@brand-page/models';
|
|
24
24
|
import { mapTr } from '@src/composables/useTranslate';
|
|
25
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
25
26
|
import { computed } from 'vue';
|
|
26
27
|
|
|
27
28
|
interface Props {
|
|
@@ -37,6 +38,9 @@ const props = withDefaults(defineProps<Props>(), {
|
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
const placeId = computed(() => props.viewModel?.address?.placeId);
|
|
41
|
+
const contentPaddingStyle = computed(() =>
|
|
42
|
+
toContentPaddingStyle(props.viewModel),
|
|
43
|
+
);
|
|
40
44
|
</script>
|
|
41
45
|
<style scoped>
|
|
42
46
|
.c-map {
|
|
@@ -14,6 +14,7 @@ import type { RequestPaymentViewModel } from '../../../view-models';
|
|
|
14
14
|
import type { PaymentRequestDetails } from '../Payment.mixin';
|
|
15
15
|
import { DEFAULT_CURRENCY_SYMBOL } from '../../../constants';
|
|
16
16
|
import { addOpacityToHex } from '../../../utils/color.util';
|
|
17
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '../../../utils';
|
|
17
18
|
import { RGBAtoHex } from '@utils/helpers';
|
|
18
19
|
|
|
19
20
|
const MAX_CUSTOM_REQUEST_CHARS = 500;
|
|
@@ -42,6 +43,10 @@ export default defineComponent({
|
|
|
42
43
|
};
|
|
43
44
|
},
|
|
44
45
|
computed: {
|
|
46
|
+
contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
|
|
47
|
+
return toContentPaddingStyle(this.viewModel);
|
|
48
|
+
},
|
|
49
|
+
|
|
45
50
|
isCustomerRequestDetailsValid(): boolean {
|
|
46
51
|
return (
|
|
47
52
|
!this.viewModel.requestPaymentConfig.isCustomerRequestDetailsEnabled ||
|
|
@@ -4,7 +4,10 @@ import { SUPPORT_ME_CUSTOM_PRODUCT_NAME } from '../../../constants';
|
|
|
4
4
|
import type { BrandPageContext, PaymentOption } from '../../../models';
|
|
5
5
|
import type { SupportMeViewModel } from '../../../view-models';
|
|
6
6
|
import type { PaymentRequestDetails } from '../Payment.mixin';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
isPaymentAmountValid,
|
|
9
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
10
|
+
} from '../../../utils';
|
|
8
11
|
import {
|
|
9
12
|
DEFAULT_CURRENCY_SYMBOL,
|
|
10
13
|
DEFAULT_CURRENCY_CODE,
|
|
@@ -33,6 +36,10 @@ export default defineComponent({
|
|
|
33
36
|
};
|
|
34
37
|
},
|
|
35
38
|
computed: {
|
|
39
|
+
contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
|
|
40
|
+
return toContentPaddingStyle(this.viewModel);
|
|
41
|
+
},
|
|
42
|
+
|
|
36
43
|
isCustomAmountFieldVisible(): boolean {
|
|
37
44
|
return this.viewModel.supportMeConfig.paymentOptions.some(
|
|
38
45
|
(o) => o.name === SUPPORT_ME_CUSTOM_PRODUCT_NAME,
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
<section>
|
|
3
3
|
<div
|
|
4
4
|
v-if="shouldShowContainer"
|
|
5
|
-
class="tw-relative outer-container
|
|
5
|
+
class="tw-relative outer-container"
|
|
6
6
|
:class="{
|
|
7
7
|
'tw-my-8': context.isBrandSite,
|
|
8
8
|
'tw-mb-4': context.isBrandPageOrIsBrandContact,
|
|
9
9
|
}"
|
|
10
|
-
:style="backgroundStyle"
|
|
10
|
+
:style="[backgroundStyle, contentPaddingStyle]"
|
|
11
11
|
>
|
|
12
12
|
<div class="tw-p-4 inner-container">
|
|
13
13
|
<div class="tw-flex tw-flex-col tw-gap-2">
|
|
@@ -140,6 +140,7 @@ import brandPageClient from '../../clients/brand-page.client';
|
|
|
140
140
|
import raygunUtil from '@brand-page/utils/raygun.util';
|
|
141
141
|
import { shopTr } from '@src/composables/useTranslate';
|
|
142
142
|
import { useShopConfigStore } from '@shared/ecommerce-settings/store/shop-settings-store';
|
|
143
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
143
144
|
|
|
144
145
|
const props = withDefaults(
|
|
145
146
|
defineProps<{
|
|
@@ -260,6 +261,10 @@ const itemStyle = computed((): BrandPageCssStyle => {
|
|
|
260
261
|
};
|
|
261
262
|
});
|
|
262
263
|
|
|
264
|
+
const contentPaddingStyle = computed(() =>
|
|
265
|
+
toContentPaddingStyle(props.viewModel),
|
|
266
|
+
);
|
|
267
|
+
|
|
263
268
|
const backgroundStyle = computed((): any => {
|
|
264
269
|
return props.viewModel.backgroundStyle;
|
|
265
270
|
});
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div data-component="social-links">
|
|
3
3
|
<div
|
|
4
|
-
class="tw-pb-8"
|
|
5
4
|
:class="{
|
|
6
5
|
'tw-mb-4': context.isBrandPageOrIsBrandContact,
|
|
7
6
|
}"
|
|
8
|
-
:style="containerStyles"
|
|
7
|
+
:style="[containerStyles, contentPaddingStyle]"
|
|
9
8
|
style="container-type: inline-size"
|
|
10
9
|
>
|
|
11
10
|
<TextWrapper
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
:text="title"
|
|
15
14
|
element="h1"
|
|
16
15
|
:class="textAlignClass"
|
|
17
|
-
class="tw-
|
|
16
|
+
class="tw-pb-8"
|
|
18
17
|
/>
|
|
19
18
|
<SocialLinksItems
|
|
20
19
|
:id="id"
|
|
@@ -34,6 +33,7 @@ import TextWrapper from '../text-wrapper/TextWrapper.vue';
|
|
|
34
33
|
import type { SocialLinksViewModel } from 'src/brand-page/view-models';
|
|
35
34
|
import { SOCIAL_LINKS_ICON_DISPLAY_STYLES } from '@brand-page/models';
|
|
36
35
|
import type { BrandPageContext, LinksItem } from '@brand-page/models';
|
|
36
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
37
37
|
import { computed } from 'vue';
|
|
38
38
|
|
|
39
39
|
const props = withDefaults(
|
|
@@ -51,6 +51,10 @@ const containerStyles = computed((): BrandPageCssStyle => {
|
|
|
51
51
|
return props.viewModel.backgroundStyles || {};
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
+
const contentPaddingStyle = computed(() =>
|
|
55
|
+
toContentPaddingStyle(props.viewModel),
|
|
56
|
+
);
|
|
57
|
+
|
|
54
58
|
const iconStyle = computed((): BrandPageCssStyle => {
|
|
55
59
|
return props.viewModel.iconFillStyles || {};
|
|
56
60
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<div
|
|
4
4
|
v-if="!context.isBrandSite"
|
|
5
|
-
:style="containerStyle"
|
|
5
|
+
:style="[containerStyle, contentPaddingStyle]"
|
|
6
6
|
:class="{
|
|
7
7
|
[containerClasses]: true,
|
|
8
8
|
}"
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
data-test-tag="text-content-text"
|
|
16
16
|
/>
|
|
17
17
|
</div>
|
|
18
|
-
<div v-else :style="containerStyle">
|
|
18
|
+
<div v-else :style="[containerStyle, contentPaddingStyle]">
|
|
19
19
|
<div
|
|
20
|
-
class="c-text-container tw-
|
|
20
|
+
class="c-text-container tw-px-6 grid-container tw-gap-4"
|
|
21
21
|
:class="{
|
|
22
22
|
[containerClasses]: true,
|
|
23
23
|
[gridClass]: context.isBrandSite,
|
|
@@ -41,7 +41,10 @@
|
|
|
41
41
|
import TextWrapper from '../text-wrapper/TextWrapper.vue';
|
|
42
42
|
import { computed } from 'vue';
|
|
43
43
|
import type { TextViewModel } from '@brand-page/view-models';
|
|
44
|
-
import {
|
|
44
|
+
import {
|
|
45
|
+
getRenderText,
|
|
46
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
47
|
+
} from '@brand-page/utils';
|
|
45
48
|
import type { BrandPageContext } from '@brand-page/models';
|
|
46
49
|
|
|
47
50
|
interface Props {
|
|
@@ -51,6 +54,10 @@ interface Props {
|
|
|
51
54
|
|
|
52
55
|
const props = defineProps<Props>();
|
|
53
56
|
|
|
57
|
+
const contentPaddingStyle = computed(() =>
|
|
58
|
+
toContentPaddingStyle(props.viewModel),
|
|
59
|
+
);
|
|
60
|
+
|
|
54
61
|
const containerStyle = computed<any>(() => {
|
|
55
62
|
const containerStyles = {} as BrandPageCssStyle;
|
|
56
63
|
|
|
@@ -83,7 +90,7 @@ const containerClasses = computed(() => {
|
|
|
83
90
|
return '';
|
|
84
91
|
}
|
|
85
92
|
|
|
86
|
-
return 'tw-
|
|
93
|
+
return 'tw-px-6';
|
|
87
94
|
});
|
|
88
95
|
|
|
89
96
|
const renderText = computed(() => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section data-component="text-media-section">
|
|
3
3
|
<div
|
|
4
|
-
class="tw-relative tw-w-full tw-box-border
|
|
4
|
+
class="tw-relative tw-w-full tw-box-border"
|
|
5
5
|
:class="{
|
|
6
6
|
'tw-pl-0 tw-pr-0': hasNoPadding || !hasBrandSitePadding,
|
|
7
7
|
'tw-rounded-md': hasRoundedCorners,
|
|
8
8
|
}"
|
|
9
|
-
:style="viewModel.backgroundStyle"
|
|
9
|
+
:style="[viewModel.backgroundStyle, contentPaddingStyle]"
|
|
10
10
|
>
|
|
11
11
|
<div
|
|
12
12
|
:class="[
|
|
@@ -148,7 +148,11 @@ import {
|
|
|
148
148
|
MEDIA_ONLY,
|
|
149
149
|
} from '../../constants';
|
|
150
150
|
import { isHexTransparent } from '@brand-page/utils/color.util';
|
|
151
|
-
import {
|
|
151
|
+
import {
|
|
152
|
+
escapeContentText,
|
|
153
|
+
getRenderText,
|
|
154
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
155
|
+
} from '@brand-page/utils';
|
|
152
156
|
|
|
153
157
|
const props = defineProps({
|
|
154
158
|
viewModel: {
|
|
@@ -171,6 +175,10 @@ const props = defineProps({
|
|
|
171
175
|
},
|
|
172
176
|
});
|
|
173
177
|
|
|
178
|
+
const contentPaddingStyle = computed(() =>
|
|
179
|
+
toContentPaddingStyle(props.viewModel),
|
|
180
|
+
);
|
|
181
|
+
|
|
174
182
|
const items = computed(() => props.viewModel.items);
|
|
175
183
|
|
|
176
184
|
const shouldDisplayText = computed(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import type { PropType } from 'vue';
|
|
3
3
|
import type { VideoViewModel } from '@brand-page/view-models';
|
|
4
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
4
5
|
import ComponentCommonMixin from '../mixins/component-common.mixin';
|
|
5
6
|
import {
|
|
6
7
|
DISPLAY_STYLE_PREVIEW,
|
|
@@ -22,6 +23,10 @@ export default defineComponent({
|
|
|
22
23
|
title: 'Video',
|
|
23
24
|
}),
|
|
24
25
|
computed: {
|
|
26
|
+
contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
|
|
27
|
+
return toContentPaddingStyle(this.viewModel);
|
|
28
|
+
},
|
|
29
|
+
|
|
25
30
|
arrowStyle(): BrandPageCssStyle {
|
|
26
31
|
return {
|
|
27
32
|
color: this.viewModel.buttonStyles.style?.color,
|
|
@@ -38,6 +38,54 @@ export const ALIGN_LEFT_FULL_IMAGE = 'left-aligned-full-image';
|
|
|
38
38
|
export const ALIGN_RIGHT_FULL_IMAGE = 'right-aligned-full-image';
|
|
39
39
|
export const ALTERNATE_IMAGE = 'alternate-image';
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Padding Control (BP-5699): the top/bottom padding each Contact Form layout
|
|
43
|
+
* had hard-coded before the sliders existed. Single source for new-block
|
|
44
|
+
* defaults (content-settings) and the migration backfill for existing pages.
|
|
45
|
+
* The image layouts (full-image divided and card-over-image) are 0: the bg
|
|
46
|
+
* image expands with the section padding (banner-style), so the default starts
|
|
47
|
+
* flush at the edges; the spacing inside/over the image stays fixed.
|
|
48
|
+
*/
|
|
49
|
+
export const CONTACT_FORM_LAYOUT_DEFAULT_PADDING: Record<string, number> = {
|
|
50
|
+
'': 0, // collapsible (default on Brand Page / Brand Contact)
|
|
51
|
+
[ALIGN_CENTERED]: 32,
|
|
52
|
+
[ALIGN_CARD_CENTER]: 32,
|
|
53
|
+
[ALIGN_CARD_CENTER_IMAGE]: 0,
|
|
54
|
+
[TEXT_ONLY]: 32,
|
|
55
|
+
[ALIGN_LEFT_FULL_IMAGE]: 0,
|
|
56
|
+
[ALIGN_RIGHT_FULL_IMAGE]: 0,
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Banner: full-bleed display styles (divided + full-width stacked) render the
|
|
61
|
+
* image flush to the section edges, so their top/bottom padding defaults to 0 to
|
|
62
|
+
* match prod — the standard 32 would push the image off the edges. Every other
|
|
63
|
+
* banner style keeps 32. Used by the banner display-style convertor and the
|
|
64
|
+
* migration backfill, mirroring contact-form's per-layout map above.
|
|
65
|
+
*/
|
|
66
|
+
export const BANNER_DEFAULT_PADDING = 32;
|
|
67
|
+
export const BANNER_FULL_BLEED_DISPLAY_STYLES = [
|
|
68
|
+
ALIGN_LEFT_FULL_IMAGE,
|
|
69
|
+
ALIGN_RIGHT_FULL_IMAGE,
|
|
70
|
+
ALIGN_TOP_FULL_IMAGE,
|
|
71
|
+
ALIGN_BOTTOM_FULL_IMAGE,
|
|
72
|
+
ALIGN_MIDDLE_FULL_IMAGE,
|
|
73
|
+
];
|
|
74
|
+
export const bannerDisplayStyleDefaultPadding = (
|
|
75
|
+
displayStyle?: string,
|
|
76
|
+
): number =>
|
|
77
|
+
displayStyle && BANNER_FULL_BLEED_DISPLAY_STYLES.includes(displayStyle)
|
|
78
|
+
? 0
|
|
79
|
+
: BANNER_DEFAULT_PADDING;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* About: a flat 32 for every display style, including the two full-image styles.
|
|
83
|
+
* The full-image About renders the image inside the padded container, so the
|
|
84
|
+
* standard 32 band is the intended look. Used by the About display-style
|
|
85
|
+
* convertor and the migration backfill.
|
|
86
|
+
*/
|
|
87
|
+
export const ABOUT_DEFAULT_PADDING = 32;
|
|
88
|
+
|
|
41
89
|
export const BIG_IMAGE = 'big-image';
|
|
42
90
|
export const MEDIA_ONLY = 'media-only';
|
|
43
91
|
export const COLUMNS = 'columns';
|