@designcrowd/library.brand-page 5.15.21 → 5.15.24-ast-previews-2

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 (196) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DZ5Vucii.js → CreatedOnBrandCrowd-de-de-eUKSDWA0.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DknGL3Zu.js → CreatedOnBrandCrowd-en-us-C_uqDCbw.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-NwtO4oKe.js → CreatedOnBrandCrowd-es-es-D00N7D1y.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-DfUf3ajR.js → CreatedOnBrandCrowd-fr-ca-C_Y11ve1.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-DfUf3ajR.js → CreatedOnBrandCrowd-fr-fr-C_Y11ve1.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-TjO5ceZp.js → CreatedOnBrandCrowd-pt-br-b-NirRyH.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-TjO5ceZp.js → CreatedOnBrandCrowd-pt-pt-b-NirRyH.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-CiEaeern.js → CreatedOnDcom-de-de-DGenvk6d.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-BsQTy39u.js → CreatedOnDcom-en-us-BNO9QrD0.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-BgUs8RD2.js → CreatedOnDcom-es-es-BG_gd286.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-5Rt16LTN.js → CreatedOnDcom-fr-ca-DLBcHowo.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DRajgiLq.js → CreatedOnDcom-fr-fr-jInQfULX.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-CpGsGCmj.js → CreatedOnDcom-pt-br-Di1Kb5Xa.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-C1CjD8Ks.js → CreatedOnDcom-pt-pt-BWZ0TIJv.js} +1 -1
  15. package/lib/src/brand-page/components/media/Media.mixin.d.ts +12 -0
  16. package/lib/src/brand-page/components/media/Media.mixin.js +5 -0
  17. package/lib/src/brand-page/components/page/Page.stories.js +1 -1
  18. package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +1 -0
  19. package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +1 -0
  20. package/lib/src/brand-page/models/brand-page-context.model.d.ts +1 -0
  21. package/lib/src/brand-page/models/index.d.ts +16 -0
  22. package/lib/src/brand-page/models/index.js +19 -0
  23. package/lib/src/brand-page/models/payment.model.d.ts +7 -0
  24. package/lib/src/brand-page/utils/migration/migration-07.js +1 -1
  25. package/lib/src/brand-page/utils/view-model.util.d.ts +16 -5
  26. package/lib/src/brand-page/utils/view-model.util.js +48 -8
  27. package/lib/src/brand-page/view-models.d.ts +19 -1
  28. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +1 -0
  29. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +4 -0
  30. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
  31. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +1 -0
  32. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +4 -0
  33. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +1 -0
  34. package/lib/src/brand-page-maker/components/preview/Preview.mixin.js +1 -0
  35. package/lib/src/brand-page-maker/components/preview/Preview.stories.js +1 -1
  36. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +1 -0
  37. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +1 -0
  38. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +1 -0
  39. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +228 -0
  40. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +72 -6
  41. package/lib/src/brand-page-maker/constants/config-settings-constant.js +28 -11
  42. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +12 -0
  43. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +20 -3
  44. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -0
  45. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +35 -4
  46. package/lib/src/brand-page-maker/stores/index.d.ts +1 -0
  47. package/lib/src/brand-page-maker/stores/index.js +1 -0
  48. package/lib/src/brand-page-maker/stores/video/index.d.ts +1 -0
  49. package/lib/src/brand-page-maker/stores/video/index.js +1 -0
  50. package/lib/src/brand-page-maker/stores/video/video-store.d.ts +27 -0
  51. package/lib/src/brand-page-maker/stores/video/video-store.js +27 -0
  52. package/lib/src/{bundled-translations-wzmaFfsm.js → bundled-translations-D9iHE5G9.js} +1 -1
  53. package/lib/src/bundled-translations-DfL3kp2E.js +27 -0
  54. package/lib/src/bundled-translations.de-DE-C-Q--DoV.js +27 -0
  55. package/lib/src/bundled-translations.de-DE-DW3iDx_G.js +161 -0
  56. package/lib/src/bundled-translations.es-ES-C2bDEZN2.js +27 -0
  57. package/lib/src/bundled-translations.es-ES-C9I8wDyq.js +161 -0
  58. package/lib/src/bundled-translations.fr-CA-BT6vKgDQ.js +27 -0
  59. package/lib/src/bundled-translations.fr-CA-C0NN8DsO.js +161 -0
  60. package/lib/src/bundled-translations.fr-FR-BekT99Kc.js +27 -0
  61. package/lib/src/bundled-translations.fr-FR-oKV5NyE1.js +161 -0
  62. package/lib/src/bundled-translations.pt-BR-CTvCfv1X.js +161 -0
  63. package/lib/src/bundled-translations.pt-BR-DjzgcAmv.js +27 -0
  64. package/lib/src/bundled-translations.pt-PT-CbwxwRY1.js +161 -0
  65. package/lib/src/bundled-translations.pt-PT-ZxaU_1Hw.js +27 -0
  66. package/lib/src/bundles/bundled-translations.de-DE.json +4 -0
  67. package/lib/src/bundles/bundled-translations.es-ES.json +4 -0
  68. package/lib/src/bundles/bundled-translations.fr-CA.json +4 -0
  69. package/lib/src/bundles/bundled-translations.fr-FR.json +4 -0
  70. package/lib/src/bundles/bundled-translations.json +4 -0
  71. package/lib/src/bundles/bundled-translations.pt-BR.json +4 -0
  72. package/lib/src/bundles/bundled-translations.pt-PT.json +4 -0
  73. package/lib/src/clients/brand-page-client.d.ts +1 -0
  74. package/lib/src/clients/brand-page-client.js +11 -1
  75. package/lib/src/clients/gettyimages-client.js +1 -1
  76. package/lib/src/css/library.brand-page-brandCrowd.min.css +59 -44
  77. package/lib/src/css/library.brand-page-brandPage.min.css +59 -44
  78. package/lib/src/css/library.brand-page-designCom.min.css +59 -44
  79. package/lib/src/css/library.brand-page-preview.min.css +59 -44
  80. package/lib/src/helpers/ts.helper.d.ts +1 -0
  81. package/lib/src/helpers/ts.helper.js +22 -0
  82. package/lib/src/index.d.ts +1 -1
  83. package/lib/src/index.mjs +183 -180
  84. package/lib/src/{lib-BpQH-xbj.js → lib-Crz0R1bS.js} +20226 -19710
  85. package/lib/src/lib.js +1 -1
  86. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +1 -1
  87. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +4 -0
  88. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +6 -1
  89. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.js +4 -0
  90. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +2 -0
  91. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +1 -0
  92. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +4 -0
  93. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +1 -1
  94. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +2 -0
  95. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +1 -0
  96. package/lib/src/shared/content-settings/components/image-field/ImageField.mixin.d.ts +23 -1
  97. package/lib/src/shared/content-settings/components/image-field/ImageField.mixin.js +25 -1
  98. package/lib/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.mixin.d.ts +1 -0
  99. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +79 -1
  100. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +16 -0
  101. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +1 -1
  102. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +1 -1
  103. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +1 -1
  104. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +1 -1
  105. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +1 -1
  106. package/lib/src/shared/content-settings/models.d.ts +2 -0
  107. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +3 -0
  108. package/lib/src/shared/content-settings/store/content-settings-store.js +37 -1
  109. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +2 -0
  110. package/lib/src/shared/my-uploads/models.d.ts +12 -0
  111. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +1 -0
  112. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +4 -0
  113. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +4 -0
  114. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +2 -1
  115. package/lib/src/shared/page-settings/store/page-settings-store.js +35 -0
  116. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +1 -0
  117. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +1 -0
  118. package/lib/src/shared/template-settings/store/template-settings-store.js +18 -5
  119. package/package.json +2 -2
  120. package/src/brand-page/components/banner-section/BannerSection.vue +6 -1
  121. package/src/brand-page/components/media/Media.mixin.ts +6 -0
  122. package/src/brand-page/components/media/Media.vue +18 -3
  123. package/src/brand-page/components/media/Video.vue +62 -0
  124. package/src/brand-page/components/page/Page.stories.ts +1 -0
  125. package/src/brand-page/components/page/Page.vue +2 -2
  126. package/src/brand-page/models/brand-page-context.model.ts +1 -0
  127. package/src/brand-page/models/index.ts +34 -0
  128. package/src/brand-page/models/payment.model.ts +8 -0
  129. package/src/brand-page/utils/migration/migration-07.ts +6 -4
  130. package/src/brand-page/utils/view-model.util.test.ts +10 -2
  131. package/src/brand-page/utils/view-model.util.ts +93 -7
  132. package/src/brand-page/view-models.ts +24 -0
  133. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
  134. package/src/brand-page-maker/components/preview/Preview.mixin.ts +1 -0
  135. package/src/brand-page-maker/components/preview/Preview.stories.ts +1 -0
  136. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +93 -5
  137. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +40 -4
  138. package/src/brand-page-maker/components/template-preview-with-state/TemplatePreviewWithState.vue +4 -6
  139. package/src/brand-page-maker/constants/config-settings-constant.ts +30 -10
  140. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +46 -1
  141. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +41 -1
  142. package/src/brand-page-maker/stores/index.ts +1 -0
  143. package/src/brand-page-maker/stores/video/index.ts +1 -0
  144. package/src/brand-page-maker/stores/video/video-store.ts +47 -0
  145. package/src/bundles/bundled-translations.de-DE.json +4 -0
  146. package/src/bundles/bundled-translations.es-ES.json +4 -0
  147. package/src/bundles/bundled-translations.fr-CA.json +4 -0
  148. package/src/bundles/bundled-translations.fr-FR.json +4 -0
  149. package/src/bundles/bundled-translations.json +4 -0
  150. package/src/bundles/bundled-translations.pt-BR.json +4 -0
  151. package/src/bundles/bundled-translations.pt-PT.json +4 -0
  152. package/src/clients/brand-page-client.ts +20 -1
  153. package/src/clients/gettyimages-client.js +1 -1
  154. package/src/helpers/ts.helper.ts +30 -0
  155. package/src/lib.ts +1 -0
  156. package/src/shared/common/i18n/common.de-DE.json +1 -0
  157. package/src/shared/common/i18n/common.es-ES.json +1 -0
  158. package/src/shared/common/i18n/common.fr-CA.json +1 -0
  159. package/src/shared/common/i18n/common.fr-FR.json +1 -0
  160. package/src/shared/common/i18n/common.json +2 -0
  161. package/src/shared/common/i18n/common.pt-BR.json +1 -0
  162. package/src/shared/common/i18n/common.pt-PT.json +1 -0
  163. package/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.ts +12 -1
  164. package/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.vue +1 -0
  165. package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +3 -0
  166. package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +3 -0
  167. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +3 -0
  168. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +3 -0
  169. package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +4 -0
  170. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +3 -0
  171. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +3 -0
  172. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +1 -0
  173. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +1 -0
  174. package/src/shared/content-settings/components/image-field/ImageField.mixin.ts +31 -1
  175. package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +34 -0
  176. package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.vue +23 -8
  177. package/src/shared/content-settings/components/replace-image-base-settings/ReplaceImageBaseSettings.vue +10 -2
  178. package/src/shared/content-settings/models.ts +3 -0
  179. package/src/shared/content-settings/store/content-settings-store.ts +68 -0
  180. package/src/shared/my-uploads/models.ts +16 -0
  181. package/src/shared/page-settings/store/page-settings-store.ts +58 -0
  182. package/src/shared/template-settings/store/template-settings-store.ts +27 -14
  183. package/src/shared/video-library/VideoLibrary.vue +32 -11
  184. package/lib/src/bundled-translations-BMr0LtzI.js +0 -27
  185. package/lib/src/bundled-translations.de-DE-BDSwnN6z.js +0 -27
  186. package/lib/src/bundled-translations.de-DE-BNwDY0Gw.js +0 -161
  187. package/lib/src/bundled-translations.es-ES-B4FHib2V.js +0 -27
  188. package/lib/src/bundled-translations.es-ES-DTvCIjvS.js +0 -161
  189. package/lib/src/bundled-translations.fr-CA-5oL4PLEx.js +0 -161
  190. package/lib/src/bundled-translations.fr-CA-SQDJwXv_.js +0 -27
  191. package/lib/src/bundled-translations.fr-FR-B84T67W5.js +0 -27
  192. package/lib/src/bundled-translations.fr-FR-DWL7DJQp.js +0 -161
  193. package/lib/src/bundled-translations.pt-BR-C9ZYeoLd.js +0 -27
  194. package/lib/src/bundled-translations.pt-BR-CDj0L4EF.js +0 -161
  195. package/lib/src/bundled-translations.pt-PT-BB4hTIYd.js +0 -27
  196. package/lib/src/bundled-translations.pt-PT-M916KJYD.js +0 -161
