Plugin Directory

Changeset 3266815


Ignore:
Timestamp:
04/04/2025 09:16:57 AM (10 months ago)
Author:
artistudio
Message:

Release version 2.5.0

Location:
floating-awesome-button
Files:
769 added
23 deleted
21 edited

Legend:

Unmodified
Added
Removed
  • floating-awesome-button/trunk/assets/build/components/fab/bundle.css

    r3201242 r3266815  
    1 .fab-bg-shape-active.svelte-rgl5bu{background:var(--background-color)}.fab-rotate-animation.svelte-qy3xnw{animation:fab-animation 0.4s ease-out forwards}.fab-bg-shape-active.svelte-9oite{background:var(--background-color) !important}.fab-single-collection.svelte-9oite{position:initial}
     1.fab-bg-shape-active.svelte-rgl5bu{background:var(--background-color)}.fab-bg-shape-active.svelte-9oite{background:var(--background-color) !important}.fab-single-collection.svelte-9oite{position:initial}.fab-rotate-animation.svelte-qy3xnw{animation:fab-animation 0.4s ease-out forwards}
  • floating-awesome-button/trunk/assets/build/components/toast/bundle.js

    r3261253 r3266815  
    1 var app=function(){"use strict";function t(){}function o(t){return t()}function e(){return Object.create(null)}function n(t){t.forEach(o)}function i(t){return"function"==typeof t}function s(t,o){return t!=t?o==o:t!==o||t&&"object"==typeof t||"function"==typeof t}let a,l;function c(t,o){return a||(a=document.createElement("a")),a.href=o,t===a.href}function u(t,o){t.appendChild(o)}function d(t,o,e){t.insertBefore(o,e||null)}function p(t){t.parentNode&&t.parentNode.removeChild(t)}function f(t){return document.createElement(t)}function h(t){return document.createTextNode(t)}function m(){return h(" ")}function b(t,o,e){null==e?t.removeAttribute(o):t.getAttribute(o)!==e&&t.setAttribute(o,e)}function g(t,o){o=""+o,t.data!==o&&(t.data=o)}function y(t,o,e,n){null==e?t.style.removeProperty(o):t.style.setProperty(o,e,n?"important":"")}function v(t){l=t}const w=[],k=[];let _=[];const E=[],x=Promise.resolve();let $=!1;function N(t){_.push(t)}const C=new Set;let T=0;function L(){if(0!==T)return;const t=l;do{try{for(;T<w.length;){const t=w[T];T++,v(t),O(t.$$)}}catch(t){throw w.length=0,T=0,t}for(v(null),w.length=0,T=0;k.length;)k.pop()();for(let t=0;t<_.length;t+=1){const o=_[t];C.has(o)||(C.add(o),o())}_.length=0}while(w.length);for(;E.length;)E.pop()();$=!1,C.clear(),v(t)}function O(t){if(null!==t.fragment){t.update(),n(t.before_update);const o=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,o),t.after_update.forEach(N)}}const P=new Set;function A(t,o){const e=t.$$;null!==e.fragment&&(!function(t){const o=[],e=[];_.forEach((n=>-1===t.indexOf(n)?o.push(n):e.push(n))),e.forEach((t=>t())),_=o}(e.after_update),n(e.on_destroy),e.fragment&&e.fragment.d(o),e.on_destroy=e.fragment=null,e.ctx=[])}function F(t,o){-1===t.$$.dirty[0]&&(w.push(t),$||($=!0,x.then(L)),t.$$.dirty.fill(0)),t.$$.dirty[o/31|0]|=1<<o%31}function M(s,a,r,c,u,d,f,h=[-1]){const m=l;v(s);const b=s.$$={fragment:null,ctx:[],props:d,update:t,not_equal:u,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(a.context||(m?m.$$.context:[])),callbacks:e(),dirty:h,skip_bound:!1,root:a.target||m.$$.root};f&&f(b.root);let g=!1;if(b.ctx=r?r(s,a.props||{},((t,o,...e)=>{const n=e.length?e[0]:o;return b.ctx&&u(b.ctx[t],b.ctx[t]=n)&&(!b.skip_bound&&b.bound[t]&&b.bound[t](n),g&&F(s,t)),o})):[],b.update(),g=!0,n(b.before_update),b.fragment=!!c&&c(b.ctx),a.target){if(a.hydrate){const t=function(t){return Array.from(t.childNodes)}(a.target);b.fragment&&b.fragment.l(t),t.forEach(p)}else b.fragment&&b.fragment.c();a.intro&&((y=s.$$.fragment)&&y.i&&(P.delete(y),y.i(w))),function(t,e,s,a){const{fragment:r,after_update:l}=t.$$;r&&r.m(e,s),a||N((()=>{const e=t.$$.on_mount.map(o).filter(i);t.$$.on_destroy?t.$$.on_destroy.push(...e):n(e),t.$$.on_mount=[]})),l.forEach(N)}(s,a.target,a.anchor,a.customElement),L()}var y,w;v(m)}class S{$destroy(){A(this,1),this.$destroy=t}$on(o,e){if(!i(e))return t;const n=this.$$.callbacks[o]||(this.$$.callbacks[o]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var o;this.$$set&&(o=t,0!==Object.keys(o).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}var j="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};
     1var app=function(){"use strict";function t(){}function o(t){return t()}function e(){return Object.create(null)}function n(t){t.forEach(o)}function i(t){return"function"==typeof t}function s(t,o){return t!=t?o==o:t!==o||t&&"object"==typeof t||"function"==typeof t}let a,l;function c(t,o){return a||(a=document.createElement("a")),a.href=o,t===a.href}function u(t,o){t.appendChild(o)}function d(t,o,e){t.insertBefore(o,e||null)}function p(t){t.parentNode&&t.parentNode.removeChild(t)}function f(t){return document.createElement(t)}function h(t){return document.createTextNode(t)}function m(){return h(" ")}function g(t,o,e){null==e?t.removeAttribute(o):t.getAttribute(o)!==e&&t.setAttribute(o,e)}function b(t,o){o=""+o,t.data!==o&&(t.data=o)}function y(t,o,e,n){null==e?t.style.removeProperty(o):t.style.setProperty(o,e,n?"important":"")}function v(t){l=t}const w=[],k=[];let _=[];const E=[],x=Promise.resolve();let $=!1;function N(t){_.push(t)}const C=new Set;let T=0;function L(){if(0!==T)return;const t=l;do{try{for(;T<w.length;){const t=w[T];T++,v(t),O(t.$$)}}catch(t){throw w.length=0,T=0,t}for(v(null),w.length=0,T=0;k.length;)k.pop()();for(let t=0;t<_.length;t+=1){const o=_[t];C.has(o)||(C.add(o),o())}_.length=0}while(w.length);for(;E.length;)E.pop()();$=!1,C.clear(),v(t)}function O(t){if(null!==t.fragment){t.update(),n(t.before_update);const o=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,o),t.after_update.forEach(N)}}const P=new Set;function A(t,o){const e=t.$$;null!==e.fragment&&(!function(t){const o=[],e=[];_.forEach((n=>-1===t.indexOf(n)?o.push(n):e.push(n))),e.forEach((t=>t())),_=o}(e.after_update),n(e.on_destroy),e.fragment&&e.fragment.d(o),e.on_destroy=e.fragment=null,e.ctx=[])}function F(t,o){-1===t.$$.dirty[0]&&(w.push(t),$||($=!0,x.then(L)),t.$$.dirty.fill(0)),t.$$.dirty[o/31|0]|=1<<o%31}function I(s,a,r,c,u,d,f,h=[-1]){const m=l;v(s);const g=s.$$={fragment:null,ctx:[],props:d,update:t,not_equal:u,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(a.context||(m?m.$$.context:[])),callbacks:e(),dirty:h,skip_bound:!1,root:a.target||m.$$.root};f&&f(g.root);let b=!1;if(g.ctx=r?r(s,a.props||{},((t,o,...e)=>{const n=e.length?e[0]:o;return g.ctx&&u(g.ctx[t],g.ctx[t]=n)&&(!g.skip_bound&&g.bound[t]&&g.bound[t](n),b&&F(s,t)),o})):[],g.update(),b=!0,n(g.before_update),g.fragment=!!c&&c(g.ctx),a.target){if(a.hydrate){const t=function(t){return Array.from(t.childNodes)}(a.target);g.fragment&&g.fragment.l(t),t.forEach(p)}else g.fragment&&g.fragment.c();a.intro&&((y=s.$$.fragment)&&y.i&&(P.delete(y),y.i(w))),function(t,e,s,a){const{fragment:r,after_update:l}=t.$$;r&&r.m(e,s),a||N((()=>{const e=t.$$.on_mount.map(o).filter(i);t.$$.on_destroy?t.$$.on_destroy.push(...e):n(e),t.$$.on_mount=[]})),l.forEach(N)}(s,a.target,a.anchor,a.customElement),L()}var y,w;v(m)}class M{$destroy(){A(this,1),this.$destroy=t}$on(o,e){if(!i(e))return t;const n=this.$$.callbacks[o]||(this.$$.callbacks[o]=[]);return n.push(e),()=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var o;this.$$set&&(o=t,0!==Object.keys(o).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}var S="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};
    22/*!
    33     * Toastify js 1.12.0
     
    77     * Copyright (C) 2018 Varun A P
    88     */
    9 var W,D,I=(W=function(t){var o,e;o=j,e=function(t){var o=function(t){return new o.lib.init(t)};function e(t,o){return o.offset[t]?isNaN(o.offset[t])?o.offset[t]:o.offset[t]+"px":"0px"}function n(t,o){return!(!t||"string"!=typeof o||!(t.className&&t.className.trim().split(/\s+/gi).indexOf(o)>-1))}return o.defaults={oldestFirst:!0,text:"Toastify is awesome!",node:void 0,duration:3e3,selector:void 0,callback:function(){},destination:void 0,newWindow:!1,close:!1,gravity:"toastify-top",positionLeft:!1,position:"",backgroundColor:"",avatar:"",className:"",stopOnFocus:!0,onClick:function(){},offset:{x:0,y:0},escapeMarkup:!0,ariaLive:"polite",style:{background:""}},o.lib=o.prototype={toastify:"1.12.0",constructor:o,init:function(t){return t||(t={}),this.options={},this.toastElement=null,this.options.text=t.text||o.defaults.text,this.options.node=t.node||o.defaults.node,this.options.duration=0===t.duration?0:t.duration||o.defaults.duration,this.options.selector=t.selector||o.defaults.selector,this.options.callback=t.callback||o.defaults.callback,this.options.destination=t.destination||o.defaults.destination,this.options.newWindow=t.newWindow||o.defaults.newWindow,this.options.close=t.close||o.defaults.close,this.options.gravity="bottom"===t.gravity?"toastify-bottom":o.defaults.gravity,this.options.positionLeft=t.positionLeft||o.defaults.positionLeft,this.options.position=t.position||o.defaults.position,this.options.backgroundColor=t.backgroundColor||o.defaults.backgroundColor,this.options.avatar=t.avatar||o.defaults.avatar,this.options.className=t.className||o.defaults.className,this.options.stopOnFocus=void 0===t.stopOnFocus?o.defaults.stopOnFocus:t.stopOnFocus,this.options.onClick=t.onClick||o.defaults.onClick,this.options.offset=t.offset||o.defaults.offset,this.options.escapeMarkup=void 0!==t.escapeMarkup?t.escapeMarkup:o.defaults.escapeMarkup,this.options.ariaLive=t.ariaLive||o.defaults.ariaLive,this.options.style=t.style||o.defaults.style,t.backgroundColor&&(this.options.style.background=t.backgroundColor),this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var t=document.createElement("div");for(var o in t.className="toastify on "+this.options.className,this.options.position?t.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(t.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):t.className+=" toastify-right",t.className+=" "+this.options.gravity,this.options.backgroundColor&&console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.'),this.options.style)t.style[o]=this.options.style[o];if(this.options.ariaLive&&t.setAttribute("aria-live",this.options.ariaLive),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)t.appendChild(this.options.node);else if(this.options.escapeMarkup?t.innerText=this.options.text:t.innerHTML=this.options.text,""!==this.options.avatar){var n=document.createElement("img");n.src=this.options.avatar,n.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?t.appendChild(n):t.insertAdjacentElement("afterbegin",n)}if(!0===this.options.close){var i=document.createElement("button");i.type="button",i.setAttribute("aria-label","Close"),i.className="toast-close",i.innerHTML="&#10006;",i.addEventListener("click",function(t){t.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var s=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&s>360?t.insertAdjacentElement("afterbegin",i):t.appendChild(i)}if(this.options.stopOnFocus&&this.options.duration>0){var a=this;t.addEventListener("mouseover",(function(o){window.clearTimeout(t.timeOutValue)})),t.addEventListener("mouseleave",(function(){t.timeOutValue=window.setTimeout((function(){a.removeElement(t)}),a.options.duration)}))}if(void 0!==this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),this.options.onClick()}.bind(this)),"object"==typeof this.options.offset){var r=e("x",this.options),l=e("y",this.options),c="left"==this.options.position?r:"-"+r,u="toastify-top"==this.options.gravity?l:"-"+l;t.style.transform="translate("+c+","+u+")"}return t},showToast:function(){var t;if(this.toastElement=this.buildToast(),!(t="string"==typeof this.options.selector?document.getElementById(this.options.selector):this.options.selector instanceof HTMLElement||"undefined"!=typeof ShadowRoot&&this.options.selector instanceof ShadowRoot?this.options.selector:document.body))throw"Root element is not defined";var e=o.defaults.oldestFirst?t.firstChild:t.lastChild;return t.insertBefore(this.toastElement,e),o.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(t){t.className=t.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),t.parentNode&&t.parentNode.removeChild(t),this.options.callback.call(t),o.reposition()}.bind(this),400)}},o.reposition=function(){for(var t,o={top:15,bottom:15},e={top:15,bottom:15},i={top:15,bottom:15},s=document.getElementsByClassName("toastify"),a=0;a<s.length;a++){t=!0===n(s[a],"toastify-top")?"toastify-top":"toastify-bottom";var r=s[a].offsetHeight;t=t.substr(9,t.length-1),(window.innerWidth>0?window.innerWidth:screen.width)<=360?(s[a].style[t]=i[t]+"px",i[t]+=r+15):!0===n(s[a],"toastify-left")?(s[a].style[t]=o[t]+"px",o[t]+=r+15):(s[a].style[t]=e[t]+"px",e[t]+=r+15)}return this},o.lib.init.prototype=o.lib,o},t.exports?t.exports=e():o.Toastify=e()},W(D={exports:{}},D.exports),D.exports);function B(t){let o,e;return{c(){o=f("img"),b(o,"class","toast-image"),c(o.src,e=t[1].image)||b(o,"src",e),b(o,"alt","Toast")},m(t,e){d(t,o,e)},p(t,n){2&n&&!c(o.src,e=t[1].image)&&b(o,"src",e)},d(t){t&&p(o)}}}function V(t){let o,e,n,i,s=t[1].text_button+"";return{c(){o=f("a"),e=h(s),b(o,"class","toast-button"),y(o,"color",t[1].text_color),b(o,"href",n=t[1].url_button),b(o,"target",i=1===t[1].window?"_blank":"_self")},m(t,n){d(t,o,n),u(o,e)},p(t,a){2&a&&s!==(s=t[1].text_button+"")&&g(e,s),2&a&&y(o,"color",t[1].text_color),2&a&&n!==(n=t[1].url_button)&&b(o,"href",n),2&a&&i!==(i=1===t[1].window?"_blank":"_self")&&b(o,"target",i)},d(t){t&&p(o)}}}function q(o){let e,n,i,s,a,r,l,c,v,w=o[1].image&&B(o),k=o[1].text_button&&o[1].url_button&&V(o);return{c(){e=f("div"),n=f("div"),w&&w.c(),i=m(),s=f("div"),a=f("span"),r=h(o[0]),l=m(),k&&k.c(),c=m(),v=f("div"),b(n,"class","toast-left"),b(v,"class","toast-bar"),y(v,"background",o[1].bar_color),y(v,"animation-duration",o[1].duration+"ms"),b(s,"class","toast-right"),b(e,"class","toast-content")},m(t,o){d(t,e,o),u(e,n),w&&w.m(n,null),u(e,i),u(e,s),u(s,a),u(a,r),u(s,l),k&&k.m(s,null),u(s,c),u(s,v)},p(t,[o]){t[1].image?w?w.p(t,o):(w=B(t),w.c(),w.m(n,null)):w&&(w.d(1),w=null),1&o&&g(r,t[0]),t[1].text_button&&t[1].url_button?k?k.p(t,o):(k=V(t),k.c(),k.m(s,c)):k&&(k.d(1),k=null),2&o&&y(v,"background",t[1].bar_color),2&o&&y(v,"animation-duration",t[1].duration+"ms")},i:t,o:t,d(t){t&&p(e),w&&w.d(),k&&k.d()}}}function H(t,o,e){let{message:n=""}=o,{toast:i={}}=o;return t.$$set=t=>{"message"in t&&e(0,n=t.message),"toast"in t&&e(1,i=t.toast)},[n,i]}class R extends S{constructor(t){super(),M(this,t,H,q,s,{message:0,toast:1})}}class z{static setCookie(t,o,e=30,n="/"){let i=[[t,o],["path",n]];e&&i.push(["max-age",24*e*60*60]),document.cookie=i.map((t=>t.join("="))).join(";")}static getCookie(t){let o=null;return document.cookie.split(";").some((e=>{let n=e.split("=");if(n[0].replace(" ","")===t)return o=n[1],!0})),o}}function G(t){let{to_display:o,nonce:e}=window.FAB_PLUGIN;const n=t=>{const o=document.createElement("div");return o.style.display="inline-block",new R({target:o,props:t}),o},i=(t,o)=>{let e=`FABToast-${o.ID}`;!z.getCookie(e)&&o.trigger.cookie.expiration>0&&z.setCookie(e,"true",o.trigger.cookie.expiration,"/")};return o=o.filter((t=>["toast","scarcity_toast"].includes(t.type))),o.forEach(((t,o)=>{let s=void 0!==t.trigger.delay?t.trigger.delay.replace("ms",""):0,a=`FABToast-${t.ID}`;z.getCookie(a)||setTimeout((()=>{I({node:n({message:t.no_html_content,toast:t.toast}),duration:t.toast.duration,destination:t.toast.url_button,newWindow:1===t.toast.window,close:1===t.toast.closeable,gravity:t.toast.gravity,position:t.toast.position,style:{background:t.toast.background,color:t.toast.text_color},stopOnFocus:!1}).showToast();const o=document.querySelector(".toastify"),s=o.querySelector(".toast-bar");o&&s&&(((t,o,e)=>{let n=Date.now(),i=e,s=!1;t.addEventListener("mouseover",(function(){s||(s=!0,i-=Date.now()-n,window.clearTimeout(t.timeOutValue),o.style.animationPlayState="paused")})),t.addEventListener("mouseleave",(function(){s&&(s=!1,n=Date.now(),t.timeOutValue=window.setTimeout((function(){t.remove()}),i),o.style.animationPlayState="running")}))})(o,s,t.toast.duration),((t,o)=>{const n=i=>{i.stopImmediatePropagation();let s=`FABToast-${o.ID}`,a=z.getCookie(s),l=o.toast.remember_on_click;!a&&l&&o.toast.url_button&&o.toast.text_button&&z.setCookie(s,"true",9999,"/"),o.toast.url_button&&o.toast.text_button&&(jQuery.ajax({url:"/wp-json/fab/v1/clicked",type:"POST",beforeSend(t){t.setRequestHeader("X-WP-Nonce",e.clicked)},data:{post_id:o.ID},success:t=>{1===o.toast.window?window.open(o.toast.url_button,"_blank"):window.location=o.toast.url_button},error:(t,o,e)=>{r,console.error("Error:",e)}}),t.removeEventListener("click",n))};t.addEventListener("click",n)})(o,t),((t,o)=>{const e=new MutationObserver((e=>{for(let n of e)n.removedNodes.forEach((e=>{e===t&&i(0,o)}))})),n=t.parentNode;n&&e.observe(n,{childList:!0})})(o,t));const a=o.querySelector(".toast-close");a&&(a.style.color=t.toast.text_color)}),s)})),[]}return new class extends S{constructor(t){super(),M(this,t,G,null,s,{})}}({target:document.querySelector("#fab-dom")})}();
     9var j,W,D=(j=function(t){var o,e;o=S,e=function(t){var o=function(t){return new o.lib.init(t)};function e(t,o){return o.offset[t]?isNaN(o.offset[t])?o.offset[t]:o.offset[t]+"px":"0px"}function n(t,o){return!(!t||"string"!=typeof o||!(t.className&&t.className.trim().split(/\s+/gi).indexOf(o)>-1))}return o.defaults={oldestFirst:!0,text:"Toastify is awesome!",node:void 0,duration:3e3,selector:void 0,callback:function(){},destination:void 0,newWindow:!1,close:!1,gravity:"toastify-top",positionLeft:!1,position:"",backgroundColor:"",avatar:"",className:"",stopOnFocus:!0,onClick:function(){},offset:{x:0,y:0},escapeMarkup:!0,ariaLive:"polite",style:{background:""}},o.lib=o.prototype={toastify:"1.12.0",constructor:o,init:function(t){return t||(t={}),this.options={},this.toastElement=null,this.options.text=t.text||o.defaults.text,this.options.node=t.node||o.defaults.node,this.options.duration=0===t.duration?0:t.duration||o.defaults.duration,this.options.selector=t.selector||o.defaults.selector,this.options.callback=t.callback||o.defaults.callback,this.options.destination=t.destination||o.defaults.destination,this.options.newWindow=t.newWindow||o.defaults.newWindow,this.options.close=t.close||o.defaults.close,this.options.gravity="bottom"===t.gravity?"toastify-bottom":o.defaults.gravity,this.options.positionLeft=t.positionLeft||o.defaults.positionLeft,this.options.position=t.position||o.defaults.position,this.options.backgroundColor=t.backgroundColor||o.defaults.backgroundColor,this.options.avatar=t.avatar||o.defaults.avatar,this.options.className=t.className||o.defaults.className,this.options.stopOnFocus=void 0===t.stopOnFocus?o.defaults.stopOnFocus:t.stopOnFocus,this.options.onClick=t.onClick||o.defaults.onClick,this.options.offset=t.offset||o.defaults.offset,this.options.escapeMarkup=void 0!==t.escapeMarkup?t.escapeMarkup:o.defaults.escapeMarkup,this.options.ariaLive=t.ariaLive||o.defaults.ariaLive,this.options.style=t.style||o.defaults.style,t.backgroundColor&&(this.options.style.background=t.backgroundColor),this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var t=document.createElement("div");for(var o in t.className="toastify on "+this.options.className,this.options.position?t.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(t.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):t.className+=" toastify-right",t.className+=" "+this.options.gravity,this.options.backgroundColor&&console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.'),this.options.style)t.style[o]=this.options.style[o];if(this.options.ariaLive&&t.setAttribute("aria-live",this.options.ariaLive),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)t.appendChild(this.options.node);else if(this.options.escapeMarkup?t.innerText=this.options.text:t.innerHTML=this.options.text,""!==this.options.avatar){var n=document.createElement("img");n.src=this.options.avatar,n.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?t.appendChild(n):t.insertAdjacentElement("afterbegin",n)}if(!0===this.options.close){var i=document.createElement("button");i.type="button",i.setAttribute("aria-label","Close"),i.className="toast-close",i.innerHTML="&#10006;",i.addEventListener("click",function(t){t.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var s=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&s>360?t.insertAdjacentElement("afterbegin",i):t.appendChild(i)}if(this.options.stopOnFocus&&this.options.duration>0){var a=this;t.addEventListener("mouseover",(function(o){window.clearTimeout(t.timeOutValue)})),t.addEventListener("mouseleave",(function(){t.timeOutValue=window.setTimeout((function(){a.removeElement(t)}),a.options.duration)}))}if(void 0!==this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),this.options.onClick()}.bind(this)),"object"==typeof this.options.offset){var r=e("x",this.options),l=e("y",this.options),c="left"==this.options.position?r:"-"+r,u="toastify-top"==this.options.gravity?l:"-"+l;t.style.transform="translate("+c+","+u+")"}return t},showToast:function(){var t;if(this.toastElement=this.buildToast(),!(t="string"==typeof this.options.selector?document.getElementById(this.options.selector):this.options.selector instanceof HTMLElement||"undefined"!=typeof ShadowRoot&&this.options.selector instanceof ShadowRoot?this.options.selector:document.body))throw"Root element is not defined";var e=o.defaults.oldestFirst?t.firstChild:t.lastChild;return t.insertBefore(this.toastElement,e),o.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(t){t.className=t.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),t.parentNode&&t.parentNode.removeChild(t),this.options.callback.call(t),o.reposition()}.bind(this),400)}},o.reposition=function(){for(var t,o={top:15,bottom:15},e={top:15,bottom:15},i={top:15,bottom:15},s=document.getElementsByClassName("toastify"),a=0;a<s.length;a++){t=!0===n(s[a],"toastify-top")?"toastify-top":"toastify-bottom";var r=s[a].offsetHeight;t=t.substr(9,t.length-1),(window.innerWidth>0?window.innerWidth:screen.width)<=360?(s[a].style[t]=i[t]+"px",i[t]+=r+15):!0===n(s[a],"toastify-left")?(s[a].style[t]=o[t]+"px",o[t]+=r+15):(s[a].style[t]=e[t]+"px",e[t]+=r+15)}return this},o.lib.init.prototype=o.lib,o},t.exports?t.exports=e():o.Toastify=e()},j(W={exports:{}},W.exports),W.exports);function B(t){let o,e;return{c(){o=f("img"),g(o,"class","toast-image"),c(o.src,e=t[1].image)||g(o,"src",e),g(o,"alt","Toast")},m(t,e){d(t,o,e)},p(t,n){2&n&&!c(o.src,e=t[1].image)&&g(o,"src",e)},d(t){t&&p(o)}}}function V(t){let o,e,n,i,s=t[1].text_button+"";return{c(){o=f("a"),e=h(s),g(o,"class","toast-button"),y(o,"color",t[1].text_color),g(o,"href",n=t[1].url_button),g(o,"target",i=1===t[1].window?"_blank":"_self")},m(t,n){d(t,o,n),u(o,e)},p(t,a){2&a&&s!==(s=t[1].text_button+"")&&b(e,s),2&a&&y(o,"color",t[1].text_color),2&a&&n!==(n=t[1].url_button)&&g(o,"href",n),2&a&&i!==(i=1===t[1].window?"_blank":"_self")&&g(o,"target",i)},d(t){t&&p(o)}}}function q(o){let e,n,i,s,a,r,l,c,v,w=o[1].image&&B(o),k=o[1].text_button&&o[1].url_button&&V(o);return{c(){e=f("div"),n=f("div"),w&&w.c(),i=m(),s=f("div"),a=f("span"),r=h(o[0]),l=m(),k&&k.c(),c=m(),v=f("div"),g(n,"class","toast-left"),g(v,"class","toast-bar"),y(v,"background",o[1].bar_color),y(v,"animation-duration",o[1].duration+"ms"),g(s,"class","toast-right"),g(e,"class","toast-content")},m(t,o){d(t,e,o),u(e,n),w&&w.m(n,null),u(e,i),u(e,s),u(s,a),u(a,r),u(s,l),k&&k.m(s,null),u(s,c),u(s,v)},p(t,[o]){t[1].image?w?w.p(t,o):(w=B(t),w.c(),w.m(n,null)):w&&(w.d(1),w=null),1&o&&b(r,t[0]),t[1].text_button&&t[1].url_button?k?k.p(t,o):(k=V(t),k.c(),k.m(s,c)):k&&(k.d(1),k=null),2&o&&y(v,"background",t[1].bar_color),2&o&&y(v,"animation-duration",t[1].duration+"ms")},i:t,o:t,d(t){t&&p(e),w&&w.d(),k&&k.d()}}}function H(t,o,e){let{message:n=""}=o,{toast:i={}}=o;return t.$$set=t=>{"message"in t&&e(0,n=t.message),"toast"in t&&e(1,i=t.toast)},[n,i]}class R extends M{constructor(t){super(),I(this,t,H,q,s,{message:0,toast:1})}}class z{static setCookie(t,o,e=30,n="/"){let i=[[t,o],["path",n]];e&&i.push(["max-age",24*e*60*60]),document.cookie=i.map((t=>t.join("="))).join(";")}static getCookie(t){let o=null;return document.cookie.split(";").some((e=>{let n=e.split("=");if(n[0].replace(" ","")===t)return o=n[1],!0})),o}}function G(t){let{to_display:o,nonce:e}=window.FAB_PLUGIN;const n=t=>{const o=document.createElement("div");return o.style.display="inline-block",new R({target:o,props:t}),o},i=(t,o)=>{let e=`FABToast-${o.ID}`,n=z.getCookie(e),i=parseInt(o.trigger.cookie.expiration);(!n||0!=i&&n&&n!=i)&&z.setCookie(e,i,i,"/")};return o=o.filter((t=>["toast","scarcity_toast"].includes(t.type))),o.forEach(((t,o)=>{let s=void 0!==t.trigger.delay?t.trigger.delay.replace("ms",""):0,a=`FABToast-${t.ID}`,l=z.getCookie(a),c=parseInt(t.trigger.cookie.expiration);0!=c&&l&&l==c||setTimeout((()=>{D({node:n({message:t.no_html_content,toast:t.toast}),duration:t.toast.duration,destination:t.toast.url_button,newWindow:1===t.toast.window,close:1===t.toast.closeable,gravity:t.toast.gravity,position:t.toast.position,style:{background:t.toast.background,color:t.toast.text_color},stopOnFocus:!1}).showToast();const o=document.querySelector(".toastify"),s=o.querySelector(".toast-bar");o&&s&&(((t,o,e)=>{let n=Date.now(),i=e,s=!1;t.addEventListener("mouseover",(function(){s||(s=!0,i-=Date.now()-n,window.clearTimeout(t.timeOutValue),o.style.animationPlayState="paused")})),t.addEventListener("mouseleave",(function(){s&&(s=!1,n=Date.now(),t.timeOutValue=window.setTimeout((function(){t.remove()}),i),o.style.animationPlayState="running")}))})(o,s,t.toast.duration),((t,o)=>{const n=i=>{i.stopImmediatePropagation();let s=`FABToast-${o.ID}`,a=z.getCookie(s),l=o.toast.remember_on_click,c=parseInt(o.trigger.cookie.expiration);!a&&l&&o.toast.url_button&&o.toast.text_button&&z.setCookie(s,c,9999,"/"),o.toast.url_button&&o.toast.text_button&&(jQuery.ajax({url:"/wp-json/fab/v1/clicked",type:"POST",beforeSend(t){t.setRequestHeader("X-WP-Nonce",e.clicked)},data:{post_id:o.ID},success:t=>{1===o.toast.window?window.open(o.toast.url_button,"_blank"):window.location=o.toast.url_button},error:(t,o,e)=>{r,console.error("Error:",e)}}),t.removeEventListener("click",n))};t.addEventListener("click",n)})(o,t),((t,o)=>{const e=new MutationObserver((e=>{for(let n of e)n.removedNodes.forEach((e=>{e===t&&i(0,o)}))})),n=t.parentNode;n&&e.observe(n,{childList:!0})})(o,t));const a=o.querySelector(".toast-close");a&&(a.style.color=t.toast.text_color)}),s)})),[]}return new class extends M{constructor(t){super(),I(this,t,G,null,s,{})}}({target:document.querySelector("#fab-dom")})}();
    1010//# sourceMappingURL=bundle.js.map
  • floating-awesome-button/trunk/assets/build/manifest-sass.json

    r3265480 r3266815  
    11{
    2   "assets/css/backend/style.scss": "assets/build/css/backend.1bc0e20d.css",
    3   "assets/css/frontend/style.scss": "assets/build/css/frontend.961e60c8.css",
     2  "assets/css/backend/style.scss": "assets/build/css/backend.b97ebe53.css",
     3  "assets/css/frontend/style.scss": "assets/build/css/frontend.6fac8c29.css",
    44  "assets/css/fab-shapes/style.scss": "assets/build/css/fab-shapes.b9cf12b6.css",
    55  "assets/css/fab-modal/style.scss": "assets/build/css/fab-modal.30156d58.css"
  • floating-awesome-button/trunk/assets/build/manifest.json

    r3265480 r3266815  
    11{
    2   "_Template-Cr_gpUNA.js": {
    3     "file": "assets/Template-Cr_gpUNA.js",
     2  "_Template-LBCkK5ue.js": {
     3    "file": "assets/Template-LBCkK5ue.js",
    44    "name": "Template",
    55    "imports": [
    6       "_runtime-dom.esm-bundler-C5sV64i3.js"
     6      "_runtime-dom.esm-bundler-Brn12ING.js"
    77    ]
    88  },
    9   "_runtime-dom.esm-bundler-C5sV64i3.js": {
    10     "file": "assets/runtime-dom.esm-bundler-C5sV64i3.js",
     9  "_runtime-dom.esm-bundler-Brn12ING.js": {
     10    "file": "assets/runtime-dom.esm-bundler-Brn12ING.js",
    1111    "name": "runtime-dom.esm-bundler"
    1212  },
    1313  "assets/components/metabox-post/main.js": {
    14     "file": "components/metabox-post/bundle.kJBctkR-.js",
     14    "file": "components/metabox-post/bundle.CPsRaxpn.js",
    1515    "name": "components/metabox-post/bundle.js",
    1616    "src": "assets/components/metabox-post/main.js",
    1717    "isEntry": true,
    1818    "imports": [
    19       "_runtime-dom.esm-bundler-C5sV64i3.js",
    20       "_Template-Cr_gpUNA.js"
     19      "_runtime-dom.esm-bundler-Brn12ING.js",
     20      "_Template-LBCkK5ue.js"
    2121    ]
    2222  },
    2323  "assets/components/metabox-setting/main.js": {
    24     "file": "components/metabox-setting/bundle.CM_REHHk.js",
     24    "file": "components/metabox-setting/bundle.DC8O1bHu.js",
    2525    "name": "components/metabox-setting/bundle.js",
    2626    "src": "assets/components/metabox-setting/main.js",
    2727    "isEntry": true,
    2828    "imports": [
    29       "_runtime-dom.esm-bundler-C5sV64i3.js"
     29      "_runtime-dom.esm-bundler-Brn12ING.js"
    3030    ]
    3131  },
    3232  "assets/components/templates/main.js": {
    33     "file": "components/templates/bundle.CqIs1ImA.js",
     33    "file": "components/templates/bundle.DyeVP__A.js",
    3434    "name": "components/templates/bundle.js",
    3535    "src": "assets/components/templates/main.js",
    3636    "isEntry": true,
    3737    "imports": [
    38       "_runtime-dom.esm-bundler-C5sV64i3.js"
     38      "_runtime-dom.esm-bundler-Brn12ING.js"
     39    ]
     40  },
     41  "assets/components/wc-metabox-coupon/main.js": {
     42    "file": "components/wc-metabox-coupon/bundle.BYKtueux.js",
     43    "name": "components/wc-metabox-coupon/bundle.js",
     44    "src": "assets/components/wc-metabox-coupon/main.js",
     45    "isEntry": true,
     46    "imports": [
     47      "_runtime-dom.esm-bundler-Brn12ING.js",
     48      "_Template-LBCkK5ue.js"
    3949    ]
    4050  },
    4151  "assets/components/wc-metabox-product/main.js": {
    42     "file": "components/wc-metabox-product/bundle.Bv41D-sC.js",
     52    "file": "components/wc-metabox-product/bundle.DheY8iG0.js",
    4353    "name": "components/wc-metabox-product/bundle.js",
    4454    "src": "assets/components/wc-metabox-product/main.js",
    4555    "isEntry": true,
    4656    "imports": [
    47       "_runtime-dom.esm-bundler-C5sV64i3.js",
    48       "_Template-Cr_gpUNA.js"
     57      "_runtime-dom.esm-bundler-Brn12ING.js",
     58      "_Template-LBCkK5ue.js"
    4959    ]
    5060  },
     
    5666  },
    5767  "assets/ts/frontend/plugin.ts": {
    58     "file": "js/frontend/plugin.BX85GC61.js",
     68    "file": "js/frontend/plugin.CBkVtZAo.js",
    5969    "name": "js/frontend/plugin.js",
    6070    "src": "assets/ts/frontend/plugin.ts",
  • floating-awesome-button/trunk/changelog.txt

    r3265480 r3266815  
    55This file contains older changelog entries, so we can keep the size of the standard WordPress readme.txt file reasonable.
    66For the latest changes, please see the "Changelog" section of the readme.txt file.
     7
     8= 2.5.0 (04.04.2025) =
     9* Added new FAB Template Filter 
     10* Integrated WooCommerce Coupon Metabox for enhanced compatibility 
     11* Optimized performance for faster loading times 
     12* Minor bug fixes and stability improvements 
    713
    814= 2.4.0 (02.04.2025) =
  • floating-awesome-button/trunk/config.json

    r3265480 r3266815  
    1 {"default":{"fab_affiliate":{"code":""},"fab_animation":{"elements":{"content":"fadeIn","fab":"ripple","fab_active":"fadeIn","fab_inactive":"fadeOut","logo":"pulse","tab":"heartBeat"},"enable":1},"fab_design":{"font":{"family":"inherit","padding":{"bottom":10,"left":10,"right":10,"sizing":"px","top":10},"size":{"unit":"rem","value":1.25},"style":"normal"},"layout":{"margin":{"bottom":0,"left":0,"right":0,"sizing":"px","top":0},"position":"right-bottom"},"size":{"custom":"","type":"medium"},"template":{"color":"#5b59ec","icon":{"class":"fas fa-ellipsis-h","color":"#fff"},"name":"classic","shape":""},"tooltip":{"enable":1}},"fab_hooks":[],"fab_order":[]},"description":"Floating Awesome Button (FAB): Elevate engagement with customizable action buttons. Showcase modals, shortcodes, widgets \u0026 links effortlessly.","enableHooks":["action","filter","shortcode"],"name":"Floating Awesome Button","premium":false,"production":true,"url":{"contact":"https://artistudio.xyz/contact","wordpress":"https://wordpress.org/plugins/floating-awesome-button"},"version":"2.4.0"}
     1{"default":{"fab_affiliate":{"code":""},"fab_animation":{"elements":{"content":"fadeIn","fab":"ripple","fab_active":"fadeIn","fab_inactive":"fadeOut","logo":"pulse","tab":"heartBeat"},"enable":1},"fab_design":{"font":{"family":"inherit","padding":{"bottom":10,"left":10,"right":10,"sizing":"px","top":10},"size":{"unit":"rem","value":1.25},"style":"normal"},"layout":{"margin":{"bottom":0,"left":0,"right":0,"sizing":"px","top":0},"position":"right-bottom"},"size":{"custom":"","type":"medium"},"template":{"color":"#5b59ec","icon":{"class":"fas fa-ellipsis-h","color":"#fff"},"name":"classic","shape":""},"tooltip":{"enable":1}},"fab_hooks":[],"fab_order":[]},"description":"Floating Awesome Button (FAB): Elevate engagement with customizable action buttons. Showcase modals, shortcodes, widgets \u0026 links effortlessly.","enableHooks":["action","filter","shortcode"],"name":"Floating Awesome Button","premium":false,"production":true,"url":{"contact":"https://artistudio.xyz/contact","wordpress":"https://wordpress.org/plugins/floating-awesome-button"},"version":"2.5.0"}
  • floating-awesome-button/trunk/floating-awesome-button.php

    r3265480 r3266815  
    55 * Plugin URI:        https://artistudio.xyz
    66 * Description:       Floating Awesome Button (FAB): Elevate engagement with customizable action buttons. Showcase modals,shortcodes, widgets & links effortlessly.
    7  * Version:           2.4.0
     7 * Version:           2.5.0
    88 * Author:            Artistudio
    99 * Author URI:        https://brain.artistudio.xyz/artistudio/WordPress-floating-awesome-button
  • floating-awesome-button/trunk/readme.txt

    r3265480 r3266815  
    1 === Floating Awesome Button (Sticky Button, Popup, Toast) & +50 Website Custom Interactive Element ===
     1=== Floating Awesome Button (Sticky Button, Popup, Toast) & +100 Website Custom Interactive Element ===
    22Contributors: artistudio, freemius
    33Tags: sticky button, popup, call to action, conversion, marketing
     
    55Tested up to: 6.7.2
    66Requires PHP: 5.6
    7 Stable tag: 2.4.0
     7Stable tag: 2.5.0
    88License: GPL-3.0
    99License URI: http://www.gnu.org/licenses/gpl-3.0.txt
     
    176176== Changelog ==
    177177
     178= 2.5.0 (04.04.2025) =
     179* Added new FAB Template Filter 
     180* Integrated WooCommerce Coupon Metabox for enhanced compatibility 
     181* Optimized performance for faster loading times 
     182* Minor bug fixes and stability improvements 
     183
    178184= 2.4.0 (02.04.2025) =
    179185* Implemented more Location Rules: Conditional Tags 
     
    227233= 1.10.1 (06.02.2025) =
    228234* Premium installation bug fixes
    229 
    230 = 1.10.0 (27.01.2025) =
    231 * Add analytics feature
    232 * Update location conditions via group rules
    233 * Add WooCommerce integration: Quick Purchase button type
    234 * Add WooCommerce integration: Apply Coupon button type
    235 * Add WooCommerce integration: Featured Product button type
    236 * Add WooCommerce integration: Cart Quantity & Cart Subtotal condition
    237 * Move plugin settings to FAB section
    238 * Minor bug fixes
    239235
    240236For older changelog entries, please see the additional [changelog.txt](https://plugins.svn.wordpress.org/floating-awesome-button/trunk/changelog.txt) delivered with the plugin.
  • floating-awesome-button/trunk/src/Api/Usages.php

    r3265480 r3266815  
    139139
    140140        $data['env']['url']            = home_url();
     141        $data['env']['plugin_version'] = $this->Plugin->getVersion();
    141142        $data['env']['php_version']    = phpversion();
    142143        $data['env']['wp_version']     = get_bloginfo( 'version' );
     
    168169
    169170        $this->_append_integrations_data_popular_fab_type( $data );
     171        $this->_append_integrations_data_popular_fab_template_id( $data );
    170172        $this->_append_integrations_data_popular_fab( $data );
    171173    }
     
    193195        );
    194196
    195         if ( $popular_fab_type ) {
    196             $data['integrations']['popular_fab_type'] = $popular_fab_type->meta_value;
    197         } else {
    198             $data['integrations']['popular_fab_type'] = null; // or some default value
    199         }
     197        $data['integrations']['popular_fab_type'] = $popular_fab_type ? $popular_fab_type->meta_value : null;
     198    }
     199
     200    /**
     201     * Append popular FAB template id data.
     202     *
     203     * @access private
     204     *
     205     * @param array $data Usage data.
     206     */
     207    private function _append_integrations_data_popular_fab_template_id( &$data ) {
     208        global $wpdb;
     209
     210        // Retrieve the popular fab template id.
     211        $popular_fab_template_id = $wpdb->get_row(
     212            "
     213            SELECT meta_value, COUNT(*) as count
     214            FROM {$wpdb->postmeta}
     215            WHERE meta_key = 'fab_template_id'
     216            GROUP BY meta_value
     217            ORDER BY count DESC
     218            LIMIT 1
     219            "
     220        );
     221
     222        $data['integrations']['popular_fab_template_id'] = $popular_fab_template_id ? $popular_fab_template_id->meta_value : null;
    200223    }
    201224
  • floating-awesome-button/trunk/src/Controller/Frontend/Frontend.php

    r3265480 r3266815  
    185185    public function fab_register_widget() {
    186186        // Grab Widgets Type.
    187         $types       = FABMetaboxSetting::$types;
     187        $types       = FABMetaboxSetting::getInstance()->get_types();
    188188        $widgetsType = array();
    189         foreach ( $types as $type ) {
    190             if ( $type['text'] === 'Widget' ) {
    191                 foreach ( $type['children'] as $child ) {
    192                     $widgetsType[] = $child['id'];
    193                 }
    194             }
     189        foreach ( $types['widget']['children'] as $type ) {
     190            $widgetsType[] = $type['id'];
    195191        }
    196192
  • floating-awesome-button/trunk/src/Controller/Legacy/Legacy_Option.php

    r3265480 r3266815  
    9595     */
    9696    public function deactivate() {
    97         wp_unschedule_event( $this->_schedule_name );
     97        $timestamp = wp_next_scheduled( $this->_schedule_name );
     98
     99        if ( $timestamp ) {
     100            wp_unschedule_event( $timestamp, $this->_schedule_name );
     101        }
    98102    }
    99103
  • floating-awesome-button/trunk/src/Controller/Types/Single_Post/Single_Post_Type.php

    r3265480 r3266815  
    1111 * @subpackage Fab/Module
    1212 */
    13 class Single_Post_Type extends Controller {
    14 
    15     /**
    16      * Type.
    17      *
    18      * @var string
    19      */
    20     public $type = 'single_post';
     13class Single_Post_Type extends Link_Group {
    2114
    2215    /**
     
    3023        ),
    3124    );
     25
     26    /**
     27     * Constructor.
     28     */
     29    public function __construct() {
     30        parent::__construct();
     31        $this->type = 'single_post';
     32    }
    3233}
  • floating-awesome-button/trunk/src/Controller/Types/Single_Post/Single_Post_Type_Editor.php

    r3265480 r3266815  
    2525     */
    2626    public function add_fab_setting_types( $types ) {
    27         // Check if link exists in types array.
    28         if ( ! isset( $types['link'] ) ) {
    29             $types['link'] = array();
    30         }
     27        // Initiate group type.
     28        $types = $this->add_group_type( $types );
    3129
    3230        // Get 3 registered post types.
     
    4139
    4240        // Add single post type to types array.
    43         $types['link']['children'][] = array(
    44             'id'   => 'single_post',
     41        $types[ $this->key ]['children'][] = array(
     42            'id'   => $this->type,
    4543            // translators: %s will be replaced by a list of post types.
    4644            'text' => sprintf( __( 'Single Post (%s, etc)', 'floating-awesome-button' ), implode( ', ', array_keys( $post_types ) ) ),
  • floating-awesome-button/trunk/src/Controller/Types/Toast/Toast_Type.php

    r3265480 r3266815  
    44
    55! defined( 'WPINC ' ) || die;
     6
     7use Fab\Interfaces\Model_Interface;
    68
    79/**
     
    1113 * @subpackage Fab/Module
    1214 */
    13 class Toast_Type extends Controller {
     15class Toast_Type extends Toast_Group implements Model_Interface {
    1416
    1517    /**
    16      * Type.
     18     * Constructor.
     19     */
     20    public function __construct() {
     21        parent::__construct();
     22        $this->type       = 'toast';
     23        $this->type_label = __( 'Toast', 'floating-awesome-button' );
     24    }
     25
     26    /*
     27    |--------------------------------------------------------------------------
     28    | Fulfill implemented interface contracts
     29    |--------------------------------------------------------------------------
     30     */
     31
     32    /**
     33     * Execute Class.
    1734     *
    18      * @var string
     35     * @return void
    1936     */
    20     public $type = 'toast';
     37    public function run() {
     38        // Add fab setting types.
     39        add_filter( 'fab_setting_types', array( $this, 'add_fab_setting_types' ), 10, 1 );
     40    }
    2141}
  • floating-awesome-button/trunk/src/Helper/FAB/FAB_Template.php

    r3265480 r3266815  
    9393     */
    9494    private function get_fab_setting( $data, $postmeta = array() ) {
     95        $postmeta['fab_template_id']  = $data->id;
    9596        $postmeta['fab_setting_type'] = $this->type;
    9697
  • floating-awesome-button/trunk/src/Helper/FABMetabox/FABMetaboxSetting.php

    r3265480 r3266815  
    55! defined( 'WPINC ' ) or die;
    66
     7use Fab\Wordpress\Model\Metabox;
     8
    79/**
    8  * Plugin hooks in a backend
     10 * FAB Metabox Setting.
    911 *
    1012 * @package    Fab
    1113 * @subpackage Fab/Controller
    1214 */
     15class FABMetaboxSetting extends Metabox {
    1316
    14 use Fab\Wordpress\Model\Metabox;
    15 
    16 class FABMetaboxSetting extends Metabox {
     17    // Load Traits.
     18    use \Fab\Plugin\Helper\Singleton;
    1719
    1820    /**
     
    3133
    3234    /** FAB Metabox Settings */
    33     public static $types = array(
    34         'bar_button'  => array(
    35             'text'     => 'Bar & Button',
    36             'children' => array(
    37                 array(
    38                     'id'   => 'print',
    39                     'text' => 'Print',
    40                 ),
    41                 array(
    42                     'id'   => 'readingbar',
    43                     'text' => 'Reading Bar',
    44                 ),
    45                 array(
    46                     'id'   => 'scrolltotop',
    47                     'text' => 'Scroll To Top',
    48                 ),
    49             ),
    50         ),
    51         'link'        => array(
    52             'text'     => 'Link',
    53             'children' => array(
    54                 array(
    55                     'id'   => 'link',
    56                     'text' => 'Link',
    57                 ),
    58                 array(
    59                     'id'   => 'anchor_link',
    60                     'text' => 'Anchor Link',
    61                 ),
    62                 array(
    63                     'id'   => 'latest_post_link',
    64                     'text' => 'Latest Post',
    65                 ),
    66             ),
    67         ),
    68         'modal_popup' => array(
    69             'text'     => 'Modal & Popup',
    70             'children' => array(
    71                 array(
    72                     'id'   => 'auth_login',
    73                     'text' => 'Login',
    74                 ),
    75                 array(
    76                     'id'   => 'auth_logout',
    77                     'text' => 'Logout',
    78                 ),
    79                 array(
    80                     'id'   => 'modal',
    81                     'text' => 'Simple Modal',
    82                 ),
    83                 array(
    84                     'id'   => 'search',
    85                     'text' => 'Search',
    86                 ),
    87             ),
    88         ),
    89         'widget'      => array(
    90             'text'     => 'Widget',
    91             'children' => array(
    92                 array(
    93                     'id'   => 'modal_widget',
    94                     'text' => 'Modal + Widget',
    95                 ),
    96                 array(
    97                     'id'   => 'widget',
    98                     'text' => 'Widget',
    99                 ),
    100             ),
    101         ),
    102         'toast'       => array(
    103             'text'     => 'Toast',
    104             'children' => array(
    105                 array(
    106                     'id'   => 'toast',
    107                     'text' => 'Toast',
    108                 ),
    109             ),
    110         ),
    111     );
     35    public static $types = array();
    11236
    11337    /** FAB Metabox Settings */
     
    223147    public static function get_types() {
    224148        $types_with_dependencies = apply_filters( 'fab_setting_types', self::$types, array() );
     149        ksort( $types_with_dependencies );
    225150
    226151        foreach ( $types_with_dependencies as &$type ) {
  • floating-awesome-button/trunk/src/Model/Fab.php

    r3265480 r3266815  
    4141
    4242        // Create a post type.
    43         $this->args['labels']             = array(
     43        $this->args['labels'] = array(
    4444            'name'                  => strtoupper( $this->name ),
     45            // translators: %s: Post type singular name (uppercase).
    4546            'add_new_item'          => sprintf( __( 'Add New %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     47            // translators: %s: Post type singular name (uppercase).
    4648            'edit_item'             => sprintf( __( 'Edit %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     49            // translators: %s: Post type singular name (uppercase).
    4750            'new_item'              => sprintf( __( 'New %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     51            // translators: %s: Post type singular name (uppercase).
    4852            'view_item'             => sprintf( __( 'View %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     53            // translators: %s: Post type plural name (uppercase).
    4954            'view_items'            => sprintf( __( 'View %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     55            // translators: %s: Post type plural name (uppercase).
    5056            'search_items'          => sprintf( __( 'Search %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     57            // translators: %s: Post type plural name (lowercase).
    5158            'not_found'             => sprintf( __( 'No %s found', 'floating-awesome-button' ), strtolower( $this->name ) ),
     59            // translators: %s: Post type plural name (lowercase).
    5260            'not_found_in_trash'    => sprintf( __( 'No %s found in Trash', 'floating-awesome-button' ), strtolower( $this->name ) ),
     61            // translators: %s: Post type plural name (uppercase).
    5362            'all_items'             => sprintf( __( 'All %s', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     63            // translators: %s: Post type plural name (uppercase).
    5464            'archives'              => sprintf( __( '%s Archives', 'floating-awesome-button' ), strtoupper( $this->name ) ),
     65            // translators: %s: Post type singular name (lowercase).
    5566            'insert_into_item'      => sprintf( __( 'Insert into %s', 'floating-awesome-button' ), strtolower( $this->name ) ),
     67            // translators: %s: Post type singular name (lowercase).
    5668            'uploaded_to_this_item' => sprintf( __( 'Uploaded to this %s', 'floating-awesome-button' ), strtolower( $this->name ) ),
     69
    5770        );
    5871        $this->args['public']             = true;
     
    7386
    7487        // Check Correct Post Type, Ignore Trash.
    75         if ( ! isset( $post->ID ) || $post->post_type !== 'fab' || $post->post_status === 'trash' ) {
     88        if ( ! isset( $post->ID ) || 'fab' !== $post->post_type || 'trash' === $post->post_status ) {
    7689            return;
    7790        }
     
    119132    public function load_fabs() {
    120133        // Grab Data - Ordered Data.
    121         $fab_order = $this->Plugin->getConfig()->options->fab_order;
    122         if ( $fab_order ) {
    123             $order = $fab_order;
    124             foreach ( $fab_order as $value ) {
    125                 $items[] = get_post( $value );
    126             }
    127         }
    128         $order = array_flip( $order );
     134        $fab_order = $this->Plugin->getConfig()->options->fab_order ?? array();
     135        $items     = array_map( 'get_post', $fab_order );
     136        $order     = array_flip( $fab_order );
    129137
    130138        // Set post status.
     
    159167
    160168            // Check if status is valid.
    161             if ( ! in_array( $item->post_status, $post_status ) ) {
     169            if ( ! in_array( $item->post_status, $post_status, true ) ) {
    162170                continue;
    163171            }
     
    191199        $args['validateLocation'] = $this->Helper->is_preview_page() ? false : $args['validateLocation'];
    192200
    193         // Load fabs if empty
     201        // Load fabs if empty.
    194202        if ( empty( $this->fabs ) ) {
    195203            $this->load_fabs();
    196204        }
    197205
    198         // Get data from fabs
     206        // Get data from fabs.
    199207        $order = $this->fabs['order'];
    200208        $items = $this->fabs['items'];
     
    208216
    209217            // Check builder.
    210             if ( isset( $args['builder'] ) && ! in_array( $item->getBuilder(), $args['builder'] ) ) {
     218            if ( isset( $args['builder'] ) && ! in_array( $item->getBuilder(), $args['builder'], true ) ) {
    211219                continue;
    212220            }
    213221
    214222            // FAB Item Grab Custom Module.
    215             if ( in_array( $item->getType(), array_keys( $custom ) ) ) {
     223            if ( in_array( $item->getType(), array_keys( $custom ), true ) ) {
    216224                $custom[ $item->getType() ] = $item;
    217225                if ( isset( $args['filtercustommodule'] ) ) {
     
    238246
    239247            // Filter by type.
    240             if ( isset( $args['filterbyType'] ) && ! in_array( $item->getType(), $args['filterbyType'] ) ) {
     248            if ( isset( $args['filterbyType'] ) && ! in_array( $item->getType(), $args['filterbyType'], true ) ) {
    241249                continue;
    242250            }
     
    269277    private function checkInput( $input, $input_exists = false ) {
    270278        // Get Parameters.
    271         $params = $_POST;
     279        $params = $_POST;  // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Nonce is verified earlier.
    272280
    273281        // Check Input Exists.
  • floating-awesome-button/trunk/src/Plugin/Helper/Operator.php

    r3261253 r3266815  
    33namespace Fab\Plugin\Helper;
    44
    5 !defined( 'WPINC ' ) or die;
     5! defined( 'WPINC ' ) or die;
    66
    77/**
     
    2020     * @return array The operators.
    2121     */
    22     public function get_default_operators_by_type( $type ) {
     22    public function get_default_operators_by_type( $type = 'bool' ) {
    2323        $operators = array();
    2424
    25         if(in_array($type, array('bool', 'number'))){
    26             $operators[] = array(
    27                 'id'   => '==',
    28                 'text' => __( 'is equal to', 'floating-awesome-button' ),
    29             );
    30             $operators[] = array(
    31                 'id'   => '!=',
    32                 'text' => __( 'is not equal to', 'floating-awesome-button' ),
    33             );
    34         }
     25        // Set default operators.
     26        $operators[] = array(
     27            'id'   => '==',
     28            'text' => __( 'is equal to', 'floating-awesome-button' ),
     29        );
     30        $operators[] = array(
     31            'id'   => '!=',
     32            'text' => __( 'is not equal to', 'floating-awesome-button' ),
     33        );
    3534
    36         if(in_array($type, array('number'))){
     35        // Add number operators.
     36        if ( in_array( $type, array( 'number' ), true ) ) {
    3737            $operators[] = array(
    3838                'id'   => '<',
     
    5858     */
    5959    public function match_operator_and_value( $operator, $source_value, $compared_value ) {
    60         // Perform the comparison based on the operator
     60        // Perform the comparison based on the operator.
    6161        if ( '==' === $operator ) {
    6262            return $source_value == $compared_value;
     
    7373        }
    7474
    75         // Return false for unsupported operators
     75        // Return false for unsupported operators.
    7676        return false;
    7777    }
    78 
    7978}
  • floating-awesome-button/trunk/src/Wordpress/Helper/Asset.php

    r3265480 r3266815  
    140140            'fab_module_scripts',
    141141            function ( $scripts ) use ( $handle ) {
    142             $scripts[] = $handle;
    143             return $scripts;
     142                $scripts[] = $handle;
     143                return $scripts;
    144144            }
    145145        );
  • floating-awesome-button/trunk/vendor/composer/autoload_classmap.php

    r3265480 r3266815  
    2222    'Fab\\Api\\Settings' => $baseDir . '/src/Api/Settings.php',
    2323    'Fab\\Api\\Usages' => $baseDir . '/src/Api/Usages.php',
    24     'Fab\\Controller\\Anchor_Link_Type' => $baseDir . '/src/Controller/Types/Anchor_Link_Type.php',
    25     'Fab\\Controller\\Apply_Coupon' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Apply_Coupon.php',
    26     'Fab\\Controller\\Auth_Login_Type' => $baseDir . '/src/Controller/Types/Auth_Login_Type.php',
    27     'Fab\\Controller\\Auth_Logout_Type' => $baseDir . '/src/Controller/Types/Auth_Logout_Type.php',
     24    'Fab\\Controller\\Anchor_Link_Type' => $baseDir . '/src/Controller/Types/Anchor_Link/Anchor_Link_Type.php',
     25    'Fab\\Controller\\Auth_Login_Type' => $baseDir . '/src/Controller/Types/Auth_Login/Auth_Login_Type.php',
     26    'Fab\\Controller\\Auth_Logout_Type' => $baseDir . '/src/Controller/Types/Auth_Logout/Auth_Logout_Type.php',
    2827    'Fab\\Controller\\Backend' => $baseDir . '/src/Controller/Backend/Backend.php',
    2928    'Fab\\Controller\\BackendCustomColumns' => $baseDir . '/src/Controller/Backend/BackendCustomColumns.php',
    3029    'Fab\\Controller\\BackendPage' => $baseDir . '/src/Controller/Backend/BackendPage.php',
     30    'Fab\\Controller\\Bar_Button_Group' => $baseDir . '/src/Controller/Types/Bar_Button_Group.php',
    3131    'Fab\\Controller\\Base' => $baseDir . '/src/Controller/Base.php',
    3232    'Fab\\Controller\\Cart_Reminder' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Cart_Reminder.php',
     
    3636    'Fab\\Controller\\Featured_Product' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Featured_Product.php',
    3737    'Fab\\Controller\\Frontend' => $baseDir . '/src/Controller/Frontend/Frontend.php',
    38     'Fab\\Controller\\Latest_Post_Type' => $baseDir . '/src/Controller/Types/Latest_Post_Type.php',
     38    'Fab\\Controller\\Group' => $baseDir . '/src/Controller/Types/Group.php',
     39    'Fab\\Controller\\Latest_Post_Type' => $baseDir . '/src/Controller/Types/Latest_Post/Latest_Post_Type.php',
    3940    'Fab\\Controller\\Legacy_Option' => $baseDir . '/src/Controller/Legacy/Legacy_Option.php',
    40     'Fab\\Controller\\Link_Type' => $baseDir . '/src/Controller/Types/Link_Type.php',
     41    'Fab\\Controller\\Link_Group' => $baseDir . '/src/Controller/Types/Link_Group.php',
     42    'Fab\\Controller\\Link_Type' => $baseDir . '/src/Controller/Types/Link/Link_Type.php',
    4143    'Fab\\Controller\\MetaboxAction' => $baseDir . '/src/Controller/Metabox/MetaboxAction.php',
    4244    'Fab\\Controller\\MetaboxLocation' => $baseDir . '/src/Controller/Metabox/MetaboxLocation.php',
     
    4446    'Fab\\Controller\\MetaboxUpgrade' => $baseDir . '/src/Controller/Metabox/MetaboxUpgrade.php',
    4547    'Fab\\Controller\\Metabox_Post' => $baseDir . '/src/Controller/Metabox/Metabox_Post.php',
    46     'Fab\\Controller\\Modal_Type' => $baseDir . '/src/Controller/Types/Modal_Type.php',
    47     'Fab\\Controller\\Modal_Widget_Type' => $baseDir . '/src/Controller/Types/Modal_Widget_Type.php',
     48    'Fab\\Controller\\Modal_Popup_Group' => $baseDir . '/src/Controller/Types/Modal_Popup_Group.php',
     49    'Fab\\Controller\\Modal_Type' => $baseDir . '/src/Controller/Types/Modal/Modal_Type.php',
     50    'Fab\\Controller\\Modal_Widget_Type' => $baseDir . '/src/Controller/Types/Modal_Widget/Modal_Widget_Type.php',
    4851    'Fab\\Controller\\Notice' => $baseDir . '/src/Controller/Backend/Notice.php',
    4952    'Fab\\Controller\\Posts' => $baseDir . '/src/Controller/Backend/Posts.php',
    50     'Fab\\Controller\\Print_Type' => $baseDir . '/src/Controller/Types/Print_Type.php',
     53    'Fab\\Controller\\Print_Type' => $baseDir . '/src/Controller/Types/Print/Print_Type.php',
    5154    'Fab\\Controller\\Quick_Purchase' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Quick_Purchase.php',
    52     'Fab\\Controller\\Search_Type' => $baseDir . '/src/Controller/Types/Search_Type.php',
     55    'Fab\\Controller\\Reading_Bar_Type' => $baseDir . '/src/Controller/Types/Reading_Bar/Reading_Bar_Type.php',
     56    'Fab\\Controller\\Scroll_To_Top_Type' => $baseDir . '/src/Controller/Types/Scroll_To_Top/Scroll_To_Top_Type.php',
     57    'Fab\\Controller\\Search_Type' => $baseDir . '/src/Controller/Types/Search/Search_Type.php',
    5358    'Fab\\Controller\\Shortcodes' => $baseDir . '/src/Controller/Shortcodes.php',
    5459    'Fab\\Controller\\Single_Post_Type' => $baseDir . '/src/Controller/Types/Single_Post/Single_Post_Type.php',
     
    5762    'Fab\\Controller\\Single_Post_Type_Template' => $baseDir . '/src/Controller/Types/Single_Post/Single_Post_Type_Template.php',
    5863    'Fab\\Controller\\Templates' => $baseDir . '/src/Controller/Backend/Templates.php',
     64    'Fab\\Controller\\Toast_Group' => $baseDir . '/src/Controller/Types/Toast_Group.php',
    5965    'Fab\\Controller\\Toast_Type' => $baseDir . '/src/Controller/Types/Toast/Toast_Type.php',
    6066    'Fab\\Controller\\Toast_Type_Frontend' => $baseDir . '/src/Controller/Types/Toast/Toast_Type_Frontend.php',
    6167    'Fab\\Controller\\Upsell' => $baseDir . '/src/Controller/Backend/Upsell.php',
    6268    'Fab\\Controller\\Utils' => $baseDir . '/src/Controller/Backend/Utils.php',
    63     'Fab\\Controller\\WC_Metabox_Product' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/WC_Metabox_Product.php',
    64     'Fab\\Controller\\Widget_Type' => $baseDir . '/src/Controller/Types/Widget_Type.php',
     69    'Fab\\Controller\\WC_Apply_Coupon_Editor' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Editor.php',
     70    'Fab\\Controller\\WC_Apply_Coupon_Frontend' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Frontend.php',
     71    'Fab\\Controller\\WC_Apply_Coupon_Template' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Template.php',
     72    'Fab\\Controller\\WC_Apply_Coupon_Type' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Type.php',
     73    'Fab\\Controller\\WC_Metabox_Coupon' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Metabox/WC_Metabox_Coupon.php',
     74    'Fab\\Controller\\WC_Metabox_Product' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Metabox/WC_Metabox_Product.php',
     75    'Fab\\Controller\\Widget_Group' => $baseDir . '/src/Controller/Types/Widget_Group.php',
     76    'Fab\\Controller\\Widget_Type' => $baseDir . '/src/Controller/Types/Widget/Widget_Type.php',
    6577    'Fab\\Controller\\WooCommerce' => $baseDir . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/WooCommerce.php',
    6678    'Fab\\Feature\\Animation' => $baseDir . '/src/Feature/Animation.php',
  • floating-awesome-button/trunk/vendor/composer/autoload_static.php

    r3265480 r3266815  
    2727        'Fab\\Api\\Settings' => __DIR__ . '/../..' . '/src/Api/Settings.php',
    2828        'Fab\\Api\\Usages' => __DIR__ . '/../..' . '/src/Api/Usages.php',
    29         'Fab\\Controller\\Anchor_Link_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Anchor_Link_Type.php',
    30         'Fab\\Controller\\Apply_Coupon' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Apply_Coupon.php',
    31         'Fab\\Controller\\Auth_Login_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Auth_Login_Type.php',
    32         'Fab\\Controller\\Auth_Logout_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Auth_Logout_Type.php',
     29        'Fab\\Controller\\Anchor_Link_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Anchor_Link/Anchor_Link_Type.php',
     30        'Fab\\Controller\\Auth_Login_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Auth_Login/Auth_Login_Type.php',
     31        'Fab\\Controller\\Auth_Logout_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Auth_Logout/Auth_Logout_Type.php',
    3332        'Fab\\Controller\\Backend' => __DIR__ . '/../..' . '/src/Controller/Backend/Backend.php',
    3433        'Fab\\Controller\\BackendCustomColumns' => __DIR__ . '/../..' . '/src/Controller/Backend/BackendCustomColumns.php',
    3534        'Fab\\Controller\\BackendPage' => __DIR__ . '/../..' . '/src/Controller/Backend/BackendPage.php',
     35        'Fab\\Controller\\Bar_Button_Group' => __DIR__ . '/../..' . '/src/Controller/Types/Bar_Button_Group.php',
    3636        'Fab\\Controller\\Base' => __DIR__ . '/../..' . '/src/Controller/Base.php',
    3737        'Fab\\Controller\\Cart_Reminder' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Cart_Reminder.php',
     
    4141        'Fab\\Controller\\Featured_Product' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Featured_Product.php',
    4242        'Fab\\Controller\\Frontend' => __DIR__ . '/../..' . '/src/Controller/Frontend/Frontend.php',
    43         'Fab\\Controller\\Latest_Post_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Latest_Post_Type.php',
     43        'Fab\\Controller\\Group' => __DIR__ . '/../..' . '/src/Controller/Types/Group.php',
     44        'Fab\\Controller\\Latest_Post_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Latest_Post/Latest_Post_Type.php',
    4445        'Fab\\Controller\\Legacy_Option' => __DIR__ . '/../..' . '/src/Controller/Legacy/Legacy_Option.php',
    45         'Fab\\Controller\\Link_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Link_Type.php',
     46        'Fab\\Controller\\Link_Group' => __DIR__ . '/../..' . '/src/Controller/Types/Link_Group.php',
     47        'Fab\\Controller\\Link_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Link/Link_Type.php',
    4648        'Fab\\Controller\\MetaboxAction' => __DIR__ . '/../..' . '/src/Controller/Metabox/MetaboxAction.php',
    4749        'Fab\\Controller\\MetaboxLocation' => __DIR__ . '/../..' . '/src/Controller/Metabox/MetaboxLocation.php',
     
    4951        'Fab\\Controller\\MetaboxUpgrade' => __DIR__ . '/../..' . '/src/Controller/Metabox/MetaboxUpgrade.php',
    5052        'Fab\\Controller\\Metabox_Post' => __DIR__ . '/../..' . '/src/Controller/Metabox/Metabox_Post.php',
    51         'Fab\\Controller\\Modal_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Modal_Type.php',
    52         'Fab\\Controller\\Modal_Widget_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Modal_Widget_Type.php',
     53        'Fab\\Controller\\Modal_Popup_Group' => __DIR__ . '/../..' . '/src/Controller/Types/Modal_Popup_Group.php',
     54        'Fab\\Controller\\Modal_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Modal/Modal_Type.php',
     55        'Fab\\Controller\\Modal_Widget_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Modal_Widget/Modal_Widget_Type.php',
    5356        'Fab\\Controller\\Notice' => __DIR__ . '/../..' . '/src/Controller/Backend/Notice.php',
    5457        'Fab\\Controller\\Posts' => __DIR__ . '/../..' . '/src/Controller/Backend/Posts.php',
    55         'Fab\\Controller\\Print_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Print_Type.php',
     58        'Fab\\Controller\\Print_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Print/Print_Type.php',
    5659        'Fab\\Controller\\Quick_Purchase' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Quick_Purchase.php',
    57         'Fab\\Controller\\Search_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Search_Type.php',
     60        'Fab\\Controller\\Reading_Bar_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Reading_Bar/Reading_Bar_Type.php',
     61        'Fab\\Controller\\Scroll_To_Top_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Scroll_To_Top/Scroll_To_Top_Type.php',
     62        'Fab\\Controller\\Search_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Search/Search_Type.php',
    5863        'Fab\\Controller\\Shortcodes' => __DIR__ . '/../..' . '/src/Controller/Shortcodes.php',
    5964        'Fab\\Controller\\Single_Post_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Single_Post/Single_Post_Type.php',
     
    6267        'Fab\\Controller\\Single_Post_Type_Template' => __DIR__ . '/../..' . '/src/Controller/Types/Single_Post/Single_Post_Type_Template.php',
    6368        'Fab\\Controller\\Templates' => __DIR__ . '/../..' . '/src/Controller/Backend/Templates.php',
     69        'Fab\\Controller\\Toast_Group' => __DIR__ . '/../..' . '/src/Controller/Types/Toast_Group.php',
    6470        'Fab\\Controller\\Toast_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Toast/Toast_Type.php',
    6571        'Fab\\Controller\\Toast_Type_Frontend' => __DIR__ . '/../..' . '/src/Controller/Types/Toast/Toast_Type_Frontend.php',
    6672        'Fab\\Controller\\Upsell' => __DIR__ . '/../..' . '/src/Controller/Backend/Upsell.php',
    6773        'Fab\\Controller\\Utils' => __DIR__ . '/../..' . '/src/Controller/Backend/Utils.php',
    68         'Fab\\Controller\\WC_Metabox_Product' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/WC_Metabox_Product.php',
    69         'Fab\\Controller\\Widget_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Widget_Type.php',
     74        'Fab\\Controller\\WC_Apply_Coupon_Editor' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Editor.php',
     75        'Fab\\Controller\\WC_Apply_Coupon_Frontend' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Frontend.php',
     76        'Fab\\Controller\\WC_Apply_Coupon_Template' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Template.php',
     77        'Fab\\Controller\\WC_Apply_Coupon_Type' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Types/Apply_Coupon/WC_Apply_Coupon_Type.php',
     78        'Fab\\Controller\\WC_Metabox_Coupon' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Metabox/WC_Metabox_Coupon.php',
     79        'Fab\\Controller\\WC_Metabox_Product' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/Metabox/WC_Metabox_Product.php',
     80        'Fab\\Controller\\Widget_Group' => __DIR__ . '/../..' . '/src/Controller/Types/Widget_Group.php',
     81        'Fab\\Controller\\Widget_Type' => __DIR__ . '/../..' . '/src/Controller/Types/Widget/Widget_Type.php',
    7082        'Fab\\Controller\\WooCommerce' => __DIR__ . '/../..' . '/src/Controller/Backend/Third_Party_Integrations/WooCommerce/WooCommerce.php',
    7183        'Fab\\Feature\\Animation' => __DIR__ . '/../..' . '/src/Feature/Animation.php',
Note: See TracChangeset for help on using the changeset viewer.