PageSourceSearch

https://zinkbakken.dk/theme/89fec0e0143898505c6fffd88afa0419/js/st…/storefront.basic-captcha.plugin.a7405a.js

js zinkbakken.dk collected 2026-09-26 07:48:40 UTC 8,764 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[45023],{7937:(e,t,s)=>{s.d(t,{Z:()=>n});var i=s(3266),r=s(4049);let a=Object.freeze(new class{replaceFromMarkup(e,t){let s=!(arguments.length>2)||void 0===arguments[2]||arguments[2],i=e;"string"==typeof i&&(i=this._createMarkupFromString(i)),"string"==typeof t&&(t=[t]),this._replaceSelectors(i,t,s)}replaceElement(e,t){let s=!(arguments.length>2)||void 0===arguments[2]||arguments[2];return("string"==typeof e&&(e=r.Z.querySelectorAll(document,e,s)),"string"==typeof t&&(t=r.Z.querySelectorAll(document,t,s)),e instanceof NodeList&&t instanceof NodeList&&t.length>e.length)?(i.Z.iterate(t,t=>{i.Z.iterate(e,e=>{e.innerHTML&&e.className===t.className&&(t.innerHTML=e.innerHTML)})}),!0):e instanceof NodeList?(i.Z.iterate(e,(e,s)=>{e.innerHTML&&(t[s].innerHTML=e.innerHTML)}),!0):t instanceof NodeList?(i.Z.iterate(t,t=>{e.innerHTML&&(t.innerHTML=e.innerHTML)}),!0):!!t&&!!e&&!!e.innerHTML&&(t.innerHTML=e.innerHTML,!0)}_replaceSelectors(e,t,s){i.Z.iterate(t,t=>{let i=r.Z.querySelectorAll(e,t,s),a=r.Z.querySelectorAll(document,t,s);this.replaceElement(i,a,s)})}_createMarkupFromString(e){return this._domParser.parseFromString(e,"text/html")}constructor(){this._domParser=new DOMParser}});class n{static replaceFromMarkup(e,t,s){a.replaceFromMarkup(e,t,s)}static replaceElement(e,t,s){return a.replaceElement(e,t,s)}}},6495:(e,t,s)=>{s.r(t),s.d(t,{default:()=>o});var i=s(9568),r=s(3107),a=s(7937),n=s(3327);class o extends i.Z{init(){this._getForm(),this._form&&(window.Feature.isActive("ACCESSIBILITY_TWEAKS")&&(window.formValidation.addErrorMessage("basicCaptcha",this.options.invalidFeedbackMessage),this._setBasicCaptchaHandleSubmit()),window.Feature.isActive("ACCESSIBILITY_TWEAKS")||(this._formSubmitting=!1),this.formPluginInstances=window.PluginManager.getPluginInstancesFromElement(this._form),this._httpClient=new r.Z,this._onLoadBasicCaptcha(),this._registerEvents(),window.Feature.isActive("ACCESSIBILITY_TWEAKS")||(this.formValidating=!1))}_registerEvents(){this.el.querySelector(this.options.captchaRefreshIconId).addEventListener("click",this._onLoadBasicCaptcha.bind(this)),window.Feature.isActive("ACCESSIBILITY_TWEAKS")&&this._form.addEventListener("submit",this.validateCaptcha.bind(this)),window.Feature.isActive("ACCESSIBILITY_TWEAKS")||this.formPluginInstances.forEach(e=>{e.$emitter.subscribe("onFormResponse",e=>this.onHandleResponse(e.detail)),this.options.preCheck&&e.$emitter.subscribe("beforeSubmit",this._onValidate.bind(this))})}_onLoadBasicCaptcha(){let e=this.el.querySelector(this.options.captchaImageId);n.Z.create(e);let t="".concat(this.options.router,"?formId=").concat(this.options.formId);this._httpClient.get(t,t=>{this.formValidating=!1;let s=new DOMParser().parseFromString(t,"text/html");a.Z.replaceElement(s.querySelector(this.options.captchaImageId),e,!0),n.Z.remove(e)})}async validateCaptcha(e){e.preventDefault();let t=this.el.querySelector(this.options.basicCaptchaInputId).value,s=JSON.stringify({formId:this.options.formId,shopware_basic_captcha_confirm:t}),i=await fetch(this.options.preCheckRoute.path,{method:"POST",body:s,headers:{"Content-Type":"application/json"}}),r=!!(await i.json()).session,a=this._form.checkValidity();if(!r){let e=this.el.querySelector(this.options.basicCaptchaInputId);window.formValidation.setFieldInvalid(e,["basicCaptcha"]),this._onLoadBasicCaptcha(),this._form.dispatchEvent(new CustomEvent("removeLoader"))}r&&a&&(this._isCmsForm()?this.formPluginInstances.get("FormCmsHandler")._submitForm():this._form.submit())}_isCmsForm(){return this.formPluginInstances.has("FormCmsHandler")}_setBasicCaptchaHandleSubmit(){window.PluginManager.getPluginInstancesFromElement(this._form).forEach(e=>{"function"==typeof e.sendAjaxFormSubmit&&(e.formSubmittedByCaptcha=!0)})}_onValidate(){if(this.formValidating)return;this.formValidating=!0;let e=JSON.stringify({formId:this.options.formId,shopware_basic_captcha_confirm:this.el.querySelector(this.options.basicCaptchaInputId).value});this._httpClient.post(this.options.preCheckRoute.path,e,e=>{this.formValidating=!1;let t=JSON.parse(e);if(t.session){this.onFormSubmit(t.session);return}this.onHandleResponse(e)})}_getForm(){this.el&&"FORM"===this.el.nodeName?this._form=this.el:this._form=this.el.closest("form")}onFormSubmit(e){let t="#".concat(this.options.formId,"-precheck");if(this.el.querySelector(t).value="allowed",this.el.querySelector(this.options.basicCaptchaInputId).value=e,!this._form.checkValidity()){this.el.querySelector(t).value="";return}this._form.submit()}onHandleResponse(e){if(this.formValidating)return;this.formValidating=!0;let t=JSON.parse(e)[0];if("invalid_captcha"!==t.error)return;let s=this.el.querySelector(this.options.basicCaptchaFieldId);n.Z.create(s);let i=new DOMParser().parseFromString(t.input,"text/html");a.Z.replaceElement(i.querySelector(this.options.basicCaptchaFieldId),s),n.Z.remove(s),this._onLoadBasicCaptcha()}}o.options={router:"",captchaRefreshIconId:"#basic-captcha-content-refresh-icon",captchaImageId:"#basic-captcha-content-image",basicCaptchaInputId:"#basic-captcha-input",basicCaptchaFieldId:"#basic-captcha-field",invali
1dFeedbackMessage:"Incorrect input. Please try again.",formId:"",preCheck:!1,preCheckId:"#precheck",preCheckRoute:{}}},3107:(e,t,s)=>{s.d(t,{Z:()=>i});class i{get(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",e,s);return this._sendRequest(i,null,t)}post(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("POST",e,i);return this._sendRequest(r,t,s)}delete(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("DELETE",e,i);return this._sendRequest(r,t,s)}patch(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("PATCH",e,i);return this._sendRequest(r,t,s)}abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(e){this._errorHandlingInternal=e}_registerOnLoaded(e,t){t&&(!0===this._errorHandlingInternal?(e.addEventListener("load",()=>{t(e.responseText,e)}),e.addEventListener("abort",()=>{console.warn("the request to ".concat(e.responseURL," was aborted"))}),e.addEventListener("error",()=>{console.warn("the request to ".concat(e.responseURL," failed with status ").concat(e.status))}),e.addEventListener("timeout",()=>{console.warn("the request to ".concat(e.responseURL," timed out"))})):e.addEventListener("loadend",()=>{t(e.responseText,e)}))}_sendRequest(e,t,s){return this._registerOnLoaded(e,s),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,s){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),s&&this._request.setRequestHeader("Content-type",s),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}},3327:(e,t,s)=>{s.d(t,{Z:()=>a});var i=s(2363);let r="element-loader-backdrop";class a extends i.Z{static create(e){e.classList.add("has-element-loader"),a.exists(e)||(a.appendLoader(e),setTimeout(()=>{let t=e.querySelector(".".concat(r));t&&t.classList.add("element-loader-backdrop-open")},1))}static remove(e){e.classList.remove("has-element-loader");let t=e.querySelector(".".concat(r));t&&t.remove()}static exists(e){return e.querySelectorAll(".".concat(r)).length>0}static getTemplate(){return'\n        <div class="'.concat(r,'">\n            <div class="loader" role="status">\n                <span class="').concat("visually-hidden",'">Loading...</span>\n            </div>\n        </div>\n        ')}static appendLoader(e){e.insertAdjacentHTML("beforeend",a.getTemplate())}}},2363:(e,t,s)=>{s.d(t,{L:()=>a,Z:()=>n});var i=s(3266);let r="loader",a={BEFORE:"before",AFTER:"after",INNER:"inner"};class n{create(){if(!this.exists()){if(this.position===a.INNER){this.parent.innerHTML=n.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),n.getTemplate())}}remove(){let e=this.parent.querySelectorAll(".".concat(r));i.Z.iterate(e,e=>e.remove())}exists(){return this.parent.querySelectorAll(".".concat(r)).length>0}_getPosition(){return this.position===a.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return'<div class="'.concat(r,'" role="status">\n                    <span class="').concat("visually-hidden",'">Loading...</span>\n                </div>')}static SELECTOR_CLASS(){return r}constructor(e,t=a.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=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.