@designcrowd/library.brand-page 6.1.13-ast-opacity → 6.1.13
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-B8j4uryC.js → CreatedOnBrandCrowd-de-de-Fgb3311h.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-BsI2J4TR.js → CreatedOnBrandCrowd-en-us-B5STCD_n.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-CYxTGgvK.js → CreatedOnBrandCrowd-es-es-DdgIbk4D.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-V6_P_kVa.js → CreatedOnBrandCrowd-fr-ca-DI51kQX5.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-V6_P_kVa.js → CreatedOnBrandCrowd-fr-fr-DI51kQX5.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-DSbvq-jt.js → CreatedOnBrandCrowd-pt-br-BSnb2rTr.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-DSbvq-jt.js → CreatedOnBrandCrowd-pt-pt-BSnb2rTr.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-6LMPXiBe.js → CreatedOnDcom-de-de-CSZ70DSJ.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-LJWKUu3G.js → CreatedOnDcom-en-us-ndmcsQ7u.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-BcJkodUE.js → CreatedOnDcom-es-es-CaxTn1I3.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-DDBXmhmV.js → CreatedOnDcom-fr-ca-D2G_gRcn.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-D0jyOtYU.js → CreatedOnDcom-fr-fr-DEWTbL0q.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-DzwvL7Me.js → CreatedOnDcom-pt-br-JrWcosfu.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-B-6e1n0b.js → CreatedOnDcom-pt-pt-C81R_qUX.js} +1 -1
- package/lib/src/brand-page/models/index.d.ts +1 -4
- package/lib/src/brand-page/models/index.js +1 -4
- package/lib/src/brand-page/utils/view-model.util.js +2 -18
- package/lib/src/brand-page/view-models.d.ts +1 -2
- package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +0 -18
- package/lib/src/{bundled-translations-B2q5GWTQ.js → bundled-translations-BiFAlQdC.js} +1 -1
- package/lib/src/{bundled-translations.de-DE-FhH2H_rd.js → bundled-translations.de-DE-DuRWnOP-.js} +5 -5
- package/lib/src/{bundled-translations.es-ES-_ZExxMi7.js → bundled-translations.es-ES-CokHdZtW.js} +5 -5
- package/lib/src/{bundled-translations.fr-CA-Tg-ODIiC.js → bundled-translations.fr-CA-CJcMmubA.js} +1 -1
- package/lib/src/{bundled-translations.fr-FR-C0sU51Mz.js → bundled-translations.fr-FR-DYPup8fJ.js} +1 -1
- package/lib/src/{bundled-translations.pt-BR-MYFIhA4u.js → bundled-translations.pt-BR-GSsp1kuV.js} +9 -9
- package/lib/src/{bundled-translations.pt-PT-DeUBSzCB.js → bundled-translations.pt-PT-DbkY8UQ3.js} +9 -9
- package/lib/src/bundles/bundled-translations.de-DE.json +0 -1
- package/lib/src/bundles/bundled-translations.es-ES.json +0 -1
- package/lib/src/bundles/bundled-translations.fr-CA.json +0 -1
- package/lib/src/bundles/bundled-translations.fr-FR.json +0 -1
- package/lib/src/bundles/bundled-translations.json +0 -1
- package/lib/src/bundles/bundled-translations.pt-BR.json +0 -1
- package/lib/src/bundles/bundled-translations.pt-PT.json +0 -1
- package/lib/src/css/library.brand-page-brandCrowd.min.css +1 -1
- package/lib/src/css/library.brand-page-brandPage.min.css +1 -1
- package/lib/src/css/library.brand-page-designCom.min.css +1 -1
- package/lib/src/css/library.brand-page-preview.min.css +1 -1
- package/lib/src/index.mjs +1 -1
- package/lib/src/{lib-Dpv7KURd.js → lib-BmaHdOpJ.js} +8420 -8470
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +0 -2
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +0 -5
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +0 -25
- package/lib/src/utils/minify-brand-page-metadata.d.ts +0 -1
- package/lib/src/utils/minify-brand-page-metadata.js +3 -13
- package/package.json +1 -1
- package/src/brand-page/models/index.ts +2 -9
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +6 -18
- package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +2 -6
- package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +4 -12
- package/src/brand-page/utils/view-model.util.test.ts +1 -145
- package/src/brand-page/utils/view-model.util.ts +2 -27
- package/src/brand-page/view-models.ts +0 -2
- package/src/bundles/bundled-translations.de-DE.json +0 -1
- package/src/bundles/bundled-translations.es-ES.json +0 -1
- package/src/bundles/bundled-translations.fr-CA.json +0 -1
- package/src/bundles/bundled-translations.fr-FR.json +0 -1
- package/src/bundles/bundled-translations.json +0 -1
- package/src/bundles/bundled-translations.pt-BR.json +0 -1
- package/src/bundles/bundled-translations.pt-PT.json +0 -1
- package/src/shared/page-settings/components/header-settings-panel/HeaderSettingsPanel.vue +0 -18
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.de-DE.json +0 -1
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.es-ES.json +0 -1
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.fr-CA.json +0 -1
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.fr-FR.json +0 -1
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.json +0 -1
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.pt-BR.json +0 -1
- package/src/shared/page-settings/components/page-settings/i18n/page-settings.pt-PT.json +0 -1
- package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +0 -33
- package/src/utils/minify-brand-page-metadata.test.ts +1 -70
- package/src/utils/minify-brand-page-metadata.ts +4 -19
- package/src/shared/page-settings/components/header-settings-panel/HeaderSettingsPanel.test.ts +0 -111
|
@@ -1277,7 +1277,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
1277
1277
|
} | undefined;
|
|
1278
1278
|
logoImageBase64Url?: string | undefined;
|
|
1279
1279
|
backgroundStyle: {
|
|
1280
|
-
backgroundOpacity?: number | undefined;
|
|
1281
1280
|
aspectRatio?: string | undefined;
|
|
1282
1281
|
backgroundAttachment?: string | undefined;
|
|
1283
1282
|
background?: string | undefined;
|
|
@@ -2570,7 +2569,6 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
2570
2569
|
} | undefined;
|
|
2571
2570
|
logoImageBase64Url?: string | undefined;
|
|
2572
2571
|
backgroundStyle: {
|
|
2573
|
-
backgroundOpacity?: number | undefined;
|
|
2574
2572
|
aspectRatio?: string | undefined;
|
|
2575
2573
|
backgroundAttachment?: string | undefined;
|
|
2576
2574
|
background?: string | undefined;
|
|
@@ -1235,7 +1235,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1235
1235
|
} | undefined;
|
|
1236
1236
|
logoImageBase64Url?: string | undefined;
|
|
1237
1237
|
backgroundStyle: {
|
|
1238
|
-
backgroundOpacity?: number | undefined;
|
|
1239
1238
|
aspectRatio?: string | undefined;
|
|
1240
1239
|
backgroundAttachment?: string | undefined;
|
|
1241
1240
|
background?: string | undefined;
|
|
@@ -2528,7 +2527,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
2528
2527
|
} | undefined;
|
|
2529
2528
|
logoImageBase64Url?: string | undefined;
|
|
2530
2529
|
backgroundStyle: {
|
|
2531
|
-
backgroundOpacity?: number | undefined;
|
|
2532
2530
|
aspectRatio?: string | undefined;
|
|
2533
2531
|
backgroundAttachment?: string | undefined;
|
|
2534
2532
|
background?: string | undefined;
|
|
@@ -4640,8 +4638,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4640
4638
|
logoSliderMax(): number;
|
|
4641
4639
|
backgroundColor(): string;
|
|
4642
4640
|
isBackgroundColorEnabled(): boolean;
|
|
4643
|
-
backgroundOpacity(): number;
|
|
4644
|
-
showBackgroundOpacity(): boolean;
|
|
4645
4641
|
copyrightPlaceholder(): string;
|
|
4646
4642
|
copyrightText: {
|
|
4647
4643
|
get(): string;
|
|
@@ -4693,7 +4689,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4693
4689
|
logoImageBase64Url?: string;
|
|
4694
4690
|
}): void;
|
|
4695
4691
|
onSelectColor(selectedColor: UpdateItemValuePayload<string>): void;
|
|
4696
|
-
onBackgroundOpacityChange(value: number | string): void;
|
|
4697
4692
|
onBackgroundEnable(enabled: UpdateItemValuePayload<boolean>): void;
|
|
4698
4693
|
onLogoVisibleChanged(showLogo: boolean): void;
|
|
4699
4694
|
onLogoVariationSelected(selectedLogoVariationIndex: number): void;
|
|
@@ -3,7 +3,6 @@ import { PAGE_SECTION_STYLE_OPTIONS } from '@brand-page-maker/models/page-sectio
|
|
|
3
3
|
import { PAGE_SECTIONS } from '../../models';
|
|
4
4
|
import { LOGO_SLIDER_DESKTOP_MAX, LOGO_SLIDER_DESKTOP_MIN, LOGO_SLIDER_MOBILE_MAX, LOGO_SLIDER_MOBILE_MIN, VIEWPORTS, getNavigationType, NAVIGATION_TYPE_DEFAULT_DISPLAY_TYPE, } from '@brand-page';
|
|
5
5
|
import { UI_DEVICE_MODES, UI_EVENT_SOURCES } from '../../../models';
|
|
6
|
-
import { isTransparentColour } from '@brand-page/utils/color.util';
|
|
7
6
|
import { useUiPageSettingsStore } from '../../store';
|
|
8
7
|
import { useUiNavigationStyleSettingsStore } from '../../../navigation-style-settings/store';
|
|
9
8
|
import { useUiStyleSettingsStore } from '../../../style-settings/store';
|
|
@@ -142,15 +141,6 @@ export default defineComponent({
|
|
|
142
141
|
return this.sections[this.sectionName][this.viewport]
|
|
143
142
|
.backgroundColorEnabled;
|
|
144
143
|
},
|
|
145
|
-
backgroundOpacity() {
|
|
146
|
-
// Real default: an un-constructed (JSON.parse'd) header never saw the constructor's default.
|
|
147
|
-
return (this.sections[this.sectionName][this.viewport].backgroundStyle
|
|
148
|
-
?.backgroundOpacity ?? 100);
|
|
149
|
-
},
|
|
150
|
-
showBackgroundOpacity() {
|
|
151
|
-
// isTransparentColour('') is false, so an unset color needs its own check.
|
|
152
|
-
return (!!this.backgroundColor && !isTransparentColour(this.backgroundColor));
|
|
153
|
-
},
|
|
154
144
|
copyrightPlaceholder() {
|
|
155
145
|
return commonTr(`copyrightTextPlaceholder`);
|
|
156
146
|
},
|
|
@@ -404,21 +394,6 @@ export default defineComponent({
|
|
|
404
394
|
viewport: this.viewport,
|
|
405
395
|
});
|
|
406
396
|
},
|
|
407
|
-
onBackgroundOpacityChange(value) {
|
|
408
|
-
// Clamped here: the Slider's text field can emit an out-of-range value mid-typing.
|
|
409
|
-
const clamped = Math.min(100, Math.max(0, Number(value) || 0));
|
|
410
|
-
// A variable, not an inline literal — backgroundOpacity isn't on BrandPageCssStyle.
|
|
411
|
-
const backgroundStyle = {
|
|
412
|
-
backgroundOpacity: clamped,
|
|
413
|
-
};
|
|
414
|
-
this.pageSettingsStore.setPageSettingsSectionValue({
|
|
415
|
-
sectionName: this.sectionName,
|
|
416
|
-
propName: 'backgroundStyle',
|
|
417
|
-
value: backgroundStyle,
|
|
418
|
-
merge: true,
|
|
419
|
-
viewport: this.viewport,
|
|
420
|
-
});
|
|
421
|
-
},
|
|
422
397
|
onBackgroundEnable(enabled) {
|
|
423
398
|
this.pageSettingsStore.setPageSettingsSectionValue({
|
|
424
399
|
sectionName: this.sectionName,
|
|
@@ -389,18 +389,6 @@ const minifyFooter = (footer, logoAssetKey) => {
|
|
|
389
389
|
: undefined,
|
|
390
390
|
};
|
|
391
391
|
};
|
|
392
|
-
// Fully opaque (100) is the default, so it's omitted to keep the AI payload small.
|
|
393
|
-
const minifyHeaderBackgroundStyle = (backgroundStyle) => {
|
|
394
|
-
const backgroundColor = backgroundStyle?.backgroundColor;
|
|
395
|
-
if (!backgroundColor)
|
|
396
|
-
return undefined;
|
|
397
|
-
const backgroundOpacity = backgroundStyle.backgroundOpacity;
|
|
398
|
-
return {
|
|
399
|
-
backgroundColor,
|
|
400
|
-
...(backgroundOpacity !== undefined &&
|
|
401
|
-
backgroundOpacity < 100 && { backgroundOpacity }),
|
|
402
|
-
};
|
|
403
|
-
};
|
|
404
392
|
const minifyHeader = (header, logoAssetKey) => {
|
|
405
393
|
if (!header)
|
|
406
394
|
return undefined;
|
|
@@ -411,7 +399,9 @@ const minifyHeader = (header, logoAssetKey) => {
|
|
|
411
399
|
logoImageHeight: header.logoImageHeight || undefined,
|
|
412
400
|
logoImageWidth: header.logoImageWidth || undefined,
|
|
413
401
|
...(logoAssetKey && { logoAssetKey }),
|
|
414
|
-
backgroundStyle:
|
|
402
|
+
backgroundStyle: header.backgroundStyle?.backgroundColor
|
|
403
|
+
? { backgroundColor: header.backgroundStyle.backgroundColor }
|
|
404
|
+
: undefined,
|
|
415
405
|
navigation: nav
|
|
416
406
|
? {
|
|
417
407
|
displayType: nav.displayType || undefined,
|
package/package.json
CHANGED
|
@@ -90,10 +90,6 @@ export type BackgroundStyle = Partial<
|
|
|
90
90
|
Omit<BrandPageCssStyle, 'backgroundColor'>
|
|
91
91
|
>;
|
|
92
92
|
|
|
93
|
-
export interface BackgroundColorStyle extends BrandPageCssStyle {
|
|
94
|
-
backgroundOpacity?: number;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
93
|
/**
|
|
98
94
|
* The complete default for a page's background media overlay. Seeded into
|
|
99
95
|
* metadata (constructor for new models, migration-20.5 for persisted partials) so
|
|
@@ -738,7 +734,7 @@ export abstract class AbstractPageHeaderStyles {
|
|
|
738
734
|
logoImage: LogoImageModel;
|
|
739
735
|
logoTemplateImage: LogoTemplateImageModel | undefined;
|
|
740
736
|
logoImageBase64Url?: string;
|
|
741
|
-
backgroundStyle:
|
|
737
|
+
backgroundStyle: BrandPageCssStyle;
|
|
742
738
|
style: BrandPageCssStyle;
|
|
743
739
|
viewport: ViewportsType;
|
|
744
740
|
|
|
@@ -775,10 +771,7 @@ export abstract class AbstractPageHeaderStyles {
|
|
|
775
771
|
this.logoVariation = options.logoVariation || 0;
|
|
776
772
|
|
|
777
773
|
this.style = options.style || {};
|
|
778
|
-
this.backgroundStyle = {
|
|
779
|
-
...(options.backgroundStyle || {}),
|
|
780
|
-
backgroundOpacity: options.backgroundStyle?.backgroundOpacity ?? 100,
|
|
781
|
-
};
|
|
774
|
+
this.backgroundStyle = options.backgroundStyle || {};
|
|
782
775
|
}
|
|
783
776
|
}
|
|
784
777
|
|
|
@@ -152,9 +152,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
152
152
|
"viewport": "mobile",
|
|
153
153
|
},
|
|
154
154
|
"pageHeaderDesktop": PageHeaderDesktop {
|
|
155
|
-
"backgroundStyle": {
|
|
156
|
-
"backgroundOpacity": 100,
|
|
157
|
-
},
|
|
155
|
+
"backgroundStyle": {},
|
|
158
156
|
"displayStyle": "desktop-tab-vertical-stack-centered-logo-centered-menu",
|
|
159
157
|
"isLogoOptional": false,
|
|
160
158
|
"isLogoVisible": true,
|
|
@@ -227,9 +225,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
|
|
|
227
225
|
"viewport": "desktop",
|
|
228
226
|
},
|
|
229
227
|
"pageHeaderMobile": PageHeaderMobile {
|
|
230
|
-
"backgroundStyle": {
|
|
231
|
-
"backgroundOpacity": 100,
|
|
232
|
-
},
|
|
228
|
+
"backgroundStyle": {},
|
|
233
229
|
"displayStyle": "mobile-tab-vertical-stack-centered-logo-centered-menu",
|
|
234
230
|
"isLogoOptional": false,
|
|
235
231
|
"isLogoVisible": true,
|
|
@@ -649,9 +645,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
649
645
|
"viewport": "mobile",
|
|
650
646
|
},
|
|
651
647
|
"pageHeaderDesktop": PageHeaderDesktop {
|
|
652
|
-
"backgroundStyle": {
|
|
653
|
-
"backgroundOpacity": 100,
|
|
654
|
-
},
|
|
648
|
+
"backgroundStyle": {},
|
|
655
649
|
"displayStyle": "desktop-tab-vertical-stack-centered-logo-centered-menu",
|
|
656
650
|
"isLogoOptional": false,
|
|
657
651
|
"isLogoVisible": true,
|
|
@@ -724,9 +718,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
724
718
|
"viewport": "desktop",
|
|
725
719
|
},
|
|
726
720
|
"pageHeaderMobile": PageHeaderMobile {
|
|
727
|
-
"backgroundStyle": {
|
|
728
|
-
"backgroundOpacity": 100,
|
|
729
|
-
},
|
|
721
|
+
"backgroundStyle": {},
|
|
730
722
|
"displayStyle": "mobile-tab-vertical-stack-centered-logo-centered-menu",
|
|
731
723
|
"isLogoOptional": false,
|
|
732
724
|
"isLogoVisible": true,
|
|
@@ -1130,9 +1122,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1130
1122
|
"viewport": "mobile",
|
|
1131
1123
|
},
|
|
1132
1124
|
"pageHeaderDesktop": PageHeaderDesktop {
|
|
1133
|
-
"backgroundStyle": {
|
|
1134
|
-
"backgroundOpacity": 100,
|
|
1135
|
-
},
|
|
1125
|
+
"backgroundStyle": {},
|
|
1136
1126
|
"displayStyle": "desktop-tab-vertical-stack-centered-logo-centered-menu",
|
|
1137
1127
|
"isLogoOptional": false,
|
|
1138
1128
|
"isLogoVisible": true,
|
|
@@ -1205,9 +1195,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
|
|
|
1205
1195
|
"viewport": "desktop",
|
|
1206
1196
|
},
|
|
1207
1197
|
"pageHeaderMobile": PageHeaderMobile {
|
|
1208
|
-
"backgroundStyle": {
|
|
1209
|
-
"backgroundOpacity": 100,
|
|
1210
|
-
},
|
|
1198
|
+
"backgroundStyle": {},
|
|
1211
1199
|
"displayStyle": "mobile-tab-vertical-stack-centered-logo-centered-menu",
|
|
1212
1200
|
"isLogoOptional": false,
|
|
1213
1201
|
"isLogoVisible": true,
|
|
@@ -137,9 +137,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
137
137
|
"viewport": "mobile",
|
|
138
138
|
},
|
|
139
139
|
"pageHeaderDesktop": PageHeaderDesktop {
|
|
140
|
-
"backgroundStyle": {
|
|
141
|
-
"backgroundOpacity": 100,
|
|
142
|
-
},
|
|
140
|
+
"backgroundStyle": {},
|
|
143
141
|
"displayStyle": "desktop-tab-vertical-stack-centered-logo-centered-menu",
|
|
144
142
|
"isLogoOptional": false,
|
|
145
143
|
"isLogoVisible": true,
|
|
@@ -213,9 +211,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
|
|
|
213
211
|
"viewport": "desktop",
|
|
214
212
|
},
|
|
215
213
|
"pageHeaderMobile": PageHeaderMobile {
|
|
216
|
-
"backgroundStyle": {
|
|
217
|
-
"backgroundOpacity": 100,
|
|
218
|
-
},
|
|
214
|
+
"backgroundStyle": {},
|
|
219
215
|
"displayStyle": "mobile-tab-vertical-stack-centered-logo-centered-menu",
|
|
220
216
|
"isLogoOptional": false,
|
|
221
217
|
"isLogoVisible": true,
|
|
@@ -136,9 +136,7 @@ BrandPageModel {
|
|
|
136
136
|
"viewport": "mobile",
|
|
137
137
|
},
|
|
138
138
|
"pageHeaderDesktop": PageHeaderDesktop {
|
|
139
|
-
"backgroundStyle": {
|
|
140
|
-
"backgroundOpacity": 100,
|
|
141
|
-
},
|
|
139
|
+
"backgroundStyle": {},
|
|
142
140
|
"displayStyle": "desktop-tab-vertical-stack-centered-logo-centered-menu",
|
|
143
141
|
"isLogoOptional": false,
|
|
144
142
|
"isLogoVisible": true,
|
|
@@ -212,9 +210,7 @@ BrandPageModel {
|
|
|
212
210
|
"viewport": "desktop",
|
|
213
211
|
},
|
|
214
212
|
"pageHeaderMobile": PageHeaderMobile {
|
|
215
|
-
"backgroundStyle": {
|
|
216
|
-
"backgroundOpacity": 100,
|
|
217
|
-
},
|
|
213
|
+
"backgroundStyle": {},
|
|
218
214
|
"displayStyle": "mobile-tab-vertical-stack-centered-logo-centered-menu",
|
|
219
215
|
"isLogoOptional": false,
|
|
220
216
|
"isLogoVisible": true,
|
|
@@ -597,9 +593,7 @@ BrandPageModel {
|
|
|
597
593
|
"viewport": "mobile",
|
|
598
594
|
},
|
|
599
595
|
"pageHeaderDesktop": PageHeaderDesktop {
|
|
600
|
-
"backgroundStyle": {
|
|
601
|
-
"backgroundOpacity": 100,
|
|
602
|
-
},
|
|
596
|
+
"backgroundStyle": {},
|
|
603
597
|
"displayStyle": "desktop-tab-vertical-stack-centered-logo-centered-menu",
|
|
604
598
|
"isLogoOptional": false,
|
|
605
599
|
"isLogoVisible": true,
|
|
@@ -673,9 +667,7 @@ BrandPageModel {
|
|
|
673
667
|
"viewport": "desktop",
|
|
674
668
|
},
|
|
675
669
|
"pageHeaderMobile": PageHeaderMobile {
|
|
676
|
-
"backgroundStyle": {
|
|
677
|
-
"backgroundOpacity": 100,
|
|
678
|
-
},
|
|
670
|
+
"backgroundStyle": {},
|
|
679
671
|
"displayStyle": "mobile-tab-vertical-stack-centered-logo-centered-menu",
|
|
680
672
|
"isLogoOptional": false,
|
|
681
673
|
"isLogoVisible": true,
|
|
@@ -6,13 +6,12 @@ import {
|
|
|
6
6
|
type ContactFormContent,
|
|
7
7
|
type ColorItem,
|
|
8
8
|
} from '../models';
|
|
9
|
-
import { BRAND_PAGE_TYPES,
|
|
9
|
+
import { BRAND_PAGE_TYPES, PageStyles } from '../models';
|
|
10
10
|
import {
|
|
11
11
|
mapToBannerSectionViewModel,
|
|
12
12
|
mapToContactFormViewModel,
|
|
13
13
|
mapToImageViewModel,
|
|
14
14
|
mapToMailingListViewModel,
|
|
15
|
-
mapToPageHeaderViewModel,
|
|
16
15
|
mapToProfileViewModel,
|
|
17
16
|
mapToTextViewModel,
|
|
18
17
|
mapToViewModel,
|
|
@@ -509,149 +508,6 @@ describe('view model util', () => {
|
|
|
509
508
|
expect(url.searchParams.has('w')).toBe(true);
|
|
510
509
|
expect(wParamValue).toBe('1080');
|
|
511
510
|
});
|
|
512
|
-
|
|
513
|
-
describe('mapToPageHeaderViewModel background opacity (BP-5851)', () => {
|
|
514
|
-
const mapHeader = (header: PageHeaderDesktop) =>
|
|
515
|
-
mapToPageHeaderViewModel(header, new PageStyles(), []);
|
|
516
|
-
|
|
517
|
-
test('constructing without an explicit backgroundOpacity defaults it to 100 and renders unchanged', () => {
|
|
518
|
-
const header = new PageHeaderDesktop({
|
|
519
|
-
backgroundStyle: { backgroundColor: '#ff0000' },
|
|
520
|
-
});
|
|
521
|
-
|
|
522
|
-
expect(header.backgroundStyle.backgroundOpacity).toBe(100);
|
|
523
|
-
|
|
524
|
-
const viewModel = mapHeader(header);
|
|
525
|
-
|
|
526
|
-
expect(viewModel.backgroundStyle).toEqual({ backgroundColor: '#ff0000' });
|
|
527
|
-
});
|
|
528
|
-
|
|
529
|
-
test('header constructed with no options still gets a concrete backgroundOpacity', () => {
|
|
530
|
-
expect(new PageHeaderDesktop().backgroundStyle.backgroundOpacity).toBe(
|
|
531
|
-
100,
|
|
532
|
-
);
|
|
533
|
-
});
|
|
534
|
-
|
|
535
|
-
test('un-constructed legacy header (parsed metadata that never ran the constructor) renders fully opaque', () => {
|
|
536
|
-
// The maker's live-preview path can hold the header JSON.parse'd verbatim.
|
|
537
|
-
const header = JSON.parse(
|
|
538
|
-
JSON.stringify(
|
|
539
|
-
new PageHeaderDesktop({
|
|
540
|
-
backgroundStyle: { backgroundColor: '#ff0000' },
|
|
541
|
-
}),
|
|
542
|
-
),
|
|
543
|
-
) as PageHeaderDesktop;
|
|
544
|
-
|
|
545
|
-
delete header.backgroundStyle.backgroundOpacity;
|
|
546
|
-
|
|
547
|
-
const viewModel = mapHeader(header);
|
|
548
|
-
|
|
549
|
-
expect(viewModel.backgroundStyle).toEqual({ backgroundColor: '#ff0000' });
|
|
550
|
-
});
|
|
551
|
-
|
|
552
|
-
test('a header with backgroundStyle itself absent renders fully opaque instead of throwing', () => {
|
|
553
|
-
const header = new PageHeaderDesktop();
|
|
554
|
-
|
|
555
|
-
delete (header as { backgroundStyle?: unknown }).backgroundStyle;
|
|
556
|
-
|
|
557
|
-
expect(() => mapHeader(header)).not.toThrow();
|
|
558
|
-
expect(mapHeader(header).backgroundStyle).toEqual({});
|
|
559
|
-
});
|
|
560
|
-
|
|
561
|
-
test('opacity 100 (default) leaves backgroundColor unchanged', () => {
|
|
562
|
-
const header = new PageHeaderDesktop({
|
|
563
|
-
backgroundStyle: { backgroundColor: '#ff0000', backgroundOpacity: 100 },
|
|
564
|
-
});
|
|
565
|
-
|
|
566
|
-
const viewModel = mapHeader(header);
|
|
567
|
-
|
|
568
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBe('#ff0000');
|
|
569
|
-
});
|
|
570
|
-
|
|
571
|
-
test('opacity 60 composites into the expected 8-digit hex backgroundColor', () => {
|
|
572
|
-
const header = new PageHeaderDesktop({
|
|
573
|
-
backgroundStyle: { backgroundColor: '#ff0000', backgroundOpacity: 60 },
|
|
574
|
-
});
|
|
575
|
-
|
|
576
|
-
const viewModel = mapHeader(header);
|
|
577
|
-
|
|
578
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBe('#ff000099');
|
|
579
|
-
});
|
|
580
|
-
|
|
581
|
-
test('opacity below 100 composites into an 8-digit hex backgroundColor', () => {
|
|
582
|
-
const header = new PageHeaderDesktop({
|
|
583
|
-
backgroundStyle: { backgroundColor: '#ff0000', backgroundOpacity: 50 },
|
|
584
|
-
});
|
|
585
|
-
|
|
586
|
-
const viewModel = mapHeader(header);
|
|
587
|
-
|
|
588
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBe('#ff000080');
|
|
589
|
-
});
|
|
590
|
-
|
|
591
|
-
test('opacity 0 composites to the transparent keyword', () => {
|
|
592
|
-
const header = new PageHeaderDesktop({
|
|
593
|
-
backgroundStyle: { backgroundColor: '#ff0000', backgroundOpacity: 0 },
|
|
594
|
-
});
|
|
595
|
-
|
|
596
|
-
const viewModel = mapHeader(header);
|
|
597
|
-
|
|
598
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBe('transparent');
|
|
599
|
-
});
|
|
600
|
-
|
|
601
|
-
test('a palette-matched (var(--palette-n)) backgroundColor is faded via color-mix, not handed back unfaded', () => {
|
|
602
|
-
const header = new PageHeaderDesktop({
|
|
603
|
-
backgroundStyle: {
|
|
604
|
-
backgroundColor: 'var(--palette-1)',
|
|
605
|
-
backgroundOpacity: 30,
|
|
606
|
-
},
|
|
607
|
-
});
|
|
608
|
-
|
|
609
|
-
const viewModel = mapHeader(header);
|
|
610
|
-
|
|
611
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBe(
|
|
612
|
-
'color-mix(in srgb, var(--palette-1) 30%, transparent)',
|
|
613
|
-
);
|
|
614
|
-
});
|
|
615
|
-
|
|
616
|
-
test('transparent backgroundColor is left unchanged regardless of opacity', () => {
|
|
617
|
-
const header = new PageHeaderDesktop({
|
|
618
|
-
backgroundStyle: {
|
|
619
|
-
backgroundColor: 'transparent',
|
|
620
|
-
backgroundOpacity: 40,
|
|
621
|
-
},
|
|
622
|
-
});
|
|
623
|
-
|
|
624
|
-
const viewModel = mapHeader(header);
|
|
625
|
-
|
|
626
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBe('transparent');
|
|
627
|
-
});
|
|
628
|
-
|
|
629
|
-
test('unset backgroundColor is left unchanged regardless of opacity', () => {
|
|
630
|
-
const header = new PageHeaderDesktop({
|
|
631
|
-
backgroundStyle: { backgroundOpacity: 40 },
|
|
632
|
-
});
|
|
633
|
-
|
|
634
|
-
const viewModel = mapHeader(header);
|
|
635
|
-
|
|
636
|
-
expect(viewModel.backgroundStyle.backgroundColor).toBeUndefined();
|
|
637
|
-
});
|
|
638
|
-
|
|
639
|
-
test.each([100, 30])(
|
|
640
|
-
'backgroundOpacity %i never leaks into the rendered style, and CSS opacity is never set (children must stay opaque)',
|
|
641
|
-
(backgroundOpacity) => {
|
|
642
|
-
const header = new PageHeaderDesktop({
|
|
643
|
-
backgroundStyle: { backgroundColor: '#ff0000', backgroundOpacity },
|
|
644
|
-
});
|
|
645
|
-
|
|
646
|
-
const viewModel = mapHeader(header);
|
|
647
|
-
|
|
648
|
-
expect(viewModel.backgroundStyle).not.toHaveProperty(
|
|
649
|
-
'backgroundOpacity',
|
|
650
|
-
);
|
|
651
|
-
expect(viewModel.backgroundStyle.opacity).toBeUndefined();
|
|
652
|
-
},
|
|
653
|
-
);
|
|
654
|
-
});
|
|
655
511
|
});
|
|
656
512
|
|
|
657
513
|
// The reCAPTCHA footnote colour is a raw colour anchored to the surface it sits on.
|
|
@@ -88,10 +88,9 @@ import type {
|
|
|
88
88
|
NavItemViewModel,
|
|
89
89
|
} from '../view-models';
|
|
90
90
|
import {
|
|
91
|
-
backgroundColorFromStyle,
|
|
92
91
|
isTransparentColour,
|
|
93
92
|
mutedTextForBackground,
|
|
94
|
-
|
|
93
|
+
backgroundColorFromStyle,
|
|
95
94
|
} from './color.util';
|
|
96
95
|
import { resolveColorReference } from './color-palette.util';
|
|
97
96
|
import {
|
|
@@ -1282,31 +1281,7 @@ export const mapToPageHeaderViewModel = (
|
|
|
1282
1281
|
hamburgerMenuStyle,
|
|
1283
1282
|
}),
|
|
1284
1283
|
style: pageHeader.style,
|
|
1285
|
-
backgroundStyle:
|
|
1286
|
-
};
|
|
1287
|
-
};
|
|
1288
|
-
|
|
1289
|
-
// Folds backgroundOpacity into backgroundColor's alpha so only the container's paint fades, not its children.
|
|
1290
|
-
const getHeaderBackgroundStyleWithOpacity = (
|
|
1291
|
-
pageHeader: PageHeaderDesktop | PageHeaderMobile,
|
|
1292
|
-
): BrandPageCssStyle => {
|
|
1293
|
-
// Real defaults: an un-constructed maker header, or metadata older than migration-11's backfill, can lack these entirely.
|
|
1294
|
-
const { backgroundOpacity = 100, ...backgroundStyle } =
|
|
1295
|
-
pageHeader.backgroundStyle ?? {};
|
|
1296
|
-
const { backgroundColor } = backgroundStyle;
|
|
1297
|
-
|
|
1298
|
-
if (
|
|
1299
|
-
backgroundOpacity >= 100 ||
|
|
1300
|
-
!backgroundColor ||
|
|
1301
|
-
isTransparentColour(backgroundColor)
|
|
1302
|
-
) {
|
|
1303
|
-
return backgroundStyle;
|
|
1304
|
-
}
|
|
1305
|
-
|
|
1306
|
-
// withColorOpacity, not setRgbAlpha: fades a var(--palette-n) reference too.
|
|
1307
|
-
return {
|
|
1308
|
-
...backgroundStyle,
|
|
1309
|
-
backgroundColor: withColorOpacity(backgroundColor, backgroundOpacity / 100),
|
|
1284
|
+
backgroundStyle: pageHeader.backgroundStyle,
|
|
1310
1285
|
};
|
|
1311
1286
|
};
|
|
1312
1287
|
|
|
@@ -259,11 +259,9 @@ export interface PageHeaderViewModel extends Omit<
|
|
|
259
259
|
| 'logoTemplateImage'
|
|
260
260
|
| 'logoImageHeight'
|
|
261
261
|
| 'logoImageWidth'
|
|
262
|
-
| 'backgroundStyle'
|
|
263
262
|
> {
|
|
264
263
|
logo: LogoViewModel;
|
|
265
264
|
pages: PageViewModel[];
|
|
266
|
-
backgroundStyle: BrandPageCssStyle;
|
|
267
265
|
}
|
|
268
266
|
|
|
269
267
|
export interface PageFooterViewModel extends Omit<
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Kopfzeilen-Einstellungen",
|
|
1842
1842
|
"navigationSectionTitle": "Navigation",
|
|
1843
1843
|
"headerSectionTitle": "Header",
|
|
1844
|
-
"backgroundOpacity": "Hintergrunddeckkraft",
|
|
1845
1844
|
"buttonSectionTitle": "Schaltfläche",
|
|
1846
1845
|
"footerSettings": "Fußzeilen-Einstellungen",
|
|
1847
1846
|
"managePages": "Seiten verwalten",
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Configuración del encabezado",
|
|
1842
1842
|
"navigationSectionTitle": "Navegación",
|
|
1843
1843
|
"headerSectionTitle": "Encabezado",
|
|
1844
|
-
"backgroundOpacity": "Opacidad del fondo",
|
|
1845
1844
|
"buttonSectionTitle": "Botón",
|
|
1846
1845
|
"footerSettings": "Configuración del pie de página",
|
|
1847
1846
|
"managePages": "Gestionar páginas",
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Paramètres d'en-tête",
|
|
1842
1842
|
"navigationSectionTitle": "Navigation",
|
|
1843
1843
|
"headerSectionTitle": "En-tête",
|
|
1844
|
-
"backgroundOpacity": "Opacité de l'arrière-plan",
|
|
1845
1844
|
"buttonSectionTitle": "Bouton",
|
|
1846
1845
|
"footerSettings": "Paramètres de pied de page",
|
|
1847
1846
|
"managePages": "Gérer les pages",
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Paramètres d'en-tête",
|
|
1842
1842
|
"navigationSectionTitle": "Navigation",
|
|
1843
1843
|
"headerSectionTitle": "En-tête",
|
|
1844
|
-
"backgroundOpacity": "Opacité de l'arrière-plan",
|
|
1845
1844
|
"buttonSectionTitle": "Bouton",
|
|
1846
1845
|
"footerSettings": "Paramètres de pied de page",
|
|
1847
1846
|
"managePages": "Gérer les pages",
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Header Settings",
|
|
1842
1842
|
"navigationSectionTitle": "Navigation",
|
|
1843
1843
|
"headerSectionTitle": "Header",
|
|
1844
|
-
"backgroundOpacity": "Background opacity",
|
|
1845
1844
|
"buttonSectionTitle": "Button",
|
|
1846
1845
|
"footerSettings": "Footer Settings",
|
|
1847
1846
|
"managePages": "Manage Pages",
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Configurações do cabeçalho",
|
|
1842
1842
|
"navigationSectionTitle": "Navegação",
|
|
1843
1843
|
"headerSectionTitle": "Cabeçalho",
|
|
1844
|
-
"backgroundOpacity": "Opacidade do plano de fundo",
|
|
1845
1844
|
"buttonSectionTitle": "Botão",
|
|
1846
1845
|
"footerSettings": "Definições de rodapé",
|
|
1847
1846
|
"managePages": "Gerenciar páginas",
|
|
@@ -1841,7 +1841,6 @@
|
|
|
1841
1841
|
"headerSettings": "Definições de cabeçalho",
|
|
1842
1842
|
"navigationSectionTitle": "Navegação",
|
|
1843
1843
|
"headerSectionTitle": "Cabeçalho",
|
|
1844
|
-
"backgroundOpacity": "Opacidade do fundo",
|
|
1845
1844
|
"buttonSectionTitle": "Botão",
|
|
1846
1845
|
"footerSettings": "Definições de rodapé",
|
|
1847
1846
|
"managePages": "Gerir páginas",
|
|
@@ -95,22 +95,6 @@
|
|
|
95
95
|
:toggle-unique-id="sectionName"
|
|
96
96
|
@update:model-value="onSelectColor"
|
|
97
97
|
/>
|
|
98
|
-
<div
|
|
99
|
-
v-if="showBackgroundOpacity"
|
|
100
|
-
data-test-header-background-opacity
|
|
101
|
-
class="tw-mt-4"
|
|
102
|
-
>
|
|
103
|
-
<span class="header-settings-panel_option-title">
|
|
104
|
-
{{ pageSettingsTr('backgroundOpacity') }}
|
|
105
|
-
</span>
|
|
106
|
-
<Slider
|
|
107
|
-
:model-value="backgroundOpacity"
|
|
108
|
-
:min="0"
|
|
109
|
-
:max="100"
|
|
110
|
-
suffix="%"
|
|
111
|
-
@update:model-value="onBackgroundOpacityChange"
|
|
112
|
-
/>
|
|
113
|
-
</div>
|
|
114
98
|
</CollapsiblePanel>
|
|
115
99
|
|
|
116
100
|
<CollapsiblePanel
|
|
@@ -160,7 +144,6 @@
|
|
|
160
144
|
import {
|
|
161
145
|
CollapsiblePanel,
|
|
162
146
|
HelloBar,
|
|
163
|
-
Slider,
|
|
164
147
|
TabMenu,
|
|
165
148
|
Toggle,
|
|
166
149
|
} from '@designcrowd/fe-shared-lib';
|
|
@@ -180,7 +163,6 @@ export default {
|
|
|
180
163
|
CollapsiblePanel,
|
|
181
164
|
ColorField,
|
|
182
165
|
HelloBar,
|
|
183
|
-
Slider,
|
|
184
166
|
TabMenu,
|
|
185
167
|
Toggle,
|
|
186
168
|
HeaderDisplayStyle,
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"headerSettings": "Kopfzeilen-Einstellungen",
|
|
4
4
|
"navigationSectionTitle": "Navigation",
|
|
5
5
|
"headerSectionTitle": "Header",
|
|
6
|
-
"backgroundOpacity": "Hintergrunddeckkraft",
|
|
7
6
|
"buttonSectionTitle": "Schaltfläche",
|
|
8
7
|
"footerSettings": "Fußzeilen-Einstellungen",
|
|
9
8
|
"managePages": "Seiten verwalten",
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"headerSettings": "Configuración del encabezado",
|
|
4
4
|
"navigationSectionTitle": "Navegación",
|
|
5
5
|
"headerSectionTitle": "Encabezado",
|
|
6
|
-
"backgroundOpacity": "Opacidad del fondo",
|
|
7
6
|
"buttonSectionTitle": "Botón",
|
|
8
7
|
"footerSettings": "Configuración del pie de página",
|
|
9
8
|
"managePages": "Gestionar páginas",
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"headerSettings": "Paramètres d'en-tête",
|
|
4
4
|
"navigationSectionTitle": "Navigation",
|
|
5
5
|
"headerSectionTitle": "En-tête",
|
|
6
|
-
"backgroundOpacity": "Opacité de l'arrière-plan",
|
|
7
6
|
"buttonSectionTitle": "Bouton",
|
|
8
7
|
"footerSettings": "Paramètres de pied de page",
|
|
9
8
|
"managePages": "Gérer les pages",
|