@shopware-ag/meteor-component-library
Version:
The meteor component library is a Vue component library developed by Shopware. It is based on the [Meteor Design System](https://shopware.design/).
73 lines (72 loc) • 2.59 kB
JavaScript
import '../mt-promo-badge.css';
"use strict";
const vue = require("vue");
const vueI18n = require("vue-i18n");
const MtBadge = require("./MtBadge.js");
const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
require("../mt-icon.vue_vue_type_style_index_0_lang-0a28c7b6.js");
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "mt-promo-badge",
props: {
variant: { default: "new" },
size: { default: "s" }
},
setup(__props) {
const props = __props;
const { t } = vueI18n.useI18n({
messages: {
en: {
"mt-promo-badge": {
new: "New",
beta: "Beta",
shopwareAi: "Shopware AI"
}
},
de: {
"mt-promo-badge": {
new: "Neu",
beta: "Beta",
shopwareAi: "Shopware AI"
}
}
}
});
const size = vue.computed(() => {
const n = String(props.size ?? "s").toLowerCase();
return n === "s" ? "s" : n === "m" ? "m" : n === "l" ? "l" : "s";
});
const badgeVariant = vue.computed(
() => props.variant === "shopware-ai" ? "neutral" : props.variant === "beta" ? "info" : "positive"
);
const promoText = vue.computed(
() => props.variant === "shopware-ai" ? t("mt-promo-badge.shopwareAi") : props.variant === "new" ? t("mt-promo-badge.new") : t("mt-promo-badge.beta")
);
const badgeIcon = vue.computed(
() => props.variant === "beta" ? "solid-code" : props.variant === "shopware-ai" ? "solid-sparkles" : "solid-party-horn"
);
const iconColor = vue.computed(
() => props.variant === "shopware-ai" ? "var(--color-icon-brand-default)" : "var(--color-icon-primary-default)"
);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("span", {
class: "mt-promo-badge",
style: vue.normalizeStyle({ "--mt-promo-badge-icon-color": iconColor.value })
}, [
vue.createVNode(MtBadge, {
variant: badgeVariant.value,
size: size.value,
icon: badgeIcon.value
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(promoText.value), 1)
]),
_: 1
}, 8, ["variant", "size", "icon"])
], 4);
};
}
});
const mtPromoBadge_vue_vue_type_style_index_0_scoped_d58d896b_lang = "";
const mtPromoBadge = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-d58d896b"]]);
module.exports = mtPromoBadge;
//# sourceMappingURL=MtPromoBadge.js.map