felixarntz/wp-site-identity

View on GitHub
assets/dist/js/settings-page.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/*!
 * WP Site Identity (https://github.com/felixarntz/wp-site-identity)
 * By Felix Arntz (https://leaves-and-love.net)
 * Licensed under GNU General Public License v3 (http://www.gnu.org/licenses/gpl-3.0.html)
 */
!function(e){function t(t){var n,a,i=e.typeDependencies[t];i&&(n=Object.keys(i),n.forEach(function(e){for(a=document.querySelector('[name="wpsi_owner_data['+e+']"]');a&&"tr"!==a.tagName.toLowerCase();)a=a.parentNode;a&&(i[e]?a.style.setProperty("display","table-row"):a.style.setProperty("display","none"))}))}function n(e){var t=e.url;return e.sizes&&(e.sizes.medium?t=e.sizes.medium.url:e.sizes.large?t=e.sizes.large.url:e.sizes.full&&(t=e.sizes.full.url)),'<img src="'+t+'" alt="'+e.alt+'" />'}function a(){var t=document.getElementById(this.dataset.target),a=document.getElementById(this.dataset.target+"-preview"),i=this,o=document.getElementById(this.dataset.target+"-delete-button"),r=t.attachment?[t.attachment]:[],l=new window.wp.media.model.Selection(r,{multiple:!1}),s=new window.wp.media.view.MediaFrame.WPSIInsertFrame({title:e.imageButtonLabels.frameTitle,buttonText:e.imageButtonLabels.frameButton,frame:"select",state:"insert",selection:l,mimeType:"image",multiple:!1});window.wp.media.frame=s,s.on("insert",function(){var r={};window._.extend(r,s.state().get("selection").first().toJSON()),t.value=r.id,t.attachment=r,a.innerHTML=n(r),i.textContent=e.imageButtonLabels.change,o.style.setProperty("display","inline-block")}),l.on("destroy",function(n){parseInt(t.value,10)===n.get("id")&&(t.value=0,t.attachment=null,a.innerHTML="",i.textContent=e.imageButtonLabels.select,o.style.setProperty("display","none"))}),s.open(),s.$el.find(".media-frame-menu .media-menu-item.active").focus()}function i(){var t=document.getElementById(this.dataset.target),n=document.getElementById(this.dataset.target+"-preview"),a=document.getElementById(this.dataset.target+"-select-button"),i=this;t.value=0,t.attachment=null,n.innerHTML="",a.textContent=e.imageButtonLabels.select,i.style.setProperty("display","none")}function o(t){var n=document.createElement("button"),o=document.createElement("button"),r=parseInt(t.value,10),l=document.getElementById(t.id+"-attachment-data");l&&(t.attachment=JSON.parse(l.textContent)),t.type="hidden",n.type="button",n.id=t.id+"-select-button",n.classList.add("button"),n.textContent=r?e.imageButtonLabels.change:e.imageButtonLabels.select,n.dataset.target=t.id,n.addEventListener("click",a),o.type="button",o.id=t.id+"-delete-button",o.classList.add("button-link","button-link-delete"),o.textContent=e.imageButtonLabels.remove,o.dataset.target=t.id,o.addEventListener("click",i),o.style.setProperty("margin-left","10px"),o.style.setProperty("padding-bottom","1px"),o.style.setProperty("line-height","26px"),r||o.style.setProperty("display","none"),t.parentNode.insertBefore(n,t),t.parentNode.insertBefore(o,t)}var r=document.querySelectorAll('#wpsi-owner-data-type input[type="radio"]'),l=document.querySelector('#wpsi-owner-data-type input[type="radio"]:checked'),s=document.querySelectorAll(".form-table input[data-colorpicker]"),d=document.querySelectorAll(".form-table input[data-imagepicker]");r.length&&e.typeDependencies&&(Array.from(r).forEach(function(e){e.addEventListener("change",function(){t(this.value)})}),l&&t(l.value)),s.length&&window.jQuery&&window.jQuery.fn.wpColorPicker&&Array.from(s).forEach(function(e){window.jQuery(e).wpColorPicker()}),d.length&&window.wp.media&&e.imageButtonLabels&&Array.from(d).forEach(o)}(wpsiSettingsPage);