PageSourceSearch

https://www.chocolateriefranz.be/build/assets/AddPromoCode-LEUYMfhX.js

js chocolateriefranz.be collected 2026-10-09 01:30:42 UTC 4,463 bytes, 100 lines download raw bytes

1import { $ as watch, E as createVNode, J as resolveDirective, Kt as toDisplayString, M as init_runtime_core_esm_bundler, O as defineComponent, S as createElementBlock, T as createTextVNode, U as openBlock, Xt as __exportAll, kt as init_shared_esm_bundler, m as withModifiers, n as Transition, nt as withDirectives, o as init_runtime_dom_esm_bundler, ot as init_reactivity_esm_bundler, pt as ref, tt as withCtx, v as computed, x as createCommentVNode, y as createBaseVNode } from "./vue.runtime.esm-bundler-Dh_z576G.js";
2import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BOaGB7Aw.js";
3import { t as BaseInput_default } from "./BaseInput-DiShPlAB.js";
4import { t as ButtonLink_default } from "./ButtonLink-BATKajau.js";
5import { t as PlusIcon_default } from "./PlusIcon-DZUMb6Ng.js";
6import { t as SecondaryButton_default } from "./SecondaryButton-DHR17Fwf.js";
7//#region resources/js/Pages/Consumer/components/cart/AddPromoCode.vue?vue&type=script&setup=true&lang.ts
8init_runtime_core_esm_bundler();
9init_shared_esm_bundler(), init_runtime_dom_esm_bundler();
10init_reactivity_esm_bundler();
11var _hoisted_1 = { key: 0 };
12var _hoisted_2 = {
13	key: 0,
14	class: "duplicate"
15};
16var _hoisted_3 = { key: 1 };
17var AddPromoCode_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
18	__name: "AddPromoCode",
19	props: { discounts: {
20		type: Array,
21		required: true
22	} },
23	emits: ["added"],
24	setup(__props, { expose: __expose, emit: __emit }) {
25		const props = __props;
26		const emit = __emit;
27		const showInput = ref(false);
28		const code = ref("");
29		watch(code, (newCode) => {
30			code.value = newCode.toUpperCase();
31		});
32		const codeAlreadyAdded = computed(() => {
33			return props.discounts.findIndex((d) => d.code === code.value) >= 0;
34		});
35		const onShow = () => {
36			code.value = "";
37			showInput.value = true;
38		};
39		const onCancel = () => {
40			code.value = "";
41			showInput.value = false;
42		};
43		const onSubmit = () => {
44			if (codeAlreadyAdded.value) return;
45			emit("added", { code: code.value });
46			code.value = "";
47		};
48		const hide = () => {
49			onCancel();
50		};
51		__expose({ hide });
52		return (_ctx, _cache) => {
53			const _directive_focus = resolveDirective("focus");
54			return openBlock(), createElementBlock("form", { onSubmit: withModifiers(onSubmit, ["prevent"]) }, [createVNode(Transition, {
55				mode: "out-in",
56				name: "fade"
57			}, {
58				default: withCtx(() => [showInput.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
59					withDirectives(createVNode(BaseInput_default, {
60						modelValue: code.value,
61						"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => code.value = $event),
62						placeholder: _ctx.$t("cart.promo_code_placeholder"),
63						autocomplete: "off",
64						"data-test": "input",
65						name: "promo-code"
66					}, null, 8, ["modelValue", "placeholder"]), [[_directive_focus]]),
67					createVNode(Transition, { name: "slide-fade" }, {
68						default: withCtx(() => [codeAlreadyAdded.value ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(_ctx.$t("cart.duplicate_promo")), 1)) : createCommentVNode("", true)]),
69						_: 1
70					}),
71					createBaseVNode("div", null, [createVNode(SecondaryButton_default, { type: "submit" }, {
72						default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("cart.apply")), 1)]),
73						_: 1
74					}), createVNode(ButtonLink_default, {
75						"data-test": "cancel",
76						onClick: onCancel
77					}, {
78						default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("cart.cancel")), 1)]),
79						_: 1
80					})])
81				])) : (openBlock(), createElementBlock("div", _hoisted_3, [createVNode(ButtonLink_default, {
82					disabled: codeAlreadyAdded.value,
83					class: "btn-link-secondary",
84					"data-test": "add",
85					onClick: onShow
86				}, {
87					default: withCtx(() => [createVNode(PlusIcon_default, { class: "icon red" }), createBaseVNode("span", null, toDisplayString(_ctx.$t("cart.add_promo_code")), 1)]),
88					_: 1
89				}, 8, ["disabled"])]))]),
90				_: 1
91			})], 32);
92		};
93	}
94});
95//#endregion
96//#region resources/js/Pages/Consumer/components/cart/AddPromoCode.vue
97var AddPromoCode_exports = /* @__PURE__ */ __exportAll({ default: () => AddPromoCode_default });
98var AddPromoCode_default = /*#__PURE__*/ _plugin_vue_export_helper_default(AddPromoCode_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2f21c3ac"]]);
99//#endregion
100export { AddPromoCode_exports as n, AddPromoCode_default as t };

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.