PageSourceSearch

https://us.pferd.com/assets/61809bf09a7ff2a073cf011c4945cc89d2ed0e08/default/js/pferd.repair-details.js

js pferd.com collected 2026-09-24 22:31:59 UTC 5,898 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackJsonp_pferd=globalThis.webpackJsonp_pferd||[]).push([[4017,2167],{726:(e,t,r)=>{r.r(t),r.d(t,{default:()=>l});var s=r(57142),i=r(74692),a=r.n(i),o=r(48500);class l extends s.A{constructor(){super(...arguments),this.addPositionIdentifer="[data-qa=repair-add-position]",this.prototypeWrapperIdentifer="#"+this.jsName+"__prototype-wrapper",this.selectAttributeIdentifer='[name$="[addressReference]"]',this.popupOverlay=".js-popup-custom__overlay",this.addressPopup="popup-custom",this.partialFormIdentifer="repair-detail-position-partial",this.customSelectClass=".js-custom-select",this.removeFormRowClass="."+this.partialFormIdentifer+"__delete-position",this.formSubmitButtonClass=".form__action--submit",this.addPositionButton=void 0,this.prototypeWrapper=void 0,this.formSubmitButton=void 0,this.errorTranslation=void 0}readyCallback(){}init(){this.detectElements(),this.mapEvents(),this.initPopupStates()}detectElements(){this.addPositionButton=this.querySelector(this.addPositionIdentifer),this.prototypeWrapper=this.querySelector(this.prototypeWrapperIdentifer),this.formSubmitButton=this.querySelector(this.formSubmitButtonClass)}mapEvents(){this.prototypeWrapper&&this.addPositionButton&&this.addPositionButton.addEventListener("click",(e=>{e.preventDefault(),this.isFormValid()&&this.addNewFormRow()})),a()(document).on("select2:select",'[name$="[addressReference]"]',(e=>{var t=e.target,r=t.name.match(/^repair\[positions]\[(\d+)]\[addressReference]$/);if(r){var s=r[1];this.showPopup(t,s)}}))}addNewFormRow(){var e=this.prototypeWrapper.dataset.prototype;if(e){var t=this.prototypeWrapper.children.length,r=e.replace(/__name__/g,t.toString());this.createAdditionalForm(r),this.applyPopupStateToNewRow(t)}}removePosition(e){e.remove(),this.updateRemoveButtons()}createAdditionalForm(e){var t=(new DOMParser).parseFromString(e,"text/html").body.firstElementChild;t&&(t.classList.add("custom-element",this.partialFormIdentifer),t.dataset.qa="component "+this.partialFormIdentifer,this.prototypeWrapper.appendChild(t),this.reInitializeSelect(t),this.bindRemove(t),this.updateRemoveButtons())}bindRemove(e){var t=e.querySelector(this.removeFormRowClass);t&&t.addEventListener("click",(t=>{t.preventDefault(),this.removePosition(e)}))}updateRemoveButtons(){var e=this.prototypeWrapper.querySelectorAll("."+this.partialFormIdentifer);e.forEach(((t,r)=>{var s=t.querySelector(this.removeFormRowClass);s&&(r===e.length-1?(s.removeAttribute("disabled"),s.classList.remove("is-disabled")):(s.setAttribute("disabled","disabled"),s.classList.add("is-disabled")))}))}showPopup(e,t){var r=this.querySelector("popup-custom.repair_positions_"+t+"_address");if(this.prototypeWrapper||this.addPositionButton||this.reInitializeSelect(r),r){var s="0"!==String(e.value);if(r.classList.toggle("is-hidden",s),this.setPopupDisabledState(r,s),!s){this.setPopupDisabledState(r,!1);var i=r.querySelector('[data-qa="add-adress"]'),o=r.querySelector('[data-qa="repairs-modal-close-button"]'),l=r.querySelector(this.popupOverlay);for(var d of(i&&!i.dataset.bound&&(i.dataset.bound="true",i.addEventListener("click",(e=>{e.preventDefault(),this.checkValidity(r,t)}))),[o,l]))d&&!d.dataset.bound&&(o.dataset.bound="true",d.addEventListener("click",(e=>{e.preventDefault();var s=r.querySelectorAll("input, select, textarea");this.hidePopup(r,s);var i=this.querySelector('select[name="repair[positions]['+t+'][addressReference]"]');i&&(i.value="",a()(i).trigger("change.select2"))})))}}}hidePopup(e,t){e.classList.add("is-hidden"),t.forEach((e=>{e.disabled=!0}));var r=e.className.match(/repair_positions_(\d+)_address/);if(r){var s=r[1],i=this.querySelector('select[name="repair[positions]['+s+'][addressReference]"]');i&&(i.value="0",a()(i).trigger("change.select2"))}}checkValidity(e,t){var r=e.querySelectorAll("input, select, textarea"),s=!0;if(r.forEach((t=>{if(!t.disabled){var r=t.parentElement;if(r){var i=r.querySelector(".error-list");if(i&&i.remove(),t.checkValidity()){var a;t.classList.remove("error"),null==(a=r.querySelector(".error-list"))||a.remove()}else{s=!1,t.classList.add("error");var o=document.createElement("ul");o.classList.add("error-list","list","list--bullet","list--alert","text-small");var l=document.createElement("li");l.textContent=e.getAttribute("data-formerror-translation")||t.validationMessage,o.appendChild(l),r.appendChild(o),t.reportValidity()}}}})),s){var i=this.querySelector('select[name="repair[positions]['+t+'][addressReference]"]');if(i){var o=this.applyNewText(e,t,"0"),l=i.querySelector('option[value="
10"]');l?i.replaceChild(o,l):i.appendChild(o),i.value="0",a()(i).trigger("change.select2")}e.classList.add("is-hidden")}}initPopupStates(){this.querySelectorAll(this.addressPopup).forEach((e=>{this.setPopupDisabledState(e,!0)}))}setPopupDisabledState(e,t){e.querySelectorAll("input, select, textarea").forEach((e=>{e.disabled=t}))}applyPopupStateToNewRow(e){var t=this.querySelector("popup-custom.repair_positions_"+e+"_address");t&&this.setPopupDisabledState(t,!0)}reInitializeSelect(e){e.querySelectorAll(this.customSelectClass).forEach((t=>{if(a()(t).hasClass("select2-hidden-accessible"))e&&t.setAttribute("config-dropdown-parent","."+e.dataset.customParent),(new o.default).initSelectElement(t);else{var r=t.closest("popup-custom");r&&t.setAttribute("config-dropdown-parent","."+r.dataset.customParent),(new o.default).initSelectElement(t)}}))}applyNewText(e,t,r){var s=e.querySelector("#repair_positions_"+t+"_address_company"),i=e.querySelector("#repair_positions_"+t+"_address_address1"),a=e.querySelector("#repair_positions_"+t+"_address_zip_code"),o=e.querySelector("#repair_positions_"+t+"_address_city"),l={id:r,text:s.value+", "+i.value+", "+a.value+" "+o.value+" "};return new Option(l.text,l.id,!0,!0)}isFormValid(){var e=this.querySelector("form[name=repair]");return!e||(!!e.checkValidity()||(e.reportValidity(),!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.