@dcodegroup-au/page-builder 0.8.3 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/page-builder.css +27 -13
- package/dist/page-builder.es.js +121 -73
- package/dist/page-builder.umd.js +121 -73
- package/package.json +1 -1
- package/src/components/presenters/components/CarouselPresenter.vue +4 -4
- package/src/components/presenters/components/CollectionGridPresenter.vue +69 -5
- package/src/components/presenters/modules/TwoColumnsImageContent.vue +1 -1
package/dist/page-builder.css
CHANGED
|
@@ -727,6 +727,9 @@ select {
|
|
|
727
727
|
.bottom-0 {
|
|
728
728
|
bottom: 0px;
|
|
729
729
|
}
|
|
730
|
+
.bottom-10 {
|
|
731
|
+
bottom: 2.5rem;
|
|
732
|
+
}
|
|
730
733
|
.bottom-\[40px\] {
|
|
731
734
|
bottom: 40px;
|
|
732
735
|
}
|
|
@@ -867,9 +870,6 @@ select {
|
|
|
867
870
|
.mr-3 {
|
|
868
871
|
margin-right: 0.75rem;
|
|
869
872
|
}
|
|
870
|
-
.mr-6 {
|
|
871
|
-
margin-right: 1.5rem;
|
|
872
|
-
}
|
|
873
873
|
.mr-\[40px\] {
|
|
874
874
|
margin-right: 40px;
|
|
875
875
|
}
|
|
@@ -1273,6 +1273,9 @@ select {
|
|
|
1273
1273
|
.grid-cols-2 {
|
|
1274
1274
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1275
1275
|
}
|
|
1276
|
+
.grid-cols-3 {
|
|
1277
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
1278
|
+
}
|
|
1276
1279
|
.flex-row {
|
|
1277
1280
|
flex-direction: row;
|
|
1278
1281
|
}
|
|
@@ -1318,9 +1321,6 @@ select {
|
|
|
1318
1321
|
.\!gap-4 {
|
|
1319
1322
|
gap: 1rem !important;
|
|
1320
1323
|
}
|
|
1321
|
-
.gap-0 {
|
|
1322
|
-
gap: 0px;
|
|
1323
|
-
}
|
|
1324
1324
|
.gap-1 {
|
|
1325
1325
|
gap: 0.25rem;
|
|
1326
1326
|
}
|
|
@@ -3152,6 +3152,14 @@ select {
|
|
|
3152
3152
|
margin-top: 2rem;
|
|
3153
3153
|
}
|
|
3154
3154
|
|
|
3155
|
+
.md\:grid {
|
|
3156
|
+
display: grid;
|
|
3157
|
+
}
|
|
3158
|
+
|
|
3159
|
+
.md\:hidden {
|
|
3160
|
+
display: none;
|
|
3161
|
+
}
|
|
3162
|
+
|
|
3155
3163
|
.md\:h-5 {
|
|
3156
3164
|
height: 1.25rem;
|
|
3157
3165
|
}
|
|
@@ -3176,22 +3184,23 @@ select {
|
|
|
3176
3184
|
width: 560px;
|
|
3177
3185
|
}
|
|
3178
3186
|
|
|
3179
|
-
.md
|
|
3180
|
-
|
|
3187
|
+
.md\:\!translate-x-0 {
|
|
3188
|
+
--tw-translate-x: 0px !important;
|
|
3189
|
+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
|
|
3181
3190
|
}
|
|
3182
3191
|
|
|
3183
3192
|
.md\:grid-cols-2 {
|
|
3184
3193
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3185
3194
|
}
|
|
3186
3195
|
|
|
3187
|
-
.md\:grid-cols-3 {
|
|
3188
|
-
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
3189
|
-
}
|
|
3190
|
-
|
|
3191
3196
|
.md\:flex-row {
|
|
3192
3197
|
flex-direction: row;
|
|
3193
3198
|
}
|
|
3194
3199
|
|
|
3200
|
+
.md\:items-center {
|
|
3201
|
+
align-items: center;
|
|
3202
|
+
}
|
|
3203
|
+
|
|
3195
3204
|
.md\:\!gap-8 {
|
|
3196
3205
|
gap: 2rem !important;
|
|
3197
3206
|
}
|
|
@@ -3235,6 +3244,11 @@ select {
|
|
|
3235
3244
|
padding-right: 6rem;
|
|
3236
3245
|
}
|
|
3237
3246
|
|
|
3247
|
+
.md\:px-4 {
|
|
3248
|
+
padding-left: 1rem;
|
|
3249
|
+
padding-right: 1rem;
|
|
3250
|
+
}
|
|
3251
|
+
|
|
3238
3252
|
.md\:px-6 {
|
|
3239
3253
|
padding-left: 1.5rem;
|
|
3240
3254
|
padding-right: 1.5rem;
|
|
@@ -3895,7 +3909,7 @@ select {
|
|
|
3895
3909
|
-webkit-line-clamp: 4; /* Limit the text to 3 lines */
|
|
3896
3910
|
}
|
|
3897
3911
|
|
|
3898
|
-
.card[data-v-
|
|
3912
|
+
.card[data-v-269a5876] {
|
|
3899
3913
|
display: flex;
|
|
3900
3914
|
flex-direction: column;
|
|
3901
3915
|
align-items: center;
|
package/dist/page-builder.es.js
CHANGED
|
@@ -452,7 +452,7 @@ const _hoisted_12$e = { class: "flex flex-col gap-3" };
|
|
|
452
452
|
const _hoisted_13$b = ["onClick"];
|
|
453
453
|
const _hoisted_14$9 = ["onClick"];
|
|
454
454
|
const _hoisted_15$8 = { class: "text-xs text-gray-600" };
|
|
455
|
-
const _hoisted_16$
|
|
455
|
+
const _hoisted_16$6 = { class: "text-sm font-medium text-gray-900" };
|
|
456
456
|
const _sfc_main$Q = {
|
|
457
457
|
__name: "Items",
|
|
458
458
|
props: {
|
|
@@ -542,7 +542,7 @@ const _sfc_main$Q = {
|
|
|
542
542
|
onClick: ($event) => edit(item, index)
|
|
543
543
|
}, [
|
|
544
544
|
createElementVNode("div", _hoisted_15$8, toDisplayString(unref(singularize)(unref(parseName)(unref(type)))) + " #" + toDisplayString(index + 1), 1),
|
|
545
|
-
createElementVNode("div", _hoisted_16$
|
|
545
|
+
createElementVNode("div", _hoisted_16$6, toDisplayString(item.title), 1)
|
|
546
546
|
], 8, _hoisted_14$9),
|
|
547
547
|
createVNode(_sfc_main$S, {
|
|
548
548
|
onRemoveItem: ($event) => handleDeleteItem(index),
|
|
@@ -45234,9 +45234,9 @@ const _hoisted_15$7 = {
|
|
|
45234
45234
|
key: 1,
|
|
45235
45235
|
class: "flex flex-col gap-1.5"
|
|
45236
45236
|
};
|
|
45237
|
-
const _hoisted_16$
|
|
45237
|
+
const _hoisted_16$5 = ["onUpdate:modelValue", "maxlength"];
|
|
45238
45238
|
const _hoisted_17$3 = ["onUpdate:modelValue", "maxlength"];
|
|
45239
|
-
const _hoisted_18$
|
|
45239
|
+
const _hoisted_18$2 = { key: 2 };
|
|
45240
45240
|
const _sfc_main$C = {
|
|
45241
45241
|
__name: "Links",
|
|
45242
45242
|
props: {
|
|
@@ -45405,7 +45405,7 @@ const _sfc_main$C = {
|
|
|
45405
45405
|
placeholder: "Title",
|
|
45406
45406
|
maxlength: ((_a3 = componentData.value) == null ? void 0 : _a3.max_title) ?? 200,
|
|
45407
45407
|
class: "border-1 border-solid border-gray-300 rounded-lg bg-white w-full"
|
|
45408
|
-
}, null, 8, _hoisted_16$
|
|
45408
|
+
}, null, 8, _hoisted_16$5)), [
|
|
45409
45409
|
[vModelText, item.title]
|
|
45410
45410
|
]) : createCommentVNode("", true),
|
|
45411
45411
|
isBulletPoint.value ? withDirectives((openBlock(), createElementBlock("textarea", {
|
|
@@ -45436,7 +45436,7 @@ const _sfc_main$C = {
|
|
|
45436
45436
|
sites: _ctx.sites,
|
|
45437
45437
|
forms: __props.forms
|
|
45438
45438
|
}, null, 8, ["name", "type", "onUpdate:type", "url", "onUpdate:url", "openInNewTab", "onUpdate:openInNewTab", "sites", "forms"])) : createCommentVNode("", true)
|
|
45439
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_18$
|
|
45439
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_18$2, [
|
|
45440
45440
|
createVNode(_sfc_main$P, {
|
|
45441
45441
|
"is-vertical": "",
|
|
45442
45442
|
field: "image",
|
|
@@ -46193,9 +46193,9 @@ const _hoisted_15$6 = {
|
|
|
46193
46193
|
key: 0,
|
|
46194
46194
|
class: "mb-4 px-6 py-5 rounded-xl bg-gray-50"
|
|
46195
46195
|
};
|
|
46196
|
-
const _hoisted_16$
|
|
46196
|
+
const _hoisted_16$4 = { class: "flex flex-col gap-1 pt-6 text-gray-600" };
|
|
46197
46197
|
const _hoisted_17$2 = ["value"];
|
|
46198
|
-
const _hoisted_18$
|
|
46198
|
+
const _hoisted_18$1 = {
|
|
46199
46199
|
key: 1,
|
|
46200
46200
|
class: "rounded-xl bg-gray-50 px-6 py-5"
|
|
46201
46201
|
};
|
|
@@ -46336,7 +46336,7 @@ const _sfc_main$t = {
|
|
|
46336
46336
|
createElementVNode("div", _hoisted_14$7, [
|
|
46337
46337
|
!unref(selected) ? (openBlock(), createElementBlock("div", _hoisted_15$6, [
|
|
46338
46338
|
_cache[3] || (_cache[3] = createElementVNode("div", { class: "text-lg pb-6 font-semibold text-gray-900 border-b border-gray-200" }, "Settings", -1)),
|
|
46339
|
-
createElementVNode("div", _hoisted_16$
|
|
46339
|
+
createElementVNode("div", _hoisted_16$4, [
|
|
46340
46340
|
createVNode(_sfc_main$P, {
|
|
46341
46341
|
field: "breadcrumb",
|
|
46342
46342
|
"label-text": "Breadcrumb section",
|
|
@@ -46360,7 +46360,7 @@ const _sfc_main$t = {
|
|
|
46360
46360
|
_cache[2] || (_cache[2] = createElementVNode("p", null, "This sets the section name shown in the breadcrumb (e.g. Home / Who We Are / Page). Leave blank to skip the section.", -1))
|
|
46361
46361
|
])
|
|
46362
46362
|
])) : createCommentVNode("", true),
|
|
46363
|
-
!unref(selected) ? (openBlock(), createElementBlock("div", _hoisted_18$
|
|
46363
|
+
!unref(selected) ? (openBlock(), createElementBlock("div", _hoisted_18$1, [
|
|
46364
46364
|
createVNode(Instructions)
|
|
46365
46365
|
])) : createCommentVNode("", true),
|
|
46366
46366
|
(openBlock(), createBlock(resolveDynamicComponent(currentComponent.value), {
|
|
@@ -48481,7 +48481,7 @@ const _hoisted_15$5 = {
|
|
|
48481
48481
|
key: 0,
|
|
48482
48482
|
class: "flex sm:justify-center mb-6 lg:mb-10"
|
|
48483
48483
|
};
|
|
48484
|
-
const _hoisted_16$
|
|
48484
|
+
const _hoisted_16$3 = ["href", "target"];
|
|
48485
48485
|
const _sfc_main$j = {
|
|
48486
48486
|
__name: "CarouselPresenter",
|
|
48487
48487
|
props: {
|
|
@@ -48545,13 +48545,13 @@ const _sfc_main$j = {
|
|
|
48545
48545
|
var _a2;
|
|
48546
48546
|
return openBlock(), createElementBlock("div", _hoisted_1$y, [
|
|
48547
48547
|
createElementVNode("div", {
|
|
48548
|
-
class: "slider-wrapper flex transition-transform duration-500 gap-
|
|
48548
|
+
class: "slider-wrapper flex transition-transform duration-500 gap-6 mb-6",
|
|
48549
48549
|
style: normalizeStyle({ transform: `translateX(-${currentSlide.value * ((windowWidth.value >= slideWidth.value ? slideWidth.value : windowWidth.value) + 24)}px)` })
|
|
48550
48550
|
}, [
|
|
48551
48551
|
(openBlock(), createElementBlock(Fragment, null, renderList(slides, (slide, index) => {
|
|
48552
48552
|
return createElementVNode("div", {
|
|
48553
48553
|
key: index,
|
|
48554
|
-
class: normalizeClass(["slider-item flex-shrink-0
|
|
48554
|
+
class: normalizeClass(["slider-item flex-shrink-0 w-[480px] max-w-full", { "h-[318px]": !__props.hasBackground, "h-full": __props.hasBackground }])
|
|
48555
48555
|
}, [
|
|
48556
48556
|
createElementVNode("div", {
|
|
48557
48557
|
class: normalizeClass(["w-full p-4 rounded-lg md:rounded-2xl", { "bg-gray-50 h-full flex flex-col justify-between": !__props.hasBackground, "bg-white": __props.hasBackground }])
|
|
@@ -48635,7 +48635,7 @@ const _sfc_main$j = {
|
|
|
48635
48635
|
}, [
|
|
48636
48636
|
createTextVNode(toDisplayString(__props.component.button.title) + " ", 1),
|
|
48637
48637
|
createVNode(unref(ArrowUpRight), { class: "w-5 h-5" })
|
|
48638
|
-
], 8, _hoisted_16$
|
|
48638
|
+
], 8, _hoisted_16$3)
|
|
48639
48639
|
])) : createCommentVNode("", true)
|
|
48640
48640
|
]);
|
|
48641
48641
|
};
|
|
@@ -48699,36 +48699,35 @@ function render$e(_ctx, _cache) {
|
|
|
48699
48699
|
]));
|
|
48700
48700
|
}
|
|
48701
48701
|
const PlayButton = { render: render$e };
|
|
48702
|
-
const _hoisted_1$v = {
|
|
48703
|
-
const _hoisted_2$f = {
|
|
48702
|
+
const _hoisted_1$v = {
|
|
48704
48703
|
key: 0,
|
|
48705
48704
|
class: "relative group w-full object-cover rounded-lg md:rounded-2xl overflow-hidden"
|
|
48706
48705
|
};
|
|
48707
|
-
const
|
|
48706
|
+
const _hoisted_2$f = {
|
|
48708
48707
|
key: 0,
|
|
48709
48708
|
class: "w-full h-[281px] md:rounded-2xl"
|
|
48710
48709
|
};
|
|
48711
|
-
const
|
|
48712
|
-
const
|
|
48713
|
-
const
|
|
48714
|
-
const
|
|
48715
|
-
const
|
|
48716
|
-
const
|
|
48717
|
-
const
|
|
48718
|
-
const
|
|
48710
|
+
const _hoisted_3$f = ["src"];
|
|
48711
|
+
const _hoisted_4$f = ["onClick"];
|
|
48712
|
+
const _hoisted_5$f = ["src"];
|
|
48713
|
+
const _hoisted_6$f = ["href"];
|
|
48714
|
+
const _hoisted_7$e = ["src"];
|
|
48715
|
+
const _hoisted_8$d = ["href"];
|
|
48716
|
+
const _hoisted_9$d = { class: "flex flex-col gap-2 items-start text-left w-full" };
|
|
48717
|
+
const _hoisted_10$9 = {
|
|
48719
48718
|
key: 0,
|
|
48720
|
-
class: "flex gap-2"
|
|
48719
|
+
class: "flex gap-2 flex-wrap"
|
|
48721
48720
|
};
|
|
48721
|
+
const _hoisted_11$8 = ["href"];
|
|
48722
48722
|
const _hoisted_12$6 = ["href"];
|
|
48723
|
-
const _hoisted_13$6 =
|
|
48724
|
-
const _hoisted_14$5 =
|
|
48725
|
-
const _hoisted_15$4 =
|
|
48726
|
-
const _hoisted_16$
|
|
48727
|
-
const _hoisted_17$1 = {
|
|
48723
|
+
const _hoisted_13$6 = { class: "flex justify-between" };
|
|
48724
|
+
const _hoisted_14$5 = ["innerHTML"];
|
|
48725
|
+
const _hoisted_15$4 = { class: "text-gray-500 text-sm mb-4" };
|
|
48726
|
+
const _hoisted_16$2 = {
|
|
48728
48727
|
key: 0,
|
|
48729
48728
|
class: "flex justify-center"
|
|
48730
48729
|
};
|
|
48731
|
-
const
|
|
48730
|
+
const _hoisted_17$1 = ["href", "target"];
|
|
48732
48731
|
const _sfc_main$h = {
|
|
48733
48732
|
__name: "CollectionGridPresenter",
|
|
48734
48733
|
props: {
|
|
@@ -48740,6 +48739,37 @@ const _sfc_main$h = {
|
|
|
48740
48739
|
setup(__props) {
|
|
48741
48740
|
var _a, _b;
|
|
48742
48741
|
const props = __props;
|
|
48742
|
+
const currentSlide = ref(0);
|
|
48743
|
+
const windowWidth = ref(480);
|
|
48744
|
+
const slideWidth = ref(480);
|
|
48745
|
+
onMounted(() => {
|
|
48746
|
+
windowWidth.value = window.innerWidth;
|
|
48747
|
+
slideWidth.value = windowWidth.value - 32;
|
|
48748
|
+
window.addEventListener("resize", updateWidth);
|
|
48749
|
+
});
|
|
48750
|
+
onUnmounted(() => {
|
|
48751
|
+
window.removeEventListener("resize", updateWidth);
|
|
48752
|
+
});
|
|
48753
|
+
const activeRightButton = computed(() => {
|
|
48754
|
+
return currentSlide.value <= items.length - 2;
|
|
48755
|
+
});
|
|
48756
|
+
const activeLeftButton = computed(() => {
|
|
48757
|
+
return currentSlide.value !== 0;
|
|
48758
|
+
});
|
|
48759
|
+
const updateWidth = () => {
|
|
48760
|
+
windowWidth.value = window.innerWidth;
|
|
48761
|
+
slideWidth.value = windowWidth.value - 32;
|
|
48762
|
+
};
|
|
48763
|
+
const nextSlide = () => {
|
|
48764
|
+
if (currentSlide.value <= items.length - 2) {
|
|
48765
|
+
currentSlide.value++;
|
|
48766
|
+
}
|
|
48767
|
+
};
|
|
48768
|
+
const prevSlide = () => {
|
|
48769
|
+
if (currentSlide.value > 0) {
|
|
48770
|
+
currentSlide.value--;
|
|
48771
|
+
}
|
|
48772
|
+
};
|
|
48743
48773
|
let items = [];
|
|
48744
48774
|
if (props.component.type === "news_grid") {
|
|
48745
48775
|
items = [...((_a = props.component.content) == null ? void 0 : _a.items) || []];
|
|
@@ -48773,25 +48803,28 @@ const _sfc_main$h = {
|
|
|
48773
48803
|
return `https://www.youtube.com/embed/${id}`;
|
|
48774
48804
|
};
|
|
48775
48805
|
return (_ctx, _cache) => {
|
|
48776
|
-
var _a2, _b2;
|
|
48806
|
+
var _a2, _b2, _c;
|
|
48777
48807
|
return openBlock(), createElementBlock("div", {
|
|
48778
|
-
class: normalizeClass(["flex flex-col items-center gap-6 pb-[40px] pt-[24px]", { "!pt-0": __props.component.hasOwnProperty("padding_top") && !((_a2 = __props.component) == null ? void 0 : _a2.padding_top) }])
|
|
48808
|
+
class: normalizeClass(["flex flex-col items-start md:items-center gap-6 pb-[40px] pt-[24px] relative", { "!pt-0": __props.component.hasOwnProperty("padding_top") && !((_a2 = __props.component) == null ? void 0 : _a2.padding_top) }])
|
|
48779
48809
|
}, [
|
|
48780
|
-
createElementVNode("div",
|
|
48810
|
+
createElementVNode("div", {
|
|
48811
|
+
class: "flex md:grid grid-cols-3 gap-6 w-full transition-transform duration-500 md:!translate-x-0",
|
|
48812
|
+
style: normalizeStyle({ transform: `translateX(-${currentSlide.value * ((windowWidth.value >= slideWidth.value ? slideWidth.value : windowWidth.value) + 24)}px)` })
|
|
48813
|
+
}, [
|
|
48781
48814
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(items), (card, index) => {
|
|
48782
48815
|
return openBlock(), createElementBlock("div", {
|
|
48783
48816
|
key: index,
|
|
48784
|
-
class: "card bg-white sm:p-0 px-4 w-full"
|
|
48817
|
+
class: "card bg-white sm:p-0 md:px-4 w-full flex-shrink-0"
|
|
48785
48818
|
}, [
|
|
48786
|
-
__props.component.type === "video_grid" ? (openBlock(), createElementBlock("div",
|
|
48787
|
-
(card == null ? void 0 : card.youtube_url) && getEmbedUrl(card) ? (openBlock(), createElementBlock("div",
|
|
48819
|
+
__props.component.type === "video_grid" ? (openBlock(), createElementBlock("div", _hoisted_1$v, [
|
|
48820
|
+
(card == null ? void 0 : card.youtube_url) && getEmbedUrl(card) ? (openBlock(), createElementBlock("div", _hoisted_2$f, [
|
|
48788
48821
|
createElementVNode("iframe", {
|
|
48789
48822
|
src: getEmbedUrl(card),
|
|
48790
48823
|
frameborder: "0",
|
|
48791
48824
|
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
48792
48825
|
allowfullscreen: "",
|
|
48793
48826
|
class: "w-full h-full"
|
|
48794
|
-
}, null, 8,
|
|
48827
|
+
}, null, 8, _hoisted_3$f)
|
|
48795
48828
|
])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
48796
48829
|
createElementVNode("video", {
|
|
48797
48830
|
onClick: ($event) => togglePlayPause(index),
|
|
@@ -48804,8 +48837,8 @@ const _sfc_main$h = {
|
|
|
48804
48837
|
}, [
|
|
48805
48838
|
createElementVNode("source", {
|
|
48806
48839
|
src: `${card.video}#t=2`
|
|
48807
|
-
}, null, 8,
|
|
48808
|
-
], 8,
|
|
48840
|
+
}, null, 8, _hoisted_5$f)
|
|
48841
|
+
], 8, _hoisted_4$f),
|
|
48809
48842
|
!isPlaying.value[index] ? (openBlock(), createBlock(unref(PlayButton), {
|
|
48810
48843
|
key: 0,
|
|
48811
48844
|
class: "cursor-pointer absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 group-hover:opacity-100 transition-opacity",
|
|
@@ -48823,8 +48856,8 @@ const _sfc_main$h = {
|
|
|
48823
48856
|
src: card.image,
|
|
48824
48857
|
alt: "Card Image",
|
|
48825
48858
|
class: "w-full h-[281px] object-cover rounded-lg md:rounded-2xl"
|
|
48826
|
-
}, null, 8,
|
|
48827
|
-
], 8,
|
|
48859
|
+
}, null, 8, _hoisted_7$e)
|
|
48860
|
+
], 8, _hoisted_6$f)) : (openBlock(), createElementBlock("a", {
|
|
48828
48861
|
key: 2,
|
|
48829
48862
|
href: (card == null ? void 0 : card.link) ? unref(formatUrl)(card.link) : "javascript:void(0)",
|
|
48830
48863
|
class: "mb-4 w-full",
|
|
@@ -48836,15 +48869,15 @@ const _sfc_main$h = {
|
|
|
48836
48869
|
alt: "No Available",
|
|
48837
48870
|
src: _imports_0
|
|
48838
48871
|
}, null, -1)
|
|
48839
|
-
]), 8,
|
|
48840
|
-
createElementVNode("div",
|
|
48841
|
-
card.categories && card.categories.length ? (openBlock(), createElementBlock("div",
|
|
48872
|
+
]), 8, _hoisted_8$d)),
|
|
48873
|
+
createElementVNode("div", _hoisted_9$d, [
|
|
48874
|
+
card.categories && card.categories.length ? (openBlock(), createElementBlock("div", _hoisted_10$9, [
|
|
48842
48875
|
(openBlock(true), createElementBlock(Fragment, null, renderList(card.categories, (tag) => {
|
|
48843
48876
|
return openBlock(), createElementBlock("a", {
|
|
48844
48877
|
key: tag,
|
|
48845
48878
|
href: tag.link ? unref(formatUrl)(tag.link) : "javascript:void(0)",
|
|
48846
48879
|
class: normalizeClass(["border py-0.5 px-1.5 text-xs font-medium bg-gray-blue-50 border-gray-blue-200 text-gray-blue-700 rounded-md", tag.link ? "hover:bg-gray-200" : "cursor-default"])
|
|
48847
|
-
}, toDisplayString(tag.name), 11,
|
|
48880
|
+
}, toDisplayString(tag.name), 11, _hoisted_11$8);
|
|
48848
48881
|
}), 128))
|
|
48849
48882
|
])) : createCommentVNode("", true),
|
|
48850
48883
|
(card == null ? void 0 : card.link) ? (openBlock(), createElementBlock("a", {
|
|
@@ -48854,20 +48887,36 @@ const _sfc_main$h = {
|
|
|
48854
48887
|
target: "_blank",
|
|
48855
48888
|
rel: "noopener noreferrer"
|
|
48856
48889
|
}, [
|
|
48857
|
-
createElementVNode("div",
|
|
48890
|
+
createElementVNode("div", _hoisted_13$6, [
|
|
48858
48891
|
createElementVNode("span", {
|
|
48859
48892
|
class: "w-5/6 leading-[28px]",
|
|
48860
48893
|
innerHTML: card.title
|
|
48861
|
-
}, null, 8,
|
|
48894
|
+
}, null, 8, _hoisted_14$5),
|
|
48862
48895
|
createVNode(unref(ArrowUpRight), { class: "w-5 h-5 mt-1" })
|
|
48863
48896
|
])
|
|
48864
|
-
], 8,
|
|
48865
|
-
createElementVNode("p",
|
|
48897
|
+
], 8, _hoisted_12$6)) : createCommentVNode("", true),
|
|
48898
|
+
createElementVNode("p", _hoisted_15$4, toDisplayString(card.dateTime), 1)
|
|
48866
48899
|
])
|
|
48867
48900
|
]);
|
|
48868
48901
|
}), 128))
|
|
48869
|
-
]),
|
|
48870
|
-
|
|
48902
|
+
], 4),
|
|
48903
|
+
createElementVNode("div", {
|
|
48904
|
+
class: normalizeClass(["md:hidden absolute right-0 flex gap-4", Object.keys(unref(button)).length && ((_b2 = unref(button)) == null ? void 0 : _b2.show) ? "bottom-10" : "bottom-0"])
|
|
48905
|
+
}, [
|
|
48906
|
+
createElementVNode("button", {
|
|
48907
|
+
onClick: prevSlide,
|
|
48908
|
+
class: normalizeClass(["p-2.5 bg-aqua-100 text-navy-800 rounded-full opacity-100", { "opacity-50 pointer-events-none": !activeLeftButton.value }])
|
|
48909
|
+
}, [
|
|
48910
|
+
createVNode(unref(ChevronLeft), { class: "w-6 h-6" })
|
|
48911
|
+
], 2),
|
|
48912
|
+
createElementVNode("button", {
|
|
48913
|
+
onClick: nextSlide,
|
|
48914
|
+
class: normalizeClass(["p-2.5 bg-aqua-100 text-navy-800 rounded-full opacity-100", { "opacity-50 pointer-events-auto": !activeRightButton.value }])
|
|
48915
|
+
}, [
|
|
48916
|
+
createVNode(unref(ChevronRight), { class: "w-6 h-6" })
|
|
48917
|
+
], 2)
|
|
48918
|
+
], 2),
|
|
48919
|
+
Object.keys(unref(button)).length && ((_c = unref(button)) == null ? void 0 : _c.show) ? (openBlock(), createElementBlock("div", _hoisted_16$2, [
|
|
48871
48920
|
createElementVNode("a", {
|
|
48872
48921
|
class: "border-brand-300 hover:border-brand-700 border text-brand-700 h-[44px] rounded-full px-[14px] py-[10px] inline-flex gap-1.5 items-center font-semibold text-base",
|
|
48873
48922
|
href: unref(formatUrl)(unref(button).url),
|
|
@@ -48875,13 +48924,13 @@ const _sfc_main$h = {
|
|
|
48875
48924
|
}, [
|
|
48876
48925
|
createTextVNode(toDisplayString(unref(button).title) + " ", 1),
|
|
48877
48926
|
createVNode(unref(ArrowUpRight), { class: "w-5 h-5" })
|
|
48878
|
-
], 8,
|
|
48927
|
+
], 8, _hoisted_17$1)
|
|
48879
48928
|
])) : createCommentVNode("", true)
|
|
48880
48929
|
], 2);
|
|
48881
48930
|
};
|
|
48882
48931
|
}
|
|
48883
48932
|
};
|
|
48884
|
-
const CollectionGridPresenter = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-
|
|
48933
|
+
const CollectionGridPresenter = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-269a5876"]]);
|
|
48885
48934
|
const _hoisted_1$u = { class: "overflow-hidden" };
|
|
48886
48935
|
const _sfc_main$g = {
|
|
48887
48936
|
__name: "CollectionGrid",
|
|
@@ -49149,15 +49198,16 @@ const _hoisted_9$b = {
|
|
|
49149
49198
|
key: 0,
|
|
49150
49199
|
class: "max-w-[48px] min-w-[48px] w-full max-h-[48px] min-h-[48px] h-full bg-brand-100 border-[8px] border-brand-50 rounded-full flex items-center justify-center"
|
|
49151
49200
|
};
|
|
49152
|
-
const _hoisted_10$8 = { class: "
|
|
49153
|
-
const _hoisted_11$7 = ["
|
|
49154
|
-
const _hoisted_12$5 = ["
|
|
49155
|
-
const _hoisted_13$5 = ["
|
|
49156
|
-
const _hoisted_14$4 =
|
|
49201
|
+
const _hoisted_10$8 = { class: "ql-editor" };
|
|
49202
|
+
const _hoisted_11$7 = { class: "font-semibold text-[20px] text-gray-900" };
|
|
49203
|
+
const _hoisted_12$5 = ["innerHTML"];
|
|
49204
|
+
const _hoisted_13$5 = ["href", "target"];
|
|
49205
|
+
const _hoisted_14$4 = ["src"];
|
|
49206
|
+
const _hoisted_15$3 = {
|
|
49157
49207
|
key: 0,
|
|
49158
49208
|
class: "w-full md:w-[560px] rounded-br-[24px] rounded-tl-[24px] overflow-hidden relative max-lg:pt-[55%]"
|
|
49159
49209
|
};
|
|
49160
|
-
const
|
|
49210
|
+
const _hoisted_16$1 = ["src", "alt"];
|
|
49161
49211
|
const _sfc_main$d = {
|
|
49162
49212
|
__name: "TwoColumnsImageContent",
|
|
49163
49213
|
props: {
|
|
@@ -49238,7 +49288,7 @@ const _sfc_main$d = {
|
|
|
49238
49288
|
class: normalizeClass(["grid gap-8", featureItemsComponent.value.hasOwnProperty("grid_columns") ? `md:grid-cols-${featureItemsComponent.value.grid_columns}` : "lg:grid-cols-2 lg:w-2/3"])
|
|
49239
49289
|
}, [
|
|
49240
49290
|
(openBlock(true), createElementBlock(Fragment, null, renderList(items.value, (item) => {
|
|
49241
|
-
var _a2, _b2
|
|
49291
|
+
var _a2, _b2;
|
|
49242
49292
|
return openBlock(), createElementBlock("div", {
|
|
49243
49293
|
class: normalizeClass(["flex gap-3 w-full", {
|
|
49244
49294
|
"bg-gray-50 p-8 rounded-xl md:rounded-3xl overflow-hidden flex-col": featureItemsComponent.value.hasOwnProperty("grid_columns") && (featureItemsComponent.value.grid_columns > 2 || ((_a2 = featureItemsComponent.value) == null ? void 0 : _a2.has_background)),
|
|
@@ -49252,15 +49302,13 @@ const _sfc_main$d = {
|
|
|
49252
49302
|
"icon-classes": "w-5 h-5 text-brand-600"
|
|
49253
49303
|
}, null, 8, ["icon"])
|
|
49254
49304
|
])) : createCommentVNode("", true),
|
|
49255
|
-
createElementVNode("div",
|
|
49256
|
-
|
|
49257
|
-
}, [
|
|
49258
|
-
createElementVNode("h3", _hoisted_10$8, toDisplayString(item.title), 1),
|
|
49305
|
+
createElementVNode("div", _hoisted_10$8, [
|
|
49306
|
+
createElementVNode("h3", _hoisted_11$7, toDisplayString(item.title), 1),
|
|
49259
49307
|
createElementVNode("p", {
|
|
49260
49308
|
class: "mt-2 text-md font-normal text-gray-600 leading-[24px]",
|
|
49261
49309
|
innerHTML: item.supporting_text ?? item.description
|
|
49262
|
-
}, null, 8,
|
|
49263
|
-
((
|
|
49310
|
+
}, null, 8, _hoisted_12$5),
|
|
49311
|
+
((_b2 = item == null ? void 0 : item.primary_button) == null ? void 0 : _b2.show) ? (openBlock(), createElementBlock("a", {
|
|
49264
49312
|
key: 0,
|
|
49265
49313
|
class: "cursor-pointer text-brand-700 inline-flex gap-1.5 items-center font-semibold text-base mt-4",
|
|
49266
49314
|
href: unref(formatUrl)(item.primary_button.url),
|
|
@@ -49268,23 +49316,23 @@ const _sfc_main$d = {
|
|
|
49268
49316
|
}, [
|
|
49269
49317
|
createTextVNode(toDisplayString(item.primary_button.label) + " ", 1),
|
|
49270
49318
|
createVNode(unref(ArrowUpRight), { class: "w-5 h-5" })
|
|
49271
|
-
], 8,
|
|
49272
|
-
]
|
|
49319
|
+
], 8, _hoisted_13$5)) : createCommentVNode("", true)
|
|
49320
|
+
])
|
|
49273
49321
|
], 64)) : (openBlock(), createElementBlock("img", {
|
|
49274
49322
|
key: 1,
|
|
49275
49323
|
src: item.image,
|
|
49276
49324
|
alt: "Feature Image",
|
|
49277
49325
|
class: "w-full h-full object-cover"
|
|
49278
|
-
}, null, 8,
|
|
49326
|
+
}, null, 8, _hoisted_14$4))
|
|
49279
49327
|
], 2);
|
|
49280
49328
|
}), 256))
|
|
49281
49329
|
], 2),
|
|
49282
|
-
imageComponent.value ? (openBlock(), createElementBlock("div",
|
|
49330
|
+
imageComponent.value ? (openBlock(), createElementBlock("div", _hoisted_15$3, [
|
|
49283
49331
|
createElementVNode("img", {
|
|
49284
49332
|
src: imageComponent.value.featured_image,
|
|
49285
49333
|
alt: ((_d = imageComponent.value) == null ? void 0 : _d.caption) ?? "Image",
|
|
49286
49334
|
class: "w-full h-full object-cover max-lg:absolute inset-0"
|
|
49287
|
-
}, null, 8,
|
|
49335
|
+
}, null, 8, _hoisted_16$1)
|
|
49288
49336
|
])) : createCommentVNode("", true)
|
|
49289
49337
|
], 2)
|
|
49290
49338
|
]))
|
package/dist/page-builder.umd.js
CHANGED
|
@@ -455,7 +455,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
455
455
|
const _hoisted_13$b = ["onClick"];
|
|
456
456
|
const _hoisted_14$9 = ["onClick"];
|
|
457
457
|
const _hoisted_15$8 = { class: "text-xs text-gray-600" };
|
|
458
|
-
const _hoisted_16$
|
|
458
|
+
const _hoisted_16$6 = { class: "text-sm font-medium text-gray-900" };
|
|
459
459
|
const _sfc_main$Q = {
|
|
460
460
|
__name: "Items",
|
|
461
461
|
props: {
|
|
@@ -545,7 +545,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
545
545
|
onClick: ($event) => edit(item, index)
|
|
546
546
|
}, [
|
|
547
547
|
vue.createElementVNode("div", _hoisted_15$8, vue.toDisplayString(vue.unref(singularize)(vue.unref(parseName)(vue.unref(type)))) + " #" + vue.toDisplayString(index + 1), 1),
|
|
548
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
548
|
+
vue.createElementVNode("div", _hoisted_16$6, vue.toDisplayString(item.title), 1)
|
|
549
549
|
], 8, _hoisted_14$9),
|
|
550
550
|
vue.createVNode(_sfc_main$S, {
|
|
551
551
|
onRemoveItem: ($event) => handleDeleteItem(index),
|
|
@@ -45237,9 +45237,9 @@ ${escapeText(this.code(index, length))}
|
|
|
45237
45237
|
key: 1,
|
|
45238
45238
|
class: "flex flex-col gap-1.5"
|
|
45239
45239
|
};
|
|
45240
|
-
const _hoisted_16$
|
|
45240
|
+
const _hoisted_16$5 = ["onUpdate:modelValue", "maxlength"];
|
|
45241
45241
|
const _hoisted_17$3 = ["onUpdate:modelValue", "maxlength"];
|
|
45242
|
-
const _hoisted_18$
|
|
45242
|
+
const _hoisted_18$2 = { key: 2 };
|
|
45243
45243
|
const _sfc_main$C = {
|
|
45244
45244
|
__name: "Links",
|
|
45245
45245
|
props: {
|
|
@@ -45408,7 +45408,7 @@ ${escapeText(this.code(index, length))}
|
|
|
45408
45408
|
placeholder: "Title",
|
|
45409
45409
|
maxlength: ((_a3 = componentData.value) == null ? void 0 : _a3.max_title) ?? 200,
|
|
45410
45410
|
class: "border-1 border-solid border-gray-300 rounded-lg bg-white w-full"
|
|
45411
|
-
}, null, 8, _hoisted_16$
|
|
45411
|
+
}, null, 8, _hoisted_16$5)), [
|
|
45412
45412
|
[vue.vModelText, item.title]
|
|
45413
45413
|
]) : vue.createCommentVNode("", true),
|
|
45414
45414
|
isBulletPoint.value ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("textarea", {
|
|
@@ -45439,7 +45439,7 @@ ${escapeText(this.code(index, length))}
|
|
|
45439
45439
|
sites: _ctx.sites,
|
|
45440
45440
|
forms: __props.forms
|
|
45441
45441
|
}, null, 8, ["name", "type", "onUpdate:type", "url", "onUpdate:url", "openInNewTab", "onUpdate:openInNewTab", "sites", "forms"])) : vue.createCommentVNode("", true)
|
|
45442
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$
|
|
45442
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$2, [
|
|
45443
45443
|
vue.createVNode(_sfc_main$P, {
|
|
45444
45444
|
"is-vertical": "",
|
|
45445
45445
|
field: "image",
|
|
@@ -46196,9 +46196,9 @@ ${escapeText(this.code(index, length))}
|
|
|
46196
46196
|
key: 0,
|
|
46197
46197
|
class: "mb-4 px-6 py-5 rounded-xl bg-gray-50"
|
|
46198
46198
|
};
|
|
46199
|
-
const _hoisted_16$
|
|
46199
|
+
const _hoisted_16$4 = { class: "flex flex-col gap-1 pt-6 text-gray-600" };
|
|
46200
46200
|
const _hoisted_17$2 = ["value"];
|
|
46201
|
-
const _hoisted_18$
|
|
46201
|
+
const _hoisted_18$1 = {
|
|
46202
46202
|
key: 1,
|
|
46203
46203
|
class: "rounded-xl bg-gray-50 px-6 py-5"
|
|
46204
46204
|
};
|
|
@@ -46339,7 +46339,7 @@ ${escapeText(this.code(index, length))}
|
|
|
46339
46339
|
vue.createElementVNode("div", _hoisted_14$7, [
|
|
46340
46340
|
!vue.unref(selected) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$6, [
|
|
46341
46341
|
_cache[3] || (_cache[3] = vue.createElementVNode("div", { class: "text-lg pb-6 font-semibold text-gray-900 border-b border-gray-200" }, "Settings", -1)),
|
|
46342
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
46342
|
+
vue.createElementVNode("div", _hoisted_16$4, [
|
|
46343
46343
|
vue.createVNode(_sfc_main$P, {
|
|
46344
46344
|
field: "breadcrumb",
|
|
46345
46345
|
"label-text": "Breadcrumb section",
|
|
@@ -46363,7 +46363,7 @@ ${escapeText(this.code(index, length))}
|
|
|
46363
46363
|
_cache[2] || (_cache[2] = vue.createElementVNode("p", null, "This sets the section name shown in the breadcrumb (e.g. Home / Who We Are / Page). Leave blank to skip the section.", -1))
|
|
46364
46364
|
])
|
|
46365
46365
|
])) : vue.createCommentVNode("", true),
|
|
46366
|
-
!vue.unref(selected) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$
|
|
46366
|
+
!vue.unref(selected) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$1, [
|
|
46367
46367
|
vue.createVNode(Instructions)
|
|
46368
46368
|
])) : vue.createCommentVNode("", true),
|
|
46369
46369
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(currentComponent.value), {
|
|
@@ -48484,7 +48484,7 @@ ${escapeText(this.code(index, length))}
|
|
|
48484
48484
|
key: 0,
|
|
48485
48485
|
class: "flex sm:justify-center mb-6 lg:mb-10"
|
|
48486
48486
|
};
|
|
48487
|
-
const _hoisted_16$
|
|
48487
|
+
const _hoisted_16$3 = ["href", "target"];
|
|
48488
48488
|
const _sfc_main$j = {
|
|
48489
48489
|
__name: "CarouselPresenter",
|
|
48490
48490
|
props: {
|
|
@@ -48548,13 +48548,13 @@ ${escapeText(this.code(index, length))}
|
|
|
48548
48548
|
var _a2;
|
|
48549
48549
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$y, [
|
|
48550
48550
|
vue.createElementVNode("div", {
|
|
48551
|
-
class: "slider-wrapper flex transition-transform duration-500 gap-
|
|
48551
|
+
class: "slider-wrapper flex transition-transform duration-500 gap-6 mb-6",
|
|
48552
48552
|
style: vue.normalizeStyle({ transform: `translateX(-${currentSlide.value * ((windowWidth.value >= slideWidth.value ? slideWidth.value : windowWidth.value) + 24)}px)` })
|
|
48553
48553
|
}, [
|
|
48554
48554
|
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(slides, (slide, index) => {
|
|
48555
48555
|
return vue.createElementVNode("div", {
|
|
48556
48556
|
key: index,
|
|
48557
|
-
class: vue.normalizeClass(["slider-item flex-shrink-0
|
|
48557
|
+
class: vue.normalizeClass(["slider-item flex-shrink-0 w-[480px] max-w-full", { "h-[318px]": !__props.hasBackground, "h-full": __props.hasBackground }])
|
|
48558
48558
|
}, [
|
|
48559
48559
|
vue.createElementVNode("div", {
|
|
48560
48560
|
class: vue.normalizeClass(["w-full p-4 rounded-lg md:rounded-2xl", { "bg-gray-50 h-full flex flex-col justify-between": !__props.hasBackground, "bg-white": __props.hasBackground }])
|
|
@@ -48638,7 +48638,7 @@ ${escapeText(this.code(index, length))}
|
|
|
48638
48638
|
}, [
|
|
48639
48639
|
vue.createTextVNode(vue.toDisplayString(__props.component.button.title) + " ", 1),
|
|
48640
48640
|
vue.createVNode(vue.unref(ArrowUpRight), { class: "w-5 h-5" })
|
|
48641
|
-
], 8, _hoisted_16$
|
|
48641
|
+
], 8, _hoisted_16$3)
|
|
48642
48642
|
])) : vue.createCommentVNode("", true)
|
|
48643
48643
|
]);
|
|
48644
48644
|
};
|
|
@@ -48702,36 +48702,35 @@ ${escapeText(this.code(index, length))}
|
|
|
48702
48702
|
]));
|
|
48703
48703
|
}
|
|
48704
48704
|
const PlayButton = { render: render$e };
|
|
48705
|
-
const _hoisted_1$v = {
|
|
48706
|
-
const _hoisted_2$f = {
|
|
48705
|
+
const _hoisted_1$v = {
|
|
48707
48706
|
key: 0,
|
|
48708
48707
|
class: "relative group w-full object-cover rounded-lg md:rounded-2xl overflow-hidden"
|
|
48709
48708
|
};
|
|
48710
|
-
const
|
|
48709
|
+
const _hoisted_2$f = {
|
|
48711
48710
|
key: 0,
|
|
48712
48711
|
class: "w-full h-[281px] md:rounded-2xl"
|
|
48713
48712
|
};
|
|
48714
|
-
const
|
|
48715
|
-
const
|
|
48716
|
-
const
|
|
48717
|
-
const
|
|
48718
|
-
const
|
|
48719
|
-
const
|
|
48720
|
-
const
|
|
48721
|
-
const
|
|
48713
|
+
const _hoisted_3$f = ["src"];
|
|
48714
|
+
const _hoisted_4$f = ["onClick"];
|
|
48715
|
+
const _hoisted_5$f = ["src"];
|
|
48716
|
+
const _hoisted_6$f = ["href"];
|
|
48717
|
+
const _hoisted_7$e = ["src"];
|
|
48718
|
+
const _hoisted_8$d = ["href"];
|
|
48719
|
+
const _hoisted_9$d = { class: "flex flex-col gap-2 items-start text-left w-full" };
|
|
48720
|
+
const _hoisted_10$9 = {
|
|
48722
48721
|
key: 0,
|
|
48723
|
-
class: "flex gap-2"
|
|
48722
|
+
class: "flex gap-2 flex-wrap"
|
|
48724
48723
|
};
|
|
48724
|
+
const _hoisted_11$8 = ["href"];
|
|
48725
48725
|
const _hoisted_12$6 = ["href"];
|
|
48726
|
-
const _hoisted_13$6 =
|
|
48727
|
-
const _hoisted_14$5 =
|
|
48728
|
-
const _hoisted_15$4 =
|
|
48729
|
-
const _hoisted_16$
|
|
48730
|
-
const _hoisted_17$1 = {
|
|
48726
|
+
const _hoisted_13$6 = { class: "flex justify-between" };
|
|
48727
|
+
const _hoisted_14$5 = ["innerHTML"];
|
|
48728
|
+
const _hoisted_15$4 = { class: "text-gray-500 text-sm mb-4" };
|
|
48729
|
+
const _hoisted_16$2 = {
|
|
48731
48730
|
key: 0,
|
|
48732
48731
|
class: "flex justify-center"
|
|
48733
48732
|
};
|
|
48734
|
-
const
|
|
48733
|
+
const _hoisted_17$1 = ["href", "target"];
|
|
48735
48734
|
const _sfc_main$h = {
|
|
48736
48735
|
__name: "CollectionGridPresenter",
|
|
48737
48736
|
props: {
|
|
@@ -48743,6 +48742,37 @@ ${escapeText(this.code(index, length))}
|
|
|
48743
48742
|
setup(__props) {
|
|
48744
48743
|
var _a, _b;
|
|
48745
48744
|
const props = __props;
|
|
48745
|
+
const currentSlide = vue.ref(0);
|
|
48746
|
+
const windowWidth = vue.ref(480);
|
|
48747
|
+
const slideWidth = vue.ref(480);
|
|
48748
|
+
vue.onMounted(() => {
|
|
48749
|
+
windowWidth.value = window.innerWidth;
|
|
48750
|
+
slideWidth.value = windowWidth.value - 32;
|
|
48751
|
+
window.addEventListener("resize", updateWidth);
|
|
48752
|
+
});
|
|
48753
|
+
vue.onUnmounted(() => {
|
|
48754
|
+
window.removeEventListener("resize", updateWidth);
|
|
48755
|
+
});
|
|
48756
|
+
const activeRightButton = vue.computed(() => {
|
|
48757
|
+
return currentSlide.value <= items.length - 2;
|
|
48758
|
+
});
|
|
48759
|
+
const activeLeftButton = vue.computed(() => {
|
|
48760
|
+
return currentSlide.value !== 0;
|
|
48761
|
+
});
|
|
48762
|
+
const updateWidth = () => {
|
|
48763
|
+
windowWidth.value = window.innerWidth;
|
|
48764
|
+
slideWidth.value = windowWidth.value - 32;
|
|
48765
|
+
};
|
|
48766
|
+
const nextSlide = () => {
|
|
48767
|
+
if (currentSlide.value <= items.length - 2) {
|
|
48768
|
+
currentSlide.value++;
|
|
48769
|
+
}
|
|
48770
|
+
};
|
|
48771
|
+
const prevSlide = () => {
|
|
48772
|
+
if (currentSlide.value > 0) {
|
|
48773
|
+
currentSlide.value--;
|
|
48774
|
+
}
|
|
48775
|
+
};
|
|
48746
48776
|
let items = [];
|
|
48747
48777
|
if (props.component.type === "news_grid") {
|
|
48748
48778
|
items = [...((_a = props.component.content) == null ? void 0 : _a.items) || []];
|
|
@@ -48776,25 +48806,28 @@ ${escapeText(this.code(index, length))}
|
|
|
48776
48806
|
return `https://www.youtube.com/embed/${id}`;
|
|
48777
48807
|
};
|
|
48778
48808
|
return (_ctx, _cache) => {
|
|
48779
|
-
var _a2, _b2;
|
|
48809
|
+
var _a2, _b2, _c;
|
|
48780
48810
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
48781
|
-
class: vue.normalizeClass(["flex flex-col items-center gap-6 pb-[40px] pt-[24px]", { "!pt-0": __props.component.hasOwnProperty("padding_top") && !((_a2 = __props.component) == null ? void 0 : _a2.padding_top) }])
|
|
48811
|
+
class: vue.normalizeClass(["flex flex-col items-start md:items-center gap-6 pb-[40px] pt-[24px] relative", { "!pt-0": __props.component.hasOwnProperty("padding_top") && !((_a2 = __props.component) == null ? void 0 : _a2.padding_top) }])
|
|
48782
48812
|
}, [
|
|
48783
|
-
vue.createElementVNode("div",
|
|
48813
|
+
vue.createElementVNode("div", {
|
|
48814
|
+
class: "flex md:grid grid-cols-3 gap-6 w-full transition-transform duration-500 md:!translate-x-0",
|
|
48815
|
+
style: vue.normalizeStyle({ transform: `translateX(-${currentSlide.value * ((windowWidth.value >= slideWidth.value ? slideWidth.value : windowWidth.value) + 24)}px)` })
|
|
48816
|
+
}, [
|
|
48784
48817
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(items), (card, index) => {
|
|
48785
48818
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
48786
48819
|
key: index,
|
|
48787
|
-
class: "card bg-white sm:p-0 px-4 w-full"
|
|
48820
|
+
class: "card bg-white sm:p-0 md:px-4 w-full flex-shrink-0"
|
|
48788
48821
|
}, [
|
|
48789
|
-
__props.component.type === "video_grid" ? (vue.openBlock(), vue.createElementBlock("div",
|
|
48790
|
-
(card == null ? void 0 : card.youtube_url) && getEmbedUrl(card) ? (vue.openBlock(), vue.createElementBlock("div",
|
|
48822
|
+
__props.component.type === "video_grid" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [
|
|
48823
|
+
(card == null ? void 0 : card.youtube_url) && getEmbedUrl(card) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
|
|
48791
48824
|
vue.createElementVNode("iframe", {
|
|
48792
48825
|
src: getEmbedUrl(card),
|
|
48793
48826
|
frameborder: "0",
|
|
48794
48827
|
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
48795
48828
|
allowfullscreen: "",
|
|
48796
48829
|
class: "w-full h-full"
|
|
48797
|
-
}, null, 8,
|
|
48830
|
+
}, null, 8, _hoisted_3$f)
|
|
48798
48831
|
])) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
48799
48832
|
vue.createElementVNode("video", {
|
|
48800
48833
|
onClick: ($event) => togglePlayPause(index),
|
|
@@ -48807,8 +48840,8 @@ ${escapeText(this.code(index, length))}
|
|
|
48807
48840
|
}, [
|
|
48808
48841
|
vue.createElementVNode("source", {
|
|
48809
48842
|
src: `${card.video}#t=2`
|
|
48810
|
-
}, null, 8,
|
|
48811
|
-
], 8,
|
|
48843
|
+
}, null, 8, _hoisted_5$f)
|
|
48844
|
+
], 8, _hoisted_4$f),
|
|
48812
48845
|
!isPlaying.value[index] ? (vue.openBlock(), vue.createBlock(vue.unref(PlayButton), {
|
|
48813
48846
|
key: 0,
|
|
48814
48847
|
class: "cursor-pointer absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 group-hover:opacity-100 transition-opacity",
|
|
@@ -48826,8 +48859,8 @@ ${escapeText(this.code(index, length))}
|
|
|
48826
48859
|
src: card.image,
|
|
48827
48860
|
alt: "Card Image",
|
|
48828
48861
|
class: "w-full h-[281px] object-cover rounded-lg md:rounded-2xl"
|
|
48829
|
-
}, null, 8,
|
|
48830
|
-
], 8,
|
|
48862
|
+
}, null, 8, _hoisted_7$e)
|
|
48863
|
+
], 8, _hoisted_6$f)) : (vue.openBlock(), vue.createElementBlock("a", {
|
|
48831
48864
|
key: 2,
|
|
48832
48865
|
href: (card == null ? void 0 : card.link) ? vue.unref(formatUrl)(card.link) : "javascript:void(0)",
|
|
48833
48866
|
class: "mb-4 w-full",
|
|
@@ -48839,15 +48872,15 @@ ${escapeText(this.code(index, length))}
|
|
|
48839
48872
|
alt: "No Available",
|
|
48840
48873
|
src: _imports_0
|
|
48841
48874
|
}, null, -1)
|
|
48842
|
-
]), 8,
|
|
48843
|
-
vue.createElementVNode("div",
|
|
48844
|
-
card.categories && card.categories.length ? (vue.openBlock(), vue.createElementBlock("div",
|
|
48875
|
+
]), 8, _hoisted_8$d)),
|
|
48876
|
+
vue.createElementVNode("div", _hoisted_9$d, [
|
|
48877
|
+
card.categories && card.categories.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$9, [
|
|
48845
48878
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(card.categories, (tag) => {
|
|
48846
48879
|
return vue.openBlock(), vue.createElementBlock("a", {
|
|
48847
48880
|
key: tag,
|
|
48848
48881
|
href: tag.link ? vue.unref(formatUrl)(tag.link) : "javascript:void(0)",
|
|
48849
48882
|
class: vue.normalizeClass(["border py-0.5 px-1.5 text-xs font-medium bg-gray-blue-50 border-gray-blue-200 text-gray-blue-700 rounded-md", tag.link ? "hover:bg-gray-200" : "cursor-default"])
|
|
48850
|
-
}, vue.toDisplayString(tag.name), 11,
|
|
48883
|
+
}, vue.toDisplayString(tag.name), 11, _hoisted_11$8);
|
|
48851
48884
|
}), 128))
|
|
48852
48885
|
])) : vue.createCommentVNode("", true),
|
|
48853
48886
|
(card == null ? void 0 : card.link) ? (vue.openBlock(), vue.createElementBlock("a", {
|
|
@@ -48857,20 +48890,36 @@ ${escapeText(this.code(index, length))}
|
|
|
48857
48890
|
target: "_blank",
|
|
48858
48891
|
rel: "noopener noreferrer"
|
|
48859
48892
|
}, [
|
|
48860
|
-
vue.createElementVNode("div",
|
|
48893
|
+
vue.createElementVNode("div", _hoisted_13$6, [
|
|
48861
48894
|
vue.createElementVNode("span", {
|
|
48862
48895
|
class: "w-5/6 leading-[28px]",
|
|
48863
48896
|
innerHTML: card.title
|
|
48864
|
-
}, null, 8,
|
|
48897
|
+
}, null, 8, _hoisted_14$5),
|
|
48865
48898
|
vue.createVNode(vue.unref(ArrowUpRight), { class: "w-5 h-5 mt-1" })
|
|
48866
48899
|
])
|
|
48867
|
-
], 8,
|
|
48868
|
-
vue.createElementVNode("p",
|
|
48900
|
+
], 8, _hoisted_12$6)) : vue.createCommentVNode("", true),
|
|
48901
|
+
vue.createElementVNode("p", _hoisted_15$4, vue.toDisplayString(card.dateTime), 1)
|
|
48869
48902
|
])
|
|
48870
48903
|
]);
|
|
48871
48904
|
}), 128))
|
|
48872
|
-
]),
|
|
48873
|
-
|
|
48905
|
+
], 4),
|
|
48906
|
+
vue.createElementVNode("div", {
|
|
48907
|
+
class: vue.normalizeClass(["md:hidden absolute right-0 flex gap-4", Object.keys(vue.unref(button)).length && ((_b2 = vue.unref(button)) == null ? void 0 : _b2.show) ? "bottom-10" : "bottom-0"])
|
|
48908
|
+
}, [
|
|
48909
|
+
vue.createElementVNode("button", {
|
|
48910
|
+
onClick: prevSlide,
|
|
48911
|
+
class: vue.normalizeClass(["p-2.5 bg-aqua-100 text-navy-800 rounded-full opacity-100", { "opacity-50 pointer-events-none": !activeLeftButton.value }])
|
|
48912
|
+
}, [
|
|
48913
|
+
vue.createVNode(vue.unref(ChevronLeft), { class: "w-6 h-6" })
|
|
48914
|
+
], 2),
|
|
48915
|
+
vue.createElementVNode("button", {
|
|
48916
|
+
onClick: nextSlide,
|
|
48917
|
+
class: vue.normalizeClass(["p-2.5 bg-aqua-100 text-navy-800 rounded-full opacity-100", { "opacity-50 pointer-events-auto": !activeRightButton.value }])
|
|
48918
|
+
}, [
|
|
48919
|
+
vue.createVNode(vue.unref(ChevronRight), { class: "w-6 h-6" })
|
|
48920
|
+
], 2)
|
|
48921
|
+
], 2),
|
|
48922
|
+
Object.keys(vue.unref(button)).length && ((_c = vue.unref(button)) == null ? void 0 : _c.show) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$2, [
|
|
48874
48923
|
vue.createElementVNode("a", {
|
|
48875
48924
|
class: "border-brand-300 hover:border-brand-700 border text-brand-700 h-[44px] rounded-full px-[14px] py-[10px] inline-flex gap-1.5 items-center font-semibold text-base",
|
|
48876
48925
|
href: vue.unref(formatUrl)(vue.unref(button).url),
|
|
@@ -48878,13 +48927,13 @@ ${escapeText(this.code(index, length))}
|
|
|
48878
48927
|
}, [
|
|
48879
48928
|
vue.createTextVNode(vue.toDisplayString(vue.unref(button).title) + " ", 1),
|
|
48880
48929
|
vue.createVNode(vue.unref(ArrowUpRight), { class: "w-5 h-5" })
|
|
48881
|
-
], 8,
|
|
48930
|
+
], 8, _hoisted_17$1)
|
|
48882
48931
|
])) : vue.createCommentVNode("", true)
|
|
48883
48932
|
], 2);
|
|
48884
48933
|
};
|
|
48885
48934
|
}
|
|
48886
48935
|
};
|
|
48887
|
-
const CollectionGridPresenter = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-
|
|
48936
|
+
const CollectionGridPresenter = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-269a5876"]]);
|
|
48888
48937
|
const _hoisted_1$u = { class: "overflow-hidden" };
|
|
48889
48938
|
const _sfc_main$g = {
|
|
48890
48939
|
__name: "CollectionGrid",
|
|
@@ -49152,15 +49201,16 @@ ${escapeText(this.code(index, length))}
|
|
|
49152
49201
|
key: 0,
|
|
49153
49202
|
class: "max-w-[48px] min-w-[48px] w-full max-h-[48px] min-h-[48px] h-full bg-brand-100 border-[8px] border-brand-50 rounded-full flex items-center justify-center"
|
|
49154
49203
|
};
|
|
49155
|
-
const _hoisted_10$8 = { class: "
|
|
49156
|
-
const _hoisted_11$7 = ["
|
|
49157
|
-
const _hoisted_12$5 = ["
|
|
49158
|
-
const _hoisted_13$5 = ["
|
|
49159
|
-
const _hoisted_14$4 =
|
|
49204
|
+
const _hoisted_10$8 = { class: "ql-editor" };
|
|
49205
|
+
const _hoisted_11$7 = { class: "font-semibold text-[20px] text-gray-900" };
|
|
49206
|
+
const _hoisted_12$5 = ["innerHTML"];
|
|
49207
|
+
const _hoisted_13$5 = ["href", "target"];
|
|
49208
|
+
const _hoisted_14$4 = ["src"];
|
|
49209
|
+
const _hoisted_15$3 = {
|
|
49160
49210
|
key: 0,
|
|
49161
49211
|
class: "w-full md:w-[560px] rounded-br-[24px] rounded-tl-[24px] overflow-hidden relative max-lg:pt-[55%]"
|
|
49162
49212
|
};
|
|
49163
|
-
const
|
|
49213
|
+
const _hoisted_16$1 = ["src", "alt"];
|
|
49164
49214
|
const _sfc_main$d = {
|
|
49165
49215
|
__name: "TwoColumnsImageContent",
|
|
49166
49216
|
props: {
|
|
@@ -49241,7 +49291,7 @@ ${escapeText(this.code(index, length))}
|
|
|
49241
49291
|
class: vue.normalizeClass(["grid gap-8", featureItemsComponent.value.hasOwnProperty("grid_columns") ? `md:grid-cols-${featureItemsComponent.value.grid_columns}` : "lg:grid-cols-2 lg:w-2/3"])
|
|
49242
49292
|
}, [
|
|
49243
49293
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items.value, (item) => {
|
|
49244
|
-
var _a2, _b2
|
|
49294
|
+
var _a2, _b2;
|
|
49245
49295
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
49246
49296
|
class: vue.normalizeClass(["flex gap-3 w-full", {
|
|
49247
49297
|
"bg-gray-50 p-8 rounded-xl md:rounded-3xl overflow-hidden flex-col": featureItemsComponent.value.hasOwnProperty("grid_columns") && (featureItemsComponent.value.grid_columns > 2 || ((_a2 = featureItemsComponent.value) == null ? void 0 : _a2.has_background)),
|
|
@@ -49255,15 +49305,13 @@ ${escapeText(this.code(index, length))}
|
|
|
49255
49305
|
"icon-classes": "w-5 h-5 text-brand-600"
|
|
49256
49306
|
}, null, 8, ["icon"])
|
|
49257
49307
|
])) : vue.createCommentVNode("", true),
|
|
49258
|
-
vue.createElementVNode("div",
|
|
49259
|
-
|
|
49260
|
-
}, [
|
|
49261
|
-
vue.createElementVNode("h3", _hoisted_10$8, vue.toDisplayString(item.title), 1),
|
|
49308
|
+
vue.createElementVNode("div", _hoisted_10$8, [
|
|
49309
|
+
vue.createElementVNode("h3", _hoisted_11$7, vue.toDisplayString(item.title), 1),
|
|
49262
49310
|
vue.createElementVNode("p", {
|
|
49263
49311
|
class: "mt-2 text-md font-normal text-gray-600 leading-[24px]",
|
|
49264
49312
|
innerHTML: item.supporting_text ?? item.description
|
|
49265
|
-
}, null, 8,
|
|
49266
|
-
((
|
|
49313
|
+
}, null, 8, _hoisted_12$5),
|
|
49314
|
+
((_b2 = item == null ? void 0 : item.primary_button) == null ? void 0 : _b2.show) ? (vue.openBlock(), vue.createElementBlock("a", {
|
|
49267
49315
|
key: 0,
|
|
49268
49316
|
class: "cursor-pointer text-brand-700 inline-flex gap-1.5 items-center font-semibold text-base mt-4",
|
|
49269
49317
|
href: vue.unref(formatUrl)(item.primary_button.url),
|
|
@@ -49271,23 +49319,23 @@ ${escapeText(this.code(index, length))}
|
|
|
49271
49319
|
}, [
|
|
49272
49320
|
vue.createTextVNode(vue.toDisplayString(item.primary_button.label) + " ", 1),
|
|
49273
49321
|
vue.createVNode(vue.unref(ArrowUpRight), { class: "w-5 h-5" })
|
|
49274
|
-
], 8,
|
|
49275
|
-
]
|
|
49322
|
+
], 8, _hoisted_13$5)) : vue.createCommentVNode("", true)
|
|
49323
|
+
])
|
|
49276
49324
|
], 64)) : (vue.openBlock(), vue.createElementBlock("img", {
|
|
49277
49325
|
key: 1,
|
|
49278
49326
|
src: item.image,
|
|
49279
49327
|
alt: "Feature Image",
|
|
49280
49328
|
class: "w-full h-full object-cover"
|
|
49281
|
-
}, null, 8,
|
|
49329
|
+
}, null, 8, _hoisted_14$4))
|
|
49282
49330
|
], 2);
|
|
49283
49331
|
}), 256))
|
|
49284
49332
|
], 2),
|
|
49285
|
-
imageComponent.value ? (vue.openBlock(), vue.createElementBlock("div",
|
|
49333
|
+
imageComponent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$3, [
|
|
49286
49334
|
vue.createElementVNode("img", {
|
|
49287
49335
|
src: imageComponent.value.featured_image,
|
|
49288
49336
|
alt: ((_d = imageComponent.value) == null ? void 0 : _d.caption) ?? "Image",
|
|
49289
49337
|
class: "w-full h-full object-cover max-lg:absolute inset-0"
|
|
49290
|
-
}, null, 8,
|
|
49338
|
+
}, null, 8, _hoisted_16$1)
|
|
49291
49339
|
])) : vue.createCommentVNode("", true)
|
|
49292
49340
|
], 2)
|
|
49293
49341
|
]))
|
package/package.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
<div class="relative">
|
|
3
3
|
<!-- Slider Wrapper -->
|
|
4
4
|
<div
|
|
5
|
-
class="slider-wrapper flex transition-transform duration-500 gap-
|
|
5
|
+
class="slider-wrapper flex transition-transform duration-500 gap-6 mb-6"
|
|
6
6
|
:style="{ transform: `translateX(-${currentSlide * ((windowWidth >= slideWidth ? slideWidth : windowWidth) + 24)}px)` }"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
9
9
|
v-for="(slide, index) in slides"
|
|
10
10
|
:key="index"
|
|
11
|
-
class="slider-item flex-shrink-0
|
|
11
|
+
class="slider-item flex-shrink-0 w-[480px] max-w-full"
|
|
12
12
|
:class="{'h-[318px]': !hasBackground, 'h-full': hasBackground}"
|
|
13
13
|
>
|
|
14
14
|
<div class="w-full p-4 rounded-lg md:rounded-2xl" :class="{'bg-gray-50 h-full flex flex-col justify-between': !hasBackground, 'bg-white': hasBackground}">
|
|
@@ -119,8 +119,8 @@ const props = defineProps({
|
|
|
119
119
|
const currentSlide = ref(0); // Start at 0
|
|
120
120
|
const itemsToShow = ref(4); // Number of items to show at a time
|
|
121
121
|
const slides = [...props.component.content?.items || []];
|
|
122
|
-
const windowWidth = ref(480)
|
|
123
|
-
const slideWidth = ref(480)
|
|
122
|
+
const windowWidth = ref(480);
|
|
123
|
+
const slideWidth = ref(480);
|
|
124
124
|
|
|
125
125
|
onMounted(() => {
|
|
126
126
|
windowWidth.value = window.innerWidth
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="flex flex-col items-center gap-6 pb-[40px] pt-[24px]" :class="{'!pt-0': component.hasOwnProperty('padding_top') && !component?.padding_top}">
|
|
3
|
-
<div class="
|
|
4
|
-
|
|
2
|
+
<div class="flex flex-col items-start md:items-center gap-6 pb-[40px] pt-[24px] relative" :class="{'!pt-0': component.hasOwnProperty('padding_top') && !component?.padding_top}">
|
|
3
|
+
<div class="flex md:grid grid-cols-3 gap-6 w-full transition-transform duration-500 md:!translate-x-0"
|
|
4
|
+
:style="{ transform: `translateX(-${currentSlide * ((windowWidth >= slideWidth ? slideWidth : windowWidth) + 24)}px)` }"
|
|
5
|
+
>
|
|
6
|
+
<div v-for="(card, index) in items" :key="index" class="card bg-white sm:p-0 md:px-4 w-full flex-shrink-0">
|
|
5
7
|
<div v-if="component.type === 'video_grid'" class="relative group w-full object-cover rounded-lg md:rounded-2xl overflow-hidden">
|
|
6
8
|
<div v-if="card?.youtube_url && getEmbedUrl(card)" class="w-full h-[281px] md:rounded-2xl">
|
|
7
9
|
<iframe
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
<img class="w-full h-[281px] object-cover rounded-lg md:rounded-2xl" alt="No Available" src="@/assets/img/no_image_available.jpeg">
|
|
49
51
|
</a>
|
|
50
52
|
<div class="flex flex-col gap-2 items-start text-left w-full">
|
|
51
|
-
<div v-if="card.categories && card.categories.length" class="flex gap-2">
|
|
53
|
+
<div v-if="card.categories && card.categories.length" class="flex gap-2 flex-wrap">
|
|
52
54
|
<a
|
|
53
55
|
v-for="tag in card.categories"
|
|
54
56
|
:key="tag"
|
|
@@ -75,6 +77,25 @@
|
|
|
75
77
|
</div>
|
|
76
78
|
</div>
|
|
77
79
|
</div>
|
|
80
|
+
<!-- Control Buttons -->
|
|
81
|
+
<div class="md:hidden absolute right-0 flex gap-4"
|
|
82
|
+
:class="Object.keys(button).length && button?.show ? 'bottom-10' : 'bottom-0'"
|
|
83
|
+
>
|
|
84
|
+
<button
|
|
85
|
+
@click="prevSlide"
|
|
86
|
+
class="p-2.5 bg-aqua-100 text-navy-800 rounded-full opacity-100"
|
|
87
|
+
:class="{'opacity-50 pointer-events-none': !activeLeftButton}"
|
|
88
|
+
>
|
|
89
|
+
<ChevronLeft class="w-6 h-6" />
|
|
90
|
+
</button>
|
|
91
|
+
<button
|
|
92
|
+
@click="nextSlide"
|
|
93
|
+
class="p-2.5 bg-aqua-100 text-navy-800 rounded-full opacity-100"
|
|
94
|
+
:class="{'opacity-50 pointer-events-auto': !activeRightButton}"
|
|
95
|
+
>
|
|
96
|
+
<ChevronRight class="w-6 h-6" />
|
|
97
|
+
</button>
|
|
98
|
+
</div>
|
|
78
99
|
<div v-if="Object.keys(button).length && button?.show" class="flex justify-center">
|
|
79
100
|
<a
|
|
80
101
|
class="border-brand-300 hover:border-brand-700 border text-brand-700 h-[44px] rounded-full px-[14px] py-[10px] inline-flex gap-1.5 items-center font-semibold text-base"
|
|
@@ -89,7 +110,9 @@
|
|
|
89
110
|
</template>
|
|
90
111
|
|
|
91
112
|
<script setup>
|
|
92
|
-
import { ref } from
|
|
113
|
+
import { ref, onMounted, onUnmounted, computed } from 'vue';
|
|
114
|
+
import ChevronRight from "@/assets/img/icons/chevron-right.svg";
|
|
115
|
+
import ChevronLeft from "@/assets/img/icons/chevron-left.svg";
|
|
93
116
|
import ArrowUpRight from "@/assets/img/icons/arrow-up-right.svg";
|
|
94
117
|
import PlayButton from "@/assets/svg/play.svg";
|
|
95
118
|
import { formatUrl } from "@/components/helpers/common";
|
|
@@ -101,6 +124,47 @@ const props = defineProps({
|
|
|
101
124
|
},
|
|
102
125
|
});
|
|
103
126
|
|
|
127
|
+
const currentSlide = ref(0);
|
|
128
|
+
const windowWidth = ref(480);
|
|
129
|
+
const slideWidth = ref(480);
|
|
130
|
+
|
|
131
|
+
onMounted(() => {
|
|
132
|
+
windowWidth.value = window.innerWidth
|
|
133
|
+
slideWidth.value = windowWidth.value - 32;
|
|
134
|
+
window.addEventListener('resize', updateWidth)
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
onUnmounted(() => {
|
|
138
|
+
window.removeEventListener('resize', updateWidth)
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
const activeRightButton = computed(() => {
|
|
142
|
+
return currentSlide.value <= items.length - 2;
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
const activeLeftButton = computed(() => {
|
|
146
|
+
return currentSlide.value !== 0;
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
const updateWidth = () => {
|
|
150
|
+
windowWidth.value = window.innerWidth;
|
|
151
|
+
slideWidth.value = windowWidth.value - 32;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Navigate to the next slide
|
|
155
|
+
const nextSlide = () => {
|
|
156
|
+
if (currentSlide.value <= items.length - 2) {
|
|
157
|
+
currentSlide.value++;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
// Navigate to the previous slide
|
|
162
|
+
const prevSlide = () => {
|
|
163
|
+
if (currentSlide.value > 0) {
|
|
164
|
+
currentSlide.value--;
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
|
|
104
168
|
let items = [];
|
|
105
169
|
if (props.component.type === 'news_grid') {
|
|
106
170
|
items = [...props.component.content?.items || []];
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
class="max-w-[48px] min-w-[48px] w-full max-h-[48px] min-h-[48px] h-full bg-brand-100 border-[8px] border-brand-50 rounded-full flex items-center justify-center">
|
|
37
37
|
<IconComponent :icon="item.icon" icon-classes="w-5 h-5 text-brand-600"></IconComponent>
|
|
38
38
|
</div>
|
|
39
|
-
<div class="
|
|
39
|
+
<div class="ql-editor">
|
|
40
40
|
<h3 class="font-semibold text-[20px] text-gray-900">{{ item.title }}</h3>
|
|
41
41
|
<p class=" mt-2 text-md font-normal text-gray-600 leading-[24px]" v-html="item.supporting_text ?? item.description"></p>
|
|
42
42
|
<a
|