@@ -47,6 +47,7 @@
47
47
  "addImageButtonTitle" : "Bild hinzufügen",
48
48
  "addImageHeaderTitle" : "Bild hinzufügen",
49
49
  "imageReplaceTitle" : "Bild ersetzen",
50
+ "replaceMediaTitle" : "Medien ersetzen",
50
51
  "imageGalleryAddButtonTitle" : "Bilder hinzufügen",
51
52
  "imageGalleryReplaceTitle" : "Bild hinzufügen",
52
53
  "iconReplaceTitle" : "Thumbnail ersetzen",
@@ -167,6 +168,8 @@
167
168
  "styleCircleOption" : "Kreis",
168
169
  "mediaTypeImage" : "Bild",
169
170
  "mediaTypeShape" : "Form",
171
+ "media" : "Medien",
172
+ "addMediaTitle" : "Medien hinzufügen",
170
173
  "firstNameLabel" : "Vorname",
171
174
  "lastNameLabel" : "Nachname",
172
175
  "emailAddressLabel" : "E-Mail-Adresse",
@@ -47,6 +47,7 @@
47
47
  "addImageButtonTitle" : "Añadir imagen",
48
48
  "addImageHeaderTitle" : "Añadir imagen",
49
49
  "imageReplaceTitle" : "Reemplazar imagen",
