Файловый менеджер - Редактировать - /home/harasnat/www/horse/wp-content/plugins/woocommerce/assets/js/frontend/address-autocomplete.min.js
Назад
function registerAddressAutocompleteProvider(e){try{if(!e||"object"!=typeof e)throw new Error("Address provider must be a valid object");if(!e.id||"string"!=typeof e.id)throw new Error("Address provider must have a valid ID");if("function"!=typeof e.canSearch)throw new Error("Address provider must have a canSearch function");if("function"!=typeof e.search)throw new Error("Address provider must have a search function");if("function"!=typeof e.select)throw new Error("Address provider must have a select function");var t=[];if(window&&window.wc_checkout_params&&Array.isArray(window.wc_checkout_params.address_providers)&&window.wc_checkout_params.address_providers.length>0&&(t=window.wc_checkout_params.address_providers),!Array.isArray(t))throw new Error("Server providers configuration is invalid");if(!t.some(function(t){return t&&"object"==typeof t&&"string"==typeof t.id&&t.id===e.id}))throw new Error("Provider "+e.id+" not registered on server");return window.wc.addressAutocomplete.providers[e.id]?(console.warn('Address provider with ID "'+e.id+'" is already registered.'),!1):(Object.freeze(e),window.wc.addressAutocomplete.providers[e.id]=e,!0)}catch(r){return console.error("Error registering address provider:",r.message),!1}}window.wc=window.wc||{},window.wc.addressAutocomplete=window.wc.addressAutocomplete||{providers:{},activeProvider:{billing:null,shipping:null}},window.wc.addressAutocomplete.registerAddressAutocompleteProvider=registerAddressAutocompleteProvider,function(){function e(e,t){const r=window&&window.wc_checkout_params&&window.wc_checkout_params.address_providers||[];for(const s of r){const r=window.wc.addressAutocomplete.providers[s.id];if(r&&r.canSearch(e)){window.wc.addressAutocomplete.activeProvider[t]=r;const e=document.getElementById(`${t}_address_1`);if(e){const t=e.closest(".woocommerce-input-wrapper");t&&t.classList.add("autocomplete-available")}return}}window.wc.addressAutocomplete.activeProvider[t]=null;const s=document.getElementById(`${t}_address_1`);if(s){const e=s.closest(".woocommerce-input-wrapper");e&&e.classList.remove("autocomplete-available")}}document.addEventListener("DOMContentLoaded",function(){const t=["billing","shipping"],r={},s={},o={};let n,i={};const d={};function a(e){r[e]={},r[e].address_1=document.getElementById(`${e}_address_1`),r[e].city=document.getElementById(`${e}_city`),r[e].country=document.getElementById(`${e}_country`),r[e].postcode=document.getElementById(`${e}_postcode`),r[e].state=document.getElementById(`${e}_state`)}function c(e,t=!0){if("off"!==e.getAttribute("autocomplete"))return;e.setAttribute("autocomplete","address-line1"),e.setAttribute("data-lpignore","false"),e.setAttribute("data-op-ignore","false"),e.setAttribute("data-1p-ignore","false");const r=e.parentElement;r&&(r.appendChild(r.removeChild(e)),t&&e.focus())}function u(e){const t=document.implementation.createHTMLDocument("");return t.body.innerHTML=e,t.body.textContent||""}async function l(e,t,n){const a=u(e);if(a!==e&&console.warn("Input was sanitized for security"),!r[n]||!r[n].address_1)return;if(!o[n]||!s[n])return;const l=r[n].address_1,p=o[n],v=s[n];if(a.length<3)return f(n),void c(l);if(!window.wc.addressAutocomplete.activeProvider[n])return f(n),void c(l);try{const e=await window.wc.addressAutocomplete.activeProvider[n].search(a,t,n);if(!Array.isArray(e))return console.error("Invalid suggestions response - not an array"),void f(n);const s=5,o=e.slice(0,s);if(0===o.length)return void f(n);p.innerHTML="",o.forEach((e,t)=>{const r=document.createElement("li");r.setAttribute("role","option"),r.id=`suggestion-item-${n}-${t}`,r.dataset.id=e.id,r.setAttribute("tabindex","-1"),r.textContent="",function(e,t){const r=u(e),s=[];let o=0;return Array.isArray(t)?(t.filter(e=>e&&"number"==typeof e.offset&&"number"==typeof e.length&&e.offset>=0&&e.length>0&&e.offset+e.length<=r.length).forEach(e=>{e.offset>o&&s.push(document.createTextNode(r.slice(o,e.offset)));const t=document.createElement("strong");t.textContent=r.slice(e.offset,e.offset+e.length),s.push(t),o=e.offset+e.length}),o<r.length&&s.push(document.createTextNode(r.slice(o))),s):(s.push(document.createTextNode(r)),s)}(e.label,e.matchedSubstrings||[]).forEach(e=>r.appendChild(e)),r.addEventListener("click",async function(){f(n),await w(n,this.dataset.id),l.focus()}),r.addEventListener("mouseenter",function(){m(n,t)}),p.appendChild(r)}),function(e){if("off"===e.getAttribute("autocomplete"))return;e.setAttribute("autocomplete","off"),e.setAttribute("data-lpignore","true"),e.setAttribute("data-op-ignore","true"),e.setAttribute("data-1p-ignore","true");const t=e.parentElement;t&&(t.appendChild(t.removeChild(e)),e.focus())}(l),v.style.display="block",v.style.marginTop=r[n].address_1.offsetHeight+"px",l.setAttribute("aria-expanded","true"),l.setAttribute("aria-owns",`address_suggestions_${n}_list`),p.id=`address_suggestions_${n}_list`,i[n]=-1,d[n]||(d[n]=function(){setTimeout(()=>{f(n),c(l,!1)},200)},l.addEventListener("blur",d[n]))}catch(g){console.error("Address search error:",g),f(n),c(l)}}function f(e){if(!r[e]||!r[e].address_1)return;if(!o[e]||!s[e])return;const t=o[e],n=s[e],a=r[e].address_1;t.innerHTML="",n.style.display="none",a.setAttribute("aria-expanded","false"),a.removeAttribute("aria-activedescendant"),a.removeAttribute("aria-owns"),i[e]=-1,d[e]&&(a.removeEventListener("blur",d[e]),delete d[e])}t.forEach(t=>{a(t);const n=r[t].address_1,d=r[t].city,c=r[t].country,u=r[t].postcode;if(n){if(!document.getElementById(`address_suggestions_${t}`)){const e=document.createElement("div");e.id=`address_suggestions_${t}`,e.className="woocommerce-address-suggestions",e.style.display="none",e.setAttribute("role","region"),e.setAttribute("aria-live","polite");const r=document.createElement("ul");r.className="suggestions-list",r.setAttribute("role","listbox"),r.setAttribute("aria-label","Address suggestions"),e.appendChild(r),n.parentNode.insertBefore(e,n.nextSibling);const s=document.createElement("div");s.className="address-search-icon",n.parentNode.appendChild(s)}r[t]={},r[t].address_1=n,r[t].city=d,r[t].country=c,r[t].postcode=u,s[t]=document.getElementById(`address_suggestions_${t}`),o[t]=s[t].querySelector(".suggestions-list"),i[t]=-1}if(c){e(c.value,t);const s=function(){a(t),e(c.value,t),r[t].address_1&&f(t)};c.addEventListener("change",s),window.jQuery&&window.jQuery(c).select2&&window.jQuery(c).on("select2:select",s)}});const p=(e,t)=>{e&&(e.value=t,e.dispatchEvent(new Event("change")),window.jQuery&&window.jQuery(e).hasClass("select2-hidden-accessible")&&window.jQuery(e).trigger("change"))};async function w(e,t){let s;try{s=await window.wc.addressAutocomplete.activeProvider[e].select(t)}catch(o){return void console.error("Error selecting address from provider",window.wc.addressAutocomplete.activeProvider[e].id,o)}"object"==typeof s&&null!==s&&s&&(s.country&&p(r[e].country,s.country),s.address_1&&p(r[e].address_1,s.address_1),n&&clearTimeout(n),n=setTimeout(function(){a(e),s.address_2&&p(r[e].address_2,s.address_2),s.city&&p(r[e].city,s.city),s.postcode&&p(r[e].postcode,s.postcode),s.state&&p(r[e].state,s.state)},50))}function m(e,t){if(!r[e]||!r[e].address_1)return;if(!o[e])return;const s=o[e],n=r[e].address_1,d=s.querySelector("li.active");d&&(d.classList.remove("active"),d.setAttribute("aria-selected","false"));const a=s.querySelector(`li#suggestion-item-${e}-${t}`);a&&(a.classList.add("active"),a.setAttribute("aria-selected","true"),n.setAttribute("aria-activedescendant",a.id),i[e]=t)}t.forEach(e=>{const t=r[e].address_1,n=r[e].country;t&&n&&(t.addEventListener("input",function(){l(this.value,n.value,e)}),t.addEventListener("keydown",async function(r){if(!o[e]||!s[e])return;const n=o[e].querySelectorAll("li");if(0===n.length||"none"===s[e].style.display)return;let d=i[e];if("ArrowDown"===r.key)r.preventDefault(),d=(i[e]+1)%n.length,m(e,d);else if("ArrowUp"===r.key)r.preventDefault(),d=(i[e]-1+n.length)%n.length,m(e,d);else if("Enter"===r.key){if(i[e]>-1){r.preventDefault();const s=o[e].querySelector(`li#suggestion-item-${e}-${i[e]}`);f(e),c(t),await w(e,s.dataset.id)}}else"Escape"===r.key&&(f(e),c(t))}))}),document.addEventListener("click",function(e){t.forEach(t=>{if(!r[t]||!r[t].address_1)return;if(!s[t])return;const o=e.target;o===s[t]||s[t].contains(o)||o===r[t].address_1||f(t)})})})}();
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка