@designcrowd/library.brand-page 5.17.21 → 5.17.23-ast-subnav

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.
Files changed (121) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-Brtp2yWB.js → CreatedOnBrandCrowd-de-de-Ct9Aewoo.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BIJ5VoX4.js → CreatedOnBrandCrowd-en-us-BsEzGp5K.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-JrKK9K0u.js → CreatedOnBrandCrowd-es-es-UiIPmY0h.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-D_HvOZe-.js → CreatedOnBrandCrowd-fr-ca-CQmEXbU7.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-D_HvOZe-.js → CreatedOnBrandCrowd-fr-fr-CQmEXbU7.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-SSLb0vlp.js → CreatedOnBrandCrowd-pt-br-DoMI5QSQ.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-SSLb0vlp.js → CreatedOnBrandCrowd-pt-pt-DoMI5QSQ.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-BG39ozFo.js → CreatedOnDcom-de-de-gexV_wWX.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-D2NzqECZ.js → CreatedOnDcom-en-us-C2sLHLjJ.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-C55r2Lb4.js → CreatedOnDcom-es-es-CZFd666H.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-Bj-sAaJI.js → CreatedOnDcom-fr-ca-CPaRB_io.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-D8l0r-Tc.js → CreatedOnDcom-fr-fr-BQo5D5gE.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-CXHC6E1h.js → CreatedOnDcom-pt-br-CRr3CqOj.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-2dMvgnyi.js → CreatedOnDcom-pt-pt-DR6Vi-eZ.js} +1 -1
  15. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +1 -1
  16. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +1 -0
  17. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +20 -2
  18. package/lib/src/brand-page/components/image-gallery/ImageGalleryModal.mixin.d.ts +8 -1
  19. package/lib/src/brand-page/components/image-gallery/ImageGalleryModal.mixin.js +97 -3
  20. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +6 -2
  21. package/lib/src/brand-page/models/index.d.ts +1 -1
  22. package/lib/src/brand-page/models/navigation-styles.model.d.ts +2 -0
  23. package/lib/src/brand-page/models/navigation-styles.model.js +20 -1
  24. package/lib/src/brand-page/utils/migration/migration-14.d.ts +2 -0
  25. package/lib/src/brand-page/utils/migration/migration-14.js +16 -0
  26. package/lib/src/brand-page/utils/migration/migration-15.d.ts +2 -0
  27. package/lib/src/brand-page/utils/migration/migration-15.js +37 -0
  28. package/lib/src/brand-page/utils/migration.util.js +12 -0
  29. package/lib/src/brand-page/utils/style.util.js +16 -2
  30. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.d.ts +1 -1
  31. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +1 -1
  32. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.js +1 -1
  33. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +7 -1
  34. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +1 -1
  35. package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -10
  36. package/lib/src/brand-page-maker/models/content-settings-configs.d.ts +5 -0
  37. package/lib/src/brand-page-maker/models/content-settings.js +3 -0
  38. package/lib/src/brand-page-maker/models/navigation-style-configs.d.ts +1 -0
  39. package/lib/src/brand-page-maker/models/navigation-style-configs.js +5 -0
  40. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +170 -388
  41. package/lib/src/{bundled-translations-Bu_5FO26.js → bundled-translations-Cy6nun02.js} +1 -1
  42. package/lib/src/{bundled-translations.de-DE-CZTzknyj.js → bundled-translations.de-DE-BUZncCAM.js} +1 -1
  43. package/lib/src/{bundled-translations.es-ES-p86F-gOD.js → bundled-translations.es-ES-D4IPwZD-.js} +9 -9
  44. package/lib/src/{bundled-translations.fr-CA-CM5ZA8dQ.js → bundled-translations.fr-CA-BMgRrrwA.js} +9 -9
  45. package/lib/src/{bundled-translations.fr-FR-DV7sOgtb.js → bundled-translations.fr-FR-Ck7kYrK4.js} +1 -1
  46. package/lib/src/{bundled-translations.pt-BR-DkWWGrsz.js → bundled-translations.pt-BR--5_9viJ9.js} +1 -1
  47. package/lib/src/{bundled-translations.pt-PT-C5Td5lLs.js → bundled-translations.pt-PT-DAGUOQ7m.js} +13 -13
  48. package/lib/src/bundles/bundled-translations.de-DE.json +1 -0
  49. package/lib/src/bundles/bundled-translations.es-ES.json +1 -0
  50. package/lib/src/bundles/bundled-translations.fr-CA.json +1 -0
  51. package/lib/src/bundles/bundled-translations.fr-FR.json +1 -0
  52. package/lib/src/bundles/bundled-translations.json +1 -0
  53. package/lib/src/bundles/bundled-translations.pt-BR.json +1 -0
  54. package/lib/src/bundles/bundled-translations.pt-PT.json +1 -0
  55. package/lib/src/css/library.brand-page-brandCrowd.min.css +110 -103
  56. package/lib/src/css/library.brand-page-brandPage.min.css +110 -103
  57. package/lib/src/css/library.brand-page-designCom.min.css +110 -103
  58. package/lib/src/css/library.brand-page-preview.min.css +110 -103
  59. package/lib/src/index.mjs +1 -1
  60. package/lib/src/{lib-CrBvj1a5.js → lib-wvy4koSU.js} +22606 -22689
  61. package/lib/src/metadata-builder/builders/section-field-maps.js +1 -0
  62. package/lib/src/metadata-builder/builders/section-field-utils.js +5 -0
  63. package/lib/src/metadata-builder/helpers/rte.helpers.js +3 -0
  64. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +2 -1
  65. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +4 -1
  66. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +55 -2
  67. package/lib/src/shared/navigation-style-settings/store/index.d.ts +6 -0
  68. package/lib/src/shared/navigation-style-settings/store/index.js +15 -0
  69. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +27 -1
  70. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +25 -2
  71. package/package.json +1 -1
  72. package/src/brand-page/components/about-section/AboutSection.vue +63 -6
  73. package/src/brand-page/components/collapsible/Collapsible.vue +8 -2
  74. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +21 -2
  75. package/src/brand-page/components/contact-form/ContactForm.vue +15 -15
  76. package/src/brand-page/components/image-gallery/ImageGalleryModal.mixin.ts +114 -5
  77. package/src/brand-page/components/image-gallery/ImageGalleryModal.vue +25 -8
  78. package/src/brand-page/components/navigation/navigation-carousel/NavigationCarousel.vue +19 -8
  79. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +6 -2
  80. package/src/brand-page/components/text-wrapper/TextWrapper.vue +5 -1
  81. package/src/brand-page/models/index.ts +1 -1
  82. package/src/brand-page/models/navigation-styles.model.ts +31 -0
  83. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +15 -3
  84. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +4 -0
  85. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +8 -0
  86. package/src/brand-page/utils/migration/migration-14.ts +23 -0
  87. package/src/brand-page/utils/migration/migration-15.ts +62 -0
  88. package/src/brand-page/utils/migration.util.ts +14 -0
  89. package/src/brand-page/utils/style.util.ts +16 -2
  90. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +1 -1
  91. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +1 -1
  92. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +8 -1
  93. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +1 -1
  94. package/src/brand-page-maker/constants/config-settings-constant.ts +1 -10
  95. package/src/brand-page-maker/models/content-settings-configs.ts +6 -0
  96. package/src/brand-page-maker/models/content-settings.ts +3 -0
  97. package/src/brand-page-maker/models/i18n/models.de-DE.json +1 -0
  98. package/src/brand-page-maker/models/i18n/models.es-ES.json +1 -0
  99. package/src/brand-page-maker/models/i18n/models.fr-CA.json +1 -0
  100. package/src/brand-page-maker/models/i18n/models.fr-FR.json +1 -0
  101. package/src/brand-page-maker/models/i18n/models.json +1 -0
  102. package/src/brand-page-maker/models/i18n/models.pt-BR.json +1 -0
  103. package/src/brand-page-maker/models/i18n/models.pt-PT.json +1 -0
  104. package/src/brand-page-maker/models/navigation-style-configs.ts +5 -0
  105. package/src/brand-page-maker/utils/rich-text-editor.util.ts +274 -684
  106. package/src/bundles/bundled-translations.de-DE.json +1 -0
  107. package/src/bundles/bundled-translations.es-ES.json +1 -0
  108. package/src/bundles/bundled-translations.fr-CA.json +1 -0
  109. package/src/bundles/bundled-translations.fr-FR.json +1 -0
  110. package/src/bundles/bundled-translations.json +1 -0
  111. package/src/bundles/bundled-translations.pt-BR.json +1 -0
  112. package/src/bundles/bundled-translations.pt-PT.json +1 -0
  113. package/src/metadata-builder/builders/section-field-maps.ts +1 -0
  114. package/src/metadata-builder/builders/section-field-utils.ts +5 -0
  115. package/src/metadata-builder/helpers/rte.helpers.ts +4 -0
  116. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +2 -1
  117. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +82 -4
  118. package/src/shared/navigation-style-settings/store/index.ts +30 -0
  119. package/lib/src/brand-page/components/about-section/AboutSection.mixin.d.ts +0 -83
  120. package/lib/src/brand-page/components/about-section/AboutSection.mixin.js +0 -65
  121. package/src/brand-page/components/about-section/AboutSection.mixin.ts +0 -78