50
+ "replaceMediaTitle" : "Reemplazar elementos multimedia",
50
51
  "imageGalleryAddButtonTitle" : "Añade imágenes",
51
52
  "imageGalleryReplaceTitle" : "Añadir imagen",
52
53
  "iconReplaceTitle" : "Reemplazar miniatura",
@@ -167,6 +168,8 @@
167
168
  "styleCircleOption" : "Círculo",
168
169
  "mediaTypeImage" : "imagen",
169
170
  "mediaTypeShape" : "Forma",
171
+ "media" : "Redes sociales",
172
+ "addMediaTitle" : "Añade elementos multimedia",
170
173
  "firstNameLabel" : "Nombre",
171
174
  "lastNameLabel" : "Apellido",
172
175
  "emailAddressLabel" : "Dirección de correo electrónico",
@@ -47,6 +47,7 @@
47
47
  "addImageButtonTitle" : "Ajouter une image",
48
48
  "addImageHeaderTitle" : "Ajouter une image",
49
49
  "imageReplaceTitle" : "Remplacer l'image",
50
+ "replaceMediaTitle" : "Remplacer le média",
50
51
  "imageGalleryAddButtonTitle" : "Ajoutez des images",
51
52
  "imageGalleryReplaceTitle" : "Ajouter une image",
