layouts.js 18.6 KB
(()=>{var e={3114:e=>{function t(e,t){if(!e)throw new Error(t||"AssertionError")}t.notEqual=function(e,s,n){t(e!=s,n)},t.notOk=function(e,s){t(!e,s)},t.equal=function(e,s,n){t(e==s,n)},t.ok=t,e.exports=t},9403:(e,t,s)=>{var n=s(7415),i=s(1511),r=s(3114);function o(e){if(!(this instanceof o))return new o(e);this._name=e||"nanobus",this._starListeners=[],this._listeners={}}e.exports=o,o.prototype.emit=function(e){r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.emit: eventName should be type string or symbol");for(var t=[],s=1,n=arguments.length;s<n;s++)t.push(arguments[s]);var o=i(this._name+"('"+e.toString()+"')"),l=this._listeners[e];return l&&l.length>0&&this._emit(this._listeners[e],t),this._starListeners.length>0&&this._emit(this._starListeners,e,t,o.uuid),o(),this},o.prototype.on=o.prototype.addListener=function(e,t){return r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.on: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.on: listener should be type function"),"*"===e?this._starListeners.push(t):(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)),this},o.prototype.prependListener=function(e,t){return r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.prependListener: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.prependListener: listener should be type function"),"*"===e?this._starListeners.unshift(t):(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].unshift(t)),this},o.prototype.once=function(e,t){r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.once: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.once: listener should be type function");var s=this;return this.on(e,(function n(){t.apply(s,arguments),s.removeListener(e,n)})),this},o.prototype.prependOnceListener=function(e,t){r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.prependOnceListener: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.prependOnceListener: listener should be type function");var s=this;return this.prependListener(e,(function n(){t.apply(s,arguments),s.removeListener(e,n)})),this},o.prototype.removeListener=function(e,t){return r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.removeListener: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.removeListener: listener should be type function"),"*"===e?(this._starListeners=this._starListeners.slice(),s(this._starListeners,t)):(void 0!==this._listeners[e]&&(this._listeners[e]=this._listeners[e].slice()),s(this._listeners[e],t));function s(e,t){if(e){var s=e.indexOf(t);return-1!==s?(n(e,s,1),!0):void 0}}},o.prototype.removeAllListeners=function(e){return e?"*"===e?this._starListeners=[]:this._listeners[e]=[]:(this._starListeners=[],this._listeners={}),this},o.prototype.listeners=function(e){var t="*"!==e?this._listeners[e]:this._starListeners,s=[];if(t)for(var n=t.length,i=0;i<n;i++)s.push(t[i]);return s},o.prototype._emit=function(e,t,s,n){if(void 0!==e&&0!==e.length){void 0===s&&(s=t,t=null),t&&(s=void 0!==n?[t].concat(s,n):[t].concat(s));for(var i=e.length,r=0;r<i;r++){var o=e[r];o.apply(o,s)}}}},792:(e,t,s)=>{var n=s(3114),i="undefined"!=typeof window;function r(e){this.hasWindow=e,this.hasIdle=this.hasWindow&&window.requestIdleCallback,this.method=this.hasIdle?window.requestIdleCallback.bind(window):this.setTimeout,this.scheduled=!1,this.queue=[]}r.prototype.push=function(e){n.equal(typeof e,"function","nanoscheduler.push: cb should be type function"),this.queue.push(e),this.schedule()},r.prototype.schedule=function(){if(!this.scheduled){this.scheduled=!0;var e=this;this.method((function(t){for(;e.queue.length&&t.timeRemaining()>0;)e.queue.shift()(t);e.scheduled=!1,e.queue.length&&e.schedule()}))}},r.prototype.setTimeout=function(e){setTimeout(e,0,{timeRemaining:function(){return 1}})},e.exports=function(){var e;return i?(window._nanoScheduler||(window._nanoScheduler=new r(!0)),e=window._nanoScheduler):e=new r,e}},1511:(e,t,s)=>{var n,i=s(792)(),r=s(3114);o.disabled=!0;try{n=window.performance,o.disabled="true"===window.localStorage.DISABLE_NANOTIMING||!n.mark}catch(e){}function o(e){if(r.equal(typeof e,"string","nanotiming: name should be type string"),o.disabled)return l;var t=(1e4*n.now()).toFixed()%Number.MAX_SAFE_INTEGER,s="start-"+t+"-"+e;function a(r){var o="end-"+t+"-"+e;n.mark(o),i.push((function(){var i=null;try{var l=e+" ["+t+"]";n.measure(l,s,o),n.clearMarks(s),n.clearMarks(o)}catch(e){i=e}r&&r(i,e)}))}return n.mark(s),a.uuid=t,a}function l(e){e&&i.push((function(){e(new Error("nanotiming: performance API unavailable"))}))}e.exports=o},7415:e=>{"use strict";e.exports=function(e,t,s){var n,i=e.length;if(!(t>=i||0===s)){var r=i-(s=t+s>i?i-t:s);for(n=t;n<r;++n)e[n]=e[n+s];e.length=r}}},9204:e=>{function t(e,t){if(!e)throw new Error(t||"AssertionError")}t.notEqual=function(e,s,n){t(e!=s,n)},t.notOk=function(e,s){t(!e,s)},t.equal=function(e,s,n){t(e==s,n)},t.ok=t,e.exports=t},6559:(e,t,s)=>{var n=s(7069),i=s(7999),r=s(9204);function o(e){if(!(this instanceof o))return new o(e);this._name=e||"nanobus",this._starListeners=[],this._listeners={}}e.exports=o,o.prototype.emit=function(e){r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.emit: eventName should be type string or symbol");for(var t=[],s=1,n=arguments.length;s<n;s++)t.push(arguments[s]);var o=i(this._name+"('"+e.toString()+"')"),l=this._listeners[e];return l&&l.length>0&&this._emit(this._listeners[e],t),this._starListeners.length>0&&this._emit(this._starListeners,e,t,o.uuid),o(),this},o.prototype.on=o.prototype.addListener=function(e,t){return r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.on: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.on: listener should be type function"),"*"===e?this._starListeners.push(t):(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)),this},o.prototype.prependListener=function(e,t){return r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.prependListener: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.prependListener: listener should be type function"),"*"===e?this._starListeners.unshift(t):(this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].unshift(t)),this},o.prototype.once=function(e,t){r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.once: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.once: listener should be type function");var s=this;return this.on(e,(function n(){t.apply(s,arguments),s.removeListener(e,n)})),this},o.prototype.prependOnceListener=function(e,t){r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.prependOnceListener: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.prependOnceListener: listener should be type function");var s=this;return this.prependListener(e,(function n(){t.apply(s,arguments),s.removeListener(e,n)})),this},o.prototype.removeListener=function(e,t){return r.ok("string"==typeof e||"symbol"==typeof e,"nanobus.removeListener: eventName should be type string or symbol"),r.equal(typeof t,"function","nanobus.removeListener: listener should be type function"),"*"===e?(this._starListeners=this._starListeners.slice(),s(this._starListeners,t)):(void 0!==this._listeners[e]&&(this._listeners[e]=this._listeners[e].slice()),s(this._listeners[e],t));function s(e,t){if(e){var s=e.indexOf(t);return-1!==s?(n(e,s,1),!0):void 0}}},o.prototype.removeAllListeners=function(e){return e?"*"===e?this._starListeners=[]:this._listeners[e]=[]:(this._starListeners=[],this._listeners={}),this},o.prototype.listeners=function(e){var t="*"!==e?this._listeners[e]:this._starListeners,s=[];if(t)for(var n=t.length,i=0;i<n;i++)s.push(t[i]);return s},o.prototype._emit=function(e,t,s,n){if(void 0!==e&&0!==e.length){void 0===s&&(s=t,t=null),t&&(s=void 0!==n?[t].concat(s,n):[t].concat(s));for(var i=e.length,r=0;r<i;r++){var o=e[r];o.apply(o,s)}}}},8061:(e,t,s)=>{var n=s(9204),i="undefined"!=typeof window;function r(e){this.hasWindow=e,this.hasIdle=this.hasWindow&&window.requestIdleCallback,this.method=this.hasIdle?window.requestIdleCallback.bind(window):this.setTimeout,this.scheduled=!1,this.queue=[]}r.prototype.push=function(e){n.equal(typeof e,"function","nanoscheduler.push: cb should be type function"),this.queue.push(e),this.schedule()},r.prototype.schedule=function(){if(!this.scheduled){this.scheduled=!0;var e=this;this.method((function(t){for(;e.queue.length&&t.timeRemaining()>0;)e.queue.shift()(t);e.scheduled=!1,e.queue.length&&e.schedule()}))}},r.prototype.setTimeout=function(e){setTimeout(e,0,{timeRemaining:function(){return 1}})},e.exports=function(){var e;return i?(window._nanoScheduler||(window._nanoScheduler=new r(!0)),e=window._nanoScheduler):e=new r,e}},7999:(e,t,s)=>{var n,i=s(8061)(),r=s(9204);o.disabled=!0;try{n=window.performance,o.disabled="true"===window.localStorage.DISABLE_NANOTIMING||!n.mark}catch(e){}function o(e){if(r.equal(typeof e,"string","nanotiming: name should be type string"),o.disabled)return l;var t=(1e4*n.now()).toFixed()%Number.MAX_SAFE_INTEGER,s="start-"+t+"-"+e;function a(r){var o="end-"+t+"-"+e;n.mark(o),i.push((function(){var i=null;try{var l=e+" ["+t+"]";n.measure(l,s,o),n.clearMarks(s),n.clearMarks(o)}catch(e){i=e}r&&r(i,e)}))}return n.mark(s),a.uuid=t,a}function l(e){e&&i.push((function(){e(new Error("nanotiming: performance API unavailable"))}))}e.exports=o},7069:e=>{"use strict";e.exports=function(e,t,s){var n,i=e.length;if(!(t>=i||0===s)){var r=i-(s=t+s>i?i-t:s);for(n=t;n<r;++n)e[n]=e[n+s];e.length=r}}}},t={};function s(n){var i=t[n];if(void 0!==i)return i.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=s(6559),t=s.n(e);class n{constructor(e){this.el=e,this.events=new(t()),this.Form=new i(e.querySelector(".new")),this.initEvents()}onOrdered(e){this.events.addListener("ordered",e)}getListScreen(){var e;return null!==(e=this.el.dataset.type)&&void 0!==e?e:""}initEvents(){const e=this.getButton();e&&e.addEventListener("click",(t=>{t.preventDefault(),e.classList.contains("open")?this.cancelNewLayout():this.addNewLayout()})),jQuery(this.el).find(".layouts__items").sortable({items:".layouts__item",axis:"y",containment:jQuery(this.el).find(".layouts__items"),handle:".cpacicon-move",stop:()=>{this.setNewOrder()}})}setNewOrder(){this.storeLayoutOrder(this.getOrder()).done((()=>{this.events.emit("ordered",this.getOrder())}))}getOrder(){let e=[];return this.el.querySelectorAll(".layouts__item").forEach((t=>{var s;e.push(null!==(s=t.dataset.screen)&&void 0!==s?s:"")})),e}storeLayoutOrder(e){return jQuery.ajax({url:ajaxurl,method:"POST",data:{_ajax_nonce:AC._ajax_nonce,action:"acp-update-layout-order",list_screen:this.getListScreen(),order:e}})}getButton(){return this.el.querySelector("a.add-new")}addNewLayout(){var e;null===(e=this.getButton())||void 0===e||e.classList.add("open"),this.Form.open()}cancelNewLayout(){var e;null===(e=this.getButton())||void 0===e||e.classList.remove("open"),this.Form.close()}}class i{constructor(e){this.el=e,this.initEvents()}open(){jQuery(this.el).slideDown()}close(){jQuery(this.el).slideUp()}initEvents(){var e;null===(e=this.el.querySelector(".new form"))||void 0===e||e.addEventListener("submit",(e=>{var t,s;(null===(t=this.el.querySelector(".row.name input"))||void 0===t?void 0:t.value.trim())||(e.preventDefault(),null===(s=this.el.querySelector(".row.name"))||void 0===s||s.classList.add("save-error"))}))}}class r{constructor(e){this.form=e,this.columns=e.getColumns(),this.setting=e.getElement().querySelector('[data-setting="sorting-preference"]')||document.createElement("div"),this.selectElement=this.setting&&this.setting.querySelector('[name="sorting"]')||document.createElement("select"),this.setting&&this.init()}init(){this.columns.forEach((e=>{if(this.isSortable(e)){let s=document.createElement("option");if(s.value=e.getName(),s.text=(t=e.getJson().label)?t.replace(/(<([^>]+)>)/gi,""):"",!s.text){let t=e.getElement().querySelector(".ac-column__header__type > span");t&&(s.text=t.innerText)}this.selectElement.appendChild(s)}var t}));let e=this.selectElement.dataset.sorting;this.selectElement.querySelectorAll(`[value="${e}"]`).forEach((e=>e.selected=!0))}isSortable(e){return e.getElement().querySelectorAll('table[data-setting="sort"] input[value="on"]:checked').length>0}}class o{constructor(e){this.Form=e,this.init()}init(){jQuery(this.Form.querySelector("select.roles")).ac_select2({placeholder:acp_layouts.roles,theme:"acs2"}).on("select2:select",(function(){jQuery(this).ac_select2("open")})).on("select2:open",(function(){setTimeout((function(){jQuery(".select2-container.select2-container--open .select2-dropdown li[role=group]").each((function(){jQuery(this).find("li[aria-selected=false]").length>0?jQuery(this).show():jQuery(this).hide()}))}),1)}))}}class l{constructor(e){this.Form=e,this.init()}init(){jQuery(this.Form.querySelector("select.users")).ac_select2({placeholder:acp_layouts.users,multiple:!0,theme:"acs2",minimumInputLength:0,escapeMarkup:function(e){return jQuery("<div>"+e+"</div>").text()},ajax:{type:"POST",url:ajaxurl,dataType:"json",delay:350,data:function(e){return{action:"acp-layout-get-users",_ajax_nonce:AC._ajax_nonce,search:e.term,page:e.page}},processResults:function(e){return e&&e.success&&e.data?e.data:{results:[]}},cache:!0}})}}let a=s(6559);class u{constructor(e){this.element=e,this.settings=[],this.init()}init(){document.querySelector(".ac-boxes.disabled")||(this.element.querySelectorAll("[data-setting]").forEach((e=>{let t=new h(e);t.events.on("change",(()=>{this.checkDependent(t,!0)})),this.settings.push(t)})),this.settings.forEach((e=>this.checkDependent(e,!1))))}checkDependent(e,t){const s=e.isChecked();this.settings.forEach((n=>{n.isDependentOn(e.getName())&&(n.toggle(s),t&&n.setChecked(s))}))}}class h{constructor(e){var t,s,n;this.element=e,this.name=null!==(t=e.dataset.setting)&&void 0!==t?t:"",this.checkbox=e.querySelector("input[type=checkbox]"),this.dependentOn=null!==(n=null===(s=e.dataset.dependent)||void 0===s?void 0:s.split(","))&&void 0!==n?n:[],this.events=a(),this.initEvents()}initEvents(){var e;null===(e=this.checkbox)||void 0===e||e.addEventListener("change",(()=>{this.events.emit("change")}))}toggle(e){return e?this.enable():this.disable(),this}disable(){var e;return this.element.classList.add("-disabled"),null===(e=this.checkbox)||void 0===e||e.setAttribute("disabled","true"),this.events.emit("change"),this}enable(){var e;return this.element.classList.remove("-disabled"),null===(e=this.checkbox)||void 0===e||e.removeAttribute("disabled"),this.events.emit("change"),this}setChecked(e){this.checkbox&&(this.checkbox.checked=e),this.events.emit("change")}getName(){return this.name}isChecked(){var e,t;return null!==(t=null===(e=this.checkbox)||void 0===e?void 0:e.checked)&&void 0!==t&&t}isDependentOn(e){return this.dependentOn.includes(e)}}class c{constructor(e,t){this.element=e,this.form=t,this.settings={},this.init()}addSetting(e,t){this.settings[e]=t}init(){this.addSetting("sorting",new r(this.form)),this.addSetting("roles",new o(this.element)),this.addSetting("users",new l(this.element)),this.element.querySelectorAll("#hide-on-screen").forEach((e=>this.addSetting("hideonscreen",new u(e))))}}var d=s(9403),p=s.n(d);class f{constructor(e){this.element=e}static find(e){let t=document.querySelector(e);return null===t?null:new f(t)}static create(e){return new f(document.createElement(e))}getElement(){return this.element}addId(e){return this.element.id=e,this}toggleClass(e,t=null){return null===t?this.element.classList.contains(e)?this.removeClass(e):this.addClass(e):t?this.addClass(e):this.removeClasses(e)}addClass(e){return this.element.classList.add(e),this}addClasses(...e){return e.forEach((e=>this.addClass(e))),this}removeClasses(...e){return e.forEach((e=>this.removeClass(e))),this}removeClass(e){return this.element.classList.remove(e),this}setAttribute(e,t){return this.element.setAttribute(e,t),this}setAttributes(e){return Object.keys(e).forEach((t=>this.setAttribute(t,e[t]))),this}addHtml(e){return this.element.innerHTML=e,this}append(e){return this.element.appendChild(e),this}appendSelfTo(e){return e.append(this.element),this}css(e,t){return this.element.style[e]=t,this}insertAfter(e){var t;try{null===(t=this.element.parentElement)||void 0===t||t.insertBefore(e,this.element.nextElementSibling)}catch(e){console.error("Not able to insert element after current node",this.element)}}insertSelfBefore(e){var t;try{null===(t=e.parentElement)||void 0===t||t.insertBefore(this.element,e)}catch(e){console.error("Not able to insert element before current node",this.element)}return this}insertBefore(e){var t;try{null===(t=this.element.parentElement)||void 0===t||t.insertBefore(e,this.element)}catch(e){console.error("Not able to insert element before current node",this.element)}return this}addEventListener(e,t){return this.element.addEventListener(e,t),this}addEventListeners(e,t){return e.forEach((e=>this.addEventListener(e,t))),this}}class m{constructor(){this.filters={}}addFilter(e,t,s=10){this.filters.hasOwnProperty(e)||(this.filters[e]={}),this.filters[e].hasOwnProperty(s)||(this.filters[e][s]=[]),this.filters[e][s].push(t)}applyFilters(e,t,s={}){return this.filters.hasOwnProperty(e)?(Object.keys(this.filters[e]).forEach((n=>{this.filters[e][parseInt(n)].forEach((e=>{t=e(t,s)}))})),t):t}}const y=(window.AC_SERVICES||(window.AC_SERVICES=new class{constructor(){this.services={},this.events=new(p()),this.filters=new m,this.$=f}registerService(e,t){return this.services[e]=t,this.events.emit(`Service.Registered.${e}`,t),this}getService(e){return this.hasService(e)?this.services[e]:null}hasService(e){return this.services.hasOwnProperty(e)}addListener(e,t){this.events.addListener(e,t)}emitEvent(e,t){this.events.emit(e,t)}}),window.AC_SERVICES);y.addListener("Settings.Form.Ready",(e=>{const t=document.querySelector(".sidebox.layouts");if(t){const e=new n(t);y.registerService("OrderSidebox",e);const s=document.querySelector(".layout-selector ul");s&&e.onOrdered((e=>{const t=document.createElement("div");e.forEach((e=>{let n=s.querySelector(`[data-screen="${e}"]`);n&&t.appendChild(n)})),t.querySelectorAll("li").forEach((e=>{s.appendChild(e)}))}))}const s=document.querySelector(".ac-setbox");s&&y.registerService("ListScreenSettings",new c(s,e));const i=document.querySelector('#listscreen_settings input[name="title"]');i&&i.addEventListener("keyup",(()=>{document.querySelectorAll(`.layout-selector [data-screen="${AC.layout}"] a`).forEach((e=>{e.innerHTML=i.value})),document.querySelectorAll(`.layouts__items [data-screen="${AC.layout}"] [data-label]`).forEach((e=>{e.innerHTML=i.value}))}))}))})()})();