@designcrowd/library.brand-page 5.18.4 → 5.18.5
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-ciKpCAd9.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-CvEhlADd.js → CreatedOnBrandCrowd-en-us-CZbTS1AZ.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-pYQeTTC0.js → CreatedOnBrandCrowd-es-es-C8MExng5.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-CcE-iCEq.js → CreatedOnBrandCrowd-fr-ca-CO0L9NK2.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-CcE-iCEq.js → CreatedOnBrandCrowd-fr-fr-CO0L9NK2.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-OyhWWWyO.js → CreatedOnBrandCrowd-pt-br-zVDvBF2H.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-OyhWWWyO.js → CreatedOnBrandCrowd-pt-pt-zVDvBF2H.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-DH98FFLS.js → CreatedOnDcom-de-de-WrUSQdjf.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-DK67NN1r.js → CreatedOnDcom-en-us-BqC9YtkL.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-9-QU4BU6.js → CreatedOnDcom-es-es-BzH32Oya.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-U9J9H9VB.js → CreatedOnDcom-fr-ca-D7TYfCW0.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-DqdzB1DJ.js → CreatedOnDcom-fr-fr-DVlyfBtb.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-c4UiWtkB.js → CreatedOnDcom-pt-br-CSRB91ey.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-Do2qJsYp.js → CreatedOnDcom-pt-pt-9KMj5gpc.js} +1 -1
- 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/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.util.js +7 -0
- package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +8 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +1 -0
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +87 -2
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +5 -0
- package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +3 -0
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.js +11 -0
- package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +7 -2
- package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +9 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +20 -1
- package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +20 -0
- package/lib/src/brand-page-maker/composables/useEventTracker.js +17 -0
- package/lib/src/brand-page-maker/composables/useUndoRedoFlag.d.ts +17 -0
- package/lib/src/brand-page-maker/composables/useUndoRedoFlag.js +25 -0
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +41 -2
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +308 -14
- package/lib/src/brand-page-maker/stores/history/history-store.d.ts +83 -0
- package/lib/src/brand-page-maker/stores/history/history-store.js +495 -0
- package/lib/src/brand-page-maker/stores/logo-store/logo-store.d.ts +1 -0
- package/lib/src/brand-page-maker/stores/user/user-store.js +1 -0
- package/lib/src/bundled-translations-D1q3rSEz.js +175 -0
- package/lib/src/bundled-translations.de-DE-BxqLLwbh.js +175 -0
- package/lib/src/bundled-translations.es-ES-uh249NlJ.js +175 -0
- package/lib/src/bundled-translations.fr-CA-BEQmv2fX.js +175 -0
- package/lib/src/bundled-translations.fr-FR-BnNuCojH.js +175 -0
- package/lib/src/bundled-translations.pt-BR-CJUOxVlq.js +175 -0
- package/lib/src/bundled-translations.pt-PT-Ds9cMEqK.js +175 -0
- package/lib/src/bundles/bundled-translations.de-DE.json +3 -1
- package/lib/src/bundles/bundled-translations.es-ES.json +3 -1
- package/lib/src/bundles/bundled-translations.fr-CA.json +3 -1
- package/lib/src/bundles/bundled-translations.fr-FR.json +3 -1
- package/lib/src/bundles/bundled-translations.json +3 -1
- package/lib/src/bundles/bundled-translations.pt-BR.json +3 -1
- package/lib/src/bundles/bundled-translations.pt-PT.json +3 -1
- package/lib/src/constants/ui.d.ts +1 -0
- package/lib/src/css/library.brand-page-brandCrowd.min.css +77 -82
- package/lib/src/css/library.brand-page-brandPage.min.css +77 -83
- package/lib/src/css/library.brand-page-designCom.min.css +77 -82
- package/lib/src/css/library.brand-page-preview.min.css +77 -82
- package/lib/src/index.mjs +62 -60
- package/lib/src/{lib-BI3J4Mbk.js → lib-BXbo_N88.js} +35072 -34447
- package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +13 -0
- package/lib/src/metadata-builder/builders/reorder-pages-builder.js +49 -0
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +87 -2
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +5 -0
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.stories.js +1 -0
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +23 -2
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +16 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +7 -2
- package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.d.ts +3 -0
- package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.js +19 -2
- package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.js +18 -8
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +64 -0
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +6 -0
- package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +19 -0
- package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +11 -0
- package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +10 -2
- package/lib/src/shared/logo-settings/store/editable-logo-store.d.ts +5 -1
- package/lib/src/shared/logo-settings/store/editable-logo-store.js +31 -0
- package/lib/src/shared/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 +24 -2
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +10 -2
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +23 -2
- package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +16 -0
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +23 -2
- package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +16 -0
- package/package.json +1 -1
- package/src/brand-page/components/button/Button.vue +2 -10
- package/src/brand-page/components/contact-form/ContactForm.vue +2 -2
- package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.vue +4 -1
- package/src/brand-page/models/navigation-styles.model.ts +39 -1
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -3
- 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.util.ts +8 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +9 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.vue +2 -3
- package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +1 -0
- package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +5 -0
- package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +9 -7
- package/src/brand-page-maker/components/cookie-collection/CookieSettings.vue +18 -17
- package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.ts +13 -0
- package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.vue +26 -3
- package/src/brand-page-maker/components/quick-link-bar/RedoButton.vue +66 -0
- package/src/brand-page-maker/components/quick-link-bar/UndoButton.vue +66 -0
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.de-DE.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.es-ES.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-CA.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-FR.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.json +3 -1
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-BR.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-PT.json +6 -4
- package/src/brand-page-maker/components/quick-link-bar/undo-redo-buttons.test.ts +116 -0
- package/src/brand-page-maker/components/save-contact/SaveContact.vue +12 -19
- package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +10 -0
- package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +24 -1
- package/src/brand-page-maker/composables/useEventTracker.ts +29 -0
- package/src/brand-page-maker/composables/useUndoRedoFlag.ts +30 -0
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +377 -0
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +371 -18
- package/src/brand-page-maker/stores/history/history-store.test.ts +1120 -0
- package/src/brand-page-maker/stores/history/history-store.ts +660 -0
- package/src/brand-page-maker/stores/logo-store/logo-store.ts +5 -0
- package/src/brand-page-maker/stores/user/user-store.ts +1 -0
- package/src/bundles/bundled-translations.de-DE.json +3 -1
- package/src/bundles/bundled-translations.es-ES.json +3 -1
- package/src/bundles/bundled-translations.fr-CA.json +3 -1
- package/src/bundles/bundled-translations.fr-FR.json +3 -1
- package/src/bundles/bundled-translations.json +3 -1
- package/src/bundles/bundled-translations.pt-BR.json +3 -1
- package/src/bundles/bundled-translations.pt-PT.json +3 -1
- package/src/constants/ui.ts +1 -0
- package/src/metadata-builder/builders/reorder-pages-builder.ts +80 -0
- package/src/shared/content-settings/components/color-field/ColorField.vue +10 -5
- package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +5 -0
- package/src/shared/content-settings/components/content-settings/ContentSettings.stories.ts +1 -0
- package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.ts +19 -2
- package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.vue +1 -1
- package/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.ts +26 -10
- package/src/shared/content-settings/components/logo-selection-field/LogoSelection.vue +63 -48
- package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +4 -0
- package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +7 -0
- package/src/shared/content-settings/components/text-field/TextField.vue +1 -0
- package/src/shared/content-settings/components/text-image-field/TextImageField.vue +33 -4
- package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +11 -0
- package/src/shared/logo-settings/store/editable-logo-store.ts +42 -1
- package/src/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/lib/src/bundled-translations-B5Fkt3qd.js +0 -175
- package/lib/src/bundled-translations.de-DE-DpdVePM9.js +0 -175
- package/lib/src/bundled-translations.es-ES-BsIcrzZF.js +0 -175
- package/lib/src/bundled-translations.fr-CA-G1XCp2Qh.js +0 -175
- package/lib/src/bundled-translations.fr-FR-BdwLXOnB.js +0 -175
- package/lib/src/bundled-translations.pt-BR-Bvn5ePe7.js +0 -175
- package/lib/src/bundled-translations.pt-PT-CDtkb2k1.js +0 -175
|
@@ -8,6 +8,13 @@ export declare class NavigationMenuStyles {
|
|
|
8
8
|
subNavBackgroundColor?: string;
|
|
9
9
|
constructor(options: Partial<NavigationMenuStyles>, defaultOptions: Partial<NavigationMenuStyles>);
|
|
10
10
|
}
|
|
11
|
+
export declare const getDefaultSubNavBackgroundColor: (defaultTextColor: string | undefined) => string | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* The hamburger sub nav background colour is auto color-matched only when the
|
|
14
|
+
* user has not deliberately set it - i.e. it has no value or is transparent.
|
|
15
|
+
* Any explicit colour (a hex) or an already color-matched key is preserved.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isUnsetOrTransparentColor: (color: string | undefined | null) => boolean;
|
|
11
18
|
type NavigationStylesOptionType = Partial<Omit<NavigationDesktop | NavigationMobile, 'hamburgerMenuStyle'>> & {
|
|
12
19
|
hamburgerMenuStyle?: Partial<NavigationMenuStyles>;
|
|
13
20
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_FONT_FAMILY_KEY, DEFAULT_FONT_STYLE, DEFAULT_TEXT_ALIGN, DEFAULT_TEXT_DECORATION, FONT_FAMILY_CONFIGS, FONT_SIZE_BODY, FONT_WEIGHT_NORMAL, defaultHamburgerNavigation, NAVIGATION_DISPLAY, } from '../constants';
|
|
1
|
+
import { DEFAULT_FONT_FAMILY_KEY, DEFAULT_FONT_STYLE, DEFAULT_TEXT_ALIGN, DEFAULT_TEXT_DECORATION, FONT_FAMILY_CONFIGS, FONT_SIZE_BODY, FONT_WEIGHT_NORMAL, STYLE_THEME_KEYS, defaultHamburgerNavigation, NAVIGATION_DISPLAY, } from '../constants';
|
|
2
2
|
import { VIEWPORTS } from './index';
|
|
3
3
|
import { TEXT_STYLE_TYPES } from './index';
|
|
4
4
|
import cloneDeep from 'lodash.clonedeep';
|
|
@@ -15,6 +15,29 @@ export class NavigationMenuStyles {
|
|
|
15
15
|
options.subNavBackgroundColor ?? defaultOptions.subNavBackgroundColor;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
export const getDefaultSubNavBackgroundColor = (defaultTextColor) => {
|
|
19
|
+
if (defaultTextColor === STYLE_THEME_KEYS.LogoTextColor ||
|
|
20
|
+
defaultTextColor === STYLE_THEME_KEYS.LogoTextMultiColor) {
|
|
21
|
+
return STYLE_THEME_KEYS.LogoBackgroundColor;
|
|
22
|
+
}
|
|
23
|
+
if (defaultTextColor === STYLE_THEME_KEYS.LogoBackgroundColor ||
|
|
24
|
+
defaultTextColor === STYLE_THEME_KEYS.LogoBackgroundMultiColor) {
|
|
25
|
+
return STYLE_THEME_KEYS.LogoTextColor;
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The hamburger sub nav background colour is auto color-matched only when the
|
|
31
|
+
* user has not deliberately set it - i.e. it has no value or is transparent.
|
|
32
|
+
* Any explicit colour (a hex) or an already color-matched key is preserved.
|
|
33
|
+
*/
|
|
34
|
+
export const isUnsetOrTransparentColor = (color) => {
|
|
35
|
+
if (color == null) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
const normalised = color.trim().toLowerCase();
|
|
39
|
+
return normalised === '' || normalised === 'transparent';
|
|
40
|
+
};
|
|
18
41
|
class NavigationStyles {
|
|
19
42
|
displayType;
|
|
20
43
|
renderAfterLogo;
|
|
@@ -79,7 +102,7 @@ class NavigationStyles {
|
|
|
79
102
|
color: theme?.secondaryColor,
|
|
80
103
|
backgroundColor: theme?.primaryColor,
|
|
81
104
|
},
|
|
82
|
-
|
|
105
|
+
// No sub nav default: a hex here defeats migration-16's colour match.
|
|
83
106
|
});
|
|
84
107
|
}
|
|
85
108
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { getDefaultSubNavBackgroundColor, isUnsetOrTransparentColor, } from '../../models';
|
|
2
|
+
/**
|
|
3
|
+
* Migration 16: default the sub nav background colour to "colour matched" (the opposite
|
|
4
|
+
* logo colour) when the menu font is itself colour matched and the sub nav has no
|
|
5
|
+
* deliberate value. The default is applied ONCE, when content is first materialised — a
|
|
6
|
+
* template load, the create-draft flow, or the admin maker (isUserDraft === false). An
|
|
7
|
+
* existing user draft already carries its resolved value (including a deliberate
|
|
8
|
+
* transparent/explicit choice), so it is left untouched.
|
|
9
|
+
*/
|
|
10
|
+
// Hamburger keeps its styles on hamburgerMenuStyle; every other nav type uses the
|
|
11
|
+
// top-level navigation styles. (This only locates the styles - the rule itself is uniform.)
|
|
12
|
+
const isHamburger = (displayType) => displayType.includes('hamburger');
|
|
13
|
+
const applyDefaultSubNavColorMatch = (navigation) => {
|
|
14
|
+
if (!navigation?.displayType) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
let menuStyles;
|
|
18
|
+
if (isHamburger(navigation.displayType)) {
|
|
19
|
+
navigation.hamburgerMenuStyle =
|
|
20
|
+
navigation.hamburgerMenuStyle ?? {};
|
|
21
|
+
menuStyles = navigation.hamburgerMenuStyle;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
menuStyles = navigation;
|
|
25
|
+
}
|
|
26
|
+
// Leave a deliberately-set colour (an explicit hex or an already colour-matched key).
|
|
27
|
+
if (!isUnsetOrTransparentColor(menuStyles.subNavBackgroundColor)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// Only when the menu font is itself colour matched: take the opposite logo colour
|
|
31
|
+
// (the helper returns undefined when the font is not colour matched).
|
|
32
|
+
const colorMatchedSubNav = getDefaultSubNavBackgroundColor(menuStyles.defaultButtonStyle?.color);
|
|
33
|
+
if (colorMatchedSubNav) {
|
|
34
|
+
menuStyles.subNavBackgroundColor = colorMatchedSubNav;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const migration16 = async (migrationResult, options) => {
|
|
38
|
+
// Skip user drafts (isUserDraft === true) — they already have their value. Only
|
|
39
|
+
// templates (isUserDraft === false) get the sub nav default.
|
|
40
|
+
if (options.isUserDraft) {
|
|
41
|
+
return migrationResult;
|
|
42
|
+
}
|
|
43
|
+
const { brandPageModel } = migrationResult;
|
|
44
|
+
applyDefaultSubNavColorMatch(brandPageModel.pageHeaderDesktop?.navigation);
|
|
45
|
+
applyDefaultSubNavColorMatch(brandPageModel.pageHeaderMobile?.navigation);
|
|
46
|
+
return migrationResult;
|
|
47
|
+
};
|
|
@@ -18,6 +18,7 @@ import { migration12_1 } from './migration/migration-12_1';
|
|
|
18
18
|
import { migration13 } from './migration/migration-13';
|
|
19
19
|
import { migration14 } from './migration/migration-14';
|
|
20
20
|
import { migration15 } from './migration/migration-15';
|
|
21
|
+
import { migration16 } from './migration/migration-16';
|
|
21
22
|
const MIGRATION_TABLE = [
|
|
22
23
|
{
|
|
23
24
|
version: 1,
|
|
@@ -115,6 +116,12 @@ const MIGRATION_TABLE = [
|
|
|
115
116
|
migrateFn: migration15,
|
|
116
117
|
description: 'Adding default mediaOverlayStyle to background styles',
|
|
117
118
|
},
|
|
119
|
+
{
|
|
120
|
+
version: 16,
|
|
121
|
+
migrateFn: migration16,
|
|
122
|
+
runAlways: true,
|
|
123
|
+
description: 'Default sub nav background color to color match on for TAB_2 and hamburger navs depending on font color only on first load flow',
|
|
124
|
+
},
|
|
118
125
|
];
|
|
119
126
|
export const GetLatestModelVersion = () => Math.max(...MIGRATION_TABLE.map((x) => x.version));
|
|
120
127
|
export const migrateBrandPageModel = async (brandPageModel, options) => {
|
|
@@ -107,16 +107,21 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
107
107
|
hideChangeTemplateConfirmModal(): void;
|
|
108
108
|
onBackgroundChanged(): void;
|
|
109
109
|
onChangeTemplateConfirmModalCancel(): void;
|
|
110
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
110
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
111
111
|
onContentChanged(): void;
|
|
112
112
|
onStyleChanged(): void;
|
|
113
|
-
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void
|
|
113
|
+
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
|
|
114
114
|
setSelectedTabName(payload: any): void;
|
|
115
115
|
showNextNotificationMessage(): Promise<void>;
|
|
116
116
|
updateContent<TContent extends import("@brand-page/models").Content, P extends {
|
|
117
117
|
id: string;
|
|
118
118
|
content: TContent;
|
|
119
119
|
}>(payload: P): Promise<void>;
|
|
120
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
121
|
+
applyHistorySnapshot(snapshot: import("@brand-page/models").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
122
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("@brand-page/models").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
123
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
124
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page/models").BrandPageModel): void;
|
|
120
125
|
export(): import("@brand-page/models").BrandPageModel;
|
|
121
126
|
setBrandPageType({ brandPageType }: {
|
|
122
127
|
brandPageType: "default" | "brandSite" | "brandContact";
|
|
@@ -152,16 +152,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
152
152
|
hideChangeTemplateConfirmModal(): void;
|
|
153
153
|
onBackgroundChanged(): void;
|
|
154
154
|
onChangeTemplateConfirmModalCancel(): void;
|
|
155
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
155
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
156
156
|
onContentChanged(): void;
|
|
157
157
|
onStyleChanged(): void;
|
|
158
|
-
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void
|
|
158
|
+
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
|
|
159
159
|
setSelectedTabName(payload: any): void;
|
|
160
160
|
showNextNotificationMessage(): Promise<void>;
|
|
161
161
|
updateContent<TContent extends import("@brand-page").Content, P extends {
|
|
162
162
|
id: string;
|
|
163
163
|
content: TContent;
|
|
164
164
|
}>(payload: P): Promise<void>;
|
|
165
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
166
|
+
applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
167
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
168
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
169
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
|
|
165
170
|
export(): import("@brand-page").BrandPageModel;
|
|
166
171
|
setBrandPageType({ brandPageType }: {
|
|
167
172
|
brandPageType: "default" | "brandSite" | "brandContact";
|
|
@@ -11,6 +11,8 @@ import { navigateToPageByPageId } from '../../routing';
|
|
|
11
11
|
import { useBrandPageContainerStore } from '@brand-page-maker/stores';
|
|
12
12
|
import { UI_DEVICE_MODES, UI_SCREENSIZE_MODES, } from '@shared/models';
|
|
13
13
|
import { useBrandPageMakerStore, useBrandPageMakerUserStore, useLocalisedRouteStore, useUiStore, useSnapshotStore, useVideoStore, } from '@brand-page-maker/stores';
|
|
14
|
+
import { useHistoryStore } from '@brand-page-maker/stores/history/history-store';
|
|
15
|
+
import { useUndoRedoFlag } from '@brand-page-maker/composables/useUndoRedoFlag';
|
|
14
16
|
import { useUiContentSettingsStore } from '@shared/content-settings/store';
|
|
15
17
|
import { useUiTemplateSettingsStore } from '@shared/template-settings/store';
|
|
16
18
|
import { useUiPageSettingsStore } from '@shared/page-settings/store';
|
|
@@ -189,6 +191,12 @@ export default defineComponent({
|
|
|
189
191
|
}
|
|
190
192
|
// Mark brand page as fully loaded
|
|
191
193
|
this.brandPageMakerStore.setIsBrandPageLoaded(true);
|
|
194
|
+
// Capture baseline for undo/redo when the feature is active for this
|
|
195
|
+
// session — see useUndoRedoFlag.ts for the gate (LaunchDarkly flag +
|
|
196
|
+
// brand-site + non-admin maker).
|
|
197
|
+
if (useUndoRedoFlag().value) {
|
|
198
|
+
useHistoryStore().captureBaseline();
|
|
199
|
+
}
|
|
192
200
|
this.$emit(EVENTS.Initialised);
|
|
193
201
|
},
|
|
194
202
|
mounted() {
|
|
@@ -96,16 +96,21 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
96
96
|
hideChangeTemplateConfirmModal(): void;
|
|
97
97
|
onBackgroundChanged(): void;
|
|
98
98
|
onChangeTemplateConfirmModalCancel(): void;
|
|
99
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
99
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
100
100
|
onContentChanged(): void;
|
|
101
101
|
onStyleChanged(): void;
|
|
102
|
-
onTemplateSelected(payload: import("../../stores").OnTemplateSelectedPayload): void
|
|
102
|
+
onTemplateSelected(payload: import("../../stores").OnTemplateSelectedPayload): Promise<void>;
|
|
103
103
|
setSelectedTabName(payload: any): void;
|
|
104
104
|
showNextNotificationMessage(): Promise<void>;
|
|
105
105
|
updateContent<TContent extends import("../../../lib").Content, P extends {
|
|
106
106
|
id: string;
|
|
107
107
|
content: TContent;
|
|
108
108
|
}>(payload: P): Promise<void>;
|
|
109
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
110
|
+
applyHistorySnapshot(snapshot: import("../../../lib").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
111
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("../../../lib").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
112
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
113
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../lib").BrandPageModel): void;
|
|
109
114
|
export(): import("../../../lib").BrandPageModel;
|
|
110
115
|
setBrandPageType({ brandPageType }: {
|
|
111
116
|
brandPageType: "default" | "brandSite" | "brandContact";
|
package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts
CHANGED
|
@@ -602,16 +602,21 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
602
602
|
hideChangeTemplateConfirmModal(): void;
|
|
603
603
|
onBackgroundChanged(): void;
|
|
604
604
|
onChangeTemplateConfirmModalCancel(): void;
|
|
605
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
605
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
606
606
|
onContentChanged(): void;
|
|
607
607
|
onStyleChanged(): void;
|
|
608
|
-
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void
|
|
608
|
+
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
|
|
609
609
|
setSelectedTabName(payload: any): void;
|
|
610
610
|
showNextNotificationMessage(): Promise<void>;
|
|
611
611
|
updateContent<TContent extends Content, P extends {
|
|
612
612
|
id: string;
|
|
613
613
|
content: TContent;
|
|
614
614
|
}>(payload: P): Promise<void>;
|
|
615
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
616
|
+
applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
617
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
618
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
619
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
|
|
615
620
|
export(): import("@brand-page").BrandPageModel;
|
|
616
621
|
setBrandPageType({ brandPageType }: {
|
|
617
622
|
brandPageType: "default" | "brandSite" | "brandContact";
|
|
@@ -1046,6 +1051,22 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
1046
1051
|
}>;
|
|
1047
1052
|
eventTracker: {
|
|
1048
1053
|
sendShippingToggleEvent: (isEnabled: boolean) => void;
|
|
1054
|
+
sendUndoEvent: (props: {
|
|
1055
|
+
entries_count: number;
|
|
1056
|
+
actor: string | undefined;
|
|
1057
|
+
}) => void;
|
|
1058
|
+
sendRedoEvent: (props: {
|
|
1059
|
+
entries_count: number;
|
|
1060
|
+
actor: string | undefined;
|
|
1061
|
+
}) => void;
|
|
1062
|
+
sendHistoryCappedEvent: (props: {
|
|
1063
|
+
entries_count: number;
|
|
1064
|
+
size_bytes: number;
|
|
1065
|
+
}) => void;
|
|
1066
|
+
sendHistoryOversizedEvent: (props: {
|
|
1067
|
+
attempted_bytes: number;
|
|
1068
|
+
source: string;
|
|
1069
|
+
}) => void;
|
|
1049
1070
|
sendSaveContactEvent: () => void;
|
|
1050
1071
|
sendStartForFreeEvent: () => void;
|
|
1051
1072
|
sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
|
|
@@ -1150,6 +1171,70 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
1150
1171
|
}): Promise<void>;
|
|
1151
1172
|
toggleLogoBackground(): Promise<any>;
|
|
1152
1173
|
}>;
|
|
1174
|
+
historyStore: import("pinia").Store<"history", Pick<{
|
|
1175
|
+
entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
|
|
1176
|
+
currentIndex: import("vue").Ref<number, number>;
|
|
1177
|
+
isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
|
|
1178
|
+
baselineCaptured: import("vue").Ref<boolean, boolean>;
|
|
1179
|
+
canUndo: import("vue").ComputedRef<boolean>;
|
|
1180
|
+
canRedo: import("vue").ComputedRef<boolean>;
|
|
1181
|
+
captureBaseline: () => void;
|
|
1182
|
+
capture: (args: {
|
|
1183
|
+
source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
|
|
1184
|
+
actor: "user" | "ai_builder";
|
|
1185
|
+
label?: string | undefined;
|
|
1186
|
+
}) => "committed" | "oversized" | "noop" | "skipped";
|
|
1187
|
+
captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
|
|
1188
|
+
captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
|
|
1189
|
+
mergeNextMutation: () => void;
|
|
1190
|
+
undo: () => Promise<void>;
|
|
1191
|
+
redo: () => Promise<void>;
|
|
1192
|
+
reset: () => void;
|
|
1193
|
+
getCurrentSizeBytes: () => number;
|
|
1194
|
+
getCurrentEntryCount: () => number;
|
|
1195
|
+
}, "entries" | "currentIndex" | "isApplyingSnapshot" | "baselineCaptured">, Pick<{
|
|
1196
|
+
entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
|
|
1197
|
+
currentIndex: import("vue").Ref<number, number>;
|
|
1198
|
+
isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
|
|
1199
|
+
baselineCaptured: import("vue").Ref<boolean, boolean>;
|
|
1200
|
+
canUndo: import("vue").ComputedRef<boolean>;
|
|
1201
|
+
canRedo: import("vue").ComputedRef<boolean>;
|
|
1202
|
+
captureBaseline: () => void;
|
|
1203
|
+
capture: (args: {
|
|
1204
|
+
source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
|
|
1205
|
+
actor: "user" | "ai_builder";
|
|
1206
|
+
label?: string | undefined;
|
|
1207
|
+
}) => "committed" | "oversized" | "noop" | "skipped";
|
|
1208
|
+
captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
|
|
1209
|
+
captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
|
|
1210
|
+
mergeNextMutation: () => void;
|
|
1211
|
+
undo: () => Promise<void>;
|
|
1212
|
+
redo: () => Promise<void>;
|
|
1213
|
+
reset: () => void;
|
|
1214
|
+
getCurrentSizeBytes: () => number;
|
|
1215
|
+
getCurrentEntryCount: () => number;
|
|
1216
|
+
}, "canUndo" | "canRedo">, Pick<{
|
|
1217
|
+
entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
|
|
1218
|
+
currentIndex: import("vue").Ref<number, number>;
|
|
1219
|
+
isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
|
|
1220
|
+
baselineCaptured: import("vue").Ref<boolean, boolean>;
|
|
1221
|
+
canUndo: import("vue").ComputedRef<boolean>;
|
|
1222
|
+
canRedo: import("vue").ComputedRef<boolean>;
|
|
1223
|
+
captureBaseline: () => void;
|
|
1224
|
+
capture: (args: {
|
|
1225
|
+
source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
|
|
1226
|
+
actor: "user" | "ai_builder";
|
|
1227
|
+
label?: string | undefined;
|
|
1228
|
+
}) => "committed" | "oversized" | "noop" | "skipped";
|
|
1229
|
+
captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
|
|
1230
|
+
captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
|
|
1231
|
+
mergeNextMutation: () => void;
|
|
1232
|
+
undo: () => Promise<void>;
|
|
1233
|
+
redo: () => Promise<void>;
|
|
1234
|
+
reset: () => void;
|
|
1235
|
+
getCurrentSizeBytes: () => number;
|
|
1236
|
+
getCurrentEntryCount: () => number;
|
|
1237
|
+
}, "reset" | "undo" | "redo" | "captureBaseline" | "capture" | "captureTemplateSwitch" | "captureAiChangeset" | "mergeNextMutation" | "getCurrentSizeBytes" | "getCurrentEntryCount">>;
|
|
1153
1238
|
}, {
|
|
1154
1239
|
isDraggingContent: boolean;
|
|
1155
1240
|
isContentSelected: boolean;
|
package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js
CHANGED
|
@@ -15,6 +15,7 @@ import { transformToRTE, RTE_ALLOWED_SECTION_TYPES, } from '@brand-page-maker/ut
|
|
|
15
15
|
import { useExternalRichTextEditor } from '@brand-page-maker/composables/rich-text-editor/useRichTextEditor';
|
|
16
16
|
import { useUiStyleSettingsStore } from '@shared/style-settings/store';
|
|
17
17
|
import { STYLE_THEME_KEYS } from '@brand-page/constants';
|
|
18
|
+
import { useHistoryStore } from '@brand-page-maker/stores/history/history-store';
|
|
18
19
|
export default defineComponent({
|
|
19
20
|
mixins: [PageMixin],
|
|
20
21
|
setup() {
|
|
@@ -29,6 +30,7 @@ export default defineComponent({
|
|
|
29
30
|
const eventTracker = useEventTracker();
|
|
30
31
|
const { externalEditor } = useExternalRichTextEditor();
|
|
31
32
|
const styleSettingsStore = useUiStyleSettingsStore();
|
|
33
|
+
const historyStore = useHistoryStore();
|
|
32
34
|
return {
|
|
33
35
|
items: computed(() => contentSettingsStore.items),
|
|
34
36
|
selectedItemId: computed(() => contentSettingsStore.selectedItemId),
|
|
@@ -51,6 +53,7 @@ export default defineComponent({
|
|
|
51
53
|
eventTracker,
|
|
52
54
|
externalEditor,
|
|
53
55
|
styleSettingsStore,
|
|
56
|
+
historyStore,
|
|
54
57
|
};
|
|
55
58
|
},
|
|
56
59
|
data() {
|
|
@@ -214,6 +217,8 @@ export default defineComponent({
|
|
|
214
217
|
selectedItem = currentItem.settings.content;
|
|
215
218
|
}
|
|
216
219
|
}
|
|
220
|
+
// RTE rewrap on section selection — fold into current head.
|
|
221
|
+
this.historyStore.mergeNextMutation();
|
|
217
222
|
transformToRTE(this.pageSettingsStore, this.externalEditor, this.styleSettingsStore, selectedItem);
|
|
218
223
|
}
|
|
219
224
|
if (this.selectEventDebounceHandler) {
|
|
@@ -102,16 +102,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
102
102
|
hideChangeTemplateConfirmModal(): void;
|
|
103
103
|
onBackgroundChanged(): void;
|
|
104
104
|
onChangeTemplateConfirmModalCancel(): void;
|
|
105
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
105
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
106
106
|
onContentChanged(): void;
|
|
107
107
|
onStyleChanged(): void;
|
|
108
|
-
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void
|
|
108
|
+
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
|
|
109
109
|
setSelectedTabName(payload: any): void;
|
|
110
110
|
showNextNotificationMessage(): Promise<void>;
|
|
111
111
|
updateContent<TContent extends import("../../../brand-page").Content, P extends {
|
|
112
112
|
id: string;
|
|
113
113
|
content: TContent;
|
|
114
114
|
}>(payload: P): Promise<void>;
|
|
115
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
116
|
+
applyHistorySnapshot(snapshot: import("../../../brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
117
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("../../../brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
118
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
119
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../brand-page").BrandPageModel): void;
|
|
115
120
|
export(): import("../../../brand-page").BrandPageModel;
|
|
116
121
|
setBrandPageType({ brandPageType }: {
|
|
117
122
|
brandPageType: "default" | "brandSite" | "brandContact";
|
|
@@ -291,9 +291,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
291
291
|
pushManageWebPageUpdateSensitiveContentClickEvent(): Promise<void>;
|
|
292
292
|
pushManageWebPageUnpublishClickEvent(): Promise<void>;
|
|
293
293
|
}>;
|
|
294
|
+
undoRedoEnabled: import("vue").ComputedRef<boolean>;
|
|
294
295
|
}, {
|
|
295
296
|
copied: boolean;
|
|
296
297
|
}, {
|
|
298
|
+
isPublished(): boolean;
|
|
299
|
+
shouldShowBar(): boolean;
|
|
297
300
|
brandPageUrl(): string;
|
|
298
301
|
copyButtonLabel(): string;
|
|
299
302
|
}, {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import { CUSTOM_DOMAIN_STATUSES } from '@brand-page-maker/constants';
|
|
3
3
|
import { useBrandPageContainerStore, useEventManagerStore, } from '@brand-page-maker/stores';
|
|
4
|
+
import { useUndoRedoFlag } from '@brand-page-maker/composables/useUndoRedoFlag';
|
|
4
5
|
import { quickLinkBarTr } from '@src/composables/useTranslate';
|
|
5
6
|
export default defineComponent({
|
|
6
7
|
props: {
|
|
@@ -17,6 +18,7 @@ export default defineComponent({
|
|
|
17
18
|
return {
|
|
18
19
|
brandPageContainerStore: useBrandPageContainerStore(),
|
|
19
20
|
eventManagerStore: useEventManagerStore(),
|
|
21
|
+
undoRedoEnabled: useUndoRedoFlag(),
|
|
20
22
|
};
|
|
21
23
|
},
|
|
22
24
|
data() {
|
|
@@ -25,6 +27,15 @@ export default defineComponent({
|
|
|
25
27
|
};
|
|
26
28
|
},
|
|
27
29
|
computed: {
|
|
30
|
+
isPublished() {
|
|
31
|
+
return this.brandPageContainerStore.isPublished;
|
|
32
|
+
},
|
|
33
|
+
// Only render the bar when at least one inner cluster has something to
|
|
34
|
+
// show. Otherwise we'd render an empty white strip — e.g. on an
|
|
35
|
+
// unpublished page with the undo flag off.
|
|
36
|
+
shouldShowBar() {
|
|
37
|
+
return Boolean(this.undoRedoEnabled) || this.isPublished;
|
|
38
|
+
},
|
|
28
39
|
brandPageUrl() {
|
|
29
40
|
if (this.brandPageContainerStore.isCustomDomainEnabled &&
|
|
30
41
|
this.brandPageContainerStore.customDomain &&
|
|
@@ -380,16 +380,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
380
380
|
hideChangeTemplateConfirmModal(): void;
|
|
381
381
|
onBackgroundChanged(): void;
|
|
382
382
|
onChangeTemplateConfirmModalCancel(): void;
|
|
383
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
383
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
384
384
|
onContentChanged(): void;
|
|
385
385
|
onStyleChanged(): void;
|
|
386
|
-
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void
|
|
386
|
+
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
|
|
387
387
|
setSelectedTabName(payload: any): void;
|
|
388
388
|
showNextNotificationMessage(): Promise<void>;
|
|
389
389
|
updateContent<TContent extends import("../../../brand-page").Content, P extends {
|
|
390
390
|
id: string;
|
|
391
391
|
content: TContent;
|
|
392
392
|
}>(payload: P): Promise<void>;
|
|
393
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
394
|
+
applyHistorySnapshot(snapshot: import("../../../brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
395
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("../../../brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
396
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
397
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../brand-page").BrandPageModel): void;
|
|
393
398
|
export(): import("../../../brand-page").BrandPageModel;
|
|
394
399
|
setBrandPageType({ brandPageType }: {
|
|
395
400
|
brandPageType: "default" | "brandSite" | "brandContact";
|
|
@@ -381,16 +381,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
381
381
|
hideChangeTemplateConfirmModal(): void;
|
|
382
382
|
onBackgroundChanged(): void;
|
|
383
383
|
onChangeTemplateConfirmModalCancel(): void;
|
|
384
|
-
onChangeTemplateConfirmModalConfirm(): void
|
|
384
|
+
onChangeTemplateConfirmModalConfirm(): Promise<void>;
|
|
385
385
|
onContentChanged(): void;
|
|
386
386
|
onStyleChanged(): void;
|
|
387
|
-
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void
|
|
387
|
+
onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
|
|
388
388
|
setSelectedTabName(payload: any): void;
|
|
389
389
|
showNextNotificationMessage(): Promise<void>;
|
|
390
390
|
updateContent<TContent extends import("../../../brand-page").Content, P extends {
|
|
391
391
|
id: string;
|
|
392
392
|
content: TContent;
|
|
393
393
|
}>(payload: P): Promise<void>;
|
|
394
|
+
_captureTemplateSwitchIfEnabled(): void;
|
|
395
|
+
applyHistorySnapshot(snapshot: import("../../../brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
|
|
396
|
+
_syncLogoSettingsFromSnapshot(snapshot: import("../../../brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
|
|
397
|
+
_navigateToActivePage(activePageId?: string | undefined): void;
|
|
398
|
+
_fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../brand-page").BrandPageModel): void;
|
|
394
399
|
export(): import("../../../brand-page").BrandPageModel;
|
|
395
400
|
setBrandPageType({ brandPageType }: {
|
|
396
401
|
brandPageType: "default" | "brandSite" | "brandContact";
|