52
53
  "iconReplaceTitle" : "Remplacer la vignette",
@@ -167,6 +168,8 @@
167
168
  "styleCircleOption" : "Cercle",
168
169
  "mediaTypeImage" : "Image",
169
170
  "mediaTypeShape" : "Forme",
171
+ "media" : "Médias",
172
+ "addMediaTitle" : "Ajouter un média",
170
173
  "firstNameLabel" : "Prénom",
171
174
  "lastNameLabel" : "Nom de famille",
172
175
  "emailAddressLabel" : "Adresse courriel",
@@ -47,6 +47,7 @@
47
47
  "addImageButtonTitle" : "Ajouter une image",
48
48
  "addImageHeaderTitle" : "Ajouter une image",
49
49
  "imageReplaceTitle" : "Remplacer l'image",
50
+ "replaceMediaTitle" : "Remplacer un média",
50
51
  "imageGalleryAddButtonTitle" : "Ajoutez des images",
51
52
  "imageGalleryReplaceTitle" : "Ajouter une image",
52
53
  "iconReplaceTitle" : "Remplacer la vignette",
@@ -167,6 +168,8 @@
167
168
  "styleCircleOption" : "Cercle",
168
169
  "mediaTypeImage" : "Image",
169
170
  "mediaTypeShape" : "Forme",
171
+ "media" : "Réseaux",
172
+ "addMediaTitle" : "Ajouter un média",
170
173
  "firstNameLabel" : "Prénom",
171
174
  "lastNameLabel" : "Nom de famille",
172
175
  "emailAddressLabel" : "Adresse e-mail",
@@ -50,6 +50,7 @@
50
50
  "addImageButtonTitle": "Add image",
51
51
  "addImageHeaderTitle": "Add image",
52
52
  "imageReplaceTitle": "Replace image",
53
+ "replaceMediaTitle": "Replace media",
53
54
 
54
55
  "imageGalleryAddButtonTitle": "Add images",
55
56
  "imageGalleryReplaceTitle": "Add image",
@@ -184,6 +185,9 @@
184
185
  "mediaTypeImage": "image",
185
186
  "mediaTypeShape": "shape",
186
187
 
188
+ "media": "Media",
189
+ "addMediaTitle": "Add media",
190
+
187
191
  "firstNameLabel": "First name",
188
192
  "lastNameLabel": "Last name",
189
193
  "emailAddressLabel": "Email address",
@@ -47,6 +47,7 @@
47
47
  "addImageButtonTitle" : "Adicionar imagem",
48
48
  "addImageHeaderTitle" : "Adicionar imagem",
49
49
  "imageReplaceTitle" : "Substitua a imagem",
50
+ "replaceMediaTitle" : "Substituir mídia",
50
51
  "imageGalleryAddButtonTitle" : "Adicionar imagens",
51
52
  "imageGalleryReplaceTitle" : "Adicionar imagem",
52
53
  "iconReplaceTitle" : "Substituir miniatura",
@@ -167,6 +168,8 @@
167
168
  "styleCircleOption" : "Circle",
168
169
  "mediaTypeImage" : "imagem",
169
170
  "mediaTypeShape" : "forma",
171
+ "media" : "Multimídia",
172
+ "addMediaTitle" : "Adicionar mídia",
170
173
  "firstNameLabel" : "Nome",
171
174
  "lastNameLabel" : "Sobrenome",
172
175
  "emailAddressLabel" : "Endereço de e-mail",
@@ -47,6 +47,7 @@
47
47
  "addImageButtonTitle" : "Adicionar imagem",
48
48
  "addImageHeaderTitle" : "Adicionar imagem",
49
49
  "imageReplaceTitle" : "Substitua a imagem",
50
+ "replaceMediaTitle" : "Substituir multimédia",
50
51
  "imageGalleryAddButtonTitle" : "Adicionar imagens",
51
52
  "imageGalleryReplaceTitle" : "Adicionar imagem",
52
53
  "iconReplaceTitle" : "Substituir miniatura",
@@ -167,6 +168,8 @@
167
168
  "styleCircleOption" : "Círculo",
168
169
  "mediaTypeImage" : "image",
169
170
  "mediaTypeShape" : "forma",
171
+ "media" : "Multimédia",
172
+ "addMediaTitle" : "Adicionar multimédia",
170
173
  "firstNameLabel" : "Primeiro nome",
171
174
  "lastNameLabel" : "Apelido",
172
175
  "emailAddressLabel" : "Endereço de email",
