@designcrowd/library.brand-page 5.18.4 → 5.18.6-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-DQLtpdLe.js → CreatedOnBrandCrowd-de-de-CAtPZtwo.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-CvEhlADd.js → CreatedOnBrandCrowd-en-us-Dcx4yFkK.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-pYQeTTC0.js → CreatedOnBrandCrowd-es-es-DpodH0gD.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-CcE-iCEq.js → CreatedOnBrandCrowd-fr-ca-DZbMRJn-.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-CcE-iCEq.js → CreatedOnBrandCrowd-fr-fr-DZbMRJn-.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-OyhWWWyO.js → CreatedOnBrandCrowd-pt-br-C3gBveLk.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-OyhWWWyO.js → CreatedOnBrandCrowd-pt-pt-C3gBveLk.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-DH98FFLS.js → CreatedOnDcom-de-de-DHNyyTV9.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-DK67NN1r.js → CreatedOnDcom-en-us-BjqZ0Jmw.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-9-QU4BU6.js → CreatedOnDcom-es-es-tiNjDJmH.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-U9J9H9VB.js → CreatedOnDcom-fr-ca-COUSI6w1.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DqdzB1DJ.js → CreatedOnDcom-fr-fr-c3UCfh9A.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-c4UiWtkB.js → CreatedOnDcom-pt-br-U1jbo_g5.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-Do2qJsYp.js → CreatedOnDcom-pt-pt-BOW_n3bo.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 +30 -0
- package/lib/src/brand-page/constants/misc.constants.js +51 -0
- package/lib/src/brand-page/models/content.model.d.ts +2 -0
- package/lib/src/brand-page/models/navigation-styles.model.d.ts +7 -0
- package/lib/src/brand-page/models/navigation-styles.model.js +25 -2
- 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-16.d.ts +2 -0
- package/lib/src/brand-page/utils/migration/migration-16.js +47 -0
- package/lib/src/brand-page/utils/migration/migration-17.d.ts +2 -0
- package/lib/src/brand-page/utils/migration/migration-17.js +50 -0
- package/lib/src/brand-page/utils/migration.util.js +17 -0
- 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 +12 -0
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +14 -0
- package/lib/src/brand-page-maker/constants/config-settings-constant.js +37 -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.js +1 -9
- package/lib/src/{bundled-translations-B5Fkt3qd.js → bundled-translations-Chw0nsFv.js} +9 -9
- package/lib/src/{bundled-translations.de-DE-DpdVePM9.js → bundled-translations.de-DE-cqBv7atZ.js} +1 -1
- package/lib/src/{bundled-translations.es-ES-BsIcrzZF.js → bundled-translations.es-ES-D9VXftl_.js} +9 -9
- package/lib/src/{bundled-translations.fr-CA-G1XCp2Qh.js → bundled-translations.fr-CA-BYstWXcO.js} +1 -1
- package/lib/src/{bundled-translations.fr-FR-BdwLXOnB.js → bundled-translations.fr-FR-D1H1hJD4.js} +1 -1
- package/lib/src/{bundled-translations.pt-BR-Bvn5ePe7.js → bundled-translations.pt-BR-DqNFuNHX.js} +1 -1
- package/lib/src/{bundled-translations.pt-PT-CDtkb2k1.js → bundled-translations.pt-PT-tOic0FfQ.js} +9 -9
- package/lib/src/bundles/bundled-translations.de-DE.json +2 -0
- package/lib/src/bundles/bundled-translations.es-ES.json +2 -0
- package/lib/src/bundles/bundled-translations.fr-CA.json +2 -0
- package/lib/src/bundles/bundled-translations.fr-FR.json +2 -0
- package/lib/src/bundles/bundled-translations.json +2 -0
- package/lib/src/bundles/bundled-translations.pt-BR.json +2 -0
- package/lib/src/bundles/bundled-translations.pt-PT.json +2 -0
- package/lib/src/css/library.brand-page-brandCrowd.min.css +150 -168
- package/lib/src/css/library.brand-page-brandPage.min.css +150 -168
- package/lib/src/css/library.brand-page-designCom.min.css +150 -168
- package/lib/src/css/library.brand-page-preview.min.css +150 -168
- package/lib/src/index.mjs +62 -60
- package/lib/src/{lib-BI3J4Mbk.js → lib-Bl7w5LQl.js} +19205 -18991
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +14 -0
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +14 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +12 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +12 -0
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +12 -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/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +10 -8
- package/lib/src/shared/navigation-style-settings/store/index.js +1 -12
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +16 -0
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +14 -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/button/Button.vue +2 -10
- package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
- package/src/brand-page/components/contact-form/ContactForm.vue +117 -120
- 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/navigation/navigation-side-menu/NavigationSideMenu.vue +4 -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 +60 -0
- package/src/brand-page/models/content.model.ts +2 -0
- package/src/brand-page/models/navigation-styles.model.ts +39 -1
- 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-16.test.ts +319 -0
- package/src/brand-page/utils/migration/migration-16.ts +75 -0
- package/src/brand-page/utils/migration/migration-17.ts +73 -0
- package/src/brand-page/utils/migration.util.test.ts +145 -0
- package/src/brand-page/utils/migration.util.ts +19 -0
- package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +9 -7
- package/src/brand-page-maker/constants/config-settings-constant.ts +43 -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 +43 -0
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +0 -14
- package/src/bundles/bundled-translations.de-DE.json +2 -0
- package/src/bundles/bundled-translations.es-ES.json +2 -0
- package/src/bundles/bundled-translations.fr-CA.json +2 -0
- package/src/bundles/bundled-translations.fr-FR.json +2 -0
- package/src/bundles/bundled-translations.json +2 -0
- package/src/bundles/bundled-translations.pt-BR.json +2 -0
- package/src/bundles/bundled-translations.pt-PT.json +2 -0
- package/src/shared/content-settings/components/color-field/ColorField.vue +10 -5
- 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/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
- package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
- package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +17 -11
- package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +4 -1
- package/src/shared/navigation-style-settings/store/index.ts +1 -21
- package/src/utils/minify-brand-page-metadata.ts +11 -1
|
@@ -3445,6 +3445,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3445
3445
|
id: string;
|
|
3446
3446
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
3447
3447
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
3448
|
+
topPadding?: number | undefined;
|
|
3449
|
+
bottomPadding?: number | undefined;
|
|
3448
3450
|
imageUrlOverride?: string | undefined;
|
|
3449
3451
|
imageUrlsOverride?: string | undefined;
|
|
3450
3452
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -3494,6 +3496,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3494
3496
|
id: string;
|
|
3495
3497
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
3496
3498
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
3499
|
+
topPadding?: number | undefined;
|
|
3500
|
+
bottomPadding?: number | undefined;
|
|
3497
3501
|
imageUrlOverride?: string | undefined;
|
|
3498
3502
|
imageUrlsOverride?: string | undefined;
|
|
3499
3503
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -3543,6 +3547,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3543
3547
|
id: string;
|
|
3544
3548
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
3545
3549
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
3550
|
+
topPadding?: number | undefined;
|
|
3551
|
+
bottomPadding?: number | undefined;
|
|
3546
3552
|
imageUrlOverride?: string | undefined;
|
|
3547
3553
|
imageUrlsOverride?: string | undefined;
|
|
3548
3554
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -3592,6 +3598,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3592
3598
|
id: string;
|
|
3593
3599
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
3594
3600
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
3601
|
+
topPadding?: number | undefined;
|
|
3602
|
+
bottomPadding?: number | undefined;
|
|
3595
3603
|
imageUrlOverride?: string | undefined;
|
|
3596
3604
|
imageUrlsOverride?: string | undefined;
|
|
3597
3605
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -3641,6 +3649,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3641
3649
|
id: string;
|
|
3642
3650
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
3643
3651
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
3652
|
+
topPadding?: number | undefined;
|
|
3653
|
+
bottomPadding?: number | undefined;
|
|
3644
3654
|
imageUrlOverride?: string | undefined;
|
|
3645
3655
|
imageUrlsOverride?: string | undefined;
|
|
3646
3656
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -3690,6 +3700,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
3690
3700
|
id: string;
|
|
3691
3701
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
3692
3702
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
3703
|
+
topPadding?: number | undefined;
|
|
3704
|
+
bottomPadding?: number | undefined;
|
|
3693
3705
|
imageUrlOverride?: string | undefined;
|
|
3694
3706
|
imageUrlsOverride?: string | undefined;
|
|
3695
3707
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -4450,6 +4462,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4450
4462
|
id: string;
|
|
4451
4463
|
type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
|
|
4452
4464
|
personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
|
|
4465
|
+
topPadding?: number | undefined;
|
|
4466
|
+
bottomPadding?: number | undefined;
|
|
4453
4467
|
imageUrlOverride?: string | undefined;
|
|
4454
4468
|
imageUrlsOverride?: string | undefined;
|
|
4455
4469
|
avatarImageUrlOverride?: string | undefined;
|
|
@@ -87,7 +87,17 @@ const findAssetKey = (assets, data) => {
|
|
|
87
87
|
return assets.find((a) => a.data === data)?.key;
|
|
88
88
|
};
|
|
89
89
|
const minifyContent = (content, editor, assets) => {
|
|
90
|
-
const base = {
|
|
90
|
+
const base = {
|
|
91
|
+
id: content.id,
|
|
92
|
+
type: content.type,
|
|
93
|
+
// Padding Control (BP-5687) — shared across every block, persist when set.
|
|
94
|
+
...(typeof content.topPadding === 'number' && {
|
|
95
|
+
topPadding: content.topPadding,
|
|
96
|
+
}),
|
|
97
|
+
...(typeof content.bottomPadding === 'number' && {
|
|
98
|
+
bottomPadding: content.bottomPadding,
|
|
99
|
+
}),
|
|
100
|
+
};
|
|
91
101
|
const c = content;
|
|
92
102
|
// Helper: include imageUrl and its asset key if available
|
|
93
103
|
const includeImageWithKey = (url, urlField = 'imageUrl', keyField = 'imageAssetKey') => {
|
package/package.json
CHANGED
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
<div
|
|
8
8
|
:class="{
|
|
9
9
|
'about-container': context.isBrandSite,
|
|
10
|
-
'about-container--padding
|
|
10
|
+
'about-container--padding': !isFullImage,
|
|
11
11
|
'mobile-about-container--padding': isFullImage,
|
|
12
12
|
}"
|
|
13
|
+
:style="contentPaddingStyle"
|
|
13
14
|
>
|
|
14
15
|
<Media
|
|
15
16
|
v-if="
|
|
@@ -103,7 +104,10 @@
|
|
|
103
104
|
import { computed } from 'vue';
|
|
104
105
|
import type { AboutSectionViewModel } from '@brand-page/view-models';
|
|
105
106
|
import type { BrandPageContext } from '@brand-page/models';
|
|
106
|
-
import {
|
|
107
|
+
import {
|
|
108
|
+
getRenderText,
|
|
109
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
110
|
+
} from '@brand-page/utils';
|
|
107
111
|
import { hasRTEContent } from '@brand-page-maker/utils';
|
|
108
112
|
import Media from '../media/Media.vue';
|
|
109
113
|
import TextWrapper from '../text-wrapper/TextWrapper.vue';
|
|
@@ -123,6 +127,10 @@ const props = withDefaults(
|
|
|
123
127
|
},
|
|
124
128
|
);
|
|
125
129
|
|
|
130
|
+
const contentPaddingStyle = computed(() =>
|
|
131
|
+
toContentPaddingStyle(props.viewModel),
|
|
132
|
+
);
|
|
133
|
+
|
|
126
134
|
const isFullImage = computed(
|
|
127
135
|
() =>
|
|
128
136
|
props.viewModel.displayStyle === 'right-aligned-full-image' ||
|
|
@@ -201,7 +209,6 @@ const renderText = computed((): string => {
|
|
|
201
209
|
.device-wrapper--mobile .mobile-about-container--padding {
|
|
202
210
|
padding-left: var(--page-padding);
|
|
203
211
|
padding-right: var(--page-padding);
|
|
204
|
-
@apply tw-py-10;
|
|
205
212
|
}
|
|
206
213
|
.device-wrapper--mobile .text-grid-column {
|
|
207
214
|
@apply container-grid-columns;
|
|
@@ -275,7 +282,6 @@ const renderText = computed((): string => {
|
|
|
275
282
|
.mobile-about-container--padding {
|
|
276
283
|
padding-left: var(--page-padding);
|
|
277
284
|
padding-right: var(--page-padding);
|
|
278
|
-
@apply tw-py-10;
|
|
279
285
|
}
|
|
280
286
|
.about-container :deep(.container-image) {
|
|
281
287
|
aspect-ratio: 1/1;
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
viewModel.isBigImageType,
|
|
8
8
|
'c_banner--with-image-overlay tw-flex tw-flex-col': isDividedContent,
|
|
9
9
|
'tw-px-6': !isDividedContent,
|
|
10
|
-
'tw-py-8': !isDividedContent && !isStackedFullWidth,
|
|
11
10
|
}"
|
|
12
|
-
:style="viewModel.backgroundStyle"
|
|
11
|
+
:style="[viewModel.backgroundStyle, contentPaddingStyle]"
|
|
13
12
|
style="container-type: inline-size"
|
|
14
13
|
>
|
|
15
14
|
<Media
|
|
@@ -201,7 +200,7 @@
|
|
|
201
200
|
<div
|
|
202
201
|
class="!tw-text-center tw-flex tw-flex-col tw-gap-5"
|
|
203
202
|
:class="{
|
|
204
|
-
'tw-px-6
|
|
203
|
+
'tw-px-6': isDividedContent,
|
|
205
204
|
}"
|
|
206
205
|
>
|
|
207
206
|
<TextWrapper
|
|
@@ -332,7 +331,11 @@ import type {
|
|
|
332
331
|
} from '@brand-page/view-models';
|
|
333
332
|
import type { BrandPageContext } from '@brand-page/models';
|
|
334
333
|
import { hasValidButton } from '../../../utils/validator.util';
|
|
335
|
-
import {
|
|
334
|
+
import {
|
|
335
|
+
getRenderText,
|
|
336
|
+
escapeContentText,
|
|
337
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
338
|
+
} from '@brand-page/utils';
|
|
336
339
|
import { hasRTEContent } from '@brand-page-maker/utils';
|
|
337
340
|
import {
|
|
338
341
|
ALIGN_CENTERED,
|
|
@@ -490,6 +493,10 @@ const layout = computed<BannerLayoutConfig>(
|
|
|
490
493
|
() => BANNER_LAYOUTS[props.viewModel.displayStyle] ?? DEFAULT_LAYOUT,
|
|
491
494
|
);
|
|
492
495
|
|
|
496
|
+
const contentPaddingStyle = computed(() =>
|
|
497
|
+
toContentPaddingStyle(props.viewModel),
|
|
498
|
+
);
|
|
499
|
+
|
|
493
500
|
const displayAlignClass = computed(() => layout.value.alignClass);
|
|
494
501
|
const isHorizontalAligned = computed(() => !!layout.value.hasSideImage);
|
|
495
502
|
const isDividedContent = computed(() => layout.value.layout === 'divided');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section data-component="booking-section">
|
|
3
3
|
<div
|
|
4
|
-
class="tw-relative tw-px-6
|
|
5
|
-
:style="viewModel.backgroundStyle"
|
|
4
|
+
class="tw-relative tw-px-6"
|
|
5
|
+
:style="[viewModel.backgroundStyle, contentPaddingStyle]"
|
|
6
6
|
style="container-type: inline-size"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
@@ -45,7 +45,11 @@ import type {
|
|
|
45
45
|
ButtonViewModel,
|
|
46
46
|
} from '@brand-page/view-models';
|
|
47
47
|
import type { BrandPageContext } from '@brand-page/models';
|
|
48
|
-
import {
|
|
48
|
+
import {
|
|
49
|
+
getRenderText,
|
|
50
|
+
escapeContentText,
|
|
51
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
52
|
+
} from '@brand-page/utils';
|
|
49
53
|
import { hasRTEContent } from '@brand-page-maker/utils';
|
|
50
54
|
import { hasValidButton as shouldShowButtonUtil } from '../../../utils/validator.util';
|
|
51
55
|
import Button from '../button/Button.vue';
|
|
@@ -71,6 +75,10 @@ const props = defineProps({
|
|
|
71
75
|
},
|
|
72
76
|
});
|
|
73
77
|
|
|
78
|
+
const contentPaddingStyle = computed(() =>
|
|
79
|
+
toContentPaddingStyle(props.viewModel),
|
|
80
|
+
);
|
|
81
|
+
|
|
74
82
|
const renderText = computed((): string => {
|
|
75
83
|
if (!props.viewModel.description) {
|
|
76
84
|
return '';
|
|
@@ -253,21 +253,13 @@ const onCloseModal = (): void => {
|
|
|
253
253
|
text-decoration: none;
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
/* Shape-library icons (vector, nested in .c-shape, no class on the img):
|
|
257
|
-
render at the default icon size, centered in normal flow like the SVG icons. */
|
|
258
256
|
.bp-button :deep(.c-button__icon-img img) {
|
|
259
257
|
@apply tw-object-cover tw-max-w-none;
|
|
260
|
-
width: var(--icon-w);
|
|
261
|
-
height: var(--icon-h);
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/* Raster image thumbnails (FallbackImage renders <img class="c-image">):
|
|
265
|
-
render larger/prominent and centered over the icon slot. */
|
|
266
|
-
.bp-button :deep(.c-button__icon-img img.c-image) {
|
|
267
258
|
--icon-img-size: 2.3rem;
|
|
259
|
+
--icon-img-offset-x: calc((var(--button-p-x) - var(--button-p-y)) * 2);
|
|
268
260
|
position: absolute;
|
|
269
261
|
top: calc(var(--icon-img-size) / -2 + var(--icon-h) / 2);
|
|
270
|
-
left: calc(var(--icon-img-size) / -2 + var(--icon-
|
|
262
|
+
left: calc(var(--icon-img-size) / -2 + var(--icon-img-offset-x));
|
|
271
263
|
width: var(--icon-img-size);
|
|
272
264
|
height: var(--icon-img-size);
|
|
273
265
|
}
|
|
@@ -25,7 +25,10 @@ import {
|
|
|
25
25
|
RECAPTCHA_ACTION_CONTACT_FORM,
|
|
26
26
|
TEXT_ONLY,
|
|
27
27
|
} from '../../constants';
|
|
28
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
getRenderText,
|
|
30
|
+
contentPaddingStyle as toContentPaddingStyle,
|
|
31
|
+
} from '@brand-page/utils';
|
|
29
32
|
import { hasRTEContent } from '@brand-page-maker/utils';
|
|
30
33
|
import { useReCaptcha } from '../../composables/recaptcha.composable';
|
|
31
34
|
|
|
@@ -97,6 +100,10 @@ export default defineComponent({
|
|
|
97
100
|
return buttonTextStyle;
|
|
98
101
|
},
|
|
99
102
|
|
|
103
|
+
contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
|
|
104
|
+
return toContentPaddingStyle(this.viewModel);
|
|
105
|
+
},
|
|
106
|
+
|
|
100
107
|
hasCard(): boolean {
|
|
101
108
|
return (
|
|
102
109
|
this.viewModel.layoutStyle === ALIGN_CARD_CENTER ||
|
|
@@ -109,11 +116,10 @@ export default defineComponent({
|
|
|
109
116
|
},
|
|
110
117
|
|
|
111
118
|
hasBgColor(): boolean {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
);
|
|
119
|
+
// Every brandSite layout applies the background colour on the section
|
|
120
|
+
// root (banner-style) so the padding control reveals it; for the image
|
|
121
|
+
// layouts it only shows in the padding bands around the image block.
|
|
122
|
+
return Boolean(this.viewModel.layoutStyle);
|
|
117
123
|
},
|
|
118
124
|
|
|
119
125
|
isCenteredLayout(): boolean {
|
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section data-component="contact-form">
|
|
3
3
|
<div
|
|
4
|
-
:class="{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:style="hasBgColor ? viewModel.backgroundStyle : {}"
|
|
4
|
+
:class="{ 'tw-block': !viewModel.layoutStyle }"
|
|
5
|
+
:style="[
|
|
6
|
+
hasBgColor ? viewModel.backgroundStyle : {},
|
|
7
|
+
contentPaddingStyle,
|
|
8
|
+
]"
|
|
10
9
|
>
|
|
11
|
-
<Media
|
|
12
|
-
v-if="hasBgImage && isCenteredLayout"
|
|
13
|
-
:image-url="viewModel.imageUrl"
|
|
14
|
-
:color-replacements="viewModel.colorReplacements"
|
|
15
|
-
:context="context"
|
|
16
|
-
:media-type="viewModel.mediaType"
|
|
17
|
-
:role="viewModel.role"
|
|
18
|
-
:size="viewModel.size"
|
|
19
|
-
:content-index="contentIndex"
|
|
20
|
-
img-classes="tw-w-full tw-h-full tw-object-cover tw-absolute tw-left-0 tw-top-0 tw-overflow-hidden"
|
|
21
|
-
/>
|
|
22
10
|
<Collapsible
|
|
23
11
|
v-if="
|
|
24
12
|
!viewModel.layoutStyle ||
|
|
@@ -108,110 +96,125 @@
|
|
|
108
96
|
</Collapsible>
|
|
109
97
|
<div
|
|
110
98
|
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
|
-
}"
|
|
99
|
+
:class="{ 'tw-relative': hasBgImage, 'tw-flex': !hasBgImage }"
|
|
117
100
|
>
|
|
101
|
+
<Media
|
|
102
|
+
v-if="hasBgImage"
|
|
103
|
+
:image-url="viewModel.imageUrl"
|
|
104
|
+
:color-replacements="viewModel.colorReplacements"
|
|
105
|
+
:context="context"
|
|
106
|
+
:media-type="viewModel.mediaType"
|
|
107
|
+
:role="viewModel.role"
|
|
108
|
+
:size="viewModel.size"
|
|
109
|
+
:content-index="contentIndex"
|
|
110
|
+
img-classes="tw-w-full tw-h-full tw-object-cover tw-absolute tw-left-0 tw-top-0 tw-overflow-hidden"
|
|
111
|
+
/>
|
|
118
112
|
<div
|
|
119
|
-
|
|
120
|
-
class="
|
|
113
|
+
class="contact-container"
|
|
114
|
+
:class="{
|
|
115
|
+
'tw-px-6': hasCard,
|
|
116
|
+
'tw-py-8': hasBgImage,
|
|
117
|
+
'tw-w-full': !hasBgImage,
|
|
118
|
+
}"
|
|
121
119
|
>
|
|
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
|
-
:placeholder="`${value.field.name}${
|
|
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 }"
|
|
120
|
+
<div
|
|
121
|
+
:style="hasCard ? viewModel.cardStyle : {}"
|
|
122
|
+
class="tw-relative tw-block tw-px-6 tw-py-8 tw-rounded-2xl"
|
|
123
|
+
>
|
|
124
|
+
<form v-if="!hasSubmitted" @submit.prevent="submitContactForm">
|
|
125
|
+
<TextWrapper
|
|
126
|
+
v-if="viewModel.title"
|
|
127
|
+
:text-style="viewModel.titleStyle"
|
|
128
|
+
:text="viewModel.title"
|
|
129
|
+
element="h1"
|
|
130
|
+
class="tw-mb-4 tw-text-base"
|
|
131
|
+
/>
|
|
132
|
+
<TextWrapper
|
|
133
|
+
v-if="renderText"
|
|
134
|
+
:text-style="viewModel.descriptionStyle"
|
|
135
|
+
:text="renderText"
|
|
136
|
+
element="div"
|
|
137
|
+
class="tw-mb-4 tw-text-base"
|
|
138
|
+
/>
|
|
139
|
+
<div v-if="!isSubmitting" class="tw-grid tw-grid-cols-2 tw-gap-4">
|
|
140
|
+
<div
|
|
141
|
+
v-for="(value, index) in values"
|
|
142
|
+
:key="index"
|
|
143
|
+
class="tw-text-secondary-500 c-col-span-2"
|
|
144
|
+
:class="{
|
|
145
|
+
'tw-col-span-2':
|
|
146
|
+
value.field.type === 'text-area' || isMobileDevice,
|
|
147
|
+
}"
|
|
185
148
|
>
|
|
186
|
-
<
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
149
|
+
<TextInput
|
|
150
|
+
v-if="value.field.type !== 'text-area'"
|
|
151
|
+
v-model="value.value"
|
|
152
|
+
:placeholder="`${value.field.name}${
|
|
153
|
+
value.field.required ? '*' : ''
|
|
154
|
+
}`"
|
|
155
|
+
:label="`${value.field.name}${value.field.required ? '*' : ''}`"
|
|
156
|
+
:show-label-screen-reader-only="true"
|
|
157
|
+
size="sm"
|
|
158
|
+
:error="!!value.error"
|
|
159
|
+
:type="getTextInputTypeByFieldType(value.field.type)"
|
|
160
|
+
class="tw-w-full"
|
|
161
|
+
@input="onValueChange(index)"
|
|
190
162
|
/>
|
|
191
|
-
|
|
163
|
+
<Textarea
|
|
164
|
+
v-if="value.field.type === 'text-area'"
|
|
165
|
+
v-model="value.value"
|
|
166
|
+
:placeholder="`${value.field.name}${
|
|
167
|
+
value.field.required ? '*' : ''
|
|
168
|
+
}`"
|
|
169
|
+
:label="`${value.field.name}${value.field.required ? '*' : ''}`"
|
|
170
|
+
:show-label-screen-reader-only="true"
|
|
171
|
+
size="sm"
|
|
172
|
+
:error="!!value.error"
|
|
173
|
+
:resize="false"
|
|
174
|
+
class="tw-w-full"
|
|
175
|
+
@input="onValueChange(index)"
|
|
176
|
+
/>
|
|
177
|
+
<p v-if="!!value.error" class="form-error">
|
|
178
|
+
{{ value.error }}
|
|
179
|
+
</p>
|
|
180
|
+
</div>
|
|
181
|
+
<div class="tw-flex tw-w-full tw-justify-center tw-col-span-2">
|
|
182
|
+
<button
|
|
183
|
+
v-if="isSubmitButtonVisible"
|
|
184
|
+
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"
|
|
185
|
+
:style="submitButtonStyle"
|
|
186
|
+
:class="{ 'tw-w-full': isMobileDevice }"
|
|
187
|
+
>
|
|
188
|
+
<TextWrapper
|
|
189
|
+
:text-style="submitButtonTextStyle"
|
|
190
|
+
:text="viewModel.buttonText"
|
|
191
|
+
class="tw-text-center tw-text-base"
|
|
192
|
+
/>
|
|
193
|
+
</button>
|
|
194
|
+
</div>
|
|
192
195
|
</div>
|
|
196
|
+
<div v-else class="tw-w-full tw-flex tw-justify-center">
|
|
197
|
+
<Loader />
|
|
198
|
+
</div>
|
|
199
|
+
<p
|
|
200
|
+
v-if="hasSubmitError"
|
|
201
|
+
class="tw-text-center tw-mt-2 form-error"
|
|
202
|
+
>
|
|
203
|
+
{{ submitError }}
|
|
204
|
+
</p>
|
|
205
|
+
</form>
|
|
206
|
+
<div v-else :style="successMessageColorStyle">
|
|
207
|
+
<TextWrapper
|
|
208
|
+
v-if="viewModel.successMessage"
|
|
209
|
+
:text="renderSuccessText"
|
|
210
|
+
element="p"
|
|
211
|
+
:class="'tw-my-0.5'"
|
|
212
|
+
/>
|
|
193
213
|
</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
214
|
</div>
|
|
209
215
|
</div>
|
|
210
216
|
</div>
|
|
211
|
-
<div
|
|
212
|
-
v-else-if="isTextOnly"
|
|
213
|
-
class="tw-px-6 tw-py-8 tw-gap-2 contact-container"
|
|
214
|
-
>
|
|
217
|
+
<div v-else-if="isTextOnly" class="tw-px-6 tw-gap-2 contact-container">
|
|
215
218
|
<span v-if="!hasSubmitted" class="tw-grid tw-grid-cols-2">
|
|
216
219
|
<div
|
|
217
220
|
v-if="!isSubmitting"
|
|
@@ -286,7 +289,7 @@
|
|
|
286
289
|
{{ value.error }}
|
|
287
290
|
</p>
|
|
288
291
|
</div>
|
|
289
|
-
<div class="tw-flex tw-w-full tw-justify-
|
|
292
|
+
<div class="tw-flex tw-w-full tw-justify-center tw-col-span-2">
|
|
290
293
|
<button
|
|
291
294
|
v-if="isSubmitButtonVisible"
|
|
292
295
|
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"
|
|
@@ -350,10 +353,7 @@
|
|
|
350
353
|
}"
|
|
351
354
|
>
|
|
352
355
|
<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
|
-
}"
|
|
356
|
+
class="tw-flex tw-flex-col tw-gap-2 tw-px-8 tw-py-6 tw-w-full tw-justify-center"
|
|
357
357
|
>
|
|
358
358
|
<span v-if="!hasSubmitted">
|
|
359
359
|
<TextWrapper
|
|
@@ -417,7 +417,7 @@
|
|
|
417
417
|
</p>
|
|
418
418
|
</div>
|
|
419
419
|
<div
|
|
420
|
-
class="tw-flex tw-w-full tw-justify-
|
|
420
|
+
class="tw-flex tw-w-full tw-justify-center tw-col-span-2"
|
|
421
421
|
>
|
|
422
422
|
<button
|
|
423
423
|
v-if="isSubmitButtonVisible"
|
|
@@ -516,9 +516,6 @@ export default {
|
|
|
516
516
|
.c-text-padding {
|
|
517
517
|
@apply tw-px-0 tw-col-span-2;
|
|
518
518
|
}
|
|
519
|
-
.c-py-6 {
|
|
520
|
-
@apply tw-py-6;
|
|
521
|
-
}
|
|
522
519
|
.c-divided-container {
|
|
523
520
|
@apply tw-flex-col;
|
|
524
521
|
}
|
|
@@ -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
|
},
|