{ "version": 3, "sources": ["../../../../../Packages/Carbon/Carbon.FileLoader/Resources/Private/Assets/EventListener.ts", "../../Private/Fusion/Main.js"], "sourcesContent": ["function eventListener(name: string, callback: Function, once = true) {\n if (typeof name !== 'string' || typeof callback !== 'function') {\n throw new Error('eventListener: name must be a string and callback must be a function');\n }\n document.addEventListener(name, (event) => callback(event), { once });\n}\n\nexport { eventListener as default, eventListener };\n", "import eventListener from \"Packages/Carbon/Carbon.FileLoader/Resources/Private/Assets/EventListener\";\n\nfunction setIframeTargetForForm(form, target) {\n form.target = target;\n const iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"name\", target);\n iframe.className = \"hidden\";\n document.body.appendChild(iframe);\n}\n\neventListener(\"alpine:init\", () => {\n Alpine.data(\"mauticForm\", ({ form, defaults }) => ({\n currentStep: 1,\n validationErrors: {},\n successMessage: null,\n errorMessage: null,\n sending: false,\n target: null,\n name: form.name,\n condition({ name, conditions }) {\n const value = this[\"__\" + name];\n\n // No value set, so hide everything\n if (!value.length) {\n return false;\n }\n\n if (conditions.any) {\n return true;\n }\n\n if (conditions.expr === \"in\") {\n return conditions.values.some((item) => {\n if (item == value) {\n return true;\n }\n if (Array.isArray(value) && value.includes(item)) {\n return true;\n }\n });\n }\n\n return conditions.values.some((item) => {\n if (item != value) {\n return true;\n }\n if (Array.isArray(value) && !value.includes(item)) {\n return true;\n }\n });\n },\n field: (validation) => ({\n \":name\"() {\n const element = this.$el;\n const name = element.getAttribute(\"x-model\").substring(2);\n const type = element.type;\n const array = element.getAttribute(\"multiple\") != null || type == \"checkbox\" || type == \"radio\";\n return `mauticform[${name}]${array ? \"[]\" : \"\"}`;\n },\n \"x-on:invalid\"() {\n const element = this.$el;\n const name = this.$el.getAttribute(\"x-model\").substring(2);\n\n this.$nextTick(() => {\n const validationErrorFromMautic = this.validationErrors[name];\n if (validationErrorFromMautic) {\n element.setCustomValidity(validationErrorFromMautic);\n return;\n }\n if (element.required && validation) {\n element.setCustomValidity(validation);\n }\n });\n },\n \"x-on:input\"() {\n const element = this.$el;\n element.setCustomValidity(\"\");\n element.reportValidity();\n },\n }),\n prevStep() {\n this.currentStep--;\n },\n nextStep() {\n const fieldset = this.$el.closest(\"fieldset\");\n if (!fieldset) {\n return;\n }\n const valid = [...fieldset.querySelectorAll(\"input, select, textarea\")].every((element) =>\n element.reportValidity(),\n );\n if (valid) {\n this.currentStep++;\n }\n },\n init() {\n // Set variables for x-model\n defaults.forEach(([name, value]) => {\n this[\"__\" + name] = value;\n });\n\n // Set id for target\n this.target = this.$id(\"form-target\");\n setIframeTargetForForm(this.$root, this.target);\n\n window.addEventListener(\"message\", (event) => {\n if (event.origin !== form.origin) {\n return;\n }\n const data = JSON.parse(event.data);\n this.errorMessage = data.errorMessage || null;\n if (data.formName !== form.name) {\n return;\n }\n this.sending = false;\n this.errors = {};\n\n if (!data.success) {\n // normalize validationErrors\n for (const key in data.validationErrors) {\n let value = data.validationErrors[key];\n if (typeof value !== \"string\") {\n value = value.join(\" \");\n }\n value = value.replaceAll(\""\", '\"');\n data.validationErrors[key] = value;\n // Report error to the elements\n [...this.$root.querySelectorAll(`[x-model=\"__${key}\"]`)].forEach((element) => {\n element.setCustomValidity(value);\n element.reportValidity();\n });\n }\n this.validationErrors = data.validationErrors;\n\n return;\n }\n if (data.redirect) {\n window.location = data.redirect;\n return;\n }\n\n this.successMessage = form.showMessage ? data.successMessage : null;\n });\n },\n }));\n});\n"], "mappings": "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", "names": ["eventListener", "name", "callback", "once", "event", "setIframeTargetForForm", "form", "target", "iframe", "eventListener", "defaults", "name", "conditions", "value", "item", "validation", "element", "type", "array", "validationErrorFromMautic", "fieldset", "event", "data", "key"] }