@@ -113,6 +113,7 @@ export default defineComponent({
113
113
  this.brandPageData.brandPageType === BRAND_PAGE_TYPES.brandContact,
114
114
  options: {
115
115
  mediaSizes: MEDIA_SIZES.size1x,
116
+ renderVideoAsImage: true,
116
117
  },
117
118
  isCapturingPreview: false,
118
119
  };
@@ -88,6 +88,7 @@ export default defineComponent({
88
88
  this.brandPageData.brandPageType === BRAND_PAGE_TYPES.brandContact,
89
89
  options: {
90
90
  mediaSizes: MEDIA_SIZES.size1x,
91
+ renderVideoAsImage: true,
91
92
  },
92
93
  isCapturingPreview: false,
93
94
  };
@@ -5,6 +5,7 @@ import BrandPageIcon from '../../../../brand-page/components/icon/Icon.vue';
5
5
  import type { ContentItemFieldSettings } from '../../models';
6
6
  import { isURL } from '../../../../utils/validator.util';
7
7
  import { commonTr } from '../../../../composables/useTranslate';
8
+ import { useVideoStore } from '../../../../brand-page-maker/stores/video/video-store';
8
9
 
9
10
  const ACCEPTED_MIME_TYPES = 'image/png, image/jpeg, image/svg+xml';
10
11
 
@@ -47,6 +48,16 @@ export default defineComponent({
47
48
  required: false,
48
49
  default: undefined,
49
50
  },
51
+ mediaViewModel: {
52
+ type: Object,
53
+ required: false,
54
+ default: undefined,
55
+ },
56
+ content: {
57
+ type: Object,
58
+ required: false,
59
+ default: undefined,
60
+ },
50
61
  },
51
62
  emits: ['update:modelValue', 'on-intent-image-replace'],
52
63
  data() {
@@ -61,6 +72,24 @@ export default defineComponent({
61
72
 
62
73
  imageUrl: {
63
74
  get(): string {
75
+ if (
76
+ this.content?.type === 'banner-section' &&
77
+ this.content?.media?.type === 'getty-video' &&
78
+ this.name === 'imageUrl'
79
+ ) {
80
+ const gettyToken = this.content?.media.gettyToken;
81
+
82
+ if (gettyToken) {
83
+ const videoStore = useVideoStore();
84
+
85
+ const videoUrls = videoStore.getVideoUrlsForToken(gettyToken);
86
+
87
+ if (videoUrls?.previewImageUrl) {
88
+ return videoUrls.previewImageUrl;
89
+ }
90
+ }
91
+ }
92
+
64
93
  return this.imgValue;
65
94
  },
66
95
  set(newVal: string): void {
@@ -75,7 +104,7 @@ export default defineComponent({
75
104
  addTitle(): string {
76
105
  return this.mediaType === 'shape'
77
106
  ? commonTr('addShapeLabel')
78
- : commonTr('addImageLabel');
107
+ : commonTr('addMediaLabel');
79
108
  },
80
109
  },
81
110
  watch: {
@@ -93,6 +122,7 @@ export default defineComponent({
93
122
  },
94
123
 
95
124
  onRemove() {
125
+ this.content.media = undefined;
96
126
  this.imgValue = '';
97
127
  this.imageUrl = '';
98
128
  },
@@ -2,6 +2,7 @@ import type { PropType } from 'vue';
2
2
  import { computed, defineComponent } from 'vue';
3
3
  import type {
4
4
  BrandPagePaymentConfig,
5
+ BrandPagePaymentConfigCurrency,
5
6
  PaymentConfig,
6
7
  RequestPaymentConfig,
7
8
  } from '../../../../brand-page';
@@ -12,6 +13,8 @@ import {
12
13
  } from '../../../../brand-page-maker/stores';
13
14
  import { useShopConfigStore } from '../../../../shared/ecommerce-settings/store/shop-settings-store';
14
15
  import { paymentConfigTr } from '../../../../composables/useTranslate';
16
+ import brandPageClient from '../../../../clients/brand-page-client';
17
+ import { useUiPageSettingsStore } from '../../../../shared/page-settings/store';
15
18
 
16
19
  export default defineComponent({
17
20
  props: {
@@ -35,6 +38,7 @@ export default defineComponent({
35
38
  },
36
39
  setup() {
37
40
  const brandPageContainerStore = useBrandPageContainerStore();
41
+ const uiPageSettingsStore = useUiPageSettingsStore();
38
42
  const eventManagerStore = useEventManagerStore();
39
43
  const shopConfigStore = useShopConfigStore();
40
44
 
@@ -46,11 +50,13 @@ export default defineComponent({
46
50
  brandPageContainerStore,
47
51
  eventManagerStore,
48
52
  shopConfigStore,
53
+ uiPageSettingsStore,
49
54
  };
50
55
  },
51
56
  emits: ['update:modelValue'],
52
57
  data: () => ({
53
58
  selectedPaymentConfig: undefined as BrandPagePaymentConfig | undefined,
59
+ isCurrencyUpdating: false,
54
60
  }),
55
61
  computed: {
56
62
  currencySymbol(): string {
@@ -153,5 +159,33 @@ export default defineComponent({
153
159
 
154
160
  this.$emit('update:modelValue', payload);
155
161
  },
162
+ async onCurrencySelected(
163
+ selectedCurrency: BrandPagePaymentConfigCurrency,
164
+ ): Promise<void> {
165
+ if (
166
+ this.selectedPaymentConfig.defaultCurrency ===
167
+ selectedCurrency.iso4127Code
168
+ ) {
169
+ return;
170
+ }
171
+
172
+ this.isCurrencyUpdating = true;
173
+
174
+ const updatedPaymentConfig =
175
+ await brandPageClient.updatePaymentConfigCurrencyAsync(
176
+ this.brandPageToken,
177
+ this.selectedPaymentConfig.id,
178
+ selectedCurrency.id,
179
+ );
180
+
181
+ this.uiPageSettingsStore.updatePaymentConfigCurrency(
182
+ updatedPaymentConfig,
183
+ selectedCurrency,
184
+ );
185
+
186
+ await this.brandPageContainerStore.saveBrandPage();
187
+
188
+ this.isCurrencyUpdating = false;
189
+ },
156
190
  },
157
191
  });
@@ -10,12 +10,22 @@
10
10
  </p>
11
11
 
12
12
  <!-- Start Payment Config Dropdown -->
13
- <PaymentConfigDropdown
14
- :brand-page-token="brandPageToken"
15
- :payment-config-id="selectedPaymentConfigId"
16
- @on-add-payment-provider-click="onAddPaymentProviderClick"
17
- @on-payment-config-selected="onPaymentConfigSelected"
18
- />
13
+ <div class="tw-relative">
14
+ <PaymentConfigDropdown
15
+ :brand-page-token="brandPageToken"
16
+ :payment-config-id="selectedPaymentConfigId"
17
+ @on-add-payment-provider-click="onAddPaymentProviderClick"
18
+ @on-payment-config-selected="onPaymentConfigSelected"
19
+ @on-currency-selected="onCurrencySelected"
20
+ />
21
+ <div
22
+ v-if="isCurrencyUpdating"
23
+ class="tw-absolute tw-top-0 tw-w-full tw-h-full tw-flex tw-justify-center tw-items-center tw-opacity-50 tw-bg-grayscale-100"
24
+ >
25
+ <Loader />
26
+ </div>
27
+ </div>
28
+
19
29
  <!-- End Payment Config Dropdown -->
20
30
  </template>
21
31
 
@@ -49,8 +59,12 @@
49
59
  </div>
50
60
  </template>
51
61
  <script>
52
- import { Button, HelloBar } from '@designcrowd/fe-shared-lib';
53
- import { PaymentConfigDropdown } from '@designcrowd/fe-shared-lib';
62
+ import {
63
+ Button,
64
+ HelloBar,
65
+ PaymentConfigDropdown,
66
+ Loader,
67
+ } from '@designcrowd/fe-shared-lib';
54
68
  import PaymentConfigFieldMixin from './PaymentConfigField.mixin.ts';
55
69
  import { paymentConfigTr } from '../../../../composables/useTranslate';
56
70
 
@@ -59,6 +73,7 @@ export default {
59
73
  Button,
60
74
  PaymentConfigDropdown,
61
75
  HelloBar,
76
+ Loader,
62
77
  },
63
78
  mixins: [PaymentConfigFieldMixin],
64
79
  setup(props, context) {
@@ -66,7 +66,7 @@
66
66
  <UnsplashLibrary @on-select-image="onDesignSelected" />
67
67
  </div>
68
68
  <div v-if="tab.id === 'VIDEO_LIBRARY'">
69
- <VideoLibrary @on-select-video="onDesignSelected" />
69
+ <VideoLibrary @on-select-video="onVideoSelected" />
70
70
  </div>
71
71
  <div v-if="tab.id === 'SHAPE_LIBRARY'">
72
72
  <ShapeLibrary @on-select-image="onShapeSelected" />
@@ -91,7 +91,10 @@ import type {
91
91
  ReplaceImageSettingsTabId,
92
92
  ReplaceImageSettingsBase,
93
93
  } from '../../models';
94
- import type { UserMediaItemWithDimensions } from '../../../my-uploads/models';
94
+ import type {
95
+ MediaBaseSelectedPayload,
96
+ UserMediaItemWithDimensions,
97
+ } from '../../../my-uploads/models';
95
98
  import {
96
99
  useBrandPageContainerStore,
97
100
  useBrandPageMakerUserStore,
@@ -176,6 +179,7 @@ const emit = defineEmits<{
176
179
  aspectRatio: number;
177
180
  },
178
181
  ];
182
+ 'on-video-selected': [videoPayload: MediaBaseSelectedPayload];
179
183
  }>();
180
184
 
181
185
  const containerStore = useBrandPageContainerStore();
@@ -260,6 +264,10 @@ const onDesignSelected = (image: UserMediaItemWithDimensions) => {
260
264
  emit('on-design-selected', image);
261
265
  };
262
266
 
267
+ const onVideoSelected = (videoPayload: MediaBaseSelectedPayload) => {
268
+ emit('on-video-selected', videoPayload);
269
+ };
270
+
263
271
  const switchActiveTab = (id: string) => {
264
272
  tabs.value.forEach((tab: Tab) => {
265
273
  tab.active = tab.id === id;
@@ -12,6 +12,7 @@ import type {
12
12
  ValidateResult,
13
13
  } from '../../brand-page-maker/models';
14
14
  import type { UserState } from '../../brand-page-maker/stores';
15
+ import type { MediaBaseSelectedPayload } from '../my-uploads/models';
15
16
 
16
17
  export interface ContentItemFieldSettings {
17
18
  errorMessage: string;
@@ -50,6 +51,7 @@ export interface ContentReplaceImageSettings<TContent>
50
51
  index?: number,
51
52
  ) => void;
52
53
  }
54
+
53
55
  export interface ReplaceImageSettingsBase {
54
56
  tabs: ReplaceImageSettingsTabId[];
55
57
  buttonTitleAdd: string;
@@ -73,6 +75,7 @@ export interface SetContentMediaPayload {
73
75
  mediaType?: string;
74
76
  size?: string;
75
77
  imageLink: string;
78
+ media?: MediaBaseSelectedPayload;
76
79
  }
77
80
 
78
81
  export interface ContentItem<TContent> {
@@ -38,6 +38,7 @@ import {
38
38
  useUiStore,
39
39
  useBrandPageMakerUserStore,
40
40
  useBrandPageMakerStore,
41
+ useVideoStore,
41
42
  } from '../../../brand-page-maker/stores';
42
43
  import { useUiSideBarStore } from '../../side-bar/store';
43
44
  import {
@@ -51,6 +52,12 @@ import {
51
52
  } from '../../../brand-page-maker/validators';
52
53
  import { vueDeepMerge } from '../../../helpers/vue.helper';
53
54
 
55
+ import type {
56
+ GettyVideoMediaSelectedPayload,
57
+ MediaBaseSelectedPayload,
58
+ } from '../../my-uploads/models';
59
+ import {} from '../../../brand-page-maker/stores/video';
60
+
54
61
  const DEFAULT_TEXT_COLOR_DEPENDENT_TYPES: readonly ContentType[] = [
55
62
  'profile',
56
63
  'text',
@@ -266,6 +273,58 @@ export const useUiContentSettingsStore = defineStore('uiContentSettings', {
266
273
  this.selectedItemIndex ?? undefined,
267
274
  );
268
275
  },
276
+ _setSelectedItemMedia(
277
+ selectedItemId: string | null,
278
+ mediaPayload: MediaBaseSelectedPayload,
279
+ ): void {
280
+ const selectedItem = this.items.find((i) => i.id === selectedItemId);
281
+
282
+ if (!selectedItem) {
283
+ if (process.env.NODE_ENV !== 'production') {
284
+ throw new Error(
285
+ 'unable to locate the selected item for setting video',
286
+ );
287
+ }
288
+
289
+ return;
290
+ }
291
+
292
+ if (!this.selectedItemFieldName) {
293
+ if (process.env.NODE_ENV !== 'production') {
294
+ throw new Error('selectedItemFieldName should be defined');
295
+ }
296
+
297
+ return;
298
+ }
299
+
300
+ const replaceImageSettings =
301
+ selectedItem.settings.fields[this.selectedItemFieldName]
302
+ .replaceImageSettings;
303
+
304
+ if (!replaceImageSettings) {
305
+ if (process.env.NODE_ENV !== 'production') {
306
+ throw new Error('replaceImageSettings should be an object');
307
+ }
308
+
309
+ return;
310
+ }
311
+
312
+ replaceImageSettings.setContentMedia(selectedItem.settings.content, {
313
+ media: mediaPayload,
314
+ });
315
+
316
+ if (mediaPayload.type === 'getty-video') {
317
+ const gettyPayload = mediaPayload as GettyVideoMediaSelectedPayload;
318
+ const videoStore = useVideoStore();
319
+
320
+ videoStore.setVideoUrlsWithToken(
321
+ gettyPayload.token,
322
+ gettyPayload.videoSrc,
323
+ gettyPayload.imageSrc,
324
+ gettyPayload.assetId,
325
+ );
326
+ }
327
+ },
269
328
  _setItems({ items }: { items: ContentItem<any>[] }): void {
270
329
  this.items = items;
271
330
  },
@@ -708,6 +767,15 @@ export const useUiContentSettingsStore = defineStore('uiContentSettings', {
708
767
  this.onContentChanged();
709
768
  },
710
769
 
770
+ setSelectedItemMedia(
771
+ selectedItemId: string | null,
772
+ mediaPayload: MediaBaseSelectedPayload,
773
+ ) {
774
+ this._setSelectedItemMedia(selectedItemId, mediaPayload);
775
+
776
+ this.onContentChanged();
777
+ },
778
+
711
779
  setItems(payload: { items: ContentItem<Content>[] }) {
712
780
  if (process.env.NODE_ENV !== 'production') {
713
781
  const idCountMap = payload.items.reduce<Record<string, number>>(
@@ -1,3 +1,5 @@
1
+ import type { MediaTypes } from '../../brand-page';
2
+
1
3
  interface UserMediaItemMedia {
2
4
  token: string;
3
5
  userToken: string;
@@ -20,3 +22,17 @@ export interface UserMediaItemWithDimensions extends UserMediaItem {
20
22
  width: number;
21
23
  height: number;
22
24
  }
25
+
26
+ export interface MediaBaseSelectedPayload {
27
+ type: MediaTypes;
28
+ }
29
+
30
+ export interface GettyVideoMediaSelectedPayload
31
+ extends MediaBaseSelectedPayload {
32
+ assetId: string;
33
+ token: string;
34
+ mimeType: string;
35
+ autoPlay: boolean;
36
+ imageSrc: string;
37
+ videoSrc: string;
38
+ }
@@ -15,6 +15,8 @@ import type {
15
15
  LogoImageModel,
16
16
  ViewportsType,
17
17
  LogoTemplateImageModel,
18
+ BrandPagePaymentConfig,
19
+ BrandPagePaymentConfigCurrency,
18
20
  } from '../../../brand-page';
19
21
  import type { ContentPage } from '../models';
20
22
  import { PAGE_SECTIONS } from '../models';
@@ -33,6 +35,7 @@ import {
33
35
  UPGRADE_CTA_LOCATIONS,
34
36
  useEventTracker,
35
37
  } from '../../../brand-page-maker/composables/useEventTracker';
38
+ import { useShopConfigStore } from '../../ecommerce-settings/store/shop-settings-store';
36
39
 
37
40
  // TODO - double check this is logically correct
38
41
  export type PageSettingsStateSectionStyles = Partial<
@@ -344,6 +347,61 @@ export const useUiPageSettingsStore = defineStore('uiPageSettings', {
344
347
  this.sections[sectionName][viewport].logoImageHeight = logoImageHeight;
345
348
  this.sections[sectionName][viewport].logoImageWidth = logoImageWidth;
346
349
  },
350
+ updatePaymentConfigCurrency(
351
+ updatedPaymentConfig: BrandPagePaymentConfig,
352
+ newCurrency: BrandPagePaymentConfigCurrency,
353
+ ) {
354
+ const currencyUpdate = {
355
+ name: updatedPaymentConfig.name,
356
+ defaultCurrency: newCurrency.iso4127Code,
357
+ defaultCurrencySymbol: newCurrency.symbol,
358
+ };
359
+
360
+ this.pages.forEach((page) => {
361
+ page.contents.forEach((contentItem) => {
362
+ if (contentItem.type === 'support-me') {
363
+ if (
364
+ contentItem.settings.content.supportMeConfig.paymentConfig?.id ===
365
+ updatedPaymentConfig.id
366
+ ) {
367
+ Object.assign(
368
+ contentItem.settings.content.supportMeConfig.paymentConfig,
369
+ currencyUpdate,
370
+ );
371
+ }
372
+ } else if (contentItem.type === 'request-payment') {
373
+ if (
374
+ contentItem.settings.content.requestPaymentConfig.paymentConfig
375
+ ?.id === updatedPaymentConfig.id
376
+ ) {
377
+ Object.assign(
378
+ contentItem.settings.content.requestPaymentConfig.paymentConfig,
379
+ currencyUpdate,
380
+ );
381
+ }
382
+ } else if (contentItem.type === 'shop-section') {
383
+ if (
384
+ contentItem.settings.content.shopPaymentConfig.paymentConfig
385
+ ?.id === updatedPaymentConfig.id
386
+ ) {
387
+ Object.assign(
388
+ contentItem.settings.content.shopPaymentConfig.paymentConfig,
389
+ currencyUpdate,
390
+ );
391
+ }
392
+ }
393
+ });
394
+ });
395
+
396
+ const shopConfigStore = useShopConfigStore();
397
+
398
+ if (
399
+ shopConfigStore.paymentConfig &&
400
+ shopConfigStore.paymentConfig.id === updatedPaymentConfig.id
401
+ ) {
402
+ Object.assign(shopConfigStore.paymentConfig, currencyUpdate);
403
+ }
404
+ },
347
405
  setPageTitle({
348
406
  pageTitle,
349
407
  pageIndex,
@@ -273,20 +273,33 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
273
273
 
274
274
  this._setPageCount({ pageCount: result.pageCount });
275
275
 
276
- const templates = (
277
- await Promise.all(
278
- result.paginatedItems.map(async (i) => {
279
- const template =
280
- await designTemplateClient.getTemplateByTemplateToken(
281
- i.designTemplateToken,
282
- );
283
-
284
- return this.safeMapToTemplateSettingsTemplate(template);
285
- }),
286
- )
287
- ).filter((t): t is TemplateSettingsTemplate => Boolean(t));
288
-
289
- this._addTemplates({ templates });
276
+ const templates = await Promise.all(
277
+ result.paginatedItems.map(async (i) => {
278
+ try {
279
+ if (brandPageContainerStore.isPrePurchase) {
280
+ const template =
281
+ await designTemplateClient.getTemplateByTemplateToken(
282
+ i.designTemplateToken,
283
+ );
284
+
285
+ return this.safeMapToTemplateSettingsTemplate(template);
286
+ } else {
287
+ return {
288
+ id: i.designTemplateToken,
289
+ } as TemplateSettingsTemplate;
290
+ }
291
+ } catch (error) {
292
+ return null;
293
+ }
294
+ }),
295
+ );
296
+
297
+ const validTemplates = templates.filter(
298
+ (template) => template !== null,
299
+ );
300
+
301
+ this._addTemplates({ templates: validTemplates });
302
+
290
303
  this._setPageNoLoaded({ pageNoLoaded: pageNo });
291
304
  } finally {
292
305
  this._setIsBusy({ isBusy: false });