@propeller-commerce/propeller-v2-vue-ui 0.3.32 → 0.3.34
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/CHANGELOG.md +50 -0
- package/dist/{ProductVideos.vue_vue_type_script_setup_true_lang-cfRT3L_k.cjs → ProductVideos.vue_vue_type_script_setup_true_lang-7UMkFuC2.cjs} +10 -11
- package/dist/ProductVideos.vue_vue_type_script_setup_true_lang-7UMkFuC2.cjs.map +1 -0
- package/dist/{ProductVideos.vue_vue_type_script_setup_true_lang-BSXOpWBD.js → ProductVideos.vue_vue_type_script_setup_true_lang-BGWkb9cO.js} +10 -11
- package/dist/{ProductVideos.vue_vue_type_script_setup_true_lang-BSXOpWBD.js.map → ProductVideos.vue_vue_type_script_setup_true_lang-BGWkb9cO.js.map} +1 -1
- package/dist/components/CartIconAndSidebar.vue.d.ts +6 -0
- package/dist/components/CartPaymethods.vue.d.ts +8 -0
- package/dist/components/DeliveryDate.vue.d.ts +8 -0
- package/dist/components/PriceToggle.vue.d.ts +11 -2
- package/dist/components/SearchBar.vue.d.ts +19 -1
- package/dist/index.cjs +193 -142
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +194 -143
- package/dist/index.js.map +1 -1
- package/dist/pure.cjs +1 -1
- package/dist/pure.js +1 -1
- package/package.json +1 -1
- package/dist/ProductVideos.vue_vue_type_script_setup_true_lang-cfRT3L_k.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const index = require("./index-CrrZsxTR.cjs");
|
|
4
|
-
const ProductVideos_vue_vue_type_script_setup_true_lang = require("./ProductVideos.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
const ProductVideos_vue_vue_type_script_setup_true_lang = require("./ProductVideos.vue_vue_type_script_setup_true_lang-7UMkFuC2.cjs");
|
|
5
5
|
const vue = require("vue");
|
|
6
6
|
const propellerSdkV2 = require("@propeller-commerce/propeller-sdk-v2");
|
|
7
7
|
const ProductGridInjectionKey = /* @__PURE__ */ Symbol("propeller-product-grid");
|
|
@@ -3084,11 +3084,11 @@ const _hoisted_14$t = {
|
|
|
3084
3084
|
viewBox: "0 0 24 24",
|
|
3085
3085
|
class: "propeller-login-form__spinner animate-spin -ml-1 mr-2 h-4 w-4 text-primary-foreground"
|
|
3086
3086
|
};
|
|
3087
|
-
const _hoisted_15$
|
|
3087
|
+
const _hoisted_15$t = {
|
|
3088
3088
|
key: 1,
|
|
3089
3089
|
class: "propeller-login-form__footer mt-6 border-t pt-6 space-y-3"
|
|
3090
3090
|
};
|
|
3091
|
-
const _hoisted_16$
|
|
3091
|
+
const _hoisted_16$s = { class: "propeller-login-form__register text-center" };
|
|
3092
3092
|
const _hoisted_17$r = { class: "propeller-login-form__register-prompt text-sm text-muted-foreground mb-2" };
|
|
3093
3093
|
const _hoisted_18$p = { class: "propeller-login-form__guest text-center" };
|
|
3094
3094
|
const _hoisted_19$p = {
|
|
@@ -3322,13 +3322,13 @@ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
|
|
|
3322
3322
|
], 8, _hoisted_13$t)
|
|
3323
3323
|
])
|
|
3324
3324
|
], 32),
|
|
3325
|
-
(showRegister.value || showGuestCheckout.value) && !__props.accountHeaderLoginForm ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
3325
|
+
(showRegister.value || showGuestCheckout.value) && !__props.accountHeaderLoginForm ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$t, [
|
|
3326
3326
|
__props.displayRegisterLink !== false ? vue.renderSlot(_ctx.$slots, "registerLink", {
|
|
3327
3327
|
key: 0,
|
|
3328
3328
|
onClick: (e) => __props.onRegisterClick?.(e),
|
|
3329
3329
|
labels: __props.labels
|
|
3330
3330
|
}, () => [
|
|
3331
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
3331
|
+
vue.createElementVNode("div", _hoisted_16$s, [
|
|
3332
3332
|
vue.createElementVNode("p", _hoisted_17$r, vue.toDisplayString(registerText.value), 1),
|
|
3333
3333
|
vue.createElementVNode("button", {
|
|
3334
3334
|
type: "button",
|
|
@@ -3419,8 +3419,8 @@ const _hoisted_13$s = {
|
|
|
3419
3419
|
class: "propeller-account-menu__greeting hidden md:block font-normal"
|
|
3420
3420
|
};
|
|
3421
3421
|
const _hoisted_14$s = { class: "propeller-account-menu__user pb-3 mb-3 border-b border-border" };
|
|
3422
|
-
const _hoisted_15$
|
|
3423
|
-
const _hoisted_16$
|
|
3422
|
+
const _hoisted_15$s = { class: "propeller-account-menu__user-label text-xs text-muted-foreground uppercase tracking-wider font-semibold mb-1" };
|
|
3423
|
+
const _hoisted_16$r = { class: "propeller-account-menu__user-name font-medium text-foreground truncate" };
|
|
3424
3424
|
const _hoisted_17$q = { class: "propeller-account-menu__nav" };
|
|
3425
3425
|
const _hoisted_18$o = { class: "propeller-account-menu__list space-y-0.5" };
|
|
3426
3426
|
const _hoisted_19$o = ["onClick"];
|
|
@@ -3645,8 +3645,8 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
|
|
|
3645
3645
|
isMounted.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3646
3646
|
!!user.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3647
3647
|
vue.createElementVNode("div", _hoisted_14$s, [
|
|
3648
|
-
vue.createElementVNode("p", _hoisted_15$
|
|
3649
|
-
vue.createElementVNode("p", _hoisted_16$
|
|
3648
|
+
vue.createElementVNode("p", _hoisted_15$s, vue.toDisplayString(getLabel("signedInAs", "Signed in as")), 1),
|
|
3649
|
+
vue.createElementVNode("p", _hoisted_16$r, vue.toDisplayString(getUserName()), 1)
|
|
3650
3650
|
]),
|
|
3651
3651
|
vue.createElementVNode("nav", _hoisted_17$q, [
|
|
3652
3652
|
vue.createElementVNode("ul", _hoisted_18$o, [
|
|
@@ -3936,8 +3936,8 @@ const _hoisted_14$r = {
|
|
|
3936
3936
|
key: 1,
|
|
3937
3937
|
class: "propeller-add-to-cart__modal fixed inset-0 z-50 flex items-center justify-center px-4"
|
|
3938
3938
|
};
|
|
3939
|
-
const _hoisted_15$
|
|
3940
|
-
const _hoisted_16$
|
|
3939
|
+
const _hoisted_15$r = { class: "propeller-add-to-cart__modal-content relative w-full max-w-lg bg-card rounded-[var(--radius-container)] shadow-2xl overflow-hidden" };
|
|
3940
|
+
const _hoisted_16$q = { class: "propeller-add-to-cart__modal-header flex items-center gap-3 px-6 py-4 border-b border-border-subtle" };
|
|
3941
3941
|
const _hoisted_17$p = {
|
|
3942
3942
|
fill: "none",
|
|
3943
3943
|
viewBox: "0 0 24 24",
|
|
@@ -4320,8 +4320,8 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
|
|
|
4320
4320
|
class: "propeller-add-to-cart__modal-backdrop fixed inset-0 bg-foreground/20",
|
|
4321
4321
|
onClick: _cache[6] || (_cache[6] = async (event) => closeModal())
|
|
4322
4322
|
}),
|
|
4323
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
4324
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
4323
|
+
vue.createElementVNode("div", _hoisted_15$r, [
|
|
4324
|
+
vue.createElementVNode("div", _hoisted_16$q, [
|
|
4325
4325
|
(vue.openBlock(), vue.createElementBlock("svg", _hoisted_17$p, [..._cache[15] || (_cache[15] = [
|
|
4326
4326
|
vue.createElementVNode("path", {
|
|
4327
4327
|
strokeLinecap: "round",
|
|
@@ -4477,8 +4477,8 @@ const _hoisted_14$q = {
|
|
|
4477
4477
|
key: 1,
|
|
4478
4478
|
class: "propeller-add-to-favorite__add-form space-y-3"
|
|
4479
4479
|
};
|
|
4480
|
-
const _hoisted_15$
|
|
4481
|
-
const _hoisted_16$
|
|
4480
|
+
const _hoisted_15$q = { class: "space-y-1" };
|
|
4481
|
+
const _hoisted_16$p = { class: "propeller-add-to-favorite__select-label text-xs text-muted-foreground" };
|
|
4482
4482
|
const _hoisted_17$o = ["value"];
|
|
4483
4483
|
const _hoisted_18$m = ["value"];
|
|
4484
4484
|
const _hoisted_19$m = ["disabled"];
|
|
@@ -4723,8 +4723,8 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
|
|
|
4723
4723
|
_cache[9] || (_cache[9] = vue.createElementVNode("div", { class: "propeller-add-to-favorite__divider border-t border-border" }, null, -1))
|
|
4724
4724
|
], 64)) : vue.createCommentVNode("", true),
|
|
4725
4725
|
getNonMemberLists().length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$q, [
|
|
4726
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
4727
|
-
vue.createElementVNode("label", _hoisted_16$
|
|
4726
|
+
vue.createElementVNode("div", _hoisted_15$q, [
|
|
4727
|
+
vue.createElementVNode("label", _hoisted_16$p, vue.toDisplayString(getLabel("chooseList", "Choose a favorites list*")), 1),
|
|
4728
4728
|
vue.createElementVNode("select", {
|
|
4729
4729
|
class: "propeller-add-to-favorite__select block w-full rounded-[var(--radius-control)] border border-input px-3 py-2.5 text-sm focus:border-primary focus:ring-primary",
|
|
4730
4730
|
value: selectedListId.value,
|
|
@@ -4793,11 +4793,11 @@ const _hoisted_11$r = {
|
|
|
4793
4793
|
const _hoisted_12$r = { class: "mt-2" };
|
|
4794
4794
|
const _hoisted_13$p = { class: "propeller-address-card__default-badge bg-secondary/10 text-secondary text-xs px-2 py-1 rounded-full" };
|
|
4795
4795
|
const _hoisted_14$p = { class: "propeller-address-card__actions mt-4 pt-4 border-t border-border-subtle flex flex-wrap gap-2" };
|
|
4796
|
-
const _hoisted_15$
|
|
4796
|
+
const _hoisted_15$p = {
|
|
4797
4797
|
key: 1,
|
|
4798
4798
|
class: "propeller-address-card__form bg-card p-6 rounded-[var(--radius-container)] border"
|
|
4799
4799
|
};
|
|
4800
|
-
const _hoisted_16$
|
|
4800
|
+
const _hoisted_16$o = {
|
|
4801
4801
|
key: 0,
|
|
4802
4802
|
class: "text-xl font-bold mb-4"
|
|
4803
4803
|
};
|
|
@@ -5205,11 +5205,11 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
|
|
|
5205
5205
|
])
|
|
5206
5206
|
]) : vue.createCommentVNode("", true)
|
|
5207
5207
|
], 8, _hoisted_2$J)) : vue.createCommentVNode("", true),
|
|
5208
|
-
__props.inline && showEditModal.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
5208
|
+
__props.inline && showEditModal.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$p, [
|
|
5209
5209
|
vue.createElementVNode("form", {
|
|
5210
5210
|
onSubmit: _cache[19] || (_cache[19] = async (e) => handleSaveEdit(e))
|
|
5211
5211
|
}, [
|
|
5212
|
-
!!formTitle.value ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_16$
|
|
5212
|
+
!!formTitle.value ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_16$o, vue.toDisplayString(formTitle.value), 1)) : vue.createCommentVNode("", true),
|
|
5213
5213
|
vue.createElementVNode("div", _hoisted_17$n, [
|
|
5214
5214
|
vue.createElementVNode("div", _hoisted_18$l, [
|
|
5215
5215
|
vue.createElementVNode("div", null, [
|
|
@@ -6127,11 +6127,11 @@ const _hoisted_11$q = { class: "font-medium" };
|
|
|
6127
6127
|
const _hoisted_12$q = { class: "propeller-cart-item__surcharges-list mt-0.5" };
|
|
6128
6128
|
const _hoisted_13$o = { class: "mt-1" };
|
|
6129
6129
|
const _hoisted_14$o = { class: "propeller-cart-item__bundle mt-3 space-y-1.5 border-l-2 border-border pl-3" };
|
|
6130
|
-
const _hoisted_15$
|
|
6130
|
+
const _hoisted_15$o = {
|
|
6131
6131
|
key: 0,
|
|
6132
6132
|
class: "propeller-cart-item__bundle-leader flex flex-wrap gap-x-2 text-sm text-muted-foreground"
|
|
6133
6133
|
};
|
|
6134
|
-
const _hoisted_16$
|
|
6134
|
+
const _hoisted_16$n = { class: "font-semibold text-foreground" };
|
|
6135
6135
|
const _hoisted_17$m = { class: "font-semibold text-foreground" };
|
|
6136
6136
|
const _hoisted_18$k = { class: "font-medium" };
|
|
6137
6137
|
const _hoisted_19$k = { class: "font-semibold text-foreground" };
|
|
@@ -6605,8 +6605,8 @@ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
|
|
|
6605
6605
|
nonLeaders: getBundleNonLeaders()
|
|
6606
6606
|
}, () => [
|
|
6607
6607
|
vue.createElementVNode("div", _hoisted_14$o, [
|
|
6608
|
-
!!getBundleLeaderName() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
6609
|
-
vue.createElementVNode("span", _hoisted_16$
|
|
6608
|
+
!!getBundleLeaderName() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$o, [
|
|
6609
|
+
vue.createElementVNode("span", _hoisted_16$n, vue.toDisplayString(getBundleLeaderName()), 1),
|
|
6610
6610
|
!!getBundleLeaderPrice() ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
6611
6611
|
_cache[8] || (_cache[8] = vue.createElementVNode("div", { class: "flex-1 border-b border-dotted border-input mx-1 mb-1" }, null, -1)),
|
|
6612
6612
|
vue.createElementVNode("span", _hoisted_17$m, vue.toDisplayString(getBundleLeaderPrice()), 1)
|
|
@@ -6864,8 +6864,8 @@ const _hoisted_14$n = {
|
|
|
6864
6864
|
class: "w-5 h-5 text-muted-foreground",
|
|
6865
6865
|
strokeWidth: 1.5
|
|
6866
6866
|
};
|
|
6867
|
-
const _hoisted_15$
|
|
6868
|
-
const _hoisted_16$
|
|
6867
|
+
const _hoisted_15$n = { class: "propeller-cart-icon__sidebar-title text-base font-semibold text-foreground" };
|
|
6868
|
+
const _hoisted_16$m = { class: "propeller-cart-icon__sidebar-count inline-flex items-center justify-center h-5 min-w-[20px] px-1.5 rounded-full bg-secondary/10 text-secondary text-xs font-bold" };
|
|
6869
6869
|
const _hoisted_17$l = ["aria-label"];
|
|
6870
6870
|
const _hoisted_18$j = {
|
|
6871
6871
|
fill: "none",
|
|
@@ -6926,6 +6926,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
|
6926
6926
|
cartPageButton: { type: Boolean, default: true },
|
|
6927
6927
|
onCartPageButtonClick: {},
|
|
6928
6928
|
labels: {},
|
|
6929
|
+
cartItemLabels: {},
|
|
6929
6930
|
user: {},
|
|
6930
6931
|
companyId: {},
|
|
6931
6932
|
onRequestQuoteClick: {},
|
|
@@ -6976,8 +6977,9 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
|
6976
6977
|
function getTotalItems() {
|
|
6977
6978
|
return getCartItems().reduce((sum, item) => sum + (item.quantity || 0), 0);
|
|
6978
6979
|
}
|
|
6980
|
+
const useTax = vue.computed(() => !!infra.includeTax);
|
|
6979
6981
|
function getTotalPrice() {
|
|
6980
|
-
const total = props.cart?.total?.totalNet;
|
|
6982
|
+
const total = useTax.value ? props.cart?.total?.totalNet : props.cart?.total?.totalGross;
|
|
6981
6983
|
return index.formatPrice(total ?? 0, { symbol: infra.currency ?? "€" });
|
|
6982
6984
|
}
|
|
6983
6985
|
function getItems() {
|
|
@@ -7125,8 +7127,8 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
|
7125
7127
|
d: "M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007z"
|
|
7126
7128
|
}, null, -1)
|
|
7127
7129
|
])])),
|
|
7128
|
-
vue.createElementVNode("h2", _hoisted_15$
|
|
7129
|
-
vue.createElementVNode("span", _hoisted_16$
|
|
7130
|
+
vue.createElementVNode("h2", _hoisted_15$n, vue.toDisplayString(getSidebarTitle()), 1),
|
|
7131
|
+
vue.createElementVNode("span", _hoisted_16$m, vue.toDisplayString(getTotalItems()), 1)
|
|
7130
7132
|
]),
|
|
7131
7133
|
vue.createElementVNode("button", {
|
|
7132
7134
|
type: "button",
|
|
@@ -7169,6 +7171,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
|
7169
7171
|
language: __props.language,
|
|
7170
7172
|
configuration: __props.configuration,
|
|
7171
7173
|
companyId: __props.companyId,
|
|
7174
|
+
labels: __props.cartItemLabels,
|
|
7172
7175
|
cardFrame: false,
|
|
7173
7176
|
showDelete: false,
|
|
7174
7177
|
readOnlyQuantity: true,
|
|
@@ -7176,7 +7179,7 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
|
7176
7179
|
showCartItemNotesField: false,
|
|
7177
7180
|
showCrossupsells: false,
|
|
7178
7181
|
showStockComponent: false,
|
|
7179
|
-
includeTax:
|
|
7182
|
+
includeTax: useTax.value,
|
|
7180
7183
|
className: "propeller-cart-icon__item"
|
|
7181
7184
|
}, {
|
|
7182
7185
|
image: vue.withCtx(({ cartItem: rowCartItem }) => [
|
|
@@ -7206,13 +7209,13 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
|
|
|
7206
7209
|
}, vue.toDisplayString(name), 9, _hoisted_27$f)) : vue.createCommentVNode("", true)
|
|
7207
7210
|
]),
|
|
7208
7211
|
_: 1
|
|
7209
|
-
}, 40, ["cartItem", "cartId", "graphqlClient", "user", "language", "configuration", "companyId", "onTitleClick"]);
|
|
7212
|
+
}, 40, ["cartItem", "cartId", "graphqlClient", "user", "language", "configuration", "companyId", "labels", "onTitleClick", "includeTax"]);
|
|
7210
7213
|
}), 128)) : vue.createCommentVNode("", true),
|
|
7211
7214
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(CartBonusItemsImpl.value), {
|
|
7212
7215
|
cart: __props.cart,
|
|
7213
|
-
includeTax:
|
|
7216
|
+
includeTax: useTax.value,
|
|
7214
7217
|
className: "mt-4"
|
|
7215
|
-
}, null, 8, ["cart"]))
|
|
7218
|
+
}, null, 8, ["cart", "includeTax"]))
|
|
7216
7219
|
]),
|
|
7217
7220
|
getItems().length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_28$e, [
|
|
7218
7221
|
vue.createElementVNode("div", _hoisted_29$e, [
|
|
@@ -7306,8 +7309,8 @@ const _hoisted_14$m = {
|
|
|
7306
7309
|
key: 2,
|
|
7307
7310
|
class: "propeller-cart-overview__address-email text-muted-foreground"
|
|
7308
7311
|
};
|
|
7309
|
-
const _hoisted_15$
|
|
7310
|
-
const _hoisted_16$
|
|
7312
|
+
const _hoisted_15$m = { class: "propeller-cart-overview__info-panel bg-surface-hover p-4 rounded-[var(--radius-control)] border border-border space-y-2 text-sm" };
|
|
7313
|
+
const _hoisted_16$l = {
|
|
7311
7314
|
key: 0,
|
|
7312
7315
|
class: "flex justify-between"
|
|
7313
7316
|
};
|
|
@@ -7401,11 +7404,11 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
|
|
|
7401
7404
|
const requestDate = vue.computed(() => {
|
|
7402
7405
|
const date = props.cart?.postageData?.requestDate;
|
|
7403
7406
|
if (!date) return "";
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
}
|
|
7407
|
+
const d = new Date(date);
|
|
7408
|
+
if (isNaN(d.getTime())) return date;
|
|
7409
|
+
const day = String(d.getDate()).padStart(2, "0");
|
|
7410
|
+
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
7411
|
+
return `${day}-${month}-${d.getFullYear()}`;
|
|
7409
7412
|
});
|
|
7410
7413
|
const isPurchaseDisabled = vue.computed(() => {
|
|
7411
7414
|
if (showTermsAndConditions.value && !termsAccepted.value) return true;
|
|
@@ -7485,8 +7488,8 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
|
|
|
7485
7488
|
])) : vue.createCommentVNode("", true)
|
|
7486
7489
|
])
|
|
7487
7490
|
]),
|
|
7488
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
7489
|
-
paymentMethod.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
7491
|
+
vue.createElementVNode("div", _hoisted_15$m, [
|
|
7492
|
+
paymentMethod.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$l, [
|
|
7490
7493
|
vue.createElementVNode("span", _hoisted_17$k, vue.toDisplayString(getLabel("payment", "Payment:")), 1),
|
|
7491
7494
|
vue.createElementVNode("span", null, vue.toDisplayString(paymentMethod.value), 1)
|
|
7492
7495
|
])) : vue.createCommentVNode("", true),
|
|
@@ -7592,7 +7595,8 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
|
|
|
7592
7595
|
showPaymethodLogo: { type: Boolean, default: true },
|
|
7593
7596
|
onPaymethodSelect: {},
|
|
7594
7597
|
formatPrice: {},
|
|
7595
|
-
labels: {}
|
|
7598
|
+
labels: {},
|
|
7599
|
+
paymethodLabels: {}
|
|
7596
7600
|
},
|
|
7597
7601
|
setup(__props) {
|
|
7598
7602
|
const props = __props;
|
|
@@ -7635,6 +7639,10 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
|
|
|
7635
7639
|
},
|
|
7636
7640
|
{ immediate: true }
|
|
7637
7641
|
);
|
|
7642
|
+
function methodName(method) {
|
|
7643
|
+
const code = (method.code || "").toLowerCase();
|
|
7644
|
+
return props.paymethodLabels?.[code] || method.name || method.code || "";
|
|
7645
|
+
}
|
|
7638
7646
|
function isOnAccountMethod(method) {
|
|
7639
7647
|
const code = (method.code || "").toLowerCase();
|
|
7640
7648
|
return code === "on_account" || code === "onaccount" || code === "on-account";
|
|
@@ -7674,10 +7682,10 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
|
|
|
7674
7682
|
vue.createElementVNode("img", {
|
|
7675
7683
|
class: "propeller-cart-paymethods__method-logo max-h-10 max-w-[80%] w-auto object-contain",
|
|
7676
7684
|
src: getLogoUrl(method),
|
|
7677
|
-
alt: method
|
|
7685
|
+
alt: methodName(method)
|
|
7678
7686
|
}, null, 8, _hoisted_5$x)
|
|
7679
7687
|
])) : vue.createCommentVNode("", true),
|
|
7680
|
-
vue.createElementVNode("span", _hoisted_6$w, vue.toDisplayString(method
|
|
7688
|
+
vue.createElementVNode("span", _hoisted_6$w, vue.toDisplayString(methodName(method)), 1)
|
|
7681
7689
|
], 10, _hoisted_2$C);
|
|
7682
7690
|
}), 128))
|
|
7683
7691
|
])) : vue.createCommentVNode("", true),
|
|
@@ -7716,8 +7724,8 @@ const _hoisted_12$n = {
|
|
|
7716
7724
|
};
|
|
7717
7725
|
const _hoisted_13$l = { class: "propeller-cart-summary__label" };
|
|
7718
7726
|
const _hoisted_14$l = { class: "propeller-cart-summary__value" };
|
|
7719
|
-
const _hoisted_15$
|
|
7720
|
-
const _hoisted_16$
|
|
7727
|
+
const _hoisted_15$l = { class: "propeller-cart-summary__label" };
|
|
7728
|
+
const _hoisted_16$k = { class: "propeller-cart-summary__value" };
|
|
7721
7729
|
const _hoisted_17$j = {
|
|
7722
7730
|
key: 5,
|
|
7723
7731
|
class: "propeller-cart-summary__row flex justify-between text-muted-foreground text-sm",
|
|
@@ -7905,8 +7913,8 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
|
|
|
7905
7913
|
class: "propeller-cart-summary__row flex justify-between text-muted-foreground text-sm",
|
|
7906
7914
|
"data-row": "vat-line"
|
|
7907
7915
|
}, [
|
|
7908
|
-
vue.createElementVNode("span", _hoisted_15$
|
|
7909
|
-
vue.createElementVNode("span", _hoisted_16$
|
|
7916
|
+
vue.createElementVNode("span", _hoisted_15$l, vue.toDisplayString(tax.taxPercentage) + "% " + vue.toDisplayString(getLabel("vat", "VAT")) + ":", 1),
|
|
7917
|
+
vue.createElementVNode("span", _hoisted_16$k, vue.toDisplayString(formatItemPrice(Number(tax.price))), 1)
|
|
7910
7918
|
]);
|
|
7911
7919
|
}), 128)) : vue.createCommentVNode("", true),
|
|
7912
7920
|
showTotalVat.value && totalVat.value > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$j, [
|
|
@@ -8150,8 +8158,8 @@ const _hoisted_11$m = ["href"];
|
|
|
8150
8158
|
const _hoisted_12$m = { class: "flex flex-col gap-0.5" };
|
|
8151
8159
|
const _hoisted_13$k = { class: "propeller-cluster-card__manufacturer text-xs text-muted-foreground" };
|
|
8152
8160
|
const _hoisted_14$k = { class: "propeller-cluster-card__description line-clamp-2 text-xs text-muted-foreground" };
|
|
8153
|
-
const _hoisted_15$
|
|
8154
|
-
const _hoisted_16$
|
|
8161
|
+
const _hoisted_15$k = { class: "propeller-cluster-card__footer w-full md:w-auto flex flex-col gap-2 md:flex-row md:items-center md:gap-3 px-4 py-2 md:py-0 border-t md:border-t-0 border-border-subtle" };
|
|
8162
|
+
const _hoisted_16$j = { class: "propeller-cluster-card__footer-meta flex items-center justify-between gap-3 md:contents" };
|
|
8155
8163
|
const _hoisted_17$i = {
|
|
8156
8164
|
key: 1,
|
|
8157
8165
|
class: "propeller-cluster-card__price font-bold text-foreground text-sm whitespace-nowrap"
|
|
@@ -8495,8 +8503,8 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
|
|
|
8495
8503
|
]) : vue.createCommentVNode("", true)
|
|
8496
8504
|
])
|
|
8497
8505
|
]),
|
|
8498
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
8499
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
8506
|
+
vue.createElementVNode("div", _hoisted_15$k, [
|
|
8507
|
+
vue.createElementVNode("div", _hoisted_16$j, [
|
|
8500
8508
|
__props.showStock && !!__props.cluster.defaultProduct?.inventory ? vue.renderSlot(_ctx.$slots, "stock", {
|
|
8501
8509
|
key: 0,
|
|
8502
8510
|
cluster: __props.cluster,
|
|
@@ -8730,8 +8738,8 @@ const _hoisted_14$j = {
|
|
|
8730
8738
|
key: 4,
|
|
8731
8739
|
class: "propeller-cluster-configurator__options flex flex-wrap gap-3"
|
|
8732
8740
|
};
|
|
8733
|
-
const _hoisted_15$
|
|
8734
|
-
const _hoisted_16$
|
|
8741
|
+
const _hoisted_15$j = ["disabled", "onClick", "data-selected"];
|
|
8742
|
+
const _hoisted_16$i = ["src", "alt"];
|
|
8735
8743
|
const _hoisted_17$h = {
|
|
8736
8744
|
key: 0,
|
|
8737
8745
|
class: "propeller-cluster-configurator__image-check absolute inset-0 bg-secondary bg-opacity-20 flex items-center justify-center"
|
|
@@ -9108,7 +9116,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
|
|
|
9108
9116
|
class: "propeller-cluster-configurator__image w-full h-full object-cover",
|
|
9109
9117
|
src: val,
|
|
9110
9118
|
alt: val
|
|
9111
|
-
}, null, 8, _hoisted_16$
|
|
9119
|
+
}, null, 8, _hoisted_16$i),
|
|
9112
9120
|
setting.selectedValue === val ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$h, [..._cache[0] || (_cache[0] = [
|
|
9113
9121
|
vue.createElementVNode("svg", {
|
|
9114
9122
|
fill: "currentColor",
|
|
@@ -9122,7 +9130,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
|
|
|
9122
9130
|
})
|
|
9123
9131
|
], -1)
|
|
9124
9132
|
])])) : vue.createCommentVNode("", true)
|
|
9125
|
-
], 10, _hoisted_15$
|
|
9133
|
+
], 10, _hoisted_15$j);
|
|
9126
9134
|
}), 128))
|
|
9127
9135
|
])) : vue.createCommentVNode("", true),
|
|
9128
9136
|
setting.displayType !== "DROPDOWN" && setting.displayType !== "RADIO" && setting.displayType !== "COLOR" && setting.displayType !== "IMAGE" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18$f, [
|
|
@@ -9305,7 +9313,7 @@ const _hoisted_12$k = {
|
|
|
9305
9313
|
};
|
|
9306
9314
|
const _hoisted_13$i = { class: "min-w-0 flex-1" };
|
|
9307
9315
|
const _hoisted_14$i = { class: "propeller-cluster-options__preview-name truncate text-sm font-medium text-foreground" };
|
|
9308
|
-
const _hoisted_15$
|
|
9316
|
+
const _hoisted_15$i = { class: "propeller-cluster-options__preview-price text-sm font-semibold text-secondary" };
|
|
9309
9317
|
const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
|
|
9310
9318
|
__name: "ClusterOptions",
|
|
9311
9319
|
props: {
|
|
@@ -9459,7 +9467,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
|
|
|
9459
9467
|
])])) : vue.createCommentVNode("", true),
|
|
9460
9468
|
vue.createElementVNode("div", _hoisted_13$i, [
|
|
9461
9469
|
vue.createElementVNode("p", _hoisted_14$i, vue.toDisplayString(option.previewName), 1),
|
|
9462
|
-
vue.createElementVNode("p", _hoisted_15$
|
|
9470
|
+
vue.createElementVNode("p", _hoisted_15$i, vue.toDisplayString(option.previewPrice), 1)
|
|
9463
9471
|
])
|
|
9464
9472
|
])) : vue.createCommentVNode("", true)
|
|
9465
9473
|
], 8, _hoisted_2$w);
|
|
@@ -9639,7 +9647,7 @@ const _hoisted_6$q = {
|
|
|
9639
9647
|
const _hoisted_7$q = { class: "propeller-delivery-date__modal-content bg-card rounded-xl shadow-xl p-6 w-full max-w-sm mx-4" };
|
|
9640
9648
|
const _hoisted_8$o = { class: "propeller-delivery-date__modal-header flex justify-between items-center mb-4" };
|
|
9641
9649
|
const _hoisted_9$n = { class: "propeller-delivery-date__modal-title text-lg font-semibold" };
|
|
9642
|
-
const _hoisted_10$l = ["min", "value"];
|
|
9650
|
+
const _hoisted_10$l = ["lang", "min", "value"];
|
|
9643
9651
|
const _hoisted_11$j = {
|
|
9644
9652
|
key: 0,
|
|
9645
9653
|
class: "propeller-delivery-date__input-error text-sm text-destructive mt-2",
|
|
@@ -9657,10 +9665,15 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
|
9657
9665
|
formatDateDisplay: {},
|
|
9658
9666
|
labels: {},
|
|
9659
9667
|
containerClass: {},
|
|
9660
|
-
initialDate: {}
|
|
9668
|
+
initialDate: {},
|
|
9669
|
+
language: {}
|
|
9661
9670
|
},
|
|
9662
9671
|
setup(__props) {
|
|
9663
9672
|
const props = __props;
|
|
9673
|
+
const infra = ProductVideos_vue_vue_type_script_setup_true_lang.useInfraProps(props);
|
|
9674
|
+
const inputLang = vue.computed(
|
|
9675
|
+
() => infra.language ? String(infra.language).toLowerCase() : void 0
|
|
9676
|
+
);
|
|
9664
9677
|
const selectedDate = vue.ref("");
|
|
9665
9678
|
const modalOpen = vue.ref(false);
|
|
9666
9679
|
const customDateValue = vue.ref("");
|
|
@@ -9747,8 +9760,8 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
|
9747
9760
|
if (!isoDate) return "";
|
|
9748
9761
|
const date = new Date(isoDate);
|
|
9749
9762
|
if (isNaN(date.getTime())) return "";
|
|
9750
|
-
const
|
|
9751
|
-
const
|
|
9763
|
+
const WEEKDAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
9764
|
+
const MONTHS = [
|
|
9752
9765
|
"Jan",
|
|
9753
9766
|
"Feb",
|
|
9754
9767
|
"Mar",
|
|
@@ -9762,7 +9775,9 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
|
9762
9775
|
"Nov",
|
|
9763
9776
|
"Dec"
|
|
9764
9777
|
];
|
|
9765
|
-
|
|
9778
|
+
const weekday = getLabel(`day_${date.getDay()}`, WEEKDAYS[date.getDay()]);
|
|
9779
|
+
const month = getLabel(`month_${date.getMonth()}`, MONTHS[date.getMonth()]);
|
|
9780
|
+
return weekday + ", " + month + " " + date.getDate();
|
|
9766
9781
|
}
|
|
9767
9782
|
function handleSelect(isoDate) {
|
|
9768
9783
|
selectedDate.value = isoDate;
|
|
@@ -9867,6 +9882,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
|
|
|
9867
9882
|
]),
|
|
9868
9883
|
vue.createElementVNode("input", {
|
|
9869
9884
|
type: "date",
|
|
9885
|
+
lang: inputLang.value,
|
|
9870
9886
|
class: vue.normalizeClass(["propeller-delivery-date__input w-full border border-input rounded-[var(--radius-container)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-secondary focus:border-secondary", customDateError.value ? "border-destructive focus:ring-destructive focus:border-destructive" : ""]),
|
|
9871
9887
|
min: minDate.value,
|
|
9872
9888
|
value: customDateValue.value,
|
|
@@ -9918,12 +9934,12 @@ const _hoisted_14$h = {
|
|
|
9918
9934
|
key: 0,
|
|
9919
9935
|
class: "propeller-favorite-list-item__stock flex-shrink-0"
|
|
9920
9936
|
};
|
|
9921
|
-
const _hoisted_15$
|
|
9937
|
+
const _hoisted_15$h = {
|
|
9922
9938
|
key: 0,
|
|
9923
9939
|
class: "propeller-favorite-list-item__stock-badge inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium text-success bg-success/10",
|
|
9924
9940
|
"data-stock": "in"
|
|
9925
9941
|
};
|
|
9926
|
-
const _hoisted_16$
|
|
9942
|
+
const _hoisted_16$h = {
|
|
9927
9943
|
key: 1,
|
|
9928
9944
|
class: "propeller-favorite-list-item__stock-badge inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium text-warning bg-warning/10",
|
|
9929
9945
|
"data-stock": "low"
|
|
@@ -10145,8 +10161,8 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
|
|
|
10145
10161
|
])) : vue.createCommentVNode("", true),
|
|
10146
10162
|
!isProduct() ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
10147
10163
|
getCluster()?.defaultProduct?.inventory?.totalQuantity !== void 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$h, [
|
|
10148
|
-
(getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_15$
|
|
10149
|
-
(getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 0 && (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) <= 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$
|
|
10164
|
+
(getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_15$h, vue.toDisplayString(getLabel("inStock", "In stock")), 1)) : vue.createCommentVNode("", true),
|
|
10165
|
+
(getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) > 0 && (getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) <= 5 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$h, vue.toDisplayString(getLabel("lowStock", "Low stock")), 1)) : vue.createCommentVNode("", true),
|
|
10150
10166
|
(getCluster()?.defaultProduct?.inventory?.totalQuantity || 0) === 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_17$g, vue.toDisplayString(getLabel("outOfStock", "Out of stock")), 1)) : vue.createCommentVNode("", true)
|
|
10151
10167
|
])) : vue.createCommentVNode("", true)
|
|
10152
10168
|
], 64)) : vue.createCommentVNode("", true)
|
|
@@ -10414,11 +10430,11 @@ const _hoisted_12$h = {
|
|
|
10414
10430
|
};
|
|
10415
10431
|
const _hoisted_13$g = { class: "propeller-favorite-list-details__empty-title text-lg font-medium" };
|
|
10416
10432
|
const _hoisted_14$g = { class: "propeller-favorite-list-details__empty-message text-muted-foreground" };
|
|
10417
|
-
const _hoisted_15$
|
|
10433
|
+
const _hoisted_15$g = {
|
|
10418
10434
|
key: 2,
|
|
10419
10435
|
class: "propeller-favorite-list-details__floating-bar fixed bottom-0 left-0 right-0 z-40 border-t border-border bg-card shadow-lg"
|
|
10420
10436
|
};
|
|
10421
|
-
const _hoisted_16$
|
|
10437
|
+
const _hoisted_16$g = { class: "propeller-favorite-list-details__floating-bar-inner flex items-center justify-between gap-4 px-6 py-4" };
|
|
10422
10438
|
const _hoisted_17$f = { class: "propeller-favorite-list-details__floating-bar-status flex items-center gap-2" };
|
|
10423
10439
|
const _hoisted_18$d = ["checked"];
|
|
10424
10440
|
const _hoisted_19$d = {
|
|
@@ -10952,8 +10968,8 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
|
|
|
10952
10968
|
])
|
|
10953
10969
|
])) : vue.createCommentVNode("", true)
|
|
10954
10970
|
], 64)) : vue.createCommentVNode("", true),
|
|
10955
|
-
selectedIds.value.size > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
10956
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
10971
|
+
selectedIds.value.size > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$g, [
|
|
10972
|
+
vue.createElementVNode("div", _hoisted_16$g, [
|
|
10957
10973
|
vue.createElementVNode("div", _hoisted_17$f, [
|
|
10958
10974
|
vue.createElementVNode("input", {
|
|
10959
10975
|
id: "favorite-list-select-all-floating",
|
|
@@ -11170,8 +11186,8 @@ const _hoisted_11$g = { class: "flex items-center space-x-2" };
|
|
|
11170
11186
|
const _hoisted_12$g = ["id", "checked"];
|
|
11171
11187
|
const _hoisted_13$f = ["for"];
|
|
11172
11188
|
const _hoisted_14$f = { class: "flex gap-2" };
|
|
11173
|
-
const _hoisted_15$
|
|
11174
|
-
const _hoisted_16$
|
|
11189
|
+
const _hoisted_15$f = ["onClick", "disabled"];
|
|
11190
|
+
const _hoisted_16$f = {
|
|
11175
11191
|
key: 1,
|
|
11176
11192
|
class: "propeller-favorite-lists__display space-y-2"
|
|
11177
11193
|
};
|
|
@@ -11335,10 +11351,11 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
|
11335
11351
|
if (props.formatDate) return props.formatDate(dateString);
|
|
11336
11352
|
if (!dateString) return "-";
|
|
11337
11353
|
const d = new Date(dateString);
|
|
11354
|
+
if (isNaN(d.getTime())) return dateString;
|
|
11338
11355
|
const day = String(d.getDate()).padStart(2, "0");
|
|
11339
11356
|
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
11340
11357
|
const year = d.getFullYear();
|
|
11341
|
-
return `${day}
|
|
11358
|
+
return `${day}-${month}-${year}`;
|
|
11342
11359
|
}
|
|
11343
11360
|
function getProductCount(list) {
|
|
11344
11361
|
const products = list.products;
|
|
@@ -11443,14 +11460,14 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
|
|
|
11443
11460
|
class: "propeller-favorite-lists__save-btn inline-flex items-center px-3 py-1.5 text-sm font-medium rounded-[var(--radius-control)] text-primary-foreground bg-primary hover:bg-primary/80 disabled:opacity-50",
|
|
11444
11461
|
onClick: async (event) => handleUpdateList(String(list.id)),
|
|
11445
11462
|
disabled: !vue.unref(editListName).trim()
|
|
11446
|
-
}, vue.toDisplayString(getLabel("editSave", "Save")), 9, _hoisted_15$
|
|
11463
|
+
}, vue.toDisplayString(getLabel("editSave", "Save")), 9, _hoisted_15$f),
|
|
11447
11464
|
vue.createElementVNode("button", {
|
|
11448
11465
|
class: "propeller-favorite-lists__cancel-btn inline-flex items-center px-3 py-1.5 text-sm font-medium rounded-[var(--radius-control)] border border-input text-muted-foreground bg-card hover:bg-surface-hover",
|
|
11449
11466
|
onClick: _cache[3] || (_cache[3] = async (event) => handleCancelEdit())
|
|
11450
11467
|
}, vue.toDisplayString(getLabel("editCancel", "Cancel")), 1)
|
|
11451
11468
|
])
|
|
11452
11469
|
])) : vue.createCommentVNode("", true),
|
|
11453
|
-
vue.unref(editingListId) !== String(list.id) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
11470
|
+
vue.unref(editingListId) !== String(list.id) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$f, [
|
|
11454
11471
|
vue.createElementVNode("div", _hoisted_17$e, [
|
|
11455
11472
|
vue.createElementVNode("span", _hoisted_18$c, vue.toDisplayString(list.name), 1),
|
|
11456
11473
|
__props.showDefaultIndicator !== false && list.isDefault ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_19$c, vue.toDisplayString(getLabel("defaultBadge", "Default")), 1)) : vue.createCommentVNode("", true)
|
|
@@ -11883,8 +11900,8 @@ const _hoisted_12$e = {
|
|
|
11883
11900
|
};
|
|
11884
11901
|
const _hoisted_13$e = ["data-expanded"];
|
|
11885
11902
|
const _hoisted_14$e = ["onClick"];
|
|
11886
|
-
const _hoisted_15$
|
|
11887
|
-
const _hoisted_16$
|
|
11903
|
+
const _hoisted_15$e = { class: "propeller-grid-filters__group-title text-sm font-semibold text-muted-foreground truncate" };
|
|
11904
|
+
const _hoisted_16$e = {
|
|
11888
11905
|
key: 0,
|
|
11889
11906
|
class: "propeller-grid-filters__options pt-2 space-y-1.5"
|
|
11890
11907
|
};
|
|
@@ -12189,7 +12206,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
12189
12206
|
class: "propeller-grid-filters__group-toggle w-full flex items-center justify-between gap-2 text-left py-1 hover:text-secondary transition-colors",
|
|
12190
12207
|
onClick: async (event) => toggleAccordion(getFilterName(filter))
|
|
12191
12208
|
}, [
|
|
12192
|
-
vue.createElementVNode("span", _hoisted_15$
|
|
12209
|
+
vue.createElementVNode("span", _hoisted_15$e, vue.toDisplayString(getFilterTitle(filter)), 1),
|
|
12193
12210
|
(vue.openBlock(), vue.createElementBlock("svg", {
|
|
12194
12211
|
fill: "none",
|
|
12195
12212
|
stroke: "currentColor",
|
|
@@ -12204,7 +12221,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
12204
12221
|
}, null, -1)
|
|
12205
12222
|
])], 2))
|
|
12206
12223
|
], 8, _hoisted_14$e),
|
|
12207
|
-
isExpanded(getFilterName(filter)) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
12224
|
+
isExpanded(getFilterName(filter)) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$e, [
|
|
12208
12225
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getValidOptions(filter), (option, index22) => {
|
|
12209
12226
|
return vue.openBlock(), vue.createElementBlock("label", {
|
|
12210
12227
|
key: option.value,
|
|
@@ -12391,7 +12408,7 @@ const _hoisted_14$d = {
|
|
|
12391
12408
|
strokeLinecap: "round",
|
|
12392
12409
|
strokeLinejoin: "round"
|
|
12393
12410
|
};
|
|
12394
|
-
const _hoisted_15$
|
|
12411
|
+
const _hoisted_15$d = {
|
|
12395
12412
|
key: 1,
|
|
12396
12413
|
xmlns: "http://www.w3.org/2000/svg",
|
|
12397
12414
|
width: "16",
|
|
@@ -12403,7 +12420,7 @@ const _hoisted_15$c = {
|
|
|
12403
12420
|
strokeLinecap: "round",
|
|
12404
12421
|
strokeLinejoin: "round"
|
|
12405
12422
|
};
|
|
12406
|
-
const _hoisted_16$
|
|
12423
|
+
const _hoisted_16$d = {
|
|
12407
12424
|
key: 0,
|
|
12408
12425
|
class: "propeller-grid-toolbar__active-filters flex flex-wrap gap-2 mb-4"
|
|
12409
12426
|
};
|
|
@@ -12609,7 +12626,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
12609
12626
|
currentViewMode.value === "grid" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_14$d, [..._cache[6] || (_cache[6] = [
|
|
12610
12627
|
vue.createStaticVNode('<line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line>', 6)
|
|
12611
12628
|
])])) : vue.createCommentVNode("", true),
|
|
12612
|
-
currentViewMode.value === "list" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$
|
|
12629
|
+
currentViewMode.value === "list" ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$d, [..._cache[7] || (_cache[7] = [
|
|
12613
12630
|
vue.createElementVNode("rect", {
|
|
12614
12631
|
x: "3",
|
|
12615
12632
|
y: "3",
|
|
@@ -12638,7 +12655,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
12638
12655
|
], 8, _hoisted_13$d)
|
|
12639
12656
|
])
|
|
12640
12657
|
]),
|
|
12641
|
-
hasActiveFilters() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
12658
|
+
hasActiveFilters() ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$d, [
|
|
12642
12659
|
vue.createElementVNode("button", {
|
|
12643
12660
|
type: "button",
|
|
12644
12661
|
class: "propeller-grid-toolbar__clear-all h-7 px-2 text-xs rounded-[var(--radius-control)] hover:bg-accent hover:text-accent-foreground transition-colors",
|
|
@@ -12731,8 +12748,8 @@ const _hoisted_14$c = {
|
|
|
12731
12748
|
key: 0,
|
|
12732
12749
|
class: "text-muted-foreground whitespace-nowrap ml-2"
|
|
12733
12750
|
};
|
|
12734
|
-
const _hoisted_15$
|
|
12735
|
-
const _hoisted_16$
|
|
12751
|
+
const _hoisted_15$c = { class: "line-clamp-1" };
|
|
12752
|
+
const _hoisted_16$c = {
|
|
12736
12753
|
key: 0,
|
|
12737
12754
|
class: "text-foreground-subtle whitespace-nowrap ml-2"
|
|
12738
12755
|
};
|
|
@@ -12955,8 +12972,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
12955
12972
|
key: idx,
|
|
12956
12973
|
class: "propeller-items-overview__item-bundle-item flex justify-between items-center text-xs text-muted-foreground"
|
|
12957
12974
|
}, [
|
|
12958
|
-
vue.createElementVNode("span", _hoisted_15$
|
|
12959
|
-
!!getBundleItemPrice(bundleItem) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$
|
|
12975
|
+
vue.createElementVNode("span", _hoisted_15$c, vue.toDisplayString(getBundleItemName(bundleItem)), 1),
|
|
12976
|
+
!!getBundleItemPrice(bundleItem) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_16$c, vue.toDisplayString(getBundleItemPrice(bundleItem)), 1)) : vue.createCommentVNode("", true)
|
|
12960
12977
|
]);
|
|
12961
12978
|
}), 128))
|
|
12962
12979
|
])
|
|
@@ -13054,14 +13071,14 @@ const _hoisted_11$b = {
|
|
|
13054
13071
|
const _hoisted_12$b = ["data-active", "onMouseenter"];
|
|
13055
13072
|
const _hoisted_13$b = ["href", "onClick"];
|
|
13056
13073
|
const _hoisted_14$b = { class: "propeller-menu__label truncate" };
|
|
13057
|
-
const _hoisted_15$
|
|
13074
|
+
const _hoisted_15$b = {
|
|
13058
13075
|
key: 0,
|
|
13059
13076
|
fill: "none",
|
|
13060
13077
|
stroke: "currentColor",
|
|
13061
13078
|
viewBox: "0 0 24 24",
|
|
13062
13079
|
class: "propeller-menu__chevron w-4 h-4 text-muted-foreground"
|
|
13063
13080
|
};
|
|
13064
|
-
const _hoisted_16$
|
|
13081
|
+
const _hoisted_16$b = {
|
|
13065
13082
|
key: 0,
|
|
13066
13083
|
class: "propeller-menu__list w-64 py-1 flex-shrink-0",
|
|
13067
13084
|
"data-level": "3"
|
|
@@ -13262,7 +13279,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
13262
13279
|
class: vue.normalizeClass(`propeller-menu__link flex items-center justify-between px-4 py-2.5 text-sm transition-colors ${hoveredL2Id.value === l2.categoryId ? "bg-accent text-accent-foreground" : "text-foreground hover:bg-accent/50"}`)
|
|
13263
13280
|
}, [
|
|
13264
13281
|
vue.createElementVNode("span", _hoisted_14$b, vue.toDisplayString(getCategoryName(l2)), 1),
|
|
13265
|
-
getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$
|
|
13282
|
+
getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("svg", _hoisted_15$b, [..._cache[3] || (_cache[3] = [
|
|
13266
13283
|
vue.createElementVNode("path", {
|
|
13267
13284
|
strokeLinecap: "round",
|
|
13268
13285
|
strokeLinejoin: "round",
|
|
@@ -13280,7 +13297,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
13280
13297
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index2 }, [
|
|
13281
13298
|
hoveredL1Id.value === l1.categoryId ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(getSubCategories(l1), (l2, index22) => {
|
|
13282
13299
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index22 }, [
|
|
13283
|
-
hoveredL2Id.value === l2.categoryId && getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_16$
|
|
13300
|
+
hoveredL2Id.value === l2.categoryId && getSubCategories(l2).length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_16$b, [
|
|
13284
13301
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getSubCategories(l2), (l3, idx3) => {
|
|
13285
13302
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
13286
13303
|
key: `l3-${l3.categoryId}-${idx3}`,
|
|
@@ -13735,8 +13752,8 @@ const _hoisted_14$a = {
|
|
|
13735
13752
|
key: 2,
|
|
13736
13753
|
class: "flex space-x-2 w-full"
|
|
13737
13754
|
};
|
|
13738
|
-
const _hoisted_15$
|
|
13739
|
-
const _hoisted_16$
|
|
13755
|
+
const _hoisted_15$a = ["placeholder", "value"];
|
|
13756
|
+
const _hoisted_16$a = ["placeholder", "value"];
|
|
13740
13757
|
const _hoisted_17$9 = {
|
|
13741
13758
|
key: 3,
|
|
13742
13759
|
class: "flex space-x-2 w-full"
|
|
@@ -13879,7 +13896,11 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
13879
13896
|
function formatDate(dateString) {
|
|
13880
13897
|
if (props.formatDate) return props.formatDate(dateString);
|
|
13881
13898
|
if (!dateString) return "-";
|
|
13882
|
-
|
|
13899
|
+
const d = new Date(dateString);
|
|
13900
|
+
if (isNaN(d.getTime())) return dateString;
|
|
13901
|
+
const day = String(d.getDate()).padStart(2, "0");
|
|
13902
|
+
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
13903
|
+
return `${day}-${month}-${d.getFullYear()}`;
|
|
13883
13904
|
}
|
|
13884
13905
|
function formatPrice(price) {
|
|
13885
13906
|
if (props.formatPrice) return props.formatPrice(price);
|
|
@@ -14059,7 +14080,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
14059
14080
|
}
|
|
14060
14081
|
};
|
|
14061
14082
|
})
|
|
14062
|
-
}, null, 40, _hoisted_15$
|
|
14083
|
+
}, null, 40, _hoisted_15$a),
|
|
14063
14084
|
vue.createElementVNode("input", {
|
|
14064
14085
|
type: "number",
|
|
14065
14086
|
placeholder: getLabel("priceMaxPlaceholder", "Max"),
|
|
@@ -14075,7 +14096,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
14075
14096
|
}
|
|
14076
14097
|
};
|
|
14077
14098
|
})
|
|
14078
|
-
}, null, 40, _hoisted_16$
|
|
14099
|
+
}, null, 40, _hoisted_16$a)
|
|
14079
14100
|
])) : vue.createCommentVNode("", true),
|
|
14080
14101
|
field === "sortInput" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$9, [
|
|
14081
14102
|
vue.createElementVNode("select", {
|
|
@@ -14304,8 +14325,8 @@ const _hoisted_14$9 = {
|
|
|
14304
14325
|
key: 1,
|
|
14305
14326
|
class: "text-muted-foreground"
|
|
14306
14327
|
};
|
|
14307
|
-
const _hoisted_15$
|
|
14308
|
-
const _hoisted_16$
|
|
14328
|
+
const _hoisted_15$9 = { class: "px-4 py-3 text-muted-foreground" };
|
|
14329
|
+
const _hoisted_16$9 = { class: "px-4 py-3 text-muted-foreground" };
|
|
14309
14330
|
const _hoisted_17$8 = { class: "px-4 py-3 text-muted-foreground" };
|
|
14310
14331
|
const _hoisted_18$7 = { class: "px-4 py-3 text-right" };
|
|
14311
14332
|
const _hoisted_19$7 = ["onClick"];
|
|
@@ -14382,7 +14403,10 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
14382
14403
|
function formatDate(dateStr) {
|
|
14383
14404
|
if (!dateStr) return "-";
|
|
14384
14405
|
const d = new Date(dateStr);
|
|
14385
|
-
|
|
14406
|
+
if (isNaN(d.getTime())) return dateStr;
|
|
14407
|
+
const day = String(d.getDate()).padStart(2, "0");
|
|
14408
|
+
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
14409
|
+
return `${day}-${month}-${d.getFullYear()}`;
|
|
14386
14410
|
}
|
|
14387
14411
|
function getOrderItemForShipmentItem(shipmentItem) {
|
|
14388
14412
|
if (!props.order?.items || !shipmentItem.orderItemId) return null;
|
|
@@ -14422,8 +14446,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
14422
14446
|
!!shipment.status ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_13$9, vue.toDisplayString(shipment.status), 1)) : vue.createCommentVNode("", true),
|
|
14423
14447
|
!shipment.status ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_14$9, "-")) : vue.createCommentVNode("", true)
|
|
14424
14448
|
]),
|
|
14425
|
-
vue.createElementVNode("td", _hoisted_15$
|
|
14426
|
-
vue.createElementVNode("td", _hoisted_16$
|
|
14449
|
+
vue.createElementVNode("td", _hoisted_15$9, vue.toDisplayString(formatDate(shipment.createdAt)), 1),
|
|
14450
|
+
vue.createElementVNode("td", _hoisted_16$9, [
|
|
14427
14451
|
!!shipment.expectedDeliveryAt ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
14428
14452
|
vue.createTextVNode(vue.toDisplayString(formatDate(shipment.expectedDeliveryAt)), 1)
|
|
14429
14453
|
], 64)) : vue.createCommentVNode("", true),
|
|
@@ -14607,16 +14631,19 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
14607
14631
|
props: {
|
|
14608
14632
|
label: {},
|
|
14609
14633
|
labels: {},
|
|
14634
|
+
value: { type: Boolean },
|
|
14610
14635
|
initialState: { type: Boolean },
|
|
14611
14636
|
inclExclVatSwitched: { type: Function },
|
|
14612
14637
|
className: {}
|
|
14613
14638
|
},
|
|
14614
14639
|
setup(__props) {
|
|
14615
14640
|
const props = __props;
|
|
14616
|
-
const
|
|
14641
|
+
const isControlled = vue.computed(() => props.value !== void 0);
|
|
14642
|
+
const internal = vue.ref(props.initialState ?? true);
|
|
14643
|
+
const isOn = vue.computed(() => isControlled.value ? !!props.value : internal.value);
|
|
14617
14644
|
vue.onMounted(() => {
|
|
14618
|
-
if (typeof window !== "undefined") {
|
|
14619
|
-
|
|
14645
|
+
if (!isControlled.value && typeof window !== "undefined") {
|
|
14646
|
+
internal.value = props.initialState ?? true;
|
|
14620
14647
|
}
|
|
14621
14648
|
});
|
|
14622
14649
|
function getLabel() {
|
|
@@ -14627,7 +14654,9 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
14627
14654
|
}
|
|
14628
14655
|
function handleToggle() {
|
|
14629
14656
|
const newValue = !isOn.value;
|
|
14630
|
-
|
|
14657
|
+
if (!isControlled.value) {
|
|
14658
|
+
internal.value = newValue;
|
|
14659
|
+
}
|
|
14631
14660
|
if (props.inclExclVatSwitched) {
|
|
14632
14661
|
props.inclExclVatSwitched(newValue);
|
|
14633
14662
|
}
|
|
@@ -14689,8 +14718,8 @@ const _hoisted_13$8 = {
|
|
|
14689
14718
|
strokeWidth: 2.5
|
|
14690
14719
|
};
|
|
14691
14720
|
const _hoisted_14$8 = { class: "propeller-product-bundles__summary flex-shrink-0 w-full lg:w-72 pl-0 lg:pl-6" };
|
|
14692
|
-
const _hoisted_15$
|
|
14693
|
-
const _hoisted_16$
|
|
14721
|
+
const _hoisted_15$8 = { class: "propeller-product-bundles__title text-xl font-bold text-foreground mb-1" };
|
|
14722
|
+
const _hoisted_16$8 = {
|
|
14694
14723
|
key: 0,
|
|
14695
14724
|
class: "propeller-product-bundles__description text-sm text-muted-foreground mb-3"
|
|
14696
14725
|
};
|
|
@@ -15011,8 +15040,8 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
15011
15040
|
])]))
|
|
15012
15041
|
]),
|
|
15013
15042
|
vue.createElementVNode("div", _hoisted_14$8, [
|
|
15014
|
-
vue.createElementVNode("h3", _hoisted_15$
|
|
15015
|
-
bundle.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_16$
|
|
15043
|
+
vue.createElementVNode("h3", _hoisted_15$8, vue.toDisplayString(bundle.name || getLabel("title", "Combo deal")), 1),
|
|
15044
|
+
bundle.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_16$8, vue.toDisplayString(bundle.description), 1)) : vue.createCommentVNode("", true),
|
|
15016
15045
|
bundle.condition ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_17$7, [
|
|
15017
15046
|
bundle.condition === vue.unref(propellerSdkV2.BundleCondition).ALL ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
15018
15047
|
vue.createTextVNode(vue.toDisplayString(getLabel("condition_ALL", "Discount on all items")), 1)
|
|
@@ -15205,8 +15234,8 @@ const _hoisted_11$7 = { class: "propeller-product-card__labels flex flex-col gap
|
|
|
15205
15234
|
const _hoisted_12$7 = { class: "propeller-product-card__manufacturer text-xs text-muted-foreground" };
|
|
15206
15235
|
const _hoisted_13$7 = { class: "propeller-product-card__description line-clamp-2 text-xs text-muted-foreground" };
|
|
15207
15236
|
const _hoisted_14$7 = { class: "propeller-product-card__footer w-full md:w-auto flex flex-col gap-2 md:flex-row md:items-center md:gap-3 px-4 py-2 md:py-0 border-t md:border-t-0 border-border-subtle" };
|
|
15208
|
-
const _hoisted_15$
|
|
15209
|
-
const _hoisted_16$
|
|
15237
|
+
const _hoisted_15$7 = { class: "propeller-product-card__footer-meta flex items-center justify-between gap-3 md:contents" };
|
|
15238
|
+
const _hoisted_16$7 = { class: "propeller-product-card__price" };
|
|
15210
15239
|
const _hoisted_17$6 = { class: "propeller-product-card__cta w-full md:w-auto md:flex-shrink-0 md:ml-auto" };
|
|
15211
15240
|
const _hoisted_18$5 = { class: "propeller-product-card__body flex flex-1 flex-col gap-1.5 p-3 sm:gap-2 sm:p-4" };
|
|
15212
15241
|
const _hoisted_19$5 = { class: "propeller-product-card__sku font-mono text-xs text-foreground-subtle" };
|
|
@@ -15561,7 +15590,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
15561
15590
|
])
|
|
15562
15591
|
]),
|
|
15563
15592
|
vue.createElementVNode("div", _hoisted_14$7, [
|
|
15564
|
-
vue.createElementVNode("div", _hoisted_15$
|
|
15593
|
+
vue.createElementVNode("div", _hoisted_15$7, [
|
|
15565
15594
|
props.showStock && !!props.product.inventory ? vue.renderSlot(_ctx.$slots, "stock", {
|
|
15566
15595
|
key: 0,
|
|
15567
15596
|
product: __props.product,
|
|
@@ -15591,7 +15620,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
15591
15620
|
currency: __props.currency,
|
|
15592
15621
|
labels: props.priceLabels
|
|
15593
15622
|
}, () => [
|
|
15594
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
15623
|
+
vue.createElementVNode("div", _hoisted_16$7, [
|
|
15595
15624
|
props.priceComponent ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(PriceImpl.value), {
|
|
15596
15625
|
key: 0,
|
|
15597
15626
|
price: __props.product.price,
|
|
@@ -17244,11 +17273,11 @@ const _hoisted_14$6 = {
|
|
|
17244
17273
|
key: 1,
|
|
17245
17274
|
class: "mb-6 space-y-3"
|
|
17246
17275
|
};
|
|
17247
|
-
const _hoisted_15$
|
|
17276
|
+
const _hoisted_15$6 = {
|
|
17248
17277
|
key: 0,
|
|
17249
17278
|
class: "text-sm font-semibold text-muted-foreground uppercase tracking-wide mb-2"
|
|
17250
17279
|
};
|
|
17251
|
-
const _hoisted_16$
|
|
17280
|
+
const _hoisted_16$6 = {
|
|
17252
17281
|
key: 1,
|
|
17253
17282
|
class: "overflow-hidden rounded-[var(--radius-container)] border border-border"
|
|
17254
17283
|
};
|
|
@@ -17426,8 +17455,8 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
17426
17455
|
key: group,
|
|
17427
17456
|
class: "mb-6"
|
|
17428
17457
|
}, [
|
|
17429
|
-
!!group ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_15$
|
|
17430
|
-
__props.layout !== "list" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
17458
|
+
!!group ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_15$6, vue.toDisplayString(group), 1)) : vue.createCommentVNode("", true),
|
|
17459
|
+
__props.layout !== "list" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$6, [
|
|
17431
17460
|
vue.createElementVNode("table", _hoisted_17$5, [
|
|
17432
17461
|
vue.createElementVNode("tbody", _hoisted_18$4, [
|
|
17433
17462
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getAttributesByGroup(group), (attr, i) => {
|
|
@@ -17491,11 +17520,11 @@ const _hoisted_13$5 = {
|
|
|
17491
17520
|
class: "propeller-product-tabs__accordion-panel px-4 pb-4"
|
|
17492
17521
|
};
|
|
17493
17522
|
const _hoisted_14$5 = { key: 2 };
|
|
17494
|
-
const _hoisted_15$
|
|
17523
|
+
const _hoisted_15$5 = {
|
|
17495
17524
|
key: 0,
|
|
17496
17525
|
class: "propeller-product-tabs__accordion-panel px-4 pb-4"
|
|
17497
17526
|
};
|
|
17498
|
-
const _hoisted_16$
|
|
17527
|
+
const _hoisted_16$5 = { key: 3 };
|
|
17499
17528
|
const _hoisted_17$4 = {
|
|
17500
17529
|
key: 0,
|
|
17501
17530
|
class: "propeller-product-tabs__accordion-panel px-4 pb-4"
|
|
@@ -17797,7 +17826,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
17797
17826
|
vue.createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)
|
|
17798
17827
|
])], 2))
|
|
17799
17828
|
]),
|
|
17800
|
-
isActive("downloads") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$
|
|
17829
|
+
isActive("downloads") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15$5, [
|
|
17801
17830
|
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(ProductDownloadsImpl.value), {
|
|
17802
17831
|
downloads: __props.product.media?.documents,
|
|
17803
17832
|
language: __props.language || "NL",
|
|
@@ -17805,7 +17834,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
17805
17834
|
}, null, 8, ["downloads", "language", "labels"]))
|
|
17806
17835
|
])) : vue.createCommentVNode("", true)
|
|
17807
17836
|
])) : vue.createCommentVNode("", true),
|
|
17808
|
-
isTabVisible("videos") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$
|
|
17837
|
+
isTabVisible("videos") ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$5, [
|
|
17809
17838
|
vue.createElementVNode("button", {
|
|
17810
17839
|
type: "button",
|
|
17811
17840
|
class: "propeller-product-tabs__accordion-trigger flex items-center justify-between w-full px-4 py-3 text-sm font-medium text-left",
|
|
@@ -17859,8 +17888,8 @@ const _hoisted_11$4 = { class: "text-left px-4 py-3 font-medium text-muted-foreg
|
|
|
17859
17888
|
const _hoisted_12$4 = { class: "text-left px-4 py-3 font-medium text-muted-foreground" };
|
|
17860
17889
|
const _hoisted_13$4 = { class: "divide-y divide-border" };
|
|
17861
17890
|
const _hoisted_14$4 = { class: "px-4 py-3 text-muted-foreground" };
|
|
17862
|
-
const _hoisted_15$
|
|
17863
|
-
const _hoisted_16$
|
|
17891
|
+
const _hoisted_15$4 = { class: "px-4 py-3" };
|
|
17892
|
+
const _hoisted_16$4 = { class: "font-medium" };
|
|
17864
17893
|
const _hoisted_17$3 = { class: "text-xs text-muted-foreground mt-0.5" };
|
|
17865
17894
|
const _hoisted_18$3 = { class: "px-4 py-3" };
|
|
17866
17895
|
const _hoisted_19$3 = ["value", "disabled", "onChange"];
|
|
@@ -18041,8 +18070,8 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
18041
18070
|
class: "hover:bg-surface-hover/30 transition-colors"
|
|
18042
18071
|
}, [
|
|
18043
18072
|
vue.createElementVNode("td", _hoisted_14$4, vue.toDisplayString(contact.contactId), 1),
|
|
18044
|
-
vue.createElementVNode("td", _hoisted_15$
|
|
18045
|
-
vue.createElementVNode("div", _hoisted_16$
|
|
18073
|
+
vue.createElementVNode("td", _hoisted_15$4, [
|
|
18074
|
+
vue.createElementVNode("div", _hoisted_16$4, vue.toDisplayString([
|
|
18046
18075
|
contact.firstName,
|
|
18047
18076
|
contact.middleName,
|
|
18048
18077
|
contact.lastName
|
|
@@ -18309,8 +18338,8 @@ const _hoisted_11$3 = { class: "text-left px-4 py-3 font-medium text-muted-foreg
|
|
|
18309
18338
|
const _hoisted_12$3 = { class: "text-left px-4 py-3 font-medium text-muted-foreground" };
|
|
18310
18339
|
const _hoisted_13$3 = { class: "divide-y divide-border" };
|
|
18311
18340
|
const _hoisted_14$3 = { class: "px-4 py-3 text-muted-foreground" };
|
|
18312
|
-
const _hoisted_15$
|
|
18313
|
-
const _hoisted_16$
|
|
18341
|
+
const _hoisted_15$3 = { class: "px-4 py-3" };
|
|
18342
|
+
const _hoisted_16$3 = { class: "px-4 py-3 font-medium" };
|
|
18314
18343
|
const _hoisted_17$2 = { class: "px-4 py-3" };
|
|
18315
18344
|
const _hoisted_18$2 = { class: "font-medium" };
|
|
18316
18345
|
const _hoisted_19$2 = { class: "text-xs text-muted-foreground mt-0.5" };
|
|
@@ -18447,7 +18476,10 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
18447
18476
|
if (props.formatDate) return props.formatDate(dateStr);
|
|
18448
18477
|
if (!dateStr) return "-";
|
|
18449
18478
|
const d = new Date(dateStr);
|
|
18450
|
-
|
|
18479
|
+
if (isNaN(d.getTime())) return dateStr;
|
|
18480
|
+
const day = String(d.getDate()).padStart(2, "0");
|
|
18481
|
+
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
18482
|
+
return `${day}-${month}-${d.getFullYear()}`;
|
|
18451
18483
|
}
|
|
18452
18484
|
function formatPrice(price) {
|
|
18453
18485
|
if (props.formatPrice) return props.formatPrice(price);
|
|
@@ -18483,8 +18515,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
18483
18515
|
class: "hover:bg-surface-hover/30 transition-colors"
|
|
18484
18516
|
}, [
|
|
18485
18517
|
vue.createElementVNode("td", _hoisted_14$3, vue.toDisplayString(formatDate(cart.lastModifiedAt ?? "")), 1),
|
|
18486
|
-
vue.createElementVNode("td", _hoisted_15$
|
|
18487
|
-
vue.createElementVNode("td", _hoisted_16$
|
|
18518
|
+
vue.createElementVNode("td", _hoisted_15$3, vue.toDisplayString(vue.unref(getTotalQuantity)(cart)), 1),
|
|
18519
|
+
vue.createElementVNode("td", _hoisted_16$3, vue.toDisplayString(formatPrice(cart.total?.totalNet ?? 0)), 1),
|
|
18488
18520
|
vue.createElementVNode("td", _hoisted_17$2, [
|
|
18489
18521
|
vue.createElementVNode("div", _hoisted_18$2, vue.toDisplayString(vue.unref(getContactName)(cart.contact)), 1),
|
|
18490
18522
|
vue.createElementVNode("div", _hoisted_19$2, vue.toDisplayString(cart.contact?.email), 1)
|
|
@@ -18795,8 +18827,8 @@ const _hoisted_11$2 = { class: "text-sm font-medium leading-none" };
|
|
|
18795
18827
|
const _hoisted_12$2 = { class: "flex gap-4" };
|
|
18796
18828
|
const _hoisted_13$2 = { class: "flex items-center gap-2 text-sm" };
|
|
18797
18829
|
const _hoisted_14$2 = ["checked", "disabled"];
|
|
18798
|
-
const _hoisted_15$
|
|
18799
|
-
const _hoisted_16$
|
|
18830
|
+
const _hoisted_15$2 = { class: "flex items-center gap-2 text-sm" };
|
|
18831
|
+
const _hoisted_16$2 = ["checked", "disabled"];
|
|
18800
18832
|
const _hoisted_17$1 = { class: "flex items-center gap-2 text-sm" };
|
|
18801
18833
|
const _hoisted_18$1 = ["checked", "disabled"];
|
|
18802
18834
|
const _hoisted_19$1 = { class: "space-y-2" };
|
|
@@ -19297,7 +19329,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
19297
19329
|
}, null, 40, _hoisted_14$2),
|
|
19298
19330
|
vue.createTextVNode(" " + vue.toDisplayString(genderMrLabel.value), 1)
|
|
19299
19331
|
]),
|
|
19300
|
-
vue.createElementVNode("label", _hoisted_15$
|
|
19332
|
+
vue.createElementVNode("label", _hoisted_15$2, [
|
|
19301
19333
|
vue.createElementVNode("input", {
|
|
19302
19334
|
type: "radio",
|
|
19303
19335
|
name: "gender",
|
|
@@ -19308,7 +19340,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
19308
19340
|
gender.value = vue.unref(propellerSdkV2.Gender).F;
|
|
19309
19341
|
}),
|
|
19310
19342
|
disabled: vue.unref(loading)
|
|
19311
|
-
}, null, 40, _hoisted_16$
|
|
19343
|
+
}, null, 40, _hoisted_16$2),
|
|
19312
19344
|
vue.createTextVNode(" " + vue.toDisplayString(genderMrsLabel.value), 1)
|
|
19313
19345
|
]),
|
|
19314
19346
|
vue.createElementVNode("label", _hoisted_17$1, [
|
|
@@ -19863,9 +19895,11 @@ const _hoisted_12$1 = {
|
|
|
19863
19895
|
};
|
|
19864
19896
|
const _hoisted_13$1 = {
|
|
19865
19897
|
key: 1,
|
|
19866
|
-
class: "propeller-search-bar__result-price text-sm font-semibold text-foreground flex-shrink-0"
|
|
19898
|
+
class: "propeller-search-bar__result-price text-sm font-semibold text-foreground flex-shrink-0 text-right"
|
|
19867
19899
|
};
|
|
19868
|
-
const _hoisted_14$1 = {
|
|
19900
|
+
const _hoisted_14$1 = { class: "propeller-search-bar__result-price-value" };
|
|
19901
|
+
const _hoisted_15$1 = { class: "propeller-search-bar__result-price-label block text-xs font-normal text-muted-foreground" };
|
|
19902
|
+
const _hoisted_16$1 = {
|
|
19869
19903
|
key: 1,
|
|
19870
19904
|
class: "propeller-search-bar__empty p-4 text-center text-muted-foreground"
|
|
19871
19905
|
};
|
|
@@ -19886,6 +19920,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
19886
19920
|
onViewAllClick: { type: Function },
|
|
19887
19921
|
formatPrice: { type: Function },
|
|
19888
19922
|
labels: {},
|
|
19923
|
+
includeTax: { type: Boolean },
|
|
19924
|
+
priceLabels: {},
|
|
19889
19925
|
containerClassName: {},
|
|
19890
19926
|
taxZone: {},
|
|
19891
19927
|
companyId: {},
|
|
@@ -19975,6 +20011,13 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
19975
20011
|
}
|
|
19976
20012
|
return index.formatPrice(price || 0, { symbol: infra.currency ?? "€" });
|
|
19977
20013
|
}
|
|
20014
|
+
const useTax = vue.computed(() => !!infra.includeTax);
|
|
20015
|
+
function leadingPrice(result) {
|
|
20016
|
+
return useTax.value ? result.priceNet ?? result.price ?? 0 : result.priceGross ?? result.price ?? 0;
|
|
20017
|
+
}
|
|
20018
|
+
function priceTaxLabel() {
|
|
20019
|
+
return useTax.value ? index.getLabel(props.priceLabels, "inclTax", "incl. VAT") : index.getLabel(props.priceLabels, "exclTax", "excl. VAT");
|
|
20020
|
+
}
|
|
19978
20021
|
function mapProductToResult(item) {
|
|
19979
20022
|
const isCluster = "clusterId" in item;
|
|
19980
20023
|
const displayItem = isCluster ? item.defaultProduct : item;
|
|
@@ -19983,11 +20026,16 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
19983
20026
|
const urls = infra.configuration?.urls;
|
|
19984
20027
|
const builder = isCluster ? urls?.getClusterUrl : urls?.getProductUrl;
|
|
19985
20028
|
const url = typeof builder === "function" ? builder(item, infra.language) : isCluster ? "/cluster/" + id + "/" + slug : "/product/" + id + "/" + slug;
|
|
20029
|
+
const priceNet = displayItem?.price?.net || 0;
|
|
20030
|
+
const priceGross = displayItem?.price?.gross || 0;
|
|
19986
20031
|
return {
|
|
19987
20032
|
id,
|
|
19988
20033
|
name: item.names?.[0]?.value || "Product",
|
|
19989
20034
|
sku: item.sku || displayItem?.sku || "",
|
|
19990
|
-
price
|
|
20035
|
+
// `price` stays gross for back-compat; the row picks net/gross per toggle.
|
|
20036
|
+
price: priceGross,
|
|
20037
|
+
priceNet,
|
|
20038
|
+
priceGross,
|
|
19991
20039
|
imageUrl: displayItem?.media?.images?.items?.[0]?.imageVariants?.[0]?.url || "",
|
|
19992
20040
|
url,
|
|
19993
20041
|
isCluster
|
|
@@ -20085,7 +20133,10 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
20085
20133
|
vue.createElementVNode("div", _hoisted_11$1, vue.toDisplayString(result.name), 1),
|
|
20086
20134
|
result.sku ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$1, "SKU: " + vue.toDisplayString(result.sku), 1)) : vue.createCommentVNode("", true)
|
|
20087
20135
|
]),
|
|
20088
|
-
result.price !== void 0 && result.price !== null ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$1,
|
|
20136
|
+
result.price !== void 0 && result.price !== null ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$1, [
|
|
20137
|
+
vue.createElementVNode("span", _hoisted_14$1, vue.toDisplayString(formatItemPrice(leadingPrice(result))), 1),
|
|
20138
|
+
vue.createElementVNode("span", _hoisted_15$1, vue.toDisplayString(priceTaxLabel()), 1)
|
|
20139
|
+
])) : vue.createCommentVNode("", true)
|
|
20089
20140
|
], 8, _hoisted_7$1);
|
|
20090
20141
|
}), 128))
|
|
20091
20142
|
]),
|
|
@@ -20095,7 +20146,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
20095
20146
|
onClick: _cache[2] || (_cache[2] = async (event) => handleViewAllClick())
|
|
20096
20147
|
}, vue.toDisplayString(getLabel("viewAll", "View all results")) + " (" + vue.toDisplayString(itemsFound.value) + ") ", 1)) : vue.createCommentVNode("", true)
|
|
20097
20148
|
], 64)) : vue.createCommentVNode("", true),
|
|
20098
|
-
results.value.length === 0 && searchTerm.value.length >= minLength.value && !vue.unref(isLoading) ? (vue.openBlock(), vue.createElementBlock("div",
|
|
20149
|
+
results.value.length === 0 && searchTerm.value.length >= minLength.value && !vue.unref(isLoading) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$1, vue.toDisplayString(getLabel("noResults", "No products found for")) + ' "' + vue.toDisplayString(searchTerm.value) + '" ', 1)) : vue.createCommentVNode("", true)
|
|
20099
20150
|
])) : vue.createCommentVNode("", true)
|
|
20100
20151
|
], 10, _hoisted_1$1);
|
|
20101
20152
|
};
|