@total_onion/onion-library 2.0.127 → 2.0.129

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 (46) hide show
  1. package/components/block-post-type-filter-grid-v3/group_64690c62487bc.json +270 -92
  2. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/buy-now-widget.vue +5 -5
  3. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/global-image-widget.vue +1 -1
  4. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-author-widget.vue +1 -1
  5. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-category-widget.vue +1 -1
  6. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-component.vue +2 -59
  7. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-headline-widget.vue +1 -1
  8. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-image-widget.vue +5 -5
  9. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-info-description.vue +2 -1
  10. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-info-subtitle.vue +2 -1
  11. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-link-widget.vue +3 -3
  12. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-publish-widget.vue +1 -1
  13. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/post-title-widget.vue +1 -1
  14. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/ptfg-utils.vue +10 -10
  15. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/shopify-add-to-cart.vue +6 -12
  16. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/spacer-widget.vue +1 -1
  17. package/package.json +1 -1
  18. package/public/jsAssets.mjs +1 -0
  19. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/cocktail-category.vue +0 -40
  20. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/cocktail-tasting-notes.vue +0 -15
  21. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/drink-tastes.vue +0 -26
  22. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/featured-post-component.vue +0 -62
  23. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/person-email-widget.vue +0 -20
  24. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/person-name-widget.vue +0 -15
  25. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/person-questionaire-widget.vue +0 -17
  26. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/person-rating-widget.vue +0 -25
  27. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-abv.vue +0 -18
  28. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-age-statement.vue +0 -17
  29. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-bazaarvoice.vue +0 -15
  30. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-brand.vue +0 -16
  31. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-cask-type.vue +0 -16
  32. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-country.vue +0 -14
  33. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-description.vue +0 -15
  34. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-details-name.vue +0 -18
  35. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-details-price.vue +0 -15
  36. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-finish.vue +0 -15
  37. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-history.vue +0 -16
  38. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-link.vue +0 -15
  39. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-logo-widget.vue +0 -22
  40. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-name.vue +0 -17
  41. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-nose.vue +0 -16
  42. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-price.vue +0 -15
  43. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-slug.vue +0 -14
  44. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-taste.vue +0 -16
  45. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/product-whisky-type.vue +0 -25
  46. package/components/block-post-type-filter-grid-v3/post-type-filter-grid-v3/social-media-item.vue +0 -58
@@ -9,38 +9,13 @@ import PostHeadline from "./post-headline-widget.vue";
9
9
  import PostLink from "./post-link-widget.vue";
10
10
  import PostPublishDate from "./post-publish-widget.vue";
11
11
  import PostTitle from "./post-title-widget.vue";
12
- import SpacerV2 from "./spacer-widget.vue";
12
+ import Spacer from "./spacer-widget.vue";
13
13
  import PostInfoDescription from "./post-info-description.vue";
14
14
  import PostInfoSubtitle from "./post-info-subtitle.vue";
15
15
  import PostTextAlternativeStyle from "./post-text-alternative-style.vue";
16
16
  import MediaImage from "./media-widget.vue";
17
17
  import BetterReviews from "./better-reviews-widget.vue";
18
- import ProductDetailsDescription from "./product-description.vue";
19
- import ProductDetailsName from "./product-details-name.vue";
20
- import ProductDetailsBrand from "./product-brand.vue";
21
- import ProductAbv from "./product-abv.vue";
22
- import ProductAgeStatement from "./product-age-statement.vue";
23
- import ProductBazaarvoice from "./product-bazaarvoice.vue";
24
- import ProductCaskType from "./product-cask-type.vue";
25
- import ProductCountry from "./product-country.vue";
26
- import ProductFinish from "./product-finish.vue";
27
- import ProductHistory from "./product-history.vue";
28
- import ProductLink from "./product-link.vue";
29
- import ProductDetailsPrice from "./product-details-price.vue";
30
- import ProductPrice from "./product-price.vue";
31
- import ProductNose from "./product-nose.vue";
32
- import ProductName from "./product-name.vue";
33
- import ProductSlug from "./product-slug.vue";
34
- import ProductTaste from "./product-taste.vue";
35
- import ProductWhiskyType from "./product-whisky-type.vue";
36
- import PersonName from "./person-name-widget.vue";
37
- import PersonEmail from "./person-email-widget.vue";
38
- import PersonRating from "./person-rating-widget.vue";
39
- import SocialMediaItem from "./social-media-item.vue";
40
18
  import BuyNow from "./buy-now-widget.vue";
41
- import DrinkTastes from "./drink-tastes.vue";
42
- import CocktailTastingNotes from "./cocktail-tasting-notes.vue";
43
- import CocktailCategories from "./cocktail-category.vue";
44
19
  import ShopifyAddToCart from "./shopify-add-to-cart.vue";