@@ -156,6 +156,7 @@ const contactFormStyleFields = defineFieldMap({
156
156
  title_style: 'titleStyle',
157
157
  description_style: 'descriptionStyle',
158
158
  button_text_style: 'buttonTextStyle',
159
+ success_message_style: 'successMessageStyle',
159
160
  });
160
161
  const imagesSectionStyleFields = defineFieldMap({
161
162
  title_style: 'titleStyle',
@@ -85,6 +85,11 @@ const RTE_FIELD_STYLE_PAIRS = [
85
85
  argKey: 'description_style',
86
86
  },
87
87
  { textField: 'text', styleField: 'textStyle', argKey: 'text_style' },
88
+ {
89
+ textField: 'paragraph',
90
+ styleField: 'paragraphStyle',
91
+ argKey: 'paragraph_style',
92
+ },
88
93
  ];
89
94
  /**
90
95
  * Re-applies merged styles to RTE content fields after applyStyleFields has
@@ -3,6 +3,9 @@ import { useExternalRichTextEditor } from '../../brand-page-maker/composables/ri
3
3
  import { getRenderText } from '../../brand-page/utils';
4
4
  import { ESCAPED_NEWLINE_CHARACTER } from '../../constants/ui';
5
5
  export const applyStyleToRTEText = (externalEditor, contentText, newContentStyle) => {
6
+ if (!contentText) {
7
+ return contentText;
8
+ }
6
9
  const content = contentText.includes(ESCAPED_NEWLINE_CHARACTER)
7
10
  ? getRenderText(contentText)
8
11
  : contentText;
@@ -23,6 +23,7 @@ const RTE_DISALLOWED_STYLE_FIELD_NAMES = [
23
23
  'descriptionStyle',
24
24
  'titleStyle',
25
25
  'textStyle',
26
+ 'paragraphStyle',
26
27
  ];
27
28
  const AI_ALLOWED_FIELD_NAMES = ['description', 'title', 'text', 'paragraph'];
28
29
  const RTE_DISALLOWED_FIELD_NAMES = ['buttonText'];
@@ -87,7 +88,7 @@ export default defineComponent({
87
88
  return this.getContent(this.id);
88
89
  },
89
90
  styleName() {
90
- return `${this.field.name}Style`;
91
+ return this.field.styleName || `${this.field.name}Style`;
91
92
  },
92
93
  contentType() {
93
94
  return this.type;
@@ -21,7 +21,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
21
21
  required: true;
22
22
  };
23
23
  }>, {}, {
24
- navigationStyleConfigOptionTitles: Record<"defaultBorderColor" | "selectedBorderColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor", string>;
24
+ navigationStyleConfigOptionTitles: Record<"defaultBorderColor" | "selectedBorderColor" | "subNavBackgroundColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor", string>;
25
25
  styleThemeKeys: Record<string, string>;
26
26
  valueFuncDict: Record<string, () => string | undefined>;
27
27
  }, {
@@ -31,6 +31,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
31
31
  }, {
32
32
  emitOptionValueChange(event: NavigationStyleOptionValueChangeEvent): void;
33
33
  onColorPickerInput(option: NavigationStyleConfigOption, payload: UpdateItemValuePayload<string | Event | undefined> | string): void;
34
+ isDefaultTextColorLogoBackground(): boolean;
35
+ isDefaultTextColorLogoText(): boolean;
36
+ getSubNavBackgroundColorThemeKey(): string;
34
37
  onColorMatchToggled(option: NavigationStyleConfigOption, value: boolean): void;
35
38
  getMenuStyles(): NavigationMenuStyles;
36
39
  setTextStyleOption(option: NavigationStyleConfigOption, payload: UpdateItemValuePayload<TextStyleDeclaration>): void;
@@ -3,6 +3,7 @@ import { NAVIGATION_STYLE_CONFIG_OPTION_TITLES } from '@brand-page-maker/models/
3
3
  import { STYLE_THEME_KEYS } from '@brand-page';
4
4
  import { isColorMatched } from '@brand-page-maker/utils';
5
5
  import { RGBAtoHex } from '@utils/helpers';
6
+ import { colorsMatch } from '@brand-page/utils/style.util';
6
7
  export default defineComponent({
7
8
  props: {
8
9
  availableNavigationStyleConfigs: {
@@ -36,7 +37,11 @@ export default defineComponent({
36
37
  };
37
38
  },
38
39
  navigationStyleOptions() {
39
- return (this.availableNavigationStyleConfigs.find((c) => c.displayType === this.value.displayType)?.options ?? []);
40
+ const options = this.availableNavigationStyleConfigs.find((c) => c.displayType === this.value.displayType)?.options ?? [];
41
+ if (!this.isAdmin && this.value.displayType.includes('hamburger')) {
42
+ return options.filter((o) => o !== 'subNavBackgroundColor');
43
+ }
44
+ return options;
40
45
  },
41
46
  isOptionColorMatched() {
42
47
  return (option) => {
@@ -78,6 +83,10 @@ export default defineComponent({
78
83
  const menuStyles = this.getMenuStyles();
79
84
  return menuStyles.iconStyle.backgroundColor;
80
85
  },
86
+ subNavBackgroundColor: () => {
87
+ const menuStyles = this.getMenuStyles();
88
+ return menuStyles.subNavBackgroundColor;
89
+ },
81
90
  };
82
91
  },
83
92
  methods: {
@@ -107,11 +116,55 @@ export default defineComponent({
107
116
  }
108
117
  console.error('onColorPickerInput unhandled payload type: ' + typeof payload);
109
118
  },
119
+ isDefaultTextColorLogoBackground() {
120
+ const menuStyles = this.getMenuStyles();
121
+ const defaultTextColor = menuStyles.defaultButtonStyle.color;
122
+ if (!defaultTextColor) {
123
+ return false;
124
+ }
125
+ if (defaultTextColor === STYLE_THEME_KEYS.LogoBackgroundColor ||
126
+ defaultTextColor === STYLE_THEME_KEYS.LogoBackgroundMultiColor) {
127
+ return true;
128
+ }
129
+ if (this.logoTheme.logoBackgroundColor.rgb &&
130
+ colorsMatch(defaultTextColor, this.logoTheme.logoBackgroundColor.rgb)) {
131
+ return true;
132
+ }
133
+ return false;
134
+ },
135
+ isDefaultTextColorLogoText() {
136
+ const menuStyles = this.getMenuStyles();
137
+ const defaultTextColor = menuStyles.defaultButtonStyle.color;
138
+ if (!defaultTextColor) {
139
+ return false;
140
+ }
141
+ if (defaultTextColor === STYLE_THEME_KEYS.LogoTextColor ||
142
+ defaultTextColor === STYLE_THEME_KEYS.LogoTextMultiColor) {
143
+ return true;
144
+ }
145
+ if (this.logoTheme.logoTextColor.rgb &&
146
+ colorsMatch(defaultTextColor, this.logoTheme.logoTextColor.rgb)) {
147
+ return true;
148
+ }
149
+ return false;
150
+ },
151
+ getSubNavBackgroundColorThemeKey() {
152
+ if (this.isDefaultTextColorLogoText()) {
153
+ return STYLE_THEME_KEYS.LogoBackgroundColor;
154
+ }
155
+ if (this.isDefaultTextColorLogoBackground()) {
156
+ return STYLE_THEME_KEYS.LogoTextColor;
157
+ }
158
+ return STYLE_THEME_KEYS.LogoTextColor;
159
+ },
110
160
  onColorMatchToggled(option, value) {
111
161
  if (value) {
162
+ const themeKey = option === 'subNavBackgroundColor'
163
+ ? this.getSubNavBackgroundColorThemeKey()
164
+ : STYLE_THEME_KEYS.LogoTextColor;
112
165
  this.emitOptionValueChange({
113
166
  option,
114
- value: STYLE_THEME_KEYS.LogoTextColor,
167
+ value: themeKey,
115
168
  });
116
169
  }
117
170
  else {
@@ -47,6 +47,12 @@ export declare const useUiNavigationStyleSettingsStore: import("pinia").StoreDef
47
47
  style: BrandPageCssStyle;
48
48
  viewport: ViewportsType;
49
49
  }): void;
50
+ _setSubNavBackgroundColor({ displayType, section, value, viewport, }: {
51
+ displayType: NavigationDisplayType;
52
+ section: PageSection;
53
+ value: string;
54
+ viewport: ViewportsType;
55
+ }): void;
50
56
  _setButtonStyles({ section, defaultButtonStyle, selectedButtonStyle, iconStyle, viewport, }: {
51
57
  section: PageSection;
52
58
  defaultButtonStyle: TextStyleDeclaration;
@@ -64,6 +64,13 @@ export const useUiNavigationStyleSettingsStore = defineStore('uiNavigationStyleS
64
64
  }
65
65
  this.navigation[section][viewport].iconStyle = Object.assign({}, this.navigation[section][viewport].iconStyle, style);
66
66
  },
67
+ _setSubNavBackgroundColor({ displayType, section, value, viewport, }) {
68
+ if (displayType.includes('hamburger')) {
69
+ this.navigation[section][viewport].hamburgerMenuStyle.subNavBackgroundColor = value;
70
+ return;
71
+ }
72
+ this.navigation[section][viewport].subNavBackgroundColor = value;
73
+ },
67
74
  _setButtonStyles({ section, defaultButtonStyle, selectedButtonStyle, iconStyle, viewport, }) {
68
75
  this.navigation[section][viewport].selectedButtonStyle =
69
76
  selectedButtonStyle;
@@ -237,6 +244,14 @@ export const useUiNavigationStyleSettingsStore = defineStore('uiNavigationStyleS
237
244
  viewport,
238
245
  });
239
246
  break;
247
+ case 'subNavBackgroundColor':
248
+ this._setSubNavBackgroundColor({
249
+ displayType,
250
+ section,
251
+ value,
252
+ viewport,
253
+ });
254
+ break;
240
255
  default:
241
256
  if (process.env.NODE_ENV !== 'production') {
242
257
  assertUnreachable();
@@ -214,6 +214,7 @@ declare const _default: import("vue").DefineComponent<{}, {
214
214
  width?: string | undefined;
215
215
  wordBreak?: string | undefined;
216
216
  };
217
+ subNavBackgroundColor?: string | undefined;
217
218
  isLogoVisible: boolean;
218
219
  hamburgerMenuStyle: {
219
220
  defaultButtonStyle: {
@@ -353,6 +354,7 @@ declare const _default: import("vue").DefineComponent<{}, {
353
354
  width?: string | undefined;
354
355
  wordBreak?: string | undefined;
355
356
  };
357
+ subNavBackgroundColor?: string | undefined;
356
358
  };
357
359
  viewport: import("@brand-page").ViewportsType;
358
360
  } | {
@@ -495,6 +497,7 @@ declare const _default: import("vue").DefineComponent<{}, {
495
497
  width?: string | undefined;
496
498
  wordBreak?: string | undefined;
497
499
  };
500
+ subNavBackgroundColor?: string | undefined;
498
501
  isLogoVisible: boolean;
499
502
  hamburgerMenuStyle: {
500
503
  defaultButtonStyle: {
@@ -634,6 +637,7 @@ declare const _default: import("vue").DefineComponent<{}, {
634
637
  width?: string | undefined;
635
638
  wordBreak?: string | undefined;
636
639
  };
640
+ subNavBackgroundColor?: string | undefined;
637
641
  };
638
642
  viewport: import("@brand-page").ViewportsType;
639
643
  } | undefined;
@@ -777,6 +781,7 @@ declare const _default: import("vue").DefineComponent<{}, {
777
781
  width?: string | undefined;
778
782
  wordBreak?: string | undefined;
779
783
  };
784
+ subNavBackgroundColor?: string | undefined;
780
785
  isLogoVisible: boolean;
781
786
  hamburgerMenuStyle: {
782
787
  defaultButtonStyle: {
@@ -916,6 +921,7 @@ declare const _default: import("vue").DefineComponent<{}, {
916
921
  width?: string | undefined;
917
922
  wordBreak?: string | undefined;
918
923
  };
924
+ subNavBackgroundColor?: string | undefined;
919
925
  };
920
926
  viewport: import("@brand-page").ViewportsType;
921
927
  } | {
@@ -1058,6 +1064,7 @@ declare const _default: import("vue").DefineComponent<{}, {
1058
1064
  width?: string | undefined;
1059
1065
  wordBreak?: string | undefined;
1060
1066
  };
1067
+ subNavBackgroundColor?: string | undefined;
1061
1068
  isLogoVisible: boolean;
1062
1069
  hamburgerMenuStyle: {
1063
1070
  defaultButtonStyle: {
@@ -1197,6 +1204,7 @@ declare const _default: import("vue").DefineComponent<{}, {
1197
1204
  width?: string | undefined;
1198
1205
  wordBreak?: string | undefined;
1199
1206
  };
1207
+ subNavBackgroundColor?: string | undefined;
1200
1208
  };
1201
1209
  viewport: import("@brand-page").ViewportsType;
1202
1210
  };
@@ -1498,6 +1506,7 @@ declare const _default: import("vue").DefineComponent<{}, {
1498
1506
  width?: string | undefined;
1499
1507
  wordBreak?: string | undefined;
1500
1508
  };
1509
+ subNavBackgroundColor?: string | undefined;
1501
1510
  isLogoVisible: boolean;
1502
1511
  hamburgerMenuStyle: {
1503
1512
  defaultButtonStyle: {
@@ -1637,6 +1646,7 @@ declare const _default: import("vue").DefineComponent<{}, {
1637
1646
  width?: string | undefined;
1638
1647
  wordBreak?: string | undefined;
1639
1648
  };
1649
+ subNavBackgroundColor?: string | undefined;
1640
1650
  };
1641
1651
  viewport: import("@brand-page").ViewportsType;
1642
1652
  } | {
@@ -1779,6 +1789,7 @@ declare const _default: import("vue").DefineComponent<{}, {
1779
1789
  width?: string | undefined;
1780
1790
  wordBreak?: string | undefined;
1781
1791
  };
1792
+ subNavBackgroundColor?: string | undefined;
1782
1793
  isLogoVisible: boolean;
1783
1794
  hamburgerMenuStyle: {
1784
1795
  defaultButtonStyle: {
@@ -1918,6 +1929,7 @@ declare const _default: import("vue").DefineComponent<{}, {
1918
1929
  width?: string | undefined;
1919
1930
  wordBreak?: string | undefined;
1920
1931
  };
1932
+ subNavBackgroundColor?: string | undefined;
1921
1933
  };
1922
1934
  viewport: import("@brand-page").ViewportsType;
1923
1935
  } | undefined;
@@ -2061,6 +2073,7 @@ declare const _default: import("vue").DefineComponent<{}, {
2061
2073
  width?: string | undefined;
2062
2074
  wordBreak?: string | undefined;
2063
2075
  };
2076
+ subNavBackgroundColor?: string | undefined;
2064
2077
  isLogoVisible: boolean;
2065
2078
  hamburgerMenuStyle: {
2066
2079
  defaultButtonStyle: {
@@ -2200,6 +2213,7 @@ declare const _default: import("vue").DefineComponent<{}, {
2200
2213
  width?: string | undefined;
2201
2214
  wordBreak?: string | undefined;
2202
2215
  };
2216
+ subNavBackgroundColor?: string | undefined;
2203
2217
  };
2204
2218
  viewport: import("@brand-page").ViewportsType;
2205
2219
  } | {
@@ -2342,6 +2356,7 @@ declare const _default: import("vue").DefineComponent<{}, {
2342
2356
  width?: string | undefined;
2343
2357
  wordBreak?: string | undefined;
2344
2358
  };
2359
+ subNavBackgroundColor?: string | undefined;
2345
2360
  isLogoVisible: boolean;
2346
2361
  hamburgerMenuStyle: {
2347
2362
  defaultButtonStyle: {
@@ -2481,6 +2496,7 @@ declare const _default: import("vue").DefineComponent<{}, {
2481
2496
  width?: string | undefined;
2482
2497
  wordBreak?: string | undefined;
2483
2498
  };
2499
+ subNavBackgroundColor?: string | undefined;
2484
2500
  };
2485
2501
  viewport: import("@brand-page").ViewportsType;
2486
2502
  };
@@ -3261,6 +3277,7 @@ declare const _default: import("vue").DefineComponent<{}, {
3261
3277
  width?: string | undefined;
3262
3278
  wordBreak?: string | undefined;
3263
3279
  };
3280
+ subNavBackgroundColor?: string | undefined;
3264
3281
  isLogoVisible: boolean;
3265
3282
  hamburgerMenuStyle: {
3266
3283
  defaultButtonStyle: {
@@ -3400,6 +3417,7 @@ declare const _default: import("vue").DefineComponent<{}, {
3400
3417
  width?: string | undefined;
3401
3418
  wordBreak?: string | undefined;
3402
3419
  };
3420
+ subNavBackgroundColor?: string | undefined;
3403
3421
  };
3404
3422
  viewport: import("@brand-page").ViewportsType;
3405
3423
  }>;
@@ -3543,6 +3561,7 @@ declare const _default: import("vue").DefineComponent<{}, {
3543
3561
  width?: string | undefined;
3544
3562
  wordBreak?: string | undefined;
3545
3563
  };
3564
+ subNavBackgroundColor?: string | undefined;
3546
3565
  isLogoVisible: boolean;
3547
3566
  hamburgerMenuStyle: {
3548
3567
  defaultButtonStyle: {
@@ -3682,6 +3701,7 @@ declare const _default: import("vue").DefineComponent<{}, {
3682
3701
  width?: string | undefined;
3683
3702
  wordBreak?: string | undefined;
3684
3703
  };
3704
+ subNavBackgroundColor?: string | undefined;
3685
3705
  };
3686
3706
  viewport: import("@brand-page").ViewportsType;
3687
3707
  }>;
@@ -4478,6 +4498,12 @@ declare const _default: import("vue").DefineComponent<{}, {
4478
4498
  style: BrandPageCssStyle;
4479
4499
  viewport: import("@brand-page").ViewportsType;
4480
4500
  }): void;
4501
+ _setSubNavBackgroundColor({ displayType, section, value, viewport, }: {
4502
+ displayType: import("@brand-page").NavigationDisplayType;
4503
+ section: "footer" | "header";
4504
+ value: string;
4505
+ viewport: import("@brand-page").ViewportsType;
4506
+ }): void;
4481
4507
  _setButtonStyles({ section, defaultButtonStyle, selectedButtonStyle, iconStyle, viewport, }: {
4482
4508
  section: "footer" | "header";
4483
4509
  defaultButtonStyle: import("@brand-page").TextStyleDeclaration;
@@ -4492,7 +4518,7 @@ declare const _default: import("vue").DefineComponent<{}, {
4492
4518
  }): void;
4493
4519
  setNavigationStyleOptionValue({ section, option, value, viewport, }: {
4494
4520
  section: "footer" | "header";
4495
- option: "defaultBorderColor" | "selectedBorderColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor";
4521
+ option: "defaultBorderColor" | "selectedBorderColor" | "subNavBackgroundColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor";
4496
4522
  value: any;
4497
4523
  viewport: import("@brand-page").ViewportsType;
4498
4524
  }): void;
@@ -176,6 +176,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
176
176
  width?: string | undefined;
177
177
  wordBreak?: string | undefined;
178
178
  };
179
+ subNavBackgroundColor?: string | undefined;
179
180
  isLogoVisible: boolean;
180
181
  hamburgerMenuStyle: {
181
182
  defaultButtonStyle: {
@@ -315,6 +316,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
315
316
  width?: string | undefined;
316
317
  wordBreak?: string | undefined;
317
318
  };
319
+ subNavBackgroundColor?: string | undefined;
318
320
  };
319
321
  viewport: ViewportsType;
320
322
  } | {
@@ -457,6 +459,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
457
459
  width?: string | undefined;
458
460
  wordBreak?: string | undefined;
459
461
  };
462
+ subNavBackgroundColor?: string | undefined;
460
463
  isLogoVisible: boolean;
461
464
  hamburgerMenuStyle: {
462
465
  defaultButtonStyle: {
@@ -596,6 +599,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
596
599
  width?: string | undefined;
597
600
  wordBreak?: string | undefined;
598
601
  };
602
+ subNavBackgroundColor?: string | undefined;
599
603
  };
600
604
  viewport: ViewportsType;
601
605
  } | undefined;
@@ -739,6 +743,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
739
743
  width?: string | undefined;
740
744
  wordBreak?: string | undefined;
741
745
  };
746
+ subNavBackgroundColor?: string | undefined;
742
747
  isLogoVisible: boolean;
743
748
  hamburgerMenuStyle: {
744
749
  defaultButtonStyle: {
@@ -878,6 +883,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
878
883
  width?: string | undefined;
879
884
  wordBreak?: string | undefined;
880
885
  };
886
+ subNavBackgroundColor?: string | undefined;
881
887
  };
882
888
  viewport: ViewportsType;
883
889
  } | {
@@ -1020,6 +1026,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1020
1026
  width?: string | undefined;
1021
1027
  wordBreak?: string | undefined;
1022
1028
  };
1029
+ subNavBackgroundColor?: string | undefined;
1023
1030
  isLogoVisible: boolean;
1024
1031
  hamburgerMenuStyle: {
1025
1032
  defaultButtonStyle: {
@@ -1159,6 +1166,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1159
1166
  width?: string | undefined;
1160
1167
  wordBreak?: string | undefined;
1161
1168
  };
1169
+ subNavBackgroundColor?: string | undefined;
1162
1170
  };
1163
1171
  viewport: ViewportsType;
1164
1172
  };
@@ -1460,6 +1468,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1460
1468
  width?: string | undefined;
1461
1469
  wordBreak?: string | undefined;
1462
1470
  };
1471
+ subNavBackgroundColor?: string | undefined;
1463
1472
  isLogoVisible: boolean;
1464
1473
  hamburgerMenuStyle: {
1465
1474
  defaultButtonStyle: {
@@ -1599,6 +1608,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1599
1608
  width?: string | undefined;
1600
1609
  wordBreak?: string | undefined;
1601
1610
  };
1611
+ subNavBackgroundColor?: string | undefined;
1602
1612
  };
1603
1613
  viewport: ViewportsType;
1604
1614
  } | {
@@ -1741,6 +1751,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1741
1751
  width?: string | undefined;
1742
1752
  wordBreak?: string | undefined;
1743
1753
  };
1754
+ subNavBackgroundColor?: string | undefined;
1744
1755
  isLogoVisible: boolean;
1745
1756
  hamburgerMenuStyle: {
1746
1757
  defaultButtonStyle: {
@@ -1880,6 +1891,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1880
1891
  width?: string | undefined;
1881
1892
  wordBreak?: string | undefined;
1882
1893
  };
1894
+ subNavBackgroundColor?: string | undefined;
1883
1895
  };
1884
1896
  viewport: ViewportsType;
1885
1897
  } | undefined;
@@ -2023,6 +2035,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2023
2035
  width?: string | undefined;
2024
2036
  wordBreak?: string | undefined;
2025
2037
  };
2038
+ subNavBackgroundColor?: string | undefined;
2026
2039
  isLogoVisible: boolean;
2027
2040
  hamburgerMenuStyle: {
2028
2041
  defaultButtonStyle: {
@@ -2162,6 +2175,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2162
2175
  width?: string | undefined;
2163
2176
  wordBreak?: string | undefined;
2164
2177
  };
2178
+ subNavBackgroundColor?: string | undefined;
2165
2179
  };
2166
2180
  viewport: ViewportsType;
2167
2181
  } | {
@@ -2304,6 +2318,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2304
2318
  width?: string | undefined;
2305
2319
  wordBreak?: string | undefined;
2306
2320
  };
2321
+ subNavBackgroundColor?: string | undefined;
2307
2322
  isLogoVisible: boolean;
2308
2323
  hamburgerMenuStyle: {
2309
2324
  defaultButtonStyle: {
@@ -2443,6 +2458,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2443
2458
  width?: string | undefined;
2444
2459
  wordBreak?: string | undefined;
2445
2460
  };
2461
+ subNavBackgroundColor?: string | undefined;
2446
2462
  };
2447
2463
  viewport: ViewportsType;
2448
2464
  };
@@ -3073,7 +3089,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3073
3089
  dataAttribute?: string | undefined;
3074
3090
  disabled?: boolean | undefined;
3075
3091
  };
3076
- options: ("defaultBorderColor" | "selectedBorderColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor")[];
3092
+ options: ("defaultBorderColor" | "selectedBorderColor" | "subNavBackgroundColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor")[];
3077
3093
  iconStyle: {
3078
3094
  aspectRatio?: string | undefined;
3079
3095
  backgroundAttachment?: string | undefined;
@@ -3211,6 +3227,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3211
3227
  width?: string | undefined;
3212
3228
  wordBreak?: string | undefined;
3213
3229
  };
3230
+ subNavBackgroundColor?: string | undefined;
3214
3231
  displayType: NavigationDisplayType;
3215
3232
  renderAfterLogo: boolean;
3216
3233
  }[]>;
@@ -3382,6 +3399,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3382
3399
  style: BrandPageCssStyle;
3383
3400
  viewport: ViewportsType;
3384
3401
  }): void;
3402
+ _setSubNavBackgroundColor({ displayType, section, value, viewport, }: {
3403
+ displayType: NavigationDisplayType;
3404
+ section: "footer" | "header";
3405
+ value: string;
3406
+ viewport: ViewportsType;
3407
+ }): void;
3385
3408
  _setButtonStyles({ section, defaultButtonStyle, selectedButtonStyle, iconStyle, viewport, }: {
3386
3409
  section: "footer" | "header";
3387
3410
  defaultButtonStyle: import("@brand-page").TextStyleDeclaration;
@@ -3396,7 +3419,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3396
3419
  }): void;
3397
3420
  setNavigationStyleOptionValue({ section, option, value, viewport, }: {
3398
3421
  section: "footer" | "header";
3399
- option: "defaultBorderColor" | "selectedBorderColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor";
3422
+ option: "defaultBorderColor" | "selectedBorderColor" | "subNavBackgroundColor" | "defaultTextStyle" | "defaultBackgroundColor" | "selectedTextColor" | "selectedBackgroundColor" | "iconColor" | "iconBackgroundColor";
3400
3423
  value: any;
3401
3424
  viewport: ViewportsType;
3402
3425
  }): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@designcrowd/library.brand-page",
3
3
  "description": "A collection of Maker/Designer applications",
4
- "version": "5.17.21",
4
+ "version": "5.17.23-ast-subnav",
5
5
  "author": "Design.com Eng",
6
6
  "license": "UNLICENSED",
7
7
  "type": "module",
@@ -91,6 +91,7 @@
91
91
  v-if="renderText"
92
92
  :text-style="viewModel.paragraphStyle"
93
93
  :text="renderText"
94
+ element="div"
94
95
  :class="textAlignClass"
95
96
  />
96
97
  </div>
@@ -98,15 +99,71 @@
98
99
  </div>
99
100
  </section>
100
101
  </template>
101
- <script>
102
- import AboutSectionMixin from './AboutSection.mixin.ts';
102
+ <script lang="ts" setup>
103
+ import { computed } from 'vue';
104
+ import type { AboutSectionViewModel } from '@brand-page/view-models';
105
+ import type { BrandPageContext } from '@brand-page/models';
106
+ import { getRenderText } from '@brand-page/utils';
107
+ import { hasRTEContent } from '@brand-page-maker/utils';
103
108
  import Media from '../media/Media.vue';
104
109
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
105
110
 
106
- export default {
107
- components: { Media, TextWrapper },
108
- mixins: [AboutSectionMixin],
109
- };
111
+ const props = withDefaults(
112
+ defineProps<{
113
+ viewModel: AboutSectionViewModel;
114
+ context: BrandPageContext;
115
+ isPreview?: boolean;
116
+ isMobileDevice?: boolean;
117
+ contentIndex?: number;
118
+ }>(),
119
+ {
120
+ isPreview: false,
121
+ isMobileDevice: undefined,
122
+ contentIndex: undefined,
123
+ },
124
+ );
125
+
126
+ const isFullImage = computed(
127
+ () =>
128
+ props.viewModel.displayStyle === 'right-aligned-full-image' ||
129
+ props.viewModel.displayStyle === 'left-aligned-full-image',
130
+ );
131
+
132
+ const isRightAligned = computed(
133
+ () =>
134
+ props.viewModel.displayStyle === 'right-aligned-full-image' ||
135
+ props.viewModel.displayStyle === 'right-aligned',
136
+ );
137
+
138
+ const isLeftAligned = computed(
139
+ () =>
140
+ props.viewModel.displayStyle === 'left-aligned-full-image' ||
141
+ props.viewModel.displayStyle === 'left-aligned',
142
+ );
143
+
144
+ const isDividedContent = computed(
145
+ () =>
146
+ props.viewModel.displayStyle === 'right-aligned' ||
147
+ props.viewModel.displayStyle === 'left-aligned',
148
+ );
149
+
150
+ const textAlignClass = computed(() => ({
151
+ 'tw-text-center': props.viewModel.displayStyle === 'centered',
152
+ 'tw-text-left': props.viewModel.displayStyle !== 'centered',
153
+ 'tw-px-6': isFullImage.value,
154
+ }));
155
+
156
+ const renderText = computed((): string => {
157
+ if (!props.viewModel.paragraph) {
158
+ return '';
159
+ }
160
+
161
+ if (hasRTEContent(props.viewModel.paragraph)) {
162
+ return props.viewModel.paragraph;
163
+ } else {
164
+ return getRenderText(props.viewModel.paragraph);
165
+ }
166
+ });
110
167
  </script>
111
168
  <style scoped>
112
169
  /* classes */
@@ -15,10 +15,14 @@
15
15
  'tw-mb-4': !isCollapsed,
16
16
  'hover:tw-cursor-pointer': canCollapse,
17
17
  }"
18
- :style="titleStyle"
19
18
  @click="onHeaderToggleClick"
20
19
  >
21
- <h1 class="tw-select-none">{{ title }}</h1>
20
+ <TextWrapper
21
+ :text-style="titleStyle"
22
+ :text="title"
23
+ element="div"
24
+ class="tw-select-none"
25
+ />
22
26
  <div v-if="canCollapse" class="tw-absolute tw-top-0 tw-right-4">
23
27
  <Icon
24
28
  :style="arrowStyle"
@@ -38,10 +42,12 @@
38
42
  <script>
39
43
  import { Icon } from '@designcrowd/fe-shared-lib';
40
44
  import CollapsibleMixin from './Collapsible.mixin.ts';
45
+ import TextWrapper from '../text-wrapper/TextWrapper.vue';
41
46
 
42
47
  export default {
43
48
  components: {
44
49
  Icon,
50
+ TextWrapper,
45
51
  },
46
52
  mixins: [CollapsibleMixin],
47
53
  };