@designcrowd/library.brand-page 5.19.2 → 6.0.0-undo-redo-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-Ekmn0O3s.js → CreatedOnBrandCrowd-de-de-Cbi1PSNS.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BjeXlKTS.js → CreatedOnBrandCrowd-en-us-B2ZTei1t.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-rpNINAMY.js → CreatedOnBrandCrowd-es-es-DGz8UfQQ.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-BL4nSaLj.js → CreatedOnBrandCrowd-fr-ca-C4rUBQUM.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-BL4nSaLj.js → CreatedOnBrandCrowd-fr-fr-C4rUBQUM.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-K0r4FyYq.js → CreatedOnBrandCrowd-pt-br-Cw7sVI1F.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-K0r4FyYq.js → CreatedOnBrandCrowd-pt-pt-Cw7sVI1F.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-0XYyEKYc.js → CreatedOnDcom-de-de-DPSPgKj7.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-E8hvwiMd.js → CreatedOnDcom-en-us-AXXhwSXg.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-pRuCd7xX.js → CreatedOnDcom-es-es-DY8bmxi_.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-Bu4V3jpn.js → CreatedOnDcom-fr-ca-D3QxYtYl.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-CCcrGNz2.js → CreatedOnDcom-fr-fr-KIt7qTPd.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-1GTvaLKd.js → CreatedOnDcom-pt-br-Bv4bHhuR.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-CTIYW10X.js → CreatedOnDcom-pt-pt-NNO1huza.js} +3 -3
  15. package/lib/src/brand-page/clients/brand-page.client.d.ts +9 -9
  16. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +103 -0
  17. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +178 -0
  18. package/lib/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.d.ts +0 -1
  19. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.d.ts +4 -2
  20. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.js +1 -0
  21. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +4 -2
  22. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +5 -4
  23. package/lib/src/brand-page/components/page/Page.mixin.d.ts +1 -1
  24. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  25. package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +3 -3
  26. package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +13 -13
  27. package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +13 -13
  28. package/lib/src/brand-page/constants/sections/footer-display.constants.js +1 -1
  29. package/lib/src/brand-page/models/index.d.ts +1 -1
  30. package/lib/src/brand-page/models/payment.model.d.ts +1 -1
  31. package/lib/src/brand-page/utils/logo.util.d.ts +14 -0
  32. package/lib/src/brand-page/utils/logo.util.js +19 -0
  33. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +21 -19
  34. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.js +1 -0
  35. package/lib/src/brand-page-maker/components/admin-background-settings/AdminBackgroundSettings.mixin.d.ts +10 -10
  36. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +3 -3
  37. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +170 -170
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +2 -1
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  41. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +0 -7
  42. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +148 -149
  43. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  44. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  45. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +4 -2
  46. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +1 -0
  47. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +4 -2
  48. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +1 -0
  49. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +5 -2
  50. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +1 -0
  51. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +4 -2
  52. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +1 -0
  53. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +4 -2
  54. package/lib/src/brand-page-maker/components/device/Device.mixin.js +1 -0
  55. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +4 -2
  56. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +1 -0
  57. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  58. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  59. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +27 -25
  60. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +1 -0
  61. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  62. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  63. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +17 -12
  64. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  65. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +29 -30
  66. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  67. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +1 -1
  68. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  69. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  70. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +2 -2
  71. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.d.ts +6 -7
  72. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.js +7 -12
  73. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  74. package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -1
  75. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  76. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  77. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  78. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  79. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +1 -2
  80. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +360 -360
  81. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +4 -4
  82. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +5 -5
  83. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -1
  84. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +5 -9
  85. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  86. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  87. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  88. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  89. package/lib/src/clients/brand-page-client.d.ts +16 -15
  90. package/lib/src/clients/media-client.d.ts +2 -2
  91. package/lib/src/css/library.brand-page-brandCrowd.min.css +323 -317
  92. package/lib/src/css/library.brand-page-brandPage.min.css +601 -317
  93. package/lib/src/css/library.brand-page-designCom.min.css +323 -317
  94. package/lib/src/css/library.brand-page-preview.min.css +579 -317
  95. package/lib/src/index.d.ts +1 -1
  96. package/lib/src/index.mjs +16 -15
  97. package/lib/src/{lib-BfgUqu0B.js → lib-IDusUqYG.js} +36316 -33381
  98. package/lib/src/lib.js +1 -1
  99. package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +13 -0
  100. package/lib/src/metadata-builder/builders/reorder-pages-builder.js +49 -0
  101. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +1 -1
  102. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +1 -1
  103. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +1 -1
  104. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +1 -1
  105. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  106. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  107. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  108. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  109. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  110. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +4 -2
  111. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  112. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +4 -2
  113. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +1 -0
  114. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +5 -2
  115. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +1 -0
  116. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +0 -1
  117. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +131 -129
  118. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +2 -1
  119. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +111 -110
  120. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +84 -81
  121. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +5 -0
  122. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +111 -109
  123. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +1 -14
  124. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +0 -1
  125. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +72 -70
  126. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +4 -3
  127. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  128. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +3 -1
  129. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +1 -0
  130. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  131. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +4 -3
  132. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  133. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  134. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +5 -6
  135. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +0 -1
  136. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  137. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +0 -1
  138. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +1 -2
  139. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +0 -1
  140. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +1 -2
  141. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  142. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  143. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +0 -1
  144. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  145. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +0 -1
  146. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +0 -1
  147. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +39 -39
  148. package/lib/src/shared/content-settings/utils.js +0 -1
  149. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +6 -4
  150. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +1 -0
  151. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +4 -2
  152. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +1 -0
  153. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +20 -21
  154. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  155. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +50 -51
  156. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +6 -4
  157. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +1 -0
  158. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  159. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  160. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +7 -5
  161. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +1 -0
  162. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +8 -6
  163. package/lib/src/shared/my-designs/MyDesigns.mixin.js +1 -0
  164. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +8 -5
  165. package/lib/src/shared/my-uploads/MyMedia.mixin.js +1 -0
  166. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +8 -5
  167. package/lib/src/shared/my-uploads/MyUploads.mixin.js +1 -0
  168. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +5 -3
  169. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +1 -0
  170. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  171. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  172. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +27 -28
  173. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +0 -2
  174. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +182 -177
  175. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +175 -175
  176. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  177. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  178. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  179. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +0 -1
  180. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  181. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  182. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +60 -60
  183. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  184. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  185. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +10 -11
  186. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +3 -4
  187. package/package.json +60 -56
  188. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +7 -5
  189. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +210 -0
  190. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  191. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  192. package/src/brand-page/components/image/Image.test.ts +1 -1
  193. package/src/brand-page/components/images-section/ImagesSection.vue +0 -1
  194. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  195. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +1 -0
  196. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +15 -6
  197. package/src/brand-page/components/page-footer/PageFooter.vue +1 -0
  198. package/src/brand-page/components/page-header/HeaderLayout.vue +12 -6
  199. package/src/brand-page/components/page-header/PageHeader.vue +1 -0
  200. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  201. package/src/brand-page/components/shop/CartModal.vue +1 -3
  202. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  203. package/src/brand-page/components/shop/PaymentModal.vue +1 -5
  204. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  205. package/src/brand-page/components/shop/Shop.vue +1 -1
  206. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  207. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  208. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +3 -3
  209. package/src/brand-page/components/text-wrapper/TextWrapper.vue +3 -1
  210. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  211. package/src/brand-page/models/payment.model.ts +2 -1
  212. package/src/brand-page/models/shop.model.ts +0 -2
  213. package/src/brand-page/models/user-personalisation.model.ts +1 -2
  214. package/src/brand-page/utils/logo.util.test.ts +54 -1
  215. package/src/brand-page/utils/logo.util.ts +23 -0
  216. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  217. package/src/brand-page/utils/migration/migration-02.ts +0 -1
  218. package/src/brand-page/utils/migration/migration-03.ts +0 -1
  219. package/src/brand-page/utils/migration/migration-04.ts +0 -1
  220. package/src/brand-page/utils/migration/migration-05.ts +1 -5
  221. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  222. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  223. package/src/brand-page/view-models.ts +38 -56
  224. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  225. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  226. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  227. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  228. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  229. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +1 -0
  230. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +1 -0
  231. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +2 -2
  232. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +2 -5
  233. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -5
  234. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +0 -8
  235. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +0 -2
  236. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +1 -0
  237. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  238. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +1 -2
  239. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +1 -0
  240. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +1 -0
  241. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +1 -0
  242. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +1 -0
  243. package/src/brand-page-maker/components/device/Device.mixin.ts +1 -0
  244. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +1 -0
  245. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +3 -1
  246. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +1 -4
  247. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  248. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +1 -0
  249. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  250. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +0 -1
  251. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +0 -1
  252. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +1 -5
  253. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  254. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  255. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  256. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  257. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +1 -1
  258. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  259. package/src/brand-page-maker/composables/useUndoRedoFlag.ts +7 -13
  260. package/src/brand-page-maker/constants/config-settings-constant.ts +3 -3
  261. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  262. package/src/brand-page-maker/models/button-styles-config.ts +4 -2
  263. package/src/brand-page-maker/models/content-settings-configs.ts +4 -2
  264. package/src/brand-page-maker/models/navigation-style-configs.ts +5 -6
  265. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +0 -1
  266. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +3 -5
  267. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +1 -3
  268. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +4 -20
  269. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  270. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  271. package/src/lib.ts +1 -0
  272. package/src/metadata-builder/builders/reorder-pages-builder.ts +80 -0
  273. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +1 -1
  274. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +1 -1
  275. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +1 -1
  276. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +1 -1
  277. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  278. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  279. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  280. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  281. package/src/shared/color-picker/components/ColorPicker.mixin.ts +2 -7
  282. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +1 -0
  283. package/src/shared/common/NumberInput.vue +1 -0
  284. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  285. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +1 -0
  286. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +1 -0
  287. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +1 -0
  288. package/src/shared/content-settings/components/color-field/ColorField.vue +3 -10
  289. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  290. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +1 -0
  291. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +5 -0
  292. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +1 -14
  293. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +4 -6
  294. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +1 -0
  295. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  296. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  297. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  298. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  299. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  300. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +2 -8
  301. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  302. package/src/shared/content-settings/models.ts +3 -2
  303. package/src/shared/content-settings/utils.ts +0 -1
  304. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +1 -0
  305. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  306. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +1 -0
  307. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +1 -0
  308. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  309. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +0 -1
  310. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +1 -0
  311. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  312. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  313. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  314. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  315. package/src/shared/logo-versions/LogoVersions.mixin.ts +1 -0
  316. package/src/shared/my-designs/MyDesigns.mixin.ts +1 -0
  317. package/src/shared/my-uploads/MyMedia.mixin.ts +1 -0
  318. package/src/shared/my-uploads/MyMediaSelectionItem.vue +2 -1
  319. package/src/shared/my-uploads/MyUploads.mixin.ts +1 -0
  320. package/src/shared/my-uploads/models.ts +1 -2
  321. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +1 -0
  322. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  323. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +0 -3
  324. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  325. package/src/shared/page-settings/components/page-settings/PageSettings.vue +1 -2
  326. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  327. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  328. package/src/shared/page-settings/store/page-settings-store.test.ts +4 -8
  329. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +0 -1
  330. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  331. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  332. package/src/shared/unsplash-library/UnsplashLibrary.vue +2 -6
  333. package/src/shared/video-library/VideoLibrary.vue +1 -1
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.19.2",
4
+ "version": "6.0.0-undo-redo-1",
5
5
  "author": "Design.com Eng",