45
20
  const widgetComponents = {
46
21
  PostAuthor,
@@ -52,38 +27,13 @@ const widgetComponents = {
52
27
  PostLink,
53
28
  PostPublishDate,
54
29
  PostTitle,
55
- SpacerV2,
30
+ Spacer,
56
31
  PostInfoDescription,
57
32
  PostTextAlternativeStyle,
58
33
  MediaImage,
59
34
  GlobalImage,
60
35
  BetterReviews,
61
- ProductDetailsDescription,
62
- ProductDetailsBrand,
63
- ProductDetailsName,
64
- ProductDetailsPrice,
65
- ProductPrice,
66
- ProductAbv,
67
- ProductAgeStatement,
68
- ProductBazaarvoice,
69
- ProductCaskType,
70
- ProductCountry,
71
- ProductFinish,
72
- ProductHistory,
73
- ProductLink,
74
- ProductNose,
75
- ProductName,
76
- ProductSlug,
77
- ProductTaste,
78
- ProductWhiskyType,
79
- PersonEmail,
80
- PersonName,
81
- PersonRating,
82
- SocialMediaItem,
83
36
  BuyNow,
84
- CocktailTastingNotes,
85
- CocktailCategories,
86
- DrinkTastes,
87
37
  PostInfoSubtitle,
88
38
  ShopifyAddToCart,
89
39
  };
@@ -114,13 +64,6 @@ const blockClassname = "post-type-filter-grid-v3";
114
64
  </script>
115
65
 
116
66
  <template>
117
- <div :class="`${blockClassname}__overlay ${blockClassname}__overlay--gradient-overlay-top`"
118
- v-if="fields.enable_gradient_overlay"
119
- :style="`--gradient-colour: ${props.gradientOverlayColour}; --gradient-origin: 180deg; --gradient-amount: ${fields.gradient_overlay_amount}%; --gradient-zindex: 5; --gradient-spread: ${fields.gradient_overlay_spread}%; --gradient-opacity: ${fields.gradient_overlay_opacity};--gradient-overlay-row-end: ${fields.gradient_overlay_row_end}; --gradient-overlay-row-start: ${fields.gradient_overlay_row_start};`">
120
- </div>
121
- <a v-if="fields.enable_post_cover_link" :href="post.link" target="_self"
122
- :class="`${blockClassname}__post-cover-link`, fields.enable_post_cover_link_hover_effect ? 'post-cover-link-hover-effect' : ''"
123
- :aria-label="post.title"></a>
124
67
  <template v-for="(widget, index) in widgetNames" :key="index">
125
68
  <component :is="widgetComponents[widget]" :post="props.post" :fields="fields" :options="options"
126
69
  :element="props.postDataConfig[index]" :blockClassname="blockClassname" :ctaIcons="ctaIcons"
@@ -9,7 +9,7 @@ const textEditorStylesString = textEditorStyles(props);
9
9
 
10
10
  </script>
11
11
  <template>
12
- <h3 :class="`${blockClassname}__post-headline ${blockClassname}__info-item ${element.text_style?.typography_style.slice(2)}`"
12
+ <h3 :class="`${blockClassname}__post-headline ${blockClassname}__info-item ${element.text_style?.typography_style.replace('__', '')}`"
13
13
  :style="`${gridLayoutString} ${textEditorStylesString}`">
14
14
  {{ element.headline_text }}
15
15
  </h3>
@@ -3,7 +3,7 @@ import { gridLayoutElement } from "./ptfg-utils.vue";
3
3
 
4
4
  const props = defineProps(["post", "element", "fields", "imageSizesAttribute"]);
5
5
  const blockClassname = "post-type-filter-grid-v3";
6
- const imageType = props.element?.image_select?.slice(2);
6
+ const imageType = props.element?.image_select?.replace('__', '');
7
7
  const imageTypeSecondary = 'image_alt';
8
8
  const setAsBackgroundImage = props.element?.set_as_background_image;
9
9
  let positioningString = '';
@@ -18,10 +18,10 @@ if (imageType === 'image_accent') {
18
18
  --element-vertical-offset-mobile: ${elementPositioning.mobile_positioning.vertical_offset}%;
19
19
  --element-horizontal-offset-desktop: ${elementPositioning.desktop_positioning.horizontal_offset}%;
20
20
  --element-vertical-offset-desktop: ${elementPositioning.desktop_positioning.vertical_offset}%;
21
- --mobile-horizontal-placement: ${elementPositioning.mobile_positioning.horizontal_snap?.slice(2)};
22
- --mobile-vertical-placement: ${elementPositioning.mobile_positioning.vertical_snap?.slice(2)};
23
- --desktop-horizontal-placement: ${elementPositioning.desktop_positioning.horizontal_snap?.slice(2)};
24
- --desktop-vertical-placement: ${elementPositioning.desktop_positioning.vertical_snap?.slice(2)};
21
+ --mobile-horizontal-placement: ${elementPositioning.mobile_positioning.horizontal_snap?.replace('__', '')};
22
+ --mobile-vertical-placement: ${elementPositioning.mobile_positioning.vertical_snap?.replace('__', '')};
23
+ --desktop-horizontal-placement: ${elementPositioning.desktop_positioning.horizontal_snap?.replace('__', '')};
24
+ --desktop-vertical-placement: ${elementPositioning.desktop_positioning.vertical_snap?.replace('__', '')};
25
25
  --element-position: ${elementPositioning.element_position};
26
26
 
27
27
  `;
@@ -9,6 +9,7 @@ const textEditorStylesString = textEditorStyles(props);
9
9
  <template>
10
10
  <div :class="`${blockClassname}__post-info-description ${blockClassname}__info-item`"
11
11
  :style="`${gridLayoutString} ${textEditorStylesString}`">
12
- <p :class="`${element.text_style?.typography_style.slice(2)}`">{{ post.post_data.post_info_description }}</p>
12
+ <p :class="`${element.text_style?.typography_style.replace('__', '')}`">{{ post.post_data.post_info_description
13
+ }}</p>
13
14
  </div>
14
15
  </template>
@@ -9,6 +9,7 @@ const textEditorStylesString = textEditorStyles(props);
9
9
  <template>
10
10
  <div :class="`${blockClassname}__post-info-subtitle ${blockClassname}__info-item`"
11
11
  :style="`${gridLayoutString} ${textEditorStylesString}`">
12
- <p :class="`${element.text_style?.typography_style.slice(2)}`">{{ post.post_data.post_info_subtitle }}</p>
12
+ <p :class="`${element.text_style?.typography_style.replace('__', '')}`">{{ post.post_data.post_info_subtitle }}
13
+ </p>
13
14
  </div>
14
15
  </template>
@@ -3,7 +3,7 @@ import { gridLayoutElement } from "./ptfg-utils.vue";
3
3
  const blockClassname = "post-type-filter-grid-v3";
4
4
  const props = defineProps(["post", "element", "mappedIcons", "ctaStyles", "blockClassname", "options"]);
5
5
  const postColour = props.post.post_data.post_colour;
6
- const postTextColourStyle = props.post.post_data?.post_text_colour_style?.slice(2);
6
+ const postTextColourStyle = props.post.post_data?.post_text_colour_style?.replace('__', '');
7
7
  let ctaStyle = '';
8
8
  if (typeof props.element.cta_style == 'string') {
9
9
  ctaStyle = props.element?.cta_style?.replace("__", '');
@@ -14,11 +14,11 @@ let postCtaStyle = ctaStyle;
14
14
  let postCtaStyleValue = '';
15
15
  let ctaAnimationStyle = '';
16
16
  if (props.element?.cta_style_select) {
17
- if (props.element?.cta_style_select?.slice(2) == 'post-colour') {
17
+ if (props.element?.cta_style_select?.replace('__', '') == 'post-colour') {
18
18
  postCtaStyle = 'post-colour';
19
19
  postCtaStyleValue = `color: ${postColour};--post-text-colour-style: ${postColour};`;
20
20
  }
21
- if (props.element?.cta_style_select?.slice(2) == 'post-text-colour-style') {
21
+ if (props.element?.cta_style_select?.replace('__', '') == 'post-text-colour-style') {
22
22
  postCtaStyle = 'post-text-colour-style';
23
23
  postCtaStyleValue = `color: ${postTextColourStyle};--post-text-colour-style: ${postTextColourStyle};`;
24
24
  }
@@ -37,7 +37,7 @@ const dateWithoutTime = computed(() => {
37
37
  });
38
38
  </script>
39
39
  <template>
40
- <p :class="`${blockClassname}__post-publish-date ${blockClassname}__info-item ${element.text_style?.typography_style.slice(2)}`"
40
+ <p :class="`${blockClassname}__post-publish-date ${blockClassname}__info-item ${element.text_style?.typography_style.replace('__', '')}`"
41
41
  :style="`${gridLayoutString} ${textEditorStylesString}`">
42
42
  {{ dateWithoutTime }}
43
43
  </p>
@@ -11,7 +11,7 @@ const textEditorStylesString = textEditorStyles(props);
11
11
  <template>
12
12
  <a :href="props.post.link" :class="`${blockClassname}__post-title ${blockClassname}__info-item`"
13
13
  :style="`${gridLayoutString}`">
14
- <h3 :class="`${element.text_style?.typography_style.slice(2)}`" :style="`${textEditorStylesString}`"
14
+ <h3 :class="`${element.text_style?.typography_style.replace('__', '')}`" :style="`${textEditorStylesString}`"
15
15
  v-html="post.post_title">
16
16
  </h3>
17
17
  <img :class="`${blockClassname}__post-title-icon`" v-if="element.enable_icon" :src="ctaIcons.cta_load_more_icon"
@@ -9,33 +9,33 @@ export function gridLayoutElement(props) {
9
9
  --grid-column-span-mobile: ${element.grid_layout_element?.grid_column_span_mobile};
10
10
  --grid-row-start-mobile: ${element.grid_layout_element?.grid_row_start_mobile};
11
11
  --grid-row-span-mobile: ${element.grid_layout_element?.grid_row_span_mobile};
12
- --grid-horizontal-placement-mobile: ${element.grid_layout_element?.grid_layout_mobile?.grid_horizontal_placement_mobile?.slice(2) != 'default' ? element.grid_layout_element?.grid_layout_mobile?.grid_horizontal_placement_mobile?.slice(2) : element.grid_layout_element?.grid_horizontal_placement?.slice(2)};
13
- --grid-vertical-placement-mobile: ${element.grid_layout_element?.grid_layout_mobile?.grid_vertical_placement_mobile?.slice(2) != 'default' ? element.grid_layout_element?.grid_layout_mobile?.grid_vertical_placement_mobile?.slice(2) : element.grid_layout_element?.grid_vertical_placement?.slice(2)};
12
+ --grid-horizontal-placement-mobile: ${element.grid_layout_element?.grid_layout_mobile?.grid_horizontal_placement_mobile?.replace('__', '') != 'default' ? element.grid_layout_element?.grid_layout_mobile?.grid_horizontal_placement_mobile?.replace('__', '') : element.grid_layout_element?.grid_horizontal_placement?.replace('__', '')};
13
+ --grid-vertical-placement-mobile: ${element.grid_layout_element?.grid_layout_mobile?.grid_vertical_placement_mobile?.replace('__', '') != 'default' ? element.grid_layout_element?.grid_layout_mobile?.grid_vertical_placement_mobile?.replace('__', '') : element.grid_layout_element?.grid_vertical_placement?.replace('__', '')};
14
14
  --grid-column-start-portrait: ${element.grid_layout_element?.grid_column_start_portrait};
15
15
  --grid-column-span-portrait: ${element.grid_layout_element?.grid_column_span_portrait};
16
16
  --grid-row-start-portrait: ${element.grid_layout_element?.grid_row_start_portrait};
17
17
  --grid-row-span-portrait: ${element.grid_layout_element?.grid_row_span_mobile};
18
- --grid-horizontal-placement-portrait: ${element.grid_layout_element?.grid_layout_portrait?.grid_horizontal_placement_portrait?.slice(2) != 'default' ? element.grid_layout_element?.grid_layout_portrait?.grid_horizontal_placement_portrait?.slice(2) : element.grid_layout_element?.grid_horizontal_placement?.slice(2)};
19
- --grid-vertical-placement-portrait: ${element.grid_layout_element?.grid_layout_portrait?.grid_vertical_placement_portrait?.slice(2) != 'default' ? element.grid_layout_element?.grid_layout_portrait?.grid_vertical_placement_portrait?.slice(2) : element.grid_layout_element?.grid_vertical_placement?.slice(2)};
18
+ --grid-horizontal-placement-portrait: ${element.grid_layout_element?.grid_layout_portrait?.grid_horizontal_placement_portrait?.replace('__', '') != 'default' ? element.grid_layout_element?.grid_layout_portrait?.grid_horizontal_placement_portrait?.replace('__', '') : element.grid_layout_element?.grid_horizontal_placement?.replace('__', '')};
19
+ --grid-vertical-placement-portrait: ${element.grid_layout_element?.grid_layout_portrait?.grid_vertical_placement_portrait?.replace('__', '') != 'default' ? element.grid_layout_element?.grid_layout_portrait?.grid_vertical_placement_portrait?.replace('__', '') : element.grid_layout_element?.grid_vertical_placement?.replace('__', '')};
20
20
  --grid-column-start: ${element.grid_layout_element?.grid_column_start};
21
21
  --grid-column-span: ${element.grid_layout_element?.grid_column_span};
22
22
  --grid-row-start: ${element.grid_layout_element?.grid_row_start};
23
23
  --grid-row-span: ${element.grid_layout_element?.grid_row_span};
24
- --grid-horizontal-placement-desktop: ${element.grid_layout_element?.grid_horizontal_placement?.slice(2)};
25
- --grid-vertical-placement-desktop: ${element.grid_layout_element?.grid_vertical_placement?.slice(2)};`;
24
+ --grid-horizontal-placement-desktop: ${element.grid_layout_element?.grid_horizontal_placement?.replace('__', '')};
25
+ --grid-vertical-placement-desktop: ${element.grid_layout_element?.grid_vertical_placement?.replace('__', '')};`;
26
26
  }
27
27
 
28
28
  export function textEditorStyles(props) {
29
29
  const element = props.element;
30
- const textColourType = props.element?.text_style?.text_colour?.slice(2);
30
+ const textColourType = props.element?.text_style?.text_colour?.replace('__', '');
31
31
  let textColour = textColourType;
32
32
  if (textColourType == 'post_text_colour_style') {
33
- textColour = props.post.post_data?.post_text_colour_style?.slice(2);
33
+ textColour = props.post.post_data?.post_text_colour_style?.replace('__', '');
34
34
  }
35
35
  if (textColourType == 'post_colour') {
36
36
  textColour = props.post.post_data?.post_colour;
37
37
  }
38
- return `--text-align: ${element.text_style?.text_align?.slice(2)};
39
- --text-transform: ${element.text_style?.text_transform?.slice(2)}; --font-weight: ${element.text_style?.text_font_weight?.slice(2)}; --text-colour: ${textColour}`;
38
+ return `--text-align: ${element.text_style?.text_align?.replace('__', '')};
39
+ --text-transform: ${element.text_style?.text_transform?.replace('__', '')}; --font-weight: ${element.text_style?.text_font_weight?.replace('__', '')}; --text-colour: ${textColour}`;
40
40
  }
41
41
  </script>
@@ -12,20 +12,14 @@ const ctaStyle = element.cta_style.replace("__", "");
12
12
  const post = props.post;
13
13
  </script>
14
14
  <template>
15
- <div
16
- :class="`${blockClassname}__shopify shopify-add-to-cart ${blockClassname}__info-item shopify-wrapper shopify-integration has-shop shop-shopify`"
17
- :data-label="`${element.shopify_text}`"
18
- :data-shopifya2cbtnstyle="`cmpl-cta-style-${element.cta_style}`"
15
+ <div :class="`${blockClassname}__shopify shopify-add-to-cart ${blockClassname}__info-item shopify-wrapper shopify-integration has-shop shop-shopify`"
16
+ :data-label="`${element.shopify_text}`" :data-shopifya2cbtnstyle="`cmpl-cta-style-${element.cta_style}`"
19
17
  :data-pim="post.post_data.shopify_pim_id"
20
18
  :style="`--post-colour: ${postColour}; --post-text-colour-style: ${postTextColourStyle}; ${gridLayoutString}`"
21
- v-if="element.product_type.slice(2) == 'standard'"
22
- ></div>
23
- <div
24
- :class="`${blockClassname}__shopify shopify-add-to-cart ${blockClassname}__info-item shopify-wrapper shopify-integration has-shop shop-shopify engraved`"
25
- :data-label="`${element.shopify_text}`"
26
- :data-shopifya2cbtnstyle="`cmpl-cta-style-${element.cta_style}`"
19
+ v-if="element.product_type.replace('__', '') == 'standard'"></div>
20
+ <div :class="`${blockClassname}__shopify shopify-add-to-cart ${blockClassname}__info-item shopify-wrapper shopify-integration has-shop shop-shopify engraved`"
21
+ :data-label="`${element.shopify_text}`" :data-shopifya2cbtnstyle="`cmpl-cta-style-${element.cta_style}`"
27
22
  :data-pim="post.post_data.shopify_engraved_pim_id"
28
23
  :style="`--post-colour: ${postColour}; --post-text-colour-style: ${postTextColourStyle}; ${gridLayoutString}`"
29
- v-if="element.product_type.slice(2) == 'engraved'"
30
- ></div>
24
+ v-if="element.product_type.replace('__', '') == 'engraved'"></div>
31
25
  </template>
@@ -8,6 +8,6 @@ const blockClassname = "post-type-filter-grid-v3";
8
8
  </script>
9
9
  <template>
10
10
  <div :class="`${blockClassname}__spacer ${blockClassname}__info-item`"
11
- :style="`${gridLayoutString}; --spacer-size-mult:${element.spacer_size}; --spacer-size-mult-portrait:${element.size_portrait}; --spacer-size-mult-mobile:${element.size_mobile}; --spacer-bg-colour:${element.spacer_background}`">
11
+ :style="`${gridLayoutString}; --spacer-size-mult:${element.size_desktop}; --spacer-size-mult-portrait:${element.size_portrait}; --spacer-size-mult-mobile:${element.size_mobile}; --spacer-bg-colour:${element.spacer_background}`">
12
12
  </div>
13
13
  </template>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@total_onion/onion-library",
3
- "version": "2.0.127",
3
+ "version": "2.0.129",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -27,6 +27,7 @@ const dynamicAssets = [
27
27
  { assetKey: "betterreviews-display-v3" },
28
28
  { assetKey: "accordion-v3" },
29
29
  { assetKey: "accent-image-v3" },
30
+ { assetKey: "scrolling-banner-v3" },
30
31
  { assetKey: "site-copyright-notice-v3" },
31
32
  { assetKey: "post-type-filter-grid-v3" },
32
33
  ];
@@ -1,40 +0,0 @@
1
- <script setup>
2
- const props = defineProps(["post", "element"]);
3
- const blockClassname = "post-type-filter-grid-v3";
4
- const textColourType = props.element?.text_style?.text_colour.slice(2);
5
- let textColour = textColourType;
6
-
7
- if (textColourType == "post_text_colour_style") {
8
- textColour = props.post.post_data?.post_text_colour_style?.slice(2);
9
- }
10
- if (textColourType == "post_colour") {
11
- textColour = props.post.post_data?.post_colour;
12
- }
13
- </script>
14
- <template>
15
- <div :class="`${blockClassname}__cocktail-category ${blockClassname}__info-item`" :style="`--grid-column-start-mobile: ${element.grid_layout_element?.grid_column_start_mobile
16
- }; --grid-column-span-mobile: ${element.grid_layout_element?.grid_column_span_mobile
17
- }; --grid-row-start-mobile: ${element.grid_layout_element?.grid_row_start_mobile
18
- }; --grid-row-span-mobile: ${element.grid_layout_element?.grid_row_span_mobile
19
- }; --grid-column-start: ${element.grid_layout_element?.grid_column_start
20
- }; --grid-column-span: ${element.grid_layout_element?.grid_column_span
21
- }; --grid-row-start: ${element.grid_layout_element?.grid_row_start
22
- }; --grid-row-span: ${element.grid_layout_element?.grid_row_span
23
- }; --grid-horizontal-placement: ${element.grid_layout_element?.grid_horizontal_placement.slice(
24
- 2
25
- )}; --grid-vertical-placement: ${element.grid_layout_element?.grid_vertical_placement.slice(
26
- 2
27
- )}; --text-align: ${element.text_style?.text_align.slice(
28
- 2
29
- )}; --text-transform: ${element.text_style?.text_transform.slice(
30
- 2
31
- )}; --font-weight: ${element.text_style.text_font_weight.slice(
32
- 2
33
- )}; --font-style: ${element.text_style.font_style.slice(
34
- 2
35
- )}; --text-colour: ${textColour}`">
36
- <p v-html="post.cocktail_category" :class="`${blockClassname}__cocktail-category--item ${element.text_style?.typography_style.slice(
37
- 2
38
- )}`"></p>
39
- </div>
40
- </template>
@@ -1,15 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
- const props = defineProps(["post", "element"]);
4
- const gridLayoutString = gridLayoutElement(props);
5
- const textEditorStylesString = textEditorStyles(props);
6
-
7
- const blockClassname = "post-type-filter-grid-v3";
8
- const element = props.element;
9
- </script>
10
- <template>
11
- <div :class="`${blockClassname}__cocktail-tasting-notes ${blockClassname}__info-item`"
12
- :style="`${gridLayoutString} ${textEditorStylesString}`">
13
- <div v-html="props.post.post_data?.cocktail_tasting_notes"></div>
14
- </div>
15
- </template>
@@ -1,26 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
- const props = defineProps(["post", "element"]);
4
- const gridLayoutString = gridLayoutElement(props);
5
- const textEditorStylesString = textEditorStyles(props);
6
- const blockClassname = "post-type-filter-grid-v3";
7
- const textColourType = props.element?.text_style?.text_colour.slice(2);
8
- let textColour = textColourType;
9
-
10
- if (textColourType == "post_text_colour_style") {
11
- textColour = props.post.post_data?.post_text_colour_style?.slice(2);
12
- }
13
- if (textColourType == "post_colour") {
14
- textColour = props.post.post_data?.post_colour;
15
- }
16
- </script>
17
- <template>
18
- <div :class="`${blockClassname}__drink-tastes ${blockClassname}__info-item`"
19
- :style="`${gridLayoutString} ${textEditorStylesString}`">
20
- <template v-for="(category, index) in props.post.categories" :key="index">
21
- <div v-if="category.taxonomy === 'taste'" v-html="category.name" :class="`${blockClassname}__drink-taste--item ${element.text_style?.typography_style.slice(
22
- 2
23
- )}`"></div>
24
- </template>
25
- </div>
26
- </template>
@@ -1,62 +0,0 @@
1
- <script setup>
2
- const props = defineProps(["featuredpost", "fields", "mappedIcons", "ctaStyles"]);
3
-
4
- const blockClassname = "post-type-filter-grid-v3";
5
- let sizes = "(min-width: 1440px) 50vw, (min-width: 1024px) 50vw, (min-width: 768px) 768px') 100vw";
6
- const post = props.featuredpost.post;
7
-
8
- const iconImage = props.mappedIcons['cta_link_icon']['type'] == 'image/svg+xml' ? props.mappedIcons['cta_link_icon']['image'] : '<img src="' + props.mappedIcons['cta_link_icon']['image'] + '">';
9
- // const enableCtaIcon = props.ctaStyles[ctaStyle - 1]?.cta_settings?.include_cta_icon;
10
- let ctaAnimationStyle = '1';
11
- if (props.element?.cta_style_select) {
12
- if (props.element?.cta_style_select?.slice(2) == 'post-colour') {
13
- postCtaStyle = 'post-colour';
14
- postCtaStyleValue = `color: ${postColour};--post-text-colour-style: ${postColour};`;
15
- }
16
- if (props.element?.cta_style_select?.slice(2) == 'post-text-colour-style') {
17
- postCtaStyle = 'post-text-colour-style';
18
- postCtaStyleValue = `color: ${postTextColourStyle};--post-text-colour-style: ${postTextColourStyle};`;
19
- }
20
- if (props.ctaStyles) {
21
- ctaAnimationStyle = props.ctaStyles[ctaStyle - 1]?.cta_settings?.cta_animation_style;
22
- }
23
- }
24
-
25
- </script>
26
- <template>
27
- <a :class="`${blockClassname}__featured-post-container-link`" :href="featuredpost.post_link"
28
- :aria-label="post.post_title">
29
- <div :class="`${blockClassname}__featured-post-image-container`">
30
- <picture>
31
- <source media="(min-width: 1024px)" :srcset="props.featuredpost.post_image_src" width="1" height="1" />
32
- <source :srcset="props.featuredpost.post_image_src_mobile" width="16" height="9" />
33
- <img v-if="props.featuredpost.post_image_src" :class="`${blockClassname}__featured-post-image`"
34
- loading="lazy" :src="props.featuredpost.post_image_src" :width="props.featuredpost.post_image_width"
35
- :height="props.featuredpost.post_image_height" :srcset="props.post_image_srcset" :sizes="sizes"
36
- :alt="props.post_image_alt" />
37
- </picture>
38
- <div v-if="featuredpost.post_category" :class="`${blockClassname}__featured-post-category`">
39
- <template v-for="(category, index) in featuredpost.post_category" :key="index">
40
- <p v-if="featuredpost.post_category != 'translation_priority'" v-html="category.name"
41
- :class="`${blockClassname}__featured-post-category--item`">
42
- </p>
43
- </template>
44
- </div>
45
- </div>
46
- <div :class="`${blockClassname}__featured-post-content-container`">
47
- <h2 v-if="post.post_title" :class="`${blockClassname}__featured-post-title`" v-html="post.post_title"></h2>
48
- <p v-if="featuredpost.post_info_subtitle" :class="`${blockClassname}__featured-post-subtitle`">{{
49
- featuredpost.post_info_subtitle }}</p>
50
- <p v-if="featuredpost.post_info_description" :class="`${blockClassname}__featured-post-description`">{{
51
- featuredpost.post_info_description }}</p>
52
- <a v-if="featuredpost.post_link"
53
- :class="`${blockClassname}__featured-post-link ${blockClassname}__cta cmpl-cta-style-${fields.featured_post_button_style} cmpl-cta-animation-style-${ctaAnimationStyle}`"
54
- :href="featuredpost.post_link">
55
- <span :class="`${blockClassname}__cta-span`">Read more</span>
56
- <span :class="`${blockClassname}__cta-icon cmpl-cta-icon ${blockClassname}__icon-image`"
57
- v-html="iconImage">
58
- </span>
59
- </a>
60
- </div>
61
- </a>
62
- </template>
@@ -1,20 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element", "ctaIcons"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
-
7
- const gridLayoutString = gridLayoutElement(props);
8
- const textEditorStylesString = textEditorStyles(props);
9
-
10
- </script>
11
- <template>
12
- <a :href="`mailto:${post.post_data.person_email}`"
13
- :class="`${blockClassname}__person-email ${blockClassname}__info-item ${element.text_style?.typography_style.slice(2)}`"
14
- :style="`${gridLayoutString} ${textEditorStylesString}`">
15
- <img v-if="element.enable_icon" :class="`${blockClassname}__person-email-icon style-svg`"
16
- :src="props.ctaIcons.cta_email_icon">
17
- {{ element.display_email_as_person_name ? post.post_data.person_name : post.post_data.person_email.toLowerCase()
18
- }}
19
- </a>
20
- </template>
@@ -1,15 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
-
7
- const gridLayoutString = gridLayoutElement(props);
8
- const textEditorStylesString = textEditorStyles(props);
9
- </script>
10
- <template>
11
- <p :class="`${blockClassname}__person-name ${blockClassname}__info-item ${element.text_style?.typography_style.slice(2)}`"
12
- :style="`${gridLayoutString} ${textEditorStylesString}`">
13
- {{ post.post_data.person_name }}
14
- </p>
15
- </template>
@@ -1,17 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element", "ctaIcons"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
- const gridLayoutString = gridLayoutElement(props);
7
- const textEditorStylesString = textEditorStyles(props);
8
-
9
- </script>
10
- <template>
11
- <div v-for="questions in props.post_data.person_questionaire"
12
- :class="`${blockClassname}__person-email ${blockClassname}__info-item ${element.text_style?.typography_style.slice(2)}`"
13
- :style="`${gridLayoutString} ${textEditorStylesString}`">
14
- <img :class="`${blockClassname}__person-email-icon`" :src="props.ctaIcons.cta_email_icon">
15
- {{ post.post_data.person_email }}
16
- </div>
17
- </template>
@@ -1,25 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
- const gridLayoutString = gridLayoutElement(props);
7
-
8
- </script>
9
- <template>
10
- <div :class="`${blockClassname}__person-rating ${blockClassname}__info-item`" :style="`${gridLayoutString}`">
11
- <div :class="`${blockClassname}__person-rating-star-container`" :key="index">
12
- <svg :class="`${blockClassname}__person-rating-star`" v-for="index in Number(post.post_data.star_rating)"
13
- xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 19.02">
14
- <defs></defs>
15
- <g id="a" />
16
- <g id="b">
17
- <g id="c">
18
- <polygon class="d"
19
- points="10 15.77 3.82 19.02 5 12.14 0 7.27 6.91 6.26 10 0 13.09 6.26 20 7.27 15 12.14 16.18 19.02 10 15.77" />
20
- </g>
21
- </g>
22
- </svg>
23
- </div>
24
- </div>
25
- </template>
@@ -1,18 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
- const gridLayoutString = gridLayoutElement(props);
7
- const textEditorStylesString = textEditorStyles(props);
8
- </script>
9
- <template>
10
- <div :class="`${blockClassname}__product-abv ${blockClassname}__info-item ${element.text_style?.typography_style.slice(
11
- 2
12
- )}`" :style="`${gridLayoutString} ${textEditorStylesString}`">
13
- <h4 v-if="element.headline_text">{{ element.headline_text }}</h4>
14
- <!-- TODO -->
15
- <!-- --text-align: ${element.text_align.slice(2)}; -->
16
- {{ post.post_data.product_abv }}
17
- </div>
18
- </template>
@@ -1,17 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
-
7
- const gridLayoutString = gridLayoutElement(props);
8
- const textEditorStylesString = textEditorStyles(props);
9
- </script>
10
- <template>
11
- <div :class="`${blockClassname}__product-age-statement ${blockClassname}__info-item`" :style="`${gridLayoutString}`"
12
- v-if="post.post_data.product_age_statement">
13
- <h4 :class="`${element.text_style?.typography_style.slice(2)}`" :style="`${textEditorStylesString}`">
14
- {{ post.post_data.product_age_statement }}
15
- </h4>
16
- </div>
17
- </template>
@@ -1,15 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
- const gridLayoutString = gridLayoutElement(props);
7
- const textEditorStylesString = textEditorStyles(props);
8
- </script>
9
- <template>
10
- <div :class="`${blockClassname}__product-bazaarvoice ${blockClassname}__info-item ${element.text_style?.typography_style.slice(
11
- 2
12
- )}`" :style="`${gridLayoutString} ${textEditorStylesString}`">
13
- {{ post.post_data.product_bazaarvoice }}
14
- </div>
15
- </template>
@@ -1,16 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
- const gridLayoutString = gridLayoutElement(props);
7
- const textEditorStylesString = textEditorStyles(props);
8
- </script>
9
- <template>
10
- <div :class="`${blockClassname}__brand ${blockClassname}__info-item ${element.text_style?.typography_style.slice(
11
- 2
12
- )}`" :style="`${gridLayoutString} ${textEditorStylesString}`">
13
- <h4 v-if="element.headline_text">{{ element.headline_text }}</h4>
14
- {{ post.post_data.product_details?.brand }}
15
- </div>
16
- </template>
@@ -1,16 +0,0 @@
1
- <script setup>
2
- import { gridLayoutElement, textEditorStyles } from "./ptfg-utils.vue";
3
-
4
- const props = defineProps(["post", "element"]);
5
- const blockClassname = "post-type-filter-grid-v3";
6
- const gridLayoutString = gridLayoutElement(props);
7
- const textEditorStylesString = textEditorStyles(props);
8
- </script>
9
- <template>
10
- <div :class="`${blockClassname}__product-cask-type ${blockClassname}__info-item ${element.text_style?.typography_style.slice(
11
- 2
12
- )}`" :style="`${gridLayoutString} ${textEditorStylesString}`">
13
- <h4 v-if="element.headline_text">{{ element.headline_text }}</h4>
14
- {{ post.post_data.product_cask_type }}
15
- </div>
16
- </template>