PageSourceSearch

https://www.grenke.de/webfiles/1789554250756/dist/chunks/integration.eloqua-form-with-layout.aa07bce9.js

js grenke.de collected 2026-10-02 18:59:58 UTC 17,188 bytes, 2 lines download raw bytes

1"use strict";(globalThis.webpackChunkModern=globalThis.webpackChunkModern||[]).push([[793],{4231(e,t,r){r.d(t,{EloquaFormWithLayoutIntegration:()=>P});var i=r(7674);function n(e){return e instanceof HTMLInputElement?"checkbox"===e.type||"radio"===e.type?e.checked?e.value:"":e.value:(HTMLSelectElement,e.value)}function s(e,t){const r=e.querySelector("form");return r?Array.from(r.querySelectorAll("[name]")).filter(a).filter(e=>e.name===t):[]}function l(e,t){return s(e,t).some(e=>""!==n(e).trim())}function a(e){return e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement}function o(e){const t=atob(e),r=Uint8Array.from(t,e=>e.charCodeAt(0));return(new TextDecoder).decode(r)}const c="form-field--dependency-hidden",u="form-field--group-invalid",d="form-field--dependency-required",h="form-field__dependency-message";class f{constructor(e){this.rules=[],this.hiddenByDefaultFields=new Set,this.boundHandlers=new Map,this.submitHandler=null,this.inputsByField=new Map,this.wrappersByField=new Map,this.disabledByDependency=new Set,this.initialRequiredState=new Map,this.element=e}init(){const e=function(e){const t=e.getAttribute("data-dependency-rules");if(!t)return null;try{const e=JSON.parse(o(t));return function(e){if("object"!=typeof e||null===e)return!1;const t=e;return 1===t.version&&Array.isArray(t.rules)&&(void 0===t.fieldConfigs||Array.isArray(t.fieldConfigs))}(e)?e:null}catch{return null}}(this.element);e&&(this.rules=e.rules??[],this.hiddenByDefaultFields=function(e){return new Set((e.fieldConfigs??[]).filter(e=>e.hiddenByDefault&&e.fieldHtmlName).map(e=>e.fieldHtmlName))}(e),this.applyInitialHiddenState(),0!==this.rules.length&&(this.attachListeners(),this.attachSubmitValidation(),this.evaluateAllRules()))}destroy(){for(const[e,t]of this.boundHandlers)e.removeEventListener("change",t),e.removeEventListener("input",t);if(this.boundHandlers.clear(),this.submitHandler){const e=this.element.querySelector("form");e&&e.removeEventListener("submit",this.submitHandler,!0),this.submitHandler=null}this.disabledByDependency.forEach(e=>{e.disabled=!1}
1),this.disabledByDependency.clear(),this.rules.forEach(e=>{e.targets.forEach(e=>{const t=this.fieldWrapper(e.field);t&&(t.classList.remove(c,u,d),this.hiddenByDefaultFields.has(e.field)&&t.classList.add(c)),this.setFieldRequired(e.field,!1),this.removeMessage(e.field)}),this.removeGroupMessage(e.id)}),this.initialRequiredState.clear(),this.inputsByField.clear(),this.wrappersByField.clear()}attachSubmitValidation(){const e=this.element.querySelector("form");e&&(this.submitHandler=e=>{this.evaluateAllRules();const t=this.element.querySelector(`.${u}`);t instanceof HTMLElement&&(e.preventDefault(),t.scrollIntoView?.({behavior:"smooth",block:"center"}))},e.addEventListener("submit",this.submitHandler,!0))}attachListeners(){const e=new Set,t=new Set;this.rules.forEach(r=>{r.triggers.forEach(t=>{t.field&&e.add(t.field)}),r.targets.forEach(e=>{e.field&&(e.required||"atLeastOne"===r.targetRequiredMode)&&t.add(e.field)})});const r=()=>this.evaluateAllRules();new Set([...e,...t]).forEach(e=>{this.fieldInputs(e).forEach(e=>{e.addEventListener("change",r),e instanceof HTMLInputElement&&("text"===e.type||"email"===e.type)&&e.addEventListener("input",r),this.boundHandlers.set(e,r)})})}applyInitialHiddenState(){this.hiddenByDefaultFields.forEach(e=>{this.setFieldVisibility(e,!1),this.setFieldRequired(e,!1)})}evaluateAllRules(){for(let e=0;e<50&&this.evaluateAllRulesOnce();e++)49===e&&console.warn("[EloquaFormDependencies] Max iterations reached — possible circular dependency")}evaluateAllRulesOnce(){const e=new Map,t=new Map;
1this.rules.forEach(t=>{t.targets.forEach(t=>{e.has(t.field)||e.set(t.field,{directPositive:!1,directNegative:!1,autoPositive:!1,autoNegative:!1,hiddenByDefault:this.hiddenByDefaultFields.has(t.field),required:!1,requiredMessage:""})})}),this.rules.forEach(r=>{if(!r.triggers.some(e=>""!==e.field.trim()))return void t.set(r.id,!1);const i=this.evaluateRule(r);t.set(r.id,i),r.targets.forEach(t=>{const n=e.get(t.field);i?(t.visible?n.directPositive=!0:n.directNegative=!0,"each"===r.targetRequiredMode&&t.required&&t.visible&&(n.required=!0,n.requiredMessage=t.requiredMessage||n.requiredMessage)):r.autoReverse&&(t.visible?n.autoNegative=!0:n.autoPositive=!0)})});let r=!1;const i=new Map;e.forEach((e,t)=>{const n=function(e){return!!e.directPositive||!e.directNegative&&(!!e.autoPositive||!e.autoNegative&&!e.hiddenByDefault)}(e),s=this.isFieldVisible(t);this.setFieldVisibility(t,n),i.set(t,n),s!==n&&(r=!0)});const n=this.resolveGroupRequiredFields(t,i);return e.forEach((e,t)=>{const r=(i.get(t)??!1)&&(e.required||n.has(t));this.setFieldRequired(t,r),r?(this.updateRequiredHighlight(t),e.required&&!l(this.element,t)&&e.requiredMessage?this.showMessage(t,e.requiredMessage):this.removeMessage(t)):(this.removeRequiredHighlight(t),this.removeMessage(t))}),r}evaluateRule(e){return function(e,t){if(0===e.triggers.length)return!1;const r=e.triggers.map(e=>t(e.field,e.condition));return"all"===e.triggerLogic?r.every(Boolean):r.some(Boolean)}(e,(e,t)=>this.evaluateCondition(e,t))}resolveGroupRequiredFields(e,t){const r=new Set,i=this.rules.filter(e=>"atLeastOne"===e.targetRequiredMode);return i.forEach(e=>this.clearGroupRequired(e)),i.forEach(i=>{const n=i.targets.filter(e=>e.visible&&!0===t.get(e.field)).map(e=>e.field);!0===e.get(i.id)&&n.length>0&&!n.some(e=>l(this.element,e))?(n.forEach(e=>{r.add(e),this.fieldWrapper(e)?.classList.add(u,d)}),i.atLeastOneMessage?this.showGroupMessage(i,n[0]):this.removeGroupMessage(i.id)):this.removeGroupMessage(i.id)}),r}clearGroupRequired(e){e.targets.forEach(e=>{const t=this.fieldWrapper(e.field);t&&t.classList.remove(u,d)})}evaluateCondition(e,t){if("visible"===t.type){const r=this.isFieldVisible(e);return"isNot"===t.modifier?!r:r}const r=this.fieldInputs(e);if(0===r.length)return!1;const i=function(e,t){switch(t.type){case"empty":return e.every(e=>""===n(e));case"checked":return e.some(e=>e instanceof HTMLInputElement&&("checkbox"===e.type||"radio"===e.type)&&e.checked);case"equalTo":return e.some(e=>n(e)===t.value);case"optionSelected":case"containing":return e.some(e=>e instanceof HTMLSelectElement&&e.multiple?Array.from(e.selectedOptions).some(e=>e.value===t.value):(e instanceof HTMLInputElement&&"checkbox"===e.type||e instanceof HTMLInputElement&&"radio"===e.type)&&e.checked&&e.value===t.value);default:return!1}}(r,t);return"isNot"===t.modifier?!i:i}isFieldVisible(e){const t=this.fieldWrapper(e);return!t||!t.classList.contains(c)}setFieldVisibility(e,t){const r=this.fieldWrapper(e);r&&(t?(r.classList.remove(c),this.fieldInputs(e).forEach(e=>{this.disabledByDependency.delete(e)&&(e.disabled=!1)})):(r.classList.add(c),function(e){e.querySelectorAll(".has-error").forEach(e=>e.classList.remove("has-error")),e.querySelectorAll(".msg-is-required.is-visible").forEach(e=>e.classList.remove("is-visible")),e.querySelectorAll(".msg-is-not-valid.is-visible").forEach(e=>e.classList.remove("is-visible"))}(r),this.fieldInputs(e).forEach(e=>{!function(e){e instanceof HTMLInputElement&&("checkbox"===e.type||"radio"===e.type)?e.checked=!1:e instanceof HTMLSelectElement&&e.multiple?Array.from(e.options).forEach(e=>{e.selected=!1}):e.value=""}(e),e.disabled||(e.disabled=!0,this.disabledByDependency.add(e))})))}setFieldRequired(e,t){this.fieldInputs(e).forEach(e=>{this.setElementRequired(e,t);const r=e.closest("fieldset");r&&this.setElementRequired(r,t)})}setElementRequired(e,t){this.initialRequiredState.has(e)||this.initialRequiredState.set(e,e.hasAttribute("required")),e.toggleAttribute("required",t||!0===this.initialRequiredState.get(e))}updateRequiredHighlight(e){const t=this.fieldWrapper(e);t&&(l(this.element,e)?t.classList.remove(d):t.classList.add(d))}removeRequiredHighlight(e){const t=this.fieldWrapper(e);t&&t.classList.remove(d)}showMessage(e,t){if(!t)return;const r=this.fieldWrapper(e);if(!r)return;let i=r.querySelector(`.${h}`);i||(i=document.createElement("div"),i.className=h,r.appendChild(i)),i.textContent=t}removeMessage(e){const t=this.fieldWrapper(e);if(!t)return;const r=t.querySelector(`.${h}`);r&&r.remove()}showGroupMessage(e,t){const r=this.fieldWrapper(t);if(!r)return;const i=`dep-group-msg-${e.id}`,n=document.getElementById(i);let s=n instanceof HTMLElement&&this.element.contains(n)?n:null;s||(s=document.createElement("div"),s.id=i,s.className=`${h} ${h}--group`,r.parentElement?.insertBefore(s,r)),s.textContent=e.atLeastOneMessage}removeGroupMessage(e){const t=`dep-group-msg-${e}`,r=document.getElementById(t);r&&this.element.contains(r)&&r.remove()}fieldInputs(e){const t=this.inputsByField.get(e);if(t)return t;const r=s(this.element,e);return this.inputsByField.set(e,r),r}fieldWrapper(e){if(this.wrappersByField.has(e))return this.wrappersByField.get(e)??null;const t=function(e,t){const r=s(e,t);if(0===r.length)return null;
1const i=r[0],n=i.closest("[data-field-wrapper]");if(n instanceof HTMLElement)return n;const l=i.closest(".form-field");if(l)return l.parentElement;const a=i.closest("fieldset");return a?a.parentElement:i.parentElement}(this.element,e);return this.wrappersByField.set(e,t),t}}const p=(0,i.h)({prefix:"EloquaFormWithLayout [Prefill]"}),m="prefill";function g(e){const t=function(){const e=new URLSearchParams(window.location.hash.replace(/^#/,"")).get(m);if(null!==e)return{encoded:e,source:"fragment"};const t=new URLSearchParams(window.location.search).get(m);return null===t?null:{encoded:t,source:"query"}}();if(!t)return void p.debug("No prefill data found");!function(e){const t=new URL(window.location.href);if(t.searchParams.delete(m),"fragment"===e){const e=new URLSearchParams(t.hash.replace(/^#/,""));e.delete(m),t.hash=e.toString()?`#${e.toString()}`:""}window.history.replaceState(window.history.state,"",`${t.pathname}${t.search}${t.hash}`)}(t.source);const r=function(e){if(e.length>32e3)return null;try{const t=o(e);if(t.length>24e3)return null;const r=JSON.parse(t);return function(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;const t=Object.entries(e);return t.length<=100&&t.every(([e,t])=>e.length<=256&&function(e){return"boolean"==typeof e||("string"==typeof e?e.length<=4e3:Array.isArray(e)&&e.length<=100&&e.every(e=>"string"==typeof e&&e.length<=4e3))}(t))}(r)?r:null}catch{return null}}(t.encoded);if(!r)return void p.warn("Failed to decode prefill data");const i=Object.keys(r);if(p.info(`Prefill data received for ${i.length} field(s)`),!e.querySelector("form"))return void p.warn("No form element found in container");const n=[];for(const[t,i]of Object.entries(r)){const r=s(e,t);0!==r.length?v(r,i)?n.push(...r):p.warn("A prefill value did not match the target field type or available options"):p.warn("A prefill field was not found in the form")}n.forEach(y),p.info(`Prefill complete: ${n.length} input(s) modified`)}function v(e,t){const r=e[0];return r instanceof HTMLSelectElement?function(e,t){return e.multiple&&Array.isArray(t)?(Array.from(e.options).forEach(e=>{e.selected=t.includes(e.value)}),!0):"string"==typeof t&&(e.value=t,e.value===t)}(r,t):r instanceof HTMLInputElement&&"checkbox"===r.type?function(e,t){if(1===e.length&&"boolean"==typeof t)return e[0].checked=t,!0;const r=Array.isArray(t)?t:"string"==typeof t?[t]:null;return!!r&&(e.forEach(e=>{e.checked=r.includes(e.value)}),!0)}(e,t):r instanceof HTMLInputElement&&"radio"===r.type?function(e,t){if("string"!=typeof t)return!1;const r=e.find(e=>e.value===t);return!!r&&(r.checked=!0,!0)}(e,t):"string"==typeof t&&(r.value=t,!0)}function y(e){e.dispatchEvent(new Event("change",{bubbles:!0})),e instanceof HTMLInputElement&&("text"===e.type||"email"===e.type)&&e.dispatchEvent(new Event("input",{bubbles:!0}))}var b=r(7041);const E=new Map;const q='input:not([type="checkbox"]):not([type="radio"]), select, textarea';function L(e){return e instanceof HTMLInputElement&&"checkbox"!==e.type&&"radio"!==e.type||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?e:null}function A(e){return e.hasAttribute("required")||e.hasAttribute("pattern")||e.hasAttribute("data-validation-pattern")||e.hasAttribute("data-validation-email")||e.hasAttribute("data-validation-prevent-url")||e.hasAttribute("data-validation-prevent-xss")}function w(e){return!!e.closest(".form-field--dependency-hidden")}function S(e){return e.closest(".form-field--input, .form-field--select, .form-field--radio, .form-field--checkbox, .form-field--textarea")}const M=/^[^@\s]+@[^@\s]+\.[^@\s]+$/,H=/(?:https?:\/\/|www\.)\S+/i,R=/<[^>]+>/;function x(e){const t=e.value;if(!t)return[];const r=[];e.hasAttribute("data-validation-email")&&!M.test(t)&&r.push("email"),e.hasAttribute("minlength")&&e.value.length<parseInt(e.getAttribute("minlength")||"0",10)&&r.push("minLength"),e.hasAttribute("maxlength")&&e.value.length>parseInt(e.getAttribute("maxlength")||"0",10)&&r.push("maxLength"),e.hasAttribute("data-validation-prevent-url")&&H.test(t)&&r.push("preventUrl"),e.hasAttribute("data-validation-prevent-xss")&&R.test(t)&&r.push("preventXss");const i=e.getAttribute("data-validation-pattern");if(i)try{(function(e,t){return!(e.length>1e4||t.length>1e4)&&(function(e){const t=function(e){let t="";for(let r=0;r<e.length;r+=1)"\\"===e[r]&&"_"===e[r+1]?(t+="_",r+=1):"\\"===e[r]&&r+1<e.length?(t+=e[r]+e[r+1],r+=1):t
1+=e[r];return t}(e),r=E.get(t);if(void 0!==r||E.has(t))return E.delete(t),E.set(t,r??null),r??null;let i=null;try{i=b.L3.compile(t)}catch{i=null}if(E.set(t,i),E.size>100){const e=E.keys().next().value;"string"==typeof e&&E.delete(e)}return i}(e)?.matches(t)??!1)})(o(i),t)||r.push("pattern")}catch{r.push("pattern")}return r}const F={email:".msg-email-error",minLength:".msg-min-length-error",maxLength:".msg-max-length-error",preventUrl:".msg-prevent-url-error",preventXss:".msg-prevent-xss-error",pattern:".msg-cms-error"};function k(e){const t=S(e);if(!t)return!1;if(w(e))return!1;const r=function(e){return"SELECT"===e.tagName?!e.value:""===e.value.trim()}(e),i=r?[]:x(e),n=e.hasAttribute("required")&&r||i.length>0;t.classList.toggle("has-error",n);const s=t.querySelector(".msg-is-required");s&&s.classList.toggle("is-visible",e.hasAttribute("required")&&r);const l=new Set(i);return Object.entries(F).forEach(([e,r])=>{const i=t.querySelector(r);i&&i.classList.toggle("is-visible",l.has(e))}),n}function T(e){if(w(e))return!1;const t=e.querySelectorAll('input[type="checkbox"], input[type="radio"]'),r=Array.from(t).some(e=>e.checked),i=e.querySelector(".msg-is-required");return i&&i.classList.toggle("is-visible",!r),t.forEach(e=>{const t=e.closest(".custom-checkbox-wrapper, .custom-radio-wrapper");t&&t.classList.toggle("has-error",!r)}),!r}function I(e){const t=S(e);if(!t)return;t.classList.remove("has-error");const r=t.querySelector(".msg-is-required");r&&r.classList.remove("is-visible"),t.querySelectorAll(".msg-is-not-valid").forEach(e=>e.classList.remove("is-visible"))}function B(e){e.querySelector(".msg-is-required")?.classList.remove("is-visible"),e.querySelectorAll(".custom-checkbox-wrapper, .custom-radio-wrapper").forEach(e=>e.classList.remove("has-error"))}function D(e){const t=e.querySelector("form");if(!t)return()=>{};const r=e=>{const t=L(e.target);t&&A(t)&&k(t)},i=e=>{const t=L(e.target);t&&I(t)},n=e=>{if(!(e.target instanceof HTMLInputElement))return;if("checkbox"!==e.target.type&&"radio"!==e.target.type)return;const t=e.target.closest("fieldset[required]");t&&T(t)},s=e=>{let r=null;t.querySelectorAll(q).forEach(e=>{A(e)&&k(e)&&!r&&(r=S(e))}),t.querySelectorAll("fieldset[required]").forEach(e=>{T(e)&&!r&&(r=e)}),null!==r&&(e.preventDefault(),r.scrollIntoView?.({behavior:"smooth",block:"center"}))};return t.addEventListener("focusout",r),t.addEventListener("focusin",i),t.addEventListener("change",n),t.addEventListener("submit",s),()=>{t.removeEventListener("focusout",r),t.removeEventListener("focusin",i),t.removeEventListener("change",n),t.removeEventListener("submit",s),t.querySelectorAll(q).forEach(I),t.querySelectorAll("fieldset[required]").forEach(B)}}const N=(0,i.h)({prefix:"EloquaFormWithLayout"}),W=".container.eloqua-form-with-layout",$="data-eloqua-form-initialized",C=new WeakMap;function O(e,t){try{t.dependencies?.destroy()}finally{try{t.destroyValidation()}finally{C.delete(e),e.removeAttribute($)}}}class P{static async initAll(e=document){const t=new Set,r=[];e instanceof Element&&e.matches(W)&&t.add(e),e.querySelectorAll(W).forEach(e=>t.add(e));for(const e of t){if(C.has(e)){e.setAttribute($,""),r.push(e);continue}e.removeAttribute($);let t=()=>{},i=null;try{t=D(e),e.hasAttribute("data-dependency-rules")&&(i=new f(e),i.init()),g(e),C.set(e,{destroyValidation:t,dependencies:i}),e.setAttribute($,""),r.push(e)}catch(r){try{O(e,{destroyValidation:t,dependencies:i})}catch(e){N.error("Failed to roll back form initialization:",e)}throw r}}return r.length>0&&N.info(`Initialized ${r.length} form(s)`),r}static destroyWithin(e){const t=new Set;e.matches(W)&&t.add(e),e.querySelectorAll(W).forEach(e=>t.add(e));for(const e of t){if(e.isConnected)continue;const t=C.get(e);t?O(e,t):e.removeAttribute($)}}static has(e){return C.has(e)}}}}]);
2//# sourceMappingURL=integration.eloqua-form-with-layout.aa07bce9.js.map

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.