PageSourceSearch

https://www.diabetiker-bedarf.de/theme/1c91399e787c46b1a7c55b04d5c…mized-products-file-upload.plugin.403d47.js

js diabetiker-bedarf.de collected 2026-09-24 10:16:38 UTC 20,534 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[21874],{857:e=>{var t=function(e){var t;return!!e&&"object"==typeof e&&"[object RegExp]"!==(t=Object.prototype.toString.call(e))&&"[object Date]"!==t&&e.$$typeof!==r},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a(Array.isArray(e)?[]:{},e,t):e}function s(e,t,r){return e.concat(t).map(function(e){return i(e,r)})}function o(e){return Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[])}function n(e,t){try{return t in e}catch(e){return!1}}function a(e,r,l){(l=l||{}).arrayMerge=l.arrayMerge||s,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=i;var u,d,c=Array.isArray(r);return c!==Array.isArray(e)?i(r,l):c?l.arrayMerge(e,r,l):(d={},(u=l).isMergeableObject(e)&&o(e).forEach(function(t){d[t]=i(e[t],u)}),o(r).forEach(function(t){(!n(e,t)||Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))&&(n(e,t)&&u.isMergeableObject(r[t])?d[t]=(function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a})(t,u)(e[t],r[t],u):d[t]=i(r[t],u))}),d)}a.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,r){return a(e,r,t)},{})},e.exports=a},446:(e,t,r)=>{r.d(t,{Z:()=>n,y:()=>o});var i=r(293),s=r(49);let o=e=>{if("function"==typeof Event)return new Event(e);let t=document.createEvent("Event");return t.initEvent(e,!0,!0),t};class n extends i.Z{_init(){this._context={customProductsForm:s.Z.querySelector(document,this.options.selectors.customProductsForm),buyForm:s.Z.querySelector(document,this.options.selectors.buyForm),buyWidget:s.Z.querySelector(document,this.options.selectors.buyWidget),buyButton:s.Z.querySelector(document,this.options.selectors.buyButton),subscription:{buyForm:s.Z.querySelector(document,this.options.selectors.subscription.buyForm,!1),buyWidget:s.Z.querySelector(document,this.options.selectors.subscription.buyWidget,!1),buyButton:s.Z.querySelector(document,this.options.selectors.subscription.buyButton,!1),oneTimeRadio:s.Z.querySelector(document,this.options.selectors.subscription.oneTimeRadio,!1)}},this._wrapAddEventListener(this._context.buyForm,this._context.subscription.buyForm),this._wrapAddEventListener(this._context.buyButton,this._context.subscription.buyButton),super._init()}get buyForm(){return n._isSubscription?this._context.subscription.buyForm:this._context.buyForm}get buyButton(){return n._isSubscription?this._context.subscription.buyButton:this._context.buyButton}get buyWidget(){return n._isSubscription?this._context.subscription.buyWidget:this._context.buyWidget}get customProductsForm(){return this._context.customProductsForm}_wrapAddEventListener(e,t){let r=this._contextSwitchingEventListener.bind(this,e,t);e&&(e.addEventListener=r),t&&(t.addEventListener=r)}_contextSwitchingEventListener(e,t,r,i){for(var s=arguments.length,o=Array(s>4?s-4:0),a=4;a<s;a++)o[a-4]=arguments[a];EventTarget.prototype.addEventListener.apply(e,[r,function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];n._isSubscription||i(...t)},...o]),t&&EventTarget.prototype.addEventListener.apply(t,[r,function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];n._isSubscription&&i(...t)},...o])}}n.options={selectors:{customProductsForm:"form .swag-customized-products",buyForm:"#productDetailPageBuyProductForm",buyWidget:"#productDetailPageBuyProductForm.buy-widget",buyButton:"#productDetailPageBuyProductForm .btn-buy",subscription:{buyForm:"#productDetailPageSubscriptionBuyProductForm",buyWidget:"#productDetailPageSubscriptionBuyProductForm .buy-widget",buyButton:"#productDetailPageSubscriptionBuyProductForm .btn-buy",oneTimeRadio:"#subscription-interval-option-one-time-buy"}}},n._isSubscription=!1},874:(e,t,r)=>{r.r(t),r.d(t,{SWAG_CUSTOMIZED_PRODUCTS_FILE_UPLOAD:()=>l,default:()=>u});var i=r(446),s=r(107),o=r(49);function n(e,t,r){return(n="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,r){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=a(e)););return e}(e,t);if(i){var s=Object.getOwnPropertyDescriptor(i,t);return s.get?s.get.call(r||e):s.value}})(e,t,r||e)}
1function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}let l={EVENT:{UPLOAD_FINISHED:"SwagCustomizedProductsFileUploadFinished",UPLOAD_FAILED:"SwagCustomizedProductsFileUploadFailed",UPLOAD_REMOVED:"SwagCustomizedProductsFileUploadRemoved"}};class u extends i.Z{init(){this.fileUpload=this.el,!1!==this._prepareUploadedFilesList()&&(this.stepByStepElement=o.Z.querySelector(this.buyForm,'*[data-swag-customized-product-step-by-step="true"]',!1),this.dropzone=o.Z.querySelector(this.fileUpload,this.options.selectors.dropzonePrefix+this.options.optionId),this.input=o.Z.querySelector(this.dropzone,this.options.selectors.inputPrefix+this.options.optionId),this.browseButton=o.Z.querySelector(this.dropzone,this.options.selectors.browseButtonPrefix+this.options.optionId),this.iconSuccess=o.Z.querySelector(this.fileUpload,this.options.selectors.iconSuccess).innerHTML,this.iconError=o.Z.querySelector(this.fileUpload,this.options.selectors.iconError).innerHTML,this.httpClient=new s.Z,this.registry=new Map,this._registerEventListeners())}_prepareUploadedFilesList(){this.uploadedFilesList=o.Z.querySelector(this.fileUpload,this.options.selectors.uploadedFilesList);let e=o.Z.querySelector(this.uploadedFilesList,this.options.selectors.fileTemplate);return this.fileTemplate=e.cloneNode(!0),this.uploadedFilesList.hasChildNodes()&&this.uploadedFilesList.removeChild(e),null!==this.fileTemplate}_registerEventListeners(){this.input.addEventListener("change",this._onFileInputChanged.bind(this)),this.browseButton.addEventListener("keypress",this._onBrowse.bind(this)),this.browseButton.addEventListener("click",this._onBrowse.bind(this)),this.dropzone.addEventListener("drop",this._onDropOnDropzone.bind(this)),document.addEventListener("dragenter",this._onDragEnter.bind(this),!1),document.addEventListener("dragleave",this._onDragLeave.bind(this),!1),document.addEventListener("dragover",this._onDragOver,!1),document.addEventListener("drop",this._onDropOnDocument.bind(this),!1)}_onDragEnter(e){e.preventDefault();let t=e.target,r=this.options.selectors.dropzoneIdPrefix+this.options.optionId;return!!t.closest(r)&&(this.dropzone.classList.add(this.options.classes.dragover),this.browseButton.setAttribute("disabled","disabled"),!0)}_onDragLeave(e){let t=e.target,r=this.options.selectors.dropzoneIdPrefix+this.options.optionId;return!t.closest(r)&&(this.dropzone.classList.remove("dragover"),this.browseButton.removeAttribute("disabled"),!0)}_onDragOver(e){e.preventDefault()}_onDropOnDocument(e){e.preventDefault(),this.dropzone.classList.remove(this.options.classes.dragover),this.browseButton.removeAttribute("disabled")}_onBrowse(e){e.preventDefault(),(e.pointerType||"Enter"===e.key)&&this.input.click()}_onDropOnDropzone(e){this._onFilesAdded(e.dataTransfer.files)}_onFileInputChanged(e){this._onFilesAdded(e.target.files)}_onFilesAdded(e){Array.from(e).forEach(this._handleFileUpload.bind(this)),this.input.value=""}_handleFileUpload(e){if(this.registry.has(e.name))return!1;if(this.registry.set(e.name,{file:e,element:this._appendNewFileElement(e.name),valid:!1,uploaded:!1}),this.registry.size>this.options.maxCount)return this._onUploadError(e.name,"422"),!1;let t=new FileReader;return t.addEventListener("error",this._onUploadError.bind(this)),t.addEventListener("load",this._sendUploadRequest.bind(this,e)),t.readAsArrayBuffer(e),!0}_appendNewFileElement(e){let t=document.createElement("div");return t.setAttribute("class",this.fileTemplate.getAttribute("class")),t.innerHTML=this.fileTemplate.innerHTML,o.Z.querySelector(t,this.options.selectors.filename).innerHTML=e,this.uploadedFilesList.appendChild(t),t}_sendUploadRequest(e){let t=new FormData;t.append("file",e),t.append("optionId",this.options.optionId),this.httpClient.post(this.options.endpoint,t,this._uploadRequestCallback.bind(this,e.name),"multipart/form-data",!0)}_uploadRequestCallback(e,t,r){let i={};try{i=JSON.parse(t)}catch(t){return this._onUploadError(e,r.status.toString()),!1}return void 0!==i.errors?this._onUploadError(e,r.status.toString()):this._onUploadSuccess(e,i),this.updateBuyButton(),!0}_onUploadSuccess(e,t){let r=this.registry.get(e);if(!r)return;let i=o.Z.querySelector(r.element,this.options.selectors.iconElement);this.resetUploadElement(e),r.valid=!0,r.uploaded=!0,r.element.classList.add(this.options.classes.success),i.innerHTML=this.iconSuccess;let s=this._createMediaIdInput(e,t.mediaId),n=this._createFileNameInput(e);this.input.appendChild(s),this.input.appendChild(n),Array.from(this.registry.values()).map(e=>e.file).forEach(this._handleFileUpload.bind(this)),this.updatePriceDisplay(),o.Z.querySelector(r.element,this.options.selectors.closeButton).addEventListener("click",this._onRemoveValidElement.bind(this,r,s,n)),this.$emitter.publish(l.EVENT.UPLOAD_FINISHED)}resetUploadElement(e){if(!this.registry.has(e))return!1;let t=this.registry.get(e);return t.valid=!1,o.Z.querySelector(t.element,this.options.selectors.errorText).innerHTML="",t.element.classList.remove(this.options.classes.success),t.element.classList.remove(this.options.classes.error),!0}_onUploadError(e,t){let r=this.registry.get(e);if(!r)return;r.valid=!1,r.uploaded=!1;let i=o.Z.querySelector(r.element,this.options.selectors.iconElement);r.element.classList.add(this.options.classes.error),i.innerHTML=this.iconError,o.Z.querySelector(r.element,this.options.selectors.errorText).innerHTML=this.getSnippetByErrorC
1ode(t),o.Z.querySelector(r.element,this.options.selectors.closeButton).addEventListener("click",this._onRemoveInvalidElement.bind(this,r)),this.$emitter.publish(l.EVENT.UPLOAD_FAILED)}_onRemoveValidElement(e,t,r,i){this._removeElement(e,i),t.remove(),r.remove(),this.updatePriceDisplay(),this.updateBuyButton(),this.triggerExclusionValidation(),this.$emitter.publish(l.EVENT.UPLOAD_REMOVED)}_onRemoveInvalidElement(e,t){this._removeElement(e,t),this.triggerExclusionValidation()}updateBuyButton(){let e=o.Z.querySelector(this.buyForm,this.options.selectors.customizedProductContainer,!1);e&&window.PluginManager.getPluginInstanceFromElement(e,"SwagCustomizedProductsFormValidator").onFormChange()}_removeElement(e,t){if(t.preventDefault(),this.uploadedFilesList.contains(e.element)&&this.uploadedFilesList.removeChild(e.element),this.registry.delete(e.file.name),Array.from(this.registry.values()).filter(e=>{let{uploaded:t}=e;return t}).length<this.options.maxCount){let e=Array.from(this.registry.values()).filter(e=>{let{uploaded:t}=e;return!t});e.length&&this._sendUploadRequest(e[0].file)}this.updateBuyButton()}_createMediaIdInput(e,t){let r=document.createElement("input");return r.type="hidden",r.name="customized-products-template[options][".concat(this.options.optionId,"][media][").concat(e,"][id]"),r.value=t,r}_createFileNameInput(e){let t=document.createElement("input");return t.type="hidden",t.name="customized-products-template[options][".concat(this.options.optionId,"][media][").concat(e,"][filename]"),t.value=e,t}updatePriceDisplay(){let e=o.Z.querySelector(document,this.options.selectors.priceDisplayContainer,!1);return!!e&&(window.PluginManager.getPluginInstanceFromElement(e,"SwagCustomizedProductPriceDisplay").onFormChange(),!0)}triggerExclusionValidation(){let e=o.Z.querySelector(document,this.options.selectors.customizedProductContainer,!1);if(!e)return!1;let t=window.PluginManager.getPluginInstanceFromElement(e,"SwagCustomizedProductsExclusionListValidation");return!!t&&(t.onInputChange(),!0)}getSnippetByErrorCode(e){let t=o.Z.getDataAttribute(this.el,"data-swag-customized-products-file-upload-translation-errors");return t[e]||t.generic}}u.options={...n(a(u),"options",u),endpoint:"",optionId:"",maxCount:1,selectors:{...n(a(u),"options",u).selectors,dropzonePrefix:"#customized-products-dropzone-",inputPrefix:"#customized-products-dropzone-input-",browseButtonPrefix:"#customized-products-browse-",dropzoneIdPrefix:"#customized-products-dropzone-",upload:".customized-products-upload",dropzone:".customized-products-upload__dropzone",uploadedFilesList:".customized-products-upload-files",fileTemplate:".customized-products-upload-files-element",filename:".customized-products-upload-files-element__container-filename",iconElement:".customized-products-upload-files-element__container-icon",closeButton:".customized-products-upload-files-element__container-close-button",priceDisplayContainer:'[data-swag-customized-product-price-display="true"]',customizedProductContainer:".swag-customized-products",iconSuccess:".customized-products-upload-icon-success",iconError:".customized-products-upload-icon-error",errorText:".customized-products-error-subtitle"},classes:{dragover:"dragover",success:"is--success",error:"is--error"}}},49:(e,t,r)=>{r.d(t,{Z:()=>s});var i=r(140);class s{static isNode(e){return"object"==typeof e&&null!==e&&(e===document||e===window||e instanceof Node)}static hasAttribute(e,t){if(!s.isNode(e))throw Error("The element must be a valid HTML Node!");return"function"==typeof e.hasAttribute&&e.hasAttribute(t)}static getAttribute(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!1===s.hasAttribute(e,t))throw Error('The required property "'.concat(t,'" does not exist!'));if("function"!=typeof e.getAttribute){if(r)throw Error("This node doesn't support the getAttribute function!");return}return e.getAttribute(t)}static getDataAttribute(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],o=t.replace(/^data(|-)/,""),n=i.Z.toLowerCamelCase(o,"-");if(!s.isNode(e)){if(r)throw Error("The passed node is not a valid HTML Node!");return}if(void 0===e.dataset){if(r)throw Error("This node doesn't support the dataset attribute!");return}let a=e.dataset[n];if(void 0===a){if(r)throw Error('The required data attribute "'.concat(t,'" does not exist on ').concat(e,"!"));return a}return i.Z.parsePrimitive(a)}static querySelector(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!s.isNode(e))throw Error("The parent node is not a valid HTML Node!");let i=e.querySelector(t)||!1;if(r&&!1===i)throw Error('The required element "'.concat(t,'" does not exist in parent node!'));return i}static querySelectorAll(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(r&&!s.isNode(e))throw Error("The parent node is not a valid HTML Node!");let i=e.querySelectorAll(t);if(0===i.length&&(i=!1),r&&!1===i)throw Error('At least one item of "'.concat(t,'" must exist in parent node!'));return i}static getFocusableElements(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return e.querySelectorAll('\n            input:not([tabindex^="-"]):not([disabled]):not([type="hidden"]),\n            select:not([tabindex^="-"]):not([disabled]),\n            textarea:not([tabindex^="-"]):not([disabled]),\n            button:not([tabindex^="-"]):not([disabled]),\n            a[href]:not([tabindex^="-"]):not([disabled]),\n            [tabindex]:not
1([tabindex^="-"]):not([disabled])\n        ')}static getFirstFocusableElement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return this.getFocusableElements(e)[0]}static getLastFocusableElement(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=this.getFocusableElements(e);return t[t.length-1]}}},140:(e,t,r)=>{r.d(t,{Z:()=>i});class i{static ucFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}static lcFirst(e){return e.charAt(0).toLowerCase()+e.slice(1)}static toDashCase(e){return e.replace(/([A-Z])/g,"-$1").replace(/^-/,"").toLowerCase()}static toLowerCamelCase(e,t){let r=i.toUpperCamelCase(e,t);return i.lcFirst(r)}static toUpperCamelCase(e,t){return t?e.split(t).map(e=>i.ucFirst(e.toLowerCase())).join(""):i.ucFirst(e.toLowerCase())}static parsePrimitive(e){try{return/^\d+(.|,)\d+$/.test(e)&&(e=e.replace(",",".")),JSON.parse(e)}catch(t){return e.toString()}}}},293:(e,t,r)=>{r.d(t,{Z:()=>l});var i=r(857),s=r.n(i),o=r(49),n=r(140);class a{publish(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=new CustomEvent(e,{detail:t,cancelable:r});return this.el.dispatchEvent(i),i}subscribe(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this,s=e.split("."),o=r.scope?t.bind(r.scope):t;if(r.once&&!0===r.once){let t=o;o=function(r){i.unsubscribe(e),t(r)}}return this.el.addEventListener(s[0],o),this.listeners.push({splitEventName:s,opts:r,cb:o}),!0}unsubscribe(e){let t=e.split(".");return this.listeners=this.listeners.reduce((e,r)=>([...r.splitEventName].sort().toString()===t.sort().toString()?this.el.removeEventListener(r.splitEventName[0],r.cb):e.push(r),e),[]),!0}reset(){return this.listeners.forEach(e=>{this.el.removeEventListener(e.splitEventName[0],e.cb)}),this.listeners=[],!0}get el(){return this._el}set el(e){this._el=e}get listeners(){return this._listeners}set listeners(e){this._listeners=e}constructor(e=document){this._el=e,e.$emitter=this,this._listeners=[]}}class l{init(){throw Error('The "init" method for the plugin "'.concat(this._pluginName,'" is not defined.'))}update(){}_init(){this._initialized||(this.init(),this._initialized=!0)}_update(){this._initialized&&this.update()}_mergeOptions(e){let t=n.Z.toDashCase(this._pluginName),r=o.Z.getDataAttribute(this.el,"data-".concat(t,"-config"),!1),i=o.Z.getAttribute(this.el,"data-".concat(t,"-options"),!1),a=[this.constructor.options,this.options,e];r&&a.push(window.PluginConfigManager.get(this._pluginName,r));try{i&&a.push(JSON.parse(i))}catch(e){throw console.error(this.el),Error('The data attribute "data-'.concat(t,'-options" could not be parsed to json: ').concat(e.message))}return s().all(a.filter(e=>e instanceof Object&&!(e instanceof Array)).map(e=>e||{}))}_registerInstance(){window.PluginManager.getPluginInstancesFromElement(this.el).set(this._pluginName,this),window.PluginManager.getPlugin(this._pluginName,!1).get("instances").push(this)}_getPluginName(e){return e||(e=this.constructor.name),e}constructor(e,t={},r=!1){if(!o.Z.isNode(e))throw Error("There is no valid element given.");this.el=e,this.$emitter=new a(this.el),this._pluginName=this._getPluginName(r),this.options=this._mergeOptions(t),this._initialized=!1,this._registerInstance(),this._init()}}},107:(e,t,r)=>{r.d(t,{Z:()=>i});class i{get(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",e,r);return this._sendRequest(i,null,t)}post(e,t,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let s=this._createPreparedRequest("POST",e,i);return this._sendRequest(s,t,r)}delete(e,t,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let s=this._createPreparedRequest("DELETE",e,i);return this._sendRequest(s,t,r)}patch(e,t,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let s=this._createPreparedRequest("PATCH",e,i);return this._sendRequest(s,t,r)}
1abort(){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,r){return this._registerOnLoaded(e,r),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,r){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),r&&this._request.setRequestHeader("Content-type",r),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}}}]);

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.