6
6
  "license": "UNLICENSED",
7
7
  "type": "module",
@@ -55,9 +55,9 @@
55
55
  "pre-push": "npm run test"
56
56
  },
57
57
  "dependencies": {
58
- "@ckpack/vue-color": "1.4.1",
59
- "@designcrowd/fe-shared-lib": "1.8.14",
60
- "@pinia/nuxt": "0.11.0",
58
+ "@ckpack/vue-color": "1.6.0",
59
+ "@designcrowd/fe-shared-lib": "2.0.0",
60
+ "@pinia/nuxt": "0.11.3",
61
61
  "@storybook/react": "9.0.4",
62
62
  "@tiptap/extension-bubble-menu": "^2.14.0",
63
63
  "@tiptap/extension-character-count": "2.11.7",
@@ -72,41 +72,42 @@
72
72
  "@tiptap/extension-underline": "2.11.5",
73
73
  "@tiptap/starter-kit": "2.11.5",
74
74
  "@tiptap/vue-3": "2.11.5",
75
- "axios": "1.6.7",
75
+ "axios": "1.13.5",
76
76
  "chroma-js": "2.4.2",
77
77
  "click-outside-vue3": "4.0.1",
78
- "color": "5.0.0",
78
+ "color": "5.0.3",
79
79
  "config": "3.3.10",
80
- "core-js": "3.35.1",
80
+ "core-js": "3.48.0",
81
81
  "css-color-names": "1.0.1",
82
82
  "date-utils": "1.2.21",
83
83
  "deepmerge": "4.3.1",
84
- "dompurify": "3.2.6",
84
+ "dompurify": "3.3.1",
85
85
  "dropzone-vue3": "1.0.2",
86
86
  "express": "4.18.2",
87
- "fs-extra": "11.2.0",
88
- "http-errors": "2.0.0",
87
+ "fs-extra": "11.3.3",
88
+ "http-errors": "2.0.1",
89
89
  "http-proxy-middleware": "2.0.6",
90
- "i18next": "25.2.1",
90
+ "i18next": "25.8.5",
91
91
  "jquery": "3.7.1",
92
92
  "lodash.clonedeep": "4.5.0",
93
93
  "lodash.debounce": "4.0.8",
94
94
  "lodash.throttle": "4.1.1",
95
95
  "lodash.uniq": "4.5.0",
96
- "nuxt": "3.17.4",
97
- "pinia": "3.0.2",
96
+ "nuxt": "4.4.5",
97
+ "pinia": "3.0.4",
98
98
  "portal-vue": "3.0.0",
99
99
  "raygun": "0.13.2",
100
- "raygun4js": "3.0.0",
100
+ "raygun4js": "3.1.4",
101
101
  "regenerator-runtime": "0.14.1",
102
102
  "slugify": "1.6.6",
103
103
  "svg-parser": "2.0.4",
104
104
  "uuid": "9.0.1",
105
- "validator": "13.11.0",
106
- "vue": "3.5.15",
105
+ "validator": "13.15.26",
106
+ "vue": "3.5.35",
107
107
  "vue-cropperjs": "5.0.0",
108
- "vue-router": "4.5.0",
108
+ "vue-router": "5.1.0",
109
109
  "vue-select": "4.0.0-beta.6",
110
+ "unstorage": "^1.17.5",
110
111
  "vue3-lazy-hydration": "1.2.1",
111
112
  "vue3-shortkey": "4.0.0",
112
113
  "vuedraggable": "4.1.0",
@@ -123,49 +124,49 @@
123
124
  "optionalDependencies": {
124
125
  "@esbuild/darwin-arm64": "0.27.1",
125
126
  "@esbuild/linux-x64": "0.27.1",
126
- "@rollup/rollup-linux-arm64-gnu": "4.12.0",
127
- "@rollup/rollup-linux-x64-gnu": "4.12.0"
127
+ "@rollup/rollup-linux-arm64-gnu": "4.43.0",
128
+ "@rollup/rollup-linux-x64-gnu": "4.43.0"
128
129
  },
129
130
  "devDependencies": {
130
131
  "@faker-js/faker": "8.4.0",
131
132
  "@frsource/cypress-plugin-visual-regression-diff": "3.3.10",
132
- "@nuxt/test-utils": "3.19.1",
133
- "@nuxt/types": "2.17.3",
133
+ "@nuxt/test-utils": "4.0.0",
134
+ "@nuxt/types": "2.18.1",
134
135
  "@nuxt/typescript-build": "3.0.2",
135
136
  "@storybook/addon-themes": "9.0.4",
136
137
  "@storybook/vue3": "9.0.4",
137
138
  "@storybook/vue3-vite": "9.0.4",
138
139
  "@stylistic/eslint-plugin": "1.5.4",
139
140
  "@types/axios-mock-adapter": "1.10.0",
140
- "@types/braces": "3.0.4",
141
+ "@types/braces": "3.0.5",
141
142
  "@types/dompurify": "3.2.0",
142
143
  "@types/express": "4.17.21",
143
144
  "@types/faker": "6.6.8",
144
145
  "@types/google.maps": "3.65.1",
145
146
  "@types/istanbul-lib-report": "3.0.3",
146
- "@types/jquery": "3.5.30",
147
+ "@types/jquery": "3.5.33",
147
148
  "@types/lodash.clonedeep": "4.5.9",
148
- "@types/mssql": "9.1.4",
149
+ "@types/mssql": "9.1.9",
149
150
  "@types/multer": "1.4.11",
150
151
  "@types/raygun4js": "3.0.0",
151
152
  "@types/react": "18.2.48",
152
153
  "@types/resize-observer-browser": "0.1.11",
153
- "@types/stripe-v3": "3.1.32",
154
+ "@types/stripe-v3": "3.1.33",
154
155
  "@types/svg-parser": "2.0.6",
155
- "@types/uglify-js": "3.17.4",
156
- "@types/unist": "3.0.2",
156
+ "@types/uglify-js": "3.17.5",
157
+ "@types/unist": "3.0.3",
157
158
  "@types/uuid": "9.0.8",
158
- "@types/validator": "13.11.8",
159
+ "@types/validator": "13.15.10",
159
160
  "@types/yargs-parser": "21.0.3",
160
161
  "@typescript-eslint/eslint-plugin": "6.20.0",
161
162
  "@typescript-eslint/parser": "6.20.0",
162
- "@vitejs/plugin-vue": "5.2.4",
163
+ "@vitejs/plugin-vue": "6.0.7",
163
164
  "@vue/eslint-config-typescript": "12.0.0",
164
- "@vue/test-utils": "2.4.4",
165
- "autoprefixer": "10.4.17",
165
+ "@vue/test-utils": "2.4.6",
166
+ "autoprefixer": "10.4.24",
166
167
  "axios-mock-adapter": "1.22.0",
167
168
  "copyfiles": "2.4.1",
168
- "cors": "2.8.5",
169
+ "cors": "2.8.6",
169
170
  "cross-env": "7.0.3",
170
171
  "css-loader": "6.9.1",
171
172
  "cypress": "13.6.3",
@@ -173,50 +174,50 @@
173
174
  "eslint-config-prettier": "9.1.0",
174
175
  "eslint-friendly-formatter": "4.0.1",
175
176
  "eslint-plugin-cypress": "2.15.1",
176
- "eslint-plugin-prettier": "5.1.3",
177
+ "eslint-plugin-prettier": "5.5.5",
177
178
  "eslint-plugin-vue": "9.21.1",
178
179
  "file-loader": "6.2.0",
179
- "happy-dom": "14.12.3",
180
- "html-loader": "5.0.0",
181
- "husky": "9.0.7",
180
+ "happy-dom": "20.6.1",
181
+ "html-loader": "5.1.0",
182
+ "husky": "9.1.7",
182
183
  "imports-loader": "5.0.0",
183
- "jest-image-snapshot": "6.4.0",
184
- "js-base64": "3.7.6",
185
- "jsdom": "24.0.0",
184
+ "jest-image-snapshot": "6.5.1",
185
+ "js-base64": "3.7.8",
186
+ "jsdom": "27.4.0",
186
187
  "jsdom-global": "3.0.2",
187
188
  "lint-staged": "15.2.0",
188
- "mini-css-extract-plugin": "2.7.7",
189
- "msw": "2.3.1",
190
- "msw-storybook-addon": "2.0.3",
189
+ "mini-css-extract-plugin": "2.10.0",
190
+ "msw": "2.12.10",
191
+ "msw-storybook-addon": "2.0.6",
191
192
  "multer": "1.4.3",
192
- "nodemon": "3.0.3",
193
+ "nodemon": "3.1.11",
193
194
  "npm-run-all": "4.1.5",
194
195
  "nyc": "15.1.0",
195
196
  "performance-now": "2.1.0",
196
- "picocolors": "1.0.0",
197
- "playwright-core": "1.47.0",
198
- "postcss": "8.4.38",
199
- "postcss-cli": "11.0.0",
200
- "postcss-loader": "8.0.0",
197
+ "picocolors": "1.1.1",
198
+ "playwright-core": "1.58.2",
199
+ "postcss": "8.5.6",
200
+ "postcss-cli": "11.0.1",
201
+ "postcss-loader": "8.2.0",
201
202
  "postcss-nested": "6.0.1",
202
203
  "postcss-prefix-selector": "1.16.0",
203
- "prettier": "3.2.4",
204
+ "prettier": "3.8.1",
204
205
  "request": "2.88.2",
205
206
  "rimraf": "5.0.5",
206
- "rollup-plugin-visualizer": "5.12.0",
207
+ "rollup-plugin-visualizer": "6.0.11",
207
208
  "run-func": "3.0.0",
208
209
  "shx": "0.3.4",
209
210
  "storybook": "9.0.4",
210
211
  "style-loader": "3.3.4",
211
212
  "tailwindcss": "3.4.1",
212
213
  "timsort": "0.3.0",
213
- "ts-loader": "9.5.1",
214
+ "ts-loader": "9.5.4",
214
215
  "ts-node": "10.9.2",
215
- "typescript": "5.3.3",
216
- "vite": "6.3.5",
216
+ "typescript": "5.9.3",
217
+ "vite": "7.3.5",
217
218
  "vite-plugin-commonjs": "0.10.4",
218
- "vite-plugin-node-polyfills": "0.23.0",
219
- "vitest": "3.1.4",
219
+ "vite-plugin-node-polyfills": "0.25.0",
220
+ "vitest": "4.0.18",
220
221
  "vue-eslint-parser": "9.4.2",
221
222
  "vue-loader": "17.4.2",
222
223
  "vue-style-loader": "4.1.3",
@@ -225,7 +226,10 @@
225
226
  "overrides": {
226
227
  "@achrinza/node-ipc": "10.1.10",
227
228
  "@parcel/watcher": "2.1.0",
228
- "rollup-plugin-visualizer": "5.12.0",
229
+ "@storybook/vue3-vite": {
230
+ "vite": "$vite"
231
+ },
232
+ "rollup-plugin-visualizer": "6.0.11",
229
233
  "vite": {
230
234
  "rollup": "npm:@rollup/wasm-node"
231
235
  }
@@ -10,11 +10,13 @@ import {
10
10
  } from '@brand-page/models';
11
11
  import type { AboutSectionViewModel } from '@brand-page/view-models';
12
12
 
13
- global.ResizeObserver = vi.fn().mockImplementation(() => ({
14
- observe: vi.fn(),
15
- unobserve: vi.fn(),
16
- disconnect: vi.fn(),
17
- }));
13
+ global.ResizeObserver = vi.fn(function () {
14
+ return {
15
+ observe: vi.fn(),
16
+ unobserve: vi.fn(),
17
+ disconnect: vi.fn(),
18
+ } as unknown as ResizeObserver;
19
+ });
18
20
 
19
21
  const createTestBrandPageContext = (): BrandPageContext => ({
20
22
  brandPageSlug: faker.person.firstName(),
@@ -0,0 +1,210 @@
1
+ import { defineComponent } from 'vue';
2
+ import type { PropType } from 'vue';
3
+ import ComponentCommonMixin from '../mixins/component-common.mixin';
4
+ import type {
5
+ BannerSectionViewModel,
6
+ ButtonViewModel,
7
+ } from '@brand-page/view-models';
8
+ import { hasValidButton as shouldShowButtonUtil } from '../../../utils/validator.util';
9
+ import type { BrandPageContext } from '@brand-page/models';
10
+ import {
11
+ ALIGN_CENTERED,
12
+ ALIGN_LEFT_ALIGNED,
13
+ ALIGN_RIGHT_ALIGNED,
14
+ BIG_IMAGE,
15
+ ALIGN_LEFT_BIG_IMAGE,
16
+ ALIGN_RIGHT_FULL_IMAGE,
17
+ ALIGN_LEFT_FULL_IMAGE,
18
+ ALIGN_CARD_CENTER_IMAGE,
19
+ ALIGN_CARD_LEFT_IMAGE,
20
+ } from '../../constants';
21
+ import { getRenderText, escapeContentText } from '@brand-page/utils';
22
+ import { hasRTEContent } from '@brand-page-maker/utils';
23
+
24
+ export default defineComponent({
25
+ mixins: [ComponentCommonMixin],
26
+ props: {
27
+ viewModel: {
28
+ type: Object as PropType<BannerSectionViewModel>,
29
+ required: true,
30
+ },
31
+ context: {
32
+ type: Object as PropType<BrandPageContext>,
33
+ required: true,
34
+ },
35
+ containerClientWidth: {
36
+ type: Number as PropType<number | undefined>,
37
+ required: false,
38
+ default: undefined,
39
+ },
40
+ containerClientHeight: {
41
+ type: Number as PropType<number | undefined>,
42
+ required: false,
43
+ default: undefined,
44
+ },
45
+ contentIndex: {
46
+ type: Number,
47
+ required: false,
48
+ default: undefined,
49
+ },
50
+ },
51
+ data() {
52
+ return {
53
+ shouldStackOnTop: false,
54
+ };
55
+ },
56
+ mounted() {
57
+ this.$nextTick(() => {
58
+ window.addEventListener('resize', this.onResize);
59
+ });
60
+ },
61
+ unmounted() {
62
+ if (typeof window !== undefined) {
63
+ window.removeEventListener(`resize`, this.onResize);
64
+ }
65
+ },
66
+ computed: {
67
+ displayAlignClass() {
68
+ switch (this.viewModel.displayStyle) {
69
+ case ALIGN_CENTERED:
70
+ return 'tw-items-center tw-w-full';
71
+ case BIG_IMAGE:
72
+ return 'tw-items-center tw-w-full';
73
+ case ALIGN_LEFT_ALIGNED:
74
+ return 'tw-items-start tw-w-2/3';
75
+ case ALIGN_RIGHT_ALIGNED:
76
+ return 'tw-items-end tw-w-2/3';
77
+ case ALIGN_LEFT_BIG_IMAGE:
78
+ return 'tw-items-start tw-w-2/3';
79
+ case ALIGN_CARD_CENTER_IMAGE:
80
+ return 'tw-items-center tw-w-full';
81
+ case ALIGN_CARD_LEFT_IMAGE:
82
+ return 'tw-items-end';
83
+ default:
84
+ return '';
85
+ }
86
+ },
87
+ displayButtonClass() {
88
+ if (this.viewModel.buttonTextStyle) {
89
+ switch (this.viewModel.buttonTextStyle.textAlign) {
90
+ case 'left':
91
+ return 'tw-justify-start';
92
+ case 'center':
93
+ return 'tw-justify-center';
94
+ case 'right':
95
+ return 'tw-justify-end';
96
+ default:
97
+ return '';
98
+ }
99
+ } else {
100
+ return this.viewModel.displayStyle === ALIGN_CARD_CENTER_IMAGE ||
101
+ this.viewModel.displayStyle === ALIGN_CENTERED
102
+ ? 'tw-justify-center'
103
+ : 'tw-justify-start';
104
+ }
105
+ },
106
+ isLeftImageAligned(): boolean {
107
+ if (this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE) {
108
+ return true;
109
+ }
110
+
111
+ return false;
112
+ },
113
+ isRightImageAligned(): boolean {
114
+ if (this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE) {
115
+ return true;
116
+ }
117
+
118
+ return false;
119
+ },
120
+
121
+ isDividedContent(): boolean {
122
+ if (
123
+ this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE ||
124
+ this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE
125
+ ) {
126
+ return true;
127
+ }
128
+
129
+ return false;
130
+ },
131
+ isCardBannerContent(): boolean {
132
+ if (
133
+ this.viewModel.displayStyle === ALIGN_CARD_CENTER_IMAGE ||
134
+ this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE
135
+ ) {
136
+ return true;
137
+ }
138
+
139
+ return false;
140
+ },
141
+ isCardAlignedOnLeft() {
142
+ return this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE;
143
+ },
144
+ getbuttonViewModel(): ButtonViewModel {
145
+ const { buttonViewModel, buttonLinkType, pageSlug } = this.viewModel;
146
+
147
+ buttonViewModel.buttonLinkType = buttonLinkType;
148
+ buttonViewModel.pageSlug = pageSlug;
149
+
150
+ return buttonViewModel;
151
+ },
152
+
153
+ shouldShowButton(): boolean {
154
+ return shouldShowButtonUtil({
155
+ buttonText: this.viewModel.buttonText,
156
+ buttonViewModel: this.viewModel.buttonViewModel,
157
+ });
158
+ },
159
+
160
+ isHorizontalAligned(): boolean {
161
+ return (
162
+ this.viewModel.displayStyle === ALIGN_LEFT_ALIGNED ||
163
+ this.viewModel.displayStyle === ALIGN_RIGHT_ALIGNED ||
164
+ this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE ||
165
+ this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE
166
+ );
167
+ },
168
+ isBigImageAligned(): boolean {
169
+ return (
170
+ this.viewModel.displayStyle === ALIGN_LEFT_BIG_IMAGE ||
171
+ this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE
172
+ );
173
+ },
174
+ renderText(): string {
175
+ if (!this.viewModel.description) {
176
+ return '';
177
+ }
178
+
179
+ if (hasRTEContent(this.viewModel.description)) {
180
+ return this.viewModel.description;
181
+ } else {
182
+ return getRenderText(this.viewModel.description);
183
+ }
184
+ },
185
+ hasDescriptionText(): boolean {
186
+ if (hasRTEContent(this.viewModel.description)) {
187
+ return escapeContentText(this.viewModel.description) !== '';
188
+ } else {
189
+ return this.viewModel?.description?.length > 0;
190
+ }
191
+ },
192
+ overlayColor(): BrandPageCssStyle {
193
+ return this.viewModel.overlayColor || 'rgb(0,0,0)';
194
+ },
195
+ opacity(): number {
196
+ return this.viewModel.overlayOpacity;
197
+ },
198
+ backgroundOverlay(): BrandPageCssStyle {
199
+ return {
200
+ background: this.overlayColor.backgroundColor,
201
+ opacity: `${this.opacity}%`,
202
+ };
203
+ },
204
+ },
205
+ methods: {
206
+ onResize() {
207
+ this.shouldStackOnTop = window.innerWidth < 640;
208
+ },
209
+ },
210
+ });
@@ -32,7 +32,7 @@
32
32
  </footer>
33
33
  </template>
34
34
  <script setup lang="ts">
35
- import { computed, onMounted, reactive, ref, watch, shallowRef } from 'vue';
35
+ import { computed, onMounted, reactive, watch, shallowRef } from 'vue';
36
36
  import { BRAND_PAGE_TYPES, type BrandPageContext } from '@brand-page/models';
37
37
  import {
38
38
  Icon,
@@ -52,7 +52,7 @@ export default defineComponent({
52
52
  shouldFitImage(): boolean {
53
53
  return Boolean(
54
54
  this.viewModel.aspectRatio &&
55
- ASPECT_RATIOS[this.viewModel.aspectRatio as string],
55
+ ASPECT_RATIOS[this.viewModel.aspectRatio as string],
56
56
  );
57
57
  },
58
58
  altText(): string {
@@ -1,4 +1,4 @@
1
- import { mount, shallowMount } from '@vue/test-utils';
1
+ import { mount } from '@vue/test-utils';
2
2
  import { faker } from '@faker-js/faker';
3
3
  import Image from './Image.vue';
4
4
  import {
@@ -57,7 +57,6 @@
57
57
  </template>
58
58
  <script setup lang="ts">
59
59
  import { computed, reactive, ref, watch } from 'vue';
60
- import type { PropType } from 'vue';
61
60
  import TextMediaSection from '../text-media-section/TextMediaSection.vue';
62
61
  import ImageGalleryModal from '../image-gallery/ImageGalleryModal.vue';
63
62
  import BpImage from '../image/Image.vue';