+
+
+ Today is the day. We're sorry to interrupt, but it's {{ currentDayName }}, {{ currentDate }}, and this + message will be up for only a few hours. +
+
+ We ask you to reflect on the number of times you visited Wikipedia in the past year and if you're able to give €5 back.
+
+ Your gift strengthens the knowledge of today and tomorrow. Just 1% of our readers donate, so if + you have given in the past and Wikipedia still provides you with €5 worth of knowledge, kindly donate + today. If you are undecided, remember that any contribution helps, whether it's €5 or €25. Thank you. +
++ If Wikipedia has given you €5 worth of knowledge this year, please give back. +
++ If you can, please join the 1% of readers who give. Thank you. +
+Every year we are dependent on the support of people like you. Yearly donations ' + + 'help sustainably and enable long term development.
' + + 'No risks attached, you can tell us to stop at any time.
' +}; + +export default messages; diff --git a/banners/english/C24_WMDE_Desktop_EN_06/messages_var.ts b/banners/english/C24_WMDE_Desktop_EN_06/messages_var.ts new file mode 100644 index 000000000..959c1ddbc --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/messages_var.ts @@ -0,0 +1,29 @@ +import CustomAmountFormEn from '@src/components/DonationForm/Forms/messages/CustomAmountForm.en'; +import DynamicCampaignTextEn from '@src/utils/DynamicContent/messages/DynamicCampaignText.en'; +import { TranslationMessages } from '@src/Translator'; +import UpgradeToYearlyEn from '@src/components/DonationForm/Forms/messages/UpgradeToYearly.en'; +import SoftCloseEn from '@src/components/SoftClose/messages/SoftClose.en'; +import AddressFormEn from '@src/components/DonationForm/Forms/messages/AddressForm.en'; +import FooterEn from '@src/components/Footer/messages/Footer.en'; +import MainDonationFormEn from '@src/components/DonationForm/Forms/messages/MainDonationForm.en'; +import AlreadyDonatedModalEn from '@src/components/AlreadyDonatedModal/translations/AlreadyDonatedModal.en'; +import FallbackBanner from '@src/components/FallbackBanner/messages/FallbackBanner.en'; +import DoubleProgressBarEn from '@src/components/ProgressBar/messages/DoubleProgressBar.en'; + +const messages: TranslationMessages = { + ...CustomAmountFormEn, + ...DynamicCampaignTextEn, + ...UpgradeToYearlyEn, + ...SoftCloseEn, + ...AddressFormEn, + ...FooterEn, + ...MainDonationFormEn, + ...AlreadyDonatedModalEn, + ...FallbackBanner, + ...DoubleProgressBarEn, + 'upgrade-to-yearly-copy': 'Every year we are dependent on the support of people like you. Yearly donations ' + + 'help sustainably and enable long term development.
' + + 'No risks attached, you can tell us to stop at any time.
' +}; + +export default messages; diff --git a/banners/english/C24_WMDE_Desktop_EN_06/styles/Banner.scss b/banners/english/C24_WMDE_Desktop_EN_06/styles/Banner.scss new file mode 100644 index 000000000..f88657686 --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/styles/Banner.scss @@ -0,0 +1,17 @@ +@use 'src/themes/Treedip/variables/fonts'; + +.wmde-banner { + &-wrapper { + font-size: 14px; + font-family: fonts.$ui; + box-shadow: var( --main-box-shadow ); + background-color: var( --main-background ); + color: var( --main-color ); + } + + &--closed { + .wmde-banner-wrapper { + display: none; + } + } +} diff --git a/banners/english/C24_WMDE_Desktop_EN_06/styles/FallbackBanner.scss b/banners/english/C24_WMDE_Desktop_EN_06/styles/FallbackBanner.scss new file mode 100644 index 000000000..755514912 --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/styles/FallbackBanner.scss @@ -0,0 +1,137 @@ +@use 'src/themes/Treedip/variables/globals'; +@use 'src/themes/Treedip/variables/fonts'; + +$breakpoint: 800px; + +.wmde-banner { + &-fallback { + width: 100%; + height: 150px; + display: flex; + flex-direction: column; + background: var( --fallback-background ); + box-shadow: var( --main-box-shadow ); + + @media ( min-width: $breakpoint ) { + height: auto; + min-height: 250px; + padding: 4px; + } + + &-small, + &-large { + display: flex; + flex-direction: column; + flex: 1 1 auto; + } + + &-small { + align-items: center; + border: 4px solid var( --fallback-border ); + border-radius: 4px; + padding: 8px; + + .wmde-banner-progress-bar { + height: 25px; + line-height: 25px; + } + + .wmde-banner-progress-bar-text, + .wmde-banner-progress-bar-fill-wrapper { + height: 25px; + } + + .wmde-banner-progress-bar-fill { + line-height: 20px; + } + + .wmde-banner-fallback-button { + margin: 0 0 8px; + } + + .wmde-banner-selection-input-text, + .wmde-banner-selection-input-input { + font-family: fonts.$content; + font-size: 14px; + font-weight: normal; + } + } + + &-large { + align-items: stretch; + } + + &-usage-link { + color: var( --fallback-uof-link ); + } + + &-message { + flex: 1 1 auto; + display: flex; + flex-direction: column; + background: var( --fallback-message-background ); + border: 4px solid var( --fallback-message-border ); + border-radius: 4px; + padding: 8px 0; + } + + &-bank-item { + display: block; + + &-label { + font-weight: bold; + } + } + + .wmde-banner-close { + height: 16px; + width: 16px; + top: 8px; + right: 8px; + margin: 0; + padding: 0; + + @media ( min-width: $breakpoint ) { + height: 30px; + width: 30px; + top: 12px; + right: 12px; + } + } + + .wmde-banner-slider-container { + padding: 0 0 8px; + border: none; + } + + .wmde-banner-slide-content { + font-size: 14px; + p { + margin-bottom: 8px; + } + } + + .wmde-banner-slider-navigation-previous, + .wmde-banner-slider-navigation-next { + align-items: end; + } + + .wmde-banner-slider-pagination-dot { + cursor: default; + } + + .wmde-banner-message { + flex: 1 1 auto; + + p { + margin-bottom: 0; + } + } + } + + &--pending { + .wmde-banner-fallback { + box-shadow: none; + } + } +} diff --git a/banners/english/C24_WMDE_Desktop_EN_06/styles/MainBanner.scss b/banners/english/C24_WMDE_Desktop_EN_06/styles/MainBanner.scss new file mode 100644 index 000000000..518b8c959 --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/styles/MainBanner.scss @@ -0,0 +1,44 @@ +$banner-height: 357px !default; +$form-width: 300px !default; + +.wmde-banner { + &-main { + min-height: $banner-height; + display: flex; + flex-direction: column; + padding: 12px 24px 0; + } + + &-content { + display: flex; + flex-direction: row; + flex-grow: 1; + } + + &-message { + padding: 0 15px; + } + + &-column-left { + display: flex; + flex-direction: column; + justify-content: center; + flex: 1 1 auto; + margin-bottom: 0; + overflow-y: hidden; + margin-right: 30px; + padding: 0 0 10px; + background: var( --message-background ); + border: 5px solid var( --message-border ); + border-radius: 9px; + } + + &-column-right { + order: 2; + flex: 0 0 $form-width; + display: flex; + flex-direction: column; + width: $form-width; + padding: 10px 0; + } +} diff --git a/banners/english/C24_WMDE_Desktop_EN_06/styles/MainBannerVar.scss b/banners/english/C24_WMDE_Desktop_EN_06/styles/MainBannerVar.scss new file mode 100644 index 000000000..4bb783cb2 --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/styles/MainBannerVar.scss @@ -0,0 +1,50 @@ +$banner-height: 357px !default; +$form-width: 300px !default; + +.wmde-banner { + &-main { + min-height: $banner-height; + display: flex; + flex-direction: column; + padding: 12px 24px 0; + } + + &-content { + display: flex; + flex-direction: row; + flex-grow: 1; + } + + &-message { + padding: 0 15px; + border: 5px solid var( --message-border ); + border-radius: 9px; + margin-bottom: 10px; + } + + &-slider-container { + border: 5px solid var( --message-border ); + border-radius: 9px; + margin-bottom: 10px; + } + + &-column-left { + display: flex; + flex-direction: column; + justify-content: center; + flex: 1 1 auto; + overflow-y: hidden; + margin-right: 30px; + padding: 0 0 10px; + background: var( --message-background ); + } + + &-column-right { + order: 2; + flex: 0 0 $form-width; + display: flex; + flex-direction: column; + width: $form-width; + padding: 10px 0; + } +} diff --git a/banners/english/C24_WMDE_Desktop_EN_06/styles/styles.scss b/banners/english/C24_WMDE_Desktop_EN_06/styles/styles.scss new file mode 100644 index 000000000..1e0e5a7f3 --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/styles/styles.scss @@ -0,0 +1,61 @@ +// This is the file where we import the theme-specific component styles +@use 'src/themes/Treedip/swatches/skin_vector-2022' with ( + $slider: true, + $select-group-bubble: true, + $select-group-image-label: true, + $upgrade-to-yearly: true, + $fallback-banner: true, + $progress-bar: true, + $soft-close: true, +); +@use 'src/themes/Treedip/variables/breakpoints'; +@use 'src/components/BannerConductor/banner-transition'; +@use 'Banner'; +@use 'MainBanner' with ( + $banner-height: 355px, + $form-width: 300px +); +@use 'src/themes/UseOfFunds/swatches/skin_vector-2022' as uof-vector-2022; +@use 'src/themes/UseOfFunds/UseOfFunds'; +@use 'src/themes/Treedip/defaults'; +@use 'src/themes/Treedip/ButtonClose/ButtonClose' with ( + $padding: 4px, + $top: 12px, + $right: 8px, + $margin: -4.5px +); +@use 'src/themes/Treedip/ProgressBar/ProgressBarAlternative' with ( + $progress-bar-margin: 0 15px +); +@use 'src/themes/Treedip/DonationForm/DonationForm'; +@use 'src/themes/Treedip/DonationForm/MultiStepDonation'; +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectGroupBubble'; +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectGroupRadioBubbles' with ( + $height: 34px, + $font-size: 14px +); +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectCustomAmountRadioBubble' with ( + $height: 34px, + $font-size: 14px +); +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectGroupBubbleImageLabel'; +@use 'src/themes/Treedip/DonationForm/SubComponents/SmsBox'; +@use 'src/themes/Treedip/DonationForm/Forms/MainDonationForm' with ( + $padding: 14px 0 0 +); +@use 'src/themes/Treedip/DonationForm/Forms/UpgradeToYearlyButtonForm' with ( + $font-size: 14px +); +@use 'src/themes/Treedip/Footer/FooterAlreadyDonated' with ( + $right-column-width: 300px +); +@use 'src/themes/Treedip/Footer/SelectionInput'; +@use 'src/themes/Treedip/Message/Message' with ( + $font-sizes: ( 1400px: 15px, 1600px: 16px, 1800px: 18px ) +); +@use 'src/themes/Treedip/Slider/KeenSlider'; +@use 'src/themes/Treedip/SoftClose/SoftClose'; +@use 'FallbackBanner'; +@use 'src/themes/Fijitiv/FallbackBanner/FallbackButton'; +@use 'src/themes/Fijitiv/FallbackBanner/LargeFooter'; +@use 'src/themes/Fijitiv/FallbackBanner/SmallFooter'; diff --git a/banners/english/C24_WMDE_Desktop_EN_06/styles/styles_var.scss b/banners/english/C24_WMDE_Desktop_EN_06/styles/styles_var.scss new file mode 100644 index 000000000..325a6b8fe --- /dev/null +++ b/banners/english/C24_WMDE_Desktop_EN_06/styles/styles_var.scss @@ -0,0 +1,59 @@ +// This is the file where we import the theme-specific component styles +@use 'src/themes/Treedip/swatches/skin_vector-2022' with ( + $slider: true, + $select-group-bubble: true, + $select-group-image-label: true, + $upgrade-to-yearly: true, + $fallback-banner: true, + $double-progress-bar: true, + $soft-close: true, +); +@use 'src/themes/Treedip/variables/breakpoints'; +@use 'src/components/BannerConductor/banner-transition'; +@use 'Banner'; +@use 'MainBannerVar' with ( + $banner-height: 355px, + $form-width: 300px +); +@use 'src/themes/UseOfFunds/swatches/skin_vector-2022' as uof-vector-2022; +@use 'src/themes/UseOfFunds/UseOfFunds'; +@use 'src/themes/Treedip/defaults'; +@use 'src/themes/Treedip/ButtonClose/ButtonClose' with ( + $padding: 4px, + $top: 12px, + $right: 8px, + $margin: -4.5px +); +@use 'src/themes/Treedip/ProgressBar/DoubleProgressBar'; +@use 'src/themes/Treedip/DonationForm/DonationForm'; +@use 'src/themes/Treedip/DonationForm/MultiStepDonation'; +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectGroupBubble'; +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectGroupRadioBubbles' with ( + $height: 34px, + $font-size: 14px +); +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectCustomAmountRadioBubble' with ( + $height: 34px, + $font-size: 14px +); +@use 'src/themes/Treedip/DonationForm/BubbleForm/SelectGroupBubbleImageLabel'; +@use 'src/themes/Treedip/DonationForm/SubComponents/SmsBox'; +@use 'src/themes/Treedip/DonationForm/Forms/MainDonationForm' with ( + $padding: 14px 0 0 +); +@use 'src/themes/Treedip/DonationForm/Forms/UpgradeToYearlyButtonForm' with ( + $font-size: 14px +); +@use 'src/themes/Treedip/Footer/FooterAlreadyDonated' with ( + $right-column-width: 300px +); +@use 'src/themes/Treedip/Footer/SelectionInput'; +@use 'src/themes/Treedip/Message/Message' with ( + $font-sizes: ( 1400px: 15px, 1600px: 16px, 1800px: 18px ) +); +@use 'src/themes/Treedip/Slider/KeenSlider'; +@use 'src/themes/Treedip/SoftClose/SoftClose'; +@use 'FallbackBanner'; +@use 'src/themes/Fijitiv/FallbackBanner/FallbackButton'; +@use 'src/themes/Fijitiv/FallbackBanner/LargeFooter'; +@use 'src/themes/Fijitiv/FallbackBanner/SmallFooter'; diff --git a/campaign_info.toml b/campaign_info.toml index f38fd23fb..2d2c06dd8 100644 --- a/campaign_info.toml +++ b/campaign_info.toml @@ -139,9 +139,9 @@ tracking = "wpde-mob01-241028-var" [english] name = "English Desktop" icon = "desktop" -campaign = "C24_WMDE_Desktop_EN_05" -description = "Based on CTRL desktop EN 04" -campaign_tracking = "en05-ba-241126" +campaign = "C24_WMDE_Desktop_EN_06" +description = "Based on CTRL desktop EN 05" +campaign_tracking = "en06-ba-241209" preview_link = "/wiki/Main_Page?devbanner={{banner}}&banner=B22_WMDE_local_prototype" preview_link_darkmode = "/wiki/Main_Page?devbanner={{banner}}&banner=B22_WMDE_local_prototype&vectornightmode=1" preview_url = 'https://en.wikipedia.org/wiki/Main_Page?banner={{banner}}&devMode' @@ -149,14 +149,14 @@ wrapper_template = "wikipedia_org" use_of_funds_source = "MediaWiki:WMDE_Fundraising/UseOfFunds_2024_EN" [english.banners.ctrl] -filename = "./banners/english/C24_WMDE_Desktop_EN_05/banner_ctrl.ts" -pagename = "B24_WMDE_Desktop_EN_05_ctrl" -tracking = "org-en05-241126-ctrl" +filename = "./banners/english/C24_WMDE_Desktop_EN_06/banner_ctrl.ts" +pagename = "B24_WMDE_Desktop_EN_06_ctrl" +tracking = "org-en06-241209-ctrl" [english.banners.var] -filename = "./banners/english/C24_WMDE_Desktop_EN_05/banner_var.ts" -pagename = "B24_WMDE_Desktop_EN_05_var" -tracking = "org-en05-241126-var" +filename = "./banners/english/C24_WMDE_Desktop_EN_06/banner_var.ts" +pagename = "B24_WMDE_Desktop_EN_06_var" +tracking = "org-en06-241209-var" [english.test_matrix] platform = ["edge", "firefox_win10", "chrome_win10", "safari", "firefox_macos", "chrome_macos", "firefox_linux", "chrome_linux"] diff --git a/src/components/ProgressBar/currentCampaignTimePercentage.ts b/src/components/ProgressBar/currentCampaignTimePercentage.ts index 55eeaba6e..f87d7e350 100644 --- a/src/components/ProgressBar/currentCampaignTimePercentage.ts +++ b/src/components/ProgressBar/currentCampaignTimePercentage.ts @@ -1,6 +1,9 @@ import { CampaignParameters } from '@src/domain/CampaignParameters'; import TimeRange from '@src/utils/TimeRange'; +/** + * Calculate how much of the campaign has passed (in percent), using the campaign start and end date and the current date + */ export function currentCampaignTimePercentage( date: Date, campaignParameters: CampaignParameters ): number { const timeRange = TimeRange.createFromStrings( campaignParameters.startDate, diff --git a/src/components/ProgressBar/messages/DoubleProgressBar.en.ts b/src/components/ProgressBar/messages/DoubleProgressBar.en.ts new file mode 100644 index 000000000..817740647 --- /dev/null +++ b/src/components/ProgressBar/messages/DoubleProgressBar.en.ts @@ -0,0 +1,7 @@ +import { TranslationMessages } from '@src/Translator'; + +const translations: TranslationMessages = { + 'double-progress-close': 'Time is running out!' +}; + +export default translations; diff --git a/src/themes/Treedip/ProgressBar/DoubleProgressBar.scss b/src/themes/Treedip/ProgressBar/DoubleProgressBar.scss new file mode 100644 index 000000000..c3eacf459 --- /dev/null +++ b/src/themes/Treedip/ProgressBar/DoubleProgressBar.scss @@ -0,0 +1,76 @@ +@use 'src/components/ProgressBar/DoubleProgressBar'; +@use 'transitionsDouble'; + +.wmde-banner { + @include DoubleProgressBar.layout; + + .wmde-banner { + &-double-progress { + margin: 0; + font-weight: bold; + font-size: 12px; + + &-amount, + &-time { + height: 24px; + line-height: 24px; + padding-right: 10px; + border-radius: 12px; + + &-fill, + &-difference { + color: var( --double-progress-color ); + height: 100%; + padding: 0 10px; + } + + &-fill { + display: flex; + justify-content: right; + } + } + + &-right-text { + float: right; + color: var( --double-progress-right-text-color ); + } + + &-amount { + margin-bottom: 5px; + background: var( --double-progress-time-background ); + + &-fill, + &-difference { + border-radius: 12px; + } + + &-fill { + background: var( --double-progress-time-fill-background ); + z-index: 2; + } + + &-difference { + background: var( --double-progress-difference-background ); + z-index: 1; + text-align: right; + } + } + + &-time { + background: var( --double-progress-amount-background ); + + &-fill { + border-radius: 12px; + background: var( --double-progress-amount-fill-background ); + } + } + + &.is-late-progress { + .wmde-banner-double-progress-amount-fill, + .wmde-banner-double-progress-time-fill { + justify-content: space-between; + } + } + } + } +} diff --git a/src/themes/Treedip/ProgressBar/_transitionsDouble.scss b/src/themes/Treedip/ProgressBar/_transitionsDouble.scss new file mode 100644 index 000000000..5754bdb76 --- /dev/null +++ b/src/themes/Treedip/ProgressBar/_transitionsDouble.scss @@ -0,0 +1,41 @@ +@use '../variables/globals'; + +.wmde-banner { + &-double-progress-amount-difference, + &-double-progress-time-fill, + &-double-progress-amount-fill { + transition: width 3000ms globals.$banner-easing; + width: 0; + max-width: 100%; + } + + &-double-progress-amount-difference, + &-double-progress-time-fill { + min-width: 80px; + } + + &-double-progress-amount-fill { + min-width: 80px; + } + + &-double-progress .text-fade { + opacity: 0; + transition: opacity 300ms globals.$banner-easing; + transition-delay: 3000ms; + } + + &--visible { + .wmde-banner-double-progress-amount-difference, + .wmde-banner-double-progress-time-fill { + width: var( --wmde-banner-progress-bar-time-width ); + } + + .wmde-banner-double-progress-amount-fill { + width: var( --wmde-banner-progress-bar-width ); + } + + .wmde-banner-double-progress .text-fade { + opacity: 1; + } + } +} diff --git a/src/themes/Treedip/swatches/color_dark.scss b/src/themes/Treedip/swatches/color_dark.scss index 44731ebad..37d3e6086 100644 --- a/src/themes/Treedip/swatches/color_dark.scss +++ b/src/themes/Treedip/swatches/color_dark.scss @@ -12,8 +12,10 @@ $grey700: #292929; $grey800: #1f1f1f; $red100: #ff8888; +$red500: #fb4848; $red600: #e60f00; +$blue100: #dff1ff; $blue600: #547fd5; $blue700: #436fc7; $blue800: #20303f; @@ -21,6 +23,7 @@ $blue800: #20303f; @mixin swatch( $slider: false, $progress-bar: false, + $double-progress-bar: false, $select-group: false, $select-group-bubble: false, $select-group-button: false, @@ -84,6 +87,17 @@ $blue800: #20303f; --progress-bar-fill-color: #{$white}; } + @if $double-progress-bar { + --double-progress-color: #{$white}; + --double-progress-time-background: #{$red100}; + --double-progress-time-fill-background: #{$red600}; + --double-progress-difference-background: #{$red500}; + + --double-progress-amount-background: #{$blue100}; + --double-progress-amount-fill-background: #{$blue700}; + --double-progress-right-text-color: #{$grey700}; + } + @if $select-group { --select-group-background: #{$white}; --select-group-radio-label-color: #{$black}; diff --git a/src/themes/Treedip/swatches/color_light.scss b/src/themes/Treedip/swatches/color_light.scss index 3061bd40e..24ea6d1e7 100644 --- a/src/themes/Treedip/swatches/color_light.scss +++ b/src/themes/Treedip/swatches/color_light.scss @@ -10,15 +10,19 @@ $grey500: #808080; $grey600: #747474; $grey700: #202122; +$red100: #ffe8e8; +$red500: #fb4848; $red600: #990a00; $red700: #7d0a00; +$blue100: #dff1ff; $blue600: #4465a7; $blue700: #2a4b8d; @mixin swatch( $slider: false, $progress-bar: false, + $double-progress-bar: false, $select-group: false, $select-group-bubble: false, $select-group-button: false, @@ -83,6 +87,17 @@ $blue700: #2a4b8d; --progress-bar-fill-color: #{$white}; } + @if $double-progress-bar { + --double-progress-color: #{$white}; + --double-progress-time-background: #{$red100}; + --double-progress-time-fill-background: #{$red600}; + --double-progress-difference-background: #{$red500}; + + --double-progress-amount-background: #{$blue100}; + --double-progress-amount-fill-background: #{$blue700}; + --double-progress-right-text-color: #{$grey700}; + } + @if $select-group { --select-group-background: #{$white}; --select-group-radio-label-color: #{$black}; diff --git a/src/themes/Treedip/swatches/skin_default.scss b/src/themes/Treedip/swatches/skin_default.scss index 093a49adc..24bf47d99 100644 --- a/src/themes/Treedip/swatches/skin_default.scss +++ b/src/themes/Treedip/swatches/skin_default.scss @@ -2,6 +2,7 @@ $slider: false !default; $progress-bar: false !default; +$double-progress-bar: false !default; $select-group: false !default; $select-group-bubble: false !default; $select-group-button: false !default; @@ -16,6 +17,7 @@ $minimised-banner: false !default; @include color_light.swatch( $slider, $progress-bar, + $double-progress-bar, $select-group, $select-group-bubble, $select-group-button, diff --git a/src/themes/Treedip/swatches/skin_vector-2022.scss b/src/themes/Treedip/swatches/skin_vector-2022.scss index 17e6ab071..1a974465e 100644 --- a/src/themes/Treedip/swatches/skin_vector-2022.scss +++ b/src/themes/Treedip/swatches/skin_vector-2022.scss @@ -3,6 +3,7 @@ $slider: false !default; $progress-bar: false !default; +$double-progress-bar: false !default; $select-group: false !default; $select-group-bubble: false !default; $select-group-button: false !default; @@ -16,6 +17,7 @@ $fallback-banner: false !default; @include color_light.swatch( $slider, $progress-bar, + $double-progress-bar, $select-group, $select-group-bubble, $select-group-button, @@ -31,6 +33,7 @@ $fallback-banner: false !default; @include color_dark.swatch( $slider, $progress-bar, + $double-progress-bar, $select-group, $select-group-bubble, $select-group-button, @@ -47,6 +50,7 @@ $fallback-banner: false !default; @include color_dark.swatch( $slider, $progress-bar, + $double-progress-bar, $select-group, $select-group-bubble, $select-group-button, @@ -62,6 +66,7 @@ $fallback-banner: false !default; @include color_light.swatch( $slider, $progress-bar, + $double-progress-bar, $select-group, $select-group-bubble, $select-group-button, diff --git a/src/utils/DynamicContent/generators/ProgressBarContent.ts b/src/utils/DynamicContent/generators/ProgressBarContent.ts index a09bf653d..046f5dcac 100644 --- a/src/utils/DynamicContent/generators/ProgressBarContent.ts +++ b/src/utils/DynamicContent/generators/ProgressBarContent.ts @@ -50,7 +50,7 @@ export class ProgressBarContent implements DynamicProgressBarContent { public get amountNeeded(): string { return this._translator.translate( 'amount-missing', { - amount: this._currencyFormatter.euroAmountWithThousandSeparator( this._remainingDonationSum ) + amount: this._currencyFormatter.millions( this._remainingDonationSum ) } ); } diff --git a/test/banners/english/C24_WMDE_Desktop_EN_06/components/BannerCtrl.spec.ts b/test/banners/english/C24_WMDE_Desktop_EN_06/components/BannerCtrl.spec.ts new file mode 100644 index 000000000..37fea86fa --- /dev/null +++ b/test/banners/english/C24_WMDE_Desktop_EN_06/components/BannerCtrl.spec.ts @@ -0,0 +1,141 @@ +import { beforeEach, describe, test } from 'vitest'; +import { mount, VueWrapper } from '@vue/test-utils'; +import Banner from '@banners/english/C24_WMDE_Desktop_EN_06/components/BannerCtrl.vue'; +import { BannerStates } from '@src/components/BannerConductor/StateMachine/BannerStates'; +import { newDynamicContent } from '@test/banners/dynamicCampaignContent'; +import { useOfFundsContent } from '@test/banners/useOfFundsContent'; +import { formItems } from '@test/banners/formItems'; +import { CurrencyEn } from '@src/utils/DynamicContent/formatters/CurrencyEn'; +import { useOfFundsFeatures } from '@test/features/UseOfFunds'; +import { bannerContentAnimatedTextFeatures, bannerContentDateAndTimeFeatures, bannerContentDisplaySwitchFeatures, bannerContentFeatures } from '@test/features/BannerContent'; +import { TrackerStub } from '@test/fixtures/TrackerStub'; +import { donationFormFeatures } from '@test/features/forms/MainDonation_UpgradeToYearlyButton'; +import { useFormModel } from '@src/components/composables/useFormModel'; +import { resetFormModel } from '@test/resetFormModel'; +import { bannerAutoHideFeatures, bannerMainFeatures } from '@test/features/MainBanner'; +import { DynamicContent } from '@src/utils/DynamicContent/DynamicContent'; +import { alreadyDonatedModalFeatures } from '@test/features/AlreadyDonatedModal'; +import { softCloseFeatures } from '@test/features/SoftCloseDesktop'; +import { Timer } from '@src/utils/Timer'; +import { TimerStub } from '@test/fixtures/TimerStub'; + +const formModel = useFormModel(); +const translator = ( key: string ): string => key; + +describe( 'BannerCtrl.vue', () => { + + beforeEach( () => { + resetFormModel( formModel ); + } ); + + const getWrapper = ( dynamicContent: DynamicContent = null, timer: Timer = null ): VueWrapper