1var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});const _UserEditableList=class _UserEditableList{constructor(submitButton,closeButton,errorNotice,itemsObject,checkboxes,userId,moduleId,metaKey){this.submitButton=submitButton,this.closeButton=closeButton,this.errorNotice=errorNotice,this.itemsObject=itemsObject,this.checkboxes=checkboxes,this.userId=userId,this.moduleId=moduleId,this.metaKey=metaKey,this.buttonText=this.submitButton.textContent??"Save",this.savingLang=this.submitButton.getAttribute("data-js-saving-lang")??this.savingLang,wpApiSettings&&this.submitListener()}savingLang="Saving";buttonText;submitListener(){this.submitButton.addEventListener("click",event=>{event.preventDefault();const values={};this.checkboxes.forEach(checkbox=>{values[checkbox.value]=checkbox.checked}),this.patchUser(values)})}patchUser(values){this.handleBeforeSave();const endpoint=`${wpApiSettings?.root}wp/v2/users/${this.userId}?cache-bust=${Date.now()}`;fetch(endpoint,{method:"GET",headers:{"Content-Type":"application/json","X-WP-NONCE":wpApiSettings?.nonce??""}}).then(response=>{if(!response.ok)throw new Error("Failed to fetch existing user data");return response.json()}).then(data=>{let metaData=data.meta?data.meta[this.metaKey]:null;return(!metaData||typeof metaData!="object"||Array.isArray(metaData))&&(metaData={}),metaData[this.moduleId]=values,fetch(endpoint,{method:"PATCH",headers:{"Content-Type":"application/json","X-WP-NONCE":wpApiSettings?.nonce??""},body:JSON.stringify({meta:{[this.metaKey]:metaData}})})}).then(()=>{this.handleSuccessfullSave(values)}).catch(error=>{console.error("Error:",error),this.handleFailedSave()})}handleBeforeSave(){this.submitButton.disabled=!0,this.closeButton.disabled=!0,this.submitButton.textContent=this.savingLang}handleFailedSave(){this.errorNotice.classList.remove("u-display--none"),this.submitButton.disabled=!1,this.closeButton.disabled=!1,this.submitButton.textContent=this.buttonText}handleSuccessfullSave(values){this.submitButton.disabled=!1,this.closeButton.disabled=!1,this.submitButton.textContent=this.buttonText,this.showOrHideItemsBasedOnSaved(values),this.closeButton.click()}showOrHideItemsBasedOnSaved(values){for(const[key,element]of Object.entries(this.itemsObject))key in values&&(values[key]?element.classList.remove("u-display--none"):element.classList.add("u-display--none"))}};__name(_UserEditableList,"UserEditableList");let UserEditableList=_UserEditableList;function initUserEditableList(userEditable){const metaKey=userEditable.getAttribute("data-js-user-editable");if(!metaKey)return;const userId=userEditable.getAttribute("data-js-user-editable-user"),moduleId=userEditable.getAttribute("data-js-user-editable-id"),submitButton=userEditable.querySelector('button[type="submit"]'),checkboxes=userEditable.querySelectorAll('input[type="checkbox"]'),errorNotice=userEditable.querySelector("[data-js-user-editable-error]"),itemsObject={};userEditable.querySelectorAll("[data-js-item-id]").forEach(item=>{const itemId=item.getAttribute("data-js-item-id");itemId&&(itemsObject[itemId]=item)});const closeButton=userEditable.querySelector("button[data-js-cancel-save]");submitButton&&closeButton&&userId&&moduleId&&checkboxes.length&&new UserEditableList(submitButton,closeButton,errorNotice,itemsObject,checkboxes,userId,moduleId,metaKey)}__name(initUserEditableList,"initUserEditableList");document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("[data-js-user-editable]").forEach(userEditable=>{initUserEditableList(userEditable)})}); 2//# sourceMappingURL=user-editable-list.CwyRJMB4.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.