Give – Donation Plugin and Fundraising Platform - Version 1.8.7

Version Description

  • New: Revamped how Give handles caching with a new cache API. #1617
  • New: The "New User Notification" email is now formatted like other Give emails and is also now filterable. #1623, #1577
  • New: Added the "Processing" status into Give core in preparation for future enhancements. #1615
  • Tweak: Update WP Session Manager library to the latest version. #1646
  • Tweak: Stop echoing shortcodes in favor of returning their output for better WP REST API compatibility. #1614
  • Tweak: Improved verbiage for the "Email already in use" notice. #1624
  • Tweak: Updated the placeholder address for the "Offline Donations" gateway to an unmailable address. This is in the hopes that folks will better notice and update it to their actual mailing address. #1623
  • Fix: Improved mobile responsiveness of the Give donation form modal display mode. #1636
  • Fix: Formatting was incorrect for the Danish Kroner. #1632
  • Fix: If an add-on doesn't have a license active it now displays plugin update notifications regardless of license status. #1649
  • Fix: Ensure that Give core updates run in consecutive order. #1626
Download this release

Release Info

Developer dlocc
Plugin Icon 128x128 Give – Donation Plugin and Fundraising Platform
Version 1.8.7
Comparing to
See all releases

Code changes from version 1.8.6 to 1.8.7

Files changed (59) hide show
  1. assets/js/frontend/give.all.min.js +1 -1
  2. assets/js/frontend/give.js +2 -0
  3. assets/js/frontend/give.min.js +1 -1
  4. assets/js/plugins/chosen.jquery.js +190 -153
  5. assets/js/plugins/chosen.jquery.min.js +1 -1
  6. assets/js/plugins/jquery.flot.orderBars.js +2 -2
  7. assets/js/plugins/jquery.flot.orderBars.min.js +1 -1
  8. assets/js/plugins/jquery.payment.js +52 -35
  9. assets/js/plugins/jquery.payment.min.js +1 -1
  10. assets/sourcemaps/give-admin.css.map +1 -1
  11. assets/sourcemaps/give.css.map +1 -1
  12. give.php +11 -2
  13. includes/actions.php +56 -8
  14. includes/admin/EDD_SL_Plugin_Updater.php +5 -5
  15. includes/admin/add-ons.php +6 -3
  16. includes/admin/admin-actions.php +2 -2
  17. includes/admin/class-admin-notices.php +22 -22
  18. includes/admin/class-api-keys-table.php +10 -4
  19. includes/admin/class-give-settings.php +1458 -1461
  20. includes/admin/class-i18n-module.php +4 -4
  21. includes/admin/customers/customer-actions.php +1 -1
  22. includes/admin/payments/class-payments-table.php +18 -16
  23. includes/admin/plugins.php +3 -3
  24. includes/admin/reporting/class-sales-logs-list-table.php +3 -4
  25. includes/admin/reporting/export/class-batch-export-customers.php +3 -3
  26. includes/admin/reporting/graphing.php +7 -5
  27. includes/admin/reporting/reports.php +2 -2
  28. includes/admin/reporting/tools/class-give-tools-delete-test-transactions.php +16 -17
  29. includes/admin/reporting/tools/class-give-tools-recount-income.php +15 -16
  30. includes/admin/reporting/tools/class-give-tools-reset-stats.php +2 -3
  31. includes/admin/settings/class-settings-license.php +0 -21
  32. includes/admin/shortcodes/class-shortcode-button.php +3 -3
  33. includes/admin/upgrades/upgrade-functions.php +74 -2
  34. includes/admin/welcome.php +4 -4
  35. includes/ajax-functions.php +2 -2
  36. includes/api/class-give-api.php +12 -12
  37. includes/class-give-cache.php +324 -0
  38. includes/class-give-customer.php +93 -95
  39. includes/class-give-license-handler.php +225 -147
  40. includes/class-give-logging.php +16 -12
  41. includes/class-give-session.php +4 -0
  42. includes/formatting.php +2 -6
  43. includes/gateways/offline-donations.php +9 -7
  44. includes/install.php +4 -4
  45. includes/libraries/sessions/class-recursive-arrayaccess.php +83 -6
  46. includes/libraries/sessions/class-wp-session-utils.php +139 -0
  47. includes/libraries/sessions/class-wp-session.php +22 -124
  48. includes/libraries/sessions/wp-session.php +18 -34
  49. includes/misc-functions.php +63 -31
  50. includes/payments/actions.php +6 -38
  51. includes/payments/class-give-payment.php +8 -8
  52. includes/payments/class-payment-stats.php +9 -8
  53. includes/payments/functions.php +99 -105
  54. includes/post-types.php +71 -63
  55. includes/process-donation.php +16 -13
  56. includes/shortcodes.php +17 -15
  57. includes/template-functions.php +0 -10
  58. includes/user-functions.php +13 -13
  59. languages/give.pot +229 -228
assets/js/frontend/give.all.min.js CHANGED
@@ -7,4 +7,4 @@
7
  {});return t=t||this.corner,i=t.precedance,e=e||this._calculateSize(t),o=[t.x,t.y],i===E&&o.reverse(),s.each(o,function(s,o){var a,c,d;o===N?(a=i===S?D:P,l[a]="50%",l[ht+"-"+a]=-Math.round(e[i===S?0:1]/2)+h):(a=n._parseWidth(t,o,r.tooltip),c=n._parseWidth(t,o,r.content),d=n._parseRadius(t),l[o]=Math.max(-n.border,s?c:h+(d>a?d:-a)))}),l[t[i]]-=e[i===E?0:1],a.css({margin:"",top:"",bottom:"",left:"",right:""}).css(l),l},reposition:function(t,e,s,o){function n(t,e,i,s,o){t===$&&c.precedance===e&&d[s]&&c[i]!==N?c.precedance=c.precedance===E?S:E:t!==$&&d[s]&&(c[e]=c[e]===N?d[s]>0?s:o:c[e]===s?o:s)}function r(t,e,o){c[t]===N?m[ht+"-"+e]=g[t]=a[ht+"-"+e]-d[e]:(h=a[o]!==i?[d[e],-a[e]]:[-d[e],a[e]],(g[t]=Math.max(h[0],h[1]))>h[0]&&(s[e]-=d[e],g[e]=I),m[a[o]!==i?o:e]=g[t])}if(this.enabled){var a,h,l=e.cache,c=this.corner.clone(),d=s.adjusted,p=e.options.position.adjust.method.split(" "),u=p[0],f=p[1]||p[0],g={left:I,top:I,x:0,y:0},m={};this.corner.fixed!==W&&(n(u,E,S,D,F),n(f,S,E,P,B),c.string()===l.corner.string()&&l.cornerTop===d.top&&l.cornerLeft===d.left||this.update(c,I)),a=this.calculate(c),a.right!==i&&(a.left=-a.right),a.bottom!==i&&(a.top=-a.bottom),a.user=this.offset,(g.left=u===$&&!!d.left)&&r(E,D,F),(g.top=f===$&&!!d.top)&&r(S,P,B),this.element.css(m).toggle(!(g.x&&g.y||c.x===N&&g.y||c.y===N&&g.x)),s.left-=a.left.charAt?a.user:u!==$||g.top||!g.left&&!g.top?a.left+this.border:0,s.top-=a.top.charAt?a.user:f!==$||g.left||!g.left&&!g.top?a.top+this.border:0,l.cornerLeft=d.left,l.cornerTop=d.top,l.corner=c.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),at=V.tip=function(t){return new _(t,t.options.style.tip)},at.initialize="render",at.sanitize=function(t){if(t.style&&"tip"in t.style){var e=t.style.tip;"object"!=typeof e&&(e=t.style.tip={corner:e}),/string|boolean/i.test(typeof e.corner)||(e.corner=W)}},z.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(t){this.size=[t.width,t.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},s.extend(W,q.defaults,{style:{tip:{corner:W,mimic:I,width:6,height:6,border:W,offset:0}}});var xt,Ct,qt="qtip-modal",Tt="."+qt;Ct=function(){function t(t){if(s.expr[":"].focusable)return s.expr[":"].focusable;var e,i,o,n=!isNaN(s.attr(t,"tabindex")),r=t.nodeName&&t.nodeName.toLowerCase();return"area"===r?(e=t.parentNode,i=e.name,!(!t.href||!i||"map"!==e.nodeName.toLowerCase())&&(o=s("img[usemap=#"+i+"]")[0],!!o&&o.is(":visible"))):/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||n:n}function i(t){c.length<1&&t.length?t.not("body").blur():c.first().focus()}function o(t){if(h.is(":visible")){var e,o=s(t.target),a=n.tooltip,l=o.closest(G);e=l.length<1?I:parseInt(l[0].style.zIndex,10)>parseInt(a[0].style.zIndex,10),e||o.closest(G)[0]===a[0]||i(o),r=t.target===c[c.length-1]}}var n,r,a,h,l=this,c={};s.extend(l,{init:function(){return h=l.elem=s("<div />",{id:"qtip-overlay",html:"<div></div>",mousedown:function(){return I}}).hide(),s(e.body).bind("focusin"+Tt,o),s(e).bind("keydown"+Tt,function(t){n&&n.options.show.modal.escape&&27===t.keyCode&&n.hide(t)}),h.bind("click"+Tt,function(t){n&&n.options.show.modal.blur&&n.hide(t)}),l},update:function(e){n=e,c=e.options.show.modal.stealfocus!==I?e.tooltip.find("*").filter(function(){return t(this)}):[]},toggle:function(t,o,r){var c=(s(e.body),t.tooltip),d=t.options.show.modal,p=d.effect,u=o?"show":"hide",f=h.is(":visible"),g=s(Tt).filter(":visible:not(:animated)").not(c);return l.update(t),o&&d.stealfocus!==I&&i(s(":focus")),h.toggleClass("blurs",d.blur),o&&h.appendTo(e.body),h.is(":animated")&&f===o&&a!==I||!o&&g.length?l:(h.stop(W,I),s.isFunction(p)?p.call(h,o):p===I?h[u]():h.fadeTo(parseInt(r,10)||90,o?1:0,function(){o||h.hide()}),o||h.queue(function(t){h.css({left:"",top:""}),s(Tt).length||h.detach(),t()}),a=o,n.destroyed&&(n=k),l)}}),l.init()},Ct=new Ct,s.extend(x.prototype,{init:function(t){var e=t.tooltip;return this.options.on?(t.elements.overlay=Ct.elem,e.addClass(qt).css("z-index",q.modal_zindex+s(Tt).length),t._bind(e,["tooltipshow","tooltiphide"],function(t,i,o){var n=t.originalEvent;if(t.target===e[0])if(n&&"tooltiphide"===t.type&&/mouse(leave|enter)/.test(n.type)&&s(n.relatedTarget).closest(Ct.elem[0]).length)try{t.preventDefault()}catch(r){}else(!n||n&&"tooltipsolo"!==n.type)&&this.toggle(t,"tooltipshow"===t.type,o)},this._ns,this),t._bind(e,"tooltipfocus",function(t,i){if(!t.isDefaultPrevented()&&t.target===e[0]){var o=s(Tt),n=q.modal_zindex+o.length,r=parseInt(e[0].style.zIndex,10);Ct.elem[0].style.zIndex=n-1,o.each(function(){this.style.zIndex>r&&(this.style.zIndex-=1)}),o.filter("."+K).qtip("blur",t.originalEvent),e.addClass(K)[0].style.zIndex=n,Ct.update(i);try{t.preventDefault()}catch(a){}}},this._ns,this),void t._bind(e,"tooltiphide",function(t){t.target===e[0]&&s(Tt).filter(":visible").not(e).last().qtip("focus",t)},this._ns,this)):this},toggle:function(t,e,i){return t&&t.isDefaultPrevented()?this:void Ct.toggle(this.qtip,!!e,i)},destroy:function(){this.qtip.tooltip.removeClass(qt),this.qtip._unbind(this.qtip.tooltip,this._ns),Ct.toggle(this.qtip,I),delete this.qtip.elements.overlay}}),xt=V.modal=function(t){return new x(t,t.options.show.modal)},xt.sanitize=function(t){t.show&&("object"!=typeof t.show.modal?t.show.modal={on:!!t.show.modal}:"undefined"==typeof t.show.modal.on&&(t.show.modal.on=W))},q.modal_zindex=q.zindex-200,xt.initialize="render",z.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},s.extend(W,q.defaults,{show:{modal:{on:I,effect:W,blur:W,stealfocus:W,escape:W}}}),V.viewport=function(i,s,o,n,r,a,h){function l(t,e,i,o,n,r,a,h,l){var c=s[n],y=w[t],b=_[t],x=i===$,C=y===n?l:y===r?-l:-l/2,q=b===n?h:b===r?-h:-h/2,T=m[n]+v[n]-(u?0:p[n]),j=T-c,z=c+l-(a===A?f:g)-T,M=C-(w.precedance===t||y===w[e]?q:0)-(b===N?h/2:0);return x?(M=(y===n?1:-1)*C,s[n]+=j>0?j:z>0?-z:0,s[n]=Math.max(-p[n]+v[n],c-M,Math.min(Math.max(-p[n]+v[n]+(a===A?f:g),c+M),s[n],"center"===y?c-C:1e9))):(o*=i===O?2:0,j>0&&(y!==n||z>0)?(s[n]-=M+o,d.invert(t,n)):z>0&&(y!==r||j>0)&&(s[n]-=(y===N?-M:M)+o,d.invert(t,r)),s[n]<m&&-s[n]>z&&(s[n]=c,d=w.clone())),s[n]-c}var c,d,p,u,f,g,m,v,y=o.target,b=i.elements.tooltip,w=o.my,_=o.at,x=o.adjust,C=x.method.split(" "),q=C[0],T=C[1]||C[0],j=o.viewport,z=o.container,M=(i.cache,{left:0,top:0});return j.jquery&&y[0]!==t&&y[0]!==e.body&&"none"!==x.method?(p=z.offset()||M,u="static"===z.css("position"),c="fixed"===b.css("position"),f=j[0]===t?j.width():j.outerWidth(I),g=j[0]===t?j.height():j.outerHeight(I),m={left:c?0:j.scrollLeft(),top:c?0:j.scrollTop()},v=j.offset()||M,"shift"===q&&"shift"===T||(d=w.clone()),M={left:"none"!==q?l(E,S,q,x.x,D,F,A,n,a):0,top:"none"!==T?l(S,E,T,x.y,P,B,L,r,h):0,my:d}):M},V.polys={polygon:function(t,e){var i,s,o,n={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:I},r=0,a=[],h=1,l=1,c=0,d=0;for(r=t.length;r--;)i=[parseInt(t[--r],10),parseInt(t[r+1],10)],i[0]>n.position.right&&(n.position.right=i[0]),i[0]<n.position.left&&(n.position.left=i[0]),i[1]>n.position.bottom&&(n.position.bottom=i[1]),i[1]<n.position.top&&(n.position.top=i[1]),a.push(i);if(s=n.width=Math.abs(n.position.right-n.position.left),o=n.height=Math.abs(n.position.bottom-n.position.top),"c"===e.abbrev())n.position={left:n.position.left+n.width/2,top:n.position.top+n.height/2};else{for(;s>0&&o>0&&h>0&&l>0;)for(s=Math.floor(s/2),o=Math.floor(o/2),e.x===D?h=s:e.x===F?h=n.width-s:h+=Math.floor(s/2),e.y===P?l=o:e.y===B?l=n.height-o:l+=Math.floor(o/2),r=a.length;r--&&!(a.length<2);)c=a[r][0]-n.position.left,d=a[r][1]-n.position.top,(e.x===D&&c>=h||e.x===F&&c<=h||e.x===N&&(c<h||c>n.width-h)||e.y===P&&d>=l||e.y===B&&d<=l||e.y===N&&(d<l||d>n.height-l))&&a.splice(r,1);n.position={left:a[0][0],top:a[0][1]}}return n},rect:function(t,e,i,s){return{width:Math.abs(i-t),height:Math.abs(s-e),position:{left:Math.min(t,i),top:Math.min(e,s)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(t,e,i,s,o){var n=V.polys._angles[o.abbrev()],r=0===n?0:i*Math.cos(n*Math.PI),a=s*Math.sin(n*Math.PI);return{width:2*i-Math.abs(r),height:2*s-Math.abs(a),position:{left:t+r,top:e+a},adjustable:I}},circle:function(t,e,i,s){return V.polys.ellipse(t,e,i,i,s)}},V.svg=function(t,i,o){for(var n,r,a,h,l,c,d,p,u,f=(s(e),i[0]),g=s(f.ownerSVGElement),m=f.ownerDocument,v=(parseInt(i.css("stroke-width"),10)||0)/2;!f.getBBox;)f=f.parentNode;if(!f.getBBox||!f.parentNode)return I;switch(f.nodeName){case"ellipse":case"circle":p=V.polys.ellipse(f.cx.baseVal.value,f.cy.baseVal.value,(f.rx||f.r).baseVal.value+v,(f.ry||f.r).baseVal.value+v,o);break;case"line":case"polygon":case"polyline":for(d=f.points||[{x:f.x1.baseVal.value,y:f.y1.baseVal.value},{x:f.x2.baseVal.value,y:f.y2.baseVal.value}],p=[],c=-1,h=d.numberOfItems||d.length;++c<h;)l=d.getItem?d.getItem(c):d[c],p.push.apply(p,[l.x,l.y]);p=V.polys.polygon(p,o);break;default:p=f.getBBox(),p={width:p.width,height:p.height,position:{left:p.x,top:p.y}}}return u=p.position,g=g[0],g.createSVGPoint&&(r=f.getScreenCTM(),d=g.createSVGPoint(),d.x=u.left,d.y=u.top,a=d.matrixTransform(r),u.left=a.x,u.top=a.y),m!==e&&"mouse"!==t.position.target&&(n=s((m.defaultView||m.parentWindow).frameElement).offset(),n&&(u.left+=n.left,u.top+=n.top)),m=s(m),u.left+=m.scrollLeft(),u.top+=m.scrollTop(),p},V.imagemap=function(t,e,i,o){e.jquery||(e=s(e));var n,r,a,h,l,c=(e.attr("shape")||"rect").toLowerCase().replace("poly","polygon"),d=s('img[usemap="#'+e.parent("map").attr("name")+'"]'),p=s.trim(e.attr("coords")),u=p.replace(/,$/,"").split(",");if(!d.length)return I;if("polygon"===c)h=V.polys.polygon(u,i);else{if(!V.polys[c])return I;for(a=-1,l=u.length,r=[];++a<l;)r.push(parseInt(u[a],10));h=V.polys[c].apply(this,r.concat(i))}return n=d.offset(),n.left+=Math.ceil((d.outerWidth(I)-d.width())/2),n.top+=Math.ceil((d.outerHeight(I)-d.height())/2),h.position.left+=n.left,h.position.top+=n.top,h};var jt,zt='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';s.extend(C.prototype,{_scroll:function(){var e=this.qtip.elements.overlay;e&&(e[0].style.top=s(t).scrollTop()+"px")},init:function(i){var o=i.tooltip;s("select, object").length<1&&(this.bgiframe=i.elements.bgiframe=s(zt).appendTo(o),i._bind(o,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=s("<div/>",{id:R+"-rcontainer"}).appendTo(e.body),i.elements.overlay&&i.elements.overlay.addClass("qtipmodal-ie6fix")&&(i._bind(t,["scroll","resize"],this._scroll,this._ns,this),i._bind(o,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var t,e,i=this.qtip.tooltip,s={height:i.outerHeight(I),width:i.outerWidth(I)},o=this.qtip.plugins.tip,n=this.qtip.elements.tip;e=parseInt(i.css("borderLeftWidth"),10)||0,e={left:-e,top:-e},o&&n&&(t="x"===o.corner.precedance?[A,D]:[L,P],e[t[1]]-=n[t[0]]()),this.bgiframe.css(e).css(s)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var t,e,i,s,o=this.qtip.tooltip,n=this.qtip.options.style,r=this.qtip.options.position.container;return this.qtip.drawing=1,n.height&&o.css(L,n.height),n.width?o.css(A,n.width):(o.css(A,"").appendTo(this.redrawContainer),e=o.width(),e%2<1&&(e+=1),i=o.css("maxWidth")||"",s=o.css("minWidth")||"",t=(i+s).indexOf("%")>-1?r.width()/100:0,i=(i.indexOf("%")>-1?t:1)*parseInt(i,10)||e,s=(s.indexOf("%")>-1?t:1)*parseInt(s,10)||0,e=i+s?Math.min(Math.max(e,s),i):e,o.css(A,Math.round(e)).appendTo(r)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([t,this.qtip.tooltip],this._ns)}}),jt=V.ie6=function(t){return 6===st.ie?new C(t):I},jt.initialize="render",z.ie6={"^content|style$":function(){this.redraw()}}})}(window,document);
8
  function give_load_gateway(e,i){var t=jQuery(e).find("#give-payment-mode-select .give-loading-text"),a=jQuery(e).find("#give-amount").val(),n=jQuery(e).find('input[name="give-form-id"]').val();t.fadeIn();var o=jQuery(e).data();1!=o["blockUI.isBlocked"]&&jQuery(e).find("#give_purchase_form_wrap").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),jQuery.post(give_scripts.ajaxurl+"?payment-mode="+i,{action:"give_load_gateway",give_total:a,give_form_id:n,give_payment_mode:i},function(i){jQuery(e).unblock(),jQuery(e).find("#give_purchase_form_wrap").html(i),jQuery(".give-no-js").hide(),jQuery(e).find("#give-payment-mode-select .give-loading-text").fadeOut(),setup_give_tooltips(),jQuery(document).trigger("give_gateway_loaded",[i,jQuery(e).attr("id")])})}function setup_give_tooltips(){jQuery('[data-tooltip!=""]').qtip({content:{attr:"data-tooltip"},style:{classes:"qtip-rounded qtip-tipsy"},position:{my:"bottom center",at:"top center"}}),jQuery.fn.qtip.zindex=2147483641}var give_scripts,give_global_vars;jQuery(document).ready(function(e){setup_give_tooltips(),e(".give-loading-text").hide(),e(document).on("click",".give-checkout-login",function(i){var t=e(this),a=e(this).parents("form"),n=e(a).find('[id^="give-checkout-login-register"] .give-loading-text'),o={action:t.data("action"),form_id:e(a).find('[name="give-form-id"]').val()};return n.show(),e.post(give_scripts.ajaxurl,o,function(i){e(a).find("[id^=give-checkout-login-register]").html(i),e(a).find(".give-submit-button-wrap").hide()}).done(function(){n.hide(),give_fl_trigger(),setup_give_tooltips()}),!1}),e(document).on("click",".give-checkout-register-cancel",function(i){i.preventDefault();var t=e(this),a=e(this).parents("form"),n={action:t.data("action"),form_id:e(a).find('[name="give-form-id"]').val()};e.post(give_scripts.ajaxurl,n,function(i){e(a).find("[id^=give-checkout-login-register]").html(e.parseJSON(i.fields)),e(a).find(".give-submit-button-wrap").show()}).done(function(){give_fl_trigger(),setup_give_tooltips()})}),e(document).on("click","[id^=give-login-fields] input[type=submit]",function(i){i.preventDefault();var t=e(this).val(),a=e(this).parents("form");e(this).val(give_global_vars.purchase_loading),a.find("[id^=give-login-fields] .give-loading-animation").fadeIn();var n={action:"give_process_donation_login",give_ajax:1,give_user_login:a.find("[name=give_user_login]").val(),give_user_pass:a.find("[name=give_user_pass]").val()};e.post(give_global_vars.ajaxurl,n,function(i){"success"==e.trim(i)?(a.find(".give_errors").remove(),give_load_gateway(a,a.find(".give-gateway-option-selected input").val())):(a.find("[id^=give-login-fields] input[type=submit]").val(t),a.find(".give-loading-animation").fadeOut(),a.find(".give_errors").remove(),a.find("[id^=give-user-login-submit]").before(i))})}),e("select#give-gateway, input.give-gateway").on("change",function(i){i.preventDefault();var t=e(this).val();return"0"==t?(console.log("There was a problem loading the selected gateway"),!1):(give_load_gateway(e(this).parents("form"),t),!1)}),e("body").on("click touchend",'form.give-form input[name="give-purchase"].give-submit',function(i){var t=e(this).parents("form.give-form"),a=t.find('input[type="submit"].give-submit + .give-loading-animation');a.fadeIn();var n=t.get(0);if("function"!=typeof n.checkValidity||n.checkValidity()!==!1||(a.fadeOut(),(navigator.userAgent.indexOf("Safari")!=-1&&navigator.userAgent.indexOf("Chrome")==-1)!=!1)){i.preventDefault();var o=e(this).val();e(this).val(give_global_vars.purchase_loading),e.post(give_global_vars.ajaxurl,t.serialize()+"&action=give_process_donation&give_ajax=true",function(i){"success"==e.trim(i)?(t.find(".give_errors").remove(),e(n).submit(),t.trigger("give_form_validation_passed")):(t.find('input[type="submit"].give-submit').val(o),a.fadeOut(),t.find(".give_errors").remove(),t.find('input[type="submit"].give-submit').before(i))})}})});
9
  var give_scripts,give_global_vars;jQuery(function(e){function a(){var a=e(this),i=a.parents("form");if("card_state"!=a.attr("id")){i.find("#card_state").empty().append('<option value="1">'+give_global_vars.general_loading+"</option>").prop("disabled",!0);var t={action:"give_get_states",country:a.val(),field_name:"card_state"};e.ajax({type:"POST",data:t,url:give_global_vars.ajaxurl,xhrFields:{withCredentials:!0},success:function(e){if("nostates"==e){var a='<input type="text" id="card_state" name="card_state" class="cart-state give-input required" value=""/>';i.find('input[name="card_state"], select[name="card_state"]').replaceWith(a)}else i.find('input[name="card_state"], select[name="card_state"]').replaceWith(e);v.trigger("give_checkout_billing_address_updated",[e,i.attr("id")])}}).fail(function(e){window.console&&window.console.log&&console.log(e)})}return!1}function i(){give_form=e("form.give-form"),give_form.each(function(){var a=e(this).find(".card-number"),i=e(this).find(".card-cvc"),t=e(this).find(".card-expiry");return 0!==a.length&&(a.payment("formatCardNumber"),i.payment("formatCardCVC"),void t.payment("formatCardExpiry"))})}function t(e,a){return"after"==give_global_vars.currency_pos&&(a.format="%v%s"),accounting.formatMoney(e,a).trim()}function n(e){return Math.abs(parseFloat(accounting.unformat(e,give_global_vars.decimal_separator)))}function o(e){var a={symbol:"",decimal:give_global_vars.decimal_separator,thousand:give_global_vars.thousands_separator,precision:give_global_vars.number_decimals};return accounting.formatMoney(e,a)}function r(a){var i=[];return a.hasClass("give-form-type-multi")?(e.each(a.find(".give-donation-levels-wrap [data-price-id] "),function(e,a){a=a instanceof jQuery?a:jQuery(a),i.push({price_id:a.data("price-id"),amount:n(a.val())})}),i):i}function d(a){var i=a.parents("form"),t=a.val(),o=a.data("price-id");return o||(o=a.find("option:selected").data("price-id")),"custom"===t?(i.find(".give-amount-top").val("").focus(),!1):(i.find(".give-amount-top").val(t),i.find("span.give-amount-top").text(t),e(".give-donation-amount .give-text-input",i).data("amount",n(i.find(".give-final-total-amount").data("total"))),i.find(".give-donation-amount .give-text-input").trigger("blur",[i,t,o]),void e(document).trigger("give_donation_value_updated",[i,t,o]))}function l(){var a=s("form-id"),i=s("payment-mode");if(!a||!i)return!1;var t=e("body").find("#give-form-"+a+"-wrap"),n=t.find("form.give-form"),o=t.hasClass("give-display-modal"),r=t.hasClass("give-display-reveal");n.find("#give-gateway-radio-list label").removeClass("give-gateway-option-selected"),n.find("input[name=payment-mode][value="+i+"]").prop("checked",!0).parent().addClass("give-gateway-option-selected");var l=s("level-id"),v=n.find('*[data-price-id="'+l+'"]');v.length>0&&d(v),o?give_open_form_modal(t,n):r&&(n.find(".give-btn-reveal").hide(),n.find("#give-payment-mode-select, #give_purchase_form_wrap").slideDown())}function s(e,a){a||(a=window.location.href),e=e.replace(/[\[\]]/g,"\\$&");var i=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),t=i.exec(a);return t?t[2]?decodeURIComponent(t[2].replace(/\+/g," ")):"":null}var v=e(document);v.on("change","#give_cc_address input.card_state, #give_cc_address select",a),i(),v.on("give_gateway_loaded",function(){i()}),e.fn.toggleError=function(e){return this.toggleClass("error",e),this.toggleClass("valid",!e),this},v.on("keyup change",".give-form .card-number, .give-form .card-cvc, .give-form .card-expiry",function(){var a=e(this),i=a.parents("form.give-form"),t=a.attr("id"),n=i.find(".card-number"),o=i.find(".card-cvc"),r=i.find(".card-expiry"),d=e.payment.cardType(n.val());if(t.indexOf("card_number")>-1){var l=i.find(".card-type");null===d?(l.removeClass().addClass("off card-type"),a.removeClass("valid").addClass("error")):l.removeClass().addClass("card-type "+d),n.toggleError(!e.payment.validateCardNumber(n.val()))}if(t.indexOf("card_cvc")>-1&&o.toggleError(!e.payment.validateCardCVC(o.val(),d)),t.indexOf("card_expiry")>-1){r.toggleError(!e.payment.validateCardExpiry(r.payment("cardExpiryVal")));var s=r.payment("cardExpiryVal");i.find(".card-expiry-month").val(s.month),i.find(".card-expiry-year").val(s.year)}}),v.on("submit","#give_payment_mode",function(){var a=e("#give-gateway option:selected").val();if(0==a)return alert(give_global_vars.no_gateway),!1}),v.on("click","#give-payment-mode-select input",function(){var a=e(this).parents("form"),i=e("#give-payment-mode-select li"),t=e('#give-payment-mode-select li.give-gateway-option-selected input[name="payment-mode"]').val(),n="";i.removeClass("give-gateway-option-selected"),i.prop("checked",!1),e(this).prop("checked",!0),e(this).parent().addClass("give-gateway-option-selected"),n=e('#give-payment-mode-select li.give-gateway-option-selected input[name="payment-mode"]').val(),a.attr("action",a.attr("action").replace("payment-mode="+t,"payment-mode="+n))}),v.on("focus",".give-donation-amount .give-text-input",function(a){var i=e(this).parents("form");e(this).removeClass("invalid-amount");var t=i.find(".give-final-total-amount").data("total");e(this).data("amount",n(t)),e(this).parent(".give-donation-amount").addClass("give-custom-amount-focus-in"),i.find(".give-default-level, .give-radio-input").removeClass("give-default-level"),i.find(".give-btn-level-custom").addClass("give-default-level"),i.find(".give-radio-input").prop("checked",!1),i.find(".give-radio-input.give-radio-level-custom").prop("checked",!0),i.find(".give-select-level").prop("selected",!1),i.find(".give-select-level .give-donation-level-custom").prop("selected",!0)}),v.on("blur",".give-donation-amount .give-text-input",function(a,i,d,l){var s=void 0!=i?i:e(this).closest("form"),v=e(this).data("amount"),c=void 0!=d?d:e(this).val(),g=s.find('input[name="give-form-minimum"]'),m=n(g.val()),u=0==c?m:n(c),p=r(e(this).parents("form")),f="";l=void 0!=l?l:-1;var _={symbol:"",decimal:give_global_vars.decimal_separator,thousand:give_global_vars.thousands_separator,precision:give_global_vars.number_decimals},h=t(u,_);if(e(this).val(h),!p.length||-1<l||(e.each(p,function(e,a){if(a.amount===u)return l=a.price_id,!1}),!(-1<l)&&m<=u&&(l="custom")),(u<m||u<1)&&-1===l){e(this).addClass("give-invalid-amount"),_.symbol=give_global_vars.currency_sign,f=give_global_vars.bad_minimum+" "+t(m,_),s.find(".give-submit").prop("disabled",!0);var y=s.find(".give-invalid-minimum");if(0===y.length){var b=e('<div class="give_error give-invalid-minimum">'+f+"</div>").hide();b.insertBefore(s.find(".give-total-wrap")).show()}}else e(this).removeClass("give-invalid-amount"),s.find(".give-invalid-minimum").slideUp(300,function(){e(this).remove()}),s.find(".give-submit").prop("disabled",!1);if(v!==u&&(_.symbol=give_global_vars.currency_sign,s.find(".give-final-total-amount").data("total",u).text(t(u,_))),-1!==l)switch(e('input[name="give-price-id"]',s).val(l),s.find(".give-amount-hidden").val(o(u)),s.find(".give-default-level").removeClass("give-default-level"),!0){case!!s.find(".give-radio-input").length:s.find(".give-radio-input").prop("checked",!1),s.find('.give-radio-input[data-price-id="'+l+'"]').prop("checked",!0).addClass("give-default-level");break;case!!s.find("button.give-donation-level-btn").length:s.find("button.give-donation-level-btn").blur(),s.find('button.give-donation-level-btn[data-price-id="'+l+'"]').focus().addClass("give-default-level");break;case!!s.find("select.give-select-level").length:s.find("select.give-select-level option").prop("selected",!1),s.find('select.give-select-level option[data-price-id="'+l+'"]').prop("selected",!0).addClass("give-default-level")}e(this).parent(".give-donation-amount").removeClass("give-custom-amount-focus-in")}),v.on("click touchend",".give-donation-level-btn",function(a){a.preventDefault(),d(e(this))}),v.on("click touchend",".give-radio-input-level",function(a){d(e(this))}),v.on("change",".give-select-level",function(a){d(e(this))}),l(),v.on("click",".give_terms_links",function(a){a.preventDefault();var i=e(this).closest("fieldset");return e("[class^=give_terms-]",i).slideToggle(),e("a.give_terms_links",i).toggle(),!1})});
10
- function give_open_form_modal(e,t){var n="#give_purchase_form_wrap, #give-payment-mode-select, .mfp-close, .give-hidden";jQuery.magnificPopup.open({mainClass:give_global_vars.magnific_options.main_class,closeOnBgClick:give_global_vars.magnific_options.close_on_bg_click,items:{src:t,type:"inline"},callbacks:{beforeOpen:function(){if(e.hasClass("give-display-button-only")&&!t.data("content")){var n=jQuery(".give-form-content-wrap",e),i=jQuery(".give-form-title",e),r=jQuery(".give-goal-progress",e),a=jQuery(">.give_error",e),l=jQuery(".give_errors",e);n.length&&!jQuery(".give-form-content-wrap",t).length&&(n.hasClass("give_post_form-content")?t.append(n):t.prepend(n)),l.length&&!jQuery(".give_errors",t).length&&l.each(function(e,n){t.prepend(jQuery(n))}),a.length&&!jQuery(">.give_error",t).length&&a.each(function(e,n){t.prepend(jQuery(n))}),r.length&&!jQuery(".give-goal-progress",t).length&&t.prepend(r),i.length&&!jQuery(".give-form-title",t).length&&t.prepend(i),t.data("content","loaded")}},open:function(){var i=jQuery(".mfp-content");i.outerWidth()>=500&&i.addClass("give-responsive-mfp-content"),e.hasClass("give-display-button-only")&&(n=t.children().not(".give-hidden, .give-btn-modal")),t.children().not(n).hide()},close:function(){t.removeClass("mfp-hide"),t.children().not(n).show()}}})}function give_fl_trigger(){var e={exclude:['#give-amount, .give-select-level, .multiselect, .give-repeater-table input, input[type="url"]'],customEvent:give_fl_custom_events};jQuery(".float-labels-enabled").floatlabels(e)}function give_fl_custom_events(e){e.hasClass("card-number")&&e.after('<span class="off card-type"/>')}function give_change_html5_form_field_validation_message(){var e,t=jQuery(".give-form");t.length&&jQuery.each(t,function(t,n){e=jQuery("input",n),e.length&&jQuery.each(e,function(e,t){t=jQuery(t).get(0),give_global_vars.form_translation.hasOwnProperty(t.name)&&(t.oninvalid=function(e){e.target.setCustomValidity(""),e.target.validity.valid||e.target.setCustomValidity(give_global_vars.form_translation[t.name])})})})}var give_scripts;jQuery(function(e){var t=e(document);give_fl_trigger(),give_change_html5_form_field_validation_message(),t.on("give_gateway_loaded",function(e,t,n){give_fl_trigger()}),t.on("give_checkout_billing_address_updated",function(t,n,i){var r=e("form#"+i);if(r.hasClass("float-labels-enabled")){var a=r.find("#give-card-state-wrap"),l=a.find("#card_state"),o=a.find('label[for="card_state"]');o=o.length?o.text().replace(/[*:]/g,"").trim():"","nostates"===n?l.attr("placeholder",o).parent().removeClass("styled select"):(l.children().first().text(o),l.parent().addClass("styled select")),l.parent().removeClass("is-active"),give_fl_trigger()}}),t.on("click",".give-btn-reveal",function(t){t.preventDefault();var n=e(this),i=e(this).parents("form"),r="#give-payment-mode-select",a=e(r),l="";return n.hide(),e("li",a).length>1&&(l=r+", "),i.find(l+"#give_purchase_form_wrap").slideDown(),!1}),t.on("click",".give-btn-modal",function(t){t.preventDefault();var n=e(this).parents("div.give-form-wrap"),i=n.find("form.give-form"),r=i.find("#give-amount"),a=r.val();return!a||a<=0?(r.focus(),!1):void give_open_form_modal(n,i)})});
7
  {});return t=t||this.corner,i=t.precedance,e=e||this._calculateSize(t),o=[t.x,t.y],i===E&&o.reverse(),s.each(o,function(s,o){var a,c,d;o===N?(a=i===S?D:P,l[a]="50%",l[ht+"-"+a]=-Math.round(e[i===S?0:1]/2)+h):(a=n._parseWidth(t,o,r.tooltip),c=n._parseWidth(t,o,r.content),d=n._parseRadius(t),l[o]=Math.max(-n.border,s?c:h+(d>a?d:-a)))}),l[t[i]]-=e[i===E?0:1],a.css({margin:"",top:"",bottom:"",left:"",right:""}).css(l),l},reposition:function(t,e,s,o){function n(t,e,i,s,o){t===$&&c.precedance===e&&d[s]&&c[i]!==N?c.precedance=c.precedance===E?S:E:t!==$&&d[s]&&(c[e]=c[e]===N?d[s]>0?s:o:c[e]===s?o:s)}function r(t,e,o){c[t]===N?m[ht+"-"+e]=g[t]=a[ht+"-"+e]-d[e]:(h=a[o]!==i?[d[e],-a[e]]:[-d[e],a[e]],(g[t]=Math.max(h[0],h[1]))>h[0]&&(s[e]-=d[e],g[e]=I),m[a[o]!==i?o:e]=g[t])}if(this.enabled){var a,h,l=e.cache,c=this.corner.clone(),d=s.adjusted,p=e.options.position.adjust.method.split(" "),u=p[0],f=p[1]||p[0],g={left:I,top:I,x:0,y:0},m={};this.corner.fixed!==W&&(n(u,E,S,D,F),n(f,S,E,P,B),c.string()===l.corner.string()&&l.cornerTop===d.top&&l.cornerLeft===d.left||this.update(c,I)),a=this.calculate(c),a.right!==i&&(a.left=-a.right),a.bottom!==i&&(a.top=-a.bottom),a.user=this.offset,(g.left=u===$&&!!d.left)&&r(E,D,F),(g.top=f===$&&!!d.top)&&r(S,P,B),this.element.css(m).toggle(!(g.x&&g.y||c.x===N&&g.y||c.y===N&&g.x)),s.left-=a.left.charAt?a.user:u!==$||g.top||!g.left&&!g.top?a.left+this.border:0,s.top-=a.top.charAt?a.user:f!==$||g.left||!g.left&&!g.top?a.top+this.border:0,l.cornerLeft=d.left,l.cornerTop=d.top,l.corner=c.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),at=V.tip=function(t){return new _(t,t.options.style.tip)},at.initialize="render",at.sanitize=function(t){if(t.style&&"tip"in t.style){var e=t.style.tip;"object"!=typeof e&&(e=t.style.tip={corner:e}),/string|boolean/i.test(typeof e.corner)||(e.corner=W)}},z.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(t){this.size=[t.width,t.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},s.extend(W,q.defaults,{style:{tip:{corner:W,mimic:I,width:6,height:6,border:W,offset:0}}});var xt,Ct,qt="qtip-modal",Tt="."+qt;Ct=function(){function t(t){if(s.expr[":"].focusable)return s.expr[":"].focusable;var e,i,o,n=!isNaN(s.attr(t,"tabindex")),r=t.nodeName&&t.nodeName.toLowerCase();return"area"===r?(e=t.parentNode,i=e.name,!(!t.href||!i||"map"!==e.nodeName.toLowerCase())&&(o=s("img[usemap=#"+i+"]")[0],!!o&&o.is(":visible"))):/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||n:n}function i(t){c.length<1&&t.length?t.not("body").blur():c.first().focus()}function o(t){if(h.is(":visible")){var e,o=s(t.target),a=n.tooltip,l=o.closest(G);e=l.length<1?I:parseInt(l[0].style.zIndex,10)>parseInt(a[0].style.zIndex,10),e||o.closest(G)[0]===a[0]||i(o),r=t.target===c[c.length-1]}}var n,r,a,h,l=this,c={};s.extend(l,{init:function(){return h=l.elem=s("<div />",{id:"qtip-overlay",html:"<div></div>",mousedown:function(){return I}}).hide(),s(e.body).bind("focusin"+Tt,o),s(e).bind("keydown"+Tt,function(t){n&&n.options.show.modal.escape&&27===t.keyCode&&n.hide(t)}),h.bind("click"+Tt,function(t){n&&n.options.show.modal.blur&&n.hide(t)}),l},update:function(e){n=e,c=e.options.show.modal.stealfocus!==I?e.tooltip.find("*").filter(function(){return t(this)}):[]},toggle:function(t,o,r){var c=(s(e.body),t.tooltip),d=t.options.show.modal,p=d.effect,u=o?"show":"hide",f=h.is(":visible"),g=s(Tt).filter(":visible:not(:animated)").not(c);return l.update(t),o&&d.stealfocus!==I&&i(s(":focus")),h.toggleClass("blurs",d.blur),o&&h.appendTo(e.body),h.is(":animated")&&f===o&&a!==I||!o&&g.length?l:(h.stop(W,I),s.isFunction(p)?p.call(h,o):p===I?h[u]():h.fadeTo(parseInt(r,10)||90,o?1:0,function(){o||h.hide()}),o||h.queue(function(t){h.css({left:"",top:""}),s(Tt).length||h.detach(),t()}),a=o,n.destroyed&&(n=k),l)}}),l.init()},Ct=new Ct,s.extend(x.prototype,{init:function(t){var e=t.tooltip;return this.options.on?(t.elements.overlay=Ct.elem,e.addClass(qt).css("z-index",q.modal_zindex+s(Tt).length),t._bind(e,["tooltipshow","tooltiphide"],function(t,i,o){var n=t.originalEvent;if(t.target===e[0])if(n&&"tooltiphide"===t.type&&/mouse(leave|enter)/.test(n.type)&&s(n.relatedTarget).closest(Ct.elem[0]).length)try{t.preventDefault()}catch(r){}else(!n||n&&"tooltipsolo"!==n.type)&&this.toggle(t,"tooltipshow"===t.type,o)},this._ns,this),t._bind(e,"tooltipfocus",function(t,i){if(!t.isDefaultPrevented()&&t.target===e[0]){var o=s(Tt),n=q.modal_zindex+o.length,r=parseInt(e[0].style.zIndex,10);Ct.elem[0].style.zIndex=n-1,o.each(function(){this.style.zIndex>r&&(this.style.zIndex-=1)}),o.filter("."+K).qtip("blur",t.originalEvent),e.addClass(K)[0].style.zIndex=n,Ct.update(i);try{t.preventDefault()}catch(a){}}},this._ns,this),void t._bind(e,"tooltiphide",function(t){t.target===e[0]&&s(Tt).filter(":visible").not(e).last().qtip("focus",t)},this._ns,this)):this},toggle:function(t,e,i){return t&&t.isDefaultPrevented()?this:void Ct.toggle(this.qtip,!!e,i)},destroy:function(){this.qtip.tooltip.removeClass(qt),this.qtip._unbind(this.qtip.tooltip,this._ns),Ct.toggle(this.qtip,I),delete this.qtip.elements.overlay}}),xt=V.modal=function(t){return new x(t,t.options.show.modal)},xt.sanitize=function(t){t.show&&("object"!=typeof t.show.modal?t.show.modal={on:!!t.show.modal}:"undefined"==typeof t.show.modal.on&&(t.show.modal.on=W))},q.modal_zindex=q.zindex-200,xt.initialize="render",z.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},s.extend(W,q.defaults,{show:{modal:{on:I,effect:W,blur:W,stealfocus:W,escape:W}}}),V.viewport=function(i,s,o,n,r,a,h){function l(t,e,i,o,n,r,a,h,l){var c=s[n],y=w[t],b=_[t],x=i===$,C=y===n?l:y===r?-l:-l/2,q=b===n?h:b===r?-h:-h/2,T=m[n]+v[n]-(u?0:p[n]),j=T-c,z=c+l-(a===A?f:g)-T,M=C-(w.precedance===t||y===w[e]?q:0)-(b===N?h/2:0);return x?(M=(y===n?1:-1)*C,s[n]+=j>0?j:z>0?-z:0,s[n]=Math.max(-p[n]+v[n],c-M,Math.min(Math.max(-p[n]+v[n]+(a===A?f:g),c+M),s[n],"center"===y?c-C:1e9))):(o*=i===O?2:0,j>0&&(y!==n||z>0)?(s[n]-=M+o,d.invert(t,n)):z>0&&(y!==r||j>0)&&(s[n]-=(y===N?-M:M)+o,d.invert(t,r)),s[n]<m&&-s[n]>z&&(s[n]=c,d=w.clone())),s[n]-c}var c,d,p,u,f,g,m,v,y=o.target,b=i.elements.tooltip,w=o.my,_=o.at,x=o.adjust,C=x.method.split(" "),q=C[0],T=C[1]||C[0],j=o.viewport,z=o.container,M=(i.cache,{left:0,top:0});return j.jquery&&y[0]!==t&&y[0]!==e.body&&"none"!==x.method?(p=z.offset()||M,u="static"===z.css("position"),c="fixed"===b.css("position"),f=j[0]===t?j.width():j.outerWidth(I),g=j[0]===t?j.height():j.outerHeight(I),m={left:c?0:j.scrollLeft(),top:c?0:j.scrollTop()},v=j.offset()||M,"shift"===q&&"shift"===T||(d=w.clone()),M={left:"none"!==q?l(E,S,q,x.x,D,F,A,n,a):0,top:"none"!==T?l(S,E,T,x.y,P,B,L,r,h):0,my:d}):M},V.polys={polygon:function(t,e){var i,s,o,n={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:I},r=0,a=[],h=1,l=1,c=0,d=0;for(r=t.length;r--;)i=[parseInt(t[--r],10),parseInt(t[r+1],10)],i[0]>n.position.right&&(n.position.right=i[0]),i[0]<n.position.left&&(n.position.left=i[0]),i[1]>n.position.bottom&&(n.position.bottom=i[1]),i[1]<n.position.top&&(n.position.top=i[1]),a.push(i);if(s=n.width=Math.abs(n.position.right-n.position.left),o=n.height=Math.abs(n.position.bottom-n.position.top),"c"===e.abbrev())n.position={left:n.position.left+n.width/2,top:n.position.top+n.height/2};else{for(;s>0&&o>0&&h>0&&l>0;)for(s=Math.floor(s/2),o=Math.floor(o/2),e.x===D?h=s:e.x===F?h=n.width-s:h+=Math.floor(s/2),e.y===P?l=o:e.y===B?l=n.height-o:l+=Math.floor(o/2),r=a.length;r--&&!(a.length<2);)c=a[r][0]-n.position.left,d=a[r][1]-n.position.top,(e.x===D&&c>=h||e.x===F&&c<=h||e.x===N&&(c<h||c>n.width-h)||e.y===P&&d>=l||e.y===B&&d<=l||e.y===N&&(d<l||d>n.height-l))&&a.splice(r,1);n.position={left:a[0][0],top:a[0][1]}}return n},rect:function(t,e,i,s){return{width:Math.abs(i-t),height:Math.abs(s-e),position:{left:Math.min(t,i),top:Math.min(e,s)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(t,e,i,s,o){var n=V.polys._angles[o.abbrev()],r=0===n?0:i*Math.cos(n*Math.PI),a=s*Math.sin(n*Math.PI);return{width:2*i-Math.abs(r),height:2*s-Math.abs(a),position:{left:t+r,top:e+a},adjustable:I}},circle:function(t,e,i,s){return V.polys.ellipse(t,e,i,i,s)}},V.svg=function(t,i,o){for(var n,r,a,h,l,c,d,p,u,f=(s(e),i[0]),g=s(f.ownerSVGElement),m=f.ownerDocument,v=(parseInt(i.css("stroke-width"),10)||0)/2;!f.getBBox;)f=f.parentNode;if(!f.getBBox||!f.parentNode)return I;switch(f.nodeName){case"ellipse":case"circle":p=V.polys.ellipse(f.cx.baseVal.value,f.cy.baseVal.value,(f.rx||f.r).baseVal.value+v,(f.ry||f.r).baseVal.value+v,o);break;case"line":case"polygon":case"polyline":for(d=f.points||[{x:f.x1.baseVal.value,y:f.y1.baseVal.value},{x:f.x2.baseVal.value,y:f.y2.baseVal.value}],p=[],c=-1,h=d.numberOfItems||d.length;++c<h;)l=d.getItem?d.getItem(c):d[c],p.push.apply(p,[l.x,l.y]);p=V.polys.polygon(p,o);break;default:p=f.getBBox(),p={width:p.width,height:p.height,position:{left:p.x,top:p.y}}}return u=p.position,g=g[0],g.createSVGPoint&&(r=f.getScreenCTM(),d=g.createSVGPoint(),d.x=u.left,d.y=u.top,a=d.matrixTransform(r),u.left=a.x,u.top=a.y),m!==e&&"mouse"!==t.position.target&&(n=s((m.defaultView||m.parentWindow).frameElement).offset(),n&&(u.left+=n.left,u.top+=n.top)),m=s(m),u.left+=m.scrollLeft(),u.top+=m.scrollTop(),p},V.imagemap=function(t,e,i,o){e.jquery||(e=s(e));var n,r,a,h,l,c=(e.attr("shape")||"rect").toLowerCase().replace("poly","polygon"),d=s('img[usemap="#'+e.parent("map").attr("name")+'"]'),p=s.trim(e.attr("coords")),u=p.replace(/,$/,"").split(",");if(!d.length)return I;if("polygon"===c)h=V.polys.polygon(u,i);else{if(!V.polys[c])return I;for(a=-1,l=u.length,r=[];++a<l;)r.push(parseInt(u[a],10));h=V.polys[c].apply(this,r.concat(i))}return n=d.offset(),n.left+=Math.ceil((d.outerWidth(I)-d.width())/2),n.top+=Math.ceil((d.outerHeight(I)-d.height())/2),h.position.left+=n.left,h.position.top+=n.top,h};var jt,zt='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';s.extend(C.prototype,{_scroll:function(){var e=this.qtip.elements.overlay;e&&(e[0].style.top=s(t).scrollTop()+"px")},init:function(i){var o=i.tooltip;s("select, object").length<1&&(this.bgiframe=i.elements.bgiframe=s(zt).appendTo(o),i._bind(o,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=s("<div/>",{id:R+"-rcontainer"}).appendTo(e.body),i.elements.overlay&&i.elements.overlay.addClass("qtipmodal-ie6fix")&&(i._bind(t,["scroll","resize"],this._scroll,this._ns,this),i._bind(o,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var t,e,i=this.qtip.tooltip,s={height:i.outerHeight(I),width:i.outerWidth(I)},o=this.qtip.plugins.tip,n=this.qtip.elements.tip;e=parseInt(i.css("borderLeftWidth"),10)||0,e={left:-e,top:-e},o&&n&&(t="x"===o.corner.precedance?[A,D]:[L,P],e[t[1]]-=n[t[0]]()),this.bgiframe.css(e).css(s)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var t,e,i,s,o=this.qtip.tooltip,n=this.qtip.options.style,r=this.qtip.options.position.container;return this.qtip.drawing=1,n.height&&o.css(L,n.height),n.width?o.css(A,n.width):(o.css(A,"").appendTo(this.redrawContainer),e=o.width(),e%2<1&&(e+=1),i=o.css("maxWidth")||"",s=o.css("minWidth")||"",t=(i+s).indexOf("%")>-1?r.width()/100:0,i=(i.indexOf("%")>-1?t:1)*parseInt(i,10)||e,s=(s.indexOf("%")>-1?t:1)*parseInt(s,10)||0,e=i+s?Math.min(Math.max(e,s),i):e,o.css(A,Math.round(e)).appendTo(r)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([t,this.qtip.tooltip],this._ns)}}),jt=V.ie6=function(t){return 6===st.ie?new C(t):I},jt.initialize="render",z.ie6={"^content|style$":function(){this.redraw()}}})}(window,document);
8
  function give_load_gateway(e,i){var t=jQuery(e).find("#give-payment-mode-select .give-loading-text"),a=jQuery(e).find("#give-amount").val(),n=jQuery(e).find('input[name="give-form-id"]').val();t.fadeIn();var o=jQuery(e).data();1!=o["blockUI.isBlocked"]&&jQuery(e).find("#give_purchase_form_wrap").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),jQuery.post(give_scripts.ajaxurl+"?payment-mode="+i,{action:"give_load_gateway",give_total:a,give_form_id:n,give_payment_mode:i},function(i){jQuery(e).unblock(),jQuery(e).find("#give_purchase_form_wrap").html(i),jQuery(".give-no-js").hide(),jQuery(e).find("#give-payment-mode-select .give-loading-text").fadeOut(),setup_give_tooltips(),jQuery(document).trigger("give_gateway_loaded",[i,jQuery(e).attr("id")])})}function setup_give_tooltips(){jQuery('[data-tooltip!=""]').qtip({content:{attr:"data-tooltip"},style:{classes:"qtip-rounded qtip-tipsy"},position:{my:"bottom center",at:"top center"}}),jQuery.fn.qtip.zindex=2147483641}var give_scripts,give_global_vars;jQuery(document).ready(function(e){setup_give_tooltips(),e(".give-loading-text").hide(),e(document).on("click",".give-checkout-login",function(i){var t=e(this),a=e(this).parents("form"),n=e(a).find('[id^="give-checkout-login-register"] .give-loading-text'),o={action:t.data("action"),form_id:e(a).find('[name="give-form-id"]').val()};return n.show(),e.post(give_scripts.ajaxurl,o,function(i){e(a).find("[id^=give-checkout-login-register]").html(i),e(a).find(".give-submit-button-wrap").hide()}).done(function(){n.hide(),give_fl_trigger(),setup_give_tooltips()}),!1}),e(document).on("click",".give-checkout-register-cancel",function(i){i.preventDefault();var t=e(this),a=e(this).parents("form"),n={action:t.data("action"),form_id:e(a).find('[name="give-form-id"]').val()};e.post(give_scripts.ajaxurl,n,function(i){e(a).find("[id^=give-checkout-login-register]").html(e.parseJSON(i.fields)),e(a).find(".give-submit-button-wrap").show()}).done(function(){give_fl_trigger(),setup_give_tooltips()})}),e(document).on("click","[id^=give-login-fields] input[type=submit]",function(i){i.preventDefault();var t=e(this).val(),a=e(this).parents("form");e(this).val(give_global_vars.purchase_loading),a.find("[id^=give-login-fields] .give-loading-animation").fadeIn();var n={action:"give_process_donation_login",give_ajax:1,give_user_login:a.find("[name=give_user_login]").val(),give_user_pass:a.find("[name=give_user_pass]").val()};e.post(give_global_vars.ajaxurl,n,function(i){"success"==e.trim(i)?(a.find(".give_errors").remove(),give_load_gateway(a,a.find(".give-gateway-option-selected input").val())):(a.find("[id^=give-login-fields] input[type=submit]").val(t),a.find(".give-loading-animation").fadeOut(),a.find(".give_errors").remove(),a.find("[id^=give-user-login-submit]").before(i))})}),e("select#give-gateway, input.give-gateway").on("change",function(i){i.preventDefault();var t=e(this).val();return"0"==t?(console.log("There was a problem loading the selected gateway"),!1):(give_load_gateway(e(this).parents("form"),t),!1)}),e("body").on("click touchend",'form.give-form input[name="give-purchase"].give-submit',function(i){var t=e(this).parents("form.give-form"),a=t.find('input[type="submit"].give-submit + .give-loading-animation');a.fadeIn();var n=t.get(0);if("function"!=typeof n.checkValidity||n.checkValidity()!==!1||(a.fadeOut(),(navigator.userAgent.indexOf("Safari")!=-1&&navigator.userAgent.indexOf("Chrome")==-1)!=!1)){i.preventDefault();var o=e(this).val();e(this).val(give_global_vars.purchase_loading),e.post(give_global_vars.ajaxurl,t.serialize()+"&action=give_process_donation&give_ajax=true",function(i){"success"==e.trim(i)?(t.find(".give_errors").remove(),e(n).submit(),t.trigger("give_form_validation_passed")):(t.find('input[type="submit"].give-submit').val(o),a.fadeOut(),t.find(".give_errors").remove(),t.find('input[type="submit"].give-submit').before(i))})}})});
9
  var give_scripts,give_global_vars;jQuery(function(e){function a(){var a=e(this),i=a.parents("form");if("card_state"!=a.attr("id")){i.find("#card_state").empty().append('<option value="1">'+give_global_vars.general_loading+"</option>").prop("disabled",!0);var t={action:"give_get_states",country:a.val(),field_name:"card_state"};e.ajax({type:"POST",data:t,url:give_global_vars.ajaxurl,xhrFields:{withCredentials:!0},success:function(e){if("nostates"==e){var a='<input type="text" id="card_state" name="card_state" class="cart-state give-input required" value=""/>';i.find('input[name="card_state"], select[name="card_state"]').replaceWith(a)}else i.find('input[name="card_state"], select[name="card_state"]').replaceWith(e);v.trigger("give_checkout_billing_address_updated",[e,i.attr("id")])}}).fail(function(e){window.console&&window.console.log&&console.log(e)})}return!1}function i(){give_form=e("form.give-form"),give_form.each(function(){var a=e(this).find(".card-number"),i=e(this).find(".card-cvc"),t=e(this).find(".card-expiry");return 0!==a.length&&(a.payment("formatCardNumber"),i.payment("formatCardCVC"),void t.payment("formatCardExpiry"))})}function t(e,a){return"after"==give_global_vars.currency_pos&&(a.format="%v%s"),accounting.formatMoney(e,a).trim()}function n(e){return Math.abs(parseFloat(accounting.unformat(e,give_global_vars.decimal_separator)))}function o(e){var a={symbol:"",decimal:give_global_vars.decimal_separator,thousand:give_global_vars.thousands_separator,precision:give_global_vars.number_decimals};return accounting.formatMoney(e,a)}function r(a){var i=[];return a.hasClass("give-form-type-multi")?(e.each(a.find(".give-donation-levels-wrap [data-price-id] "),function(e,a){a=a instanceof jQuery?a:jQuery(a),i.push({price_id:a.data("price-id"),amount:n(a.val())})}),i):i}function d(a){var i=a.parents("form"),t=a.val(),o=a.data("price-id");return o||(o=a.find("option:selected").data("price-id")),"custom"===t?(i.find(".give-amount-top").val("").focus(),!1):(i.find(".give-amount-top").val(t),i.find("span.give-amount-top").text(t),e(".give-donation-amount .give-text-input",i).data("amount",n(i.find(".give-final-total-amount").data("total"))),i.find(".give-donation-amount .give-text-input").trigger("blur",[i,t,o]),void e(document).trigger("give_donation_value_updated",[i,t,o]))}function l(){var a=s("form-id"),i=s("payment-mode");if(!a||!i)return!1;var t=e("body").find("#give-form-"+a+"-wrap"),n=t.find("form.give-form"),o=t.hasClass("give-display-modal"),r=t.hasClass("give-display-reveal");n.find("#give-gateway-radio-list label").removeClass("give-gateway-option-selected"),n.find("input[name=payment-mode][value="+i+"]").prop("checked",!0).parent().addClass("give-gateway-option-selected");var l=s("level-id"),v=n.find('*[data-price-id="'+l+'"]');v.length>0&&d(v),o?give_open_form_modal(t,n):r&&(n.find(".give-btn-reveal").hide(),n.find("#give-payment-mode-select, #give_purchase_form_wrap").slideDown())}function s(e,a){a||(a=window.location.href),e=e.replace(/[\[\]]/g,"\\$&");var i=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),t=i.exec(a);return t?t[2]?decodeURIComponent(t[2].replace(/\+/g," ")):"":null}var v=e(document);v.on("change","#give_cc_address input.card_state, #give_cc_address select",a),i(),v.on("give_gateway_loaded",function(){i()}),e.fn.toggleError=function(e){return this.toggleClass("error",e),this.toggleClass("valid",!e),this},v.on("keyup change",".give-form .card-number, .give-form .card-cvc, .give-form .card-expiry",function(){var a=e(this),i=a.parents("form.give-form"),t=a.attr("id"),n=i.find(".card-number"),o=i.find(".card-cvc"),r=i.find(".card-expiry"),d=e.payment.cardType(n.val());if(t.indexOf("card_number")>-1){var l=i.find(".card-type");null===d?(l.removeClass().addClass("off card-type"),a.removeClass("valid").addClass("error")):l.removeClass().addClass("card-type "+d),n.toggleError(!e.payment.validateCardNumber(n.val()))}if(t.indexOf("card_cvc")>-1&&o.toggleError(!e.payment.validateCardCVC(o.val(),d)),t.indexOf("card_expiry")>-1){r.toggleError(!e.payment.validateCardExpiry(r.payment("cardExpiryVal")));var s=r.payment("cardExpiryVal");i.find(".card-expiry-month").val(s.month),i.find(".card-expiry-year").val(s.year)}}),v.on("submit","#give_payment_mode",function(){var a=e("#give-gateway option:selected").val();if(0==a)return alert(give_global_vars.no_gateway),!1}),v.on("click","#give-payment-mode-select input",function(){var a=e(this).parents("form"),i=e("#give-payment-mode-select li"),t=e('#give-payment-mode-select li.give-gateway-option-selected input[name="payment-mode"]').val(),n="";i.removeClass("give-gateway-option-selected"),i.prop("checked",!1),e(this).prop("checked",!0),e(this).parent().addClass("give-gateway-option-selected"),n=e('#give-payment-mode-select li.give-gateway-option-selected input[name="payment-mode"]').val(),a.attr("action",a.attr("action").replace("payment-mode="+t,"payment-mode="+n))}),v.on("focus",".give-donation-amount .give-text-input",function(a){var i=e(this).parents("form");e(this).removeClass("invalid-amount");var t=i.find(".give-final-total-amount").data("total");e(this).data("amount",n(t)),e(this).parent(".give-donation-amount").addClass("give-custom-amount-focus-in"),i.find(".give-default-level, .give-radio-input").removeClass("give-default-level"),i.find(".give-btn-level-custom").addClass("give-default-level"),i.find(".give-radio-input").prop("checked",!1),i.find(".give-radio-input.give-radio-level-custom").prop("checked",!0),i.find(".give-select-level").prop("selected",!1),i.find(".give-select-level .give-donation-level-custom").prop("selected",!0)}),v.on("blur",".give-donation-amount .give-text-input",function(a,i,d,l){var s=void 0!=i?i:e(this).closest("form"),v=e(this).data("amount"),c=void 0!=d?d:e(this).val(),g=s.find('input[name="give-form-minimum"]'),m=n(g.val()),u=0==c?m:n(c),p=r(e(this).parents("form")),f="";l=void 0!=l?l:-1;var _={symbol:"",decimal:give_global_vars.decimal_separator,thousand:give_global_vars.thousands_separator,precision:give_global_vars.number_decimals},h=t(u,_);if(e(this).val(h),!p.length||-1<l||(e.each(p,function(e,a){if(a.amount===u)return l=a.price_id,!1}),!(-1<l)&&m<=u&&(l="custom")),(u<m||u<1)&&-1===l){e(this).addClass("give-invalid-amount"),_.symbol=give_global_vars.currency_sign,f=give_global_vars.bad_minimum+" "+t(m,_),s.find(".give-submit").prop("disabled",!0);var y=s.find(".give-invalid-minimum");if(0===y.length){var b=e('<div class="give_error give-invalid-minimum">'+f+"</div>").hide();b.insertBefore(s.find(".give-total-wrap")).show()}}else e(this).removeClass("give-invalid-amount"),s.find(".give-invalid-minimum").slideUp(300,function(){e(this).remove()}),s.find(".give-submit").prop("disabled",!1);if(v!==u&&(_.symbol=give_global_vars.currency_sign,s.find(".give-final-total-amount").data("total",u).text(t(u,_))),-1!==l)switch(e('input[name="give-price-id"]',s).val(l),s.find(".give-amount-hidden").val(o(u)),s.find(".give-default-level").removeClass("give-default-level"),!0){case!!s.find(".give-radio-input").length:s.find(".give-radio-input").prop("checked",!1),s.find('.give-radio-input[data-price-id="'+l+'"]').prop("checked",!0).addClass("give-default-level");break;case!!s.find("button.give-donation-level-btn").length:s.find("button.give-donation-level-btn").blur(),s.find('button.give-donation-level-btn[data-price-id="'+l+'"]').focus().addClass("give-default-level");break;case!!s.find("select.give-select-level").length:s.find("select.give-select-level option").prop("selected",!1),s.find('select.give-select-level option[data-price-id="'+l+'"]').prop("selected",!0).addClass("give-default-level")}e(this).parent(".give-donation-amount").removeClass("give-custom-amount-focus-in")}),v.on("click touchend",".give-donation-level-btn",function(a){a.preventDefault(),d(e(this))}),v.on("click touchend",".give-radio-input-level",function(a){d(e(this))}),v.on("change",".give-select-level",function(a){d(e(this))}),l(),v.on("click",".give_terms_links",function(a){a.preventDefault();var i=e(this).closest("fieldset");return e("[class^=give_terms-]",i).slideToggle(),e("a.give_terms_links",i).toggle(),!1})});
10
+ function give_open_form_modal(e,t){var n="#give_purchase_form_wrap, #give-payment-mode-select, .mfp-close, .give-hidden";jQuery.magnificPopup.open({mainClass:give_global_vars.magnific_options.main_class,closeOnBgClick:give_global_vars.magnific_options.close_on_bg_click,fixedContentPos:!0,fixedBgPos:!0,items:{src:t,type:"inline"},callbacks:{beforeOpen:function(){if(e.hasClass("give-display-button-only")&&!t.data("content")){var n=jQuery(".give-form-content-wrap",e),i=jQuery(".give-form-title",e),r=jQuery(".give-goal-progress",e),a=jQuery(">.give_error",e),o=jQuery(".give_errors",e);n.length&&!jQuery(".give-form-content-wrap",t).length&&(n.hasClass("give_post_form-content")?t.append(n):t.prepend(n)),o.length&&!jQuery(".give_errors",t).length&&o.each(function(e,n){t.prepend(jQuery(n))}),a.length&&!jQuery(">.give_error",t).length&&a.each(function(e,n){t.prepend(jQuery(n))}),r.length&&!jQuery(".give-goal-progress",t).length&&t.prepend(r),i.length&&!jQuery(".give-form-title",t).length&&t.prepend(i),t.data("content","loaded")}},open:function(){var i=jQuery(".mfp-content");i.outerWidth()>=500&&i.addClass("give-responsive-mfp-content"),e.hasClass("give-display-button-only")&&(n=t.children().not(".give-hidden, .give-btn-modal")),t.children().not(n).hide()},close:function(){t.removeClass("mfp-hide"),t.children().not(n).show()}}})}function give_fl_trigger(){var e={exclude:['#give-amount, .give-select-level, .multiselect, .give-repeater-table input, input[type="url"]'],customEvent:give_fl_custom_events};jQuery(".float-labels-enabled").floatlabels(e)}function give_fl_custom_events(e){e.hasClass("card-number")&&e.after('<span class="off card-type"/>')}function give_change_html5_form_field_validation_message(){var e,t=jQuery(".give-form");t.length&&jQuery.each(t,function(t,n){e=jQuery("input",n),e.length&&jQuery.each(e,function(e,t){t=jQuery(t).get(0),give_global_vars.form_translation.hasOwnProperty(t.name)&&(t.oninvalid=function(e){e.target.setCustomValidity(""),e.target.validity.valid||e.target.setCustomValidity(give_global_vars.form_translation[t.name])})})})}var give_scripts;jQuery(function(e){var t=e(document);give_fl_trigger(),give_change_html5_form_field_validation_message(),t.on("give_gateway_loaded",function(e,t,n){give_fl_trigger()}),t.on("give_checkout_billing_address_updated",function(t,n,i){var r=e("form#"+i);if(r.hasClass("float-labels-enabled")){var a=r.find("#give-card-state-wrap"),o=a.find("#card_state"),l=a.find('label[for="card_state"]');l=l.length?l.text().replace(/[*:]/g,"").trim():"","nostates"===n?o.attr("placeholder",l).parent().removeClass("styled select"):(o.children().first().text(l),o.parent().addClass("styled select")),o.parent().removeClass("is-active"),give_fl_trigger()}}),t.on("click",".give-btn-reveal",function(t){t.preventDefault();var n=e(this),i=e(this).parents("form"),r="#give-payment-mode-select",a=e(r),o="";return n.hide(),e("li",a).length>1&&(o=r+", "),i.find(o+"#give_purchase_form_wrap").slideDown(),!1}),t.on("click",".give-btn-modal",function(t){t.preventDefault();var n=e(this).parents("div.give-form-wrap"),i=n.find("form.give-form"),r=i.find("#give-amount"),a=r.val();return!a||a<=0?(r.focus(),!1):void give_open_form_modal(n,i)})});
assets/js/frontend/give.js CHANGED
@@ -106,6 +106,8 @@ function give_open_form_modal($form_wrap, $form) {
106
  jQuery.magnificPopup.open({
107
  mainClass : give_global_vars.magnific_options.main_class,
108
  closeOnBgClick : give_global_vars.magnific_options.close_on_bg_click,
 
 
109
  items: {
110
  src: $form,
111
  type: 'inline'
106
  jQuery.magnificPopup.open({
107
  mainClass : give_global_vars.magnific_options.main_class,
108
  closeOnBgClick : give_global_vars.magnific_options.close_on_bg_click,
109
+ fixedContentPos: true,
110
+ fixedBgPos: true,
111
  items: {
112
  src: $form,
113
  type: 'inline'
assets/js/frontend/give.min.js CHANGED
@@ -1 +1 @@
1
- function give_open_form_modal(e,t){var n="#give_purchase_form_wrap, #give-payment-mode-select, .mfp-close, .give-hidden";jQuery.magnificPopup.open({mainClass:give_global_vars.magnific_options.main_class,closeOnBgClick:give_global_vars.magnific_options.close_on_bg_click,items:{src:t,type:"inline"},callbacks:{beforeOpen:function(){if(e.hasClass("give-display-button-only")&&!t.data("content")){var n=jQuery(".give-form-content-wrap",e),i=jQuery(".give-form-title",e),r=jQuery(".give-goal-progress",e),a=jQuery(">.give_error",e),l=jQuery(".give_errors",e);n.length&&!jQuery(".give-form-content-wrap",t).length&&(n.hasClass("give_post_form-content")?t.append(n):t.prepend(n)),l.length&&!jQuery(".give_errors",t).length&&l.each(function(e,n){t.prepend(jQuery(n))}),a.length&&!jQuery(">.give_error",t).length&&a.each(function(e,n){t.prepend(jQuery(n))}),r.length&&!jQuery(".give-goal-progress",t).length&&t.prepend(r),i.length&&!jQuery(".give-form-title",t).length&&t.prepend(i),t.data("content","loaded")}},open:function(){var i=jQuery(".mfp-content");i.outerWidth()>=500&&i.addClass("give-responsive-mfp-content"),e.hasClass("give-display-button-only")&&(n=t.children().not(".give-hidden, .give-btn-modal")),t.children().not(n).hide()},close:function(){t.removeClass("mfp-hide"),t.children().not(n).show()}}})}function give_fl_trigger(){var e={exclude:['#give-amount, .give-select-level, .multiselect, .give-repeater-table input, input[type="url"]'],customEvent:give_fl_custom_events};jQuery(".float-labels-enabled").floatlabels(e)}function give_fl_custom_events(e){e.hasClass("card-number")&&e.after('<span class="off card-type"/>')}function give_change_html5_form_field_validation_message(){var e,t=jQuery(".give-form");t.length&&jQuery.each(t,function(t,n){e=jQuery("input",n),e.length&&jQuery.each(e,function(e,t){t=jQuery(t).get(0),give_global_vars.form_translation.hasOwnProperty(t.name)&&(t.oninvalid=function(e){e.target.setCustomValidity(""),e.target.validity.valid||e.target.setCustomValidity(give_global_vars.form_translation[t.name])})})})}var give_scripts;jQuery(function(e){var t=e(document);give_fl_trigger(),give_change_html5_form_field_validation_message(),t.on("give_gateway_loaded",function(e,t,n){give_fl_trigger()}),t.on("give_checkout_billing_address_updated",function(t,n,i){var r=e("form#"+i);if(r.hasClass("float-labels-enabled")){var a=r.find("#give-card-state-wrap"),l=a.find("#card_state"),o=a.find('label[for="card_state"]');o=o.length?o.text().replace(/[*:]/g,"").trim():"","nostates"===n?l.attr("placeholder",o).parent().removeClass("styled select"):(l.children().first().text(o),l.parent().addClass("styled select")),l.parent().removeClass("is-active"),give_fl_trigger()}}),t.on("click",".give-btn-reveal",function(t){t.preventDefault();var n=e(this),i=e(this).parents("form"),r="#give-payment-mode-select",a=e(r),l="";return n.hide(),e("li",a).length>1&&(l=r+", "),i.find(l+"#give_purchase_form_wrap").slideDown(),!1}),t.on("click",".give-btn-modal",function(t){t.preventDefault();var n=e(this).parents("div.give-form-wrap"),i=n.find("form.give-form"),r=i.find("#give-amount"),a=r.val();return!a||a<=0?(r.focus(),!1):void give_open_form_modal(n,i)})});
1
+ function give_open_form_modal(e,t){var n="#give_purchase_form_wrap, #give-payment-mode-select, .mfp-close, .give-hidden";jQuery.magnificPopup.open({mainClass:give_global_vars.magnific_options.main_class,closeOnBgClick:give_global_vars.magnific_options.close_on_bg_click,fixedContentPos:!0,fixedBgPos:!0,items:{src:t,type:"inline"},callbacks:{beforeOpen:function(){if(e.hasClass("give-display-button-only")&&!t.data("content")){var n=jQuery(".give-form-content-wrap",e),i=jQuery(".give-form-title",e),r=jQuery(".give-goal-progress",e),a=jQuery(">.give_error",e),o=jQuery(".give_errors",e);n.length&&!jQuery(".give-form-content-wrap",t).length&&(n.hasClass("give_post_form-content")?t.append(n):t.prepend(n)),o.length&&!jQuery(".give_errors",t).length&&o.each(function(e,n){t.prepend(jQuery(n))}),a.length&&!jQuery(">.give_error",t).length&&a.each(function(e,n){t.prepend(jQuery(n))}),r.length&&!jQuery(".give-goal-progress",t).length&&t.prepend(r),i.length&&!jQuery(".give-form-title",t).length&&t.prepend(i),t.data("content","loaded")}},open:function(){var i=jQuery(".mfp-content");i.outerWidth()>=500&&i.addClass("give-responsive-mfp-content"),e.hasClass("give-display-button-only")&&(n=t.children().not(".give-hidden, .give-btn-modal")),t.children().not(n).hide()},close:function(){t.removeClass("mfp-hide"),t.children().not(n).show()}}})}function give_fl_trigger(){var e={exclude:['#give-amount, .give-select-level, .multiselect, .give-repeater-table input, input[type="url"]'],customEvent:give_fl_custom_events};jQuery(".float-labels-enabled").floatlabels(e)}function give_fl_custom_events(e){e.hasClass("card-number")&&e.after('<span class="off card-type"/>')}function give_change_html5_form_field_validation_message(){var e,t=jQuery(".give-form");t.length&&jQuery.each(t,function(t,n){e=jQuery("input",n),e.length&&jQuery.each(e,function(e,t){t=jQuery(t).get(0),give_global_vars.form_translation.hasOwnProperty(t.name)&&(t.oninvalid=function(e){e.target.setCustomValidity(""),e.target.validity.valid||e.target.setCustomValidity(give_global_vars.form_translation[t.name])})})})}var give_scripts;jQuery(function(e){var t=e(document);give_fl_trigger(),give_change_html5_form_field_validation_message(),t.on("give_gateway_loaded",function(e,t,n){give_fl_trigger()}),t.on("give_checkout_billing_address_updated",function(t,n,i){var r=e("form#"+i);if(r.hasClass("float-labels-enabled")){var a=r.find("#give-card-state-wrap"),o=a.find("#card_state"),l=a.find('label[for="card_state"]');l=l.length?l.text().replace(/[*:]/g,"").trim():"","nostates"===n?o.attr("placeholder",l).parent().removeClass("styled select"):(o.children().first().text(l),o.parent().addClass("styled select")),o.parent().removeClass("is-active"),give_fl_trigger()}}),t.on("click",".give-btn-reveal",function(t){t.preventDefault();var n=e(this),i=e(this).parents("form"),r="#give-payment-mode-select",a=e(r),o="";return n.hide(),e("li",a).length>1&&(o=r+", "),i.find(o+"#give_purchase_form_wrap").slideDown(),!1}),t.on("click",".give-btn-modal",function(t){t.preventDefault();var n=e(this).parents("div.give-form-wrap"),i=n.find("form.give-form"),r=i.find("#give-amount"),a=r.val();return!a||a<=0?(r.focus(),!1):void give_open_form_modal(n,i)})});
assets/js/plugins/chosen.jquery.js CHANGED
@@ -1,5 +1,6 @@
1
  (function() {
2
  var $, AbstractChosen, Chosen, SelectParser, _ref,
 
3
  __hasProp = {}.hasOwnProperty,
4
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
5
 
@@ -109,6 +110,7 @@
109
  function AbstractChosen(form_field, options) {
110
  this.form_field = form_field;
111
  this.options = options != null ? options : {};
 
112
  if (!AbstractChosen.browser_is_supported()) {
113
  return;
114
  }
@@ -133,6 +135,7 @@
133
  this.mouse_on_container = false;
134
  this.results_showing = false;
135
  this.result_highlighted = null;
 
136
  this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
137
  this.disable_search_threshold = this.options.disable_search_threshold || 0;
138
  this.disable_search = this.options.disable_search || false;
@@ -145,7 +148,9 @@
145
  this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
146
  this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
147
  this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
148
- return this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
 
 
149
  };
150
 
151
  AbstractChosen.prototype.set_default_text = function() {
@@ -156,6 +161,7 @@
156
  } else {
157
  this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
158
  }
 
159
  return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
160
  };
161
 
@@ -200,6 +206,14 @@
200
  }
201
  };
202
 
 
 
 
 
 
 
 
 
203
  AbstractChosen.prototype.results_option_build = function(options) {
204
  var content, data, data_content, shown_results, _i, _len, _ref;
205
  content = '';
@@ -332,13 +346,13 @@
332
  };
333
 
334
  AbstractChosen.prototype.winnow_results = function() {
335
- var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
336
  this.no_results_clear();
337
  results = 0;
338
  searchText = this.get_search_text();
339
  escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
340
- zregex = new RegExp(escapedSearchText, 'i');
341
  regex = this.get_search_regex(escapedSearchText);
 
342
  _ref = this.results_data;
343
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
344
  option = _ref[_i];
@@ -364,7 +378,7 @@
364
  }
365
  if (option.search_match) {
366
  if (searchText.length) {
367
- startpos = option.search_text.search(zregex);
368
  text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
369
  option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
370
  }
@@ -388,9 +402,17 @@
388
  };
389
 
390
  AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
391
- var regex_anchor;
392
  regex_anchor = this.search_contains ? "" : "^";
393
- return new RegExp(regex_anchor + escaped_search_string, 'i');
 
 
 
 
 
 
 
 
394
  };
395
 
396
  AbstractChosen.prototype.search_string_match = function(search_string, regex) {
@@ -428,11 +450,55 @@
428
 
429
  AbstractChosen.prototype.choices_click = function(evt) {
430
  evt.preventDefault();
 
431
  if (!(this.results_showing || this.is_disabled)) {
432
  return this.results_show();
433
  }
434
  };
435
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
436
  AbstractChosen.prototype.keyup_checker = function(evt) {
437
  var stroke, _ref;
438
  stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
@@ -440,38 +506,42 @@
440
  switch (stroke) {
441
  case 8:
442
  if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
443
- return this.keydown_backstroke();
444
  } else if (!this.pending_backstroke) {
445
  this.result_clear_highlight();
446
- return this.results_search();
447
  }
448
  break;
449
  case 13:
450
  evt.preventDefault();
451
  if (this.results_showing) {
452
- return this.result_select(evt);
453
  }
454
  break;
455
  case 27:
456
  if (this.results_showing) {
457
  this.results_hide();
458
  }
459
- return true;
460
  case 9:
461
- case 38:
462
- case 40:
463
  case 16:
464
- case 91:
465
  case 17:
466
  case 18:
 
 
 
467
  break;
468
  default:
469
- return this.results_search();
 
470
  }
471
  };
472
 
473
  AbstractChosen.prototype.clipboard_event_checker = function(evt) {
474
  var _this = this;
 
 
 
475
  return setTimeout((function() {
476
  return _this.results_search();
477
  }), 50);
@@ -524,30 +594,25 @@
524
  return tmp.innerHTML;
525
  };
526
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  AbstractChosen.browser_is_supported = function() {
528
- if (/iP(od|hone)/i.test(window.navigator.userAgent)) {
529
- return false;
530
- }
531
- if (/Android/i.test(window.navigator.userAgent)) {
532
- if (/Mobile/i.test(window.navigator.userAgent)) {
533
- return false;
534
- }
535
- }
536
- if (/IEMobile/i.test(window.navigator.userAgent)) {
537
- return false;
538
- }
539
- if (/Windows Phone/i.test(window.navigator.userAgent)) {
540
- return false;
541
- }
542
- if (/BlackBerry/i.test(window.navigator.userAgent)) {
543
- return false;
544
  }
545
- if (/BB10/i.test(window.navigator.userAgent)) {
546
  return false;
547
  }
548
- if (window.navigator.appName === "Microsoft Internet Explorer") {
549
- return document.documentMode >= 8;
550
- }
551
  return true;
552
  };
553
 
@@ -595,8 +660,7 @@
595
 
596
  Chosen.prototype.setup = function() {
597
  this.form_field_jq = $(this.form_field);
598
- this.current_selectedIndex = this.form_field.selectedIndex;
599
- return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
600
  };
601
 
602
  Chosen.prototype.set_up_html = function() {
@@ -611,17 +675,17 @@
611
  }
612
  container_props = {
613
  'class': container_classes.join(' '),
614
- 'style': "width: " + (this.container_width()) + ";",
615
  'title': this.form_field.title
616
  };
617
  if (this.form_field.id.length) {
618
  container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
619
  }
620
  this.container = $("<div />", container_props);
 
621
  if (this.is_multiple) {
622
- this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
623
  } else {
624
- this.container.html('<a class="chosen-single chosen-default"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
625
  }
626
  this.form_field_jq.hide().after(this.container);
627
  this.dropdown = this.container.find('div.chosen-drop').first();
@@ -651,11 +715,9 @@
651
  var _this = this;
652
  this.container.bind('touchstart.chosen', function(evt) {
653
  _this.container_mousedown(evt);
654
- return evt.preventDefault();
655
  });
656
  this.container.bind('touchend.chosen', function(evt) {
657
  _this.container_mouseup(evt);
658
- return evt.preventDefault();
659
  });
660
  this.container.bind('mousedown.chosen', function(evt) {
661
  _this.container_mousedown(evt);
@@ -700,7 +762,7 @@
700
  _this.container_mousedown(evt);
701
  });
702
  this.form_field_jq.bind("chosen:close.chosen", function(evt) {
703
- _this.input_blur(evt);
704
  });
705
  this.search_field.bind('blur.chosen', function(evt) {
706
  _this.input_blur(evt);
@@ -732,7 +794,10 @@
732
  };
733
 
734
  Chosen.prototype.destroy = function() {
735
- $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
 
 
 
736
  if (this.search_field[0].tabIndex) {
737
  this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
738
  }
@@ -742,41 +807,39 @@
742
  };
743
 
744
  Chosen.prototype.search_field_disabled = function() {
745
- this.is_disabled = this.form_field_jq[0].disabled;
 
 
 
 
 
746
  if (this.is_disabled) {
747
- this.container.addClass('chosen-disabled');
748
- this.search_field[0].disabled = true;
749
- if (!this.is_multiple) {
750
- this.selected_item.unbind("focus.chosen", this.activate_action);
751
- }
752
  return this.close_field();
753
- } else {
754
- this.container.removeClass('chosen-disabled');
755
- this.search_field[0].disabled = false;
756
- if (!this.is_multiple) {
757
- return this.selected_item.bind("focus.chosen", this.activate_action);
758
- }
759
  }
760
  };
761
 
762
  Chosen.prototype.container_mousedown = function(evt) {
763
- if (!this.is_disabled) {
764
- if (evt && evt.type === "mousedown" && !this.results_showing) {
765
- evt.preventDefault();
766
- }
767
- if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
768
- if (!this.active_field) {
769
- if (this.is_multiple) {
770
- this.search_field.val("");
771
- }
772
- $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
773
- this.results_show();
774
- } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
775
- evt.preventDefault();
776
- this.results_toggle();
777
  }
778
- return this.activate_field();
 
 
 
 
779
  }
 
780
  }
781
  };
782
 
@@ -813,10 +876,14 @@
813
  this.container.removeClass("chosen-container-active");
814
  this.clear_backstroke();
815
  this.show_search_field_default();
816
- return this.search_field_scale();
 
817
  };
818
 
819
  Chosen.prototype.activate_field = function() {
 
 
 
820
  this.container.addClass("chosen-container-active");
821
  this.active_field = true;
822
  this.search_field.val(this.search_field.val());
@@ -894,7 +961,7 @@
894
  this.container.addClass("chosen-with-drop");
895
  this.results_showing = true;
896
  this.search_field.focus();
897
- this.search_field.val(this.search_field.val());
898
  this.winnow_results();
899
  return this.form_field_jq.trigger("chosen:showing_dropdown", {
900
  chosen: this
@@ -926,19 +993,12 @@
926
  };
927
 
928
  Chosen.prototype.set_label_behavior = function() {
929
- var _this = this;
930
  this.form_field_label = this.form_field_jq.parents("label");
931
  if (!this.form_field_label.length && this.form_field.id.length) {
932
  this.form_field_label = $("label[for='" + this.form_field.id + "']");
933
  }
934
  if (this.form_field_label.length > 0) {
935
- return this.form_field_label.bind('click.chosen', function(evt) {
936
- if (_this.is_multiple) {
937
- return _this.container_mousedown(evt);
938
- } else {
939
- return _this.activate_field();
940
- }
941
- });
942
  }
943
  };
944
 
@@ -1007,8 +1067,12 @@
1007
 
1008
  Chosen.prototype.choice_destroy = function(link) {
1009
  if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
1010
- this.show_search_field_default();
1011
- if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
 
 
 
 
1012
  this.results_hide();
1013
  }
1014
  link.parents('li').first().remove();
@@ -1022,7 +1086,7 @@
1022
  this.single_set_selected_text();
1023
  this.show_search_field_default();
1024
  this.results_reset_cleanup();
1025
- this.form_field_jq.trigger("change");
1026
  if (this.active_field) {
1027
  return this.results_hide();
1028
  }
@@ -1059,13 +1123,13 @@
1059
  } else {
1060
  this.single_set_selected_text(this.choice_label(item));
1061
  }
1062
- if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
1063
  this.results_hide();
 
1064
  }
1065
- this.show_search_field_default();
1066
  if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
1067
- this.form_field_jq.trigger("change", {
1068
- 'selected': this.form_field.options[item.options_index].value
1069
  });
1070
  }
1071
  this.current_selectedIndex = this.form_field.selectedIndex;
@@ -1098,7 +1162,7 @@
1098
  if (this.results_showing) {
1099
  this.winnow_results();
1100
  }
1101
- this.form_field_jq.trigger("change", {
1102
  deselected: this.form_field.options[result_data.options_index].value
1103
  });
1104
  this.search_field_scale();
@@ -1118,8 +1182,16 @@
1118
  return this.selected_item.addClass("chosen-single-with-deselect");
1119
  };
1120
 
 
 
 
 
1121
  Chosen.prototype.get_search_text = function() {
1122
- return $('<div/>').text($.trim(this.search_field.val())).html();
 
 
 
 
1123
  };
1124
 
1125
  Chosen.prototype.winnow_results_set_highlight = function() {
@@ -1133,8 +1205,7 @@
1133
 
1134
  Chosen.prototype.no_results = function(terms) {
1135
  var no_results_html;
1136
- no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
1137
- no_results_html.find("span").first().html(terms);
1138
  this.search_results.append(no_results_html);
1139
  return this.form_field_jq.trigger("chosen:no_results", {
1140
  chosen: this
@@ -1199,70 +1270,36 @@
1199
  return this.pending_backstroke = null;
1200
  };
1201
 
1202
- Chosen.prototype.keydown_checker = function(evt) {
1203
- var stroke, _ref1;
1204
- stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
1205
- this.search_field_scale();
1206
- if (stroke !== 8 && this.pending_backstroke) {
1207
- this.clear_backstroke();
1208
- }
1209
- switch (stroke) {
1210
- case 8:
1211
- this.backstroke_length = this.search_field.val().length;
1212
- break;
1213
- case 9:
1214
- if (this.results_showing && !this.is_multiple) {
1215
- this.result_select(evt);
1216
- }
1217
- this.mouse_on_container = false;
1218
- break;
1219
- case 13:
1220
- if (this.results_showing) {
1221
- evt.preventDefault();
1222
- }
1223
- break;
1224
- case 32:
1225
- if (this.disable_search) {
1226
- evt.preventDefault();
1227
- }
1228
- break;
1229
- case 38:
1230
- evt.preventDefault();
1231
- this.keyup_arrow();
1232
- break;
1233
- case 40:
1234
- evt.preventDefault();
1235
- this.keydown_arrow();
1236
- break;
1237
- }
1238
- };
1239
-
1240
  Chosen.prototype.search_field_scale = function() {
1241
- var div, f_width, h, style, style_block, styles, w, _i, _len;
1242
- if (this.is_multiple) {
1243
- h = 0;
1244
- w = 0;
1245
- style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
1246
- styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
1247
- for (_i = 0, _len = styles.length; _i < _len; _i++) {
1248
- style = styles[_i];
1249
- style_block += style + ":" + this.search_field.css(style) + ";";
1250
- }
1251
- div = $('<div />', {
1252
- 'style': style_block
1253
- });
1254
- div.text(this.search_field.val());
1255
- $('body').append(div);
1256
- w = div.width() + 25;
1257
- div.remove();
1258
- f_width = this.container.outerWidth();
1259
- if (w > f_width - 10) {
1260
- w = f_width - 10;
1261
- }
1262
- return this.search_field.css({
1263
- 'width': w + 'px'
1264
- });
1265
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1266
  };
1267
 
1268
  return Chosen;
1
  (function() {
2
  var $, AbstractChosen, Chosen, SelectParser, _ref,
3
+ __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
4
  __hasProp = {}.hasOwnProperty,
5
  __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
6
 
110
  function AbstractChosen(form_field, options) {
111
  this.form_field = form_field;
112
  this.options = options != null ? options : {};
113
+ this.label_click_handler = __bind(this.label_click_handler, this);
114
  if (!AbstractChosen.browser_is_supported()) {
115
  return;
116
  }
135
  this.mouse_on_container = false;
136
  this.results_showing = false;
137
  this.result_highlighted = null;
138
+ this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className);
139
  this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
140
  this.disable_search_threshold = this.options.disable_search_threshold || 0;
141
  this.disable_search = this.options.disable_search || false;
148
  this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
149
  this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
150
  this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;
151
+ this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;
152
+ this.case_sensitive_search = this.options.case_sensitive_search || false;
153
+ return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;
154
  };
155
 
156
  AbstractChosen.prototype.set_default_text = function() {
161
  } else {
162
  this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
163
  }
164
+ this.default_text = this.escape_html(this.default_text);
165
  return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
166
  };
167
 
206
  }
207
  };
208
 
209
+ AbstractChosen.prototype.label_click_handler = function(evt) {
210
+ if (this.is_multiple) {
211
+ return this.container_mousedown(evt);
212
+ } else {
213
+ return this.activate_field();
214
+ }
215
+ };
216
+
217
  AbstractChosen.prototype.results_option_build = function(options) {
218
  var content, data, data_content, shown_results, _i, _len, _ref;
219
  content = '';
346
  };
347
 
348
  AbstractChosen.prototype.winnow_results = function() {
349
+ var escapedSearchText, highlightRegex, option, regex, results, results_group, searchText, startpos, text, _i, _len, _ref;
350
  this.no_results_clear();
351
  results = 0;
352
  searchText = this.get_search_text();
353
  escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
 
354
  regex = this.get_search_regex(escapedSearchText);
355
+ highlightRegex = this.get_highlight_regex(escapedSearchText);
356
  _ref = this.results_data;
357
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
358
  option = _ref[_i];
378
  }
379
  if (option.search_match) {
380
  if (searchText.length) {
381
+ startpos = option.search_text.search(highlightRegex);
382
  text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
383
  option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
384
  }
402
  };
403
 
404
  AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
405
+ var regex_anchor, regex_flag;
406
  regex_anchor = this.search_contains ? "" : "^";
407
+ regex_flag = this.case_sensitive_search ? "" : "i";
408
+ return new RegExp(regex_anchor + escaped_search_string, regex_flag);
409
+ };
410
+
411
+ AbstractChosen.prototype.get_highlight_regex = function(escaped_search_string) {
412
+ var regex_anchor, regex_flag;
413
+ regex_anchor = this.search_contains ? "" : "\\b";
414
+ regex_flag = this.case_sensitive_search ? "" : "i";
415
+ return new RegExp(regex_anchor + escaped_search_string, regex_flag);
416
  };
417
 
418
  AbstractChosen.prototype.search_string_match = function(search_string, regex) {
450
 
451
  AbstractChosen.prototype.choices_click = function(evt) {
452
  evt.preventDefault();
453
+ this.activate_field();
454
  if (!(this.results_showing || this.is_disabled)) {
455
  return this.results_show();
456
  }
457
  };
458
 
459
+ AbstractChosen.prototype.keydown_checker = function(evt) {
460
+ var stroke, _ref;
461
+ stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
462
+ this.search_field_scale();
463
+ if (stroke !== 8 && this.pending_backstroke) {
464
+ this.clear_backstroke();
465
+ }
466
+ switch (stroke) {
467
+ case 8:
468
+ this.backstroke_length = this.get_search_field_value().length;
469
+ break;
470
+ case 9:
471
+ if (this.results_showing && !this.is_multiple) {
472
+ this.result_select(evt);
473
+ }
474
+ this.mouse_on_container = false;
475
+ break;
476
+ case 13:
477
+ if (this.results_showing) {
478
+ evt.preventDefault();
479
+ }
480
+ break;
481
+ case 27:
482
+ if (this.results_showing) {
483
+ evt.preventDefault();
484
+ }
485
+ break;
486
+ case 32:
487
+ if (this.disable_search) {
488
+ evt.preventDefault();
489
+ }
490
+ break;
491
+ case 38:
492
+ evt.preventDefault();
493
+ this.keyup_arrow();
494
+ break;
495
+ case 40:
496
+ evt.preventDefault();
497
+ this.keydown_arrow();
498
+ break;
499
+ }
500
+ };
501
+
502
  AbstractChosen.prototype.keyup_checker = function(evt) {
503
  var stroke, _ref;
504
  stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
506
  switch (stroke) {
507
  case 8:
508
  if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
509
+ this.keydown_backstroke();
510
  } else if (!this.pending_backstroke) {
511
  this.result_clear_highlight();
512
+ this.results_search();
513
  }
514
  break;
515
  case 13:
516
  evt.preventDefault();
517
  if (this.results_showing) {
518
+ this.result_select(evt);
519
  }
520
  break;
521
  case 27:
522
  if (this.results_showing) {
523
  this.results_hide();
524
  }
525
+ break;
526
  case 9:
 
 
527
  case 16:
 
528
  case 17:
529
  case 18:
530
+ case 38:
531
+ case 40:
532
+ case 91:
533
  break;
534
  default:
535
+ this.results_search();
536
+ break;
537
  }
538
  };
539
 
540
  AbstractChosen.prototype.clipboard_event_checker = function(evt) {
541
  var _this = this;
542
+ if (this.is_disabled) {
543
+ return;
544
+ }
545
  return setTimeout((function() {
546
  return _this.results_search();
547
  }), 50);
594
  return tmp.innerHTML;
595
  };
596
 
597
+ AbstractChosen.prototype.get_single_html = function() {
598
+ return "<a class=\"chosen-single chosen-default\">\n <span>" + this.default_text + "</span>\n <div><b></b></div>\n</a>\n<div class=\"chosen-drop\">\n <div class=\"chosen-search\">\n <input class=\"chosen-search-input\" type=\"text\" autocomplete=\"off\" />\n </div>\n <ul class=\"chosen-results\"></ul>\n</div>";
599
+ };
600
+
601
+ AbstractChosen.prototype.get_multi_html = function() {
602
+ return "<ul class=\"chosen-choices\">\n <li class=\"search-field\">\n <input class=\"chosen-search-input\" type=\"text\" autocomplete=\"off\" value=\"" + this.default_text + "\" />\n </li>\n</ul>\n<div class=\"chosen-drop\">\n <ul class=\"chosen-results\"></ul>\n</div>";
603
+ };
604
+
605
+ AbstractChosen.prototype.get_no_results_html = function(terms) {
606
+ return "<li class=\"no-results\">\n " + this.results_none_found + " <span>" + terms + "</span>\n</li>";
607
+ };
608
+
609
  AbstractChosen.browser_is_supported = function() {
610
+ if ("Microsoft Internet Explorer" === window.navigator.appName) {
611
+ return document.documentMode >= 8;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
612
  }
613
+ if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {
614
  return false;
615
  }
 
 
 
616
  return true;
617
  };
618
 
660
 
661
  Chosen.prototype.setup = function() {
662
  this.form_field_jq = $(this.form_field);
663
+ return this.current_selectedIndex = this.form_field.selectedIndex;
 
664
  };
665
 
666
  Chosen.prototype.set_up_html = function() {
675
  }
676
  container_props = {
677
  'class': container_classes.join(' '),
 
678
  'title': this.form_field.title
679
  };
680
  if (this.form_field.id.length) {
681
  container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
682
  }
683
  this.container = $("<div />", container_props);
684
+ this.container.width(this.container_width());
685
  if (this.is_multiple) {
686
+ this.container.html(this.get_multi_html());
687
  } else {
688
+ this.container.html(this.get_single_html());
689
  }
690
  this.form_field_jq.hide().after(this.container);
691
  this.dropdown = this.container.find('div.chosen-drop').first();
715
  var _this = this;
716
  this.container.bind('touchstart.chosen', function(evt) {
717
  _this.container_mousedown(evt);
 
718
  });
719
  this.container.bind('touchend.chosen', function(evt) {
720
  _this.container_mouseup(evt);
 
721
  });
722
  this.container.bind('mousedown.chosen', function(evt) {
723
  _this.container_mousedown(evt);
762
  _this.container_mousedown(evt);
763
  });
764
  this.form_field_jq.bind("chosen:close.chosen", function(evt) {
765
+ _this.close_field(evt);
766
  });
767
  this.search_field.bind('blur.chosen', function(evt) {
768
  _this.input_blur(evt);
794
  };
795
 
796
  Chosen.prototype.destroy = function() {
797
+ $(this.container[0].ownerDocument).unbind('click.chosen', this.click_test_action);
798
+ if (this.form_field_label.length > 0) {
799
+ this.form_field_label.unbind('click.chosen');
800
+ }
801
  if (this.search_field[0].tabIndex) {
802
  this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
803
  }
807
  };
808
 
809
  Chosen.prototype.search_field_disabled = function() {
810
+ this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');
811
+ this.container.toggleClass('chosen-disabled', this.is_disabled);
812
+ this.search_field[0].disabled = this.is_disabled;
813
+ if (!this.is_multiple) {
814
+ this.selected_item.unbind('focus.chosen', this.activate_field);
815
+ }
816
  if (this.is_disabled) {
 
 
 
 
 
817
  return this.close_field();
818
+ } else if (!this.is_multiple) {
819
+ return this.selected_item.bind('focus.chosen', this.activate_field);
 
 
 
 
820
  }
821
  };
822
 
823
  Chosen.prototype.container_mousedown = function(evt) {
824
+ var _ref1;
825
+ if (this.is_disabled) {
826
+ return;
827
+ }
828
+ if (evt && ((_ref1 = evt.type) === 'mousedown' || _ref1 === 'touchstart') && !this.results_showing) {
829
+ evt.preventDefault();
830
+ }
831
+ if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
832
+ if (!this.active_field) {
833
+ if (this.is_multiple) {
834
+ this.search_field.val("");
 
 
 
835
  }
836
+ $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
837
+ this.results_show();
838
+ } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
839
+ evt.preventDefault();
840
+ this.results_toggle();
841
  }
842
+ return this.activate_field();
843
  }
844
  };
845
 
876
  this.container.removeClass("chosen-container-active");
877
  this.clear_backstroke();
878
  this.show_search_field_default();
879
+ this.search_field_scale();
880
+ return this.search_field.blur();
881
  };
882
 
883
  Chosen.prototype.activate_field = function() {
884
+ if (this.is_disabled) {
885
+ return;
886
+ }
887
  this.container.addClass("chosen-container-active");
888
  this.active_field = true;
889
  this.search_field.val(this.search_field.val());
961
  this.container.addClass("chosen-with-drop");
962
  this.results_showing = true;
963
  this.search_field.focus();
964
+ this.search_field.val(this.get_search_field_value());
965
  this.winnow_results();
966
  return this.form_field_jq.trigger("chosen:showing_dropdown", {
967
  chosen: this
993
  };
994
 
995
  Chosen.prototype.set_label_behavior = function() {
 
996
  this.form_field_label = this.form_field_jq.parents("label");
997
  if (!this.form_field_label.length && this.form_field.id.length) {
998
  this.form_field_label = $("label[for='" + this.form_field.id + "']");
999
  }
1000
  if (this.form_field_label.length > 0) {
1001
+ return this.form_field_label.bind('click.chosen', this.label_click_handler);
 
 
 
 
 
 
1002
  }
1003
  };
1004
 
1067
 
1068
  Chosen.prototype.choice_destroy = function(link) {
1069
  if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
1070
+ if (this.active_field) {
1071
+ this.search_field.focus();
1072
+ } else {
1073
+ this.show_search_field_default();
1074
+ }
1075
+ if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {
1076
  this.results_hide();
1077
  }
1078
  link.parents('li').first().remove();
1086
  this.single_set_selected_text();
1087
  this.show_search_field_default();
1088
  this.results_reset_cleanup();
1089
+ this.trigger_form_field_change();
1090
  if (this.active_field) {
1091
  return this.results_hide();
1092
  }
1123
  } else {
1124
  this.single_set_selected_text(this.choice_label(item));
1125
  }
1126
+ if (!(this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey)))) {
1127
  this.results_hide();
1128
+ this.show_search_field_default();
1129
  }
 
1130
  if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
1131
+ this.trigger_form_field_change({
1132
+ selected: this.form_field.options[item.options_index].value
1133
  });
1134
  }
1135
  this.current_selectedIndex = this.form_field.selectedIndex;
1162
  if (this.results_showing) {
1163
  this.winnow_results();
1164
  }
1165
+ this.trigger_form_field_change({
1166
  deselected: this.form_field.options[result_data.options_index].value
1167
  });
1168
  this.search_field_scale();
1182
  return this.selected_item.addClass("chosen-single-with-deselect");
1183
  };
1184
 
1185
+ Chosen.prototype.get_search_field_value = function() {
1186
+ return this.search_field.val();
1187
+ };
1188
+
1189
  Chosen.prototype.get_search_text = function() {
1190
+ return this.escape_html($.trim(this.get_search_field_value()));
1191
+ };
1192
+
1193
+ Chosen.prototype.escape_html = function(text) {
1194
+ return $('<div/>').text(text).html();
1195
  };
1196
 
1197
  Chosen.prototype.winnow_results_set_highlight = function() {
1205
 
1206
  Chosen.prototype.no_results = function(terms) {
1207
  var no_results_html;
1208
+ no_results_html = this.get_no_results_html(terms);
 
1209
  this.search_results.append(no_results_html);
1210
  return this.form_field_jq.trigger("chosen:no_results", {
1211
  chosen: this
1270
  return this.pending_backstroke = null;
1271
  };
1272
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1273
  Chosen.prototype.search_field_scale = function() {
1274
+ var container_width, div, style, style_block, styles, width, _i, _len;
1275
+ if (!this.is_multiple) {
1276
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1277
  }
1278
+ style_block = {
1279
+ position: 'absolute',
1280
+ left: '-1000px',
1281
+ top: '-1000px',
1282
+ display: 'none',
1283
+ whiteSpace: 'pre'
1284
+ };
1285
+ styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];
1286
+ for (_i = 0, _len = styles.length; _i < _len; _i++) {
1287
+ style = styles[_i];
1288
+ style_block[style] = this.search_field.css(style);
1289
+ }
1290
+ div = $('<div />').css(style_block);
1291
+ div.text(this.get_search_field_value());
1292
+ $('body').append(div);
1293
+ width = div.width() + 25;
1294
+ div.remove();
1295
+ container_width = this.container.outerWidth();
1296
+ width = Math.min(container_width - 10, width);
1297
+ return this.search_field.width(width);
1298
+ };
1299
+
1300
+ Chosen.prototype.trigger_form_field_change = function(extra) {
1301
+ this.form_field_jq.trigger("input", extra);
1302
+ return this.form_field_jq.trigger("change", extra);
1303
  };
1304
 
1305
  return Chosen;
assets/js/plugins/chosen.jquery.min.js CHANGED
@@ -1 +1 @@
1
- (function(){var t,e,s,i,r,o={}.hasOwnProperty,n=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t};i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,r,o,n;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:this.escapeExpression(t.label),title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=t.childNodes,n=[],i=0,r=o.length;i<r;i++)s=o[i],n.push(this.add_option(s,e,t.disabled));return n},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:s===!0?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t.prototype.escapeExpression=function(t){var e,s;return null==t||t===!1?"":/[\&\<\>\"\'\`]/.test(t)?(e={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},s=/&(?!\w+;)|[\<\>\"\'\`]/g,t.replace(s,function(t){return e[t]||"&amp;"})):t},t}(),i.select_to_array=function(t){var e,s,r,o,n;for(s=new i,n=t.childNodes,r=0,o=n.length;r<o;r++)e=n[r],s.add_node(e);return s.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){var t=this;return this.click_test_action=function(e){return t.test_active_click(e)},this.activate_action=function(e){return t.activate_field(e)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+t.group_label+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){var e=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return e.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){var e=this;if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(){return e.blur_test()},100)},t.prototype.results_option_build=function(t){var e,s,i,r,o,n,l;for(e="",r=0,l=this.results_data,o=0,n=l.length;o<n&&(s=l[o],i="",i=s.group?this.result_add_group(s):this.result_add_option(s),""!==i&&(r++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(r>=this.max_shown_results));o++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.style.cssText=t.style,s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.search_text,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?(e=[],e.push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.search_text,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,r;for(i=this.results_data,r=[],e=0,s=i.length;e<s;e++)t=i[e],t.selected?r.push(t.selected=!1):r.push(void 0);return r},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(){var t,e,s,i,r,o,n,l,h,c,a,_;for(this.no_results_clear(),i=0,o=this.get_search_text(),t=o.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),h=new RegExp(t,"i"),s=this.get_search_regex(t),_=this.results_data,c=0,a=_.length;c<a;c++)e=_[c],e.search_match=!1,r=null,this.include_option_in_results(e)&&(e.group&&(e.group_match=!1,e.active_options=0),null!=e.group_array_index&&this.results_data[e.group_array_index]&&(r=this.results_data[e.group_array_index],0===r.active_options&&r.search_match&&(i+=1),r.active_options+=1),e.search_text=e.group?e.label:e.html,e.group&&!this.group_search||(e.search_match=this.search_string_match(e.search_text,s),e.search_match&&!e.group&&(i+=1),e.search_match?(o.length&&(n=e.search_text.search(h),l=e.search_text.substr(0,n+o.length)+"</em>"+e.search_text.substr(n+o.length),e.search_text=l.substr(0,n)+"<em>"+l.substr(n)),null!=r&&(r.group_match=!0)):null!=e.group_array_index&&this.results_data[e.group_array_index].search_match&&(e.search_match=!0)));return this.result_clear_highlight(),i<1&&o.length?(this.update_results_content(""),this.no_results(o)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e;return e=this.search_contains?"":"^",new RegExp(e+t,"i")},t.prototype.search_string_match=function(t,e){var s,i,r,o;if(e.test(t))return!0;if(this.enable_split_word_search&&(t.indexOf(" ")>=0||0===t.indexOf("["))&&(i=t.replace(/\[|\]/g,"").split(" "),i.length))for(r=0,o=i.length;r<o;r++)if(s=i[r],e.test(s))return!0},t.prototype.choices_count=function(){var t,e,s,i;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,i=this.form_field.options,e=0,s=i.length;e<s;e++)t=i[e],t.selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keyup_checker=function(t){var e,s;switch(e=null!=(s=t.which)?s:t.keyCode,this.search_field_scale(),e){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(t.preventDefault(),this.results_showing)return this.result_select(t);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},t.prototype.clipboard_event_checker=function(t){var e=this;return setTimeout(function(){return e.results_search()},50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:(e=document.createElement("div"),e.appendChild(t),e.innerHTML)},t.browser_is_supported=function(){return!/iP(od|hone)/i.test(window.navigator.userAgent)&&((!/Android/i.test(window.navigator.userAgent)||!/Mobile/i.test(window.navigator.userAgent))&&(!/IEMobile/i.test(window.navigator.userAgent)&&(!/Windows Phone/i.test(window.navigator.userAgent)&&(!/BlackBerry/i.test(window.navigator.userAgent)&&(!/BB10/i.test(window.navigator.userAgent)&&("Microsoft Internet Explorer"!==window.navigator.appName||document.documentMode>=8))))))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),t=jQuery,t.fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var r,o;return r=t(this),o=r.data("chosen"),"destroy"===i?void(o instanceof s&&o.destroy()):void(o instanceof s||r.data("chosen",new s(this,i)))}):this}}),s=function(e){function s(){return r=s.__super__.constructor.apply(this,arguments)}return n(s,e),s.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},s.prototype.set_up_html=function(){var e,s;return e=["chosen-container"],e.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},s.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},s.prototype.register_observers=function(){var t=this;return this.container.bind("touchstart.chosen",function(e){return t.container_mousedown(e),e.preventDefault()}),this.container.bind("touchend.chosen",function(e){return t.container_mouseup(e),e.preventDefault()}),this.container.bind("mousedown.chosen",function(e){t.container_mousedown(e)}),this.container.bind("mouseup.chosen",function(e){t.container_mouseup(e)}),this.container.bind("mouseenter.chosen",function(e){t.mouse_enter(e)}),this.container.bind("mouseleave.chosen",function(e){t.mouse_leave(e)}),this.search_results.bind("mouseup.chosen",function(e){t.search_results_mouseup(e)}),this.search_results.bind("mouseover.chosen",function(e){t.search_results_mouseover(e)}),this.search_results.bind("mouseout.chosen",function(e){t.search_results_mouseout(e)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(e){t.search_results_mousewheel(e)}),this.search_results.bind("touchstart.chosen",function(e){t.search_results_touchstart(e)}),this.search_results.bind("touchmove.chosen",function(e){t.search_results_touchmove(e)}),this.search_results.bind("touchend.chosen",function(e){t.search_results_touchend(e)}),this.form_field_jq.bind("chosen:updated.chosen",function(e){t.results_update_field(e)}),this.form_field_jq.bind("chosen:activate.chosen",function(e){t.activate_field(e)}),this.form_field_jq.bind("chosen:open.chosen",function(e){t.container_mousedown(e)}),this.form_field_jq.bind("chosen:close.chosen",function(e){t.input_blur(e)}),this.search_field.bind("blur.chosen",function(e){t.input_blur(e)}),this.search_field.bind("keyup.chosen",function(e){t.keyup_checker(e)}),this.search_field.bind("keydown.chosen",function(e){t.keydown_checker(e)}),this.search_field.bind("focus.chosen",function(e){t.input_focus(e)}),this.search_field.bind("cut.chosen",function(e){t.clipboard_event_checker(e)}),this.search_field.bind("paste.chosen",function(e){t.clipboard_event_checker(e)}),this.is_multiple?this.search_choices.bind("click.chosen",function(e){t.choices_click(e)}):this.container.bind("click.chosen",function(t){t.preventDefault()})},s.prototype.destroy=function(){return t(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},s.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},s.prototype.container_mousedown=function(e){if(!this.is_disabled&&(e&&"mousedown"===e.type&&!this.results_showing&&e.preventDefault(),null==e||!t(e.target).hasClass("search-choice-close")))return this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field()},s.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},s.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e=40*e),this.search_results.scrollTop(e+this.search_results.scrollTop())},s.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},s.prototype.close_field=function(){return t(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},s.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},s.prototype.test_active_click=function(e){var s;return s=t(e.target).closest(".chosen-container"),s.length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},s.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},s.prototype.result_do_highlight=function(t){var e,s,i,r,o;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),o=this.search_results.scrollTop(),r=i+o,s=this.result_highlight.position().top+this.search_results.scrollTop(),e=s+this.result_highlight.outerHeight(),e>=r)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<o)return this.search_results.scrollTop(s)}},s.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},s.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},s.prototype.update_results_content=function(t){return this.search_results.html(t)},s.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},s.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},s.prototype.set_label_behavior=function(){var e=this;if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.bind("click.chosen",function(t){return e.is_multiple?e.container_mousedown(t):e.activate_field()})},s.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},s.prototype.search_results_mouseup=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first(),s.length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},s.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},s.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result"))return this.result_clear_highlight()},s.prototype.choice_build=function(e){var s,i,r=this;return s=t("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):(i=t("<a />",{"class":"search-choice-close","data-option-array-index":e.array_index}),i.bind("click.chosen",function(t){return r.choice_destroy_link_click(t)}),s.append(i)),this.search_container.before(s)},s.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},s.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},s.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field)return this.results_hide()},s.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},s.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),(t.metaKey||t.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},s.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},s.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},s.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},s.prototype.get_search_text=function(){return t("<div/>").text(t.trim(this.search_field.val())).html()},s.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),t=e.length?e.first():this.search_results.find(".active-result").first(),null!=t)return this.result_do_highlight(t)},s.prototype.no_results=function(e){var s;return s=t('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),s.find("span").first().html(e),this.search_results.append(s),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},s.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},s.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},s.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result"),t.length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},s.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last(),t.length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},s.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},s.prototype.keydown_checker=function(t){var e,s;switch(e=null!=(s=t.which)?s:t.keyCode,this.search_field_scale(),8!==e&&this.pending_backstroke&&this.clear_backstroke(),e){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},s.prototype.search_field_scale=function(){var e,s,i,r,o,n,l,h,c;if(this.is_multiple){for(i=0,l=0,o="position:absolute; left: -1000px; top: -1000px; display:none;",n=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],h=0,c=n.length;h<c;h++)r=n[h],o+=r+":"+this.search_field.css(r)+";";return e=t("<div />",{style:o}),e.text(this.search_field.val()),t("body").append(e),l=e.width()+25,e.remove(),s=this.container.outerWidth(),l>s-10&&(l=s-10),this.search_field.css({width:l+"px"})}},s}(e)}).call(this);
1
+ (function(){var t,e,s,i,r,n=function(t,e){return function(){return t.apply(e,arguments)}},o={}.hasOwnProperty,l=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t};i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,r,n,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:this.escapeExpression(t.label),title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),n=t.childNodes,o=[],i=0,r=n.length;i<r;i++)s=n[i],o.push(this.add_option(s,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:s===!0?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t.prototype.escapeExpression=function(t){var e,s;return null==t||t===!1?"":/[\&\<\>\"\'\`]/.test(t)?(e={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},s=/&(?!\w+;)|[\<\>\"\'\`]/g,t.replace(s,function(t){return e[t]||"&amp;"})):t},t}(),i.select_to_array=function(t){var e,s,r,n,o;for(s=new i,o=t.childNodes,r=0,n=o.length;r<n;r++)e=o[r],s.add_node(e);return s.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},this.label_click_handler=n(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){var t=this;return this.click_test_action=function(e){return t.test_active_click(e)},this.activate_action=function(e){return t.activate_field(e)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+t.group_label+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){var e=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return e.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){var e=this;if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(){return e.blur_test()},100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,r,n,o,l;for(e="",r=0,l=this.results_data,n=0,o=l.length;n<o&&(s=l[n],i="",i=s.group?this.result_add_group(s):this.result_add_option(s),""!==i&&(r++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(r>=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.style.cssText=t.style,s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.search_text,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?(e=[],e.push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.search_text,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,r;for(i=this.results_data,r=[],e=0,s=i.length;e<s;e++)t=i[e],t.selected?r.push(t.selected=!1):r.push(void 0);return r},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(){var t,e,s,i,r,n,o,l,h,c,_,a;for(this.no_results_clear(),r=0,o=this.get_search_text(),t=o.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=this.get_search_regex(t),e=this.get_highlight_regex(t),a=this.results_data,c=0,_=a.length;c<_;c++)s=a[c],s.search_match=!1,n=null,this.include_option_in_results(s)&&(s.group&&(s.group_match=!1,s.active_options=0),null!=s.group_array_index&&this.results_data[s.group_array_index]&&(n=this.results_data[s.group_array_index],0===n.active_options&&n.search_match&&(r+=1),n.active_options+=1),s.search_text=s.group?s.label:s.html,s.group&&!this.group_search||(s.search_match=this.search_string_match(s.search_text,i),s.search_match&&!s.group&&(r+=1),s.search_match?(o.length&&(l=s.search_text.search(e),h=s.search_text.substr(0,l+o.length)+"</em>"+s.search_text.substr(l+o.length),s.search_text=h.substr(0,l)+"<em>"+h.substr(l)),null!=n&&(n.group_match=!0)):null!=s.group_array_index&&this.results_data[s.group_array_index].search_match&&(s.search_match=!0)));return this.result_clear_highlight(),r<1&&o.length?(this.update_results_content(""),this.no_results(o)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return e=this.search_contains?"":"^",s=this.case_sensitive_search?"":"i",new RegExp(e+t,s)},t.prototype.get_highlight_regex=function(t){var e,s;return e=this.search_contains?"":"\\b",s=this.case_sensitive_search?"":"i",new RegExp(e+t,s)},t.prototype.search_string_match=function(t,e){var s,i,r,n;if(e.test(t))return!0;if(this.enable_split_word_search&&(t.indexOf(" ")>=0||0===t.indexOf("["))&&(i=t.replace(/\[|\]/g,"").split(" "),i.length))for(r=0,n=i.length;r<n;r++)if(s=i[r],e.test(s))return!0},t.prototype.choices_count=function(){var t,e,s,i;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,i=this.form_field.options,e=0,s=i.length;e<s;e++)t=i[e],t.selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,s;switch(e=null!=(s=t.which)?s:t.keyCode,this.search_field_scale(),8!==e&&this.pending_backstroke&&this.clear_backstroke(),e){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:this.results_showing&&t.preventDefault();break;case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,s;switch(e=null!=(s=t.which)?s:t.keyCode,this.search_field_scale(),e){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){var e=this;if(!this.is_disabled)return setTimeout(function(){return e.results_search()},50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:(e=document.createElement("div"),e.appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+t+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),t=jQuery,t.fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var r,n;return r=t(this),n=r.data("chosen"),"destroy"===i?void(n instanceof s&&n.destroy()):void(n instanceof s||r.data("chosen",new s(this,i)))}):this}}),s=function(e){function s(){return r=s.__super__.constructor.apply(this,arguments)}return l(s,e),s.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},s.prototype.set_up_html=function(){var e,s;return e=["chosen-container"],e.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},s.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},s.prototype.register_observers=function(){var t=this;return this.container.bind("touchstart.chosen",function(e){t.container_mousedown(e)}),this.container.bind("touchend.chosen",function(e){t.container_mouseup(e)}),this.container.bind("mousedown.chosen",function(e){t.container_mousedown(e)}),this.container.bind("mouseup.chosen",function(e){t.container_mouseup(e)}),this.container.bind("mouseenter.chosen",function(e){t.mouse_enter(e)}),this.container.bind("mouseleave.chosen",function(e){t.mouse_leave(e)}),this.search_results.bind("mouseup.chosen",function(e){t.search_results_mouseup(e)}),this.search_results.bind("mouseover.chosen",function(e){t.search_results_mouseover(e)}),this.search_results.bind("mouseout.chosen",function(e){t.search_results_mouseout(e)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(e){t.search_results_mousewheel(e)}),this.search_results.bind("touchstart.chosen",function(e){t.search_results_touchstart(e)}),this.search_results.bind("touchmove.chosen",function(e){t.search_results_touchmove(e)}),this.search_results.bind("touchend.chosen",function(e){t.search_results_touchend(e)}),this.form_field_jq.bind("chosen:updated.chosen",function(e){t.results_update_field(e)}),this.form_field_jq.bind("chosen:activate.chosen",function(e){t.activate_field(e)}),this.form_field_jq.bind("chosen:open.chosen",function(e){t.container_mousedown(e)}),this.form_field_jq.bind("chosen:close.chosen",function(e){t.close_field(e)}),this.search_field.bind("blur.chosen",function(e){t.input_blur(e)}),this.search_field.bind("keyup.chosen",function(e){t.keyup_checker(e)}),this.search_field.bind("keydown.chosen",function(e){t.keydown_checker(e)}),this.search_field.bind("focus.chosen",function(e){t.input_focus(e)}),this.search_field.bind("cut.chosen",function(e){t.clipboard_event_checker(e)}),this.search_field.bind("paste.chosen",function(e){t.clipboard_event_checker(e)}),this.is_multiple?this.search_choices.bind("click.chosen",function(e){t.choices_click(e)}):this.container.bind("click.chosen",function(t){t.preventDefault()})},s.prototype.destroy=function(){return t(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.unbind("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},s.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_field)},s.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},s.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},s.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e=40*e),this.search_results.scrollTop(e+this.search_results.scrollTop())},s.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},s.prototype.close_field=function(){return t(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},s.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},s.prototype.test_active_click=function(e){var s;return s=t(e.target).closest(".chosen-container"),s.length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},s.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},s.prototype.result_do_highlight=function(t){var e,s,i,r,n;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),n=this.search_results.scrollTop(),r=i+n,s=this.result_highlight.position().top+this.search_results.scrollTop(),e=s+this.result_highlight.outerHeight(),e>=r)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<n)return this.search_results.scrollTop(s)}},s.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},s.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},s.prototype.update_results_content=function(t){return this.search_results.html(t)},s.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},s.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},s.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.bind("click.chosen",this.label_click_handler)},s.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},s.prototype.search_results_mouseup=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first(),s.length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},s.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},s.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result"))return this.result_clear_highlight()},s.prototype.choice_build=function(e){var s,i,r=this;return s=t("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):(i=t("<a />",{"class":"search-choice-close","data-option-array-index":e.array_index}),i.bind("click.chosen",function(t){return r.choice_destroy_link_click(t)}),s.append(i)),this.search_container.before(s)},s.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},s.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},s.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},s.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},s.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)||(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},s.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},s.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},s.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},s.prototype.get_search_field_value=function(){return this.search_field.val()},s.prototype.get_search_text=function(){return this.escape_html(t.trim(this.get_search_field_value()))},s.prototype.escape_html=function(e){return t("<div/>").text(e).html()},s.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),t=e.length?e.first():this.search_results.find(".active-result").first(),null!=t)return this.result_do_highlight(t)},s.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},s.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},s.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},s.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result"),t.length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},s.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last(),t.length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},s.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},s.prototype.search_field_scale=function(){var e,s,i,r,n,o,l,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},n=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"],l=0,h=n.length;l<h;l++)i=n[l],r[i]=this.search_field.css(i);return s=t("<div />").css(r),s.text(this.get_search_field_value()),t("body").append(s),o=s.width()+25,s.remove(),e=this.container.outerWidth(),o=Math.min(e-10,o),this.search_field.width(o)}},s.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},s}(e)}).call(this);
assets/js/plugins/jquery.flot.orderBars.js CHANGED
@@ -88,8 +88,8 @@
88
  function getAxeMinMaxValues(series,AxeIdx){
89
  var minMaxValues = new Array();
90
  for(var i = 0; i < series.length; i++){
91
- minMaxValues[0] = series[i].data[0][AxeIdx];
92
- minMaxValues[1] = series[i].data[series[i].data.length - 1][AxeIdx];
93
  }
94
  return minMaxValues;
95
  }
88
  function getAxeMinMaxValues(series,AxeIdx){
89
  var minMaxValues = new Array();
90
  for(var i = 0; i < series.length; i++){
91
+ minMaxValues[0] = (series[i].data[0]) ? series[i].data[0][AxeIdx]: null;
92
+ minMaxValues[1] = (series[i].data[series[i].data.length - 1]) ? series[i].data[series[i].data.length - 1][AxeIdx]: null;
93
  }
94
  return minMaxValues;
95
  }
assets/js/plugins/jquery.flot.orderBars.min.js CHANGED
@@ -1 +1 @@
1
- !function(r){function n(r){function n(r,n,a){var i=null;if(t(n)&&(f(n),e(r),o(r),u(n),g>=2)){var s=l(n),v=0,W=d();"undefined"==typeof D[n.bars.order]&&(h(s)?D[n.bars.order]=-1*b(p,s-1,Math.floor(g/2)-1)-W:D[n.bars.order]=b(p,Math.ceil(g/2),s-2)+W+2*y),v=D[n.bars.order],i=c(a,n,v),a.points=i}return i}function t(r){return null!=r.bars&&r.bars.show&&null!=r.bars.order}function e(r){var n=w?r.getPlaceholder().innerHeight():r.getPlaceholder().innerWidth(),t=w?a(r.getData(),1):a(r.getData(),0),e=t[1]-t[0];W=e/n}function a(r,n){for(var t=new Array,e=0;e<r.length;e++)t[0]=r[e].data[0][n],t[1]=r[e].data[r[e].data.length-1][n];return t}function o(r){p=i(r.getData()),g=p.length}function i(r){for(var n=new Array,t=[],e=0;e<r.length;e++)null!=r[e].bars.order&&r[e].bars.show&&t.indexOf(r[e].bars.order)<0&&(t.push(r[e].bars.order),n.push(r[e]));return n.sort(s)}function s(r,n){var t=r.bars.order,e=n.bars.order;return t<e?-1:t>e?1:0}function u(r){v="undefined"!=typeof r.bars.lineWidth?r.bars.lineWidth:2,y=v*W}function f(r){r.bars.horizontal&&(w=!0)}function l(r){for(var n=0,t=0;t<p.length;++t)if(r==p[t]){n=t;break}return n+1}function d(){var r=0;return g%2!=0&&(r=p[Math.ceil(g/2)].bars.barWidth/2),r}function h(r){return r<=Math.ceil(g/2)}function b(r,n,t){for(var e=0,a=n;a<=t;a++)e+=r[a].bars.barWidth+2*y;return e}function c(r,n,t){for(var e=r.pointsize,a=r.points,o=0,i=w?1:0;i<a.length;i+=e)a[i]+=t,n.data[o][3]=a[i],o++;return a}var p,g,v,y,W=1,w=!1,D={};r.hooks.processDatapoints.push(n)}var t={series:{bars:{order:null}}};r.plot.plugins.push({init:n,options:t,name:"orderBars",version:"0.2"})}(jQuery);
1
+ !function(r){function n(r){function n(r,n,e){var i=null;if(t(n)&&(l(n),a(r),o(r),s(n),p>=2)){var u=d(n),v=0,W=f();"undefined"==typeof D[n.bars.order]&&(h(u)?D[n.bars.order]=-1*b(g,u-1,Math.floor(p/2)-1)-W:D[n.bars.order]=b(g,Math.ceil(p/2),u-2)+W+2*y),v=D[n.bars.order],i=c(e,n,v),e.points=i}return i}function t(r){return null!=r.bars&&r.bars.show&&null!=r.bars.order}function a(r){var n=w?r.getPlaceholder().innerHeight():r.getPlaceholder().innerWidth(),t=w?e(r.getData(),1):e(r.getData(),0),a=t[1]-t[0];W=a/n}function e(r,n){for(var t=new Array,a=0;a<r.length;a++)t[0]=r[a].data[0]?r[a].data[0][n]:null,t[1]=r[a].data[r[a].data.length-1]?r[a].data[r[a].data.length-1][n]:null;return t}function o(r){g=i(r.getData()),p=g.length}function i(r){for(var n=new Array,t=[],a=0;a<r.length;a++)null!=r[a].bars.order&&r[a].bars.show&&t.indexOf(r[a].bars.order)<0&&(t.push(r[a].bars.order),n.push(r[a]));return n.sort(u)}function u(r,n){var t=r.bars.order,a=n.bars.order;return t<a?-1:t>a?1:0}function s(r){v="undefined"!=typeof r.bars.lineWidth?r.bars.lineWidth:2,y=v*W}function l(r){r.bars.horizontal&&(w=!0)}function d(r){for(var n=0,t=0;t<g.length;++t)if(r==g[t]){n=t;break}return n+1}function f(){var r=0;return p%2!=0&&(r=g[Math.ceil(p/2)].bars.barWidth/2),r}function h(r){return r<=Math.ceil(p/2)}function b(r,n,t){for(var a=0,e=n;e<=t;e++)a+=r[e].bars.barWidth+2*y;return a}function c(r,n,t){for(var a=r.pointsize,e=r.points,o=0,i=w?1:0;i<e.length;i+=a)e[i]+=t,n.data[o][3]=e[i],o++;return e}var g,p,v,y,W=1,w=!1,D={};r.hooks.processDatapoints.push(n)}var t={series:{bars:{order:null}}};r.plot.plugins.push({init:n,options:t,name:"orderBars",version:"0.2"})}(jQuery);
assets/js/plugins/jquery.payment.js CHANGED
@@ -20,78 +20,71 @@
20
 
21
  $.payment.cards = cards = [
22
  {
23
- type: 'visaelectron',
24
- pattern: /^4(026|17500|405|508|844|91[37])/,
25
- format: defaultFormat,
26
- length: [16],
27
- cvcLength: [3],
28
- luhn: true
29
- }, {
30
  type: 'maestro',
31
- pattern: /^(5(018|0[23]|[68])|6(39|7))/,
32
  format: defaultFormat,
33
  length: [12, 13, 14, 15, 16, 17, 18, 19],
34
  cvcLength: [3],
35
  luhn: true
36
  }, {
37
  type: 'forbrugsforeningen',
38
- pattern: /^600/,
39
  format: defaultFormat,
40
  length: [16],
41
  cvcLength: [3],
42
  luhn: true
43
  }, {
44
  type: 'dankort',
45
- pattern: /^5019/,
46
  format: defaultFormat,
47
  length: [16],
48
  cvcLength: [3],
49
  luhn: true
50
  }, {
51
  type: 'visa',
52
- pattern: /^4/,
53
  format: defaultFormat,
54
  length: [13, 16],
55
  cvcLength: [3],
56
  luhn: true
57
  }, {
58
  type: 'mastercard',
59
- pattern: /^(5[1-5]|2[2-7])/,
60
  format: defaultFormat,
61
  length: [16],
62
  cvcLength: [3],
63
  luhn: true
64
  }, {
65
  type: 'amex',
66
- pattern: /^3[47]/,
67
  format: /(\d{1,4})(\d{1,6})?(\d{1,5})?/,
68
  length: [15],
69
  cvcLength: [3, 4],
70
  luhn: true
71
  }, {
72
  type: 'dinersclub',
73
- pattern: /^3[0689]/,
74
  format: /(\d{1,4})(\d{1,6})?(\d{1,4})?/,
75
  length: [14],
76
  cvcLength: [3],
77
  luhn: true
78
  }, {
79
  type: 'discover',
80
- pattern: /^6([045]|22)/,
81
  format: defaultFormat,
82
  length: [16],
83
  cvcLength: [3],
84
  luhn: true
85
  }, {
86
  type: 'unionpay',
87
- pattern: /^(62|88)/,
88
  format: defaultFormat,
89
  length: [16, 17, 18, 19],
90
  cvcLength: [3],
91
  luhn: false
92
  }, {
93
  type: 'jcb',
94
- pattern: /^35/,
95
  format: defaultFormat,
96
  length: [16],
97
  cvcLength: [3],
@@ -100,12 +93,17 @@
100
  ];
101
 
102
  cardFromNumber = function(num) {
103
- var card, _i, _len;
104
  num = (num + '').replace(/\D/g, '');
105
  for (_i = 0, _len = cards.length; _i < _len; _i++) {
106
  card = cards[_i];
107
- if (card.pattern.test(num)) {
108
- return card;
 
 
 
 
 
109
  }
110
  }
111
  };
@@ -153,7 +151,7 @@
153
  };
154
 
155
  safeVal = function(value, $target) {
156
- var cursor, error, last;
157
  try {
158
  cursor = $target.prop('selectionStart');
159
  } catch (_error) {
@@ -166,13 +164,21 @@
166
  if (cursor === last.length) {
167
  cursor = value.length;
168
  }
 
 
 
 
 
 
 
 
169
  $target.prop('selectionStart', cursor);
170
  return $target.prop('selectionEnd', cursor);
171
  }
172
  };
173
 
174
  replaceFullWidthChars = function(str) {
175
- var char, chars, fullWidth, halfWidth, idx, value, _i, _len;
176
  if (str == null) {
177
  str = '';
178
  }
@@ -181,20 +187,21 @@
181
  value = '';
182
  chars = str.split('');
183
  for (_i = 0, _len = chars.length; _i < _len; _i++) {
184
- char = chars[_i];
185
- idx = fullWidth.indexOf(char);
186
  if (idx > -1) {
187
- char = halfWidth[idx];
188
  }
189
- value += char;
190
  }
191
  return value;
192
  };
193
 
194
  reFormatNumeric = function(e) {
 
 
195
  return setTimeout(function() {
196
- var $target, value;
197
- $target = $(e.currentTarget);
198
  value = $target.val();
199
  value = replaceFullWidthChars(value);
200
  value = value.replace(/\D/g, '');
@@ -203,9 +210,10 @@
203
  };
204
 
205
  reFormatCardNumber = function(e) {
 
 
206
  return setTimeout(function() {
207
- var $target, value;
208
- $target = $(e.currentTarget);
209
  value = $target.val();
210
  value = replaceFullWidthChars(value);
211
  value = $.payment.formatCardNumber(value);
@@ -275,9 +283,10 @@
275
  };
276
 
277
  reFormatExpiry = function(e) {
 
 
278
  return setTimeout(function() {
279
- var $target, value;
280
- $target = $(e.currentTarget);
281
  value = $target.val();
282
  value = replaceFullWidthChars(value);
283
  value = $.payment.formatExpiry(value);
@@ -301,7 +310,14 @@
301
  } else if (/^\d\d$/.test(val)) {
302
  e.preventDefault();
303
  return setTimeout(function() {
304
- return $target.val("" + val + " / ");
 
 
 
 
 
 
 
305
  });
306
  }
307
  };
@@ -351,9 +367,10 @@
351
  };
352
 
353
  reFormatCVC = function(e) {
 
 
354
  return setTimeout(function() {
355
- var $target, value;
356
- $target = $(e.currentTarget);
357
  value = $target.val();
358
  value = replaceFullWidthChars(value);
359
  value = value.replace(/\D/g, '').slice(0, 4);
20
 
21
  $.payment.cards = cards = [
22
  {
 
 
 
 
 
 
 
23
  type: 'maestro',
24
+ patterns: [5018, 502, 503, 506, 56, 58, 639, 6220, 67],
25
  format: defaultFormat,
26
  length: [12, 13, 14, 15, 16, 17, 18, 19],
27
  cvcLength: [3],
28
  luhn: true
29
  }, {
30
  type: 'forbrugsforeningen',
31
+ patterns: [600],
32
  format: defaultFormat,
33
  length: [16],
34
  cvcLength: [3],
35
  luhn: true
36
  }, {
37
  type: 'dankort',
38
+ patterns: [5019],
39
  format: defaultFormat,
40
  length: [16],
41
  cvcLength: [3],
42
  luhn: true
43
  }, {
44
  type: 'visa',
45
+ patterns: [4],
46
  format: defaultFormat,
47
  length: [13, 16],
48
  cvcLength: [3],
49
  luhn: true
50
  }, {
51
  type: 'mastercard',
52
+ patterns: [51, 52, 53, 54, 55, 22, 23, 24, 25, 26, 27],
53
  format: defaultFormat,
54
  length: [16],
55
  cvcLength: [3],
56
  luhn: true
57
  }, {
58
  type: 'amex',
59
+ patterns: [34, 37],
60
  format: /(\d{1,4})(\d{1,6})?(\d{1,5})?/,
61
  length: [15],
62
  cvcLength: [3, 4],
63
  luhn: true
64
  }, {
65
  type: 'dinersclub',
66
+ patterns: [30, 36, 38, 39],
67
  format: /(\d{1,4})(\d{1,6})?(\d{1,4})?/,
68
  length: [14],
69
  cvcLength: [3],
70
  luhn: true
71
  }, {
72
  type: 'discover',
73
+ patterns: [60, 64, 65, 622],
74
  format: defaultFormat,
75
  length: [16],
76
  cvcLength: [3],
77
  luhn: true
78
  }, {
79
  type: 'unionpay',
80
+ patterns: [62, 88],
81
  format: defaultFormat,
82
  length: [16, 17, 18, 19],
83
  cvcLength: [3],
84
  luhn: false
85
  }, {
86
  type: 'jcb',
87
+ patterns: [35],
88
  format: defaultFormat,
89
  length: [16],
90
  cvcLength: [3],
93
  ];
94
 
95
  cardFromNumber = function(num) {
96
+ var card, p, pattern, _i, _j, _len, _len1, _ref;
97
  num = (num + '').replace(/\D/g, '');
98
  for (_i = 0, _len = cards.length; _i < _len; _i++) {
99
  card = cards[_i];
100
+ _ref = card.patterns;
101
+ for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
102
+ pattern = _ref[_j];
103
+ p = pattern + '';
104
+ if (num.substr(0, p.length) === p) {
105
+ return card;
106
+ }
107
  }
108
  }
109
  };
151
  };
152
 
153
  safeVal = function(value, $target) {
154
+ var currPair, cursor, digit, error, last, prevPair;
155
  try {
156
  cursor = $target.prop('selectionStart');
157
  } catch (_error) {
164
  if (cursor === last.length) {
165
  cursor = value.length;
166
  }
167
+ if (last !== value) {
168
+ prevPair = last.slice(cursor - 1, +cursor + 1 || 9e9);
169
+ currPair = value.slice(cursor - 1, +cursor + 1 || 9e9);
170
+ digit = value[cursor];
171
+ if (/\d/.test(digit) && prevPair === ("" + digit + " ") && currPair === (" " + digit)) {
172
+ cursor = cursor + 1;
173
+ }
174
+ }
175
  $target.prop('selectionStart', cursor);
176
  return $target.prop('selectionEnd', cursor);
177
  }
178
  };
179
 
180
  replaceFullWidthChars = function(str) {
181
+ var chars, chr, fullWidth, halfWidth, idx, value, _i, _len;
182
  if (str == null) {
183
  str = '';
184
  }
187
  value = '';
188
  chars = str.split('');
189
  for (_i = 0, _len = chars.length; _i < _len; _i++) {
190
+ chr = chars[_i];
191
+ idx = fullWidth.indexOf(chr);
192
  if (idx > -1) {
193
+ chr = halfWidth[idx];
194
  }
195
+ value += chr;
196
  }
197
  return value;
198
  };
199
 
200
  reFormatNumeric = function(e) {
201
+ var $target;
202
+ $target = $(e.currentTarget);
203
  return setTimeout(function() {
204
+ var value;
 
205
  value = $target.val();
206
  value = replaceFullWidthChars(value);
207
  value = value.replace(/\D/g, '');
210
  };
211
 
212
  reFormatCardNumber = function(e) {
213
+ var $target;
214
+ $target = $(e.currentTarget);
215
  return setTimeout(function() {
216
+ var value;
 
217
  value = $target.val();
218
  value = replaceFullWidthChars(value);
219
  value = $.payment.formatCardNumber(value);
283
  };
284
 
285
  reFormatExpiry = function(e) {
286
+ var $target;
287
+ $target = $(e.currentTarget);
288
  return setTimeout(function() {
289
+ var value;
 
290
  value = $target.val();
291
  value = replaceFullWidthChars(value);
292
  value = $.payment.formatExpiry(value);
310
  } else if (/^\d\d$/.test(val)) {
311
  e.preventDefault();
312
  return setTimeout(function() {
313
+ var m1, m2;
314
+ m1 = parseInt(val[0], 10);
315
+ m2 = parseInt(val[1], 10);
316
+ if (m2 > 2 && m1 !== 0) {
317
+ return $target.val("0" + m1 + " / " + m2);
318
+ } else {
319
+ return $target.val("" + val + " / ");
320
+ }
321
  });
322
  }
323
  };
367
  };
368
 
369
  reFormatCVC = function(e) {
370
+ var $target;
371
+ $target = $(e.currentTarget);
372
  return setTimeout(function() {
373
+ var value;
 
374
  value = $target.val();
375
  value = replaceFullWidthChars(value);
376
  value = value.replace(/\D/g, '').slice(0, 4);
assets/js/plugins/jquery.payment.min.js CHANGED
@@ -1 +1 @@
1
- (function(){var t,e,n,r,a,i,o,l,u,c,h,s,p,f,g,d,v,m,y,C,T,w,$,D,S=[].slice,k=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1};t=window.jQuery||window.Zepto||window.$,t.payment={},t.payment.fn={},t.fn.payment=function(){var e,n;return n=arguments[0],e=2<=arguments.length?S.call(arguments,1):[],t.payment.fn[n].apply(this,e)},a=/(\d{1,4})/g,t.payment.cards=r=[{type:"visaelectron",pattern:/^4(026|17500|405|508|844|91[37])/,format:a,length:[16],cvcLength:[3],luhn:!0},{type:"maestro",pattern:/^(5(018|0[23]|[68])|6(39|7))/,format:a,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"forbrugsforeningen",pattern:/^600/,format:a,length:[16],cvcLength:[3],luhn:!0},{type:"dankort",pattern:/^5019/,format:a,length:[16],cvcLength:[3],luhn:!0},{type:"visa",pattern:/^4/,format:a,length:[13,16],cvcLength:[3],luhn:!0},{type:"mastercard",pattern:/^(5[1-5]|2[2-7])/,format:a,length:[16],cvcLength:[3],luhn:!0},{type:"amex",pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[3,4],luhn:!0},{type:"dinersclub",pattern:/^3[0689]/,format:/(\d{1,4})(\d{1,6})?(\d{1,4})?/,length:[14],cvcLength:[3],luhn:!0},{type:"discover",pattern:/^6([045]|22)/,format:a,length:[16],cvcLength:[3],luhn:!0},{type:"unionpay",pattern:/^(62|88)/,format:a,length:[16,17,18,19],cvcLength:[3],luhn:!1},{type:"jcb",pattern:/^35/,format:a,length:[16],cvcLength:[3],luhn:!0}],e=function(t){var e,n,a;for(t=(t+"").replace(/\D/g,""),n=0,a=r.length;n<a;n++)if(e=r[n],e.pattern.test(t))return e},n=function(t){var e,n,a;for(n=0,a=r.length;n<a;n++)if(e=r[n],e.type===t)return e},p=function(t){var e,n,r,a,i,o;for(r=!0,a=0,n=(t+"").split("").reverse(),i=0,o=n.length;i<o;i++)e=n[i],e=parseInt(e,10),(r=!r)&&(e*=2),e>9&&(e-=9),a+=e;return a%10===0},s=function(t){var e;return null!=t.prop("selectionStart")&&t.prop("selectionStart")!==t.prop("selectionEnd")||!(null==("undefined"!=typeof document&&null!==document&&null!=(e=document.selection)?e.createRange:void 0)||!document.selection.createRange().text)},$=function(t,e){var n,r,a;try{n=e.prop("selectionStart")}catch(i){r=i,n=null}if(a=e.val(),e.val(t),null!==n&&e.is(":focus"))return n===a.length&&(n=t.length),e.prop("selectionStart",n),e.prop("selectionEnd",n)},m=function(t){var e,n,r,a,i,o,l,u;for(null==t&&(t=""),r="0123456789",a="0123456789",o="",n=t.split(""),l=0,u=n.length;l<u;l++)e=n[l],i=r.indexOf(e),i>-1&&(e=a[i]),o+=e;return o},v=function(e){return setTimeout(function(){var n,r;return n=t(e.currentTarget),r=n.val(),r=m(r),r=r.replace(/\D/g,""),$(r,n)})},g=function(e){return setTimeout(function(){var n,r;return n=t(e.currentTarget),r=n.val(),r=m(r),r=t.payment.formatCardNumber(r),$(r,n)})},l=function(n){var r,a,i,o,l,u,c;if(i=String.fromCharCode(n.which),/^\d+$/.test(i)&&(r=t(n.currentTarget),c=r.val(),a=e(c+i),o=(c.replace(/\D/g,"")+i).length,u=16,a&&(u=a.length[a.length.length-1]),!(o>=u||null!=r.prop("selectionStart")&&r.prop("selectionStart")!==c.length)))return l=a&&"amex"===a.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,l.test(c)?(n.preventDefault(),setTimeout(function(){return r.val(c+" "+i)})):l.test(c+i)?(n.preventDefault(),setTimeout(function(){return r.val(c+i+" ")})):void 0},i=function(e){var n,r;if(n=t(e.currentTarget),r=n.val(),8===e.which&&(null==n.prop("selectionStart")||n.prop("selectionStart")===r.length))return/\d\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s$/,""))})):/\s\d?$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d$/,""))})):void 0},d=function(e){return setTimeout(function(){var n,r;return n=t(e.currentTarget),r=n.val(),r=m(r),r=t.payment.formatExpiry(r),$(r,n)})},u=function(e){var n,r,a;if(r=String.fromCharCode(e.which),/^\d+$/.test(r))return n=t(e.currentTarget),a=n.val()+r,/^\d$/.test(a)&&"0"!==a&&"1"!==a?(e.preventDefault(),setTimeout(function(){return n.val("0"+a+" / ")})):/^\d\d$/.test(a)?(e.preventDefault(),setTimeout(function(){return n.val(""+a+" / ")})):void 0},c=function(e){var n,r,a;if(r=String.fromCharCode(e.which),/^\d+$/.test(r))return n=t(e.currentTarget),a=n.val(),/^\d\d$/.test(a)?n.val(""+a+" / "):void 0},h=function(e){var n,r,a;if(a=String.fromCharCode(e.which),"/"===a||" "===a)return n=t(e.currentTarget),r=n.val(),/^\d$/.test(r)&&"0"!==r?n.val("0"+r+" / "):void 0},o=function(e){var n,r;if(n=t(e.currentTarget),r=n.val(),8===e.which&&(null==n.prop("selectionStart")||n.prop("selectionStart")===r.length))return/\d\s\/\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s\/\s$/,""))})):void 0},f=function(e){return setTimeout(function(){var n,r;return n=t(e.currentTarget),r=n.val(),r=m(r),r=r.replace(/\D/g,"").slice(0,4),$(r,n)})},w=function(t){var e;return!(!t.metaKey&&!t.ctrlKey)||32!==t.which&&(0===t.which||(t.which<33||(e=String.fromCharCode(t.which),!!/[\d\s]/.test(e))))},C=function(n){var r,a,i,o;if(r=t(n.currentTarget),i=String.fromCharCode(n.which),/^\d+$/.test(i)&&!s(r))return o=(r.val()+i).replace(/\D/g,""),a=e(o),a?o.length<=a.length[a.length.length-1]:o.length<=16},T=function(e){var n,r,a;if(n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!s(n))return a=n.val()+r,a=a.replace(/\D/g,""),!(a.length>6)&&void 0},y=function(e){var n,r,a;if(n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!s(n))return a=n.val()+r,a.length<=4},D=function(e){var n,a,i,o,l;if(n=t(e.currentTarget),l=n.val(),o=t.payment.cardType(l)||"unknown",!n.hasClass(o))return a=function(){var t,e,n;for(n=[],t=0,e=r.length;t<e;t++)i=r[t],n.push(i.type);return n}(),n.removeClass("unknown"),n.removeClass(a.join(" ")),n.addClass(o),n.toggleClass("identified","unknown"!==o),n.trigger("payment.cardType",o)},t.payment.fn.formatCardCVC=function(){return this.on("keypress",w),this.on("keypress",y),this.on("paste",f),this.on("change",f),this.on("input",f),this},t.payment.fn.formatCardExpiry=function(){return this.on("keypress",w),this.on("keypress",T),this.on("keypress",u),this.on("keypress",h),this.on("keypress",c),this.on("keydown",o),this.on("change",d),this.on("input",d),this},t.payment.fn.formatCardNumber=function(){return this.on("keypress",w),this.on("keypress",C),this.on("keypress",l),this.on("keydown",i),this.on("keyup",D),this.on("paste",g),this.on("change",g),this.on("input",g),this.on("input",D),this},t.payment.fn.restrictNumeric=function(){return this.on("keypress",w),this.on("paste",v),this.on("change",v),this.on("input",v),this},t.payment.fn.cardExpiryVal=function(){return t.payment.cardExpiryVal(t(this).val())},t.payment.cardExpiryVal=function(t){var e,n,r,a;return a=t.split(/[\s\/]+/,2),e=a[0],r=a[1],2===(null!=r?r.length:void 0)&&/^\d+$/.test(r)&&(n=(new Date).getFullYear(),n=n.toString().slice(0,2),r=n+r),e=parseInt(e,10),r=parseInt(r,10),{month:e,year:r}},t.payment.validateCardNumber=function(t){var n,r;return t=(t+"").replace(/\s+|-/g,""),!!/^\d+$/.test(t)&&(n=e(t),!!n&&(r=t.length,k.call(n.length,r)>=0&&(n.luhn===!1||p(t))))},t.payment.validateCardExpiry=function(e,n){var r,a,i;return"object"==typeof e&&"month"in e&&(i=e,e=i.month,n=i.year),!(!e||!n)&&(e=t.trim(e),n=t.trim(n),!!/^\d+$/.test(e)&&(!!/^\d+$/.test(n)&&(1<=e&&e<=12&&(2===n.length&&(n=n<70?"20"+n:"19"+n),4===n.length&&(a=new Date(n,e),r=new Date,a.setMonth(a.getMonth()-1),a.setMonth(a.getMonth()+1,1),a>r)))))},t.payment.validateCardCVC=function(e,r){var a,i;return e=t.trim(e),!!/^\d+$/.test(e)&&(a=n(r),null!=a?(i=e.length,k.call(a.cvcLength,i)>=0):e.length>=3&&e.length<=4)},t.payment.cardType=function(t){var n;return t?(null!=(n=e(t))?n.type:void 0)||null:null},t.payment.formatCardNumber=function(n){var r,a,i,o;return n=n.replace(/\D/g,""),(r=e(n))?(i=r.length[r.length.length-1],n=n.slice(0,i),r.format.global?null!=(o=n.match(r.format))?o.join(" "):void 0:(a=r.format.exec(n),null!=a?(a.shift(),a=t.grep(a,function(t){return t}),a.join(" ")):void 0)):n},t.payment.formatExpiry=function(t){var e,n,r,a;return(n=t.match(/^\D*(\d{1,2})(\D+)?(\d{1,4})?/))?(e=n[1]||"",r=n[2]||"",a=n[3]||"",a.length>0?r=" / ":" /"===r?(e=e.substring(0,1),r=""):2===e.length||r.length>0?r=" / ":1===e.length&&"0"!==e&&"1"!==e&&(e="0"+e,r=" / "),e+r+a):""}}).call(this);
1
+ (function(){var t,e,n,r,a,i,o,l,u,s,c,h,p,f,g,v,d,m,y,C,T,w,$,D,S=[].slice,k=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++)if(e in this&&this[e]===t)return e;return-1};t=window.jQuery||window.Zepto||window.$,t.payment={},t.payment.fn={},t.fn.payment=function(){var e,n;return n=arguments[0],e=2<=arguments.length?S.call(arguments,1):[],t.payment.fn[n].apply(this,e)},a=/(\d{1,4})/g,t.payment.cards=r=[{type:"maestro",patterns:[5018,502,503,506,56,58,639,6220,67],format:a,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"forbrugsforeningen",patterns:[600],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"dankort",patterns:[5019],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"visa",patterns:[4],format:a,length:[13,16],cvcLength:[3],luhn:!0},{type:"mastercard",patterns:[51,52,53,54,55,22,23,24,25,26,27],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"amex",patterns:[34,37],format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[3,4],luhn:!0},{type:"dinersclub",patterns:[30,36,38,39],format:/(\d{1,4})(\d{1,6})?(\d{1,4})?/,length:[14],cvcLength:[3],luhn:!0},{type:"discover",patterns:[60,64,65,622],format:a,length:[16],cvcLength:[3],luhn:!0},{type:"unionpay",patterns:[62,88],format:a,length:[16,17,18,19],cvcLength:[3],luhn:!1},{type:"jcb",patterns:[35],format:a,length:[16],cvcLength:[3],luhn:!0}],e=function(t){var e,n,a,i,o,l,u,s;for(t=(t+"").replace(/\D/g,""),i=0,l=r.length;i<l;i++)for(e=r[i],s=e.patterns,o=0,u=s.length;o<u;o++)if(a=s[o],n=a+"",t.substr(0,n.length)===n)return e},n=function(t){var e,n,a;for(n=0,a=r.length;n<a;n++)if(e=r[n],e.type===t)return e},p=function(t){var e,n,r,a,i,o;for(r=!0,a=0,n=(t+"").split("").reverse(),i=0,o=n.length;i<o;i++)e=n[i],e=parseInt(e,10),(r=!r)&&(e*=2),e>9&&(e-=9),a+=e;return a%10===0},h=function(t){var e;return null!=t.prop("selectionStart")&&t.prop("selectionStart")!==t.prop("selectionEnd")||!(null==("undefined"!=typeof document&&null!==document&&null!=(e=document.selection)?e.createRange:void 0)||!document.selection.createRange().text)},$=function(t,e){var n,r,a,i,o,l;try{r=e.prop("selectionStart")}catch(u){i=u,r=null}if(o=e.val(),e.val(t),null!==r&&e.is(":focus"))return r===o.length&&(r=t.length),o!==t&&(l=o.slice(r-1,+r+1||9e9),n=t.slice(r-1,+r+1||9e9),a=t[r],/\d/.test(a)&&l===""+a+" "&&n===" "+a&&(r+=1)),e.prop("selectionStart",r),e.prop("selectionEnd",r)},m=function(t){var e,n,r,a,i,o,l,u;for(null==t&&(t=""),r="0123456789",a="0123456789",o="",e=t.split(""),l=0,u=e.length;l<u;l++)n=e[l],i=r.indexOf(n),i>-1&&(n=a[i]),o+=n;return o},d=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var t;return t=n.val(),t=m(t),t=t.replace(/\D/g,""),$(t,n)})},g=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var e;return e=n.val(),e=m(e),e=t.payment.formatCardNumber(e),$(e,n)})},l=function(n){var r,a,i,o,l,u,s;if(i=String.fromCharCode(n.which),/^\d+$/.test(i)&&(r=t(n.currentTarget),s=r.val(),a=e(s+i),o=(s.replace(/\D/g,"")+i).length,u=16,a&&(u=a.length[a.length.length-1]),!(o>=u||null!=r.prop("selectionStart")&&r.prop("selectionStart")!==s.length)))return l=a&&"amex"===a.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,l.test(s)?(n.preventDefault(),setTimeout(function(){return r.val(s+" "+i)})):l.test(s+i)?(n.preventDefault(),setTimeout(function(){return r.val(s+i+" ")})):void 0},i=function(e){var n,r;if(n=t(e.currentTarget),r=n.val(),8===e.which&&(null==n.prop("selectionStart")||n.prop("selectionStart")===r.length))return/\d\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s$/,""))})):/\s\d?$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d$/,""))})):void 0},v=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var e;return e=n.val(),e=m(e),e=t.payment.formatExpiry(e),$(e,n)})},u=function(e){var n,r,a;if(r=String.fromCharCode(e.which),/^\d+$/.test(r))return n=t(e.currentTarget),a=n.val()+r,/^\d$/.test(a)&&"0"!==a&&"1"!==a?(e.preventDefault(),setTimeout(function(){return n.val("0"+a+" / ")})):/^\d\d$/.test(a)?(e.preventDefault(),setTimeout(function(){var t,e;return t=parseInt(a[0],10),e=parseInt(a[1],10),e>2&&0!==t?n.val("0"+t+" / "+e):n.val(""+a+" / ")})):void 0},s=function(e){var n,r,a;if(r=String.fromCharCode(e.which),/^\d+$/.test(r))return n=t(e.currentTarget),a=n.val(),/^\d\d$/.test(a)?n.val(""+a+" / "):void 0},c=function(e){var n,r,a;if(a=String.fromCharCode(e.which),"/"===a||" "===a)return n=t(e.currentTarget),r=n.val(),/^\d$/.test(r)&&"0"!==r?n.val("0"+r+" / "):void 0},o=function(e){var n,r;if(n=t(e.currentTarget),r=n.val(),8===e.which&&(null==n.prop("selectionStart")||n.prop("selectionStart")===r.length))return/\d\s\/\s$/.test(r)?(e.preventDefault(),setTimeout(function(){return n.val(r.replace(/\d\s\/\s$/,""))})):void 0},f=function(e){var n;return n=t(e.currentTarget),setTimeout(function(){var t;return t=n.val(),t=m(t),t=t.replace(/\D/g,"").slice(0,4),$(t,n)})},w=function(t){var e;return!(!t.metaKey&&!t.ctrlKey)||32!==t.which&&(0===t.which||(t.which<33||(e=String.fromCharCode(t.which),!!/[\d\s]/.test(e))))},C=function(n){var r,a,i,o;if(r=t(n.currentTarget),i=String.fromCharCode(n.which),/^\d+$/.test(i)&&!h(r))return o=(r.val()+i).replace(/\D/g,""),a=e(o),a?o.length<=a.length[a.length.length-1]:o.length<=16},T=function(e){var n,r,a;if(n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!h(n))return a=n.val()+r,a=a.replace(/\D/g,""),!(a.length>6)&&void 0},y=function(e){var n,r,a;if(n=t(e.currentTarget),r=String.fromCharCode(e.which),/^\d+$/.test(r)&&!h(n))return a=n.val()+r,a.length<=4},D=function(e){var n,a,i,o,l;if(n=t(e.currentTarget),l=n.val(),o=t.payment.cardType(l)||"unknown",!n.hasClass(o))return a=function(){var t,e,n;for(n=[],t=0,e=r.length;t<e;t++)i=r[t],n.push(i.type);return n}(),n.removeClass("unknown"),n.removeClass(a.join(" ")),n.addClass(o),n.toggleClass("identified","unknown"!==o),n.trigger("payment.cardType",o)},t.payment.fn.formatCardCVC=function(){return this.on("keypress",w),this.on("keypress",y),this.on("paste",f),this.on("change",f),this.on("input",f),this},t.payment.fn.formatCardExpiry=function(){return this.on("keypress",w),this.on("keypress",T),this.on("keypress",u),this.on("keypress",c),this.on("keypress",s),this.on("keydown",o),this.on("change",v),this.on("input",v),this},t.payment.fn.formatCardNumber=function(){return this.on("keypress",w),this.on("keypress",C),this.on("keypress",l),this.on("keydown",i),this.on("keyup",D),this.on("paste",g),this.on("change",g),this.on("input",g),this.on("input",D),this},t.payment.fn.restrictNumeric=function(){return this.on("keypress",w),this.on("paste",d),this.on("change",d),this.on("input",d),this},t.payment.fn.cardExpiryVal=function(){return t.payment.cardExpiryVal(t(this).val())},t.payment.cardExpiryVal=function(t){var e,n,r,a;return a=t.split(/[\s\/]+/,2),e=a[0],r=a[1],2===(null!=r?r.length:void 0)&&/^\d+$/.test(r)&&(n=(new Date).getFullYear(),n=n.toString().slice(0,2),r=n+r),e=parseInt(e,10),r=parseInt(r,10),{month:e,year:r}},t.payment.validateCardNumber=function(t){var n,r;return t=(t+"").replace(/\s+|-/g,""),!!/^\d+$/.test(t)&&(n=e(t),!!n&&(r=t.length,k.call(n.length,r)>=0&&(n.luhn===!1||p(t))))},t.payment.validateCardExpiry=function(e,n){var r,a,i;return"object"==typeof e&&"month"in e&&(i=e,e=i.month,n=i.year),!(!e||!n)&&(e=t.trim(e),n=t.trim(n),!!/^\d+$/.test(e)&&(!!/^\d+$/.test(n)&&(1<=e&&e<=12&&(2===n.length&&(n=n<70?"20"+n:"19"+n),4===n.length&&(a=new Date(n,e),r=new Date,a.setMonth(a.getMonth()-1),a.setMonth(a.getMonth()+1,1),a>r)))))},t.payment.validateCardCVC=function(e,r){var a,i;return e=t.trim(e),!!/^\d+$/.test(e)&&(a=n(r),null!=a?(i=e.length,k.call(a.cvcLength,i)>=0):e.length>=3&&e.length<=4)},t.payment.cardType=function(t){var n;return t?(null!=(n=e(t))?n.type:void 0)||null:null},t.payment.formatCardNumber=function(n){var r,a,i,o;return n=n.replace(/\D/g,""),(r=e(n))?(i=r.length[r.length.length-1],n=n.slice(0,i),r.format.global?null!=(o=n.match(r.format))?o.join(" "):void 0:(a=r.format.exec(n),null!=a?(a.shift(),a=t.grep(a,function(t){return t}),a.join(" ")):void 0)):n},t.payment.formatExpiry=function(t){var e,n,r,a;return(n=t.match(/^\D*(\d{1,2})(\D+)?(\d{1,4})?/))?(e=n[1]||"",r=n[2]||"",a=n[3]||"",a.length>0?r=" / ":" /"===r?(e=e.substring(0,1),r=""):2===e.length||r.length>0?r=" / ":1===e.length&&"0"!==e&&"1"!==e&&(e="0"+e,r=" / "),e+r+a):""}}).call(this);
assets/sourcemaps/give-admin.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"give-admin.css","sources":["admin/give-admin.scss","frontend/_mixins.scss","frontend/_variables.scss","plugins/qtip.scss","frontend/fonts.scss","admin/fonts.scss","admin/forms.scss","admin/addons.scss","admin/reports.scss","admin/welcome.scss","admin/logs.scss","admin/settings.scss","admin/payment-history.scss","admin/dashboard.scss","admin/donors.scss","admin/buttons.scss","admin/shortcodes.scss","admin/system-info.scss"],"sourcesContent":["/*!\r\n * Give Admin SCSS/CSS\r\n *\r\n * @description: The Main SCSS file for ADMIN styles which is compiled and minified via Gulp taskrunner\r\n * @package: Give\r\n * @subpackage: SCSS/Admin\r\n * @copyright: Copyright (c) 2016, WordImpress\r\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n@import '../frontend/mixins';\r\n@import '../frontend/variables';\r\n@import '../plugins/qtip';\r\n@import '../frontend/fonts';\r\n@import 'fonts';\r\n@import 'forms';\r\n@import 'addons';\r\n@import 'reports';\r\n@import 'welcome';\r\n@import 'logs';\r\n@import 'settings';\r\n@import 'payment-history';\r\n@import 'dashboard';\r\n@import 'donors';\r\n@import 'buttons';\r\n@import 'shortcodes';\r\n@import 'system-info';\r\n","/**\r\n * Clearfix\r\n */\r\n@mixin clearfix() {\r\n *zoom: 1;\r\n\r\n &:before,\r\n &:after {\r\n content: \" \";\r\n display: table;\r\n }\r\n\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\n.give-clearfix {\r\n @include clearfix;\r\n}\r\n\r\n/**\r\n * Box Sizing\r\n * https://github.com/timrogers/sass-box-sizing-mixin\r\n */\r\n@mixin box-sizing($box-model) {\r\n -webkit-box-sizing: $box-model; // Safari <= 5\r\n -moz-box-sizing: $box-model; // Firefox <= 19\r\n box-sizing: $box-model;\r\n}\r\n\r\n/**\r\n * CSS3 Easing\r\n */\r\n@mixin easing-transition() {\r\n -moz-transition: 0.2s all linear;\r\n -o-transition: 0.2s all linear;\r\n transition: 0.2s all linear;\r\n}\r\n\r\n//Labels\r\n@mixin give-label() {\r\n padding: .2em .4em .3em;\r\n font-size: 11px;\r\n line-height: 1;\r\n color: #fff;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: .25em;\r\n \r\n &:hover {\r\n color:#fff;\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n@mixin give-label-gray() {\r\n background-color: #929292;\r\n}\r\n@mixin give-label-orange() {\r\n background-color: #ffba00;\r\n}\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n.give-item-label-gray {\r\n @include give-label-gray();\r\n}\r\n\r\n.give-item-label-orange {\r\n @include give-label-orange();\r\n}\r\n\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n//Fields\r\n@mixin give-currency() {\r\n background-color: lighten($light-gray, 2%);\r\n border-top: 1px solid $borders;\r\n border-bottom: 1px solid $borders;\r\n color: $dark;\r\n margin: 0;\r\n padding: 0 12px;\r\n height: 35px;\r\n line-height: 35px;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}\r\n\r\n@mixin give-input() {\r\n border: 1px solid $borders;\r\n background: #FFF;\r\n border-radius: 0;\r\n height: 35px;\r\n line-height: 35px;\r\n padding: 0 12px;\r\n margin: 0;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}","/**\r\n * Give CSS Variables\r\n */\r\n\r\n$green: #7ad03a;\r\n$red: #a00;\r\n$orange: #ffba00;\r\n$blue: #2ea2cc;\r\n$dark: #333;\r\n$borders: #ccc;\r\n$light-gray: #EDEDED;\r\n\r\n//Status\r\n$status-default: #777;\r\n$status-complete: $green;\r\n$status-refunded: $status-default;\r\n$status-subscription: #5bc0de;\r\n$status-revoked: #d9534f;\r\n\r\n//Font sizes\r\n$font-size-medium: 18px;\r\n\r\n$primary: #007ba4;\r\n// Primary colour for buttons (alt)\r\n$primarytext: desaturate(lighten($primary, 50%), 18%);\r\n// Text on primary colour bg\r\n\r\n$secondary: desaturate(lighten($primary, 40%), 21%);\r\n// Secondary buttons\r\n$secondarytext: desaturate(darken($secondary, 60%), 21%);\r\n// Text on secondary colour bg\r\n\r\n$highlight: adjust-hue($primary, 150deg);\r\n// Prices, In stock labels, sales flash\r\n$highlightext: desaturate(lighten($highlight, 50%), 18%);\r\n// Text on highlight colour bg\r\n\r\n$contentbg: #fff;\r\n// Content BG - Tabs (active state)\r\n$subtext: #777;\r\n// small, breadcrumbs etc","/*\n * qTip2 - Pretty powerful tooltips - v2.2.1\n * http://qtip2.com\n *\n * Copyright (c) 2014 \n * Released under the MIT licenses\n * http://jquery.org/license\n *\n * Date: Sun Sep 7 2014 12:09 GMT+0100+0100\n * Plugins: tips modal viewport svg imagemap ie6\n * Styles: core basic css3\n */\n.qtip{\n\tposition: absolute;\n\tleft: -28000px;\n\ttop: -28000px;\n\tdisplay: none;\n\n\tmax-width: 280px;\n\tmin-width: 50px;\n\n\tfont-size: 10.5px;\n\tline-height: 12px;\n\n\tdirection: ltr;\n\n\tbox-shadow: none;\n\tpadding: 0;\n}\n\n\t.qtip-content{\n\t\tposition: relative;\n\t\tpadding: 5px 9px;\n\t\toverflow: hidden;\n\n\t\ttext-align: left;\n\t\tword-wrap: break-word;\n\t}\n\n\t.qtip-titlebar{\n\t\tposition: relative;\n\t\tpadding: 5px 35px 5px 10px;\n\t\toverflow: hidden;\n\n\t\tborder-width: 0 0 1px;\n\t\tfont-weight: bold;\n\t}\n\n\t.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }\n\n\t/* Default close button class */\n\t.qtip-close{\n\t\tposition: absolute;\n\t\tright: -9px; top: -9px;\n\t\tz-index: 11; /* Overlap .qtip-tip */\n\n\t\tcursor: pointer;\n\t\toutline: medium none;\n\n\t\tborder: 1px solid transparent;\n\t}\n\n\t\t.qtip-titlebar .qtip-close{\n\t\t\tright: 4px; top: 50%;\n\t\t\tmargin-top: -9px;\n\t\t}\n\n\t\t* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */\n\n\t\t.qtip-titlebar .ui-icon,\n\t\t.qtip-icon .ui-icon{\n\t\t\tdisplay: block;\n\t\t\ttext-indent: -1000em;\n\t\t\tdirection: ltr;\n\t\t}\n\n\t\t.qtip-icon, .qtip-icon .ui-icon{\n\t\t\t-moz-border-radius: 3px;\n\t\t\t-webkit-border-radius: 3px;\n\t\t\tborder-radius: 3px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t\t.qtip-icon .ui-icon{\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 14px;\n\n\t\t\t\tline-height: 14px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttext-indent: 0;\n\t\t\t\tfont: normal bold 10px/13px Tahoma,sans-serif;\n\n\t\t\t\tcolor: inherit;\n\t\t\t\tbackground: transparent none no-repeat -100em -100em;\n\t\t\t}\n\n/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */\n.qtip-focus{}\n\n/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */\n.qtip-hover{}\n\n/* Default tooltip style */\n.qtip-default{\n\tborder: 1px solid #F1D031;\n\n\tbackground-color: #FFFFA3;\n\tcolor: #555;\n}\n\n\t.qtip-default .qtip-titlebar{\n\t\tbackground-color: #FFEF93;\n\t}\n\n\t.qtip-default .qtip-icon{\n\t\tborder-color: #CCC;\n\t\tbackground: #F1F1F1;\n\t\tcolor: #777;\n\t}\n\n\t.qtip-default .qtip-titlebar .qtip-close{\n\t\tborder-color: #AAA;\n\t\tcolor: #111;\n\t}\n\n\n/*! Light tooltip style */\n.qtip-light{\n\tbackground-color: white;\n\tborder-color: #E2E2E2;\n\tcolor: #454545;\n}\n\n\t.qtip-light .qtip-titlebar{\n\t\tbackground-color: #f1f1f1;\n\t}\n\n\n/*! Dark tooltip style */\n.qtip-dark{\n\tbackground-color: #505050;\n\tborder-color: #303030;\n\tcolor: #f3f3f3;\n}\n\n\t.qtip-dark .qtip-titlebar{\n\t\tbackground-color: #404040;\n\t}\n\n\t.qtip-dark .qtip-icon{\n\t\tborder-color: #444;\n\t}\n\n\t.qtip-dark .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/*! Cream tooltip style */\n.qtip-cream{\n\tbackground-color: #FBF7AA;\n\tborder-color: #F9E98E;\n\tcolor: #A27D35;\n}\n\n\t.qtip-cream .qtip-titlebar{\n\t\tbackground-color: #F0DE7D;\n\t}\n\n\t.qtip-cream .qtip-close .qtip-icon{\n\t\tbackground-position: -82px 0;\n\t}\n\n\n/*! Red tooltip style */\n.qtip-red{\n\tbackground-color: #F78B83;\n\tborder-color: #D95252;\n\tcolor: #912323;\n}\n\n\t.qtip-red .qtip-titlebar{\n\t\tbackground-color: #F06D65;\n\t}\n\n\t.qtip-red .qtip-close .qtip-icon{\n\t\tbackground-position: -102px 0;\n\t}\n\n\t.qtip-red .qtip-icon{\n\t\tborder-color: #D95252;\n\t}\n\n\t.qtip-red .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #D95252;\n\t}\n\n\n/*! Green tooltip style */\n.qtip-green{\n\tbackground-color: #CAED9E;\n\tborder-color: #90D93F;\n\tcolor: #3F6219;\n}\n\n\t.qtip-green .qtip-titlebar{\n\t\tbackground-color: #B0DE78;\n\t}\n\n\t.qtip-green .qtip-close .qtip-icon{\n\t\tbackground-position: -42px 0;\n\t}\n\n\n/*! Blue tooltip style */\n.qtip-blue{\n\tbackground-color: #E5F6FE;\n\tborder-color: #ADD9ED;\n\tcolor: #5E99BD;\n}\n\n\t.qtip-blue .qtip-titlebar{\n\t\tbackground-color: #D0E9F5;\n\t}\n\n\t.qtip-blue .qtip-close .qtip-icon{\n\t\tbackground-position: -2px 0;\n\t}\n\n\n.qtip-shadow{\n\t-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\t-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\tbox-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n}\n\n/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */\n.qtip-rounded,\n.qtip-tipsy,\n.qtip-bootstrap{\n\t-moz-border-radius: 5px;\n\t-webkit-border-radius: 5px;\n\tborder-radius: 5px;\n}\n\n.qtip-rounded .qtip-titlebar{\n\t-moz-border-radius: 4px 4px 0 0;\n\t-webkit-border-radius: 4px 4px 0 0;\n\tborder-radius: 4px 4px 0 0;\n}\n\n/* Youtube tooltip style */\n.qtip-youtube{\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 3px #333;\n\t-moz-box-shadow: 0 0 3px #333;\n\tbox-shadow: 0 0 3px #333;\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tbackground: #4A4A4A;\n\tbackground-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));\n\tbackground-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);\n}\n\n\t.qtip-youtube .qtip-titlebar{\n\t\tbackground-color: #4A4A4A;\n\t\tbackground-color: rgba(0,0,0,0);\n\t}\n\n\t.qtip-youtube .qtip-content{\n\t\tpadding: .75em;\n\t\tfont: 12px arial,sans-serif;\n\n\t\tfilter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\";\n\t}\n\n\t.qtip-youtube .qtip-icon{\n\t\tborder-color: #222;\n\t}\n\n\t.qtip-youtube .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* jQuery TOOLS Tooltip style */\n.qtip-jtools{\n\tbackground: #232323;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));\n\tbackground-image: -moz-linear-gradient(top, #717171, #232323);\n\tbackground-image: -webkit-linear-gradient(top, #717171, #232323);\n\tbackground-image: -ms-linear-gradient(top, #717171, #232323);\n\tbackground-image: -o-linear-gradient(top, #717171, #232323);\n\n\tborder: 2px solid #ddd;\n\tborder: 2px solid rgba(241,241,241,1);\n\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 12px #333;\n\t-moz-box-shadow: 0 0 12px #333;\n\tbox-shadow: 0 0 12px #333;\n}\n\n\t/* IE Specific */\n\t.qtip-jtools .qtip-titlebar{\n\t\tbackground-color: transparent;\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)\";\n\t}\n\t.qtip-jtools .qtip-content{\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)\";\n\t}\n\n\t.qtip-jtools .qtip-titlebar,\n\t.qtip-jtools .qtip-content{\n\t\tbackground: transparent;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-jtools .qtip-icon{\n\t\tborder-color: #555;\n\t}\n\n\t.qtip-jtools .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #333;\n\t}\n\n\n/* Cluetip style */\n.qtip-cluetip{\n\t-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\t-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\tbox-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\n\tbackground-color: #D9D9C2;\n\tcolor: #111;\n\tborder: 0 dashed transparent;\n}\n\n\t.qtip-cluetip .qtip-titlebar{\n\t\tbackground-color: #87876A;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-cluetip .qtip-icon{\n\t\tborder-color: #808064;\n\t}\n\n\t.qtip-cluetip .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #696952;\n\t\tcolor: #696952;\n\t}\n\n\n/* Tipsy style */\n.qtip-tipsy{\n\tbackground: black;\n\tbackground: rgba(0, 0, 0, .87);\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tfont-size: 11px;\n\tfont-family: 'Lucida Grande', sans-serif;\n\tfont-weight: bold;\n\tline-height: 16px;\n\ttext-shadow: 0 1px black;\n}\n\n\t.qtip-tipsy .qtip-titlebar{\n\t\tpadding: 6px 35px 0 10px;\n\t\tbackground-color: transparent;\n\t}\n\n\t.qtip-tipsy .qtip-content{\n\t\tpadding: 6px 10px;\n\t}\n\n\t.qtip-tipsy .qtip-icon{\n\t\tborder-color: #222;\n\t\ttext-shadow: none;\n\t}\n\n\t.qtip-tipsy .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* Tipped style */\n.qtip-tipped{\n\tborder: 3px solid #959FA9;\n\n\t-moz-border-radius: 3px;\n\t-webkit-border-radius: 3px;\n\tborder-radius: 3px;\n\n\tbackground-color: #F9F9F9;\n\tcolor: #454545;\n\n\tfont-weight: normal;\n\tfont-family: serif;\n}\n\n\t.qtip-tipped .qtip-titlebar{\n\t\tborder-bottom-width: 0;\n\n\t\tcolor: white;\n\t\tbackground: #3A79B8;\n\t\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));\n\t\tbackground-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -moz-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -ms-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -o-linear-gradient(top, #3A79B8, #2E629D);\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)\";\n\t}\n\n\t.qtip-tipped .qtip-icon{\n\t\tborder: 2px solid #285589;\n\t\tbackground: #285589;\n\t}\n\n\t\t.qtip-tipped .qtip-icon .ui-icon{\n\t\t\tbackground-color: #FBFBFB;\n\t\t\tcolor: #555;\n\t\t}\n\n\n/**\n * Twitter Bootstrap style.\n *\n * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.\n * Does not work with IE 7.\n */\n.qtip-bootstrap{\n\t/** Taken from Bootstrap body */\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: #333333;\n\n\t/** Taken from Bootstrap .popover */\n\tpadding: 1px;\n\tbackground-color: #ffffff;\n\tborder: 1px solid #ccc;\n\tborder: 1px solid rgba(0, 0, 0, 0.2);\n\t-webkit-border-radius: 6px;\n\t-moz-border-radius: 6px;\n\tborder-radius: 6px;\n\t-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\tbox-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-webkit-background-clip: padding-box;\n\t-moz-background-clip: padding;\n\tbackground-clip: padding-box;\n}\n\n\t.qtip-bootstrap .qtip-titlebar{\n\t\t/** Taken from Bootstrap .popover-title */\n\t\tpadding: 8px 14px;\n\t\tmargin: 0;\n\t\tfont-size: 14px;\n\t\tfont-weight: normal;\n\t\tline-height: 18px;\n\t\tbackground-color: #f7f7f7;\n\t\tborder-bottom: 1px solid #ebebeb;\n\t\t-webkit-border-radius: 5px 5px 0 0;\n\t\t-moz-border-radius: 5px 5px 0 0;\n\t\tborder-radius: 5px 5px 0 0;\n\t}\n\n\t\t.qtip-bootstrap .qtip-titlebar .qtip-close{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-titlebar .qtip-close{\n\t\t\t * [...]\n\t\t\t * right: 4px;\n\t\t\t * top: 50%;\n\t\t\t * [...]\n\t\t\t * border-style: solid;\n\t\t\t * }\n\t\t\t */\n\t\t\tright: 11px;\n\t\t\ttop: 45%;\n\t\t\tborder-style: none;\n\t\t}\n\n\t.qtip-bootstrap .qtip-content{\n\t\t/** Taken from Bootstrap .popover-content */\n\t\tpadding: 9px 14px;\n\t}\n\n\t.qtip-bootstrap .qtip-icon{\n\t\t/**\n\t\t * Overrides qTip2:\n\t\t * .qtip-default .qtip-icon {\n\t\t * border-color: #CCC;\n\t\t * background: #F1F1F1;\n\t\t * color: #777;\n\t\t * }\n\t\t */\n\t\tbackground: transparent;\n\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-icon .ui-icon{\n\t\t\t * width: 18px;\n\t\t\t * height: 14px;\n\t\t\t * }\n\t\t\t */\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\n\t\t\t/* Taken from Bootstrap .close */\n\t\t\tfloat: right;\n\t\t\tfont-size: 20px;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 18px;\n\t\t\tcolor: #000000;\n\t\t\ttext-shadow: 0 1px 0 #ffffff;\n\t\t\topacity: 0.2;\n\t\t\tfilter: alpha(opacity=20);\n\t\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon:hover{\n\t\t\t/* Taken from Bootstrap .close:hover */\n\t\t\tcolor: #000000;\n\t\t\ttext-decoration: none;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.4;\n\t\t\tfilter: alpha(opacity=40);\n\t\t}\n\n\n/* IE9 fix - removes all filters */\n.qtip:not(.ie9haxors) div.qtip-content,\n.qtip:not(.ie9haxors) div.qtip-titlebar{\n\tfilter: none;\n\t-ms-filter: none;\n}\n\n\n.qtip .qtip-tip{\n\tmargin: 0 auto;\n\toverflow: hidden;\n\tz-index: 10;\n\n}\n\n\t/* Opera bug #357 - Incorrect tip position\n\thttps://github.com/Craga89/qTip2/issues/367 */\n\tx:-o-prefocus, .qtip .qtip-tip{\n\t\tvisibility: hidden;\n\t}\n\n\t.qtip .qtip-tip,\n\t.qtip .qtip-tip .qtip-vml,\n\t.qtip .qtip-tip canvas{\n\t\tposition: absolute;\n\n\t\tcolor: #123456;\n\t\tbackground: transparent;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip .qtip-tip canvas{ top: 0; left: 0; }\n\n\t.qtip .qtip-tip .qtip-vml{\n\t\tbehavior: url(#default#VML);\n\t\tdisplay: inline-block;\n\t\tvisibility: visible;\n\t}\n\n\n#qtip-overlay{\n\tposition: fixed;\n\tleft: 0; top: 0;\n\twidth: 100%; height: 100%;\n}\n\n\t/* Applied to modals with show.modal.blur set to true */\n\t#qtip-overlay.blurs{ cursor: pointer; }\n\n\t/* Change opacity of overlay here */\n\t#qtip-overlay div{\n\t\tposition: absolute;\n\t\tleft: 0; top: 0;\n\t\twidth: 100%; height: 100%;\n\n\t\tbackground-color: black;\n\n\t\topacity: 0.7;\n\t\tfilter:alpha(opacity=70);\n\t\t-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\n\t}\n\n\n.qtipmodal-ie6fix{\n\tposition: absolute !important;\n}\n","/**\n * Give Frontend Fonts SCSS\n *\n * Fonts are from icomoon and the src paths need to be relative to template directory.\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n@font-face {\n font-family: 'give-icomoon';\n src: url('../assets/fonts/icomoon.eot?kdnr3d');\n src: url('../assets/fonts/icomoon.eot?kdnr3d#iefix') format('embedded-opentype'),\n url('../assets/fonts/icomoon.woff?kdnr3d') format('woff'),\n url('../assets/fonts/icomoon.svg?kdnr3d#icomoon') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@mixin iconstyle() {\n font-family: 'give-icomoon';\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n // Better Font Rendering\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n[class^=\"give-icon-\"], [class*=\" give-icon-\"] {\n @include iconstyle();\n}\n\n.give-icon-lamp:before {\n content: \"\\e603\";\n}\n\n.give-icon-heart:before {\n content: \"\\e604\";\n}\n\n.give-icon-question:before {\n content: \"\\e602\";\n}\n\n.give-icon-info:before {\n content: \"\\e601\";\n}\n\n.give-icon-new-tab:before {\n content: \"\\ea7e\";\n}\n\n.give-icon-alert:before {\n content: \"\\f02d\";\n}\n\n.give-icon-help:before {\n content: \"\\e606\";\n}\n\n.give-icon-spinner:before {\n content: \"\\e605\";\n}\n\n.give-icon-spinner2:before {\n content: \"\\e607\";\n}\n\n.give-icon-plus:before {\n content: \"\\e040\";\n}\n\n.give-icon-minus:before {\n content: \"\\e041\";\n}\n\n.give-icon-locked:before {\n content: \"\\e600\";\n}\n\n.dashicons-give:before {\n @include iconstyle();\n content: \"\\e800\";\n}\n\n// --------------------------\n// Spinning Icons\n// --------------------------\n\n.fa-spin {\n -webkit-animation: spin 1000ms infinite linear;\n animation: spin 1000ms infinite linear;\n}\n\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n","@font-face {\n\tfont-family: 'give-icomoon';\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n@mixin admin_fonts() {\n\tfont-family: 'give-icomoon';\n\tsrc: url('../assets/fonts/icomoon.eot?kdnr3d');\n\tsrc: url('../assets/fonts/icomoon.eot?kdnr3d#iefix') format('embedded-opentype'),\n\turl('../assets/fonts/icomoon.woff?kdnr3d') format('woff'),\n\turl('../assets/fonts/icomoon.svg?kdnr3d#icomoon') format('svg');\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t// Better Font Rendering\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n// ---------------------------------\n// Donation form vertical tab icons.\n// ---------------------------------\n.give-metabox-tabs li {\n\n\t.give-icon:before {\n\t\t@include admin_fonts();\n\t\tfont-size: 12px;\n\t\tvertical-align: top;\n\t\tline-height: 20px;\n\t\tmargin: 0 5px 0 0;\n\t}\n\n\t.give-icon-default:before {\n\t\tcontent: \"\\e903\";\n\t}\n\n\t//Donation options tab.\n\t.give-icon-heart:before {\n\t\tcontent: \"\\e604\"; //this is a wp dashicon heart.\n\t}\n\t//Goal tab.\n\t.give-icon-target:before {\n\t\tcontent: \"\\e901\";\n\t}\n\t//Form display tab.\n\t.give-icon-display:before {\n\t\tcontent: \"\\e90c\";\n\t}\n\t//Form content tab.\n\t.give-icon-edit:before {\n\t\tcontent: \"\\e902\";\n\t}\n\t//Form terms tab.\n\t.give-icon-checklist:before {\n\t\tposition: relative;\n\t\ttop: 1px;\n\t\tcontent: \"\\e900\";\n\t}\n\t//Form offline donations tab.\n\t.give-icon-purse:before {\n\t\tcontent: \"\\e8df\";\n\t}\n\n}","/**\r\n * Give Forms SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n/*------------------------------------\r\nForms CPT\r\n--------------------------------------*/\r\n/* Hide conditional fields */\r\n.cmb2-id--give-set-price,\r\n.cmb2-id--give-levels-header,\r\n.cmb2-id--give-levels-header + .cmb-repeat-group-wrap,\r\n.cmb2-id--give-display-style,\r\n.post-type-give_forms .tablenav #post-query-submit,\r\n.give-hidden,\r\n.cmb2-id--give-form-content,\r\n.cmb2-id--give-reveal-label,\r\n.cmb2-id--give-custom-amount-minimum,\r\n.cmb2-id--give-custom-amount-text,\r\n.cmb2-id--give-offline-checkout-notes,\r\n.cmb-type-levels-id,\r\n#_give_donation_levels_repeat .cmb-group-title,\r\n#_give_donation_levels_repeat .cmb-row > .cmb-remove-group-row,\r\n#_give_donation_levels_repeat .cmb-row > .handlediv {\r\n\tdisplay: none;\r\n}\r\n\r\n/* Donation Levels Repeating Field */\r\n#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list > .cmb-row .cmb2-radio-list label {\r\n\tfont-size: 12px;\r\n}\r\n\r\n//-----------------------------\r\n// Table Rows\r\n//-----------------------------\r\ndiv.cmb-type-levels-repeater-header + div.cmb-repeat-group-wrap {\r\n\tpadding: 0 !important;\r\n\tmargin: 0 !important;\r\n\tmin-width: 100%;\r\n\tmax-width: 0;\r\n\r\n}\r\n\r\n//-----------------------------\r\n// Multilevel Repeater Header\r\n//-----------------------------\r\n.cmb2-id--give-levels-header {\r\n\tpadding: 10px 12px 0 !important;\r\n\tmargin: 0 !important;\r\n\tbackground: #F7F7F7;\r\n\tborder-bottom: none !important;\r\n\r\n\t.table-container {\r\n\t\tdisplay: table;\r\n\t\twidth: 100%;\r\n\r\n\t\tborder-top: 1px solid #e9e9e9;\r\n\t\tborder-bottom: 1px solid #e9e9e9;\r\n\t\tborder-left: 1px solid #e9e9e9;\r\n\r\n\t\t> .table-row {\r\n\t\t\tdisplay: table-row;\r\n\t\t\tbackground: #FCFCFC;\r\n\r\n\t\t\t> .table-cell {\r\n\t\t\t\tdisplay: table-cell;\r\n\t\t\t\tvertical-align: middle;\r\n\t\t\t\tpadding: 10px 15px;\r\n\t\t\t\tborder-right: 1px solid #e9e9e9;\r\n\t\t\t\t&.col-id {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n#_give_donation_levels_repeat {\r\n\tbackground: #F7F7F7;\r\n\tpadding: 0 1px 20px 12px;\r\n\tbox-sizing: border-box;\r\n\r\n\t.cmb-row, .inside {\r\n\t\tmargin: 0;\r\n\t}\r\n\t.cmb-remove-field-row {\r\n\t\tmargin: 3px 0 0;\r\n\r\n\t\t.button {\r\n\t\t\theight: 25px;\r\n\t\t\tpadding: 0 3px;\r\n\t\t}\r\n\t\tspan.dashicons-no {\r\n\t\t\tline-height: 1.15em;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.cmbhandle {\r\n\t\tdisplay: none;\r\n\t}\r\n\t.cmb-add-row {\r\n\t\tmargin: 12px 0 0;\r\n\t}\r\n\r\n}\r\n\r\n//---------------------------------------------------\r\n// Field One Offs\r\n//---------------------------------------------------\r\n.give-time-field {\r\n\twidth: 65px;\r\n}\r\n\r\n.give-money-field {\r\n\twidth: 75px;\r\n\tmargin-right: 0;\r\n\tmargin-left: 0;\r\n}\r\n\r\n.give-money-symbol {\r\n\tborder: 1px solid #DDD;\r\n\tbackground: #FCFCFC;\r\n\tmargin: 0;\r\n\tfont-size: 14px;\r\n\tpadding: 5px 8px;\r\n}\r\n\r\n.give-money-symbol-before {\r\n\tborder-right: 0;\r\n\tmargin-right: -4px;\r\n}\r\n\r\n.give-money-symbol-after {\r\n\t//border-left: 0;\r\n\tmargin-left: -1px;\r\n}\r\n\r\n.give_options_panel input[ type=\"text\"] {\r\n\tpadding: 5px;\r\n\twidth: 100%;\r\n}\r\n\r\ninput.give-text_small,\r\ninput.give-text-small {\r\n\twidth: 100px !important;\r\n}\r\n\r\ninput.give-text-medium,\r\ninput.give-text_medium {\r\n\twidth: 200px !important;\r\n}\r\n\r\n.give-underline {\r\n\ttext-decoration: underline;\r\n}\r\n\r\n.postbox-container .cmb-row {\r\n\tmargin: 0;\r\n\r\n\t.cmb-th label {\r\n\t\tpadding-left: 8px;\r\n\t}\r\n\r\n}\r\n\r\n//---------------------------------------------------\r\n// Responsive\r\n//---------------------------------------------------\r\n@media only screen and (min-width: 851px) {\r\n\r\n\t#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list {\r\n\t\t> .cmb-row {\r\n\t\t\tfloat: left;\r\n\t\t\tborder-bottom: none;\r\n\t\t\tpadding-right: 10px;\r\n\t\t\t> .cmb-th {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t\t> .cmb-td {\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.cmb-type-give-default-radio-inline .cmb-td {\r\n\t\tmargin-top: 5px;\r\n\t}\r\n\r\n}\r\n\r\n/* Smaller Resolution Desktops */\r\n@media only screen and (min-width: 851px) and (max-width: 1201px) {\r\n\r\n\t#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list {\r\n\r\n\t\t> .cmb-remove-field-row {\r\n\t\t\twidth: 100%;\r\n\t\t\tpadding-top: 0;\r\n\t\t}\r\n\t\t> .cmb-type-text-money {\r\n\t\t\twidth: 105px;\r\n\t\t}\r\n\t\tinput.cmb2-text-money {\r\n\t\t\twidth: 65px;\r\n\t\t}\r\n\r\n\t\t.give-multilevel-text-field {\r\n\t\t\twidth: 160px;\r\n\t\t}\r\n\t\t.cmb-type-radio-inline {\r\n\t\t\tmargin-left: 20px;\r\n\t\t}\r\n\r\n\t}\r\n\t.col-amount {\r\n\t\twidth: 70px;\r\n\t}\r\n\t.col-text {\r\n\t\twidth: 140px;\r\n\t}\r\n\t.col-sort {\r\n\t\tdisplay: none !important;\r\n\t}\r\n\t.give-money-field {\r\n\t\twidth: 55px;\r\n\t}\r\n}\r\n\r\n@media only screen and (min-width: 1201px) {\r\n\r\n\t#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list {\r\n\r\n\t\t> .cmb-remove-field-row {\r\n\t\t\tfloat: right;\r\n\t\t}\r\n\t\t> .cmb-row {\r\n\t\t\tpadding-right: 20px;\r\n\t\t}\r\n\t\t> .cmb-remove-field-row.cmb-row {\r\n\t\t\tpadding-right: 0;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.col-amount {\r\n\t\twidth: 93px;\r\n\t}\r\n\t.col-text {\r\n\t\twidth: 195px;\r\n\t}\r\n\t.col-sort {\r\n\t\twidth: 100px;\r\n\t}\r\n\t.give-multilevel-text-field {\r\n\t\twidth: 205px;\r\n\t}\r\n\r\n}\r\n\r\n//Small Resolution Repeater\r\n@media only screen and (max-width: 850px) {\r\n\tdiv.cmb-type-levels-repeater-header {\r\n\t\tdisplay: none !important;\r\n\t}\r\n}\r\n\r\n//-------------------------------------\r\n// Publish Metabox\r\n//-------------------------------------\r\n\r\n/*Shortcode Input */\r\n\r\n.shortcode-wrap {\r\n\tmargin: 1px 14px 12px 11px;\r\n\r\n\tlabel {\r\n\t\tmargin: 0 0 3px;\r\n\t\tdisplay: block;\r\n\t\tcursor: default;\r\n\t}\r\n\r\n\t.shortcode-input {\r\n\t\tmargin: 0;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n}\r\n\r\n//-------------------------------------\r\n// Content Options\r\n//-------------------------------------\r\n\r\n.cmb2-id--give-content-option,\r\n.cmb2-id--give-terms-option,\r\n.cmb2-id--give-offline-donation-enable-billing-fields-single,\r\n.cmb2-id--give-goal-option,\r\n.cmb2-id--give-customize-offline-donations {\r\n\tborder-bottom: none !important;\r\n\tmargin: 0 !important;\r\n}\r\n\r\n.cmb2-id--give-form-content,\r\n.cmb2-id--give-agree-label,\r\n.cmb2-id--give-offline-checkout-notes,\r\n.cmb2-id--give-set-goal,\r\n.cmb2-id--give-offline-donation-enable-billing-fields-single {\r\n\tborder-top: 1px solid #e9e9e9 !important;\r\n}\r\n\r\n/*-------------------------------------\r\nTerms and Conditions Metabox\r\n---------------------------------------*/\r\n\r\n.cmb2-id--give-agree-label,\r\n.cmb2-id--give-agree-text {\r\n\tdisplay: none;\r\n}\r\n\r\n/*-------------------------------------\r\nDashboard Columns\r\n-------------------------------------*/\r\n\r\ninput.shortcode-input {\r\n\twidth: 100%;\r\n}\r\n\r\n/*-------------------------------------\r\nASIDE\r\n-------------------------------------*/\r\n\r\n#side-sortables {\r\n\r\n\t.cmb-th label {\r\n\r\n\t\t&:after {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\r\n\t}\r\n\t.cmb2-id--give-show-register-form {\r\n\t\tpadding: 10px 0 0 !important;\r\n\t}\r\n\r\n\t.cmb2-wrap > .cmb-field-list > .cmb-row {\r\n\t\tpadding-top: 10px;\r\n\t}\r\n\r\n\t.cmb-row .cmb2-metabox-description {\r\n\t\tpadding-bottom: 0;\r\n\t}\r\n\r\n}\r\n\r\n.cmb2-metabox-description {\r\n\tfont-size: 13px;\r\n\tline-height: 1.5;\r\n\tdisplay: block;\r\n}\r\n\r\n//-------------------------------------\r\n// Tooltips\r\n//-------------------------------------\r\n.give-tooltip {\r\n\tmargin: 0 3px;\r\n\tpadding: 0;\r\n\tfont-size: 14px;\r\n\t@include easing-transition();\r\n\tcolor: transparentize($dark, 0.5);\r\n\tposition: relative;\r\n\ttop: 1px;\r\n\r\n\t&:hover {\r\n\t\tcolor: $dark;\r\n\t}\r\n\r\n}\r\n\r\n//-------------------------------------\r\n// Metabox Form\r\n// -------------------------------------\r\n#give-metabox-form-data {\r\n\r\n\t.inside {\r\n\t\tmargin: 0;\r\n\t\tpadding: 0;\r\n\t}\r\n\r\n\t.give-metabox-panel-wrap {\r\n\t\tbackground: #fff;\r\n\t\toverflow: hidden;\r\n\t}\r\n\r\n\t.give_options_panel {\r\n\t\tpadding-left: 170px;\r\n\r\n\t\t.give-field-wrap {\r\n\t\t\tpadding: 1em 20px 1em 162px !important;\r\n\t\t\tmargin: 0;\r\n\t\t\tborder-bottom: 1px solid #eee;\r\n\r\n\t\t\t> label, > span.give-field-label {\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: 135px;\r\n\t\t\t\tpadding: 0;\r\n\t\t\t\tmargin: 2px 0 0 -150px;\r\n\t\t\t\tline-height: 18px;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tfont-weight: 400;\r\n\t\t\t}\r\n\r\n\t\t\t.give-field-description {\r\n\t\t\t\tcolor: #aaaaaa;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tline-height: 18px;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tpadding-top: 10px;\r\n\t\t\t\tfont-style: italic;\r\n\t\t\t}\r\n\r\n\t\t\tul {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t}\r\n\r\n\t\t\t.mce-container iframe, textarea {\r\n\t\t\t\tmin-height: 250px !important;\r\n\t\t\t}\r\n\r\n\t\t\t.wp-editor-wrap {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.give-field-wrap:last-child {\r\n\t\t\tborder-bottom: 0;\r\n\t\t}\r\n\r\n\t\ttextarea.give-field {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\r\n\t\t.give-field-wrap:hover .give-field-row-actions {\r\n\t\t\tdisplay: block;\r\n\t\t}\r\n\r\n\t\t.give-field-wrap:last-child {\r\n\t\t\tborder-bottom: 0;\r\n\t\t}\r\n\r\n\t\t.give-inline-radio-fields {\r\n\t\t\tli {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t\tmargin-right: 15px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.give-repeatable-field-section {\r\n\t\t\tpadding: 10px;\r\n\t\t\tbackground: #f5f5f5;\r\n\r\n\t\t\t.give-repeatable-fields-section-wrapper {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tbackground-color: white;\r\n\t\t\t\tborder-collapse: collapse;\r\n\t\t\t}\r\n\r\n\t\t\t.give-row {\r\n\t\t\t\tborder-bottom: 15px solid #f5f5f5;\r\n\t\t\t\tbackground-color: white;\r\n\t\t\t}\r\n\r\n\t\t\t.give-template {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\r\n\t\t\t.give-row:last-child {\r\n\t\t\t\tborder-bottom: 10px solid #f5f5f5;\r\n\t\t\t}\r\n\r\n\t\t\t.give-column {\r\n\t\t\t\tpadding: 0;\r\n\t\t\t}\r\n\r\n\t\t\t.give-remove {\r\n\t\t\t\tfloat: right;\r\n\t\t\t\twidth: 36px;\r\n\t\t\t\theight: 36px;\r\n\t\t\t\tpadding: 0;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tline-height: 34px;\r\n\t\t\t\tfont-size: 21px;\r\n\t\t\t\tfont-weight: 300;\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t}\r\n\r\n\t\t\t.give-remove:hover {\r\n\t\t\t\tbackground-color: red;\r\n\t\t\t\tcolor: white;\r\n\t\t\t\twidth: 30px;\r\n\t\t\t\theight: 30px;\r\n\t\t\t\tborder-radius: 30px;\r\n\t\t\t\tmargin-top: 3px;\r\n\t\t\t\tline-height: 28px;\r\n\t\t\t}\r\n\r\n\t\t\t.give-row-head {\r\n\t\t\t\tborder-bottom: 1px solid #eee;\r\n\t\t\t\tcursor: move;\r\n\t\t\t\th2 {\r\n\t\t\t\t\ttext-align: left !important;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.give-row.closed .toggle-indicator:before {\r\n\t\t\t\tcontent: \"\\f140\";\r\n\t\t\t}\r\n\r\n\t\t\t.give-add-repeater-field-section-row-wrap {\r\n\t\t\t\tbackground-color: #f5f5f5;\r\n\t\t\t}\r\n\r\n\t\t\t.give-add-repeater-field-section-row {\r\n\t\t\t\tmargin: 5px 5px;\r\n\t\t\t}\r\n\r\n\t\t\t.give-field-wrap:last-child {\r\n\t\t\t\tborder-bottom: 1px solid #eee;\r\n\t\t\t}\r\n\r\n\t\t\t.give-ui-placeholder-state-highlight {\r\n\t\t\t\tbackground-color: #68bb6c;\r\n\t\t\t}\r\n\r\n\t\t\t.give-repeater-field-name {\r\n\t\t\t\tborder: 0 !important;\r\n\t\t\t\tpadding: 0 !important;\r\n\t\t\t}\r\n\r\n\t\t\t.give-repeater-field-description {\r\n\t\t\t\tcolor: #aaaaaa;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tline-height: 18px;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tpadding-bottom: 10px;\r\n\t\t\t\tfont-style: italic;\r\n\t\t\t}\r\n\r\n\t\t\t// Sortable jquery css fix.\r\n\t\t\t.ui-sortable-helper {\r\n\t\t\t\tdisplay: table !important;\r\n\t\t\t}\r\n\t\t\t.give-row.ui-sortable-helper {\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//-------------------------------------\r\n// Metabox Tabs\r\n//-------------------------------------\r\n#give-metabox-form-data {\r\n\r\n\t.give-metabox-tabs {\r\n\t\tmargin: 0;\r\n\t\tmin-width: 170px;\r\n\t\tfloat: left;\r\n\t\tline-height: 1em;\r\n\t\tpadding: 0 0 10px;\r\n\t\tposition: relative;\r\n\t\tbackground-color: #fafafa;\r\n\t\tborder-right: 1px solid #eee;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\t&:after {\r\n\t\t\tcontent: \"\";\r\n\t\t\tdisplay: block;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 9999em;\r\n\t\t\tposition: absolute;\r\n\t\t\tbottom: -9999em;\r\n\t\t\tleft: 0;\r\n\t\t\tbackground-color: #fafafa;\r\n\t\t\tborder-right: 1px solid #eee;\r\n\t\t}\r\n\r\n\t\tli {\r\n\t\t\tmargin: 0;\r\n\t\t\tpadding: 0;\r\n\t\t\tdisplay: block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\ta {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t\tpadding: 10px;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tbox-shadow: none;\r\n\t\t\t\ttext-decoration: none;\r\n\t\t\t\tline-height: 20px !important;\r\n\t\t\t\tborder-bottom: 1px solid #eee;\r\n\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\tspan.give-label {\r\n\t\t\t\t\twidth: 122px;\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.give-metabox-sub-tabs li {\r\n\t\t\tbackground-color: #f1f1f1;\r\n\t\t\ta {\r\n\t\t\t\tborder-bottom-color: #e5e5e5;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tli.active {\r\n\t\t\t> a {\r\n\t\t\t\tcolor: #555;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbackground-color: #eee;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tli.has-sub-fields.active > a {\r\n\t\t\tbackground-color: #ddd;\r\n\t\t}\r\n\r\n\t\tli.has-sub-fields:not(.active):hover {\r\n\t\t\tul.give-metabox-sub-tabs {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tleft: 170px;\r\n\t\t\t\twidth: 170px;\r\n\t\t\t\tmax-height: 250px;\r\n\t\t\t\toverflow-y: scroll;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n// Icons only display for tight resolutions.\r\n@media only screen and (min-width: 851px) and (max-width: 1025px),\r\n(max-width: 550px) {\r\n\r\n\t#give-metabox-form-data {\r\n\t\tul.give-metabox-tabs {\r\n\t\t\tmin-width: 40px;\r\n\r\n\t\t\tli > a {\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\t&:before {\r\n\t\t\t\t\tmargin-right: 0;\r\n\t\t\t\t\tfont-size: 15px;\r\n\t\t\t\t}\r\n\t\t\t\tspan {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t.give_options_panel {\r\n\t\t\tpadding-left: 40px;\r\n\t\t}\r\n\r\n\t}\r\n\t//#give-metabox-form-data\r\n}\r\n\r\n//-------------------------------------\r\n// Export Form\r\n// -------------------------------------\r\n\r\n#give-export-payments {\r\n\t.give_forms_categories,\r\n\t.give_forms_tags {\r\n\t\tinput {\r\n\t\t\tcolor: #999;\r\n\t\t}\r\n\r\n\t\tmin-width: 250px;\r\n\t\tmargin: 0 0 10px 0;\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\tdiv.chosen-container:first-of-type {\r\n\t\tmargin-top: 10px;\r\n\t}\r\n}\r\n\r\n/*-------------------------------------\r\nDoc Links\r\n-------------------------------------*/\r\n\r\n.give-docs-link {\r\n\ttext-align: right;\r\n\tmargin-right: 15px;\r\n\r\n\ta {\r\n\t\tcolor: #999;\r\n\t\ttext-decoration: none;\r\n\t\tfont-style: italic;\r\n\r\n\t\t&:hover {\r\n\t\t\tcolor: rgb(0, 115, 170);\r\n\t\t}\r\n\t\tspan {\r\n\t\t\tfont-style: normal;\r\n\t\t}\r\n\t}\r\n}","/**\n * Give Add-ons SCSS\n *\n * @description Add-on Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n.type-download {\n float: left;\n margin: 0 1em 1em 0 !important;\n padding: 0;\n vertical-align: top;\n width: 280px;\n text-decoration: none;\n color: inherit;\n border: 1px solid #ddd;\n display: block;\n min-height: 365px;\n overflow: hidden;\n background: #f5f5f5;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .1);\n -webkit-transition-property: border, background, color;\n transition-property: border, background, color;\n -webkit-transition-duration: .05s;\n transition-duration: .05s;\n -webkit-transition-timing-function: ease-in-out;\n transition-timing-function: ease-in-out;\n position: relative;\n\n &:hover {\n\tborder: 1px solid #d1d1d1;\n }\n\n > .featured-img img {\n\tborder-bottom: 1px solid #ddd;\n }\n\n .addon-content {\n\t@include clearfix;\n\tpadding: 15px 20px;\n\n\t.addon-heading {\n\t margin: 0 0 10px;\n\t a {\n\t\toutline: none;\n\t\ttext-decoration: none;\n\t }\n\t}\n\n }\n\n .addon-footer-wrap {\n\tborder-top: 1px solid #ddd;\n\tposition: absolute;\n\tbottom: 2px;\n\tleft: 0;\n\twidth: 100%;\n\tbackground-color: #FFF;\n\tpadding: 15px 20px;\n }\n\n}\n\n.give-view-addons-all, .type-download {\n\n span.dashicons {\n\twidth: 16px;\n\theight: 16px;\n\tfont-size: 14px;\n\tmargin: 6px 0 0 0;\n }\n\n}\n\n.give-view-addons-all span.dashicons {\n margin-left: 3px;\n}\n","/**\n * Give Reports SCSS\n *\n * @description Payment History Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n//---------------------------------------------------------\n// Dashboard Widget\n//---------------------------------------------------------\n#give-dashboard-widgets-wrap {\n\n .inside {\n padding-top: 0;\n padding-bottom: 0;\n\n /* counteract extra padding in Income Report graph */\n .give_forms_page_give-reports & {\n padding-left: 0;\n }\n\n #give-graphs-filter {\n float:none;\n }\n }\n\n .postbox {\n margin-bottom: 10px;\n }\n\n table.reports-table {\n clear: none;\n }\n\n #give-date-range-options {\n float: left;\n\n > span {\n float: left;\n line-height: 30px;\n font-style: italic;\n padding: 0 5px 0 0;\n }\n\n }\n\n}\n\n\n#give-graphs-filter {\n float:right;\n\n .tablenav {\n margin: 0 0 0 17px;\n .actions {\n padding: 0;\n }\n }\n}\n\n//---------------------------------------------------------\n// Global Graph Styles\n//---------------------------------------------------------\n\n.give-graph {\n .y1Axis {\n color: #66bb6a !important;\n }\n .y2Axis {\n color: #546e7a !important;\n }\n}\n\n//---------------------------------------------------------\n//Donor Filter\n//---------------------------------------------------------\nbody.give_forms_page_give-reports, body.give_forms_page_give-payment-history {\n\n h1.nav-tab-wrapper, h2.nav-tab-wrapper {\n margin-bottom: 10px;\n }\n .actions {\n padding-top: 0;\n }\n\n .pagination-links {\n margin-left: 10px;\n }\n\n p.donor-search {\n margin-right: 10px;\n }\n\n .tablenav-right {\n\n .tablenav-pages {\n float: right;\n }\n #give-reports-view {\n margin-top: 0;\n }\n .actions {\n float: left;\n }\n\n }\n\n p.search-box {\n float: left;\n }\n\n .reports-table-nav.tablenav.top {\n width: 100%;\n float: none;\n margin: 0 0 10px;\n }\n\n .reports-forms-details-wrap.top {\n float: right;\n overflow: hidden;\n\n #give-reports-filter {\n float: left;\n }\n > .actions {\n padding-right: 0;\n }\n }\n\n .tablenav.bottom {\n margin-top: 10px;\n }\n\n h3.reports-earnings-title {\n margin: 7px 0 0;\n }\n\n .reports-views-wrap {\n padding: 3px 0 0;\n }\n\n .wrap.give-reports-donors-wrap {\n margin-right: 0;\n margin-bottom: 10px;\n }\n\n .widefat tbody td, .widefat tbody th {\n padding-top: 12px;\n padding-bottom: 12px;\n }\n\n}\n\n//---------------------------------------------------------\n//Export Options Styles\n//---------------------------------------------------------\nbody.give_forms_page_give-reports table.export-options-table {\n tbody td {\n padding: 20px 12px;\n vertical-align: top;\n }\n .give-export-form {\n position: relative;\n .notice-wrap {\n background-color: transparent;\n padding: 12px 12px 4px;\n margin: 2px 0 -16px -11px;\n overflow: auto;\n .spinner {\n margin: -2px -12px 8px 0;\n }\n }\n }\n\n span#give-start-wrap, span#give-end-wrap {\n input {\n width: 100px;\n }\n }\n\n}\n\n#export-donor-options-wrap {\n p {\n padding: 20px 0 0;\n margin: 0;\n font-weight: bold;\n }\n ul {\n max-width: 900px;\n overflow: hidden;\n\n li {\n margin: 0;\n padding: 0 5px 5px 0;\n box-sizing: border-box;\n float: left;\n width: 33%;\n }\n }\n\n}\n\n//---------------------------------------------------------\n//Recount Stats Form\n//---------------------------------------------------------\n\n#give-tools-recount-form {\n\n .notice-wrap {\n position: relative;\n min-height: 25px;\n margin: 10px -12px -12px;\n background: #EFEFEF;\n padding: 10px 12px 12px;\n border-top: 1px solid #E5E5E5;\n\n .give-progress {\n position: absolute;\n top: 15px;\n }\n\n .spinner {\n position: absolute;\n right: 14px;\n top: 13px;\n margin: 0;\n }\n\n #give-batch-success {\n margin-bottom: 6px;\n }\n\n }\n\n}\n\n//---------------------------------------------------------\n//Progress Bar Styles\n//---------------------------------------------------------\n.give-progress {\n height: 15px;\n width: 95%;\n border-radius: 4px;\n overflow: hidden;\n > div {\n height: 100%;\n width: 0;\n }\n\n}\n\n.admin-color-fresh .give-export-form .give-progress div, .give-export-form .give-progress div {\n background: #0073aa;\n}\n\n.admin-color-light .give-export-form .give-progress div {\n background: #888;\n}\n\n.admin-color-blue .give-export-form .give-progress div {\n background: #096484;\n}\n\n.admin-color-coffee .give-export-form .give-progress div {\n background: #c7a589;\n}\n\n.admin-color-ectoplasm .give-export-form .give-progress div {\n background: #a3b745;\n}\n\n.admin-color-midnight .give-export-form .give-progress div {\n background: #e14d43;\n}\n\n.admin-color-sunrise .give-export-form .give-progress div {\n background: #dd823b;\n}\n\n//---------------------------------------------------------\n//Tools\n//---------------------------------------------------------\n\n.recount-stats-controls form {\n display: inline;\n}\n\n.give-recount-stats-descriptions {\n margin: 8px 0 0;\n display: block;\n\n span {\n line-height: 24px;\n font-size: 13px;\n font-style: italic;\n font-weight: normal;\n color: #aaa;\n margin: 0;\n display: none;\n }\n}\n\n//---------------------------------------------------------\n//Payment Methods\n//---------------------------------------------------------\n.gateways-report-tablenav {\n .actions.bulkactions {\n padding-right: 0;\n }\n}\n\n//---------------------------------------------------------\n//Table List Styles\n//---------------------------------------------------------\n\ntable.give-table {\n\n td {\n vertical-align: middle;\n }\n td.row-title {\n h3 {\n margin: 0 0 0.4em;\n font-size: 1.2em;\n }\n p {\n font-size: 13px;\n font-style: italic;\n font-weight: normal;\n color: #aaa;\n margin: 0;\n }\n }\n\n}\n\n#give-graphs-filter > .tablenav {\n height: auto;\n}\n\n//---------------------------------------------------------\n//Logs\n//---------------------------------------------------------\n#give-logs-filter {\n .search-box {\n float: right;\n }\n .tablenav.top {\n float: left;\n clear: none;\n margin-top: 0;\n }\n}","/**\n * Give Admin Welcome SCSS\n *\n * @description Displays when user activates the plugin\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\n.welcome-h1 {\n display: inline-block;\n margin-right: 15px !important;\n}\n\n.about-wrap {\n h3 {\n margin: 1.5em 0 .6em;\n }\n\n img {\n border:none;\n }\n}\n\n.give-badge {\n padding-top: 150px;\n height: 52px;\n width: 185px;\n color: #FFF;\n font-weight: bold;\n font-size: 14px;\n text-align: center;\n text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);\n margin: 0 -5px;\n\n position: absolute;\n top: 0;\n right: 0;\n}\n\n.introduction {\n padding: 0 0 20px;\n margin: 0 0 20px;\n}\n\n//Feature section\n.feature-section {\n margin-top: 40px;\n\n span.dashicons {\n width: 16px;\n height: 16px;\n font-size: 14px;\n margin: 6px 0 0 0;\n }\n\n .feature-section-item {\n width: 48%;\n float: left;\n }\n\n div.last-feature {\n margin-right: 0;\n margin-left: 4%;\n }\n\n}\n\n//Get started\n[class^=\"dashboard_page_give-\"], [class*=\"dashboard_page_give-\"] {\n .about-text {\n min-height: 0;\n }\n}\n\n//Social Media\n.social-items-wrap {\n display: inline-block;\n > div {\n display: inline-block;\n }\n .twitter-item-wrap {\n margin: 0 20px 10px 0;\n }\n}\n\n//Credits\n.wp-person {\n img {\n border-radius: 50%;\n }\n a.web {\n margin: 17px 0 0;\n font-weight: bold;\n font-style: italic;\n }\n}\n\n//Newsletter\n.newsletter-intro {\n font-size: 13px;\n font-style: italic;\n color: #777;\n}\n\n.give-newsletter-form-wrap {\n margin: 10px 0 20px -5px;\n max-width: 700px;\n\n td {\n padding: 3px;\n }\n\n div.give-newsletter-confirmation {\n background: #fff;\n -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\n margin: 5px 10px 4px 5px;\n padding: 1px 12px;\n border-left: 4px solid #7ad03a;\n display: none;\n > p {\n margin: 0.5em 0;\n padding: 2px;\n }\n }\n\n}","/**\n * Give Logs SCSS\n *\n * @description Payment History Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n#give_donor_export_form {\n margin: 0 0 5px;\n}\n\n\n#give-payments-filter .give-donation-status {\n display: inline-block;\n}\n\n.column-status {\n .give-donation-status, .give-test-mode-transactions-label {\n display: inline-block;\n }\n .give-test-mode-transactions-label {\n margin: 0 5px;\n vertical-align: middle;\n }\n}\n","/**\r\n * Give Settings SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n */\r\n\r\n//--------------------------------------------------------------\r\n// General Settings\r\n//--------------------------------------------------------------\r\n\r\n.give-settings-page {\r\n\r\n\t.nav-tab-wrapper {\r\n\t\tmargin-bottom: 5px;\r\n\t\toverflow: visible;\r\n\t}\r\n\r\n\t.cmb2-wrap .cmb-type-checkbox input[type=\"checkbox\"] {\r\n\t\tdisplay: block;\r\n\t\tmargin-bottom: 5px;\r\n\t}\r\n\r\n\tdiv.give-submit-wrap {\r\n\t\tmargin: 20px 0;\r\n\t}\r\n\r\n\t.give_forms_page_give-payment-history .postbox .hndle {\r\n\t\tcursor: default;\r\n\t}\r\n\r\n\t.give-input-field {\r\n\t\twidth: 25em;\r\n\t}\r\n\r\n\ttable table input[type=\"text\"] {\r\n\t\twidth: 15em;\r\n\t}\r\n}\r\n\r\n.give-setting-tab-header {\r\n\tclear: both;\r\n\toverflow: hidden;\r\n\tmargin: 30px 0;\r\n\r\n\th2 {\r\n\t\tmargin-top: 8px;\r\n\t}\r\n}\r\n\r\n.give-radio-inline {\r\n\tul {\r\n\t\tmargin-top: 0;\r\n\t}\r\n\r\n\tli {\r\n\t\tdisplay: inline-block;\r\n\t\tmargin: 0 0 0 15px;\r\n\t}\r\n\r\n\tli:first-child {\r\n\t\tmargin-left: 0;\r\n\t}\r\n}\r\n\r\n// Tools page: fix ajax search user list hide bug\r\n.give-tools-setting-page .bulkactions {\r\n\toverflow: visible;\r\n}\r\n\r\n//Ugly but necessary to override WP core styles.\r\n.form-table td.give-radio-inline fieldset li > label {\r\n\tmargin: 5px 0 0 !important;\r\n}\r\n\r\np.give-field-description, .cmb2-metabox-description {\r\n\tcolor: #aaaaaa;\r\n\tfont-style: italic;\r\n\tfont-size: 13px !important;\r\n}\r\n\r\n.give-image-thumb {\r\n\tposition: relative;\r\n\tmargin-top: 14px;\r\n\r\n\tspan.give-delete-image-thumb {\r\n\t\tposition: absolute;\r\n\t\tbackground: red;\r\n\t\tcolor: white;\r\n\t\tborder-radius: 30px;\r\n\t\tleft: -10px;\r\n\t\ttop: -10px;\r\n\t}\r\n\r\n\timg {\r\n\t\tmax-width: 400px;\r\n\t\tborder: 4px solid white;\r\n\t}\r\n}\r\n\r\n.cmb-type-give-title label,\r\n.give-setting-tab-header h2 {\r\n\tfloat: left;\r\n\tdisplay: inline-block;\r\n\twidth: 220px;\r\n\tfont-style: italic;\r\n\tcolor: #AAA;\r\n\tmargin: 0;\r\n\tfont-size: 14px;\r\n}\r\n\r\n.postbox-container #_give_donation_levels_repeat > .cmb-repeatable-grouping:not(:last-of-type) {\r\n\tborder-bottom: 1px solid #e9e9e9;\r\n\tborder-top: none;\r\n}\r\n\r\n.cmb-type-enabled-gateways .cmb-td > p:first-of-type {\r\n\tdisplay: none;\r\n}\r\n\r\n// CMB2 Checkbox Revised Styles\r\n.cmb-type-checkbox .cmb-td {\r\n\twidth: 80%;\r\n\tlabel {\r\n\t\tfont-size: 13px;\r\n\t}\r\n}\r\n\r\n/* Responsive Settings Rows */\r\n.give_settings {\r\n\t.cmb2-wrap .cmb-row {\r\n\t\tdisplay: table-row;\r\n\t\t> .cmb-th, > .cmb-td {\r\n\t\t\tdisplay: table-cell;\r\n\t\t\tfloat: none;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/* Custom Title Separators */\r\n.cmb2-id-give-title {\r\n\tlabel {\r\n\t\tfont-style: italic;\r\n\t\tcolor: #AAA;\r\n\t\tcursor: default;\r\n\t}\r\n\t> div.cmb-th {\r\n\t\tpadding-bottom: 10px;\r\n\t}\r\n\t> div.cmb-td {\r\n\t\tpadding-bottom: 5px;\r\n\t}\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// Payment Gateways\r\n//--------------------------------------------------------------\r\n.give-payment-gatways-list li.ui-sortable-handle {\r\n\r\n\tspan.give-drag-handle {\r\n\t\tpadding: 3px 4px 0 0;\r\n\t\tfont-size: 15px;\r\n\t\tfont-weight: normal;\r\n\t\tcolor: #bdbdbd;\r\n\t\tcursor: move;\r\n\r\n\t\t&:hover {\r\n\t\t\tcolor: #333;\r\n\t\t}\r\n\r\n\t}\r\n\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// Emails\r\n//--------------------------------------------------------------\r\n\r\n.give-email-tags-wrap {\r\n\tmargin: 5px 0 0;\r\n\tcode {\r\n\t\tfont-style: normal;\r\n\t\tpadding: 1px 2px;\r\n\t\tfont-size: 12px;\r\n\t}\r\n\tspan {\r\n\t\tdisplay: block;\r\n\t\tcolor: #AAA;\r\n\t\tfont-style: italic;\r\n\t\tmargin: 0 0 2px;\r\n\t\tfont-size: 13px;\r\n\t}\r\n\t.give_price_tag {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// System Info page styles\r\n//--------------------------------------------------------------\r\n\r\n#system-info-textarea {\r\n\twidth: 800px;\r\n\theight: 600px;\r\n\tfont-family: Menlo, Monaco, monospace;\r\n\tbackground: #FFF;\r\n\twhite-space: pre;\r\n\toverflow: auto;\r\n\tdisplay: block;\r\n\t/*rtl:ignore*/\r\n\tdirection: ltr;\r\n}\r\n\r\n#give-download-sysinfo {\r\n\tmargin: 0;\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// API\r\n//--------------------------------------------------------------\r\n\r\n.cmb2-id-api {\r\n\r\n\t.cmb-td {\r\n\t\tpadding: 0;\r\n\t}\r\n\ttable th {\r\n\t\tpadding: 10px 8px;\r\n\t}\r\n\r\n\t.give-ajax-user-search {\r\n\t\tpadding: 3px 5px;\r\n\r\n\t}\r\n\r\n}\r\n\r\n.give_user_search_wrap {\r\n\tposition: relative;\r\n\toverflow: visible;\r\n}\r\n\r\n.give_user_search_results {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttop: 27px;\r\n\tz-index: 100;\r\n\r\n\ta.give-ajax-user-cancel {\r\n\t\tposition: absolute;\r\n\t\tright: 6px;\r\n\t\ttop: 2px;\r\n\t}\r\n\tul {\r\n\t\tpadding: 10px 10px 4px;\r\n\t\tmargin: 0;\r\n\t\tbackground: #f0f0f0;\r\n\t\tborder: 1px solid #DFDFDF;\r\n\t\twidth: 300px;\r\n\t\tmax-height: 200px;\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\r\n}\r\n\r\n#api {\r\n\r\n\t.tablenav .actions {\r\n\t\toverflow: visible;\r\n\t}\r\n\r\n}\r\n\r\na.give-delete {\r\n\tcolor: #a00;\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// License\r\n//--------------------------------------------------------------\r\n.give-settings-wrap-licenses {\r\n\t.give-license-deactivate {\r\n\t\tmargin: 1px 0 0 10px;\r\n\t\theight: 30px;\r\n\t}\r\n\r\n\t.give-license-field {\r\n\t\tbackground: #FFF url('../images/close.png') no-repeat;\r\n\t\tbackground-position: 98.5% center;\r\n\t\tbackground-size: 18px;\r\n\t}\r\n\r\n\t.give-license-active, .give-license-active:focus {\r\n\t\tbackground-image: url('../images/tick.png');\r\n\t\tbackground-color: #FFF;\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: 98.5% center;\r\n\t\toutline: none;\r\n\t\tbackground-size: 16px;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n}\r\n\r\n/* Addon grid design */\r\n.give-settings-page {\r\n\tmargin-top: 20px;\r\n\r\n\t.give-settings-wrap-licenses {\r\n\t\tdisplay: block;\r\n\t\tposition: relative;\r\n\t\tfloat: left;\r\n\t\twidth: 30.5%;\r\n\t\tmin-height: 180px;\r\n\t\tmargin: 20px 1% 20px 0;\r\n\t}\r\n\r\n\t.give-license-key {\r\n\t\tlabel {\r\n\t\t\tmargin: 0 0 0 10px;\r\n\t\t\tpadding: 10px 0;\r\n\t\t\tdisplay: block;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tfont-weight: 600;\r\n\t\t\tcursor: default;\r\n\t\t}\r\n\t}\r\n\r\n\t.give-license-block {\r\n\t\tmargin: 0 10px;\r\n\t}\r\n\r\n\tinput[type=\"text\"].give-license-field,\r\n\tinput[type=\"password\"].give-license-field {\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.give-license-block input[type=\"submit\"] {\r\n\t\tposition: absolute;\r\n\t\ttop: 3px;\r\n\t\tright: 10px;\r\n\t\theight: 24px;\r\n\t\tline-height: 22px;\r\n\t\tpadding: 0 8px 1px;\r\n\t\tfont-size: 11px;\r\n\t}\r\n\r\n\t//License status notice.\r\n\t.give-license-status-notice {\r\n\t\tbackground: #fff;\r\n\t\tborder-left: 4px solid #fff;\r\n\t\t-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\r\n\t\tbox-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\r\n\t\tmargin: 5px 0 2px;\r\n\t\tpadding: 1px 12px;\r\n\r\n\t\tp {\r\n\t\t\tpadding: 10px 0;\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\r\n\t\ta {\r\n\t\t\tcolor: #444;\r\n\t\t\tcursor: pointer;\r\n\t\t\t&:hover {\r\n\t\t\t\ttext-decoration: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-expires-soon {\r\n\t\tborder-color: #00a0d2;\r\n\t}\r\n\r\n\t//Inactive or Expired.\r\n\t.give-license-status-notice.give-inactive,\r\n\t.give-license-status-notice.give-license-expired {\r\n\t\tborder-color: #e24e4e;\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-error,\r\n\t.give-license-status-notice.give-license-no_activations_left,\r\n\t.give-license-status-notice.give-license-missing,\r\n\t.give-license-status-notice.give-license-invalid,\r\n\t.give-license-status-notice.give-license-site_inactive,\r\n\t.give-license-status-notice.give-license-item_name_mismatch {\r\n\t\tborder-color: orange;\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-lifetime-notice,\r\n\t.give-license-status-notice.give-license-expiration-date {\r\n\t\tborder-color: #46b450;\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-expires-soon a:hover,\r\n\t.give-license-status-notice.give-license-expired a:hover {\r\n\t\ttext-decoration: none;\r\n\t}\r\n}\r\n\r\n/* Responsive fixes: Addon grid design */\r\n@media screen and (max-width: 1100px) {\r\n\t.give-settings-page .give-settings-wrap-licenses {\r\n\t\twidth: 45%;\r\n\t\tmin-height: 150px;\r\n\t}\r\n}\r\n\r\n@media screen and (max-width: 600px) {\r\n\t.give-settings-page .give-settings-wrap-licenses {\r\n\t\twidth: 100%;\r\n\t\tmax-width: 320px;\r\n\t}\r\n}\r\n\r\n/* Tables */\r\n\r\n.give-table {\r\n\r\n\tthead {\r\n\t\tth {\r\n\t\t\tpadding: 8px 10px !important;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n//Fix double <hr>s for change to `give_title` in 1.3.5\r\n.give_settings .cmb-td hr + hr {\r\n\tdisplay: none;\r\n}\r\n\r\n//Set a min-height for TinyMCE so it's not too small when hidden in a tab and then revealed\r\n.post-type-give_forms .mce-container iframe, .post-type-give_forms .wp-editor-area {\r\n\tmin-height: 400px;\r\n}\r\n\r\n// Widget Page\r\n.give-field-description {\r\n\tcolor: #aaaaaa;\r\n\tfont-style: italic;\r\n\tmargin: 0;\r\n\tpadding-top: .5em;\r\n}\r\n\r\n// Setting page tab\r\nh2.give-nav-tab-wrapper {\r\n\toverflow: hidden;\r\n\theight: 35px;\r\n}\r\n\r\n@media screen and (max-width: 600px) {\r\n\t.give-nav-tab-wrapper {\r\n\t\tposition: relative;\r\n\t\tpadding-top:0 !important;\r\n\r\n\t\t> a {\r\n\t\t\twidth: 100%;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\tmargin:0;\r\n\t\t\t&:hover {\r\n\t\t\t\tborder-bottom: 1px solid #ccc;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiv.give-sub-nav-tab-wrapper {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop:0;\r\n\t\t\tright:0;\r\n\r\n\t\t\t#give-show-sub-nav {\r\n\t\t\t\theight: 28px;\r\n\t\t\t\twidth: 30px;\r\n\t\t\t\tborder-radius: 0;\r\n\t\t\t\tmargin:0;\r\n\t\t\t\t> span.dashicons {\r\n\t\t\t\t\tmargin: 6px auto 0;\r\n\t\t\t\t\tdisplay: block;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tnav.give-sub-nav-tab {\r\n\t\t\t\ttop:35px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n.give-sub-nav-tab-wrapper {\r\n\tposition: relative;\r\n\tdisplay: inline-block;\r\n\tz-index: 9999;\r\n\tfloat: left;\r\n\r\n\tnav.give-sub-nav-tab {\r\n\t\tborder: 1px solid #ccc;\r\n\t\tborder-bottom: 0;\r\n\t\tposition: absolute;\r\n\t\ttop: 32px;\r\n\t\tright: 0;\r\n\r\n\t\ta {\r\n\t\t\tfloat: left;\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 6px 10px;\r\n\t\t\tclear: both;\r\n\t\t\ttext-decoration: none;\r\n\t\t\tborder-bottom: 1px solid #ccc;\r\n\t\t\tmin-width: 170px;\r\n\t\t\tcolor: #555;\r\n\t\t\tfont-size: 14px;\r\n\t\t}\r\n\r\n\t\ta:hover {\r\n\t\t\tbackground: #e5e5e5;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// By default hide setting tab wrapper.\r\n.give-sub-nav-tab-wrapper{\r\n\tdisplay:none;\r\n}\r\n\r\n#give-show-sub-nav {\r\n\ttext-decoration: none;\r\n\tpadding: 3px 4px;\r\n\tborder-bottom: 1px solid #ccc;\r\n\tline-height: 0;\r\n\tbackground: white;\r\n\tborder-radius: 4px;\r\n margin-top:5px;\r\n\r\n\t> span.dashicons {\r\n font-size:16px;\r\n height:16px;\r\n width:16px;\r\n\t}\r\n}\r\n\r\n#give-show-sub-nav:hover, #give-show-sub-nav:active {\r\n\toutline: none;\r\n\tbox-shadow: inset 0px 0px 4px #ddd;\r\n}","/**\r\n * Give Payment History SCSS\r\n *\r\n * @description Payment History Styles\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n#give-payment-filters, .give-submit-wrap {\r\n clear: both;\r\n background: #f5f5f5;\r\n border-color: #dfdfdf;\r\n overflow: auto;\r\n margin: 8px 0;\r\n padding: 12px;\r\n border-width: 1px;\r\n border-style: solid;\r\n font-size: 13px;\r\n line-height: 2.1em;\r\n}\r\n\r\n#give-payment-filters {\r\n p {\r\n color: #777;\r\n }\r\n ul.subsubsub {\r\n margin-bottom: 8px;\r\n }\r\n label {\r\n font-style: italic;\r\n margin: 0 10px;\r\n\r\n &.give-start-date-label {\r\n margin-left: 5px;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n#give-payments-filter {\r\n ul.subsubsub {\r\n margin-bottom: 12px;\r\n }\r\n .tablenav.top {\r\n float: none;\r\n .bulkactions {\r\n margin-top: 1px;\r\n padding-top: 0;\r\n }\r\n\r\n }\r\n\r\n .give-email-column-value {\r\n font-size: 14px;\r\n font-weight: bold;\r\n }\r\n\r\n #the-list .check-column input {\r\n margin-top: 1px;\r\n }\r\n\r\n .column-details {\r\n width: 50px;\r\n }\r\n\r\n .column-amount {\r\n width: 120px;\r\n }\r\n\r\n}\r\n\r\ntr.status-refunded td {\r\n background: #cecece;\r\n border-top-color: #ccc;\r\n}\r\n\r\n.wp-list-table.forms th#date {\r\n width: 140px;\r\n}\r\n\r\n.give-mobile-link {\r\n line-height: 32px;\r\n vertical-align: middle;\r\n}\r\n\r\n.give-mobile-link img {\r\n max-width: 80%;\r\n height: auto;\r\n float: left;\r\n}\r\n\r\n//------------------------------------\r\n// Status Colors\r\n//------------------------------------\r\n\r\n.give-donation-status {\r\n > span {\r\n display: inline-block;\r\n width: 12px;\r\n height: 12px;\r\n position: relative;\r\n top: 1px;\r\n margin: 0;\r\n padding: 0;\r\n border-radius: 50%;\r\n background: #888;\r\n line-height: 16px;\r\n }\r\n\r\n //Pending\r\n &.status-pending > span {\r\n background-color: $orange;\r\n }\r\n\r\n //Complete\r\n &.status-complete > span, &.status-publish > span {\r\n background-color: $status-complete;\r\n }\r\n\r\n //Refunded\r\n &.status-refunded > span {\r\n background-color: $status-default;\r\n }\r\n\r\n &.status-failed > span {\r\n background-color: $red;\r\n }\r\n\r\n &.status-abandoned > span {\r\n background-color: $dark;\r\n }\r\n\r\n &.status-revoked > span {\r\n background-color: $status-revoked;\r\n }\r\n\r\n &.status-subscription > span, &.status-renewal > span, &.status-give_subscription > span {\r\n background-color: $status-subscription;\r\n }\r\n\r\n}\r\n\r\n//Test Payment Label\r\n#test-payment-label {\r\n @include give-label();\r\n background-color: $orange;\r\n margin: 0 15px;\r\n vertical-align: middle;\r\n}\r\n\r\n//ID & link field\r\n#give-payments-filter {\r\n\r\n .give-payment-id {\r\n @include give-label();\r\n font-weight: normal;\r\n @extend .give-item-label-gray;\r\n }\r\n\r\n .column-details {\r\n padding-right: 30px;\r\n }\r\n\r\n .give-donation-status {\r\n display: inline-block;\r\n }\r\n\r\n}\r\n\r\n//Payment View Metabox\r\n#give-order-update {\r\n .give-donation-status {\r\n display: inline-block;\r\n float: none;\r\n margin: 0 10px;\r\n position: relative;\r\n top: 3px;\r\n }\r\n}\r\n\r\n//Donation Column\r\n.column-donation_form {\r\n .donation-level-text-wrap {\r\n font-style: italic;\r\n display: block;\r\n }\r\n}\r\n\r\n/*---------------------\r\nResponsiveness\r\n---------------------------*/\r\n@media handheld, only screen and (max-width: 640px) {\r\n .wp-list-table.forms th {\r\n width: auto !important;\r\n }\r\n}\r\n\r\n.download_page_give-payment-history .ui-dialog .ui-dialog-titlebar-close span {\r\n margin-left: -8px;\r\n margin-top: -8px;\r\n}\r\n\r\n/* Payment Details\r\n-------------------------------------------------------------- */\r\n.give-admin-box .label {\r\n font-weight: 600;\r\n}\r\n\r\n.give-admin-box-inside {\r\n margin: 0;\r\n padding: 3px 10px;\r\n clear: both;\r\n border-bottom: 1px solid #eee;\r\n}\r\n\r\n.give-admin-box-inside .strong {\r\n font-weight: 600;\r\n}\r\n\r\n.give-payment-fees .fee-label {\r\n font-weight: normal;\r\n color: #666;\r\n}\r\n\r\n.give-admin-box .right {\r\n float: right;\r\n}\r\n\r\n#give-order-update .inside,\r\n#give-order-details .inside {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n#give-order-update input.give_datepicker {\r\n width: 180px;\r\n}\r\n\r\n#give-order-update input[type=\"number\"].give-payment-time-hour,\r\n#give-order-update input[type=\"number\"].give-payment-time-min {\r\n width: 50px;\r\n}\r\n\r\n.give-admin-box-inside:last-child {\r\n border-bottom: 0;\r\n}\r\n\r\n#give-edit-order-form .data-payment-key {\r\n word-break: break-all;\r\n}\r\n\r\n.give-order-update-box #major-publishing-actions .button-secondary {\r\n margin-right: 10px;\r\n}\r\n\r\n#give-donation-overview th {\r\n text-align: left;\r\n}\r\n\r\n#give-donation-overview .give-select-chosen {\r\n width: 196px;\r\n}\r\n\r\n#give-donation-overview ul,\r\n#give-order-address-country-wrap select,\r\n#give-donor-details .order-data-address input,\r\n#give-edit-order-form .column input,\r\n#give-donor-details .order-data-column p.data input {\r\n clear: both;\r\n display: block;\r\n}\r\n\r\n.give-order-data input.small-text {\r\n margin: 0;\r\n}\r\n\r\n#give-order-update span.label {\r\n display: inline;\r\n width: 50px;\r\n}\r\n\r\n.give-order-update-box .button-primary {\r\n margin-right: 0;\r\n}\r\n\r\n#give-edit-order-form .column .description {\r\n padding-right: 10px;\r\n}\r\n\r\n#give-edit-order-form .column,\r\n#give-donation-overview .row > ul > li,\r\n#give-donation-overview .inside > ul > li {\r\n display: inline-block;\r\n position: relative;\r\n vertical-align: top;\r\n}\r\n\r\n#give-donation-overview ul {\r\n font-size: 0;\r\n\r\n li {\r\n font-size: 13px;\r\n\r\n &.actions {\r\n text-align: right;\r\n min-width: 200px;\r\n }\r\n\r\n &.remove {\r\n text-align: right;\r\n }\r\n\r\n }\r\n\r\n .row {\r\n padding: 12px;\r\n border-bottom: 1px solid #eee;\r\n }\r\n\r\n}\r\n\r\n#give-order-data .data span {\r\n color: #666;\r\n font-weight: 600;\r\n}\r\n\r\ninput.give-price-field {\r\n width: 80px;\r\n padding: 3px 5px;\r\n}\r\n\r\n.give_forms_page_give-payment-history.js .postbox .hndle {\r\n cursor: default;\r\n}\r\n\r\n//------------------------------------------\r\n//Payment Notes Section\r\n//------------------------------------------\r\n\r\n#give-payment-notes {\r\n textarea {\r\n min-height: 150px;\r\n }\r\n #give-add-payment-note {\r\n margin: 6px 0 15px;\r\n }\r\n\r\n}\r\n\r\n//------------------------------------------\r\n//Edit Order Form\r\n//------------------------------------------\r\n\r\n#give-billing-details {\r\n\r\n .column > div {\r\n margin: 0 0 10px;\r\n }\r\n\r\n label {\r\n display: block;\r\n }\r\n\r\n .column-container {\r\n padding: 5px 0 10px;\r\n }\r\n\r\n input[type=\"text\"] {\r\n width: 95%;\r\n }\r\n\r\n .chosen-container {\r\n width: 98% !important;\r\n }\r\n\r\n}\r\n\r\n//------------------------------------------\r\n//Responsive\r\n//------------------------------------------\r\n\r\n@media screen and (min-width: 1200px) {\r\n #give-edit-order-form .column {\r\n width: 33%;\r\n }\r\n\r\n #give-donation-overview.columns-4 li.actions {\r\n width: 25%;\r\n margin-top: 0;\r\n margin-right: 0;\r\n }\r\n\r\n}\r\n\r\n@media screen and (max-width: 1199px) {\r\n #give-edit-order-form .column {\r\n width: 49%;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 782px) {\r\n .order-data-column input[type=\"email\"] {\r\n padding: 6px 10px;\r\n }\r\n}\r\n\r\n//------------------------------------------\r\n//Donation Details\r\n//------------------------------------------\r\n#give-donor-details .inside, #give-donation-overview .inside {\r\n margin-top: 0;\r\n}\r\n\r\n.give_forms_page_give-payment-history #give-dashboard-widgets-wrap #side-sortables {\r\n padding-top: 0;\r\n}","/**\n * Give Admin Dashboard SCSS\n *\n * @description Styles the Give dashboard widget\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n.give-dashboard-widget {\n\n .give-dashboard-today {\n\ttext-align: center;\n\n\t.give-dashboard-date-today {\n\t margin: 10px 0 0;\n\t padding: 0;\n\t}\n\n\t.give-dashboard-happy-day {\n\t padding: 3px;\n\t margin: 0;\n\t}\n\n\t.give-dashboard-today-earnings {\n\t font-size: 42px;\n\t color: #4ead61;\n\t font-weight: bold;\n\t margin: 15px 0 0;\n\t line-height: 1;\n\t}\n\n\t.give-donations-today {\n\t font-size: 18px;\n\t font-weight: bold;\n\t margin: 0 0 30px;\n\t padding: 4px 0 1px;\n\t}\n\n\t.give-last-seven {\n\t font-size: 14px;\n\t font-weight: bold;\n\t padding: 0;\n\t margin: 0 0 30px;\n\t}\n\n }\n\n //Table Stats\n .give-table-stats {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin: 0;\n\ttable-layout: fixed;\n\tborder-top: 1px solid #ececec;\n\tborder-spacing: 0;\n\n\t.give-dashboard-stat-total, .give-dashboard-stat-total-label {\n\t padding: 0;\n\t margin: 0;\n\t}\n\n\t.give-dashboard-stat-total {\n\t color: #4ead61;\n\t font-weight: bold;\n\t font-size: 16px;\n\t}\n\n }\n\n}\n\n//Fancy borders\n#give_dashboard_sales {\n\n > .inside {\n\tpadding: 0;\n }\n\n .give-table-stats {\n\ttd {\n\t padding: 10px 0;\n\t}\n\ttd:first-of-type {\n\t border-right: 1px solid #ececec;\n\t}\n\ttr#give-table-stats-tr-1 td {\n\t border-bottom: 1px solid #ececec;\n\t}\n }\n\n}\n\n//At a Glance Widget\n#dashboard_right_now {\n .give-forms-count:before {\n\t@include iconstyle();\n\tfont-size: 18px;\n\twidth: 18px;\n\theight: 18px;\n\tcontent: \"\\e800\";\n }\n}","/**\n * Give Forms SCSS\n *\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n//--------------------------------------------------------------\n// Donors Listing Page Style\n//--------------------------------------------------------------\n.give_forms_page_give-donors {\n .wrap > h2 {\n\tmargin-bottom: 15px;\n }\n\n .nav-tab-wrapper .dashicons {\n position: relative;\n top:2px;\n margin: 0 3px 0 0;\n }\n\n #give-donors-filter {\n\tposition: relative;\n\tp.search-box {\n\t float: left;\n\t margin: 0;\n\t}\n }\n\n .tablenav.top {\n\tfloat: right;\n\tclear: none;\n }\n}\n\n//--------------------------------------------------------------\n// Donor Styles\n//--------------------------------------------------------------\n#give-customer-card-wrapper {\n margin-left: -1px;\n z-index: 2;\n min-height: 200px;\n\n\n input {\n\tfont-weight: normal;\n }\n\n .customer-section {\n\tborder-bottom: 1px solid #eee;\n\tmargin-bottom: 10px;\n }\n\n .customer-section table {\n\tmargin-bottom: 0;\n }\n\n > div:first-child {\n\tpadding-top: 20px;\n }\n\n > div:last-child {\n\tpadding-bottom: 20px;\n\tborder: none;\n }\n\n //AVATAR\n .avatar-wrap {\n\tpadding: 0 15px 15px 0;\n\ttext-align: center;\n\tfloat: left;\n\n\timg {\n\t border-radius: 3px;\n\t}\n\n }\n\n a.delete {\n\ttext-decoration: none;\n\tcolor: #ff0000;\n\tmargin-right: 5px;\n }\n\n //Donor Header (non-avatar content)\n .donor-bio-header {\n\n\t.customer-since {\n\t margin: 10px 0;\n\t font-size: 16px;\n\t}\n\n\t.customer-id {\n display: inline-block;\n\t font-size: 24px;\n\t font-weight: 600;\n\t margin-right: 10px;\n\t}\n\n .customer-name-wrap {\n display: inline-block;\n }\n\n\t.customer-edit-link {\n\t margin-bottom: 15px;\n\t}\n\n }\n\n}\n\n.customer-main-wrapper {\n clear: both;\n margin: 0 0 20px;\n\n @media(max-width: 655px) {\n\twidth: 100%;\n }\n\n table {\n\tmargin: 0;\n }\n\n input {\n\twidth: 200px;\n }\n\n}\n\n//Donor Summary\n#donor-summary {\n padding: 0 20px;\n\n &:after {\n\tfont-family: \"dashicons\";\n\tcontent: \"\\f110\";\n\tposition: absolute;\n\ttop: 10px;\n\tright: 10px;\n\tfont-size: 100px;\n\tcolor: #F0F0F0;\n\tz-index: 0;\n }\n\n}\n#give-customer-card-wrapper .customer-address-wrapper {\n width: 202px;\n\n\tspan[data-key=\"line2\"] {\n\t\tdisplay: table;\n\t\tclear: both;\n\t}\n}\n\n#give-customer-card-wrapper .customer-address-wrapper select {\n width: 200px;\n}\n\n#give-customer-card-wrapper .customer-info {\n min-height: 185px;\n}\n\n#give-customer-card-wrapper .info-wrapper {\n min-height: 125px;\n}\n\n.customer-info .customer-name {\n font-size: 24px;\n font-weight: 600;\n}\n\n.disconnect-user a {\n font-size: 12px;\n font-weight: normal;\n text-decoration: none;\n}\n\n#customer-edit-actions {\n text-align: center;\n margin-bottom: 20px;\n line-height: 28px;\n}\n\n#customer-edit-actions .button-secondary {\n margin-right: 10px;\n}\n\n#give-customer-card-wrapper .edit-item {\n display: none;\n}\n\n#give-customer-card-wrapper .give_user_search_results {\n left: 1px;\n top: 16px;\n}\n\n#give-customer-card-wrapper .give_user_search_results ul {\n width: 200px\n}\n\n#customer-stats-wrapper {\n margin: 0 auto;\n text-align: center;\n padding: 15px;\n ul {\n\tmargin: 0;\n\tpadding: 0;\n\toverflow: hidden;\n\tli {\n\t width: 50%;\n\t float: left;\n\t line-height: 22px;\n\t font-size: 14px;\n\t margin: 0;\n\t}\n\n }\n\n a {\n\ttext-decoration: none;\n }\n}\n\n#customer-stats-wrapper .dashicons {\n color: #888;\n}\n\n#customer-tables-wrapper table {\n width: 100%;\n text-align: center;\n}\n\n#customer-tables-wrapper th {\n text-align: center;\n}\n\n#customer-tables-wrapper .donations tr > th:first-child,\n#customer-tables-wrapper .donations tr > td:first-child,\n#customer-tables-wrapper .emails tr > th:first-child,\n#customer-tables-wrapper .emails tr > td:first-child {\n text-align: left;\n}\n\n#customer-tables-wrapper .donations tr > td:only-child {\n text-align: center;\n}\n\n#customer-notes-wrapper {\n min-height: 50px;\n}\n\n.customer-notes-header span, .customer-notes-header img {\n font-weight: 600;\n line-height: 30px;\n vertical-align: middle;\n}\n\n.customer-note-input {\n width: 100%;\n margin-bottom: 5px;\n}\n\n//Customer Notes\n#give-customer-notes {\n div:nth-of-type(even) {\n\tbackground-color: #f9f9f9;\n }\n .customer-note-wrapper {\n\tborder-bottom: 1px solid #f9f9f9;\n\tmin-height: 38px;\n\tpadding: 0;\n\n\t.note-content-wrap {\n\t padding: 10px 12px;\n\t line-height: 20px;\n\t font-size: 14px;\n\t}\n\n }\n\n .give-no-customer-notes {\n\ttext-align: center;\n\tpadding: 20px;\n }\n\n}\n\n.customer-note-wrapper span {\n display: block;\n}\n\n.delete-customer {\n text-align: center;\n}\n\n","/**\r\n * Give Admin Buttons SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n/*=Give Shortcode Button\r\n--------------------------------------*/\r\n\r\n@media screen and (max-width: 782px) {\r\n #wp-content-media-buttons a.give-thickbox {\r\n padding: 6px 14px;\r\n line-height: normal;\r\n font-size: 14px;\r\n height: auto;\r\n }\r\n .wp-media-buttons span#give-media-button {\r\n margin-top: 0 !important;\r\n margin-left: 2px !important;\r\n }\r\n}\r\n\r\n/*=Button in shortcode tinymce dialog\r\n--------------------------------------*/\r\n\r\n.mce-primary.mce-give-primary button {\r\n padding-right: 10px;\r\n padding-left: 10px;\r\n}\r\n\r\n/*=Admin Buttons w/ Icons\r\n--------------------------------------*/\r\n\r\n/* extends .wp-core-ui .button */\r\n.wp-core-ui .give-admin-button {\r\n padding-left: 7px;\r\n padding-right: 7px;\r\n}\r\n\r\n/* matches style of Add Media and Give Shortcodes buttons */\r\n.give-admin-button-icon {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n vertical-align: text-top;\r\n margin: 0 2px;\r\n\r\n &:before {\r\n font: 400 18px/1 dashicons;\r\n speak: none;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n }\r\n\r\n /* specific DashIcon styles */\r\n &-update:before {\r\n content: \"\\f463\";\r\n }\r\n}\r\n","\n/* =Primary button in shortcode tinymce dialog\n-------------------------------------------------------------- */\n\n.mce-primary.mce-sc-primary button {\n\tpadding-right: 10px;\n\tpadding-left: 10px;\n}\n\n.mce-sc-popup {\n\ta {\n\t\ttext-decoration: underline;\n\t}\n\tp {\n\t\tmargin-bottom: 1em;\n\t\t&.strong {\n\t\t\tfont-weight: 600;\n\t\t}\n\t\t&.no-margin {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t\t&.margin-top {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t}\n\t// Crop text which overflow in listbox.\n\t.mce-listbox button{\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden !important;\n\t}\n}\n\n/* =Shortcode button above wp_editor\n-------------------------------------------------------------- */\n\n@media screen and (max-width: 782px) {\n\t.wp-media-buttons button.sc-button span {\n\t\twidth: 18px !important;\n\t}\n}\n\n.wp-media-buttons {\n\tbutton.sc-button {\n\t\toutline: none;\n\t\tpadding-left: 5px;\n\t\tmargin-right: 0;\n\n\t\t&:active {\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n}\n\nbutton.sc-button {\n\t&:after {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\ttop: -1px;\n\t\tcontent: '';\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-top: 6px solid #777;\n\t\tborder-right: 4px solid transparent;\n\t\tborder-left: 4px solid transparent;\n\t\tmargin: 0 3px 0 6px;\n\t}\n\n\t&.active:after {\n\t\ttop: -2px;\n\t\tborder-top: 0;\n\t\tborder-bottom: 6px solid #32373c;\n\t}\n}\n\n/* =Shortcode button dropdown menu\n-------------------------------------------------------------- */\n\n.sc-wrap {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 5px;\n}\n\ndiv.sc-menu {\n\tdisplay: none;\n\tposition: absolute;\n\ttop: 100%;\n\tleft: 0;\n\tmin-width: 100%;\n\tmax-height: 410px;\n\tfont-size: 14px;\n\tbox-shadow: 0 3px 5px rgba( 0, 0, 0, 0.2 );\n\tbackground: #fff;\n\tborder: 1px solid rgba( 0, 0, 0, 0.15 );\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding: 5px 0;\n\tmargin: -2px 0 0;\n\tz-index: 1002;\n}\n\ndiv.sc-shortcode {\n\tdisplay: block;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\tpadding: 6px 12px;\n\tmargin-bottom: 2px;\n\n\t&:hover {\n\t\tcolor: #fff;\n\t}\n}\n\n/* =Shortcode tinymce dialog backdrop\n-------------------------------------------------------------- */\n\n#mce-modal-block.mce-reset.mce-fade.mce-in {\n\topacity: 0.7;\n\tfilter: alpha(opacity=70);\n}\n","/**\n * Give System Info SCSS\n *\n * @description System Info Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license https://opensource.org/licenses/gpl-3.0/ GNU Public License\n *\n * The following code is a derivative work of the code from the WooCommerce\n * plugin, which is licensed GPLv3. This code therefore is also licensed under\n * the terms of the GNU Public License, version 3.\n *\n * Copyright (c) 2015 WooThemes\n * Copyright (c) 2016 WordImpress, LLC\n*/\n\n.give-status-table {\n margin-bottom: 1em;\n\n h2 {\n font-size: 14px;\n margin: 0;\n }\n\n tr {\n &:nth-child(2n) {\n th,\n td {\n background: #fcfcfc;\n }\n }\n }\n\n th {\n font-weight: 700;\n padding: 9px;\n }\n\n td:first-child {\n width: 33%;\n }\n\n td.help {\n width: 1em;\n }\n\n td {\n padding: 9px;\n font-size: 1.1em;\n\n mark {\n background: transparent none;\n }\n\n mark.yes {\n color: $green;\n }\n\n mark.no {\n color: #999;\n }\n\n mark.error {\n color: $red;\n }\n\n ul {\n margin: 0;\n }\n }\n}\n\n.wrap div.give-debug-report-wrapper {\n margin-top: 1em;\n}\n\n.give-debug-report {\n display: none;\n margin: 10px 0;\n padding: 0;\n position: relative;\n\n textarea {\n font-family: monospace;\n width: 100%;\n margin: 0;\n height: 300px;\n padding: 20px;\n -moz-border-radius: 0;\n -webkit-border-radius: 0;\n border-radius: 0;\n resize: none;\n font-size: 12px;\n line-height: 20px;\n outline: 0;\n }\n}\n"],"mappings":"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","names":[],"sourceRoot":"/source/"}
1
+ {"version":3,"file":"../scss/give-admin.css","sources":["admin/give-admin.scss","frontend/_mixins.scss","frontend/_variables.scss","plugins/qtip.scss","frontend/fonts.scss","admin/fonts.scss","admin/forms.scss","admin/addons.scss","admin/reports.scss","admin/welcome.scss","admin/logs.scss","admin/settings.scss","admin/payment-history.scss","admin/dashboard.scss","admin/donors.scss","admin/buttons.scss","admin/shortcodes.scss","admin/system-info.scss"],"sourcesContent":["/*!\r\n * Give Admin SCSS/CSS\r\n *\r\n * @description: The Main SCSS file for ADMIN styles which is compiled and minified via Gulp taskrunner\r\n * @package: Give\r\n * @subpackage: SCSS/Admin\r\n * @copyright: Copyright (c) 2016, WordImpress\r\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n@import '../frontend/mixins';\r\n@import '../frontend/variables';\r\n@import '../plugins/qtip';\r\n@import '../frontend/fonts';\r\n@import 'fonts';\r\n@import 'forms';\r\n@import 'addons';\r\n@import 'reports';\r\n@import 'welcome';\r\n@import 'logs';\r\n@import 'settings';\r\n@import 'payment-history';\r\n@import 'dashboard';\r\n@import 'donors';\r\n@import 'buttons';\r\n@import 'shortcodes';\r\n@import 'system-info';\r\n","/**\r\n * Clearfix\r\n */\r\n@mixin clearfix() {\r\n *zoom: 1;\r\n\r\n &:before,\r\n &:after {\r\n content: \" \";\r\n display: table;\r\n }\r\n\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\n.give-clearfix {\r\n @include clearfix;\r\n}\r\n\r\n/**\r\n * Box Sizing\r\n * https://github.com/timrogers/sass-box-sizing-mixin\r\n */\r\n@mixin box-sizing($box-model) {\r\n -webkit-box-sizing: $box-model; // Safari <= 5\r\n -moz-box-sizing: $box-model; // Firefox <= 19\r\n box-sizing: $box-model;\r\n}\r\n\r\n/**\r\n * CSS3 Easing\r\n */\r\n@mixin easing-transition() {\r\n -moz-transition: 0.2s all linear;\r\n -o-transition: 0.2s all linear;\r\n transition: 0.2s all linear;\r\n}\r\n\r\n//Labels\r\n@mixin give-label() {\r\n padding: .2em .4em .3em;\r\n font-size: 11px;\r\n line-height: 1;\r\n color: #fff;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: .25em;\r\n \r\n &:hover {\r\n color:#fff;\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n@mixin give-label-gray() {\r\n background-color: #929292;\r\n}\r\n@mixin give-label-orange() {\r\n background-color: #ffba00;\r\n}\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n.give-item-label-gray {\r\n @include give-label-gray();\r\n}\r\n\r\n.give-item-label-orange {\r\n @include give-label-orange();\r\n}\r\n\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n//Fields\r\n@mixin give-currency() {\r\n background-color: lighten($light-gray, 2%);\r\n border-top: 1px solid $borders;\r\n border-bottom: 1px solid $borders;\r\n color: $dark;\r\n margin: 0;\r\n padding: 0 12px;\r\n height: 35px;\r\n line-height: 35px;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}\r\n\r\n@mixin give-input() {\r\n border: 1px solid $borders;\r\n background: #FFF;\r\n border-radius: 0;\r\n height: 35px;\r\n line-height: 35px;\r\n padding: 0 12px;\r\n margin: 0;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}","/**\r\n * Give CSS Variables\r\n */\r\n\r\n$green: #7ad03a;\r\n$red: #a00;\r\n$orange: #ffba00;\r\n$blue: #2ea2cc;\r\n$dark: #333;\r\n$borders: #ccc;\r\n$light-gray: #EDEDED;\r\n\r\n//Status\r\n$status-default: #777;\r\n$status-complete: $green;\r\n$status-refunded: $status-default;\r\n$status-subscription: #5bc0de;\r\n$status-revoked: #d9534f;\r\n\r\n//Font sizes\r\n$font-size-medium: 18px;\r\n\r\n$primary: #007ba4;\r\n// Primary colour for buttons (alt)\r\n$primarytext: desaturate(lighten($primary, 50%), 18%);\r\n// Text on primary colour bg\r\n\r\n$secondary: desaturate(lighten($primary, 40%), 21%);\r\n// Secondary buttons\r\n$secondarytext: desaturate(darken($secondary, 60%), 21%);\r\n// Text on secondary colour bg\r\n\r\n$highlight: adjust-hue($primary, 150deg);\r\n// Prices, In stock labels, sales flash\r\n$highlightext: desaturate(lighten($highlight, 50%), 18%);\r\n// Text on highlight colour bg\r\n\r\n$contentbg: #fff;\r\n// Content BG - Tabs (active state)\r\n$subtext: #777;\r\n// small, breadcrumbs etc","/*\n * qTip2 - Pretty powerful tooltips - v2.2.1\n * http://qtip2.com\n *\n * Copyright (c) 2014 \n * Released under the MIT licenses\n * http://jquery.org/license\n *\n * Date: Sun Sep 7 2014 12:09 GMT+0100+0100\n * Plugins: tips modal viewport svg imagemap ie6\n * Styles: core basic css3\n */\n.qtip{\n\tposition: absolute;\n\tleft: -28000px;\n\ttop: -28000px;\n\tdisplay: none;\n\n\tmax-width: 280px;\n\tmin-width: 50px;\n\n\tfont-size: 10.5px;\n\tline-height: 12px;\n\n\tdirection: ltr;\n\n\tbox-shadow: none;\n\tpadding: 0;\n}\n\n\t.qtip-content{\n\t\tposition: relative;\n\t\tpadding: 5px 9px;\n\t\toverflow: hidden;\n\n\t\ttext-align: left;\n\t\tword-wrap: break-word;\n\t}\n\n\t.qtip-titlebar{\n\t\tposition: relative;\n\t\tpadding: 5px 35px 5px 10px;\n\t\toverflow: hidden;\n\n\t\tborder-width: 0 0 1px;\n\t\tfont-weight: bold;\n\t}\n\n\t.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }\n\n\t/* Default close button class */\n\t.qtip-close{\n\t\tposition: absolute;\n\t\tright: -9px; top: -9px;\n\t\tz-index: 11; /* Overlap .qtip-tip */\n\n\t\tcursor: pointer;\n\t\toutline: medium none;\n\n\t\tborder: 1px solid transparent;\n\t}\n\n\t\t.qtip-titlebar .qtip-close{\n\t\t\tright: 4px; top: 50%;\n\t\t\tmargin-top: -9px;\n\t\t}\n\n\t\t* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */\n\n\t\t.qtip-titlebar .ui-icon,\n\t\t.qtip-icon .ui-icon{\n\t\t\tdisplay: block;\n\t\t\ttext-indent: -1000em;\n\t\t\tdirection: ltr;\n\t\t}\n\n\t\t.qtip-icon, .qtip-icon .ui-icon{\n\t\t\t-moz-border-radius: 3px;\n\t\t\t-webkit-border-radius: 3px;\n\t\t\tborder-radius: 3px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t\t.qtip-icon .ui-icon{\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 14px;\n\n\t\t\t\tline-height: 14px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttext-indent: 0;\n\t\t\t\tfont: normal bold 10px/13px Tahoma,sans-serif;\n\n\t\t\t\tcolor: inherit;\n\t\t\t\tbackground: transparent none no-repeat -100em -100em;\n\t\t\t}\n\n/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */\n.qtip-focus{}\n\n/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */\n.qtip-hover{}\n\n/* Default tooltip style */\n.qtip-default{\n\tborder: 1px solid #F1D031;\n\n\tbackground-color: #FFFFA3;\n\tcolor: #555;\n}\n\n\t.qtip-default .qtip-titlebar{\n\t\tbackground-color: #FFEF93;\n\t}\n\n\t.qtip-default .qtip-icon{\n\t\tborder-color: #CCC;\n\t\tbackground: #F1F1F1;\n\t\tcolor: #777;\n\t}\n\n\t.qtip-default .qtip-titlebar .qtip-close{\n\t\tborder-color: #AAA;\n\t\tcolor: #111;\n\t}\n\n\n/*! Light tooltip style */\n.qtip-light{\n\tbackground-color: white;\n\tborder-color: #E2E2E2;\n\tcolor: #454545;\n}\n\n\t.qtip-light .qtip-titlebar{\n\t\tbackground-color: #f1f1f1;\n\t}\n\n\n/*! Dark tooltip style */\n.qtip-dark{\n\tbackground-color: #505050;\n\tborder-color: #303030;\n\tcolor: #f3f3f3;\n}\n\n\t.qtip-dark .qtip-titlebar{\n\t\tbackground-color: #404040;\n\t}\n\n\t.qtip-dark .qtip-icon{\n\t\tborder-color: #444;\n\t}\n\n\t.qtip-dark .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/*! Cream tooltip style */\n.qtip-cream{\n\tbackground-color: #FBF7AA;\n\tborder-color: #F9E98E;\n\tcolor: #A27D35;\n}\n\n\t.qtip-cream .qtip-titlebar{\n\t\tbackground-color: #F0DE7D;\n\t}\n\n\t.qtip-cream .qtip-close .qtip-icon{\n\t\tbackground-position: -82px 0;\n\t}\n\n\n/*! Red tooltip style */\n.qtip-red{\n\tbackground-color: #F78B83;\n\tborder-color: #D95252;\n\tcolor: #912323;\n}\n\n\t.qtip-red .qtip-titlebar{\n\t\tbackground-color: #F06D65;\n\t}\n\n\t.qtip-red .qtip-close .qtip-icon{\n\t\tbackground-position: -102px 0;\n\t}\n\n\t.qtip-red .qtip-icon{\n\t\tborder-color: #D95252;\n\t}\n\n\t.qtip-red .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #D95252;\n\t}\n\n\n/*! Green tooltip style */\n.qtip-green{\n\tbackground-color: #CAED9E;\n\tborder-color: #90D93F;\n\tcolor: #3F6219;\n}\n\n\t.qtip-green .qtip-titlebar{\n\t\tbackground-color: #B0DE78;\n\t}\n\n\t.qtip-green .qtip-close .qtip-icon{\n\t\tbackground-position: -42px 0;\n\t}\n\n\n/*! Blue tooltip style */\n.qtip-blue{\n\tbackground-color: #E5F6FE;\n\tborder-color: #ADD9ED;\n\tcolor: #5E99BD;\n}\n\n\t.qtip-blue .qtip-titlebar{\n\t\tbackground-color: #D0E9F5;\n\t}\n\n\t.qtip-blue .qtip-close .qtip-icon{\n\t\tbackground-position: -2px 0;\n\t}\n\n\n.qtip-shadow{\n\t-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\t-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\tbox-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n}\n\n/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */\n.qtip-rounded,\n.qtip-tipsy,\n.qtip-bootstrap{\n\t-moz-border-radius: 5px;\n\t-webkit-border-radius: 5px;\n\tborder-radius: 5px;\n}\n\n.qtip-rounded .qtip-titlebar{\n\t-moz-border-radius: 4px 4px 0 0;\n\t-webkit-border-radius: 4px 4px 0 0;\n\tborder-radius: 4px 4px 0 0;\n}\n\n/* Youtube tooltip style */\n.qtip-youtube{\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 3px #333;\n\t-moz-box-shadow: 0 0 3px #333;\n\tbox-shadow: 0 0 3px #333;\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tbackground: #4A4A4A;\n\tbackground-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));\n\tbackground-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);\n}\n\n\t.qtip-youtube .qtip-titlebar{\n\t\tbackground-color: #4A4A4A;\n\t\tbackground-color: rgba(0,0,0,0);\n\t}\n\n\t.qtip-youtube .qtip-content{\n\t\tpadding: .75em;\n\t\tfont: 12px arial,sans-serif;\n\n\t\tfilter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\";\n\t}\n\n\t.qtip-youtube .qtip-icon{\n\t\tborder-color: #222;\n\t}\n\n\t.qtip-youtube .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* jQuery TOOLS Tooltip style */\n.qtip-jtools{\n\tbackground: #232323;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));\n\tbackground-image: -moz-linear-gradient(top, #717171, #232323);\n\tbackground-image: -webkit-linear-gradient(top, #717171, #232323);\n\tbackground-image: -ms-linear-gradient(top, #717171, #232323);\n\tbackground-image: -o-linear-gradient(top, #717171, #232323);\n\n\tborder: 2px solid #ddd;\n\tborder: 2px solid rgba(241,241,241,1);\n\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 12px #333;\n\t-moz-box-shadow: 0 0 12px #333;\n\tbox-shadow: 0 0 12px #333;\n}\n\n\t/* IE Specific */\n\t.qtip-jtools .qtip-titlebar{\n\t\tbackground-color: transparent;\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)\";\n\t}\n\t.qtip-jtools .qtip-content{\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)\";\n\t}\n\n\t.qtip-jtools .qtip-titlebar,\n\t.qtip-jtools .qtip-content{\n\t\tbackground: transparent;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-jtools .qtip-icon{\n\t\tborder-color: #555;\n\t}\n\n\t.qtip-jtools .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #333;\n\t}\n\n\n/* Cluetip style */\n.qtip-cluetip{\n\t-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\t-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\tbox-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\n\tbackground-color: #D9D9C2;\n\tcolor: #111;\n\tborder: 0 dashed transparent;\n}\n\n\t.qtip-cluetip .qtip-titlebar{\n\t\tbackground-color: #87876A;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-cluetip .qtip-icon{\n\t\tborder-color: #808064;\n\t}\n\n\t.qtip-cluetip .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #696952;\n\t\tcolor: #696952;\n\t}\n\n\n/* Tipsy style */\n.qtip-tipsy{\n\tbackground: black;\n\tbackground: rgba(0, 0, 0, .87);\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tfont-size: 11px;\n\tfont-family: 'Lucida Grande', sans-serif;\n\tfont-weight: bold;\n\tline-height: 16px;\n\ttext-shadow: 0 1px black;\n}\n\n\t.qtip-tipsy .qtip-titlebar{\n\t\tpadding: 6px 35px 0 10px;\n\t\tbackground-color: transparent;\n\t}\n\n\t.qtip-tipsy .qtip-content{\n\t\tpadding: 6px 10px;\n\t}\n\n\t.qtip-tipsy .qtip-icon{\n\t\tborder-color: #222;\n\t\ttext-shadow: none;\n\t}\n\n\t.qtip-tipsy .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* Tipped style */\n.qtip-tipped{\n\tborder: 3px solid #959FA9;\n\n\t-moz-border-radius: 3px;\n\t-webkit-border-radius: 3px;\n\tborder-radius: 3px;\n\n\tbackground-color: #F9F9F9;\n\tcolor: #454545;\n\n\tfont-weight: normal;\n\tfont-family: serif;\n}\n\n\t.qtip-tipped .qtip-titlebar{\n\t\tborder-bottom-width: 0;\n\n\t\tcolor: white;\n\t\tbackground: #3A79B8;\n\t\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));\n\t\tbackground-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -moz-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -ms-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -o-linear-gradient(top, #3A79B8, #2E629D);\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)\";\n\t}\n\n\t.qtip-tipped .qtip-icon{\n\t\tborder: 2px solid #285589;\n\t\tbackground: #285589;\n\t}\n\n\t\t.qtip-tipped .qtip-icon .ui-icon{\n\t\t\tbackground-color: #FBFBFB;\n\t\t\tcolor: #555;\n\t\t}\n\n\n/**\n * Twitter Bootstrap style.\n *\n * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.\n * Does not work with IE 7.\n */\n.qtip-bootstrap{\n\t/** Taken from Bootstrap body */\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: #333333;\n\n\t/** Taken from Bootstrap .popover */\n\tpadding: 1px;\n\tbackground-color: #ffffff;\n\tborder: 1px solid #ccc;\n\tborder: 1px solid rgba(0, 0, 0, 0.2);\n\t-webkit-border-radius: 6px;\n\t-moz-border-radius: 6px;\n\tborder-radius: 6px;\n\t-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\tbox-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-webkit-background-clip: padding-box;\n\t-moz-background-clip: padding;\n\tbackground-clip: padding-box;\n}\n\n\t.qtip-bootstrap .qtip-titlebar{\n\t\t/** Taken from Bootstrap .popover-title */\n\t\tpadding: 8px 14px;\n\t\tmargin: 0;\n\t\tfont-size: 14px;\n\t\tfont-weight: normal;\n\t\tline-height: 18px;\n\t\tbackground-color: #f7f7f7;\n\t\tborder-bottom: 1px solid #ebebeb;\n\t\t-webkit-border-radius: 5px 5px 0 0;\n\t\t-moz-border-radius: 5px 5px 0 0;\n\t\tborder-radius: 5px 5px 0 0;\n\t}\n\n\t\t.qtip-bootstrap .qtip-titlebar .qtip-close{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-titlebar .qtip-close{\n\t\t\t * [...]\n\t\t\t * right: 4px;\n\t\t\t * top: 50%;\n\t\t\t * [...]\n\t\t\t * border-style: solid;\n\t\t\t * }\n\t\t\t */\n\t\t\tright: 11px;\n\t\t\ttop: 45%;\n\t\t\tborder-style: none;\n\t\t}\n\n\t.qtip-bootstrap .qtip-content{\n\t\t/** Taken from Bootstrap .popover-content */\n\t\tpadding: 9px 14px;\n\t}\n\n\t.qtip-bootstrap .qtip-icon{\n\t\t/**\n\t\t * Overrides qTip2:\n\t\t * .qtip-default .qtip-icon {\n\t\t * border-color: #CCC;\n\t\t * background: #F1F1F1;\n\t\t * color: #777;\n\t\t * }\n\t\t */\n\t\tbackground: transparent;\n\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-icon .ui-icon{\n\t\t\t * width: 18px;\n\t\t\t * height: 14px;\n\t\t\t * }\n\t\t\t */\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\n\t\t\t/* Taken from Bootstrap .close */\n\t\t\tfloat: right;\n\t\t\tfont-size: 20px;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 18px;\n\t\t\tcolor: #000000;\n\t\t\ttext-shadow: 0 1px 0 #ffffff;\n\t\t\topacity: 0.2;\n\t\t\tfilter: alpha(opacity=20);\n\t\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon:hover{\n\t\t\t/* Taken from Bootstrap .close:hover */\n\t\t\tcolor: #000000;\n\t\t\ttext-decoration: none;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.4;\n\t\t\tfilter: alpha(opacity=40);\n\t\t}\n\n\n/* IE9 fix - removes all filters */\n.qtip:not(.ie9haxors) div.qtip-content,\n.qtip:not(.ie9haxors) div.qtip-titlebar{\n\tfilter: none;\n\t-ms-filter: none;\n}\n\n\n.qtip .qtip-tip{\n\tmargin: 0 auto;\n\toverflow: hidden;\n\tz-index: 10;\n\n}\n\n\t/* Opera bug #357 - Incorrect tip position\n\thttps://github.com/Craga89/qTip2/issues/367 */\n\tx:-o-prefocus, .qtip .qtip-tip{\n\t\tvisibility: hidden;\n\t}\n\n\t.qtip .qtip-tip,\n\t.qtip .qtip-tip .qtip-vml,\n\t.qtip .qtip-tip canvas{\n\t\tposition: absolute;\n\n\t\tcolor: #123456;\n\t\tbackground: transparent;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip .qtip-tip canvas{ top: 0; left: 0; }\n\n\t.qtip .qtip-tip .qtip-vml{\n\t\tbehavior: url(#default#VML);\n\t\tdisplay: inline-block;\n\t\tvisibility: visible;\n\t}\n\n\n#qtip-overlay{\n\tposition: fixed;\n\tleft: 0; top: 0;\n\twidth: 100%; height: 100%;\n}\n\n\t/* Applied to modals with show.modal.blur set to true */\n\t#qtip-overlay.blurs{ cursor: pointer; }\n\n\t/* Change opacity of overlay here */\n\t#qtip-overlay div{\n\t\tposition: absolute;\n\t\tleft: 0; top: 0;\n\t\twidth: 100%; height: 100%;\n\n\t\tbackground-color: black;\n\n\t\topacity: 0.7;\n\t\tfilter:alpha(opacity=70);\n\t\t-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\n\t}\n\n\n.qtipmodal-ie6fix{\n\tposition: absolute !important;\n}\n","/**\n * Give Frontend Fonts SCSS\n *\n * Fonts are from icomoon and the src paths need to be relative to template directory.\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n@font-face {\n font-family: 'give-icomoon';\n src: url('../assets/fonts/icomoon.eot?kdnr3d');\n src: url('../assets/fonts/icomoon.eot?kdnr3d#iefix') format('embedded-opentype'),\n url('../assets/fonts/icomoon.woff?kdnr3d') format('woff'),\n url('../assets/fonts/icomoon.svg?kdnr3d#icomoon') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@mixin iconstyle() {\n font-family: 'give-icomoon';\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n // Better Font Rendering\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n[class^=\"give-icon-\"], [class*=\" give-icon-\"] {\n @include iconstyle();\n}\n\n.give-icon-lamp:before {\n content: \"\\e603\";\n}\n\n.give-icon-heart:before {\n content: \"\\e604\";\n}\n\n.give-icon-question:before {\n content: \"\\e602\";\n}\n\n.give-icon-info:before {\n content: \"\\e601\";\n}\n\n.give-icon-new-tab:before {\n content: \"\\ea7e\";\n}\n\n.give-icon-alert:before {\n content: \"\\f02d\";\n}\n\n.give-icon-help:before {\n content: \"\\e606\";\n}\n\n.give-icon-spinner:before {\n content: \"\\e605\";\n}\n\n.give-icon-spinner2:before {\n content: \"\\e607\";\n}\n\n.give-icon-plus:before {\n content: \"\\e040\";\n}\n\n.give-icon-minus:before {\n content: \"\\e041\";\n}\n\n.give-icon-locked:before {\n content: \"\\e600\";\n}\n\n.dashicons-give:before {\n @include iconstyle();\n content: \"\\e800\";\n}\n\n// --------------------------\n// Spinning Icons\n// --------------------------\n\n.fa-spin {\n -webkit-animation: spin 1000ms infinite linear;\n animation: spin 1000ms infinite linear;\n}\n\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n","@font-face {\n\tfont-family: 'give-icomoon';\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n@mixin admin_fonts() {\n\tfont-family: 'give-icomoon';\n\tsrc: url('../assets/fonts/icomoon.eot?kdnr3d');\n\tsrc: url('../assets/fonts/icomoon.eot?kdnr3d#iefix') format('embedded-opentype'),\n\turl('../assets/fonts/icomoon.woff?kdnr3d') format('woff'),\n\turl('../assets/fonts/icomoon.svg?kdnr3d#icomoon') format('svg');\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t// Better Font Rendering\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n// ---------------------------------\n// Donation form vertical tab icons.\n// ---------------------------------\n.give-metabox-tabs li {\n\n\t.give-icon:before {\n\t\t@include admin_fonts();\n\t\tfont-size: 12px;\n\t\tvertical-align: top;\n\t\tline-height: 20px;\n\t\tmargin: 0 5px 0 0;\n\t}\n\n\t.give-icon-default:before {\n\t\tcontent: \"\\e903\";\n\t}\n\n\t//Donation options tab.\n\t.give-icon-heart:before {\n\t\tcontent: \"\\e604\"; //this is a wp dashicon heart.\n\t}\n\t//Goal tab.\n\t.give-icon-target:before {\n\t\tcontent: \"\\e901\";\n\t}\n\t//Form display tab.\n\t.give-icon-display:before {\n\t\tcontent: \"\\e90c\";\n\t}\n\t//Form content tab.\n\t.give-icon-edit:before {\n\t\tcontent: \"\\e902\";\n\t}\n\t//Form terms tab.\n\t.give-icon-checklist:before {\n\t\tposition: relative;\n\t\ttop: 1px;\n\t\tcontent: \"\\e900\";\n\t}\n\t//Form offline donations tab.\n\t.give-icon-purse:before {\n\t\tcontent: \"\\e8df\";\n\t}\n\n}","/**\r\n * Give Forms SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n/*------------------------------------\r\nForms CPT\r\n--------------------------------------*/\r\n/* Hide conditional fields */\r\n.cmb2-id--give-set-price,\r\n.cmb2-id--give-levels-header,\r\n.cmb2-id--give-levels-header + .cmb-repeat-group-wrap,\r\n.cmb2-id--give-display-style,\r\n.post-type-give_forms .tablenav #post-query-submit,\r\n.give-hidden,\r\n.cmb2-id--give-form-content,\r\n.cmb2-id--give-reveal-label,\r\n.cmb2-id--give-custom-amount-minimum,\r\n.cmb2-id--give-custom-amount-text,\r\n.cmb2-id--give-offline-checkout-notes,\r\n.cmb-type-levels-id,\r\n#_give_donation_levels_repeat .cmb-group-title,\r\n#_give_donation_levels_repeat .cmb-row > .cmb-remove-group-row,\r\n#_give_donation_levels_repeat .cmb-row > .handlediv {\r\n\tdisplay: none;\r\n}\r\n\r\n/* Donation Levels Repeating Field */\r\n#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list > .cmb-row .cmb2-radio-list label {\r\n\tfont-size: 12px;\r\n}\r\n\r\n//-----------------------------\r\n// Table Rows\r\n//-----------------------------\r\ndiv.cmb-type-levels-repeater-header + div.cmb-repeat-group-wrap {\r\n\tpadding: 0 !important;\r\n\tmargin: 0 !important;\r\n\tmin-width: 100%;\r\n\tmax-width: 0;\r\n\r\n}\r\n\r\n//-----------------------------\r\n// Multilevel Repeater Header\r\n//-----------------------------\r\n.cmb2-id--give-levels-header {\r\n\tpadding: 10px 12px 0 !important;\r\n\tmargin: 0 !important;\r\n\tbackground: #F7F7F7;\r\n\tborder-bottom: none !important;\r\n\r\n\t.table-container {\r\n\t\tdisplay: table;\r\n\t\twidth: 100%;\r\n\r\n\t\tborder-top: 1px solid #e9e9e9;\r\n\t\tborder-bottom: 1px solid #e9e9e9;\r\n\t\tborder-left: 1px solid #e9e9e9;\r\n\r\n\t\t> .table-row {\r\n\t\t\tdisplay: table-row;\r\n\t\t\tbackground: #FCFCFC;\r\n\r\n\t\t\t> .table-cell {\r\n\t\t\t\tdisplay: table-cell;\r\n\t\t\t\tvertical-align: middle;\r\n\t\t\t\tpadding: 10px 15px;\r\n\t\t\t\tborder-right: 1px solid #e9e9e9;\r\n\t\t\t\t&.col-id {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n#_give_donation_levels_repeat {\r\n\tbackground: #F7F7F7;\r\n\tpadding: 0 1px 20px 12px;\r\n\tbox-sizing: border-box;\r\n\r\n\t.cmb-row, .inside {\r\n\t\tmargin: 0;\r\n\t}\r\n\t.cmb-remove-field-row {\r\n\t\tmargin: 3px 0 0;\r\n\r\n\t\t.button {\r\n\t\t\theight: 25px;\r\n\t\t\tpadding: 0 3px;\r\n\t\t}\r\n\t\tspan.dashicons-no {\r\n\t\t\tline-height: 1.15em;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.cmbhandle {\r\n\t\tdisplay: none;\r\n\t}\r\n\t.cmb-add-row {\r\n\t\tmargin: 12px 0 0;\r\n\t}\r\n\r\n}\r\n\r\n//---------------------------------------------------\r\n// Field One Offs\r\n//---------------------------------------------------\r\n.give-time-field {\r\n\twidth: 65px;\r\n}\r\n\r\n.give-money-field {\r\n\twidth: 75px;\r\n\tmargin-right: 0;\r\n\tmargin-left: 0;\r\n}\r\n\r\n.give-money-symbol {\r\n\tborder: 1px solid #DDD;\r\n\tbackground: #FCFCFC;\r\n\tmargin: 0;\r\n\tfont-size: 14px;\r\n\tpadding: 5px 8px;\r\n}\r\n\r\n.give-money-symbol-before {\r\n\tborder-right: 0;\r\n\tmargin-right: -4px;\r\n}\r\n\r\n.give-money-symbol-after {\r\n\t//border-left: 0;\r\n\tmargin-left: -1px;\r\n}\r\n\r\n.give_options_panel input[ type=\"text\"] {\r\n\tpadding: 5px;\r\n\twidth: 100%;\r\n}\r\n\r\ninput.give-text_small,\r\ninput.give-text-small {\r\n\twidth: 100px !important;\r\n}\r\n\r\ninput.give-text-medium,\r\ninput.give-text_medium {\r\n\twidth: 200px !important;\r\n}\r\n\r\n.give-underline {\r\n\ttext-decoration: underline;\r\n}\r\n\r\n.postbox-container .cmb-row {\r\n\tmargin: 0;\r\n\r\n\t.cmb-th label {\r\n\t\tpadding-left: 8px;\r\n\t}\r\n\r\n}\r\n\r\n//---------------------------------------------------\r\n// Responsive\r\n//---------------------------------------------------\r\n@media only screen and (min-width: 851px) {\r\n\r\n\t#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list {\r\n\t\t> .cmb-row {\r\n\t\t\tfloat: left;\r\n\t\t\tborder-bottom: none;\r\n\t\t\tpadding-right: 10px;\r\n\t\t\t> .cmb-th {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t\t> .cmb-td {\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.cmb-type-give-default-radio-inline .cmb-td {\r\n\t\tmargin-top: 5px;\r\n\t}\r\n\r\n}\r\n\r\n/* Smaller Resolution Desktops */\r\n@media only screen and (min-width: 851px) and (max-width: 1201px) {\r\n\r\n\t#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list {\r\n\r\n\t\t> .cmb-remove-field-row {\r\n\t\t\twidth: 100%;\r\n\t\t\tpadding-top: 0;\r\n\t\t}\r\n\t\t> .cmb-type-text-money {\r\n\t\t\twidth: 105px;\r\n\t\t}\r\n\t\tinput.cmb2-text-money {\r\n\t\t\twidth: 65px;\r\n\t\t}\r\n\r\n\t\t.give-multilevel-text-field {\r\n\t\t\twidth: 160px;\r\n\t\t}\r\n\t\t.cmb-type-radio-inline {\r\n\t\t\tmargin-left: 20px;\r\n\t\t}\r\n\r\n\t}\r\n\t.col-amount {\r\n\t\twidth: 70px;\r\n\t}\r\n\t.col-text {\r\n\t\twidth: 140px;\r\n\t}\r\n\t.col-sort {\r\n\t\tdisplay: none !important;\r\n\t}\r\n\t.give-money-field {\r\n\t\twidth: 55px;\r\n\t}\r\n}\r\n\r\n@media only screen and (min-width: 1201px) {\r\n\r\n\t#_give_donation_levels_repeat > .cmb-repeatable-grouping .cmb-field-list {\r\n\r\n\t\t> .cmb-remove-field-row {\r\n\t\t\tfloat: right;\r\n\t\t}\r\n\t\t> .cmb-row {\r\n\t\t\tpadding-right: 20px;\r\n\t\t}\r\n\t\t> .cmb-remove-field-row.cmb-row {\r\n\t\t\tpadding-right: 0;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.col-amount {\r\n\t\twidth: 93px;\r\n\t}\r\n\t.col-text {\r\n\t\twidth: 195px;\r\n\t}\r\n\t.col-sort {\r\n\t\twidth: 100px;\r\n\t}\r\n\t.give-multilevel-text-field {\r\n\t\twidth: 205px;\r\n\t}\r\n\r\n}\r\n\r\n//Small Resolution Repeater\r\n@media only screen and (max-width: 850px) {\r\n\tdiv.cmb-type-levels-repeater-header {\r\n\t\tdisplay: none !important;\r\n\t}\r\n}\r\n\r\n//-------------------------------------\r\n// Publish Metabox\r\n//-------------------------------------\r\n\r\n/*Shortcode Input */\r\n\r\n.shortcode-wrap {\r\n\tmargin: 1px 14px 12px 11px;\r\n\r\n\tlabel {\r\n\t\tmargin: 0 0 3px;\r\n\t\tdisplay: block;\r\n\t\tcursor: default;\r\n\t}\r\n\r\n\t.shortcode-input {\r\n\t\tmargin: 0;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n}\r\n\r\n//-------------------------------------\r\n// Content Options\r\n//-------------------------------------\r\n\r\n.cmb2-id--give-content-option,\r\n.cmb2-id--give-terms-option,\r\n.cmb2-id--give-offline-donation-enable-billing-fields-single,\r\n.cmb2-id--give-goal-option,\r\n.cmb2-id--give-customize-offline-donations {\r\n\tborder-bottom: none !important;\r\n\tmargin: 0 !important;\r\n}\r\n\r\n.cmb2-id--give-form-content,\r\n.cmb2-id--give-agree-label,\r\n.cmb2-id--give-offline-checkout-notes,\r\n.cmb2-id--give-set-goal,\r\n.cmb2-id--give-offline-donation-enable-billing-fields-single {\r\n\tborder-top: 1px solid #e9e9e9 !important;\r\n}\r\n\r\n/*-------------------------------------\r\nTerms and Conditions Metabox\r\n---------------------------------------*/\r\n\r\n.cmb2-id--give-agree-label,\r\n.cmb2-id--give-agree-text {\r\n\tdisplay: none;\r\n}\r\n\r\n/*-------------------------------------\r\nDashboard Columns\r\n-------------------------------------*/\r\n\r\ninput.shortcode-input {\r\n\twidth: 100%;\r\n}\r\n\r\n/*-------------------------------------\r\nASIDE\r\n-------------------------------------*/\r\n\r\n#side-sortables {\r\n\r\n\t.cmb-th label {\r\n\r\n\t\t&:after {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\r\n\t}\r\n\t.cmb2-id--give-show-register-form {\r\n\t\tpadding: 10px 0 0 !important;\r\n\t}\r\n\r\n\t.cmb2-wrap > .cmb-field-list > .cmb-row {\r\n\t\tpadding-top: 10px;\r\n\t}\r\n\r\n\t.cmb-row .cmb2-metabox-description {\r\n\t\tpadding-bottom: 0;\r\n\t}\r\n\r\n}\r\n\r\n.cmb2-metabox-description {\r\n\tfont-size: 13px;\r\n\tline-height: 1.5;\r\n\tdisplay: block;\r\n}\r\n\r\n//-------------------------------------\r\n// Tooltips\r\n//-------------------------------------\r\n.give-tooltip {\r\n\tmargin: 0 3px;\r\n\tpadding: 0;\r\n\tfont-size: 14px;\r\n\t@include easing-transition();\r\n\tcolor: transparentize($dark, 0.5);\r\n\tposition: relative;\r\n\ttop: 1px;\r\n\r\n\t&:hover {\r\n\t\tcolor: $dark;\r\n\t}\r\n\r\n}\r\n\r\n//-------------------------------------\r\n// Metabox Form\r\n// -------------------------------------\r\n#give-metabox-form-data {\r\n\r\n\t.inside {\r\n\t\tmargin: 0;\r\n\t\tpadding: 0;\r\n\t}\r\n\r\n\t.give-metabox-panel-wrap {\r\n\t\tbackground: #fff;\r\n\t\toverflow: hidden;\r\n\t}\r\n\r\n\t.give_options_panel {\r\n\t\tpadding-left: 170px;\r\n\r\n\t\t.give-field-wrap {\r\n\t\t\tpadding: 1em 20px 1em 162px !important;\r\n\t\t\tmargin: 0;\r\n\t\t\tborder-bottom: 1px solid #eee;\r\n\r\n\t\t\t> label, > span.give-field-label {\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: 135px;\r\n\t\t\t\tpadding: 0;\r\n\t\t\t\tmargin: 2px 0 0 -150px;\r\n\t\t\t\tline-height: 18px;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tfont-weight: 400;\r\n\t\t\t}\r\n\r\n\t\t\t.give-field-description {\r\n\t\t\t\tcolor: #aaaaaa;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tline-height: 18px;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tpadding-top: 10px;\r\n\t\t\t\tfont-style: italic;\r\n\t\t\t}\r\n\r\n\t\t\tul {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t}\r\n\r\n\t\t\t.mce-container iframe, textarea {\r\n\t\t\t\tmin-height: 250px !important;\r\n\t\t\t}\r\n\r\n\t\t\t.wp-editor-wrap {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.give-field-wrap:last-child {\r\n\t\t\tborder-bottom: 0;\r\n\t\t}\r\n\r\n\t\ttextarea.give-field {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\r\n\t\t.give-field-wrap:hover .give-field-row-actions {\r\n\t\t\tdisplay: block;\r\n\t\t}\r\n\r\n\t\t.give-field-wrap:last-child {\r\n\t\t\tborder-bottom: 0;\r\n\t\t}\r\n\r\n\t\t.give-inline-radio-fields {\r\n\t\t\tli {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t\tmargin-right: 15px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.give-repeatable-field-section {\r\n\t\t\tpadding: 10px;\r\n\t\t\tbackground: #f5f5f5;\r\n\r\n\t\t\t.give-repeatable-fields-section-wrapper {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tbackground-color: white;\r\n\t\t\t\tborder-collapse: collapse;\r\n\t\t\t}\r\n\r\n\t\t\t.give-row {\r\n\t\t\t\tborder-bottom: 15px solid #f5f5f5;\r\n\t\t\t\tbackground-color: white;\r\n\t\t\t}\r\n\r\n\t\t\t.give-template {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\r\n\t\t\t.give-row:last-child {\r\n\t\t\t\tborder-bottom: 10px solid #f5f5f5;\r\n\t\t\t}\r\n\r\n\t\t\t.give-column {\r\n\t\t\t\tpadding: 0;\r\n\t\t\t}\r\n\r\n\t\t\t.give-remove {\r\n\t\t\t\tfloat: right;\r\n\t\t\t\twidth: 36px;\r\n\t\t\t\theight: 36px;\r\n\t\t\t\tpadding: 0;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\tline-height: 34px;\r\n\t\t\t\tfont-size: 21px;\r\n\t\t\t\tfont-weight: 300;\r\n\t\t\t\tcursor: pointer;\r\n\t\t\t}\r\n\r\n\t\t\t.give-remove:hover {\r\n\t\t\t\tbackground-color: red;\r\n\t\t\t\tcolor: white;\r\n\t\t\t\twidth: 30px;\r\n\t\t\t\theight: 30px;\r\n\t\t\t\tborder-radius: 30px;\r\n\t\t\t\tmargin-top: 3px;\r\n\t\t\t\tline-height: 28px;\r\n\t\t\t}\r\n\r\n\t\t\t.give-row-head {\r\n\t\t\t\tborder-bottom: 1px solid #eee;\r\n\t\t\t\tcursor: move;\r\n\t\t\t\th2 {\r\n\t\t\t\t\ttext-align: left !important;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t.give-row.closed .toggle-indicator:before {\r\n\t\t\t\tcontent: \"\\f140\";\r\n\t\t\t}\r\n\r\n\t\t\t.give-add-repeater-field-section-row-wrap {\r\n\t\t\t\tbackground-color: #f5f5f5;\r\n\t\t\t}\r\n\r\n\t\t\t.give-add-repeater-field-section-row {\r\n\t\t\t\tmargin: 5px 5px;\r\n\t\t\t}\r\n\r\n\t\t\t.give-field-wrap:last-child {\r\n\t\t\t\tborder-bottom: 1px solid #eee;\r\n\t\t\t}\r\n\r\n\t\t\t.give-ui-placeholder-state-highlight {\r\n\t\t\t\tbackground-color: #68bb6c;\r\n\t\t\t}\r\n\r\n\t\t\t.give-repeater-field-name {\r\n\t\t\t\tborder: 0 !important;\r\n\t\t\t\tpadding: 0 !important;\r\n\t\t\t}\r\n\r\n\t\t\t.give-repeater-field-description {\r\n\t\t\t\tcolor: #aaaaaa;\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tline-height: 18px;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tpadding-bottom: 10px;\r\n\t\t\t\tfont-style: italic;\r\n\t\t\t}\r\n\r\n\t\t\t// Sortable jquery css fix.\r\n\t\t\t.ui-sortable-helper {\r\n\t\t\t\tdisplay: table !important;\r\n\t\t\t}\r\n\t\t\t.give-row.ui-sortable-helper {\r\n\t\t\t\tborder-bottom: 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//-------------------------------------\r\n// Metabox Tabs\r\n//-------------------------------------\r\n#give-metabox-form-data {\r\n\r\n\t.give-metabox-tabs {\r\n\t\tmargin: 0;\r\n\t\tmin-width: 170px;\r\n\t\tfloat: left;\r\n\t\tline-height: 1em;\r\n\t\tpadding: 0 0 10px;\r\n\t\tposition: relative;\r\n\t\tbackground-color: #fafafa;\r\n\t\tborder-right: 1px solid #eee;\r\n\t\tbox-sizing: border-box;\r\n\r\n\t\t&:after {\r\n\t\t\tcontent: \"\";\r\n\t\t\tdisplay: block;\r\n\t\t\twidth: 100%;\r\n\t\t\theight: 9999em;\r\n\t\t\tposition: absolute;\r\n\t\t\tbottom: -9999em;\r\n\t\t\tleft: 0;\r\n\t\t\tbackground-color: #fafafa;\r\n\t\t\tborder-right: 1px solid #eee;\r\n\t\t}\r\n\r\n\t\tli {\r\n\t\t\tmargin: 0;\r\n\t\t\tpadding: 0;\r\n\t\t\tdisplay: block;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\ta {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t\tpadding: 10px;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tbox-shadow: none;\r\n\t\t\t\ttext-decoration: none;\r\n\t\t\t\tline-height: 20px !important;\r\n\t\t\t\tborder-bottom: 1px solid #eee;\r\n\t\t\t\toverflow: hidden;\r\n\r\n\t\t\t\tspan.give-label {\r\n\t\t\t\t\twidth: 122px;\r\n\t\t\t\t\tdisplay: inline-block;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.give-metabox-sub-tabs li {\r\n\t\t\tbackground-color: #f1f1f1;\r\n\t\t\ta {\r\n\t\t\t\tborder-bottom-color: #e5e5e5;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tli.active {\r\n\t\t\t> a {\r\n\t\t\t\tcolor: #555;\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tbackground-color: #eee;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tli.has-sub-fields.active > a {\r\n\t\t\tbackground-color: #ddd;\r\n\t\t}\r\n\r\n\t\tli.has-sub-fields:not(.active):hover {\r\n\t\t\tul.give-metabox-sub-tabs {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tleft: 170px;\r\n\t\t\t\twidth: 170px;\r\n\t\t\t\tmax-height: 250px;\r\n\t\t\t\toverflow-y: scroll;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n// Icons only display for tight resolutions.\r\n@media only screen and (min-width: 851px) and (max-width: 1025px),\r\n(max-width: 550px) {\r\n\r\n\t#give-metabox-form-data {\r\n\t\tul.give-metabox-tabs {\r\n\t\t\tmin-width: 40px;\r\n\r\n\t\t\tli > a {\r\n\t\t\t\ttext-align: center;\r\n\t\t\t\t&:before {\r\n\t\t\t\t\tmargin-right: 0;\r\n\t\t\t\t\tfont-size: 15px;\r\n\t\t\t\t}\r\n\t\t\t\tspan {\r\n\t\t\t\t\tdisplay: none;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t.give_options_panel {\r\n\t\t\tpadding-left: 40px;\r\n\t\t}\r\n\r\n\t}\r\n\t//#give-metabox-form-data\r\n}\r\n\r\n//-------------------------------------\r\n// Export Form\r\n// -------------------------------------\r\n\r\n#give-export-payments {\r\n\t.give_forms_categories,\r\n\t.give_forms_tags {\r\n\t\tinput {\r\n\t\t\tcolor: #999;\r\n\t\t}\r\n\r\n\t\tmin-width: 250px;\r\n\t\tmargin: 0 0 10px 0;\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\tdiv.chosen-container:first-of-type {\r\n\t\tmargin-top: 10px;\r\n\t}\r\n}\r\n\r\n/*-------------------------------------\r\nDoc Links\r\n-------------------------------------*/\r\n\r\n.give-docs-link {\r\n\ttext-align: right;\r\n\tmargin-right: 15px;\r\n\r\n\ta {\r\n\t\tcolor: #999;\r\n\t\ttext-decoration: none;\r\n\t\tfont-style: italic;\r\n\r\n\t\t&:hover {\r\n\t\t\tcolor: rgb(0, 115, 170);\r\n\t\t}\r\n\t\tspan {\r\n\t\t\tfont-style: normal;\r\n\t\t}\r\n\t}\r\n}","/**\n * Give Add-ons SCSS\n *\n * @description Add-on Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n.type-download {\n float: left;\n margin: 0 1em 1em 0 !important;\n padding: 0;\n vertical-align: top;\n width: 280px;\n text-decoration: none;\n color: inherit;\n border: 1px solid #ddd;\n display: block;\n min-height: 365px;\n overflow: hidden;\n background: #f5f5f5;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .1);\n -webkit-transition-property: border, background, color;\n transition-property: border, background, color;\n -webkit-transition-duration: .05s;\n transition-duration: .05s;\n -webkit-transition-timing-function: ease-in-out;\n transition-timing-function: ease-in-out;\n position: relative;\n\n &:hover {\n\tborder: 1px solid #d1d1d1;\n }\n\n > .featured-img img {\n\tborder-bottom: 1px solid #ddd;\n }\n\n .addon-content {\n\t@include clearfix;\n\tpadding: 15px 20px;\n\n\t.addon-heading {\n\t margin: 0 0 10px;\n\t a {\n\t\toutline: none;\n\t\ttext-decoration: none;\n\t }\n\t}\n\n }\n\n .addon-footer-wrap {\n\tborder-top: 1px solid #ddd;\n\tposition: absolute;\n\tbottom: 2px;\n\tleft: 0;\n\twidth: 100%;\n\tbackground-color: #FFF;\n\tpadding: 15px 20px;\n }\n\n}\n\n.give-view-addons-all, .type-download {\n\n span.dashicons {\n\twidth: 16px;\n\theight: 16px;\n\tfont-size: 14px;\n\tmargin: 6px 0 0 0;\n }\n\n}\n\n.give-view-addons-all span.dashicons {\n margin-left: 3px;\n}\n","/**\n * Give Reports SCSS\n *\n * @description Payment History Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n//---------------------------------------------------------\n// Dashboard Widget\n//---------------------------------------------------------\n#give-dashboard-widgets-wrap {\n\n .inside {\n padding-top: 0;\n padding-bottom: 0;\n\n /* counteract extra padding in Income Report graph */\n .give_forms_page_give-reports & {\n padding-left: 0;\n }\n\n #give-graphs-filter {\n float:none;\n }\n }\n\n .postbox {\n margin-bottom: 10px;\n }\n\n table.reports-table {\n clear: none;\n }\n\n #give-date-range-options {\n float: left;\n\n > span {\n float: left;\n line-height: 30px;\n font-style: italic;\n padding: 0 5px 0 0;\n }\n\n }\n\n}\n\n\n#give-graphs-filter {\n float:right;\n\n .tablenav {\n margin: 0 0 0 17px;\n .actions {\n padding: 0;\n }\n }\n}\n\n//---------------------------------------------------------\n// Global Graph Styles\n//---------------------------------------------------------\n\n.give-graph {\n .y1Axis {\n color: #66bb6a !important;\n }\n .y2Axis {\n color: #546e7a !important;\n }\n}\n\n//---------------------------------------------------------\n//Donor Filter\n//---------------------------------------------------------\nbody.give_forms_page_give-reports, body.give_forms_page_give-payment-history {\n\n h1.nav-tab-wrapper, h2.nav-tab-wrapper {\n margin-bottom: 10px;\n }\n .actions {\n padding-top: 0;\n }\n\n .pagination-links {\n margin-left: 10px;\n }\n\n p.donor-search {\n margin-right: 10px;\n }\n\n .tablenav-right {\n\n .tablenav-pages {\n float: right;\n }\n #give-reports-view {\n margin-top: 0;\n }\n .actions {\n float: left;\n }\n\n }\n\n p.search-box {\n float: left;\n }\n\n .reports-table-nav.tablenav.top {\n width: 100%;\n float: none;\n margin: 0 0 10px;\n }\n\n .reports-forms-details-wrap.top {\n float: right;\n overflow: hidden;\n\n #give-reports-filter {\n float: left;\n }\n > .actions {\n padding-right: 0;\n }\n }\n\n .tablenav.bottom {\n margin-top: 10px;\n }\n\n h3.reports-earnings-title {\n margin: 7px 0 0;\n }\n\n .reports-views-wrap {\n padding: 3px 0 0;\n }\n\n .wrap.give-reports-donors-wrap {\n margin-right: 0;\n margin-bottom: 10px;\n }\n\n .widefat tbody td, .widefat tbody th {\n padding-top: 12px;\n padding-bottom: 12px;\n }\n\n}\n\n//---------------------------------------------------------\n//Export Options Styles\n//---------------------------------------------------------\nbody.give_forms_page_give-reports table.export-options-table {\n tbody td {\n padding: 20px 12px;\n vertical-align: top;\n }\n .give-export-form {\n position: relative;\n .notice-wrap {\n background-color: transparent;\n padding: 12px 12px 4px;\n margin: 2px 0 -16px -11px;\n overflow: auto;\n .spinner {\n margin: -2px -12px 8px 0;\n }\n }\n }\n\n span#give-start-wrap, span#give-end-wrap {\n input {\n width: 100px;\n }\n }\n\n}\n\n#export-donor-options-wrap {\n p {\n padding: 20px 0 0;\n margin: 0;\n font-weight: bold;\n }\n ul {\n max-width: 900px;\n overflow: hidden;\n\n li {\n margin: 0;\n padding: 0 5px 5px 0;\n box-sizing: border-box;\n float: left;\n width: 33%;\n }\n }\n\n}\n\n//---------------------------------------------------------\n//Recount Stats Form\n//---------------------------------------------------------\n\n#give-tools-recount-form {\n\n .notice-wrap {\n position: relative;\n min-height: 25px;\n margin: 10px -12px -12px;\n background: #EFEFEF;\n padding: 10px 12px 12px;\n border-top: 1px solid #E5E5E5;\n\n .give-progress {\n position: absolute;\n top: 15px;\n }\n\n .spinner {\n position: absolute;\n right: 14px;\n top: 13px;\n margin: 0;\n }\n\n #give-batch-success {\n margin-bottom: 6px;\n }\n\n }\n\n}\n\n//---------------------------------------------------------\n//Progress Bar Styles\n//---------------------------------------------------------\n.give-progress {\n height: 15px;\n width: 95%;\n border-radius: 4px;\n overflow: hidden;\n > div {\n height: 100%;\n width: 0;\n }\n\n}\n\n.admin-color-fresh .give-export-form .give-progress div, .give-export-form .give-progress div {\n background: #0073aa;\n}\n\n.admin-color-light .give-export-form .give-progress div {\n background: #888;\n}\n\n.admin-color-blue .give-export-form .give-progress div {\n background: #096484;\n}\n\n.admin-color-coffee .give-export-form .give-progress div {\n background: #c7a589;\n}\n\n.admin-color-ectoplasm .give-export-form .give-progress div {\n background: #a3b745;\n}\n\n.admin-color-midnight .give-export-form .give-progress div {\n background: #e14d43;\n}\n\n.admin-color-sunrise .give-export-form .give-progress div {\n background: #dd823b;\n}\n\n//---------------------------------------------------------\n//Tools\n//---------------------------------------------------------\n\n.recount-stats-controls form {\n display: inline;\n}\n\n.give-recount-stats-descriptions {\n margin: 8px 0 0;\n display: block;\n\n span {\n line-height: 24px;\n font-size: 13px;\n font-style: italic;\n font-weight: normal;\n color: #aaa;\n margin: 0;\n display: none;\n }\n}\n\n//---------------------------------------------------------\n//Payment Methods\n//---------------------------------------------------------\n.gateways-report-tablenav {\n .actions.bulkactions {\n padding-right: 0;\n }\n}\n\n//---------------------------------------------------------\n//Table List Styles\n//---------------------------------------------------------\n\ntable.give-table {\n\n td {\n vertical-align: middle;\n }\n td.row-title {\n h3 {\n margin: 0 0 0.4em;\n font-size: 1.2em;\n }\n p {\n font-size: 13px;\n font-style: italic;\n font-weight: normal;\n color: #aaa;\n margin: 0;\n }\n }\n\n}\n\n#give-graphs-filter > .tablenav {\n height: auto;\n}\n\n//---------------------------------------------------------\n//Logs\n//---------------------------------------------------------\n#give-logs-filter {\n .search-box {\n float: right;\n }\n .tablenav.top {\n float: left;\n clear: none;\n margin-top: 0;\n }\n}","/**\n * Give Admin Welcome SCSS\n *\n * @description Displays when user activates the plugin\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n */\n\n.welcome-h1 {\n display: inline-block;\n margin-right: 15px !important;\n}\n\n.about-wrap {\n h3 {\n margin: 1.5em 0 .6em;\n }\n\n img {\n border:none;\n }\n}\n\n.give-badge {\n padding-top: 150px;\n height: 52px;\n width: 185px;\n color: #FFF;\n font-weight: bold;\n font-size: 14px;\n text-align: center;\n text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);\n margin: 0 -5px;\n\n position: absolute;\n top: 0;\n right: 0;\n}\n\n.introduction {\n padding: 0 0 20px;\n margin: 0 0 20px;\n}\n\n//Feature section\n.feature-section {\n margin-top: 40px;\n\n span.dashicons {\n width: 16px;\n height: 16px;\n font-size: 14px;\n margin: 6px 0 0 0;\n }\n\n .feature-section-item {\n width: 48%;\n float: left;\n }\n\n div.last-feature {\n margin-right: 0;\n margin-left: 4%;\n }\n\n}\n\n//Get started\n[class^=\"dashboard_page_give-\"], [class*=\"dashboard_page_give-\"] {\n .about-text {\n min-height: 0;\n }\n}\n\n//Social Media\n.social-items-wrap {\n display: inline-block;\n > div {\n display: inline-block;\n }\n .twitter-item-wrap {\n margin: 0 20px 10px 0;\n }\n}\n\n//Credits\n.wp-person {\n img {\n border-radius: 50%;\n }\n a.web {\n margin: 17px 0 0;\n font-weight: bold;\n font-style: italic;\n }\n}\n\n//Newsletter\n.newsletter-intro {\n font-size: 13px;\n font-style: italic;\n color: #777;\n}\n\n.give-newsletter-form-wrap {\n margin: 10px 0 20px -5px;\n max-width: 700px;\n\n td {\n padding: 3px;\n }\n\n div.give-newsletter-confirmation {\n background: #fff;\n -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\n margin: 5px 10px 4px 5px;\n padding: 1px 12px;\n border-left: 4px solid #7ad03a;\n display: none;\n > p {\n margin: 0.5em 0;\n padding: 2px;\n }\n }\n\n}","/**\n * Give Logs SCSS\n *\n * @description Payment History Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n#give_donor_export_form {\n margin: 0 0 5px;\n}\n\n\n#give-payments-filter .give-donation-status {\n display: inline-block;\n}\n\n.column-status {\n .give-donation-status, .give-test-mode-transactions-label {\n display: inline-block;\n }\n .give-test-mode-transactions-label {\n margin: 0 5px;\n vertical-align: middle;\n }\n}\n","/**\r\n * Give Settings SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n */\r\n\r\n//--------------------------------------------------------------\r\n// General Settings\r\n//--------------------------------------------------------------\r\n\r\n.give-settings-page {\r\n\r\n\t.nav-tab-wrapper {\r\n\t\tmargin-bottom: 5px;\r\n\t\toverflow: visible;\r\n\t}\r\n\r\n\t.cmb2-wrap .cmb-type-checkbox input[type=\"checkbox\"] {\r\n\t\tdisplay: block;\r\n\t\tmargin-bottom: 5px;\r\n\t}\r\n\r\n\tdiv.give-submit-wrap {\r\n\t\tmargin: 20px 0;\r\n\t}\r\n\r\n\t.give_forms_page_give-payment-history .postbox .hndle {\r\n\t\tcursor: default;\r\n\t}\r\n\r\n\t.give-input-field {\r\n\t\twidth: 25em;\r\n\t}\r\n\r\n\ttable table input[type=\"text\"] {\r\n\t\twidth: 15em;\r\n\t}\r\n}\r\n\r\n.give-setting-tab-header {\r\n\tclear: both;\r\n\toverflow: hidden;\r\n\tmargin: 30px 0;\r\n\r\n\th2 {\r\n\t\tmargin-top: 8px;\r\n\t}\r\n}\r\n\r\n.give-radio-inline {\r\n\tul {\r\n\t\tmargin-top: 0;\r\n\t}\r\n\r\n\tli {\r\n\t\tdisplay: inline-block;\r\n\t\tmargin: 0 0 0 15px;\r\n\t}\r\n\r\n\tli:first-child {\r\n\t\tmargin-left: 0;\r\n\t}\r\n}\r\n\r\n// Tools page: fix ajax search user list hide bug\r\n.give-tools-setting-page .bulkactions {\r\n\toverflow: visible;\r\n}\r\n\r\n//Ugly but necessary to override WP core styles.\r\n.form-table td.give-radio-inline fieldset li > label {\r\n\tmargin: 5px 0 0 !important;\r\n}\r\n\r\np.give-field-description, .cmb2-metabox-description {\r\n\tcolor: #aaaaaa;\r\n\tfont-style: italic;\r\n\tfont-size: 13px !important;\r\n}\r\n\r\n.give-image-thumb {\r\n\tposition: relative;\r\n\tmargin-top: 14px;\r\n\r\n\tspan.give-delete-image-thumb {\r\n\t\tposition: absolute;\r\n\t\tbackground: red;\r\n\t\tcolor: white;\r\n\t\tborder-radius: 30px;\r\n\t\tleft: -10px;\r\n\t\ttop: -10px;\r\n\t}\r\n\r\n\timg {\r\n\t\tmax-width: 400px;\r\n\t\tborder: 4px solid white;\r\n\t}\r\n}\r\n\r\n.cmb-type-give-title label,\r\n.give-setting-tab-header h2 {\r\n\tfloat: left;\r\n\tdisplay: inline-block;\r\n\twidth: 220px;\r\n\tfont-style: italic;\r\n\tcolor: #AAA;\r\n\tmargin: 0;\r\n\tfont-size: 14px;\r\n}\r\n\r\n.postbox-container #_give_donation_levels_repeat > .cmb-repeatable-grouping:not(:last-of-type) {\r\n\tborder-bottom: 1px solid #e9e9e9;\r\n\tborder-top: none;\r\n}\r\n\r\n.cmb-type-enabled-gateways .cmb-td > p:first-of-type {\r\n\tdisplay: none;\r\n}\r\n\r\n// CMB2 Checkbox Revised Styles\r\n.cmb-type-checkbox .cmb-td {\r\n\twidth: 80%;\r\n\tlabel {\r\n\t\tfont-size: 13px;\r\n\t}\r\n}\r\n\r\n/* Responsive Settings Rows */\r\n.give_settings {\r\n\t.cmb2-wrap .cmb-row {\r\n\t\tdisplay: table-row;\r\n\t\t> .cmb-th, > .cmb-td {\r\n\t\t\tdisplay: table-cell;\r\n\t\t\tfloat: none;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/* Custom Title Separators */\r\n.cmb2-id-give-title {\r\n\tlabel {\r\n\t\tfont-style: italic;\r\n\t\tcolor: #AAA;\r\n\t\tcursor: default;\r\n\t}\r\n\t> div.cmb-th {\r\n\t\tpadding-bottom: 10px;\r\n\t}\r\n\t> div.cmb-td {\r\n\t\tpadding-bottom: 5px;\r\n\t}\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// Payment Gateways\r\n//--------------------------------------------------------------\r\n.give-payment-gatways-list li.ui-sortable-handle {\r\n\r\n\tspan.give-drag-handle {\r\n\t\tpadding: 3px 4px 0 0;\r\n\t\tfont-size: 15px;\r\n\t\tfont-weight: normal;\r\n\t\tcolor: #bdbdbd;\r\n\t\tcursor: move;\r\n\r\n\t\t&:hover {\r\n\t\t\tcolor: #333;\r\n\t\t}\r\n\r\n\t}\r\n\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// Emails\r\n//--------------------------------------------------------------\r\n\r\n.give-email-tags-wrap {\r\n\tmargin: 5px 0 0;\r\n\tcode {\r\n\t\tfont-style: normal;\r\n\t\tpadding: 1px 2px;\r\n\t\tfont-size: 12px;\r\n\t}\r\n\tspan {\r\n\t\tdisplay: block;\r\n\t\tcolor: #AAA;\r\n\t\tfont-style: italic;\r\n\t\tmargin: 0 0 2px;\r\n\t\tfont-size: 13px;\r\n\t}\r\n\t.give_price_tag {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// System Info page styles\r\n//--------------------------------------------------------------\r\n\r\n#system-info-textarea {\r\n\twidth: 800px;\r\n\theight: 600px;\r\n\tfont-family: Menlo, Monaco, monospace;\r\n\tbackground: #FFF;\r\n\twhite-space: pre;\r\n\toverflow: auto;\r\n\tdisplay: block;\r\n\t/*rtl:ignore*/\r\n\tdirection: ltr;\r\n}\r\n\r\n#give-download-sysinfo {\r\n\tmargin: 0;\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// API\r\n//--------------------------------------------------------------\r\n\r\n.cmb2-id-api {\r\n\r\n\t.cmb-td {\r\n\t\tpadding: 0;\r\n\t}\r\n\ttable th {\r\n\t\tpadding: 10px 8px;\r\n\t}\r\n\r\n\t.give-ajax-user-search {\r\n\t\tpadding: 3px 5px;\r\n\r\n\t}\r\n\r\n}\r\n\r\n.give_user_search_wrap {\r\n\tposition: relative;\r\n\toverflow: visible;\r\n}\r\n\r\n.give_user_search_results {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttop: 27px;\r\n\tz-index: 100;\r\n\r\n\ta.give-ajax-user-cancel {\r\n\t\tposition: absolute;\r\n\t\tright: 6px;\r\n\t\ttop: 2px;\r\n\t}\r\n\tul {\r\n\t\tpadding: 10px 10px 4px;\r\n\t\tmargin: 0;\r\n\t\tbackground: #f0f0f0;\r\n\t\tborder: 1px solid #DFDFDF;\r\n\t\twidth: 300px;\r\n\t\tmax-height: 200px;\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\r\n}\r\n\r\n#api {\r\n\r\n\t.tablenav .actions {\r\n\t\toverflow: visible;\r\n\t}\r\n\r\n}\r\n\r\na.give-delete {\r\n\tcolor: #a00;\r\n}\r\n\r\n//--------------------------------------------------------------\r\n// License\r\n//--------------------------------------------------------------\r\n.give-settings-wrap-licenses {\r\n\t.give-license-deactivate {\r\n\t\tmargin: 1px 0 0 10px;\r\n\t\theight: 30px;\r\n\t}\r\n\r\n\t.give-license-field {\r\n\t\tbackground: #FFF url('../images/close.png') no-repeat;\r\n\t\tbackground-position: 98.5% center;\r\n\t\tbackground-size: 18px;\r\n\t}\r\n\r\n\t.give-license-active, .give-license-active:focus {\r\n\t\tbackground-image: url('../images/tick.png');\r\n\t\tbackground-color: #FFF;\r\n\t\tbackground-repeat: no-repeat;\r\n\t\tbackground-position: 98.5% center;\r\n\t\toutline: none;\r\n\t\tbackground-size: 16px;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n}\r\n\r\n/* Addon grid design */\r\n.give-settings-page {\r\n\tmargin-top: 20px;\r\n\r\n\t.give-settings-wrap-licenses {\r\n\t\tdisplay: block;\r\n\t\tposition: relative;\r\n\t\tfloat: left;\r\n\t\twidth: 30.5%;\r\n\t\tmin-height: 180px;\r\n\t\tmargin: 20px 1% 20px 0;\r\n\t}\r\n\r\n\t.give-license-key {\r\n\t\tlabel {\r\n\t\t\tmargin: 0 0 0 10px;\r\n\t\t\tpadding: 10px 0;\r\n\t\t\tdisplay: block;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tfont-weight: 600;\r\n\t\t\tcursor: default;\r\n\t\t}\r\n\t}\r\n\r\n\t.give-license-block {\r\n\t\tmargin: 0 10px;\r\n\t}\r\n\r\n\tinput[type=\"text\"].give-license-field,\r\n\tinput[type=\"password\"].give-license-field {\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.give-license-block input[type=\"submit\"] {\r\n\t\tposition: absolute;\r\n\t\ttop: 3px;\r\n\t\tright: 10px;\r\n\t\theight: 24px;\r\n\t\tline-height: 22px;\r\n\t\tpadding: 0 8px 1px;\r\n\t\tfont-size: 11px;\r\n\t}\r\n\r\n\t//License status notice.\r\n\t.give-license-status-notice {\r\n\t\tbackground: #fff;\r\n\t\tborder-left: 4px solid #fff;\r\n\t\t-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\r\n\t\tbox-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\r\n\t\tmargin: 5px 0 2px;\r\n\t\tpadding: 1px 12px;\r\n\r\n\t\tp {\r\n\t\t\tpadding: 10px 0;\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\r\n\t\ta {\r\n\t\t\tcolor: #444;\r\n\t\t\tcursor: pointer;\r\n\t\t\t&:hover {\r\n\t\t\t\ttext-decoration: none;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-expires-soon {\r\n\t\tborder-color: #00a0d2;\r\n\t}\r\n\r\n\t//Inactive or Expired.\r\n\t.give-license-status-notice.give-inactive,\r\n\t.give-license-status-notice.give-license-expired {\r\n\t\tborder-color: #e24e4e;\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-error,\r\n\t.give-license-status-notice.give-license-no_activations_left,\r\n\t.give-license-status-notice.give-license-missing,\r\n\t.give-license-status-notice.give-license-invalid,\r\n\t.give-license-status-notice.give-license-site_inactive,\r\n\t.give-license-status-notice.give-license-item_name_mismatch {\r\n\t\tborder-color: orange;\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-lifetime-notice,\r\n\t.give-license-status-notice.give-license-expiration-date {\r\n\t\tborder-color: #46b450;\r\n\t}\r\n\r\n\t.give-license-status-notice.give-license-expires-soon a:hover,\r\n\t.give-license-status-notice.give-license-expired a:hover {\r\n\t\ttext-decoration: none;\r\n\t}\r\n}\r\n\r\n/* Responsive fixes: Addon grid design */\r\n@media screen and (max-width: 1100px) {\r\n\t.give-settings-page .give-settings-wrap-licenses {\r\n\t\twidth: 45%;\r\n\t\tmin-height: 150px;\r\n\t}\r\n}\r\n\r\n@media screen and (max-width: 600px) {\r\n\t.give-settings-page .give-settings-wrap-licenses {\r\n\t\twidth: 100%;\r\n\t\tmax-width: 320px;\r\n\t}\r\n}\r\n\r\n/* Tables */\r\n\r\n.give-table {\r\n\r\n\tthead {\r\n\t\tth {\r\n\t\t\tpadding: 8px 10px !important;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n//Fix double <hr>s for change to `give_title` in 1.3.5\r\n.give_settings .cmb-td hr + hr {\r\n\tdisplay: none;\r\n}\r\n\r\n//Set a min-height for TinyMCE so it's not too small when hidden in a tab and then revealed\r\n.post-type-give_forms .mce-container iframe, .post-type-give_forms .wp-editor-area {\r\n\tmin-height: 400px;\r\n}\r\n\r\n// Widget Page\r\n.give-field-description {\r\n\tcolor: #aaaaaa;\r\n\tfont-style: italic;\r\n\tmargin: 0;\r\n\tpadding-top: .5em;\r\n}\r\n\r\n// Setting page tab\r\nh2.give-nav-tab-wrapper {\r\n\toverflow: hidden;\r\n\theight: 35px;\r\n}\r\n\r\n@media screen and (max-width: 600px) {\r\n\t.give-nav-tab-wrapper {\r\n\t\tposition: relative;\r\n\t\tpadding-top:0 !important;\r\n\r\n\t\t> a {\r\n\t\t\twidth: 100%;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t\tmargin:0;\r\n\t\t\t&:hover {\r\n\t\t\t\tborder-bottom: 1px solid #ccc;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiv.give-sub-nav-tab-wrapper {\r\n\t\t\tposition: absolute;\r\n\t\t\ttop:0;\r\n\t\t\tright:0;\r\n\r\n\t\t\t#give-show-sub-nav {\r\n\t\t\t\theight: 28px;\r\n\t\t\t\twidth: 30px;\r\n\t\t\t\tborder-radius: 0;\r\n\t\t\t\tmargin:0;\r\n\t\t\t\t> span.dashicons {\r\n\t\t\t\t\tmargin: 6px auto 0;\r\n\t\t\t\t\tdisplay: block;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tnav.give-sub-nav-tab {\r\n\t\t\t\ttop:35px;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\n.give-sub-nav-tab-wrapper {\r\n\tposition: relative;\r\n\tdisplay: inline-block;\r\n\tz-index: 9999;\r\n\tfloat: left;\r\n\r\n\tnav.give-sub-nav-tab {\r\n\t\tborder: 1px solid #ccc;\r\n\t\tborder-bottom: 0;\r\n\t\tposition: absolute;\r\n\t\ttop: 32px;\r\n\t\tright: 0;\r\n\r\n\t\ta {\r\n\t\t\tfloat: left;\r\n\t\t\tbackground: white;\r\n\t\t\tpadding: 6px 10px;\r\n\t\t\tclear: both;\r\n\t\t\ttext-decoration: none;\r\n\t\t\tborder-bottom: 1px solid #ccc;\r\n\t\t\tmin-width: 170px;\r\n\t\t\tcolor: #555;\r\n\t\t\tfont-size: 14px;\r\n\t\t}\r\n\r\n\t\ta:hover {\r\n\t\t\tbackground: #e5e5e5;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// By default hide setting tab wrapper.\r\n.give-sub-nav-tab-wrapper{\r\n\tdisplay:none;\r\n}\r\n\r\n#give-show-sub-nav {\r\n\ttext-decoration: none;\r\n\tpadding: 3px 4px;\r\n\tborder-bottom: 1px solid #ccc;\r\n\tline-height: 0;\r\n\tbackground: white;\r\n\tborder-radius: 4px;\r\n margin-top:5px;\r\n\r\n\t> span.dashicons {\r\n font-size:16px;\r\n height:16px;\r\n width:16px;\r\n\t}\r\n}\r\n\r\n#give-show-sub-nav:hover, #give-show-sub-nav:active {\r\n\toutline: none;\r\n\tbox-shadow: inset 0px 0px 4px #ddd;\r\n}","/**\r\n * Give Payment History SCSS\r\n *\r\n * @description Payment History Styles\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n#give-payment-filters, .give-submit-wrap {\r\n clear: both;\r\n background: #f5f5f5;\r\n border-color: #dfdfdf;\r\n overflow: auto;\r\n margin: 8px 0;\r\n padding: 12px;\r\n border-width: 1px;\r\n border-style: solid;\r\n font-size: 13px;\r\n line-height: 2.1em;\r\n}\r\n\r\n#give-payment-filters {\r\n p {\r\n color: #777;\r\n }\r\n ul.subsubsub {\r\n margin-bottom: 8px;\r\n }\r\n label {\r\n font-style: italic;\r\n margin: 0 10px;\r\n\r\n &.give-start-date-label {\r\n margin-left: 5px;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n#give-payments-filter {\r\n ul.subsubsub {\r\n margin-bottom: 12px;\r\n }\r\n .tablenav.top {\r\n float: none;\r\n .bulkactions {\r\n margin-top: 1px;\r\n padding-top: 0;\r\n }\r\n\r\n }\r\n\r\n .give-email-column-value {\r\n font-size: 14px;\r\n font-weight: bold;\r\n }\r\n\r\n #the-list .check-column input {\r\n margin-top: 1px;\r\n }\r\n\r\n .column-details {\r\n width: 50px;\r\n }\r\n\r\n .column-amount {\r\n width: 120px;\r\n }\r\n\r\n}\r\n\r\ntr.status-refunded td {\r\n background: #cecece;\r\n border-top-color: #ccc;\r\n}\r\n\r\n.wp-list-table.forms th#date {\r\n width: 140px;\r\n}\r\n\r\n.give-mobile-link {\r\n line-height: 32px;\r\n vertical-align: middle;\r\n}\r\n\r\n.give-mobile-link img {\r\n max-width: 80%;\r\n height: auto;\r\n float: left;\r\n}\r\n\r\n//------------------------------------\r\n// Status Colors\r\n//------------------------------------\r\n\r\n.give-donation-status {\r\n > span {\r\n display: inline-block;\r\n width: 12px;\r\n height: 12px;\r\n position: relative;\r\n top: 1px;\r\n margin: 0;\r\n padding: 0;\r\n border-radius: 50%;\r\n background: #888;\r\n line-height: 16px;\r\n }\r\n\r\n //Pending\r\n &.status-pending > span {\r\n background-color: $orange;\r\n }\r\n\r\n //Complete\r\n &.status-complete > span, &.status-publish > span {\r\n background-color: $status-complete;\r\n }\r\n\r\n //Refunded\r\n &.status-refunded > span {\r\n background-color: $status-default;\r\n }\r\n\r\n &.status-failed > span {\r\n background-color: $red;\r\n }\r\n\r\n &.status-abandoned > span {\r\n background-color: $dark;\r\n }\r\n\r\n &.status-revoked > span {\r\n background-color: $status-revoked;\r\n }\r\n\r\n &.status-subscription > span, &.status-renewal > span, &.status-give_subscription > span {\r\n background-color: $status-subscription;\r\n }\r\n\r\n}\r\n\r\n//Test Payment Label\r\n#test-payment-label {\r\n @include give-label();\r\n background-color: $orange;\r\n margin: 0 15px;\r\n vertical-align: middle;\r\n}\r\n\r\n//ID & link field\r\n#give-payments-filter {\r\n\r\n .give-payment-id {\r\n @include give-label();\r\n font-weight: normal;\r\n @extend .give-item-label-gray;\r\n }\r\n\r\n .column-details {\r\n padding-right: 30px;\r\n }\r\n\r\n .give-donation-status {\r\n display: inline-block;\r\n }\r\n\r\n}\r\n\r\n//Payment View Metabox\r\n#give-order-update {\r\n .give-donation-status {\r\n display: inline-block;\r\n float: none;\r\n margin: 0 10px;\r\n position: relative;\r\n top: 3px;\r\n }\r\n}\r\n\r\n//Donation Column\r\n.column-donation_form {\r\n .donation-level-text-wrap {\r\n font-style: italic;\r\n display: block;\r\n }\r\n}\r\n\r\n/*---------------------\r\nResponsiveness\r\n---------------------------*/\r\n@media handheld, only screen and (max-width: 640px) {\r\n .wp-list-table.forms th {\r\n width: auto !important;\r\n }\r\n}\r\n\r\n.download_page_give-payment-history .ui-dialog .ui-dialog-titlebar-close span {\r\n margin-left: -8px;\r\n margin-top: -8px;\r\n}\r\n\r\n/* Payment Details\r\n-------------------------------------------------------------- */\r\n.give-admin-box .label {\r\n font-weight: 600;\r\n}\r\n\r\n.give-admin-box-inside {\r\n margin: 0;\r\n padding: 3px 10px;\r\n clear: both;\r\n border-bottom: 1px solid #eee;\r\n}\r\n\r\n.give-admin-box-inside .strong {\r\n font-weight: 600;\r\n}\r\n\r\n.give-payment-fees .fee-label {\r\n font-weight: normal;\r\n color: #666;\r\n}\r\n\r\n.give-admin-box .right {\r\n float: right;\r\n}\r\n\r\n#give-order-update .inside,\r\n#give-order-details .inside {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n#give-order-update input.give_datepicker {\r\n width: 180px;\r\n}\r\n\r\n#give-order-update input[type=\"number\"].give-payment-time-hour,\r\n#give-order-update input[type=\"number\"].give-payment-time-min {\r\n width: 50px;\r\n}\r\n\r\n.give-admin-box-inside:last-child {\r\n border-bottom: 0;\r\n}\r\n\r\n#give-edit-order-form .data-payment-key {\r\n word-break: break-all;\r\n}\r\n\r\n.give-order-update-box #major-publishing-actions .button-secondary {\r\n margin-right: 10px;\r\n}\r\n\r\n#give-donation-overview th {\r\n text-align: left;\r\n}\r\n\r\n#give-donation-overview .give-select-chosen {\r\n width: 196px;\r\n}\r\n\r\n#give-donation-overview ul,\r\n#give-order-address-country-wrap select,\r\n#give-donor-details .order-data-address input,\r\n#give-edit-order-form .column input,\r\n#give-donor-details .order-data-column p.data input {\r\n clear: both;\r\n display: block;\r\n}\r\n\r\n.give-order-data input.small-text {\r\n margin: 0;\r\n}\r\n\r\n#give-order-update span.label {\r\n display: inline;\r\n width: 50px;\r\n}\r\n\r\n.give-order-update-box .button-primary {\r\n margin-right: 0;\r\n}\r\n\r\n#give-edit-order-form .column .description {\r\n padding-right: 10px;\r\n}\r\n\r\n#give-edit-order-form .column,\r\n#give-donation-overview .row > ul > li,\r\n#give-donation-overview .inside > ul > li {\r\n display: inline-block;\r\n position: relative;\r\n vertical-align: top;\r\n}\r\n\r\n#give-donation-overview ul {\r\n font-size: 0;\r\n\r\n li {\r\n font-size: 13px;\r\n\r\n &.actions {\r\n text-align: right;\r\n min-width: 200px;\r\n }\r\n\r\n &.remove {\r\n text-align: right;\r\n }\r\n\r\n }\r\n\r\n .row {\r\n padding: 12px;\r\n border-bottom: 1px solid #eee;\r\n }\r\n\r\n}\r\n\r\n#give-order-data .data span {\r\n color: #666;\r\n font-weight: 600;\r\n}\r\n\r\ninput.give-price-field {\r\n width: 80px;\r\n padding: 3px 5px;\r\n}\r\n\r\n.give_forms_page_give-payment-history.js .postbox .hndle {\r\n cursor: default;\r\n}\r\n\r\n//------------------------------------------\r\n//Payment Notes Section\r\n//------------------------------------------\r\n\r\n#give-payment-notes {\r\n textarea {\r\n min-height: 150px;\r\n }\r\n #give-add-payment-note {\r\n margin: 6px 0 15px;\r\n }\r\n\r\n}\r\n\r\n//------------------------------------------\r\n//Edit Order Form\r\n//------------------------------------------\r\n\r\n#give-billing-details {\r\n\r\n .column > div {\r\n margin: 0 0 10px;\r\n }\r\n\r\n label {\r\n display: block;\r\n }\r\n\r\n .column-container {\r\n padding: 5px 0 10px;\r\n }\r\n\r\n input[type=\"text\"] {\r\n width: 95%;\r\n }\r\n\r\n .chosen-container {\r\n width: 98% !important;\r\n }\r\n\r\n}\r\n\r\n//------------------------------------------\r\n//Responsive\r\n//------------------------------------------\r\n\r\n@media screen and (min-width: 1200px) {\r\n #give-edit-order-form .column {\r\n width: 33%;\r\n }\r\n\r\n #give-donation-overview.columns-4 li.actions {\r\n width: 25%;\r\n margin-top: 0;\r\n margin-right: 0;\r\n }\r\n\r\n}\r\n\r\n@media screen and (max-width: 1199px) {\r\n #give-edit-order-form .column {\r\n width: 49%;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 782px) {\r\n .order-data-column input[type=\"email\"] {\r\n padding: 6px 10px;\r\n }\r\n}\r\n\r\n//------------------------------------------\r\n//Donation Details\r\n//------------------------------------------\r\n#give-donor-details .inside, #give-donation-overview .inside {\r\n margin-top: 0;\r\n}\r\n\r\n.give_forms_page_give-payment-history #give-dashboard-widgets-wrap #side-sortables {\r\n padding-top: 0;\r\n}","/**\n * Give Admin Dashboard SCSS\n *\n * @description Styles the Give dashboard widget\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n.give-dashboard-widget {\n\n .give-dashboard-today {\n\ttext-align: center;\n\n\t.give-dashboard-date-today {\n\t margin: 10px 0 0;\n\t padding: 0;\n\t}\n\n\t.give-dashboard-happy-day {\n\t padding: 3px;\n\t margin: 0;\n\t}\n\n\t.give-dashboard-today-earnings {\n\t font-size: 42px;\n\t color: #4ead61;\n\t font-weight: bold;\n\t margin: 15px 0 0;\n\t line-height: 1;\n\t}\n\n\t.give-donations-today {\n\t font-size: 18px;\n\t font-weight: bold;\n\t margin: 0 0 30px;\n\t padding: 4px 0 1px;\n\t}\n\n\t.give-last-seven {\n\t font-size: 14px;\n\t font-weight: bold;\n\t padding: 0;\n\t margin: 0 0 30px;\n\t}\n\n }\n\n //Table Stats\n .give-table-stats {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin: 0;\n\ttable-layout: fixed;\n\tborder-top: 1px solid #ececec;\n\tborder-spacing: 0;\n\n\t.give-dashboard-stat-total, .give-dashboard-stat-total-label {\n\t padding: 0;\n\t margin: 0;\n\t}\n\n\t.give-dashboard-stat-total {\n\t color: #4ead61;\n\t font-weight: bold;\n\t font-size: 16px;\n\t}\n\n }\n\n}\n\n//Fancy borders\n#give_dashboard_sales {\n\n > .inside {\n\tpadding: 0;\n }\n\n .give-table-stats {\n\ttd {\n\t padding: 10px 0;\n\t}\n\ttd:first-of-type {\n\t border-right: 1px solid #ececec;\n\t}\n\ttr#give-table-stats-tr-1 td {\n\t border-bottom: 1px solid #ececec;\n\t}\n }\n\n}\n\n//At a Glance Widget\n#dashboard_right_now {\n .give-forms-count:before {\n\t@include iconstyle();\n\tfont-size: 18px;\n\twidth: 18px;\n\theight: 18px;\n\tcontent: \"\\e800\";\n }\n}","/**\n * Give Forms SCSS\n *\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n//--------------------------------------------------------------\n// Donors Listing Page Style\n//--------------------------------------------------------------\n.give_forms_page_give-donors {\n .wrap > h2 {\n\tmargin-bottom: 15px;\n }\n\n .nav-tab-wrapper .dashicons {\n position: relative;\n top:2px;\n margin: 0 3px 0 0;\n }\n\n #give-donors-filter {\n\tposition: relative;\n\tp.search-box {\n\t float: left;\n\t margin: 0;\n\t}\n }\n\n .tablenav.top {\n\tfloat: right;\n\tclear: none;\n }\n}\n\n//--------------------------------------------------------------\n// Donor Styles\n//--------------------------------------------------------------\n#give-customer-card-wrapper {\n margin-left: -1px;\n z-index: 2;\n min-height: 200px;\n\n\n input {\n\tfont-weight: normal;\n }\n\n .customer-section {\n\tborder-bottom: 1px solid #eee;\n\tmargin-bottom: 10px;\n }\n\n .customer-section table {\n\tmargin-bottom: 0;\n }\n\n > div:first-child {\n\tpadding-top: 20px;\n }\n\n > div:last-child {\n\tpadding-bottom: 20px;\n\tborder: none;\n }\n\n //AVATAR\n .avatar-wrap {\n\tpadding: 0 15px 15px 0;\n\ttext-align: center;\n\tfloat: left;\n\n\timg {\n\t border-radius: 3px;\n\t}\n\n }\n\n a.delete {\n\ttext-decoration: none;\n\tcolor: #ff0000;\n\tmargin-right: 5px;\n }\n\n //Donor Header (non-avatar content)\n .donor-bio-header {\n\n\t.customer-since {\n\t margin: 10px 0;\n\t font-size: 16px;\n\t}\n\n\t.customer-id {\n display: inline-block;\n\t font-size: 24px;\n\t font-weight: 600;\n\t margin-right: 10px;\n\t}\n\n .customer-name-wrap {\n display: inline-block;\n }\n\n\t.customer-edit-link {\n\t margin-bottom: 15px;\n\t}\n\n }\n\n}\n\n.customer-main-wrapper {\n clear: both;\n margin: 0 0 20px;\n\n @media(max-width: 655px) {\n\twidth: 100%;\n }\n\n table {\n\tmargin: 0;\n }\n\n input {\n\twidth: 200px;\n }\n\n}\n\n//Donor Summary\n#donor-summary {\n padding: 0 20px;\n\n &:after {\n\tfont-family: \"dashicons\";\n\tcontent: \"\\f110\";\n\tposition: absolute;\n\ttop: 10px;\n\tright: 10px;\n\tfont-size: 100px;\n\tcolor: #F0F0F0;\n\tz-index: 0;\n }\n\n}\n#give-customer-card-wrapper .customer-address-wrapper {\n width: 202px;\n\n\tspan[data-key=\"line2\"] {\n\t\tdisplay: table;\n\t\tclear: both;\n\t}\n}\n\n#give-customer-card-wrapper .customer-address-wrapper select {\n width: 200px;\n}\n\n#give-customer-card-wrapper .customer-info {\n min-height: 185px;\n}\n\n#give-customer-card-wrapper .info-wrapper {\n min-height: 125px;\n}\n\n.customer-info .customer-name {\n font-size: 24px;\n font-weight: 600;\n}\n\n.disconnect-user a {\n font-size: 12px;\n font-weight: normal;\n text-decoration: none;\n}\n\n#customer-edit-actions {\n text-align: center;\n margin-bottom: 20px;\n line-height: 28px;\n}\n\n#customer-edit-actions .button-secondary {\n margin-right: 10px;\n}\n\n#give-customer-card-wrapper .edit-item {\n display: none;\n}\n\n#give-customer-card-wrapper .give_user_search_results {\n left: 1px;\n top: 16px;\n}\n\n#give-customer-card-wrapper .give_user_search_results ul {\n width: 200px\n}\n\n#customer-stats-wrapper {\n margin: 0 auto;\n text-align: center;\n padding: 15px;\n ul {\n\tmargin: 0;\n\tpadding: 0;\n\toverflow: hidden;\n\tli {\n\t width: 50%;\n\t float: left;\n\t line-height: 22px;\n\t font-size: 14px;\n\t margin: 0;\n\t}\n\n }\n\n a {\n\ttext-decoration: none;\n }\n}\n\n#customer-stats-wrapper .dashicons {\n color: #888;\n}\n\n#customer-tables-wrapper table {\n width: 100%;\n text-align: center;\n}\n\n#customer-tables-wrapper th {\n text-align: center;\n}\n\n#customer-tables-wrapper .donations tr > th:first-child,\n#customer-tables-wrapper .donations tr > td:first-child,\n#customer-tables-wrapper .emails tr > th:first-child,\n#customer-tables-wrapper .emails tr > td:first-child {\n text-align: left;\n}\n\n#customer-tables-wrapper .donations tr > td:only-child {\n text-align: center;\n}\n\n#customer-notes-wrapper {\n min-height: 50px;\n}\n\n.customer-notes-header span, .customer-notes-header img {\n font-weight: 600;\n line-height: 30px;\n vertical-align: middle;\n}\n\n.customer-note-input {\n width: 100%;\n margin-bottom: 5px;\n}\n\n//Customer Notes\n#give-customer-notes {\n div:nth-of-type(even) {\n\tbackground-color: #f9f9f9;\n }\n .customer-note-wrapper {\n\tborder-bottom: 1px solid #f9f9f9;\n\tmin-height: 38px;\n\tpadding: 0;\n\n\t.note-content-wrap {\n\t padding: 10px 12px;\n\t line-height: 20px;\n\t font-size: 14px;\n\t}\n\n }\n\n .give-no-customer-notes {\n\ttext-align: center;\n\tpadding: 20px;\n }\n\n}\n\n.customer-note-wrapper span {\n display: block;\n}\n\n.delete-customer {\n text-align: center;\n}\n\n","/**\r\n * Give Admin Buttons SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Admin\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n/*=Give Shortcode Button\r\n--------------------------------------*/\r\n\r\n@media screen and (max-width: 782px) {\r\n #wp-content-media-buttons a.give-thickbox {\r\n padding: 6px 14px;\r\n line-height: normal;\r\n font-size: 14px;\r\n height: auto;\r\n }\r\n .wp-media-buttons span#give-media-button {\r\n margin-top: 0 !important;\r\n margin-left: 2px !important;\r\n }\r\n}\r\n\r\n/*=Button in shortcode tinymce dialog\r\n--------------------------------------*/\r\n\r\n.mce-primary.mce-give-primary button {\r\n padding-right: 10px;\r\n padding-left: 10px;\r\n}\r\n\r\n/*=Admin Buttons w/ Icons\r\n--------------------------------------*/\r\n\r\n/* extends .wp-core-ui .button */\r\n.wp-core-ui .give-admin-button {\r\n padding-left: 7px;\r\n padding-right: 7px;\r\n}\r\n\r\n/* matches style of Add Media and Give Shortcodes buttons */\r\n.give-admin-button-icon {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n vertical-align: text-top;\r\n margin: 0 2px;\r\n\r\n &:before {\r\n font: 400 18px/1 dashicons;\r\n speak: none;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n }\r\n\r\n /* specific DashIcon styles */\r\n &-update:before {\r\n content: \"\\f463\";\r\n }\r\n}\r\n","\n/* =Primary button in shortcode tinymce dialog\n-------------------------------------------------------------- */\n\n.mce-primary.mce-sc-primary button {\n\tpadding-right: 10px;\n\tpadding-left: 10px;\n}\n\n.mce-sc-popup {\n\ta {\n\t\ttext-decoration: underline;\n\t}\n\tp {\n\t\tmargin-bottom: 1em;\n\t\t&.strong {\n\t\t\tfont-weight: 600;\n\t\t}\n\t\t&.no-margin {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t\t&.margin-top {\n\t\t\tmargin-top: 1em;\n\t\t}\n\t}\n\t// Crop text which overflow in listbox.\n\t.mce-listbox button{\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden !important;\n\t}\n}\n\n/* =Shortcode button above wp_editor\n-------------------------------------------------------------- */\n\n@media screen and (max-width: 782px) {\n\t.wp-media-buttons button.sc-button span {\n\t\twidth: 18px !important;\n\t}\n}\n\n.wp-media-buttons {\n\tbutton.sc-button {\n\t\toutline: none;\n\t\tpadding-left: 5px;\n\t\tmargin-right: 0;\n\n\t\t&:active {\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n}\n\nbutton.sc-button {\n\t&:after {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\ttop: -1px;\n\t\tcontent: '';\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-top: 6px solid #777;\n\t\tborder-right: 4px solid transparent;\n\t\tborder-left: 4px solid transparent;\n\t\tmargin: 0 3px 0 6px;\n\t}\n\n\t&.active:after {\n\t\ttop: -2px;\n\t\tborder-top: 0;\n\t\tborder-bottom: 6px solid #32373c;\n\t}\n}\n\n/* =Shortcode button dropdown menu\n-------------------------------------------------------------- */\n\n.sc-wrap {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 5px;\n}\n\ndiv.sc-menu {\n\tdisplay: none;\n\tposition: absolute;\n\ttop: 100%;\n\tleft: 0;\n\tmin-width: 100%;\n\tmax-height: 410px;\n\tfont-size: 14px;\n\tbox-shadow: 0 3px 5px rgba( 0, 0, 0, 0.2 );\n\tbackground: #fff;\n\tborder: 1px solid rgba( 0, 0, 0, 0.15 );\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding: 5px 0;\n\tmargin: -2px 0 0;\n\tz-index: 1002;\n}\n\ndiv.sc-shortcode {\n\tdisplay: block;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\tpadding: 6px 12px;\n\tmargin-bottom: 2px;\n\n\t&:hover {\n\t\tcolor: #fff;\n\t}\n}\n\n/* =Shortcode tinymce dialog backdrop\n-------------------------------------------------------------- */\n\n#mce-modal-block.mce-reset.mce-fade.mce-in {\n\topacity: 0.7;\n\tfilter: alpha(opacity=70);\n}\n","/**\n * Give System Info SCSS\n *\n * @description System Info Styles\n * @package Give\n * @subpackage SCSS/Admin\n * @copyright Copyright (c) 2016, WordImpress\n * @license https://opensource.org/licenses/gpl-3.0/ GNU Public License\n *\n * The following code is a derivative work of the code from the WooCommerce\n * plugin, which is licensed GPLv3. This code therefore is also licensed under\n * the terms of the GNU Public License, version 3.\n *\n * Copyright (c) 2015 WooThemes\n * Copyright (c) 2016 WordImpress, LLC\n*/\n\n.give-status-table {\n margin-bottom: 1em;\n\n h2 {\n font-size: 14px;\n margin: 0;\n }\n\n tr {\n &:nth-child(2n) {\n th,\n td {\n background: #fcfcfc;\n }\n }\n }\n\n th {\n font-weight: 700;\n padding: 9px;\n }\n\n td:first-child {\n width: 33%;\n }\n\n td.help {\n width: 1em;\n }\n\n td {\n padding: 9px;\n font-size: 1.1em;\n\n mark {\n background: transparent none;\n }\n\n mark.yes {\n color: $green;\n }\n\n mark.no {\n color: #999;\n }\n\n mark.error {\n color: $red;\n }\n\n ul {\n margin: 0;\n }\n }\n}\n\n.wrap div.give-debug-report-wrapper {\n margin-top: 1em;\n}\n\n.give-debug-report {\n display: none;\n margin: 10px 0;\n padding: 0;\n position: relative;\n\n textarea {\n font-family: monospace;\n width: 100%;\n margin: 0;\n height: 300px;\n padding: 20px;\n -moz-border-radius: 0;\n -webkit-border-radius: 0;\n border-radius: 0;\n resize: none;\n font-size: 12px;\n line-height: 20px;\n outline: 0;\n }\n}\n"],"mappings":"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","names":[]}
assets/sourcemaps/give.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"give.css","sources":["frontend/give-frontend.scss","frontend/_variables.scss","frontend/_mixins.scss","frontend/fonts.scss","plugins/qtip.scss","frontend/receipt.scss","frontend/forms.scss","frontend/alerts.scss","plugins/magnific-popup.scss","plugins/_settings.scss","frontend/layouts.scss","frontend/progress-bar.scss","plugins/float-labels.scss","frontend/modal.scss","frontend/tables.scss","frontend/theme-compatibility.scss"],"sourcesContent":["/*!\r\n * Give Frontend SCSS/CSS\r\n *\r\n * @description: The Main SCSS file for FRONTEND styles which is compiled and minified via Gulp taskrunner\r\n * @package: Give\r\n * @subpackage: SCSS/Frontend\r\n * @copyright: Copyright (c) 2016, WordImpress\r\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n@import '_variables';\r\n@import '_mixins';\r\n@import 'fonts';\r\n@import '../plugins/qtip';\r\n@import 'receipt';\r\n@import 'forms';\r\n@import 'alerts';\r\n@import '../plugins/magnific-popup';\r\n@import 'layouts';\r\n@import 'progress-bar';\r\n@import '../plugins/float-labels';\r\n@import 'modal';\r\n@import 'tables';\r\n@import 'theme-compatibility';","/**\r\n * Give CSS Variables\r\n */\r\n\r\n$green: #7ad03a;\r\n$red: #a00;\r\n$orange: #ffba00;\r\n$blue: #2ea2cc;\r\n$dark: #333;\r\n$borders: #ccc;\r\n$light-gray: #EDEDED;\r\n\r\n//Status\r\n$status-default: #777;\r\n$status-complete: $green;\r\n$status-refunded: $status-default;\r\n$status-subscription: #5bc0de;\r\n$status-revoked: #d9534f;\r\n\r\n//Font sizes\r\n$font-size-medium: 18px;\r\n\r\n$primary: #007ba4;\r\n// Primary colour for buttons (alt)\r\n$primarytext: desaturate(lighten($primary, 50%), 18%);\r\n// Text on primary colour bg\r\n\r\n$secondary: desaturate(lighten($primary, 40%), 21%);\r\n// Secondary buttons\r\n$secondarytext: desaturate(darken($secondary, 60%), 21%);\r\n// Text on secondary colour bg\r\n\r\n$highlight: adjust-hue($primary, 150deg);\r\n// Prices, In stock labels, sales flash\r\n$highlightext: desaturate(lighten($highlight, 50%), 18%);\r\n// Text on highlight colour bg\r\n\r\n$contentbg: #fff;\r\n// Content BG - Tabs (active state)\r\n$subtext: #777;\r\n// small, breadcrumbs etc","/**\r\n * Clearfix\r\n */\r\n@mixin clearfix() {\r\n *zoom: 1;\r\n\r\n &:before,\r\n &:after {\r\n content: \" \";\r\n display: table;\r\n }\r\n\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\n.give-clearfix {\r\n @include clearfix;\r\n}\r\n\r\n/**\r\n * Box Sizing\r\n * https://github.com/timrogers/sass-box-sizing-mixin\r\n */\r\n@mixin box-sizing($box-model) {\r\n -webkit-box-sizing: $box-model; // Safari <= 5\r\n -moz-box-sizing: $box-model; // Firefox <= 19\r\n box-sizing: $box-model;\r\n}\r\n\r\n/**\r\n * CSS3 Easing\r\n */\r\n@mixin easing-transition() {\r\n -moz-transition: 0.2s all linear;\r\n -o-transition: 0.2s all linear;\r\n transition: 0.2s all linear;\r\n}\r\n\r\n//Labels\r\n@mixin give-label() {\r\n padding: .2em .4em .3em;\r\n font-size: 11px;\r\n line-height: 1;\r\n color: #fff;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: .25em;\r\n \r\n &:hover {\r\n color:#fff;\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n@mixin give-label-gray() {\r\n background-color: #929292;\r\n}\r\n@mixin give-label-orange() {\r\n background-color: #ffba00;\r\n}\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n.give-item-label-gray {\r\n @include give-label-gray();\r\n}\r\n\r\n.give-item-label-orange {\r\n @include give-label-orange();\r\n}\r\n\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n//Fields\r\n@mixin give-currency() {\r\n background-color: lighten($light-gray, 2%);\r\n border-top: 1px solid $borders;\r\n border-bottom: 1px solid $borders;\r\n color: $dark;\r\n margin: 0;\r\n padding: 0 12px;\r\n height: 35px;\r\n line-height: 35px;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}\r\n\r\n@mixin give-input() {\r\n border: 1px solid $borders;\r\n background: #FFF;\r\n border-radius: 0;\r\n height: 35px;\r\n line-height: 35px;\r\n padding: 0 12px;\r\n margin: 0;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}","/**\n * Give Frontend Fonts SCSS\n *\n * Fonts are from icomoon and the src paths need to be relative to template directory.\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n@font-face {\n font-family: 'give-icomoon';\n src: url('../assets/fonts/icomoon.eot?kdnr3d');\n src: url('../assets/fonts/icomoon.eot?kdnr3d#iefix') format('embedded-opentype'),\n url('../assets/fonts/icomoon.woff?kdnr3d') format('woff'),\n url('../assets/fonts/icomoon.svg?kdnr3d#icomoon') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@mixin iconstyle() {\n font-family: 'give-icomoon';\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n // Better Font Rendering\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n[class^=\"give-icon-\"], [class*=\" give-icon-\"] {\n @include iconstyle();\n}\n\n.give-icon-lamp:before {\n content: \"\\e603\";\n}\n\n.give-icon-heart:before {\n content: \"\\e604\";\n}\n\n.give-icon-question:before {\n content: \"\\e602\";\n}\n\n.give-icon-info:before {\n content: \"\\e601\";\n}\n\n.give-icon-new-tab:before {\n content: \"\\ea7e\";\n}\n\n.give-icon-alert:before {\n content: \"\\f02d\";\n}\n\n.give-icon-help:before {\n content: \"\\e606\";\n}\n\n.give-icon-spinner:before {\n content: \"\\e605\";\n}\n\n.give-icon-spinner2:before {\n content: \"\\e607\";\n}\n\n.give-icon-plus:before {\n content: \"\\e040\";\n}\n\n.give-icon-minus:before {\n content: \"\\e041\";\n}\n\n.give-icon-locked:before {\n content: \"\\e600\";\n}\n\n.dashicons-give:before {\n @include iconstyle();\n content: \"\\e800\";\n}\n\n// --------------------------\n// Spinning Icons\n// --------------------------\n\n.fa-spin {\n -webkit-animation: spin 1000ms infinite linear;\n animation: spin 1000ms infinite linear;\n}\n\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n","/*\n * qTip2 - Pretty powerful tooltips - v2.2.1\n * http://qtip2.com\n *\n * Copyright (c) 2014 \n * Released under the MIT licenses\n * http://jquery.org/license\n *\n * Date: Sun Sep 7 2014 12:09 GMT+0100+0100\n * Plugins: tips modal viewport svg imagemap ie6\n * Styles: core basic css3\n */\n.qtip{\n\tposition: absolute;\n\tleft: -28000px;\n\ttop: -28000px;\n\tdisplay: none;\n\n\tmax-width: 280px;\n\tmin-width: 50px;\n\n\tfont-size: 10.5px;\n\tline-height: 12px;\n\n\tdirection: ltr;\n\n\tbox-shadow: none;\n\tpadding: 0;\n}\n\n\t.qtip-content{\n\t\tposition: relative;\n\t\tpadding: 5px 9px;\n\t\toverflow: hidden;\n\n\t\ttext-align: left;\n\t\tword-wrap: break-word;\n\t}\n\n\t.qtip-titlebar{\n\t\tposition: relative;\n\t\tpadding: 5px 35px 5px 10px;\n\t\toverflow: hidden;\n\n\t\tborder-width: 0 0 1px;\n\t\tfont-weight: bold;\n\t}\n\n\t.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }\n\n\t/* Default close button class */\n\t.qtip-close{\n\t\tposition: absolute;\n\t\tright: -9px; top: -9px;\n\t\tz-index: 11; /* Overlap .qtip-tip */\n\n\t\tcursor: pointer;\n\t\toutline: medium none;\n\n\t\tborder: 1px solid transparent;\n\t}\n\n\t\t.qtip-titlebar .qtip-close{\n\t\t\tright: 4px; top: 50%;\n\t\t\tmargin-top: -9px;\n\t\t}\n\n\t\t* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */\n\n\t\t.qtip-titlebar .ui-icon,\n\t\t.qtip-icon .ui-icon{\n\t\t\tdisplay: block;\n\t\t\ttext-indent: -1000em;\n\t\t\tdirection: ltr;\n\t\t}\n\n\t\t.qtip-icon, .qtip-icon .ui-icon{\n\t\t\t-moz-border-radius: 3px;\n\t\t\t-webkit-border-radius: 3px;\n\t\t\tborder-radius: 3px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t\t.qtip-icon .ui-icon{\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 14px;\n\n\t\t\t\tline-height: 14px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttext-indent: 0;\n\t\t\t\tfont: normal bold 10px/13px Tahoma,sans-serif;\n\n\t\t\t\tcolor: inherit;\n\t\t\t\tbackground: transparent none no-repeat -100em -100em;\n\t\t\t}\n\n/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */\n.qtip-focus{}\n\n/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */\n.qtip-hover{}\n\n/* Default tooltip style */\n.qtip-default{\n\tborder: 1px solid #F1D031;\n\n\tbackground-color: #FFFFA3;\n\tcolor: #555;\n}\n\n\t.qtip-default .qtip-titlebar{\n\t\tbackground-color: #FFEF93;\n\t}\n\n\t.qtip-default .qtip-icon{\n\t\tborder-color: #CCC;\n\t\tbackground: #F1F1F1;\n\t\tcolor: #777;\n\t}\n\n\t.qtip-default .qtip-titlebar .qtip-close{\n\t\tborder-color: #AAA;\n\t\tcolor: #111;\n\t}\n\n\n/*! Light tooltip style */\n.qtip-light{\n\tbackground-color: white;\n\tborder-color: #E2E2E2;\n\tcolor: #454545;\n}\n\n\t.qtip-light .qtip-titlebar{\n\t\tbackground-color: #f1f1f1;\n\t}\n\n\n/*! Dark tooltip style */\n.qtip-dark{\n\tbackground-color: #505050;\n\tborder-color: #303030;\n\tcolor: #f3f3f3;\n}\n\n\t.qtip-dark .qtip-titlebar{\n\t\tbackground-color: #404040;\n\t}\n\n\t.qtip-dark .qtip-icon{\n\t\tborder-color: #444;\n\t}\n\n\t.qtip-dark .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/*! Cream tooltip style */\n.qtip-cream{\n\tbackground-color: #FBF7AA;\n\tborder-color: #F9E98E;\n\tcolor: #A27D35;\n}\n\n\t.qtip-cream .qtip-titlebar{\n\t\tbackground-color: #F0DE7D;\n\t}\n\n\t.qtip-cream .qtip-close .qtip-icon{\n\t\tbackground-position: -82px 0;\n\t}\n\n\n/*! Red tooltip style */\n.qtip-red{\n\tbackground-color: #F78B83;\n\tborder-color: #D95252;\n\tcolor: #912323;\n}\n\n\t.qtip-red .qtip-titlebar{\n\t\tbackground-color: #F06D65;\n\t}\n\n\t.qtip-red .qtip-close .qtip-icon{\n\t\tbackground-position: -102px 0;\n\t}\n\n\t.qtip-red .qtip-icon{\n\t\tborder-color: #D95252;\n\t}\n\n\t.qtip-red .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #D95252;\n\t}\n\n\n/*! Green tooltip style */\n.qtip-green{\n\tbackground-color: #CAED9E;\n\tborder-color: #90D93F;\n\tcolor: #3F6219;\n}\n\n\t.qtip-green .qtip-titlebar{\n\t\tbackground-color: #B0DE78;\n\t}\n\n\t.qtip-green .qtip-close .qtip-icon{\n\t\tbackground-position: -42px 0;\n\t}\n\n\n/*! Blue tooltip style */\n.qtip-blue{\n\tbackground-color: #E5F6FE;\n\tborder-color: #ADD9ED;\n\tcolor: #5E99BD;\n}\n\n\t.qtip-blue .qtip-titlebar{\n\t\tbackground-color: #D0E9F5;\n\t}\n\n\t.qtip-blue .qtip-close .qtip-icon{\n\t\tbackground-position: -2px 0;\n\t}\n\n\n.qtip-shadow{\n\t-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\t-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\tbox-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n}\n\n/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */\n.qtip-rounded,\n.qtip-tipsy,\n.qtip-bootstrap{\n\t-moz-border-radius: 5px;\n\t-webkit-border-radius: 5px;\n\tborder-radius: 5px;\n}\n\n.qtip-rounded .qtip-titlebar{\n\t-moz-border-radius: 4px 4px 0 0;\n\t-webkit-border-radius: 4px 4px 0 0;\n\tborder-radius: 4px 4px 0 0;\n}\n\n/* Youtube tooltip style */\n.qtip-youtube{\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 3px #333;\n\t-moz-box-shadow: 0 0 3px #333;\n\tbox-shadow: 0 0 3px #333;\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tbackground: #4A4A4A;\n\tbackground-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));\n\tbackground-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);\n}\n\n\t.qtip-youtube .qtip-titlebar{\n\t\tbackground-color: #4A4A4A;\n\t\tbackground-color: rgba(0,0,0,0);\n\t}\n\n\t.qtip-youtube .qtip-content{\n\t\tpadding: .75em;\n\t\tfont: 12px arial,sans-serif;\n\n\t\tfilter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\";\n\t}\n\n\t.qtip-youtube .qtip-icon{\n\t\tborder-color: #222;\n\t}\n\n\t.qtip-youtube .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* jQuery TOOLS Tooltip style */\n.qtip-jtools{\n\tbackground: #232323;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));\n\tbackground-image: -moz-linear-gradient(top, #717171, #232323);\n\tbackground-image: -webkit-linear-gradient(top, #717171, #232323);\n\tbackground-image: -ms-linear-gradient(top, #717171, #232323);\n\tbackground-image: -o-linear-gradient(top, #717171, #232323);\n\n\tborder: 2px solid #ddd;\n\tborder: 2px solid rgba(241,241,241,1);\n\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 12px #333;\n\t-moz-box-shadow: 0 0 12px #333;\n\tbox-shadow: 0 0 12px #333;\n}\n\n\t/* IE Specific */\n\t.qtip-jtools .qtip-titlebar{\n\t\tbackground-color: transparent;\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)\";\n\t}\n\t.qtip-jtools .qtip-content{\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)\";\n\t}\n\n\t.qtip-jtools .qtip-titlebar,\n\t.qtip-jtools .qtip-content{\n\t\tbackground: transparent;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-jtools .qtip-icon{\n\t\tborder-color: #555;\n\t}\n\n\t.qtip-jtools .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #333;\n\t}\n\n\n/* Cluetip style */\n.qtip-cluetip{\n\t-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\t-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\tbox-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\n\tbackground-color: #D9D9C2;\n\tcolor: #111;\n\tborder: 0 dashed transparent;\n}\n\n\t.qtip-cluetip .qtip-titlebar{\n\t\tbackground-color: #87876A;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-cluetip .qtip-icon{\n\t\tborder-color: #808064;\n\t}\n\n\t.qtip-cluetip .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #696952;\n\t\tcolor: #696952;\n\t}\n\n\n/* Tipsy style */\n.qtip-tipsy{\n\tbackground: black;\n\tbackground: rgba(0, 0, 0, .87);\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tfont-size: 11px;\n\tfont-family: 'Lucida Grande', sans-serif;\n\tfont-weight: bold;\n\tline-height: 16px;\n\ttext-shadow: 0 1px black;\n}\n\n\t.qtip-tipsy .qtip-titlebar{\n\t\tpadding: 6px 35px 0 10px;\n\t\tbackground-color: transparent;\n\t}\n\n\t.qtip-tipsy .qtip-content{\n\t\tpadding: 6px 10px;\n\t}\n\n\t.qtip-tipsy .qtip-icon{\n\t\tborder-color: #222;\n\t\ttext-shadow: none;\n\t}\n\n\t.qtip-tipsy .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* Tipped style */\n.qtip-tipped{\n\tborder: 3px solid #959FA9;\n\n\t-moz-border-radius: 3px;\n\t-webkit-border-radius: 3px;\n\tborder-radius: 3px;\n\n\tbackground-color: #F9F9F9;\n\tcolor: #454545;\n\n\tfont-weight: normal;\n\tfont-family: serif;\n}\n\n\t.qtip-tipped .qtip-titlebar{\n\t\tborder-bottom-width: 0;\n\n\t\tcolor: white;\n\t\tbackground: #3A79B8;\n\t\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));\n\t\tbackground-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -moz-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -ms-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -o-linear-gradient(top, #3A79B8, #2E629D);\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)\";\n\t}\n\n\t.qtip-tipped .qtip-icon{\n\t\tborder: 2px solid #285589;\n\t\tbackground: #285589;\n\t}\n\n\t\t.qtip-tipped .qtip-icon .ui-icon{\n\t\t\tbackground-color: #FBFBFB;\n\t\t\tcolor: #555;\n\t\t}\n\n\n/**\n * Twitter Bootstrap style.\n *\n * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.\n * Does not work with IE 7.\n */\n.qtip-bootstrap{\n\t/** Taken from Bootstrap body */\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: #333333;\n\n\t/** Taken from Bootstrap .popover */\n\tpadding: 1px;\n\tbackground-color: #ffffff;\n\tborder: 1px solid #ccc;\n\tborder: 1px solid rgba(0, 0, 0, 0.2);\n\t-webkit-border-radius: 6px;\n\t-moz-border-radius: 6px;\n\tborder-radius: 6px;\n\t-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\tbox-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-webkit-background-clip: padding-box;\n\t-moz-background-clip: padding;\n\tbackground-clip: padding-box;\n}\n\n\t.qtip-bootstrap .qtip-titlebar{\n\t\t/** Taken from Bootstrap .popover-title */\n\t\tpadding: 8px 14px;\n\t\tmargin: 0;\n\t\tfont-size: 14px;\n\t\tfont-weight: normal;\n\t\tline-height: 18px;\n\t\tbackground-color: #f7f7f7;\n\t\tborder-bottom: 1px solid #ebebeb;\n\t\t-webkit-border-radius: 5px 5px 0 0;\n\t\t-moz-border-radius: 5px 5px 0 0;\n\t\tborder-radius: 5px 5px 0 0;\n\t}\n\n\t\t.qtip-bootstrap .qtip-titlebar .qtip-close{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-titlebar .qtip-close{\n\t\t\t * [...]\n\t\t\t * right: 4px;\n\t\t\t * top: 50%;\n\t\t\t * [...]\n\t\t\t * border-style: solid;\n\t\t\t * }\n\t\t\t */\n\t\t\tright: 11px;\n\t\t\ttop: 45%;\n\t\t\tborder-style: none;\n\t\t}\n\n\t.qtip-bootstrap .qtip-content{\n\t\t/** Taken from Bootstrap .popover-content */\n\t\tpadding: 9px 14px;\n\t}\n\n\t.qtip-bootstrap .qtip-icon{\n\t\t/**\n\t\t * Overrides qTip2:\n\t\t * .qtip-default .qtip-icon {\n\t\t * border-color: #CCC;\n\t\t * background: #F1F1F1;\n\t\t * color: #777;\n\t\t * }\n\t\t */\n\t\tbackground: transparent;\n\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-icon .ui-icon{\n\t\t\t * width: 18px;\n\t\t\t * height: 14px;\n\t\t\t * }\n\t\t\t */\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\n\t\t\t/* Taken from Bootstrap .close */\n\t\t\tfloat: right;\n\t\t\tfont-size: 20px;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 18px;\n\t\t\tcolor: #000000;\n\t\t\ttext-shadow: 0 1px 0 #ffffff;\n\t\t\topacity: 0.2;\n\t\t\tfilter: alpha(opacity=20);\n\t\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon:hover{\n\t\t\t/* Taken from Bootstrap .close:hover */\n\t\t\tcolor: #000000;\n\t\t\ttext-decoration: none;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.4;\n\t\t\tfilter: alpha(opacity=40);\n\t\t}\n\n\n/* IE9 fix - removes all filters */\n.qtip:not(.ie9haxors) div.qtip-content,\n.qtip:not(.ie9haxors) div.qtip-titlebar{\n\tfilter: none;\n\t-ms-filter: none;\n}\n\n\n.qtip .qtip-tip{\n\tmargin: 0 auto;\n\toverflow: hidden;\n\tz-index: 10;\n\n}\n\n\t/* Opera bug #357 - Incorrect tip position\n\thttps://github.com/Craga89/qTip2/issues/367 */\n\tx:-o-prefocus, .qtip .qtip-tip{\n\t\tvisibility: hidden;\n\t}\n\n\t.qtip .qtip-tip,\n\t.qtip .qtip-tip .qtip-vml,\n\t.qtip .qtip-tip canvas{\n\t\tposition: absolute;\n\n\t\tcolor: #123456;\n\t\tbackground: transparent;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip .qtip-tip canvas{ top: 0; left: 0; }\n\n\t.qtip .qtip-tip .qtip-vml{\n\t\tbehavior: url(#default#VML);\n\t\tdisplay: inline-block;\n\t\tvisibility: visible;\n\t}\n\n\n#qtip-overlay{\n\tposition: fixed;\n\tleft: 0; top: 0;\n\twidth: 100%; height: 100%;\n}\n\n\t/* Applied to modals with show.modal.blur set to true */\n\t#qtip-overlay.blurs{ cursor: pointer; }\n\n\t/* Change opacity of overlay here */\n\t#qtip-overlay div{\n\t\tposition: absolute;\n\t\tleft: 0; top: 0;\n\t\twidth: 100%; height: 100%;\n\n\t\tbackground-color: black;\n\n\t\topacity: 0.7;\n\t\tfilter:alpha(opacity=70);\n\t\t-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\n\t}\n\n\n.qtipmodal-ie6fix{\n\tposition: absolute !important;\n}\n","/**\r\n * Give Frontend Receipt SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Frontend\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n//------------------------------------------------------------\r\n// Email Browser Receipt Page\r\n//------------------------------------------------------------\r\nbody.give_receipt_page {\r\n\tbackground-color: #fff;\r\n\tcolor: #141412;\r\n\tmargin: 0;\r\n\tfont-family: Helvetica, sans-serif;\r\n\tfont-size: 12px;\r\n\r\n\t#give_receipt_wrapper {\r\n\t\twidth: 660px;\r\n\t\tmargin: 0 auto;\r\n\t\tpadding: 50px 0;\r\n\t}\r\n\r\n\ttable {\r\n\t\tdisplay: table;\r\n\t\twidth: 100%;\r\n\t\tborder-bottom: 1px solid #ededed;\r\n\t\tborder-collapse: collapse;\r\n\t\tborder-spacing: 0;\r\n\t\tfont-size: 14px;\r\n\t\tline-height: 2;\r\n\t\tmargin: 0 0 20px;\r\n\t}\r\n\r\n\ttd, th {\r\n\t\tdisplay: table-cell;\r\n\t\ttext-align: left;\r\n\t\tborder-top: 1px solid #ededed;\r\n\t\tpadding: 6px 10px 6px 0;\r\n\t\tfont-weight: normal;\r\n\t}\r\n\r\n\tth {\r\n\t\tfont-weight: bold;\r\n\t\ttext-transform: uppercase;\r\n\t}\r\n\r\n\th3 {\r\n\t\tfont-size: 22px;\r\n\t\tmargin: 40px 0 5px;\r\n\t\tclear: both;\r\n\t\tdisplay: block;\r\n\t\tfont-weight: bold;\r\n\t}\r\n\r\n}\r\n\r\n//------------------------------------------------------------\r\n// On Site Donation Summary Tables\r\n//------------------------------------------------------------\r\n\r\ntable#give_donation_receipt_products,\r\ntable#give_donation_receipt {\r\n\twidth: 100%;\r\n}\r\n\r\ntable#give_donation_receipt {\r\n\r\n\ttd, th, td, th {\r\n\t\ttext-align: left;\r\n\t}\r\n\r\n\t.give-receipt-thead-text {\r\n\t\tfont-size: 18px;\r\n\t\ttext-align: center;\r\n\t\tdisplay: block;\r\n\r\n\t\t> span {\r\n\t\t\tfont-size: 16px;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tli {\r\n\t\tmargin: 0 0 8px 10px;\r\n\t}\r\n\r\n\tul {\r\n\t\tmargin: 0;\r\n\t\tpadding: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\r\n\t.give_receipt_payment_status.pending,\r\n\t.give_receipt_payment_status.revoked,\r\n\t.give_receipt_payment_status.failed {\r\n\t\tcolor: #f73f2e;\r\n\t}\r\n\r\n\tspan.donation-level-text-wrap {\r\n\t\tfont-style: italic;\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n}\r\n","/**\r\n * Give Frontend Forms SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Frontend\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n/*------------------------------------\r\nLayout\r\n--------------------------------------*/\r\n.give-clearfix {\r\n @include clearfix();\r\n}\r\n\r\n[id*='give-form'] {\r\n\r\n .give-hidden {\r\n display: none;\r\n }\r\n\r\n fieldset {\r\n border: none;\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n }\r\n\r\n .give-form-title {\r\n margin: 0 0 15px;\r\n }\r\n\r\n div#give-sidebar-left {\r\n width: 38%;\r\n float: left;\r\n }\r\n\r\n div.images {\r\n margin: 0 0 15px;\r\n\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: auto;\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n .give-custom-amount-text {\r\n clear: both;\r\n }\r\n\r\n div.summary {\r\n width: 58%;\r\n float: right;\r\n\r\n &.give-full-width {\r\n width: 100%;\r\n float: none;\r\n }\r\n }\r\n\r\n .give_form select.give-select.required {\r\n color: #000;\r\n }\r\n\r\n div.give-form-content-wrap {\r\n margin: 0 0 20px;\r\n }\r\n\r\n div.give-form-content-wrap.give_post_form-content {\r\n margin: 20px 0 0 0;\r\n }\r\n\r\n &.give-display-reveal, &.give-display-modal {\r\n .give-btn {\r\n margin: 0 0 15px;\r\n }\r\n #give-payment-mode-select, #give_purchase_form_wrap {\r\n display: none;\r\n }\r\n }\r\n\r\n .cc-address {\r\n margin-bottom: 15px;\r\n }\r\n}\r\n\r\n/*------------------------------------\r\nSingle Forms\r\n--------------------------------------*/\r\n\r\n.single-give_forms {\r\n\r\n &.et_right_sidebar #main-content .container:before {\r\n display: none; //hide Divi sidebar sep on single give forms\r\n }\r\n\r\n .give_forms {\r\n @include clearfix;\r\n }\r\n\r\n}\r\n\r\n/*------------------------------------\r\nGravatar List\r\n--------------------------------------*/\r\n#give-purchase-gravatars {\r\n\r\n .give-gravatars-title {\r\n margin: 0 0 15px;\r\n }\r\n\r\n .give-purchase-gravatars-list {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n li {\r\n list-style-type: none;\r\n display: inline-block;\r\n margin: 0 5px 0 0;\r\n padding: 0;\r\n }\r\n\r\n }\r\n}\r\n\r\n/*------------------------------------\r\nBase Form Styles\r\n--------------------------------------*/\r\n\r\nform[id*='give-form'],\r\n#give-recurring-form,\r\nform.give-form {\r\n margin: 0 0 25px;\r\n padding: 0;\r\n\r\n .give-hidden {\r\n display: none;\r\n }\r\n .give-tooltip {\r\n margin: 0 3px;\r\n padding: 0;\r\n font-size: 14px;\r\n @include easing-transition();\r\n color: transparentize($dark, 0.5);\r\n\r\n &:hover {\r\n color: $dark;\r\n }\r\n }\r\n\r\n legend,\r\n h3.give-section-break,\r\n h4.give-section-break {\r\n font-size: 1.15em;\r\n font-weight: bold;\r\n margin: 10px 0 15px;\r\n padding: 0 0 5px;\r\n border-bottom: 1px solid rgba( 0, 0, 0, .1 );\r\n width: 100%;\r\n\r\n span.sub-text {\r\n font-style: italic;\r\n font-weight: normal;\r\n }\r\n }\r\n\r\n //Form Layout\r\n .form-row {\r\n @include clearfix();\r\n @include box-sizing(border-box);\r\n margin: 0 0 15px;\r\n overflow: visible;\r\n padding: 0;\r\n\r\n // Prevent some themes from removing margin on last-child.\r\n &:last-child {\r\n margin-bottom: 15px;\r\n }\r\n\r\n label {\r\n display: block;\r\n margin: 0 0 5px;\r\n position: relative;\r\n line-height: 1.7;\r\n\r\n &.checkbox {\r\n display: inline;\r\n }\r\n\r\n }\r\n\r\n select, textarea, input[type=\"text\"], input[type=\"tel\"], input[type=\"email\"], input[type=\"password\"] {\r\n @include box-sizing(border-box);\r\n width: 100%;\r\n border-radius: 0;\r\n outline: none;\r\n color: $dark;\r\n background-color: #FDFDFD;\r\n border: 1px solid $borders;\r\n margin: 0;\r\n padding: .5em;\r\n\r\n &:focus {\r\n background-color: #fff;\r\n }\r\n &.required {\r\n color: $dark;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n .form-row-first,\r\n .form-row-last {\r\n float: left;\r\n width: 48.5%;\r\n }\r\n\r\n .form-row-last {\r\n float: right;\r\n }\r\n\r\n .form-row-wide {\r\n @include clearfix();\r\n clear: both;\r\n }\r\n\r\n .form-row-two-thirds {\r\n float: left;\r\n width: 65.75%;\r\n\r\n &.form-row-first {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n .form-row-one-third {\r\n float: left;\r\n width: 31.25%;\r\n margin-left: 3%;\r\n\r\n &.form-row-first {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n .form-row-responsive {\r\n // Full-width on small viewports.\r\n @media ( max-width: 480px ) {\r\n margin-left: 0;\r\n margin-right: 0;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .give-error,\r\n .give-required-indicator {\r\n color: $red;\r\n }\r\n\r\n .card-expiration {\r\n > select {\r\n width: 44%;\r\n margin: 0;\r\n }\r\n > span.exp-divider {\r\n display: inline;\r\n text-align: center;\r\n }\r\n\r\n select.card-expiry-year {\r\n float: right;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n/*---------------------------------\r\nForm Price & Amount\r\n-----------------------------------*/\r\n\r\nform[id*='give-form'] {\r\n\r\n .give-donation-amount {\r\n margin: 0 0 15px;\r\n\r\n .give-currency-symbol {\r\n @include give-currency();\r\n float: left;\r\n\r\n &.give-currency-position-before {\r\n border-left: 1px solid $borders;\r\n border-right: none;\r\n }\r\n &.give-currency-position-after {\r\n border-left: none;\r\n border-right: 1px solid $borders;\r\n }\r\n\r\n }\r\n\r\n #give-amount,\r\n #give-amount-text {\r\n @include give-input();\r\n min-width: 125px;\r\n float: left;\r\n\r\n &.invalid-amount {\r\n border: 1px solid red;\r\n }\r\n\r\n }\r\n\r\n input.give-amount-top {\r\n width: 125px;\r\n }\r\n\r\n span.give-final-total-amount {\r\n @include give-input();\r\n cursor: not-allowed;\r\n background: #FFF;\r\n float: left;\r\n }\r\n\r\n }\r\n\r\n #give_terms_agreement {\r\n\r\n legend {\r\n display: none;\r\n }\r\n \r\n label {\r\n display: inline-block;\r\n }\r\n\r\n }\r\n\r\n #give-final-total-wrap {\r\n margin: 10px 0 25px;\r\n padding: 0;\r\n @include clearfix();\r\n\r\n .give-donation-total-label {\r\n @include give-currency();\r\n float: left;\r\n border: 1px solid $borders;\r\n\r\n @media ( max-width: 480px ) {\r\n display: block;\r\n float: none;\r\n }\r\n }\r\n\r\n .give-final-total-amount {\r\n font-size: $font-size-medium;\r\n @include give-input();\r\n border-left: none;\r\n float: left;\r\n\r\n @media ( max-width: 480px ) {\r\n border: 1px solid $borders;\r\n border-top: 0;\r\n display: block;\r\n float: none;\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n.give-display-button-only > *:not(form) {\r\n display: none !important;\r\n}\r\n\r\n.give-display-button-only form > *:not(.give-btn-modal) {\r\n display: none !important;\r\n}\r\n\r\n/*---------------------------------\r\nRadio Lists\r\n-----------------------------------*/\r\nform[id*='give-form'] {\r\n input[type=\"radio\"] {\r\n margin: 0 .5em 0 0;\r\n }\r\n\r\n #give-donation-level-radio-list {\r\n //this is the radio list for the various user set donation levels\r\n margin: 0 0 15px;\r\n padding: 0;\r\n list-style: none;\r\n clear: both;\r\n\r\n > li {\r\n list-style-type: none;\r\n list-style-image: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n label {\r\n cursor: pointer;\r\n display: inline-block;\r\n margin: 0;\r\n }\r\n\r\n input[type=\"radio\"] {\r\n margin: 0 .5em 0 0;\r\n outline: none;\r\n width: auto;\r\n }\r\n }\r\n }\r\n\r\n #give-gateway-radio-list {\r\n //this is the radio list for to select a gateway\r\n @include clearfix();\r\n margin: 0 0 15px;\r\n padding: 0;\r\n list-style: none;\r\n\r\n > li {\r\n list-style-type: none;\r\n list-style-image: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n @media ( min-width: 480px ) {\r\n display: inline-block;\r\n margin-right: 15px;\r\n margin-left: 0;\r\n }\r\n\r\n label.give-gateway-option {\r\n cursor: pointer;\r\n display: inline;\r\n margin: 0;\r\n }\r\n\r\n input[type=\"radio\"] {\r\n margin: 0 .25em 0 0;\r\n outline: none;\r\n width: auto;\r\n display: inline;\r\n }\r\n\r\n }\r\n\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nCheckboxes\r\n-----------------------------------*/\r\nform[id*='give-form'] {\r\n input[type=\"checkbox\"] {\r\n margin: 0 .25em 0 0;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nDonation Level: Dropdown/Select\r\n-----------------------------------*/\r\nform[id*='give-form'] {\r\n select.give-select-level {\r\n outline: none;\r\n border-radius: 0;\r\n min-width: 155px;\r\n border: 1px solid $borders;\r\n margin: 0 0 15px;\r\n display: block;\r\n clear: both;\r\n color: $dark;\r\n background-color: #FDFDFD;\r\n padding: .5em;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nButtons\r\n-----------------------------------*/\r\n\r\n#give-donation-level-button-wrap {\r\n @include clearfix();\r\n margin: 0 0 15px;\r\n padding: 0;\r\n clear: both;\r\n list-style: none;\r\n\r\n > li {\r\n list-style-type: none;\r\n list-style-image: none;\r\n float: left;\r\n margin: 0 5px 5px 0;\r\n }\r\n\r\n}\r\n\r\n.give_terms_links {\r\n float: right;\r\n}\r\n\r\n/*---------------------------------\r\nCC Validation\r\n-----------------------------------*/\r\n\r\n[id*='give_secure_site_wrapper'] {\r\n padding: 4px 4px 15px 0;\r\n font-size: 16px;\r\n line-height: 20px;\r\n //Secure padlock (SSL/HTTPS)\r\n span.padlock {\r\n @include iconstyle();\r\n @extend .give-icon-locked;\r\n font-size: 16px;\r\n line-height: 20px;\r\n\r\n :before {\r\n display: inline-block;\r\n }\r\n }\r\n}\r\n\r\n#give_purchase_form_wrap {\r\n input.give-input.card-number.valid {\r\n background-image: url('../assets/images/tick.png');\r\n background-repeat: no-repeat;\r\n background-position: 98% 50%;\r\n background-size: 16px;\r\n &.floatlabel-input {\r\n background-image: url('../assets/images/tick-alt.png');\r\n background-position: 100% 50%;\r\n background-size: 72px 16px;\r\n }\r\n }\r\n\r\n span.card-type {\r\n position: absolute;\r\n top: -2px;\r\n right: 0;\r\n width: 37px;\r\n height: 26px;\r\n background-size: 37px 26px !important;\r\n }\r\n\r\n .floatlabel {\r\n span.card-type {\r\n top: 11px;\r\n right: 11px;\r\n }\r\n }\r\n\r\n span.card-type.off {\r\n display: none;\r\n }\r\n span.card-type.visa {\r\n background: url('../assets/images/visa.png') no-repeat;\r\n }\r\n span.card-type.mastercard {\r\n background: url('../assets/images/mastercard.png') no-repeat;\r\n }\r\n span.card-type.discover {\r\n background: url('../assets/images/discover.png') no-repeat;\r\n }\r\n span.card-type.amex {\r\n background: url('../assets/images/amex.png') no-repeat;\r\n }\r\n span.card-type.maestro {\r\n background: url('../assets/images/maestro.png') no-repeat;\r\n }\r\n span.card-type.dinersclub {\r\n background: url('../assets/images/diners-club.png') no-repeat;\r\n }\r\n span.card-type.jcb {\r\n background: url('../assets/images/jcb.png') no-repeat;\r\n }\r\n span.card-type.dankort {\r\n background: url('../assets/images/dankort.png') no-repeat;\r\n }\r\n span.card-type.unionpay {\r\n background: url('../assets/images/unionpay.png') no-repeat;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nLoading Animation\r\n-----------------------------------*/\r\n\r\n/* Loading Elipsis */\r\n@-webkit-keyframes opacity {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n@-moz-keyframes opacity {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n}\r\n\r\nform[id*='give-form'] {\r\n p.give-loading-text,\r\n span.give-loading-text {\r\n display: none;\r\n float: right;\r\n height: 16px;\r\n width: 16px;\r\n margin: 0;\r\n padding: 0;\r\n font-style: italic;\r\n line-height: 20px;\r\n font-size: 16px;\r\n font-weight: normal;\r\n }\r\n\r\n .give-loading-animation {\r\n @include iconstyle();\r\n float: left;\r\n height: 16px;\r\n width: 16px;\r\n line-height: 1;\r\n font-size: 16px;\r\n margin: 0 5px 0 0;\r\n background-size: 20px 20px;\r\n background-repeat: no-repeat;\r\n background-color: transparent;\r\n @extend .give-icon-spinner2;\r\n @extend .fa-spin;\r\n }\r\n\r\n .give-payment-mode-label\r\n .give-loading-text {\r\n float: right;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nUser Login\r\n-----------------------------------*/\r\n\r\n/*\r\n * User Login within Donation Form\r\n * (visible when Form Display > Login is enabled)\r\n */\r\n[id*='give-form'] {\r\n .give-login-account-wrap {\r\n margin: 0 0 15px;\r\n position: relative;\r\n\r\n .give-login-message {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .give-loading-text {\r\n position: absolute;\r\n right: 0;\r\n top: .25em;\r\n }\r\n }\r\n\r\n fieldset[id^=\"give-login-fields\"] {\r\n margin: 0 0 15px;\r\n }\r\n\r\n .give-new-account-link {\r\n margin: 0 0 15px;\r\n padding: 0;\r\n }\r\n\r\n .give_login_forgot_password {\r\n float: right;\r\n }\r\n}\r\n\r\n[id^='give-user-login-submit'],\r\n.give-submit-button-wrap {\r\n\r\n input.give-cancel-login {\r\n margin-left: 5px;\r\n }\r\n\r\n span.give-loading-animation {\r\n margin: 0 0 0 .5em;\r\n display: none;\r\n }\r\n .give-submit {\r\n float: left;\r\n }\r\n}\r\n\r\n/* Login Shortcode Form */\r\n#give-login-form,\r\n#give-register-form {\r\n legend, div.give-login {\r\n line-height: 2;\r\n margin-bottom: 15px;\r\n }\r\n\r\n label {\r\n min-width: 100px;\r\n display: inline-block;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nModal - Magnific Popup\r\n-----------------------------------*/\r\n\r\n//Show/Hide elements in Magnific Popup\r\ndiv.give-form-wrap.mfp-hide {\r\n display: block !important;\r\n}\r\n\r\ndiv.mfp-content {\r\n //Basic Styles\r\n fieldset {\r\n p, ol, ul {\r\n margin-bottom: 1.2em;\r\n line-height: 1.4;\r\n }\r\n }\r\n\r\n}\r\n\r\n/*---------------------------------\r\nBasic Button Style\r\n-----------------------------------*/\r\n\r\n.give-btn {\r\n background: $light-gray;\r\n border: 1px solid $borders;\r\n color: $dark;\r\n padding: 8px 10px;\r\n cursor: pointer;\r\n line-height: 1.2em;\r\n font-size: 1em;\r\n\r\n &:hover {\r\n background: #dbdbdb;\r\n }\r\n\r\n}\r\n\r\n/*---------------------------------\r\nEmail Access Form\r\n-----------------------------------*/\r\n\r\nform#give-email-access-form {\r\n div.g-recaptcha, input#give-email {\r\n margin: 0 0 15px;\r\n }\r\n input#give-email {\r\n width: 305px;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nResponsiveness\r\n-----------------------------------*/\r\n@media (max-width: 768px) {\r\n // Multi-column layout for single forms.\r\n [id*='give-form'] {\r\n div.images, div.summary {\r\n width: 100%;\r\n float: none;\r\n }\r\n\r\n div#give-sidebar-left {\r\n width: 100%;\r\n float: none;\r\n }\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nSection Breaks\r\n-----------------------------------*/\r\n\r\n// Headings are commonly styled by themes, so we need to be extra-specific.\r\n.give-form-wrap .give-form h3.give-section-break,\r\n.give-form-wrap .give-form h4.give-section-break {\r\n margin: 10px 0 0;\r\n}\r\n","/*---------------------------------\nNotices, Warnings & Errors\n-----------------------------------*/\n.give_error, .give_success {\n position: relative;\n margin: 15px 0;\n background: #F9F9F9;\n padding: 1em 1em 1em 2em;\n border-left: 4px solid $red;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125);\n clear: both;\n\n > p {\n margin: 0 !important;\n color: $dark;\n }\n\n &:before {\n @include iconstyle();\n position: absolute;\n top: 50%;\n font-size: 16px;\n margin-top: -15px;\n left: -17px;\n background-color: $red;\n color: #FFF;\n width: 30px;\n height: 30px;\n border-radius: 100%;\n text-align: center;\n line-height: 30px;\n text-shadow: 1px 1px rgba(0, 0, 0, 0.5);\n content: '\\f02d';\n }\n\n &.give_warning {\n border-color: $orange;\n\n &:before {\n background-color: $orange;\n text-shadow: 1px 1px rgba(0, 0, 0, 0.1);\n }\n }\n}\n\n.give_success {\n border-color: $green;\n\n &:before {\n background-color: $green;\n content: '\\e601';\n text-shadow: 1px 1px rgba(0, 0, 0, 0.2);\n }\n\n}","/* Magnific Popup CSS */\n\n@import \"settings\";\n\n////////////////////////\n//\n// Contents:\n//\n// 1. General styles\n// - Transluscent overlay\n// - Containers, wrappers\n// - Cursors\n// - Helper classes\n// 2. Appearance\n// - Preloader & text that displays error messages\n// - CSS reset for buttons\n// - Close icon\n// - \"1 of X\" counter\n// - Navigation (left/right) arrows\n// - Iframe content type styles\n// - Image content type styles\n// - Media query where size of arrows is reduced\n// - IE7 support\n//\n////////////////////////\n\n\n\n////////////////////////\n// 1. General styles\n////////////////////////\n\n// Transluscent overlay\n.mfp-bg {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 2;\n overflow: hidden;\n position: fixed;\n\n background: $mfp-overlay-color;\n opacity: $mfp-overlay-opacity;\n}\n\n// Wrapper for popup\n.mfp-wrap {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 3;\n position: fixed;\n outline: none !important;\n -webkit-backface-visibility: hidden; // fixes webkit bug that can cause \"false\" scrollbar\n}\n\n// Root container\n.mfp-container {\n text-align: center;\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n padding: 0 $mfp-popup-padding-left;\n box-sizing: border-box;\n}\n\n// Vertical centerer helper\n.mfp-container {\n &:before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n }\n}\n\n// Remove vertical centering when popup has class `mfp-align-top`\n.mfp-align-top {\n .mfp-container {\n &:before {\n display: none;\n }\n }\n}\n\n// Popup content holder\n.mfp-content {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin: 0 auto;\n text-align: left;\n z-index: $mfp-z-index-base + 5;\n}\n.mfp-inline-holder,\n.mfp-ajax-holder {\n .mfp-content {\n width: 100%;\n cursor: auto;\n }\n}\n\n// Cursors\n.mfp-ajax-cur {\n cursor: progress;\n}\n.mfp-zoom-out-cur {\n &, .mfp-image-holder .mfp-close {\n cursor: -moz-zoom-out;\n cursor: -webkit-zoom-out;\n cursor: zoom-out;\n }\n}\n.mfp-zoom {\n cursor: pointer;\n cursor: -webkit-zoom-in;\n cursor: -moz-zoom-in;\n cursor: zoom-in;\n}\n.mfp-auto-cursor {\n .mfp-content {\n cursor: auto;\n }\n}\n\n.mfp-close,\n.mfp-arrow,\n.mfp-preloader,\n.mfp-counter {\n -webkit-user-select:none;\n -moz-user-select: none;\n user-select: none;\n}\n\n// Hide the image during the loading\n.mfp-loading {\n &.mfp-figure {\n display: none;\n }\n}\n\n// Helper class that hides stuff\n@if $mfp-use-visuallyhidden {\n // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden\n .mfp-hide {\n border: 0 !important;\n clip: rect(0 0 0 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n }\n} @else {\n .mfp-hide {\n display: none !important;\n }\n}\n\n\n////////////////////////\n// 2. Appearance\n////////////////////////\n\n// Preloader and text that displays error messages\n.mfp-preloader {\n color: $mfp-controls-text-color;\n position: absolute;\n top: 50%;\n width: auto;\n text-align: center;\n margin-top: -0.8em;\n left: 8px;\n right: 8px;\n z-index: $mfp-z-index-base + 4;\n a {\n color: $mfp-controls-text-color;\n &:hover {\n color: $mfp-controls-text-color-hover;\n }\n }\n}\n\n// Hide preloader when content successfully loaded\n.mfp-s-ready {\n .mfp-preloader {\n display: none;\n }\n}\n\n// Hide content when it was not loaded\n.mfp-s-error {\n .mfp-content {\n display: none;\n }\n}\n\n// CSS-reset for buttons\nbutton {\n &.mfp-close,\n &.mfp-arrow {\n overflow: visible;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n display: block;\n outline: none;\n padding: 0;\n z-index: $mfp-z-index-base + 6;\n box-shadow: none;\n touch-action: manipulation;\n }\n &::-moz-focus-inner {\n padding: 0;\n border: 0\n }\n}\n\n\n// Close icon\n.mfp-close {\n width: 44px;\n height: 44px;\n line-height: 44px;\n\n position: absolute;\n right: 0;\n top: 0;\n text-decoration: none;\n text-align: center;\n opacity: $mfp-controls-opacity;\n padding: 0 0 18px 10px;\n color: $mfp-controls-color;\n\n font-style: normal;\n font-size: 28px;\n font-family: Arial, Baskerville, monospace;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:active {\n top: 1px;\n }\n}\n.mfp-close-btn-in {\n .mfp-close {\n color: $mfp-inner-close-icon-color;\n }\n}\n.mfp-image-holder,\n.mfp-iframe-holder {\n .mfp-close {\n color: $mfp-controls-color;\n right: -6px;\n text-align: right;\n padding-right: 6px;\n width: 100%;\n }\n}\n\n// \"1 of X\" counter\n.mfp-counter {\n position: absolute;\n top: 0;\n right: 0;\n color: $mfp-controls-text-color;\n font-size: 12px;\n line-height: 18px;\n white-space: nowrap;\n}\n\n// Navigation arrows\n@if $mfp-include-arrows {\n .mfp-arrow {\n position: absolute;\n opacity: $mfp-controls-opacity;\n margin: 0;\n top: 50%;\n margin-top: -55px;\n padding: 0;\n width: 90px;\n height: 110px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n &:active {\n margin-top: -54px;\n }\n &:hover,\n &:focus {\n opacity: 1;\n }\n &:before,\n &:after {\n content: '';\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n left: 0;\n top: 0;\n margin-top: 35px;\n margin-left: 35px;\n border: medium inset transparent;\n }\n\n &:after {\n\n border-top-width: 13px;\n border-bottom-width: 13px;\n top:8px;\n }\n\n &:before {\n border-top-width: 21px;\n border-bottom-width: 21px;\n opacity: 0.7;\n }\n\n }\n\n .mfp-arrow-left {\n left: 0;\n &:after {\n border-right: 17px solid $mfp-controls-color;\n margin-left: 31px;\n }\n &:before {\n margin-left: 25px;\n border-right: 27px solid $mfp-controls-border-color;\n }\n }\n\n .mfp-arrow-right {\n right: 0;\n &:after {\n border-left: 17px solid $mfp-controls-color;\n margin-left: 39px\n }\n &:before {\n border-left: 27px solid $mfp-controls-border-color;\n }\n }\n}\n\n\n\n// Iframe content type\n@if $mfp-include-iframe-type {\n .mfp-iframe-holder {\n padding-top: $mfp-iframe-padding-top;\n padding-bottom: $mfp-iframe-padding-top;\n .mfp-content {\n line-height: 0;\n width: 100%;\n max-width: $mfp-iframe-max-width;\n }\n .mfp-close {\n top: -40px;\n }\n }\n .mfp-iframe-scaler {\n width: 100%;\n height: 0;\n overflow: hidden;\n padding-top: $mfp-iframe-ratio * 100%;\n iframe {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: $mfp-shadow;\n background: $mfp-iframe-background;\n }\n }\n}\n\n\n\n// Image content type\n@if $mfp-include-image-type {\n\n /* Main image in popup */\n img {\n &.mfp-img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n line-height: 0;\n box-sizing: border-box;\n padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;\n margin: 0 auto;\n }\n }\n\n /* The shadow behind the image */\n .mfp-figure {\n line-height: 0;\n &:after {\n content: '';\n position: absolute;\n left: 0;\n top: $mfp-image-padding-top;\n bottom: $mfp-image-padding-bottom;\n display: block;\n right: 0;\n width: auto;\n height: auto;\n z-index: -1;\n box-shadow: $mfp-shadow;\n background: $mfp-image-background;\n }\n small {\n color: $mfp-caption-subtitle-color;\n display: block;\n font-size: 12px;\n line-height: 14px;\n }\n figure {\n margin: 0;\n }\n }\n .mfp-bottom-bar {\n margin-top: -$mfp-image-padding-bottom + 4;\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n cursor: auto;\n }\n .mfp-title {\n text-align: left;\n line-height: 18px;\n color: $mfp-caption-title-color;\n word-wrap: break-word;\n padding-right: 36px; // leave some space for counter at right side\n }\n\n .mfp-image-holder {\n .mfp-content {\n max-width: 100%;\n }\n }\n\n .mfp-gallery {\n .mfp-image-holder {\n .mfp-figure {\n cursor: pointer;\n }\n }\n }\n\n\n @if $mfp-include-mobile-layout-for-image {\n @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {\n /**\n * Remove all paddings around the image on small screen\n */\n .mfp-img-mobile {\n .mfp-image-holder {\n padding-left: 0;\n padding-right: 0;\n }\n img {\n &.mfp-img {\n padding: 0;\n }\n }\n .mfp-figure {\n // The shadow behind the image\n &:after {\n top: 0;\n bottom: 0;\n }\n small {\n display: inline;\n margin-left: 5px;\n }\n }\n .mfp-bottom-bar {\n background: rgba(0,0,0,0.6);\n bottom: 0;\n margin: 0;\n top: auto;\n padding: 3px 5px;\n position: fixed;\n box-sizing: border-box;\n &:empty {\n padding: 0;\n }\n }\n .mfp-counter {\n right: 5px;\n top: 3px;\n }\n .mfp-close {\n top: 0;\n right: 0;\n width: 35px;\n height: 35px;\n line-height: 35px;\n background: rgba(0, 0, 0, 0.6);\n position: fixed;\n text-align: center;\n padding: 0;\n }\n }\n }\n }\n}\n\n\n\n// Scale navigation arrows and reduce padding from sides\n@media all and (max-width: 900px) {\n .mfp-arrow {\n -webkit-transform: scale(0.75);\n transform: scale(0.75);\n }\n .mfp-arrow-left {\n -webkit-transform-origin: 0;\n transform-origin: 0;\n }\n .mfp-arrow-right {\n -webkit-transform-origin: 100%;\n transform-origin: 100%;\n }\n .mfp-container {\n padding-left: $mfp-popup-padding-left-mobile;\n padding-right: $mfp-popup-padding-left-mobile;\n }\n}\n\n","////////////////////////\n// Settings //\n////////////////////////\n\n// overlay\n$mfp-overlay-color: #0b0b0b !default; // Color of overlay screen\n$mfp-overlay-opacity: 0.8 !default; // Opacity of overlay screen\n$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // Shadow on image or iframe\n\n// spacing\n$mfp-popup-padding-left: 8px !default; // Padding from left and from right side\n$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px\n\n$mfp-z-index-base: 1040 !default; // Base z-index of popup\n\n// controls\n$mfp-include-arrows: true !default; // Include styles for nav arrows\n$mfp-controls-opacity: 0.65 !default; // Opacity of controls\n$mfp-controls-color: #FFF !default; // Color of controls\n$mfp-controls-border-color: #3F3F3F !default; \t // Border color of controls\n$mfp-inner-close-icon-color: #333 !default; // Color of close button when inside\n$mfp-controls-text-color: #CCC !default; // Color of preloader and \"1 of X\" indicator\n$mfp-controls-text-color-hover: #FFF !default; // Hover color of preloader and \"1 of X\" indicator\n\n// Iframe-type options\n$mfp-include-iframe-type: true !default; // Enable Iframe-type popups\n$mfp-iframe-padding-top: 40px !default; // Iframe padding top\n$mfp-iframe-background: #000 !default; // Background color of iframes\n$mfp-iframe-max-width: 900px !default; // Maximum width of iframes\n$mfp-iframe-ratio: 9/16 !default; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)\n\n// Image-type options\n$mfp-include-image-type: true !default; // Enable Image-type popups\n$mfp-image-background: #444 !default;\n$mfp-image-padding-top: 40px !default; // Image padding top\n$mfp-image-padding-bottom: 40px !default; // Image padding bottom\n$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom\n\n// Image caption options\n$mfp-caption-title-color: #F3F3F3 !default; // Caption title color\n$mfp-caption-subtitle-color: #BDBDBD !default; // Caption subtitle color\n\n// A11y\n$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers\n","/**\n * Give Layouts SCSS/CSS\n *\n * @description: This file provides layout styles for various themes such as the default WordPress themes and others if applicable; Most themes handle Give's template system just fine ;)\n * @package: Give\n * @subpackage: SCSS/Frontend\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n/**\n * Twenty Thirteen specific styles\n */\n\n.twentythirteen {\n\n .give_forms {\n\tpadding: 40px 0;\n }\n\n}\n\n/**\n * Twenty Fourteen specific styles\n */\n.twentyfourteen {\n .tfgive {\n\tpadding: 12px 10px 0;\n\tmax-width: 474px;\n\tmargin: 0 auto;\n\n\t.give_forms .entry-summary {\n\t padding: 0 !important;\n\t margin: 0 0 1.618em !important;\n\t}\n\n\tdiv.give_forms.hentry.has-post-thumbnail {\n\t margin-top: 0;\n\t}\n\n\t.give_forms {\n\t .images {\n\t\timg {\n\t\t margin-bottom: 1em;\n\t\t}\n\t }\n\t}\n }\n}\n\n@media screen and (min-width: 673px) {\n .twentyfourteen {\n\t.tfgive {\n\t padding-right: 30px;\n\t padding-left: 30px;\n\t}\n }\n}\n\n@media screen and (min-width: 1040px) {\n .twentyfourteen {\n\t.tfgive {\n\t padding-right: 15px;\n\t padding-left: 15px;\n\t}\n }\n}\n\n@media screen and (min-width: 1110px) {\n .twentyfourteen {\n\t.tfgive {\n\t padding-right: 30px;\n\t padding-left: 30px;\n\t}\n }\n}\n\n@media screen and (min-width: 1218px) {\n .twentyfourteen {\n\t.tfgive {\n\t margin-right: 54px;\n\t}\n }\n .full-width {\n\t.twentyfourteen {\n\t .tfgive {\n\t\tmargin-right: auto;\n\t }\n\t}\n }\n}\n\n/**\n * Twenty Fifteen specific styles\n */\n.twentyfifteen {\n .t15give {\n\tpadding-left: 7.6923%;\n\tpadding-right: 7.6923%;\n\tpadding-top: 7.6923%;\n\tmargin-bottom: 7.6923%;\n\tbackground: #fff;\n\tbox-shadow: 0 0 1px rgba(0, 0, 0, 0.15);\n\n\t.page-title {\n\t margin-left: 0;\n\t}\n\tdiv.summary {\n\t padding: 0;\n\t}\n }\n}\n\n@media screen and (min-width: 38.75em) {\n .twentyfifteen {\n\t.t15give {\n\t margin-right: 7.6923%;\n\t margin-left: 7.6923%;\n\t margin-top: 8.3333%;\n\t}\n }\n}\n\n@media screen and (min-width: 59.6875em) {\n .twentyfifteen {\n\t.t15give {\n\t margin-left: 8.3333%;\n\t margin-right: 8.3333%;\n\t padding: 10%;\n\t}\n }\n\n .single-product {\n\t.twentyfifteen {\n\t .entry-summary {\n\t\tpadding: 0 !important;\n\t }\n\t}\n }\n}\n\n/*----------------------------------------------\nAvada\n------------------------------------------------*/\n\n.avada-row > div.give-wrap #content {\n width: 100%;\n}","/**\n * Give Frontend Progress Bar SCSS\n *\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n.give-goal-progress {\n margin-bottom: 20px;\n clear:both;\n\n .income {\n\tfont-size: 46px;\n\tline-height: 48px;\n\tletter-spacing: -1px;\n\tcolor: #333;\n }\n\n .raised {\n\tmargin-bottom: 15px;\n }\n}\n\n.give-progress-bar {\n height: 20px; \n position: relative;\n background: #EEE;\n border-radius: 25px;\n overflow: hidden;\n\n > span {\n\tdisplay: block;\n\theight: 100%;\n\tborder-top-right-radius: 8px;\n\tborder-bottom-right-radius: 8px;\n\tborder-top-left-radius: 20px;\n\tborder-bottom-left-radius: 20px;\n\tbackground-color: rgb(43, 194, 83);\n\tposition: relative;\n\toverflow: hidden;\n }\n}","/*!\n * Float Labels\n *\n * Version: 1.0.8\n * Author: Paul Ryley (http://geminilabs.io)\n * URL: https://github.com/geminilabs/float-labels.js\n * License: MIT\n */\n\n//\n// Variables\n//\n\n$fl-placeholder : #aaa !default;\n$fl-text : #333 !default;\n$fl-text-focus : #007ba4 !default;\n$fl-borders : #ccc !default;\n$fl-borders-focus : #ccc !default;\n$fl-borders-active : #ccc !default;\n$fl-background : #fff !default;\n$fl-background-focus : #fff !default;\n$fl-background-active : #fff !default;\n\n$fl-font-size : 16px !default;\n$fl-font-size-small : 11px !default;\n\n$fl-spacing-base : 24px !default;\n$fl-spacing-half : $fl-spacing-base / 2 !default;\n$fl-spacing-third : $fl-spacing-base / 3 !default;\n$fl-spacing-fourth : $fl-spacing-base / 4 !default;\n\n$fl-transition-speed : 0.3s !default;\n$fl-transition-easing : ease-in-out !default;\n\n//\n// Styles\n//\n\nform.floated-labels {\n\n\t.floatlabel {\n\n\t\tposition: relative;\n\n\t\tinput[type=\"text\"], input[type=\"tel\"], input[type=\"email\"], input[type=\"password\"],\n\t\tinput,\n\t\tselect,\n\t\ttextarea {\n\t\t\tfont-size: $fl-font-size;\n\t\t\tline-height: normal;\n\t\t\tbackground-color: $fl-background;\n\t\t\tborder: 1px solid $fl-borders;\n\t\t\tpadding: $fl-spacing-half;\n\t\t}\n\n\t\tselect {\n\t\t\tposition: relative;\n\t\t\tcolor: $fl-placeholder;\n\t\t\tcursor: pointer;\n\t\t\t-webkit-appearance: none;\n\t\t\t-moz-appearance: none;\n\t\t}\n\n\t\t&.is-active {\n\t\t\tlabel.floatlabel-label {\n\t\t\t\topacity: 1;\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\n\t\t\tinput,\n\t\t\tselect,\n\t\t\ttextarea {\n\t\t\t\tcolor: $fl-text;\n\t\t\t\tbackground-color: $fl-background-active;\n\t\t\t\tborder-color: $fl-borders-active;\n\t\t\t\tpadding-top: $fl-spacing-base - ($fl-spacing-third / 2);\n\t\t\t\tpadding-bottom: $fl-spacing-third / 2;\n\t\t\t}\n\t\t}\n\n\t\t&.is-focused {\n\t\t\tlabel.floatlabel-label {\n\t\t\t\tcolor: $fl-text-focus;\n\t\t\t}\n\n\t\t\tinput,\n\t\t\tselect,\n\t\t\ttextarea {\n\t\t\t\tbackground-color: $fl-background-focus;\n\t\t\t\tborder-color: $fl-borders-focus;\n\t\t\t}\n\t\t}\n\n\t\tlabel.floatlabel-label {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\ttop: $fl-spacing-third;\n\t\t\tleft: $fl-spacing-half;\n\t\t\tcolor: $fl-placeholder;\n\t\t\tfont-size: $fl-font-size-small;\n\t\t\tline-height: 1;\n\t\t\topacity: 0;\n\t\t\tvisibility: hidden;\n\t\t\ttransition: all $fl-transition-speed $fl-transition-easing;\n\t\t\tpadding: 0 1px;\n\n\t\t\t&.is-visible {\n\t\t\t\topacity: 1;\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\t\t}\n\t}\n\n\t.styled {\n\n\t\t&.select {\n\t\t\tposition: relative;\n\n\t\t\t&:before,\n\t\t\t&:after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: $fl-spacing-base;\n\t\t\t\theight: 2px;\n\t\t\t\twidth: $fl-spacing-fourth;\n\t\t\t\tbackground: $fl-placeholder;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tright: $fl-spacing-half + $fl-spacing-fourth;\n\t\t\t\ttransform: skew(0deg, 45deg);\n\t\t\t}\n\n\t\t\t&:after {\n\t\t\t\tright: $fl-spacing-half;\n\t\t\t\ttransform: skew(0deg, -45deg);\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Give Magnific Modal Custom SCSS\n *\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n// Wrapper for popup\n.give-modal {\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: $mfp-z-index-base + 2147482500;\n\tposition: fixed;\n\toutline: none !important;\n\t-webkit-backface-visibility: hidden; // fixes webkit bug that can cause \"false\" scrollbar\n\n\tform[id*='give-form'] {\n\t\tmargin-bottom: 0;\n\t\t.give-submit {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t\t.give-payment-mode-label {\n\t\t\tmargin-top: 0;\n\t\t\tpadding-top: 0;\n\t\t}\n\t}\n\n\t// Root container\n\t.mfp-container {\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tpadding: 0 $mfp-popup-padding-left;\n\t\t-webkit-box-sizing: border-box;\n\t\t-moz-box-sizing: border-box;\n\t\tbox-sizing: border-box;\n\t}\n\n\t// Vertical centerer helper\n\t.mfp-container {\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\theight: 100%;\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t// Remove vertical centering when popup has class `mfp-align-top`\n\t.mfp-align-top {\n\t\t.mfp-container {\n\t\t\t&:before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Popup content holder\n\t.mfp-content {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\ttext-align: left;\n\t\tposition: relative;\n\t\tbackground: #FFF;\n\t\tpadding: 20px;\n\t\twidth: auto;\n\t\tmax-width: 500px;\n\t\tmargin: 40px auto;\n\t\tz-index: $mfp-z-index-base + 2147482600;\n\n\t\t[id*='give-form'] #give-payment-mode-select,\n\t\t[id*='give-form'] #give_purchase_form_wrap,\n\t\t[id*='give-form'].give-display-button-only .give-donation-amount,\n\t\t[id*='give-form'].give-display-button-only .give-donation-levels-wrap {\n\t\t\tdisplay: block;\n\t\t}\n\n\t}\n\n\t.mfp-inline-holder,\n\t.mfp-ajax-holder {\n\t\t.mfp-content {\n\t\t\twidth: 100%;\n\t\t\tcursor: auto;\n\t\t}\n\t}\n\n\t// Cursors\n\t.mfp-ajax-cur {\n\t\tcursor: progress;\n\t}\n\n\t.mfp-zoom-out-cur {\n\t\t&, .mfp-image-holder .mfp-close {\n\t\t\tcursor: -moz-zoom-out;\n\t\t\tcursor: -webkit-zoom-out;\n\t\t\tcursor: zoom-out;\n\t\t}\n\t}\n\n\t.mfp-zoom {\n\t\tcursor: pointer;\n\t\tcursor: -webkit-zoom-in;\n\t\tcursor: -moz-zoom-in;\n\t\tcursor: zoom-in;\n\t}\n\n\t.mfp-auto-cursor {\n\t\t.mfp-content {\n\t\t\tcursor: auto;\n\t\t}\n\t}\n\n\t.mfp-close,\n\t.mfp-arrow,\n\t.mfp-preloader,\n\t.mfp-counter {\n\t\t-webkit-user-select: none;\n\t\t-moz-user-select: none;\n\t\tuser-select: none;\n\t}\n\n\t.mfp-close:hover {\n\t\tbackground-color: transparent;\n\t}\n\n\t// Hide the image during the loading\n\t.mfp-loading {\n\t\t&.mfp-figure {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n}","/**\n * Give Frontend Tables SCSS\n *\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\ntable.give-table {\n color: #666;\n font-size: 14px;\n text-shadow: 1px 1px 0px #fff;\n background: #eaebec;\n margin: 20px 0;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-bottom: none;\n width: 100%;\n\n thead {\n font-weight: bold;\n\n th:first-child {\n text-align: left;\n }\n }\n\n th {\n padding: 21px 25px;\n border-top: 1px solid #E8E8E8;\n border-bottom: 1px solid #e0e0e0;\n border-left: 1px solid #e0e0e0;\n border-right: none;\n background: #F6F6F6;\n text-align: center;\n font-weight: bold;\n }\n\n tbody {\n\n tr {\n text-align: center;\n\n td {\n padding: 18px;\n border: none;\n border-top: 1px solid #ffffff;\n border-bottom: 1px solid #e0e0e0;\n border-left: 1px solid #e0e0e0;\n background: #FFF;\n text-align: center;\n }\n\n td:first-child {\n text-align: left;\n border-left: 0;\n }\n }\n\n //Even Rows\n tr:nth-child(even) td {\n background: #fcfcfc;\n }\n\n }\n\n}","/**\n * Give Frontend Theme Compatibility\n *\n * @description: The following styles help Give look good and fixes CSS conflicts with popular WordPress themes\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n//Divi\n.give-divi {\n\n .qtip-tipsy {\n\tz-index: 1000002 !important;\n }\n\n}\n\n//Twenty Sixteen\nbody.give-twentysixteen {\n\n div.entry-summary {\n\tmargin: 0;\n }\n\n button.give-btn {\n\tcolor: #333;\n }\n\n .give-submit {\n\tcolor: #FFF;\n }\n\n fieldset#give_terms_agreement {\n padding-left: 0;\n }\n\n}"],"mappings":"AAAA;;;;;;;;EAQE;ACRF;;GAEG;ACFH;;GAEG;AAeH,AAAA,cAAc,CAAC;EAbb,KAAK,EAAE,CAAE,GAeV;EAFD,AAAA,cAAc,AAXX,OAAO,EAWV,AAAA,cAAc,AAVX,MAAM,CAAC;IACN,OAAO,EAAE,GAAI;IACb,OAAO,EAAE,KAAM,GAChB;EAOH,AAAA,cAAc,AALX,MAAM,CAAC;IACN,KAAK,EAAE,IAAK,GACb;;AAOH;;;GAGG;AAOH;;GAEG;AA+BH,AAAA,gBAAgB,CAAC;EAtBf,OAAO,EAAE,cAAe;EACxB,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,CAAE;EACf,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EACpB,cAAc,EAAE,QAAS;EACzB,aAAa,EAAE,KAAM,GAiBtB;EAFD,AAAA,gBAAgB,AAbb,MAAM,CAAC;IACN,KAAK,EAAC,IAAK;IACX,eAAe,EAAE,IAAK,GACvB;;AAcH,AAAA,qBAAqB,CAAC;EAVpB,gBAAgB,EAAE,OAAQ,GAY3B;;AAED,AAAA,uBAAuB,CAAC;EAXtB,gBAAgB,EAAE,OAAQ,GAa3B;;AAGD,AAAA,gBAAgB,CAAC;EAnCf,OAAO,EAAE,cAAe;EACxB,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,CAAE;EACf,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EACpB,cAAc,EAAE,QAAS;EACzB,aAAa,EAAE,KAAM,GA8BtB;EAFD,AAAA,gBAAgB,AA1Bb,MAAM,CAAC;IACN,KAAK,EAAC,IAAK;IACX,eAAe,EAAE,IAAK,GACvB;;ACtDH;;;;;;;;EAQE;AACF,UAAU;EACR,WAAW,EAAE,cAAe;EAC5B,GAAG,EAAE,yCAAG;EACR,GAAG,EAAE,+CAAG,CAA6C,2BAAM,EAC3D,0CAAG,CAAwC,cAAM,EACjD,iDAAG,CAA+C,aAAM;EACxD,WAAW,EAAE,MAAO;EACpB,UAAU,EAAE,MAAO;;CAiBrB,AAAA,AAAoB,KAAnB,EAAO,YAAY,AAAnB,IAAsB,AAAA,AAAqB,KAApB,EAAO,aAAa,AAApB,EAAsB;EAb5C,WAAW,EAAE,cAAe;EAC5B,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EACpB,YAAY,EAAE,MAAO;EACrB,cAAc,EAAE,IAAK;EACrB,WAAW,EAAE,CAAE;EAGf,sBAAsB,EAAE,WAAY;EACpC,uBAAuB,EAAE,SAAU,GAKpC;;AAED,AAAe,eAAA,AAAA,OAAO,CAAC;EACrB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAgB,gBAAA,AAAA,OAAO,CAAC;EACtB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAmB,mBAAA,AAAA,OAAO,CAAC;EACzB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAe,eAAA,AAAA,OAAO,CAAC;EACrB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAkB,kBAAA,AAAA,OAAO,CAAC;EACxB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAgB,gBAAA,AAAA,OAAO,CAAC;EACtB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAe,eAAA,AAAA,OAAO,CAAC;EACrB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAkB,kBAAA,AAAA,OAAO,CAAC;EACxB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAmB,mBAAA,AAAA,OAAO,EGiiB1B,AHjiBA,IGiiBI,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAeH,uBAAuB,AHhjBN,OAAO,CAAC;EACzB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAe,eAAA,AAAA,OAAO,CAAC;EACrB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAgB,gBAAA,AAAA,OAAO,CAAC;EACtB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAiB,iBAAA,AAAA,OAAO,GGgbxB,AAAA,AHhbA,EGgbC,EAAI,0BAA0B,AAA9B,EAKC,IAAI,AAAA,QAAQ,AHrbG,OAAO,CAAC;EACvB,OAAO,EAAE,OAAQ,GAClB;;AAED,AAAe,eAAA,AAAA,OAAO,CAAC;EAjErB,WAAW,EAAE,cAAe;EAC5B,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EACpB,YAAY,EAAE,MAAO;EACrB,cAAc,EAAE,IAAK;EACrB,WAAW,EAAE,CAAE;EAGf,sBAAsB,EAAE,WAAY;EACpC,uBAAuB,EAAE,SAAU;EAyDnC,OAAO,EAAE,OAAQ,GAClB;;AAMD,AAAA,QAAQ,EGwgBR,AHxgBA,IGwgBI,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAeH,uBAAuB,CHvhBhB;EACP,iBAAiB,EAAE,2BAA4B;EAC/C,SAAS,EAAE,2BAA4B,GACxC;;AAED,kBAAkB,CAAlB,IAAkB;EAChB,AAAA,EAAE;IACA,iBAAiB,EAAE,YAAM;IACzB,SAAS,EAAE,YAAM;EAEnB,AAAA,IAAI;IACF,iBAAiB,EAAE,cAAM;IACzB,SAAS,EAAE,cAAM;;AAIrB,UAAU,CAAV,IAAU;EACR,AAAA,EAAE;IACA,iBAAiB,EAAE,YAAM;IACzB,SAAS,EAAE,YAAM;EAEnB,AAAA,IAAI;IACF,iBAAiB,EAAE,cAAM;IACzB,SAAS,EAAE,cAAM;;ACrHrB;;;;;;;;;;;GAWG;AACH,AAAA,KAAK,CAAA;EACJ,QAAQ,EAAE,QAAS;EACnB,IAAI,EAAE,QAAS;EACf,GAAG,EAAE,QAAS;EACd,OAAO,EAAE,IAAK;EAEd,SAAS,EAAE,KAAM;EACjB,SAAS,EAAE,IAAK;EAEhB,SAAS,EAAE,MAAO;EAClB,WAAW,EAAE,IAAK;EAElB,SAAS,EAAE,GAAI;EAEf,UAAU,EAAE,IAAK;EACjB,OAAO,EAAE,CAAE,GACX;;AAEA,AAAA,aAAa,CAAA;EACZ,QAAQ,EAAE,QAAS;EACnB,OAAO,EAAE,OAAQ;EACjB,QAAQ,EAAE,MAAO;EAEjB,UAAU,EAAE,IAAK;EACjB,SAAS,EAAE,UAAW,GACtB;;AAED,AAAA,cAAc,CAAA;EACb,QAAQ,EAAE,QAAS;EACnB,OAAO,EAAE,iBAAkB;EAC3B,QAAQ,EAAE,MAAO;EAEjB,YAAY,EAAE,OAAQ;EACtB,WAAW,EAAE,IAAK,GAClB;;AAED,AAAiB,cAAH,GAAG,aAAa,CAAA;EAAE,gBAAgB,EAAE,YAAa,GAAI;;AAEnE,gCAAgC;AAChC,AAAA,WAAW,CAAA;EACV,QAAQ,EAAE,QAAS;EACnB,KAAK,EAAE,IAAK;EAAE,GAAG,EAAE,IAAK;EACxB,OAAO,EAAE,EAAG;EAAE,uBAAuB;EAErC,MAAM,EAAE,OAAQ;EAChB,OAAO,EAAE,WAAY;EAErB,MAAM,EAAE,qBAAsB,GAC9B;;AAEA,AAAe,cAAD,CAAC,WAAW,CAAA;EACzB,KAAK,EAAE,GAAI;EAAE,GAAG,EAAE,GAAI;EACtB,UAAU,EAAE,IAAK,GACjB;;AAED,AAAsB,CAArB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAA;EAAE,GAAG,EAAE,IAAK,GAAI;;AAAA,YAAY;AAE7D,AAAe,cAAD,CAAC,QAAQ;AACvB,AAAW,UAAD,CAAC,QAAQ,CAAA;EAClB,OAAO,EAAE,KAAM;EACf,WAAW,EAAE,OAAQ;EACrB,SAAS,EAAE,GAAI,GACf;;AAED,AAAA,UAAU,EAAE,AAAW,UAAD,CAAC,QAAQ,CAAA;EAC9B,kBAAkB,EAAE,GAAI;EACxB,qBAAqB,EAAE,GAAI;EAC3B,aAAa,EAAE,GAAI;EACnB,eAAe,EAAE,IAAK,GACtB;;AAEA,AAAW,UAAD,CAAC,QAAQ,CAAA;EAClB,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EAEb,WAAW,EAAE,IAAK;EAClB,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,CAAE;EACf,IAAI,EAAE,uCAAwC;EAE9C,KAAK,EAAE,OAAQ;EACf,UAAU,EAAE,wCAAyC,GACrD;;AAEJ,gFAAgF;AAGhF,2FAA2F;AAG3F,2BAA2B;AAC3B,AAAA,aAAa,CAAA;EACZ,MAAM,EAAE,iBAAkB;EAE1B,gBAAgB,EAAE,OAAQ;EAC1B,KAAK,EAAE,IAAK,GACZ;;AAEA,AAAc,aAAD,CAAC,cAAc,CAAA;EAC3B,gBAAgB,EAAE,OAAQ,GAC1B;;AAED,AAAc,aAAD,CAAC,UAAU,CAAA;EACvB,YAAY,EAAE,IAAK;EACnB,UAAU,EAAE,OAAQ;EACpB,KAAK,EAAE,IAAK,GACZ;;AAED,AAA6B,aAAhB,CAAC,cAAc,CAAC,WAAW,CAAA;EACvC,YAAY,EAAE,IAAK;EACnB,KAAK,EAAE,IAAK,GACZ;;AAGF,0BAA0B;AAC1B,AAAA,WAAW,CAAA;EACV,gBAAgB,EAAE,KAAM;EACxB,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAEA,AAAY,WAAD,CAAC,cAAc,CAAA;EACzB,gBAAgB,EAAE,OAAQ,GAC1B;;AAGF,yBAAyB;AACzB,AAAA,UAAU,CAAA;EACT,gBAAgB,EAAE,OAAQ;EAC1B,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAEA,AAAW,UAAD,CAAC,cAAc,CAAA;EACxB,gBAAgB,EAAE,OAAQ,GAC1B;;AAED,AAAW,UAAD,CAAC,UAAU,CAAA;EACpB,YAAY,EAAE,IAAK,GACnB;;AAED,AAA0B,UAAhB,CAAC,cAAc,CAAC,eAAe,CAAA;EACxC,YAAY,EAAE,OAAQ,GACtB;;AAGF,0BAA0B;AAC1B,AAAA,WAAW,CAAA;EACV,gBAAgB,EAAE,OAAQ;EAC1B,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAEA,AAAY,WAAD,CAAC,cAAc,CAAA;EACzB,gBAAgB,EAAE,OAAQ,GAC1B;;AAED,AAAwB,WAAb,CAAC,WAAW,CAAC,UAAU,CAAA;EACjC,mBAAmB,EAAE,OAAQ,GAC7B;;AAGF,wBAAwB;AACxB,AAAA,SAAS,CAAA;EACR,gBAAgB,EAAE,OAAQ;EAC1B,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAEA,AAAU,SAAD,CAAC,cAAc,CAAA;EACvB,gBAAgB,EAAE,OAAQ,GAC1B;;AAED,AAAsB,SAAb,CAAC,WAAW,CAAC,UAAU,CAAA;EAC/B,mBAAmB,EAAE,QAAS,GAC9B;;AAED,AAAU,SAAD,CAAC,UAAU,CAAA;EACnB,YAAY,EAAE,OAAQ,GACtB;;AAED,AAAyB,SAAhB,CAAC,cAAc,CAAC,eAAe,CAAA;EACvC,YAAY,EAAE,OAAQ,GACtB;;AAGF,0BAA0B;AAC1B,AAAA,WAAW,CAAA;EACV,gBAAgB,EAAE,OAAQ;EAC1B,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAEA,AAAY,WAAD,CAAC,cAAc,CAAA;EACzB,gBAAgB,EAAE,OAAQ,GAC1B;;AAED,AAAwB,WAAb,CAAC,WAAW,CAAC,UAAU,CAAA;EACjC,mBAAmB,EAAE,OAAQ,GAC7B;;AAGF,yBAAyB;AACzB,AAAA,UAAU,CAAA;EACT,gBAAgB,EAAE,OAAQ;EAC1B,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAEA,AAAW,UAAD,CAAC,cAAc,CAAA;EACxB,gBAAgB,EAAE,OAAQ,GAC1B;;AAED,AAAuB,UAAb,CAAC,WAAW,CAAC,UAAU,CAAA;EAChC,mBAAmB,EAAE,MAAO,GAC5B;;AAGF,AAAA,YAAY,CAAA;EACX,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAI;EACxC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAI;EACrC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAI,GAChC;;AAED,4FAA4F;AAC5F,AAAA,aAAa;AACb,AAAA,WAAW;AACX,AAAA,eAAe,CAAA;EACd,kBAAkB,EAAE,GAAI;EACxB,qBAAqB,EAAE,GAAI;EAC3B,aAAa,EAAE,GAAI,GACnB;;AAED,AAAc,aAAD,CAAC,cAAc,CAAA;EAC3B,kBAAkB,EAAE,WAAY;EAChC,qBAAqB,EAAE,WAAY;EACnC,aAAa,EAAE,WAAY,GAC3B;;AAED,2BAA2B;AAC3B,AAAA,aAAa,CAAA;EACZ,kBAAkB,EAAE,GAAI;EACxB,qBAAqB,EAAE,GAAI;EAC3B,aAAa,EAAE,GAAI;EAEnB,kBAAkB,EAAE,YAAa;EACjC,eAAe,EAAE,YAAa;EAC9B,UAAU,EAAE,YAAa;EAEzB,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,mBAAoB;EAE5B,UAAU,EAAE,OAAQ;EACpB,gBAAgB,EAAE,gGAAgB;EAClC,gBAAgB,EAAE,mDAAuB;EACzC,gBAAgB,EAAE,gDAAoB;EACtC,gBAAgB,EAAE,+CAAmB;EACrC,gBAAgB,EAAE,8CAAkB,GACpC;;AAEA,AAAc,aAAD,CAAC,cAAc,CAAA;EAC3B,gBAAgB,EAAE,OAAQ;EAC1B,gBAAgB,EAAE,WAAI,GACtB;;AAED,AAAc,aAAD,CAAC,aAAa,CAAA;EAC1B,OAAO,EAAE,KAAM;EACf,IAAI,EAAE,qBAAsB;EAE5B,MAAM,EAAE,oGAAoG;EAC5G,UAAU,EAAE,uGAAwG,GACpH;;AAED,AAAc,aAAD,CAAC,UAAU,CAAA;EACvB,YAAY,EAAE,IAAK,GACnB;;AAED,AAA6B,aAAhB,CAAC,cAAc,CAAC,eAAe,CAAA;EAC3C,YAAY,EAAE,OAAQ,GACtB;;AAGF,gCAAgC;AAChC,AAAA,YAAY,CAAA;EACX,UAAU,EAAE,OAAQ;EACpB,UAAU,EAAE,kBAAI;EAChB,gBAAgB,EAAE,2EAAgB;EAClC,gBAAgB,EAAE,2CAAoB;EACtC,gBAAgB,EAAE,8CAAuB;EACzC,gBAAgB,EAAE,0CAAmB;EACrC,gBAAgB,EAAE,yCAAkB;EAEpC,MAAM,EAAE,cAAe;EACvB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAI;EAEtB,kBAAkB,EAAE,GAAI;EACxB,qBAAqB,EAAE,GAAI;EAC3B,aAAa,EAAE,GAAI;EAEnB,kBAAkB,EAAE,aAAc;EAClC,eAAe,EAAE,aAAc;EAC/B,UAAU,EAAE,aAAc,GAC1B;;AAEA,iBAAiB;AACjB,AAAa,YAAD,CAAC,cAAc,CAAA;EAC1B,gBAAgB,EAAE,WAAY;EAC9B,MAAM,EAAC,qFAAqF;EAC5F,UAAU,EAAE,uFAAwF,GACpG;;AACD,AAAa,YAAD,CAAC,aAAa,CAAA;EACzB,MAAM,EAAC,qFAAqF;EAC5F,UAAU,EAAE,uFAAwF,GACpG;;AAED,AAAa,YAAD,CAAC,cAAc;AAC3B,AAAa,YAAD,CAAC,aAAa,CAAA;EACzB,UAAU,EAAE,WAAY;EACxB,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,oBAAqB,GAC7B;;AAED,AAAa,YAAD,CAAC,UAAU,CAAA;EACtB,YAAY,EAAE,IAAK,GACnB;;AAED,AAA4B,YAAhB,CAAC,cAAc,CAAC,eAAe,CAAA;EAC1C,YAAY,EAAE,IAAK,GACnB;;AAGF,mBAAmB;AACnB,AAAA,aAAa,CAAA;EACZ,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAI;EACpC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAI;EACjC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAI;EAE5B,gBAAgB,EAAE,OAAQ;EAC1B,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,oBAAqB,GAC7B;;AAEA,AAAc,aAAD,CAAC,cAAc,CAAA;EAC3B,gBAAgB,EAAE,OAAQ;EAC1B,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,oBAAqB,GAC7B;;AAED,AAAc,aAAD,CAAC,UAAU,CAAA;EACvB,YAAY,EAAE,OAAQ,GACtB;;AAED,AAA6B,aAAhB,CAAC,cAAc,CAAC,eAAe,CAAA;EAC3C,YAAY,EAAE,OAAQ;EACtB,KAAK,EAAE,OAAQ,GACf;;AAGF,iBAAiB;AACjB,AAAA,WAAW,CAAA;EACV,UAAU,EAAE,KAAM;EAClB,UAAU,EAAE,mBAAI;EAEhB,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,mBAAoB;EAE5B,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,2BAA4B;EACzC,WAAW,EAAE,IAAK;EAClB,WAAW,EAAE,IAAK;EAClB,WAAW,EAAE,WAAY,GACzB;;AAEA,AAAY,WAAD,CAAC,cAAc,CAAA;EACzB,OAAO,EAAE,eAAgB;EACzB,gBAAgB,EAAE,WAAY,GAC9B;;AAED,AAAY,WAAD,CAAC,aAAa,CAAA;EACxB,OAAO,EAAE,QAAS,GAClB;;AAED,AAAY,WAAD,CAAC,UAAU,CAAA;EACrB,YAAY,EAAE,IAAK;EACnB,WAAW,EAAE,IAAK,GAClB;;AAED,AAA2B,WAAhB,CAAC,cAAc,CAAC,eAAe,CAAA;EACzC,YAAY,EAAE,OAAQ,GACtB;;AAGF,kBAAkB;AAClB,AAAA,YAAY,CAAA;EACX,MAAM,EAAE,iBAAkB;EAE1B,kBAAkB,EAAE,GAAI;EACxB,qBAAqB,EAAE,GAAI;EAC3B,aAAa,EAAE,GAAI;EAEnB,gBAAgB,EAAE,OAAQ;EAC1B,KAAK,EAAE,OAAQ;EAEf,WAAW,EAAE,MAAO;EACpB,WAAW,EAAE,KAAM,GACnB;;AAEA,AAAa,YAAD,CAAC,cAAc,CAAA;EAC1B,mBAAmB,EAAE,CAAE;EAEvB,KAAK,EAAE,KAAM;EACb,UAAU,EAAE,OAAQ;EACpB,gBAAgB,EAAE,2EAAgB;EAClC,gBAAgB,EAAE,8CAAuB;EACzC,gBAAgB,EAAE,2CAAoB;EACtC,gBAAgB,EAAE,0CAAmB;EACrC,gBAAgB,EAAE,yCAAkB;EACpC,MAAM,EAAC,qFAAqF;EAC5F,UAAU,EAAE,uFAAwF,GACpG;;AAED,AAAa,YAAD,CAAC,UAAU,CAAA;EACtB,MAAM,EAAE,iBAAkB;EAC1B,UAAU,EAAE,OAAQ,GACpB;;AAEA,AAAwB,YAAZ,CAAC,UAAU,CAAC,QAAQ,CAAA;EAC/B,gBAAgB,EAAE,OAAQ;EAC1B,KAAK,EAAE,IAAK,GACZ;;AAGH;;;;;GAKG;AACH,AAAA,eAAe,CAAA;EACd,gCAAgC;EAChC,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,IAAK;EAClB,KAAK,EAAE,OAAQ;EAEf,oCAAoC;EACpC,OAAO,EAAE,GAAI;EACb,gBAAgB,EAAE,OAAQ;EAC1B,MAAM,EAAE,cAAe;EACvB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,kBAAI;EACtB,qBAAqB,EAAE,GAAI;EAC3B,kBAAkB,EAAE,GAAI;EACxB,aAAa,EAAE,GAAI;EACnB,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAI;EACnC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAI;EAChC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAI;EAC3B,uBAAuB,EAAE,WAAY;EACrC,oBAAoB,EAAE,OAAQ;EAC9B,eAAe,EAAE,WAAY,GAC7B;;AAEA,AAAgB,eAAD,CAAC,cAAc,CAAA;EAC7B,0CAA0C;EAC1C,OAAO,EAAE,QAAS;EAClB,MAAM,EAAE,CAAE;EACV,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,MAAO;EACpB,WAAW,EAAE,IAAK;EAClB,gBAAgB,EAAE,OAAQ;EAC1B,aAAa,EAAE,iBAAkB;EACjC,qBAAqB,EAAE,WAAY;EACnC,kBAAkB,EAAE,WAAY;EAChC,aAAa,EAAE,WAAY,GAC3B;;AAEA,AAA+B,eAAhB,CAAC,cAAc,CAAC,WAAW,CAAA;EACzC;;;;;;;;;MASG;EACH,KAAK,EAAE,IAAK;EACZ,GAAG,EAAE,GAAI;EACT,YAAY,EAAE,IAAK,GACnB;;AAEF,AAAgB,eAAD,CAAC,aAAa,CAAA;EAC5B,4CAA4C;EAC5C,OAAO,EAAE,QAAS,GAClB;;AAED,AAAgB,eAAD,CAAC,UAAU,CAAA;EACzB;;;;;;;KAOG;EACH,UAAU,EAAE,WAAY,GACxB;;AAEA,AAA2B,eAAZ,CAAC,UAAU,CAAC,QAAQ,CAAA;EAClC;;;;;;MAMG;EACH,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EAEb,iCAAiC;EACjC,KAAK,EAAE,KAAM;EACb,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,IAAK;EAClB,WAAW,EAAE,IAAK;EAClB,KAAK,EAAE,OAAQ;EACf,WAAW,EAAE,eAAgB;EAC7B,OAAO,EAAE,GAAI;EACb,MAAM,EAAE,iBAAK,GACb;;AAED,AAAmC,eAApB,CAAC,UAAU,CAAC,QAAQ,AAAA,MAAM,CAAA;EACxC,uCAAuC;EACvC,KAAK,EAAE,OAAQ;EACf,eAAe,EAAE,IAAK;EACtB,MAAM,EAAE,OAAQ;EAChB,OAAO,EAAE,GAAI;EACb,MAAM,EAAE,iBAAK,GACb;;AAGH,mCAAmC;AACnC,AAAyB,KAApB,AAAA,IAAK,CAAA,AAAA,UAAU,EAAE,GAAG,AAAA,aAAa;AACtC,AAAyB,KAApB,AAAA,IAAK,CAAA,AAAA,UAAU,EAAE,GAAG,AAAA,cAAc,CAAA;EACtC,MAAM,EAAE,IAAK;EACb,UAAU,EAAE,IAAK,GACjB;;AAGD,AAAM,KAAD,CAAC,SAAS,CAAA;EACd,MAAM,EAAE,MAAO;EACf,QAAQ,EAAE,MAAO;EACjB,OAAO,EAAE,EAAG,GAEZ;;AAEA;+CAC8C;AAC9C,AAAC,CAAA,AAAA,YAAY,EAAE,AAAM,KAAD,CAAC,SAAS,CAAA;EAC7B,UAAU,EAAE,MAAO,GACnB;;AAED,AAAM,KAAD,CAAC,SAAS;AACf,AAAgB,KAAX,CAAC,SAAS,CAAC,SAAS;AACzB,AAAgB,KAAX,CAAC,SAAS,CAAC,MAAM,CAAA;EACrB,QAAQ,EAAE,QAAS;EAEnB,KAAK,EAAE,OAAQ;EACf,UAAU,EAAE,WAAY;EACxB,MAAM,EAAE,oBAAqB,GAC7B;;AAED,AAAgB,KAAX,CAAC,SAAS,CAAC,MAAM,CAAA;EAAE,GAAG,EAAE,CAAE;EAAE,IAAI,EAAE,CAAE,GAAI;;AAE7C,AAAgB,KAAX,CAAC,SAAS,CAAC,SAAS,CAAA;EACxB,QAAQ,EAAkB,iBAAC;EAC3B,OAAO,EAAE,YAAa;EACtB,UAAU,EAAE,OAAQ,GACpB;;AAGF,AAAA,aAAa,CAAA;EACZ,QAAQ,EAAE,KAAM;EAChB,IAAI,EAAE,CAAE;EAAE,GAAG,EAAE,CAAE;EACjB,KAAK,EAAE,IAAK;EAAE,MAAM,EAAE,IAAK,GAC3B;;AAEA,wDAAwD;AACxD,AAAa,aAAA,AAAA,MAAM,CAAA;EAAE,MAAM,EAAE,OAAQ,GAAI;;AAEzC,oCAAoC;AACpC,AAAc,aAAD,CAAC,GAAG,CAAA;EAChB,QAAQ,EAAE,QAAS;EACnB,IAAI,EAAE,CAAE;EAAE,GAAG,EAAE,CAAE;EACjB,KAAK,EAAE,IAAK;EAAE,MAAM,EAAE,IAAK;EAE3B,gBAAgB,EAAE,KAAM;EAExB,OAAO,EAAE,GAAI;EACb,MAAM,EAAC,iBAAK;EACZ,UAAU,EAAC,qDAAsD,GACjE;;AAGF,AAAA,iBAAiB,CAAA;EAChB,QAAQ,EAAE,mBAAoB,GAC9B;;ACxmBD;;;;;;;EAOE;AAKF,AAAI,IAAA,AAAA,kBAAkB,CAAC;EACtB,gBAAgB,EAAE,IAAK;EACvB,KAAK,EAAE,OAAQ;EACf,MAAM,EAAE,CAAE;EACV,WAAW,EAAE,qBAAsB;EACnC,SAAS,EAAE,IAAK,GAwChB;EA7CD,AAOC,IAPG,AAAA,kBAAkB,CAOrB,qBAAqB,CAAC;IACrB,KAAK,EAAE,KAAM;IACb,MAAM,EAAE,MAAO;IACf,OAAO,EAAE,MAAO,GAChB;EAXF,AAaC,IAbG,AAAA,kBAAkB,CAarB,KAAK,CAAC;IACL,OAAO,EAAE,KAAM;IACf,KAAK,EAAE,IAAK;IACZ,aAAa,EAAE,iBAAkB;IACjC,eAAe,EAAE,QAAS;IAC1B,cAAc,EAAE,CAAE;IAClB,SAAS,EAAE,IAAK;IAChB,WAAW,EAAE,CAAE;IACf,MAAM,EAAE,QAAS,GACjB;EAtBF,AAwBC,IAxBG,AAAA,kBAAkB,CAwBrB,EAAE,EAxBH,AAwBK,IAxBD,AAAA,kBAAkB,CAwBjB,EAAE,CAAC;IACN,OAAO,EAAE,UAAW;IACpB,UAAU,EAAE,IAAK;IACjB,UAAU,EAAE,iBAAkB;IAC9B,OAAO,EAAE,cAAe;IACxB,WAAW,EAAE,MAAO,GACpB;EA9BF,AAgCC,IAhCG,AAAA,kBAAkB,CAgCrB,EAAE,CAAC;IACF,WAAW,EAAE,IAAK;IAClB,cAAc,EAAE,SAAU,GAC1B;EAnCF,AAqCC,IArCG,AAAA,kBAAkB,CAqCrB,EAAE,CAAC;IACF,SAAS,EAAE,IAAK;IAChB,MAAM,EAAE,UAAW;IACnB,KAAK,EAAE,IAAK;IACZ,OAAO,EAAE,KAAM;IACf,WAAW,EAAE,IAAK,GAClB;;AAQF,AAAK,KAAA,AAAA,+BAA+B;AACpC,AAAK,KAAA,AAAA,sBAAsB,CAAC;EAC3B,KAAK,EAAE,IAAK,GACZ;;AAED,AAEC,KAFI,AAAA,sBAAsB,CAE1B,EAAE,EAFH,AAEK,KAFA,AAAA,sBAAsB,CAEtB,EAAE,EAFP,AAES,KAFJ,AAAA,sBAAsB,CAElB,EAAE,EAFX,AAEa,KAFR,AAAA,sBAAsB,CAEd,EAAE,CAAC;EACd,UAAU,EAAE,IAAK,GACjB;;AAJF,AAMC,KANI,AAAA,sBAAsB,CAM1B,wBAAwB,CAAC;EACxB,SAAS,EAAE,IAAK;EAChB,UAAU,EAAE,MAAO;EACnB,OAAO,EAAE,KAAM,GAMf;EAfF,AAWI,KAXC,AAAA,sBAAsB,CAM1B,wBAAwB,GAKrB,IAAI,CAAC;IACN,SAAS,EAAE,IAAK,GAChB;;AAbH,AAiBC,KAjBI,AAAA,sBAAsB,CAiB1B,EAAE,CAAC;EACF,MAAM,EAAE,YAAa,GACrB;;AAnBF,AAqBC,KArBI,AAAA,sBAAsB,CAqB1B,EAAE,CAAC;EACF,MAAM,EAAE,CAAE;EACV,OAAO,EAAE,CAAE;EACX,UAAU,EAAE,IAAK,GACjB;;AAzBF,AA2B6B,KA3BxB,AAAA,sBAAsB,CA2B1B,4BAA4B,AAAA,QAAQ;AA3BrC,AA4B6B,KA5BxB,AAAA,sBAAsB,CA4B1B,4BAA4B,AAAA,QAAQ;AA5BrC,AA6B6B,KA7BxB,AAAA,sBAAsB,CA6B1B,4BAA4B,AAAA,OAAO,CAAC;EACnC,KAAK,EAAE,OAAQ,GACf;;AA/BF,AAiCK,KAjCA,AAAA,sBAAsB,CAiC1B,IAAI,AAAA,yBAAyB,CAAC;EAC7B,UAAU,EAAE,MAAO;EACnB,OAAO,EAAE,KAAM,GACf;;ACxGF;;;;;;;EAOE;AAEF;;wCAEwC;AACxC,AAAA,cAAc,CAAC;EJRb,KAAK,EAAE,CAAE,GIUV;EAFD,AAAA,cAAc,AJNX,OAAO,EIMV,AAAA,cAAc,AJLX,MAAM,CAAC;IACN,OAAO,EAAE,GAAI;IACb,OAAO,EAAE,KAAM,GAChB;EIEH,AAAA,cAAc,AJAX,MAAM,CAAC;IACN,KAAK,EAAE,IAAK,GACb;;CIEH,AAAA,AAEE,EAFD,EAAI,WAAW,AAAf,EAEC,YAAY,CAAC;EACX,OAAO,EAAE,IAAK,GACf;;CAJH,AAAA,AAME,EAND,EAAI,WAAW,AAAf,EAMC,QAAQ,CAAC;EACP,MAAM,EAAE,IAAK;EACb,OAAO,EAAE,CAAE;EACX,MAAM,EAAE,CAAE;EACV,MAAM,EAAE,CAAE,GACX;;CAXH,AAAA,AAaE,EAbD,EAAI,WAAW,AAAf,EAaC,gBAAgB,CAAC;EACf,MAAM,EAAE,QAAS,GAClB;;CAfH,AAAA,AAiBK,EAjBJ,EAAI,WAAW,AAAf,EAiBC,GAAG,AAAA,kBAAkB,CAAC;EACpB,KAAK,EAAE,GAAI;EACX,KAAK,EAAE,IAAK,GACb;;CApBH,AAAA,AAsBK,EAtBJ,EAAI,WAAW,AAAf,EAsBC,GAAG,AAAA,OAAO,CAAC;EACT,MAAM,EAAE,QAAS,GAQlB;GA/BH,AAAA,AAyBI,EAzBH,EAAI,WAAW,AAAf,EAsBC,GAAG,AAAA,OAAO,CAGR,GAAG,CAAC;IACF,OAAO,EAAE,KAAM;IACf,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK;IACb,UAAU,EAAE,IAAK,GAClB;;CA9BL,AAAA,AAiCE,EAjCD,EAAI,WAAW,AAAf,EAiCC,wBAAwB,CAAC;EACvB,KAAK,EAAE,IAAK,GACb;;CAnCH,AAAA,AAqCK,EArCJ,EAAI,WAAW,AAAf,EAqCC,GAAG,AAAA,QAAQ,CAAC;EACV,KAAK,EAAE,GAAI;EACX,KAAK,EAAE,KAAM,GAMd;GA7CH,AAAA,AAqCK,EArCJ,EAAI,WAAW,AAAf,EAqCC,GAAG,AAAA,QAAQ,AAIR,gBAAgB,CAAC;IAChB,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,IAAK,GACb;;CA5CL,AAAA,AA+C+B,EA/C9B,EAAI,WAAW,AAAf,EA+CC,UAAU,CAAC,MAAM,AAAA,YAAY,AAAA,SAAS,CAAC;EACrC,KAAK,EAAE,IAAK,GACb;;CAjDH,AAAA,AAmDK,EAnDJ,EAAI,WAAW,AAAf,EAmDC,GAAG,AAAA,uBAAuB,CAAC;EACzB,MAAM,EAAE,QAAS,GAClB;;CArDH,AAAA,AAuD4B,EAvD3B,EAAI,WAAW,AAAf,EAuDC,GAAG,AAAA,uBAAuB,AAAA,uBAAuB,CAAC;EAChD,MAAM,EAAE,UAAW,GACpB;;CAzDH,AAAA,AA4DI,EA5DH,EAAI,WAAW,AAAf,CA2DE,oBAAoB,CACnB,SAAS,GA5Db,AAAA,AA4DI,EA5DH,EAAI,WAAW,AAAf,CA2DyB,mBAAmB,CACzC,SAAS,CAAC;EACR,MAAM,EAAE,QAAS,GAClB;;CA9DL,AAAA,AA+DI,EA/DH,EAAI,WAAW,AAAf,CA2DE,oBAAoB,CAInB,yBAAyB,GA/D7B,AAAA,AA+D+B,EA/D9B,EAAI,WAAW,AAAf,CA2DE,oBAAoB,CAIQ,wBAAwB,GA/DvD,AAAA,AA+DI,EA/DH,EAAI,WAAW,AAAf,CA2DyB,mBAAmB,CAIzC,yBAAyB,GA/D7B,AAAA,AA+D+B,EA/D9B,EAAI,WAAW,AAAf,CA2DyB,mBAAmB,CAId,wBAAwB,CAAC;EAClD,OAAO,EAAE,IAAK,GACf;;CAjEL,AAAA,AAoEE,EApED,EAAI,WAAW,AAAf,EAoEC,WAAW,CAAC;EACV,aAAa,EAAE,IAAK,GACrB;;AAGH;;wCAEwC;AAExC,AAE6C,kBAF3B,AAEf,iBAAiB,CAAC,aAAa,CAAC,UAAU,AAAA,OAAO,CAAC;EACjD,OAAO,EAAE,IAAK,GACf;;AAJH,AAME,kBANgB,CAMhB,WAAW,CAAC;EJ/FZ,KAAK,EAAE,CAAE,GIiGR;EARH,AAME,kBANgB,CAMhB,WAAW,AJ7FV,OAAO,EIuFV,AAME,kBANgB,CAMhB,WAAW,AJ5FV,MAAM,CAAC;IACN,OAAO,EAAE,GAAI;IACb,OAAO,EAAE,KAAM,GAChB;EImFH,AAME,kBANgB,CAMhB,WAAW,AJvFV,MAAM,CAAC;IACN,KAAK,EAAE,IAAK,GACb;;AI2FH;;wCAEwC;AACxC,AAEE,wBAFsB,CAEtB,qBAAqB,CAAC;EACpB,MAAM,EAAE,QAAS,GAClB;;AAJH,AAME,wBANsB,CAMtB,6BAA6B,CAAC;EAC5B,UAAU,EAAE,IAAK;EACjB,MAAM,EAAE,CAAE;EACV,OAAO,EAAE,CAAE,GASZ;EAlBH,AAWI,wBAXoB,CAMtB,6BAA6B,CAK3B,EAAE,CAAC;IACD,eAAe,EAAE,IAAK;IACtB,OAAO,EAAE,YAAa;IACtB,MAAM,EAAE,SAAU;IAClB,OAAO,EAAE,CAAE,GACZ;;AAKL;;wCAEwC;AAExC,AAAoB,IAAhB,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf;AACL,AAAA,oBAAoB;AACpB,AAAI,IAAA,AAAA,UAAU,CAAC;EACb,MAAM,EAAE,QAAS;EACjB,OAAO,EAAE,CAAE,GAgJZ;EApJD,AAME,IANE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAMH,YAAY;EALd,AAKE,oBALkB,CAKlB,YAAY;EAJd,AAIE,IAJE,AAAA,UAAU,CAIZ,YAAY,CAAC;IACX,OAAO,EAAE,IAAK,GACf;EARH,AASE,IATE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EASH,aAAa;EARf,AAQE,oBARkB,CAQlB,aAAa;EAPf,AAOE,IAPE,AAAA,UAAU,CAOZ,aAAa,CAAC;IACZ,MAAM,EAAE,KAAM;IACd,OAAO,EAAE,CAAE;IACX,SAAS,EAAE,IAAK;IJ9GlB,eAAe,EAAE,eAAgB;IACjC,aAAa,EAAE,eAAgB;IAC/B,UAAU,EAAE,eAAgB;II8G1B,KAAK,EAAE,qBAAc,GAKtB;IAnBH,AASE,IATE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EASH,aAAa,AAOV,MAAM;IAfX,AAQE,oBARkB,CAQlB,aAAa,AAOV,MAAM;IAdX,AAOE,IAPE,AAAA,UAAU,CAOZ,aAAa,AAOV,MAAM,CAAC;MACN,KAAK,EL9IJ,IAAI,GK+IN;EAlBL,AAqBE,IArBE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAqBH,MAAM;EArBR,AAsBI,IAtBA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsBH,EAAE,AAAA,mBAAmB;EAtBvB,AAuBI,IAvBA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAuBH,EAAE,AAAA,mBAAmB;EAtBvB,AAoBE,oBApBkB,CAoBlB,MAAM;EApBR,AAqBI,oBArBgB,CAqBlB,EAAE,AAAA,mBAAmB;EArBvB,AAsBI,oBAtBgB,CAsBlB,EAAE,AAAA,mBAAmB;EArBvB,AAmBE,IAnBE,AAAA,UAAU,CAmBZ,MAAM;EAnBR,AAoBI,IApBA,AAAA,UAAU,CAoBZ,EAAE,AAAA,mBAAmB;EApBvB,AAqBI,IArBA,AAAA,UAAU,CAqBZ,EAAE,AAAA,mBAAmB,CAAC;IACpB,SAAS,EAAE,MAAO;IAClB,WAAW,EAAE,IAAK;IAClB,MAAM,EAAE,WAAY;IACpB,OAAO,EAAE,OAAQ;IACjB,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,kBAAI;IAC7B,KAAK,EAAE,IAAK,GAMb;IAnCH,AA+BQ,IA/BJ,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAqBH,MAAM,CAUJ,IAAI,AAAA,SAAS;IA/BjB,AA+BQ,IA/BJ,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsBH,EAAE,AAAA,mBAAmB,CASnB,IAAI,AAAA,SAAS;IA/BjB,AA+BQ,IA/BJ,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAuBH,EAAE,AAAA,mBAAmB,CAQnB,IAAI,AAAA,SAAS;IA9BjB,AA8BQ,oBA9BY,CAoBlB,MAAM,CAUJ,IAAI,AAAA,SAAS;IA9BjB,AA8BQ,oBA9BY,CAqBlB,EAAE,AAAA,mBAAmB,CASnB,IAAI,AAAA,SAAS;IA9BjB,AA8BQ,oBA9BY,CAsBlB,EAAE,AAAA,mBAAmB,CAQnB,IAAI,AAAA,SAAS;IA7BjB,AA6BQ,IA7BJ,AAAA,UAAU,CAmBZ,MAAM,CAUJ,IAAI,AAAA,SAAS;IA7BjB,AA6BQ,IA7BJ,AAAA,UAAU,CAoBZ,EAAE,AAAA,mBAAmB,CASnB,IAAI,AAAA,SAAS;IA7BjB,AA6BQ,IA7BJ,AAAA,UAAU,CAqBZ,EAAE,AAAA,mBAAmB,CAQnB,IAAI,AAAA,SAAS,CAAC;MACZ,UAAU,EAAE,MAAO;MACnB,WAAW,EAAE,MAAO,GACrB;EAlCL,AAsCE,IAtCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS;EArCX,AAqCE,oBArCkB,CAqClB,SAAS;EApCX,AAoCE,IApCE,AAAA,UAAU,CAoCZ,SAAS,CAAC;IJvKV,KAAK,EAAE,CAAE;IAsBT,kBAAkB,EImJI,UAAU;IJlJhC,eAAe,EIkJO,UAAU;IJjJhC,UAAU,EIiJY,UAAU;IAC9B,MAAM,EAAE,QAAS;IACjB,QAAQ,EAAE,OAAQ;IAClB,OAAO,EAAE,CAAE,GAuCZ;IAlFH,AAsCE,IAtCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,AJrKR,OAAO,EI+HV,AAsCE,IAtCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,AJpKR,MAAM;II+HT,AAqCE,oBArCkB,CAqClB,SAAS,AJrKR,OAAO;IIgIV,AAqCE,oBArCkB,CAqClB,SAAS,AJpKR,MAAM;IIgIT,AAoCE,IApCE,AAAA,UAAU,CAoCZ,SAAS,AJrKR,OAAO;IIiIV,AAoCE,IApCE,AAAA,UAAU,CAoCZ,SAAS,AJpKR,MAAM,CAAC;MACN,OAAO,EAAE,GAAI;MACb,OAAO,EAAE,KAAM,GAChB;II2HH,AAsCE,IAtCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,AJ/JR,MAAM;II0HT,AAqCE,oBArCkB,CAqClB,SAAS,AJ/JR,MAAM;II2HT,AAoCE,IApCE,AAAA,UAAU,CAoCZ,SAAS,AJ/JR,MAAM,CAAC;MACN,KAAK,EAAE,IAAK,GACb;IIuHH,AAsCE,IAtCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,AAQN,WAAW;IA7ChB,AAqCE,oBArCkB,CAqClB,SAAS,AAQN,WAAW;IA5ChB,AAoCE,IApCE,AAAA,UAAU,CAoCZ,SAAS,AAQN,WAAW,CAAC;MACX,aAAa,EAAE,IAAK,GACrB;IAhDL,AAkDI,IAlDA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAYP,KAAK;IAjDT,AAiDI,oBAjDgB,CAqClB,SAAS,CAYP,KAAK;IAhDT,AAgDI,IAhDA,AAAA,UAAU,CAoCZ,SAAS,CAYP,KAAK,CAAC;MACJ,OAAO,EAAE,KAAM;MACf,MAAM,EAAE,OAAQ;MAChB,QAAQ,EAAE,QAAS;MACnB,WAAW,EAAE,GAAI,GAMlB;MA5DL,AAkDI,IAlDA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAYP,KAAK,AAMF,SAAS;MAvDhB,AAiDI,oBAjDgB,CAqClB,SAAS,CAYP,KAAK,AAMF,SAAS;MAtDhB,AAgDI,IAhDA,AAAA,UAAU,CAoCZ,SAAS,CAYP,KAAK,AAMF,SAAS,CAAC;QACT,OAAO,EAAE,MAAO,GACjB;IA1DP,AA8DI,IA9DA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBP,MAAM,EA9DV,AA8DY,IA9DR,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBC,QAAQ,EA9DpB,AA8DuC,IA9DnC,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,GA9D5B,AA8D0D,IA9DtD,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,GA9DhD,AA8D+E,IA9D3E,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,GA9DnE,AA8DuG,IA9DnG,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf;IA7DxF,AA6DI,oBA7DgB,CAqClB,SAAS,CAwBP,MAAM;IA7DV,AA6DY,oBA7DQ,CAqClB,SAAS,CAwBC,QAAQ;IA7DpB,AA6DuC,oBA7DnB,CAqClB,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;IA7D5B,AA6D0D,oBA7DtC,CAqClB,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV;IA7DhD,AA6D+E,oBA7D3D,CAqClB,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;IA7DnE,AA6DuG,oBA7DnF,CAqClB,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf;IA5DxF,AA4DI,IA5DA,AAAA,UAAU,CAoCZ,SAAS,CAwBP,MAAM;IA5DV,AA4DY,IA5DR,AAAA,UAAU,CAoCZ,SAAS,CAwBC,QAAQ;IA5DpB,AA4DuC,IA5DnC,AAAA,UAAU,CAoCZ,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;IA5D5B,AA4D0D,IA5DtD,AAAA,UAAU,CAoCZ,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV;IA5DhD,AA4D+E,IA5D3E,AAAA,UAAU,CAoCZ,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;IA5DnE,AA4DuG,IA5DnG,AAAA,UAAU,CAoCZ,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,EAAiB;MJzKvG,kBAAkB,EI0KM,UAAU;MJzKlC,eAAe,EIyKS,UAAU;MJxKlC,UAAU,EIwKc,UAAU;MAC9B,KAAK,EAAE,IAAK;MACZ,aAAa,EAAE,CAAE;MACjB,OAAO,EAAE,IAAK;MACd,KAAK,ELhMJ,IAAI;MKiML,gBAAgB,EAAE,OAAQ;MAC1B,MAAM,EAAE,GAAG,CAAC,KAAK,CLjMb,IAAI;MKkMR,MAAM,EAAE,CAAE;MACV,OAAO,EAAE,IAAK,GASf;MAhFL,AA8DI,IA9DA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBP,MAAM,AAWH,MAAM,EAzEb,AA8DY,IA9DR,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBC,QAAQ,AAWb,MAAM,EAzEb,AA8DuC,IA9DnC,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAWrB,MAAM,EAzEb,AA8D0D,IA9DtD,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAWzC,MAAM,EAzEb,AA8D+E,IA9D3E,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAW5D,MAAM,EAzEb,AA8DuG,IA9DnG,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAWjF,MAAM;MAxEb,AA6DI,oBA7DgB,CAqClB,SAAS,CAwBP,MAAM,AAWH,MAAM;MAxEb,AA6DY,oBA7DQ,CAqClB,SAAS,CAwBC,QAAQ,AAWb,MAAM;MAxEb,AA6DuC,oBA7DnB,CAqClB,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAWrB,MAAM;MAxEb,AA6D0D,oBA7DtC,CAqClB,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAWzC,MAAM;MAxEb,AA6D+E,oBA7D3D,CAqClB,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAW5D,MAAM;MAxEb,AA6DuG,oBA7DnF,CAqClB,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAWjF,MAAM;MAvEb,AA4DI,IA5DA,AAAA,UAAU,CAoCZ,SAAS,CAwBP,MAAM,AAWH,MAAM;MAvEb,AA4DY,IA5DR,AAAA,UAAU,CAoCZ,SAAS,CAwBC,QAAQ,AAWb,MAAM;MAvEb,AA4DuC,IA5DnC,AAAA,UAAU,CAoCZ,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAWrB,MAAM;MAvEb,AA4D0D,IA5DtD,AAAA,UAAU,CAoCZ,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAWzC,MAAM;MAvEb,AA4D+E,IA5D3E,AAAA,UAAU,CAoCZ,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAW5D,MAAM;MAvEb,AA4DuG,IA5DnG,AAAA,UAAU,CAoCZ,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAWjF,MAAM,CAAC;QACN,gBAAgB,EAAE,IAAK,GACxB;MA3EP,AA8DI,IA9DA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBP,MAAM,AAcH,SAAS,EA5EhB,AA8DY,IA9DR,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBC,QAAQ,AAcb,SAAS,EA5EhB,AA8DuC,IA9DnC,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAcrB,SAAS,EA5EhB,AA8D0D,IA9DtD,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAczC,SAAS,EA5EhB,AA8D+E,IA9D3E,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAc5D,SAAS,EA5EhB,AA8DuG,IA9DnG,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsCH,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAcjF,SAAS;MA3EhB,AA6DI,oBA7DgB,CAqClB,SAAS,CAwBP,MAAM,AAcH,SAAS;MA3EhB,AA6DY,oBA7DQ,CAqClB,SAAS,CAwBC,QAAQ,AAcb,SAAS;MA3EhB,AA6DuC,oBA7DnB,CAqClB,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAcrB,SAAS;MA3EhB,AA6D0D,oBA7DtC,CAqClB,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAczC,SAAS;MA3EhB,AA6D+E,oBA7D3D,CAqClB,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAc5D,SAAS;MA3EhB,AA6DuG,oBA7DnF,CAqClB,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAcjF,SAAS;MA1EhB,AA4DI,IA5DA,AAAA,UAAU,CAoCZ,SAAS,CAwBP,MAAM,AAcH,SAAS;MA1EhB,AA4DY,IA5DR,AAAA,UAAU,CAoCZ,SAAS,CAwBC,QAAQ,AAcb,SAAS;MA1EhB,AA4DuC,IA5DnC,AAAA,UAAU,CAoCZ,SAAS,CAwBW,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAcrB,SAAS;MA1EhB,AA4D0D,IA5DtD,AAAA,UAAU,CAoCZ,SAAS,CAwB+B,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAczC,SAAS;MA1EhB,AA4D+E,IA5D3E,AAAA,UAAU,CAoCZ,SAAS,CAwBkD,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAc5D,SAAS;MA1EhB,AA4DuG,IA5DnG,AAAA,UAAU,CAoCZ,SAAS,CAwBuE,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAcjF,SAAS,CAAC;QACT,KAAK,EL1MN,IAAI,GK2MJ;EA9EP,AAoFE,IApFE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAoFH,eAAe;EApFjB,AAqFE,IArFE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAqFH,cAAc;EApFhB,AAmFE,oBAnFkB,CAmFlB,eAAe;EAnFjB,AAoFE,oBApFkB,CAoFlB,cAAc;EAnFhB,AAkFE,IAlFE,AAAA,UAAU,CAkFZ,eAAe;EAlFjB,AAmFE,IAnFE,AAAA,UAAU,CAmFZ,cAAc,CAAC;IACb,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,KAAM,GACd;EAxFH,AA0FE,IA1FE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA0FH,cAAc;EAzFhB,AAyFE,oBAzFkB,CAyFlB,cAAc;EAxFhB,AAwFE,IAxFE,AAAA,UAAU,CAwFZ,cAAc,CAAC;IACb,KAAK,EAAE,KAAM,GACd;EA5FH,AA8FE,IA9FE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA8FH,cAAc;EA7FhB,AA6FE,oBA7FkB,CA6FlB,cAAc;EA5FhB,AA4FE,IA5FE,AAAA,UAAU,CA4FZ,cAAc,CAAC;IJ/Nf,KAAK,EAAE,CAAE;IIiOP,KAAK,EAAE,IAAK,GACb;IAjGH,AA8FE,IA9FE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA8FH,cAAc,AJ7Nb,OAAO,EI+HV,AA8FE,IA9FE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA8FH,cAAc,AJ5Nb,MAAM;II+HT,AA6FE,oBA7FkB,CA6FlB,cAAc,AJ7Nb,OAAO;IIgIV,AA6FE,oBA7FkB,CA6FlB,cAAc,AJ5Nb,MAAM;IIgIT,AA4FE,IA5FE,AAAA,UAAU,CA4FZ,cAAc,AJ7Nb,OAAO;IIiIV,AA4FE,IA5FE,AAAA,UAAU,CA4FZ,cAAc,AJ5Nb,MAAM,CAAC;MACN,OAAO,EAAE,GAAI;MACb,OAAO,EAAE,KAAM,GAChB;II2HH,AA8FE,IA9FE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA8FH,cAAc,AJvNb,MAAM;II0HT,AA6FE,oBA7FkB,CA6FlB,cAAc,AJvNb,MAAM;II2HT,AA4FE,IA5FE,AAAA,UAAU,CA4FZ,cAAc,AJvNb,MAAM,CAAC;MACN,KAAK,EAAE,IAAK,GACb;EIuHH,AAmGE,IAnGE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAmGH,oBAAoB;EAlGtB,AAkGE,oBAlGkB,CAkGlB,oBAAoB;EAjGtB,AAiGE,IAjGE,AAAA,UAAU,CAiGZ,oBAAoB,CAAC;IACnB,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,MAAO,GAKf;IA1GH,AAmGE,IAnGE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAmGH,oBAAoB,AAIjB,eAAe;IAtGpB,AAkGE,oBAlGkB,CAkGlB,oBAAoB,AAIjB,eAAe;IArGpB,AAiGE,IAjGE,AAAA,UAAU,CAiGZ,oBAAoB,AAIjB,eAAe,CAAC;MACf,WAAW,EAAE,CAAE,GAChB;EAzGL,AA4GE,IA5GE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA4GH,mBAAmB;EA3GrB,AA2GE,oBA3GkB,CA2GlB,mBAAmB;EA1GrB,AA0GE,IA1GE,AAAA,UAAU,CA0GZ,mBAAmB,CAAC;IAClB,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,MAAO;IACd,WAAW,EAAE,EAAG,GAKjB;IApHH,AA4GE,IA5GE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA4GH,mBAAmB,AAKhB,eAAe;IAhHpB,AA2GE,oBA3GkB,CA2GlB,mBAAmB,AAKhB,eAAe;IA/GpB,AA0GE,IA1GE,AAAA,UAAU,CA0GZ,mBAAmB,AAKhB,eAAe,CAAC;MACf,WAAW,EAAE,CAAE,GAChB;EAKD,MAAM,EAAL,SAAS,EAAE,KAAK;IAxHrB,AAsHE,IAtHE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAsHH,oBAAoB;IArHtB,AAqHE,oBArHkB,CAqHlB,oBAAoB;IApHtB,AAoHE,IApHE,AAAA,UAAU,CAoHZ,oBAAoB,CAAC;MAGjB,WAAW,EAAE,CAAE;MACf,YAAY,EAAE,CAAE;MAChB,KAAK,EAAE,IAAK,GAEf;EA7HH,AA+HE,IA/HE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA+HH,WAAW;EA/Hb,AAgIE,IAhIE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgIH,wBAAwB;EA/H1B,AA8HE,oBA9HkB,CA8HlB,WAAW;EA9Hb,AA+HE,oBA/HkB,CA+HlB,wBAAwB;EA9H1B,AA6HE,IA7HE,AAAA,UAAU,CA6HZ,WAAW;EA7Hb,AA8HE,IA9HE,AAAA,UAAU,CA8HZ,wBAAwB,CAAC;IACvB,KAAK,ELjQH,IAAI,GKkQP;EAlIH,AAqIM,IArIF,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAoIH,gBAAgB,GACZ,MAAM;EApIZ,AAoIM,oBApIc,CAmIlB,gBAAgB,GACZ,MAAM;EAnIZ,AAmIM,IAnIF,AAAA,UAAU,CAkIZ,gBAAgB,GACZ,MAAM,CAAC;IACP,KAAK,EAAE,GAAI;IACX,MAAM,EAAE,CAAE,GACX;EAxIL,AAyIU,IAzIN,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAoIH,gBAAgB,GAKZ,IAAI,AAAA,YAAY;EAxItB,AAwIU,oBAxIU,CAmIlB,gBAAgB,GAKZ,IAAI,AAAA,YAAY;EAvItB,AAuIU,IAvIN,AAAA,UAAU,CAkIZ,gBAAgB,GAKZ,IAAI,AAAA,YAAY,CAAC;IACjB,OAAO,EAAE,MAAO;IAChB,UAAU,EAAE,MAAO,GACpB;EA5IL,AA8IU,IA9IN,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAoIH,gBAAgB,CAUd,MAAM,AAAA,iBAAiB;EA7I3B,AA6IU,oBA7IU,CAmIlB,gBAAgB,CAUd,MAAM,AAAA,iBAAiB;EA5I3B,AA4IU,IA5IN,AAAA,UAAU,CAkIZ,gBAAgB,CAUd,MAAM,AAAA,iBAAiB,CAAC;IACtB,KAAK,EAAE,KAAM,GACd;;AAML;;qCAEqC;AAErC,AAEE,IAFE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAAC;EACpB,MAAM,EAAE,QAAS,GAwClB;EA3CH,AAKI,IALA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAGnB,qBAAqB,CAAC;IJjNxB,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,GAAG,CAAC,KAAK,CD3Eb,IAAI;IC4EZ,aAAa,EAAE,GAAG,CAAC,KAAK,CD5EhB,IAAI;IC6EZ,KAAK,ED9EA,IAAI;IC+ET,MAAM,EAAE,CAAE;IACV,OAAO,EAAE,MAAO;IAChB,MAAM,EAAE,IAAK;IACb,WAAW,EAAE,IAAK;IAClB,SAAS,EDvEQ,IAAI;ICMrB,kBAAkB,EAkEE,UAAU;IAjE9B,eAAe,EAiEK,UAAU;IAhE9B,UAAU,EAgEU,UAAU;II0M1B,KAAK,EAAE,IAAK,GAWb;IAlBL,AAKI,IALA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAGnB,qBAAqB,AAIlB,8BAA8B,CAAC;MAC9B,WAAW,EAAE,GAAG,CAAC,KAAK,CLhSpB,IAAI;MKiSN,YAAY,EAAE,IAAK,GACpB;IAZP,AAKI,IALA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAGnB,qBAAqB,AAQlB,6BAA6B,CAAC;MAC7B,WAAW,EAAE,IAAK;MAClB,YAAY,EAAE,GAAG,CAAC,KAAK,CLrSrB,IAAI,GKsSP;EAhBP,AAoBI,IApBA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAkBnB,YAAY;EApBhB,AAqBI,IArBA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAmBnB,iBAAiB,CAAC;IJpNpB,MAAM,EAAE,GAAG,CAAC,KAAK,CDvFT,IAAI;ICwFZ,UAAU,EAAE,IAAK;IACjB,aAAa,EAAE,CAAE;IACjB,MAAM,EAAE,IAAK;IACb,WAAW,EAAE,IAAK;IAClB,OAAO,EAAE,MAAO;IAChB,MAAM,EAAE,CAAE;IACV,SAAS,EDnFQ,IAAI;ICMrB,kBAAkB,EA8EE,UAAU;IA7E9B,eAAe,EA6EK,UAAU;IA5E9B,UAAU,EA4EU,UAAU;II8M1B,SAAS,EAAE,KAAM;IACjB,KAAK,EAAE,IAAK,GAMb;IA9BL,AAoBI,IApBA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAkBnB,YAAY,AAMT,eAAe;IA1BtB,AAqBI,IArBA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAmBnB,iBAAiB,AAKd,eAAe,CAAC;MACf,MAAM,EAAE,aAAc,GACvB;EA5BP,AAgCS,IAhCL,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CA8BnB,KAAK,AAAA,gBAAgB,CAAC;IACpB,KAAK,EAAE,KAAM,GACd;EAlCL,AAoCQ,IApCJ,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,qBAAqB,CAkCnB,IAAI,AAAA,wBAAwB,CAAC;IJnO/B,MAAM,EAAE,GAAG,CAAC,KAAK,CDvFT,IAAI;ICwFZ,UAAU,EAAE,IAAK;IACjB,aAAa,EAAE,CAAE;IACjB,MAAM,EAAE,IAAK;IACb,WAAW,EAAE,IAAK;IAClB,OAAO,EAAE,MAAO;IAChB,MAAM,EAAE,CAAE;IACV,SAAS,EDnFQ,IAAI;ICMrB,kBAAkB,EA8EE,UAAU;IA7E9B,eAAe,EA6EK,UAAU;IA5E9B,UAAU,EA4EU,UAAU;II6N1B,MAAM,EAAE,WAAY;IACpB,UAAU,EAAE,IAAK;IACjB,KAAK,EAAE,IAAK,GACb;;AAzCL,AA+CI,IA/CA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA6CH,qBAAqB,CAEnB,MAAM,CAAC;EACL,OAAO,EAAE,IAAK,GACf;;AAjDL,AAmDI,IAnDA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA6CH,qBAAqB,CAMnB,KAAK,CAAC;EACJ,OAAO,EAAE,YAAa,GACvB;;AArDL,AAyDE,IAzDE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,CAAC;EACrB,MAAM,EAAE,WAAY;EACpB,OAAO,EAAE,CAAE;EJtVb,KAAK,EAAE,CAAE,GIkXR;EAvFH,AAyDE,IAzDE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,AJlVrB,OAAO,EIyRV,AAyDE,IAzDE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,AJjVrB,MAAM,CAAC;IACN,OAAO,EAAE,GAAI;IACb,OAAO,EAAE,KAAM,GAChB;EIqRH,AAyDE,IAzDE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,AJ5UrB,MAAM,CAAC;IACN,KAAK,EAAE,IAAK,GACb;EIiRH,AA8DI,IA9DA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,CAKpB,0BAA0B,CAAC;IJ1Q7B,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,GAAG,CAAC,KAAK,CD3Eb,IAAI;IC4EZ,aAAa,EAAE,GAAG,CAAC,KAAK,CD5EhB,IAAI;IC6EZ,KAAK,ED9EA,IAAI;IC+ET,MAAM,EAAE,CAAE;IACV,OAAO,EAAE,MAAO;IAChB,MAAM,EAAE,IAAK;IACb,WAAW,EAAE,IAAK;IAClB,SAAS,EDvEQ,IAAI;ICMrB,kBAAkB,EAkEE,UAAU;IAjE9B,eAAe,EAiEK,UAAU;IAhE9B,UAAU,EAgEU,UAAU;IImQ1B,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,GAAG,CAAC,KAAK,CLvVb,IAAI,GK6VT;IAJC,MAAM,EAAL,SAAS,EAAE,KAAK;MAnEvB,AA8DI,IA9DA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,CAKpB,0BAA0B,CAAC;QAMvB,OAAO,EAAE,KAAM;QACf,KAAK,EAAE,IAAK,GAEf;EAvEL,AAyEI,IAzEA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,CAgBpB,wBAAwB,CAAC;IACvB,SAAS,ELrVI,IAAI;IC4ErB,MAAM,EAAE,GAAG,CAAC,KAAK,CDvFT,IAAI;ICwFZ,UAAU,EAAE,IAAK;IACjB,aAAa,EAAE,CAAE;IACjB,MAAM,EAAE,IAAK;IACb,WAAW,EAAE,IAAK;IAClB,OAAO,EAAE,MAAO;IAChB,MAAM,EAAE,CAAE;IACV,SAAS,EDnFQ,IAAI;ICMrB,kBAAkB,EA8EE,UAAU;IA7E9B,eAAe,EA6EK,UAAU;IA5E9B,UAAU,EA4EU,UAAU;IImQ1B,WAAW,EAAE,IAAK;IAClB,KAAK,EAAE,IAAK,GAQb;IANC,MAAM,EAAL,SAAS,EAAE,KAAK;MA/EvB,AAyEI,IAzEA,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAyDH,sBAAsB,CAgBpB,wBAAwB,CAAC;QAOrB,MAAM,EAAE,GAAG,CAAC,KAAK,CLtWf,IAAI;QKuWN,UAAU,EAAE,CAAE;QACd,OAAO,EAAE,KAAM;QACf,KAAK,EAAE,IAAK,GAEf;;AAML,AAAsC,yBAAb,GAAG,CAAC,AAAA,IAAK,CAAA,AAAA,IAAI,EAAE;EACtC,OAAO,EAAE,eAAgB,GAC1B;;AAED,AAAsD,yBAA7B,CAAC,IAAI,GAAG,CAAC,AAAA,IAAK,CAAA,AAAA,eAAe,EAAE;EACtD,OAAO,EAAE,eAAgB,GAC1B;;AAED;;qCAEqC;AACrC,AACoB,IADhB,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EACH,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc;EAClB,MAAM,EAAE,UAAW,GACpB;;AAHH,AAKE,IALE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAKH,+BAA+B,CAAC;EAE9B,MAAM,EAAE,QAAS;EACjB,OAAO,EAAE,CAAE;EACX,UAAU,EAAE,IAAK;EACjB,KAAK,EAAE,IAAK,GAoBb;EA9BH,AAYM,IAZF,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAKH,+BAA+B,GAO3B,EAAE,CAAC;IACH,eAAe,EAAE,IAAK;IACtB,gBAAgB,EAAE,IAAK;IACvB,MAAM,EAAE,CAAE;IACV,OAAO,EAAE,CAAE,GAaZ;IA7BL,AAkBM,IAlBF,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAKH,+BAA+B,GAO3B,EAAE,CAMF,KAAK,CAAC;MACJ,MAAM,EAAE,OAAQ;MAChB,OAAO,EAAE,YAAa;MACtB,MAAM,EAAE,CAAE,GACX;IAtBP,AAwBwB,IAxBpB,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAKH,+BAA+B,GAO3B,EAAE,CAYF,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc;MAClB,MAAM,EAAE,UAAW;MACnB,OAAO,EAAE,IAAK;MACd,KAAK,EAAE,IAAK,GACb;;AA5BP,AAgCE,IAhCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,CAAC;EJjazB,KAAK,EAAE,CAAE;EIoaP,MAAM,EAAE,QAAS;EACjB,OAAO,EAAE,CAAE;EACX,UAAU,EAAE,IAAK,GA6BlB;EAlEH,AAgCE,IAhCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,AJ/ZvB,OAAO,EI+XV,AAgCE,IAhCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,AJ9ZvB,MAAM,CAAC;IACN,OAAO,EAAE,GAAI;IACb,OAAO,EAAE,KAAM,GAChB;EI2XH,AAgCE,IAhCE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,AJzZvB,MAAM,CAAC;IACN,KAAK,EAAE,IAAK,GACb;EIuXH,AAuCM,IAvCF,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,GAOpB,EAAE,CAAC;IACH,eAAe,EAAE,IAAK;IACtB,gBAAgB,EAAE,IAAK;IACvB,MAAM,EAAE,CAAE;IACV,OAAO,EAAE,CAAE,GAqBZ;IAnBC,MAAM,EAAL,SAAS,EAAE,KAAK;MA7CvB,AAuCM,IAvCF,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,GAOpB,EAAE,CAAC;QAOD,OAAO,EAAE,YAAa;QACtB,YAAY,EAAE,IAAK;QACnB,WAAW,EAAE,CAAE,GAgBlB;IAhEL,AAmDa,IAnDT,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,GAOpB,EAAE,CAYA,KAAK,AAAA,oBAAoB,CAAC;MAC1B,MAAM,EAAE,OAAQ;MAChB,OAAO,EAAE,MAAO;MAChB,MAAM,EAAE,CAAE,GACX;IAvDP,AAyDwB,IAzDpB,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAgCH,wBAAwB,GAOpB,EAAE,CAkBF,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc;MAClB,MAAM,EAAE,WAAY;MACpB,OAAO,EAAE,IAAK;MACd,KAAK,EAAE,IAAK;MACZ,OAAO,EAAE,MAAO,GACjB;;AAOP;;qCAEqC;AACrC,AACuB,IADnB,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EACH,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,EAAiB;EACrB,MAAM,EAAE,WAAY,GACrB;;AAGH;;qCAEqC;AACrC,AACQ,IADJ,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EACH,MAAM,AAAA,kBAAkB,CAAC;EACvB,OAAO,EAAE,IAAK;EACd,aAAa,EAAE,CAAE;EACjB,SAAS,EAAE,KAAM;EACjB,MAAM,EAAE,GAAG,CAAC,KAAK,CLldX,IAAI;EKmdV,MAAM,EAAE,QAAS;EACjB,OAAO,EAAE,KAAM;EACf,KAAK,EAAE,IAAK;EACZ,KAAK,ELvdF,IAAI;EKwdP,gBAAgB,EAAE,OAAQ;EAC1B,OAAO,EAAE,IAAK,GACf;;AAGH;;qCAEqC;AAErC,AAAA,gCAAgC,CAAC;EJre/B,KAAK,EAAE,CAAE;EIueT,MAAM,EAAE,QAAS;EACjB,OAAO,EAAE,CAAE;EACX,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,IAAK,GASlB;EAdD,AAAA,gCAAgC,AJne7B,OAAO,EImeV,AAAA,gCAAgC,AJle7B,MAAM,CAAC;IACN,OAAO,EAAE,GAAI;IACb,OAAO,EAAE,KAAM,GAChB;EI+dH,AAAA,gCAAgC,AJ7d7B,MAAM,CAAC;IACN,KAAK,EAAE,IAAK,GACb;EI2dH,AAOI,gCAP4B,GAO5B,EAAE,CAAC;IACH,eAAe,EAAE,IAAK;IACtB,gBAAgB,EAAE,IAAK;IACvB,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,WAAY,GACrB;;AAIH,AAAA,iBAAiB,CAAC;EAChB,KAAK,EAAE,KAAM,GACd;;AAED;;qCAEqC;CAErC,AAAA,AAA+B,EAA9B,EAAI,0BAA0B,AAA9B,EAAgC;EAC/B,OAAO,EAAE,cAAe;EACxB,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,IAAK,GAYnB;GAfD,AAAA,AAKM,EALL,EAAI,0BAA0B,AAA9B,EAKC,IAAI,AAAA,QAAQ,CAAC;IHlfb,WAAW,EAAE,cAAe;IAC5B,KAAK,EAAE,IAAK;IACZ,UAAU,EAAE,MAAO;IACnB,WAAW,EAAE,MAAO;IACpB,YAAY,EAAE,MAAO;IACrB,cAAc,EAAE,IAAK;IACrB,WAAW,EAAE,CAAE;IAGf,sBAAsB,EAAE,WAAY;IACpC,uBAAuB,EAAE,SAAU;IG2ejC,SAAS,EAAE,IAAK;IAChB,WAAW,EAAE,IAAK,GAKnB;KAdH,AAAA,AAWI,EAXH,EAAI,0BAA0B,AAA9B,EAKC,IAAI,AAAA,QAAQ,CAMV,OAAO,CAAC;MACN,OAAO,EAAE,YAAa,GACvB;;AAIL,AAC8B,wBADN,CACtB,KAAK,AAAA,WAAW,AAAA,YAAY,AAAA,MAAM,CAAC;EACjC,gBAAgB,EAAE,gCAAG;EACrB,iBAAiB,EAAE,SAAU;EAC7B,mBAAmB,EAAE,OAAQ;EAC7B,eAAe,EAAE,IAAK,GAMvB;EAXH,AAC8B,wBADN,CACtB,KAAK,AAAA,WAAW,AAAA,YAAY,AAAA,MAAM,AAK/B,iBAAiB,CAAC;IACjB,gBAAgB,EAAE,oCAAG;IACrB,mBAAmB,EAAE,QAAS;IAC9B,eAAe,EAAE,SAAU,GAC5B;;AAVL,AAaM,wBAbkB,CAatB,IAAI,AAAA,UAAU,CAAC;EACb,QAAQ,EAAE,QAAS;EACnB,GAAG,EAAE,IAAK;EACV,KAAK,EAAE,CAAE;EACT,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,eAAe,EAAE,oBAAqB,GACvC;;AApBH,AAuBQ,wBAvBgB,CAsBtB,WAAW,CACT,IAAI,AAAA,UAAU,CAAC;EACb,GAAG,EAAE,IAAK;EACV,KAAK,EAAE,IAAK,GACb;;AA1BL,AA6BgB,wBA7BQ,CA6BtB,IAAI,AAAA,UAAU,AAAA,IAAI,CAAC;EACjB,OAAO,EAAE,IAAK,GACf;;AA/BH,AAgCgB,wBAhCQ,CAgCtB,IAAI,AAAA,UAAU,AAAA,KAAK,CAAC;EAClB,UAAU,EAAE,gCAAG,CAA8B,SAAS,GACvD;;AAlCH,AAmCgB,wBAnCQ,CAmCtB,IAAI,AAAA,UAAU,AAAA,WAAW,CAAC;EACxB,UAAU,EAAE,sCAAG,CAAoC,SAAS,GAC7D;;AArCH,AAsCgB,wBAtCQ,CAsCtB,IAAI,AAAA,UAAU,AAAA,SAAS,CAAC;EACtB,UAAU,EAAE,oCAAG,CAAkC,SAAS,GAC3D;;AAxCH,AAyCgB,wBAzCQ,CAyCtB,IAAI,AAAA,UAAU,AAAA,KAAK,CAAC;EAClB,UAAU,EAAE,gCAAG,CAA8B,SAAS,GACvD;;AA3CH,AA4CgB,wBA5CQ,CA4CtB,IAAI,AAAA,UAAU,AAAA,QAAQ,CAAC;EACrB,UAAU,EAAE,mCAAG,CAAiC,SAAS,GAC1D;;AA9CH,AA+CgB,wBA/CQ,CA+CtB,IAAI,AAAA,UAAU,AAAA,WAAW,CAAC;EACxB,UAAU,EAAE,uCAAG,CAAqC,SAAS,GAC9D;;AAjDH,AAkDgB,wBAlDQ,CAkDtB,IAAI,AAAA,UAAU,AAAA,IAAI,CAAC;EACjB,UAAU,EAAE,+BAAG,CAA6B,SAAS,GACtD;;AApDH,AAqDgB,wBArDQ,CAqDtB,IAAI,AAAA,UAAU,AAAA,QAAQ,CAAC;EACrB,UAAU,EAAE,mCAAG,CAAiC,SAAS,GAC1D;;AAvDH,AAwDgB,wBAxDQ,CAwDtB,IAAI,AAAA,UAAU,AAAA,SAAS,CAAC;EACtB,UAAU,EAAE,oCAAG,CAAkC,SAAS,GAC3D;;AAGH;;qCAEqC;AAErC,qBAAqB;AACrB,kBAAkB,CAAlB,OAAkB;EAChB,AAAA,EAAE;IACA,OAAO,EAAE,CAAE;EAEb,AAAA,IAAI;IACF,OAAO,EAAE,CAAE;;AAIf,eAAe,CAAf,OAAe;EACb,AAAA,EAAE;IACA,OAAO,EAAE,CAAE;EAEb,AAAA,IAAI;IACF,OAAO,EAAE,CAAE;;AAIf,AACG,IADC,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EACH,CAAC,AAAA,kBAAkB;AADrB,AAEM,IAFF,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEH,IAAI,AAAA,kBAAkB,CAAC;EACrB,OAAO,EAAE,IAAK;EACd,KAAK,EAAE,KAAM;EACb,MAAM,EAAE,IAAK;EACb,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,CAAE;EACV,OAAO,EAAE,CAAE;EACX,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,IAAK;EAClB,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,MAAO,GACrB;;AAbH,AAeE,IAfE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAeH,uBAAuB,CAAC;EHjmBxB,WAAW,EAAE,cAAe;EAC5B,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,MAAO;EACpB,YAAY,EAAE,MAAO;EACrB,cAAc,EAAE,IAAK;EACrB,WAAW,EAAE,CAAE;EAGf,sBAAsB,EAAE,WAAY;EACpC,uBAAuB,EAAE,SAAU;EGylBjC,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,KAAK,EAAE,IAAK;EACZ,WAAW,EAAE,CAAE;EACf,SAAS,EAAE,IAAK;EAChB,MAAM,EAAE,SAAU;EAClB,eAAe,EAAE,SAAU;EAC3B,iBAAiB,EAAE,SAAU;EAC7B,gBAAgB,EAAE,WAAY,GAG/B;;AA5BH,AA+BE,IA/BE,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EA8BH,wBAAwB,CACxB,kBAAkB,CAAC;EACjB,KAAK,EAAE,KAAM,GACd;;AAGH;;qCAEqC;AAErC;;;GAGG;CACH,AAAA,AACE,EADD,EAAI,WAAW,AAAf,EACC,wBAAwB,CAAC;EACvB,MAAM,EAAE,QAAS;EACjB,QAAQ,EAAE,QAAS,GAYpB;GAfH,AAAA,AAKI,EALH,EAAI,WAAW,AAAf,EACC,wBAAwB,CAItB,mBAAmB,CAAC;IAClB,MAAM,EAAE,CAAE;IACV,OAAO,EAAE,CAAE,GACZ;GARL,AAAA,AAUI,EAVH,EAAI,WAAW,AAAf,EACC,wBAAwB,CAStB,kBAAkB,CAAC;IACjB,QAAQ,EAAE,QAAS;IACnB,KAAK,EAAE,CAAE;IACT,GAAG,EAAE,KAAM,GACZ;;CAdL,AAAA,AAiBkC,EAjBjC,EAAI,WAAW,AAAf,EAiBC,QAAQ,CAAA,AAAA,EAAC,EAAI,mBAAmB,AAAvB,EAAyB;EAChC,MAAM,EAAE,QAAS,GAClB;;CAnBH,AAAA,AAqBE,EArBD,EAAI,WAAW,AAAf,EAqBC,sBAAsB,CAAC;EACrB,MAAM,EAAE,QAAS;EACjB,OAAO,EAAE,CAAE,GACZ;;CAxBH,AAAA,AA0BE,EA1BD,EAAI,WAAW,AAAf,EA0BC,2BAA2B,CAAC;EAC1B,KAAK,EAAE,KAAM,GACd;;CAGH,AAAA,AAGO,EAHN,EAAI,wBAAwB,AAA5B,EAGC,KAAK,AAAA,kBAAkB;AAFzB,AAEO,wBAFiB,CAEtB,KAAK,AAAA,kBAAkB,CAAC;EACtB,WAAW,EAAE,GAAI,GAClB;;CALH,AAAA,AAOM,EAPL,EAAI,wBAAwB,AAA5B,EAOC,IAAI,AAAA,uBAAuB;AAN7B,AAMM,wBANkB,CAMtB,IAAI,AAAA,uBAAuB,CAAC;EAC1B,MAAM,EAAE,UAAW;EACnB,OAAO,EAAE,IAAK,GACf;;CAVH,AAAA,AAWE,EAXD,EAAI,wBAAwB,AAA5B,EAWC,YAAY;AAVd,AAUE,wBAVsB,CAUtB,YAAY,CAAC;EACX,KAAK,EAAE,IAAK,GACb;;AAGH,0BAA0B;AAC1B,AAEE,gBAFc,CAEd,MAAM,EAFR,AAEa,gBAFG,CAEN,GAAG,AAAA,WAAW;AADxB,AACE,mBADiB,CACjB,MAAM;AADR,AACa,mBADM,CACT,GAAG,AAAA,WAAW,CAAC;EACrB,WAAW,EAAE,CAAE;EACf,aAAa,EAAE,IAAK,GACrB;;AALH,AAOE,gBAPc,CAOd,KAAK;AANP,AAME,mBANiB,CAMjB,KAAK,CAAC;EACJ,SAAS,EAAE,KAAM;EACjB,OAAO,EAAE,YAAa,GACvB;;AAGH;;qCAEqC;AAGrC,AAAkB,GAAf,AAAA,eAAe,AAAA,SAAS,CAAC;EAC1B,OAAO,EAAE,gBAAiB,GAC3B;;AAED,AAGI,GAHD,AAAA,YAAY,CAEb,QAAQ,CACN,CAAC,EAHL,AAGO,GAHJ,AAAA,YAAY,CAEb,QAAQ,CACH,EAAE,EAHT,AAGW,GAHR,AAAA,YAAY,CAEb,QAAQ,CACC,EAAE,CAAC;EACR,aAAa,EAAE,KAAM;EACrB,WAAW,EAAE,GAAI,GAClB;;AAKL;;qCAEqC;AAErC,AAAA,SAAS,CAAC;EACR,UAAU,EL9tBC,OAAO;EK+tBlB,MAAM,EAAE,GAAG,CAAC,KAAK,CLhuBT,IAAI;EKiuBZ,KAAK,ELluBA,IAAI;EKmuBT,OAAO,EAAE,QAAS;EAClB,MAAM,EAAE,OAAQ;EAChB,WAAW,EAAE,KAAM;EACnB,SAAS,EAAE,GAAI,GAMhB;EAbD,AAAA,SAAS,AASN,MAAM,CAAC;IACN,UAAU,EAAE,OAAQ,GACrB;;AAIH;;qCAEqC;AAErC,AACK,IADD,AAAA,uBAAuB,CACzB,GAAG,AAAA,YAAY,EADjB,AACwB,IADpB,AAAA,uBAAuB,CACR,KAAK,AAAA,WAAW,CAAC;EAChC,MAAM,EAAE,QAAS,GAClB;;AAHH,AAIO,IAJH,AAAA,uBAAuB,CAIzB,KAAK,AAAA,WAAW,CAAC;EACf,KAAK,EAAE,KAAM,GACd;;AAGH;;qCAEqC;AACrC,MAAM,EAAL,SAAS,EAAE,KAAK;GAEf,AAAA,AACK,EADJ,EAAI,WAAW,AAAf,EACC,GAAG,AAAA,OAAO,GADZ,AAAA,AACiB,EADhB,EAAI,WAAW,AAAf,EACa,GAAG,AAAA,QAAQ,CAAC;IACtB,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,IAAK,GACb;GAJH,AAAA,AAMK,EANJ,EAAI,WAAW,AAAf,EAMC,GAAG,AAAA,kBAAkB,CAAC;IACpB,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,IAAK,GACb;;AAIL;;qCAEqC;AAGrC,AAA6B,eAAd,CAAC,UAAU,CAAC,EAAE,AAAA,mBAAmB;AAChD,AAA6B,eAAd,CAAC,UAAU,CAAC,EAAE,AAAA,mBAAmB,CAAC;EAC/C,MAAM,EAAE,QAAS,GAClB;;AC7xBD;;qCAEqC;AACrC,AAAA,WAAW,EAAE,AAAA,aAAa,CAAC;EACzB,QAAQ,EAAE,QAAS;EACnB,MAAM,EAAE,MAAO;EACf,UAAU,EAAE,OAAQ;EACpB,OAAO,EAAE,eAAgB;EACzB,WAAW,EAAE,GAAG,CAAC,KAAK,CNHlB,IAAI;EMIR,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAI;EAC1B,KAAK,EAAE,IAAK,GAiCb;EAxCD,AASI,WATO,GASP,CAAC,EATQ,AAST,aATsB,GAStB,CAAC,CAAC;IACF,MAAM,EAAE,YAAa;IACrB,KAAK,ENNF,IAAI,GMOR;EAZH,AAAA,WAAW,AAcR,OAAO,EAdG,AAAA,aAAa,AAcvB,OAAO,CAAC;IJGT,WAAW,EAAE,cAAe;IAC5B,KAAK,EAAE,IAAK;IACZ,UAAU,EAAE,MAAO;IACnB,WAAW,EAAE,MAAO;IACpB,YAAY,EAAE,MAAO;IACrB,cAAc,EAAE,IAAK;IACrB,WAAW,EAAE,CAAE;IAGf,sBAAsB,EAAE,WAAY;IACpC,uBAAuB,EAAE,SAAU;IIXjC,QAAQ,EAAE,QAAS;IACnB,GAAG,EAAE,GAAI;IACT,SAAS,EAAE,IAAK;IAChB,UAAU,EAAE,KAAM;IAClB,IAAI,EAAE,KAAM;IACZ,gBAAgB,ENnBd,IAAI;IMoBN,KAAK,EAAE,IAAK;IACZ,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK;IACb,aAAa,EAAE,IAAK;IACpB,UAAU,EAAE,MAAO;IACnB,WAAW,EAAE,IAAK;IAClB,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAI;IACzB,OAAO,EAAE,OAAQ,GAClB;EA9BH,AAAA,WAAW,AAgCR,aAAa,EAhCH,AAAA,aAAa,AAgCvB,aAAa,CAAC;IACb,YAAY,EN9BP,OAAO,GMoCb;IAvCH,AAAA,WAAW,AAgCR,aAAa,AAGX,OAAO,EAnCC,AAAA,aAAa,AAgCvB,aAAa,AAGX,OAAO,CAAC;MACP,gBAAgB,ENjCb,OAAO;MMkCV,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAI,GAC1B;;AAIL,AAAA,aAAa,CAAC;EACZ,YAAY,EN1CN,OAAO,GMkDd;EATD,AAAA,aAAa,AAGV,OAAO,CAAC;IACP,gBAAgB,EN7CZ,OAAO;IM8CX,OAAO,EAAE,OAAQ;IACjB,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAI,GAC1B;;ACpDH,wBAAwB;AAiCxB,AAAA,OAAO,CAAC;EACN,GAAG,EAAE,CAAE;EACP,IAAI,EAAE,CAAE;EACR,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,OAAO,EAAE,IAAiB;EAC1B,QAAQ,EAAE,MAAO;EACjB,QAAQ,EAAE,KAAM;EAEhB,UAAU,ECrC0B,OAAO;EDsC3C,OAAO,ECrC6B,GAAG,GDsCxC;;AAGD,AAAA,SAAS,CAAC;EACR,GAAG,EAAE,CAAE;EACP,IAAI,EAAE,CAAE;EACR,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,OAAO,EAAE,IAAiB;EAC1B,QAAQ,EAAE,KAAM;EAChB,OAAO,EAAE,eAAgB;EACzB,2BAA2B,EAAE,MAAO,GACrC;;AAGD,AAAA,cAAc,CAAC;EACb,UAAU,EAAE,MAAO;EACnB,QAAQ,EAAE,QAAS;EACnB,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,IAAI,EAAE,CAAE;EACR,GAAG,EAAE,CAAE;EACP,OAAO,EAAE,CAAC,CCxD0B,GAAG;EDyDvC,UAAU,EAAE,UAAW,GACxB;;AAGD,AAAA,cAAc,AACX,OAAO,CAAC;EACP,OAAO,EAAE,EAAG;EACZ,OAAO,EAAE,YAAa;EACtB,MAAM,EAAE,IAAK;EACb,cAAc,EAAE,MAAO,GACxB;;AAIH,AACE,cADY,CACZ,cAAc,AACX,OAAO,CAAC;EACP,OAAO,EAAE,IAAK,GACf;;AAKL,AAAA,YAAY,CAAC;EACX,QAAQ,EAAE,QAAS;EACnB,OAAO,EAAE,YAAa;EACtB,cAAc,EAAE,MAAO;EACvB,MAAM,EAAE,MAAO;EACf,UAAU,EAAE,IAAK;EACjB,OAAO,EAAE,IAAiB,GAC3B;;AACD,AAEE,kBAFgB,CAEhB,YAAY;AADd,AACE,gBADc,CACd,YAAY,CAAC;EACX,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK,GACd;;AAIH,AAAA,aAAa,CAAC;EACZ,MAAM,EAAE,QAAS,GAClB;;AACD,AAAA,iBAAiB,EAAjB,AACuB,iBADN,CACZ,iBAAiB,CAAC,UAAU,CAAC;EAC9B,MAAM,EAAE,aAAc;EACtB,MAAM,EAAE,gBAAiB;EACzB,MAAM,EAAE,QAAS,GAClB;;AAEH,AAAA,SAAS,CAAC;EACR,MAAM,EAAE,OAAQ;EAChB,MAAM,EAAE,eAAgB;EACxB,MAAM,EAAE,YAAa;EACrB,MAAM,EAAE,OAAQ,GACjB;;AACD,AACE,gBADc,CACd,YAAY,CAAC;EACX,MAAM,EAAE,IAAK,GACd;;AAGH,AAAA,UAAU;AACV,AAAA,UAAU;AACV,AAAA,cAAc;AACd,AAAA,YAAY,CAAC;EACX,mBAAmB,EAAC,IAAK;EACzB,gBAAgB,EAAE,IAAK;EACvB,WAAW,EAAE,IAAK,GACnB;;AAGD,AAAA,YAAY,AACT,WAAW,CAAC;EACX,OAAO,EAAE,IAAK,GACf;;AAiBD,AAAA,SAAS,CAAC;EACR,OAAO,EAAE,eAAgB,GAC1B;;AASH,AAAA,cAAc,CAAC;EACb,KAAK,ECtJ+B,IAAI;EDuJxC,QAAQ,EAAE,QAAS;EACnB,GAAG,EAAE,GAAI;EACT,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,MAAO;EACnB,UAAU,EAAE,MAAO;EACnB,IAAI,EAAE,GAAI;EACV,KAAK,EAAE,GAAI;EACX,OAAO,EAAE,IAAiB,GAO3B;EAhBD,AAUE,cAVY,CAUZ,CAAC,CAAC;IACA,KAAK,EChK6B,IAAI,GDoKvC;IAfH,AAUE,cAVY,CAUZ,CAAC,AAEE,MAAM,CAAC;MACN,KAAK,ECjK2B,IAAI,GDkKrC;;AAKL,AACE,YADU,CACV,cAAc,CAAC;EACb,OAAO,EAAE,IAAK,GACf;;AAIH,AACE,YADU,CACV,YAAY,CAAC;EACX,OAAO,EAAE,IAAK,GACf;;AAIH,AAAA,MAAM,AACH,UAAU,EADb,AAAA,MAAM,AAEH,UAAU,CAAC;EACV,QAAQ,EAAE,OAAQ;EAClB,MAAM,EAAE,OAAQ;EAChB,UAAU,EAAE,WAAY;EACxB,MAAM,EAAE,CAAE;EACV,kBAAkB,EAAE,IAAK;EACzB,OAAO,EAAE,KAAM;EACf,OAAO,EAAE,IAAK;EACd,OAAO,EAAE,CAAE;EACX,OAAO,EAAE,IAAiB;EAC1B,UAAU,EAAE,IAAK;EACjB,YAAY,EAAE,YAAa,GAC5B;;AAdH,AAAA,MAAM,AAeH,kBAAkB,CAAC;EAChB,OAAO,EAAE,CAAE;EACX,MAAM,EAAE,CACX,GAAC;;AAKJ,AAAA,UAAU,CAAC;EACT,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,WAAW,EAAE,IAAK;EAElB,QAAQ,EAAE,QAAS;EACnB,KAAK,EAAE,CAAE;EACT,GAAG,EAAE,CAAE;EACP,eAAe,EAAE,IAAK;EACtB,UAAU,EAAE,MAAO;EACnB,OAAO,EC3N6B,IAAI;ED4NxC,OAAO,EAAE,aAAc;EACvB,KAAK,EC5N+B,IAAI;ED8NxC,UAAU,EAAE,MAAO;EACnB,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,6BAA8B,GAU5C;EA1BD,AAAA,UAAU,AAkBP,MAAM,EAlBT,AAAA,UAAU,AAmBP,MAAM,CAAC;IACN,OAAO,EAAE,CAAE,GACZ;EArBH,AAAA,UAAU,AAuBP,OAAO,CAAC;IACP,GAAG,EAAE,GAAI,GACV;;AAEH,AACE,iBADe,CACf,UAAU,CAAC;EACT,KAAK,EC3O6B,IAAI,GD4OvC;;AAEH,AAEE,iBAFe,CAEf,UAAU;AADZ,AACE,kBADgB,CAChB,UAAU,CAAC;EACT,KAAK,ECnP6B,IAAI;EDoPtC,KAAK,EAAE,IAAK;EACZ,UAAU,EAAE,KAAM;EAClB,aAAa,EAAE,GAAI;EACnB,KAAK,EAAE,IAAK,GACb;;AAIH,AAAA,YAAY,CAAC;EACX,QAAQ,EAAE,QAAS;EACnB,GAAG,EAAE,CAAE;EACP,KAAK,EAAE,CAAE;EACT,KAAK,EC7P+B,IAAI;ED8PxC,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,IAAK;EAClB,WAAW,EAAE,MAAO,GACrB;;AAIC,AAAA,UAAU,CAAC;EACT,QAAQ,EAAE,QAAS;EACnB,OAAO,EC3Q2B,IAAI;ED4QtC,MAAM,EAAE,CAAE;EACV,GAAG,EAAE,GAAI;EACT,UAAU,EAAE,KAAM;EAClB,OAAO,EAAE,CAAE;EACX,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,KAAM;EACd,2BAA2B,EAAE,WAAI,GAmClC;EA5CD,AAAA,UAAU,AAUP,OAAO,CAAC;IACP,UAAU,EAAE,KAAM,GACnB;EAZH,AAAA,UAAU,AAaP,MAAM,EAbT,AAAA,UAAU,AAcP,MAAM,CAAC;IACN,OAAO,EAAE,CAAE,GACZ;EAhBH,AAAA,UAAU,AAiBP,OAAO,EAjBV,AAAA,UAAU,AAkBP,MAAM,CAAC;IACN,OAAO,EAAE,EAAG;IACZ,OAAO,EAAE,KAAM;IACf,KAAK,EAAE,CAAE;IACT,MAAM,EAAE,CAAE;IACV,QAAQ,EAAE,QAAS;IACnB,IAAI,EAAE,CAAE;IACR,GAAG,EAAE,CAAE;IACP,UAAU,EAAE,IAAK;IACjB,WAAW,EAAE,IAAK;IAClB,MAAM,EAAE,wBAAyB,GAClC;EA7BH,AAAA,UAAU,AA+BP,MAAM,CAAC;IAEN,gBAAgB,EAAE,IAAK;IACvB,mBAAmB,EAAE,IAAK;IAC1B,GAAG,EAAC,GAAI,GACT;EApCH,AAAA,UAAU,AAsCP,OAAO,CAAC;IACP,gBAAgB,EAAE,IAAK;IACvB,mBAAmB,EAAE,IAAK;IAC1B,OAAO,EAAE,GAAI,GACd;;AAIH,AAAA,eAAe,CAAC;EACd,IAAI,EAAE,CAAE,GAST;EAVD,AAAA,eAAe,AAEZ,MAAM,CAAC;IACN,YAAY,EAAE,IAAI,CAAC,KAAK,CCzTQ,IAAI;ID0TpC,WAAW,EAAE,IAAK,GACnB;EALH,AAAA,eAAe,AAMZ,OAAO,CAAC;IACP,WAAW,EAAE,IAAK;IAClB,YAAY,EAAE,IAAI,CAAC,KAAK,CC7TQ,OAAO,GD8TxC;;AAGH,AAAA,gBAAgB,CAAC;EACf,KAAK,EAAE,CAAE,GAQV;EATD,AAAA,gBAAgB,AAEb,MAAM,CAAC;IACN,WAAW,EAAE,IAAI,CAAC,KAAK,CCrUS,IAAI;IDsUpC,WAAW,EAAE,IACd,GAAC;EALJ,AAAA,gBAAgB,AAMb,OAAO,CAAC;IACP,WAAW,EAAE,IAAI,CAAC,KAAK,CCxUS,OAAO,GDyUxC;;AAQH,AAAA,kBAAkB,CAAC;EACjB,WAAW,EC3UuB,IAAI;ED4UtC,cAAc,EC5UoB,IAAI,GDqVvC;EAXD,AAGE,kBAHgB,CAGhB,YAAY,CAAC;IACX,WAAW,EAAE,CAAE;IACf,KAAK,EAAE,IAAK;IACZ,SAAS,EC9UuB,KAAK,GD+UtC;EAPH,AAQE,kBARgB,CAQhB,UAAU,CAAC;IACT,GAAG,EAAE,KAAM,GACZ;;AAEH,AAAA,kBAAkB,CAAC;EACjB,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,CAAE;EACV,QAAQ,EAAE,MAAO;EACjB,WAAW,EAAE,MAAiB,GAW/B;EAfD,AAKE,kBALgB,CAKhB,MAAM,CAAC;IACL,QAAQ,EAAE,QAAS;IACnB,OAAO,EAAE,KAAM;IACf,GAAG,EAAE,CAAE;IACP,IAAI,EAAE,CAAE;IACR,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK;IACb,UAAU,ECrXsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAI;IDsX5C,UAAU,EClWsB,IAAI,GDmWrC;;AASH,yBAAyB;AACzB,AAAA,GAAG,AACA,QAAQ,CAAC;EACR,KAAK,EAAE,IAAK;EACZ,SAAS,EAAE,IAAK;EAChB,MAAM,EAAE,IAAK;EACb,OAAO,EAAE,KAAM;EACf,WAAW,EAAE,CAAE;EACf,UAAU,EAAE,UAAW;EACvB,OAAO,EC9WyB,IAAI,CD8WJ,CAAC,CC7WD,IAAI;ED8WpC,MAAM,EAAE,MAAO,GAChB;;AAGH,iCAAiC;AACjC,AAAA,WAAW,CAAC;EACV,WAAW,EAAE,CAAE,GAwBhB;EAzBD,AAAA,WAAW,AAER,MAAM,CAAC;IACN,OAAO,EAAE,EAAG;IACZ,QAAQ,EAAE,QAAS;IACnB,IAAI,EAAE,CAAE;IACR,GAAG,EC1X6B,IAAI;ID2XpC,MAAM,EC1X0B,IAAI;ID2XpC,OAAO,EAAE,KAAM;IACf,KAAK,EAAE,CAAE;IACT,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK;IACb,OAAO,EAAE,EAAG;IACZ,UAAU,EC5ZsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAI;ID6Z5C,UAAU,ECnYsB,IAAI,GDoYrC;EAfH,AAgBE,WAhBS,CAgBT,KAAK,CAAC;IACJ,KAAK,EC/X2B,OAAO;IDgYvC,OAAO,EAAE,KAAM;IACf,SAAS,EAAE,IAAK;IAChB,WAAW,EAAE,IAAK,GACnB;EArBH,AAsBE,WAtBS,CAsBT,MAAM,CAAC;IACL,MAAM,EAAE,CAAE,GACX;;AAEH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,KAAC;EACb,QAAQ,EAAE,QAAS;EACnB,GAAG,EAAE,IAAK;EACV,IAAI,EAAE,CAAE;EACR,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK,GACd;;AACD,AAAA,UAAU,CAAC;EACT,UAAU,EAAE,IAAK;EACjB,WAAW,EAAE,IAAK;EAClB,KAAK,ECpZ6B,OAAO;EDqZzC,SAAS,EAAE,UAAW;EACtB,aAAa,EAAE,IAAK,GACrB;;AAED,AACE,iBADe,CACf,YAAY,CAAC;EACX,SAAS,EAAE,IAAK,GACjB;;AAGH,AAEI,YAFQ,CACV,iBAAiB,CACf,WAAW,CAAC;EACV,MAAM,EAAE,OAAQ,GACjB;;AAMH,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,KAAK,OAAO,WAAW,EAAE,SAAS,GAAG,MAAM,MAAM,UAAU,EAAE,KAAK;EACvF;;SAEG;EACH,AACE,eADa,CACb,iBAAiB,CAAC;IAChB,YAAY,EAAE,CAAE;IAChB,aAAa,EAAE,CAAE,GAClB;EAJH,AAKE,eALa,CAKb,GAAG,AACA,QAAQ,CAAC;IACR,OAAO,EAAE,CAAE,GACZ;EARL,AAUE,eAVa,CAUb,WAAW,AAER,MAAM,CAAC;IACN,GAAG,EAAE,CAAE;IACP,MAAM,EAAE,CAAE,GACX;EAfL,AAgBI,eAhBW,CAUb,WAAW,CAMT,KAAK,CAAC;IACJ,OAAO,EAAE,MAAO;IAChB,WAAW,EAAE,GAAI,GAClB;EAnBL,AAqBE,eArBa,CAqBb,eAAe,CAAC;IACd,UAAU,EAAE,kBAAI;IAChB,MAAM,EAAE,CAAE;IACV,MAAM,EAAE,CAAE;IACV,GAAG,EAAE,IAAK;IACV,OAAO,EAAE,OAAQ;IACjB,QAAQ,EAAE,KAAM;IAChB,UAAU,EAAE,UAAW,GAIxB;IAhCH,AAqBE,eArBa,CAqBb,eAAe,AAQZ,MAAM,CAAC;MACN,OAAO,EAAE,CAAE,GACZ;EA/BL,AAiCE,eAjCa,CAiCb,YAAY,CAAC;IACX,KAAK,EAAE,GAAI;IACX,GAAG,EAAE,GAAI,GACV;EApCH,AAqCE,eArCa,CAqCb,UAAU,CAAC;IACT,GAAG,EAAE,CAAE;IACP,KAAK,EAAE,CAAE;IACT,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK;IACb,WAAW,EAAE,IAAK;IAClB,UAAU,EAAE,kBAAI;IAChB,QAAQ,EAAE,KAAM;IAChB,UAAU,EAAE,MAAO;IACnB,OAAO,EAAE,CAAE,GACZ;;AAST,MAAM,CAAN,GAAG,MAAM,SAAS,EAAE,KAAK;EACvB,AAAA,UAAU,CAAC;IACT,iBAAiB,EAAE,WAAK;IACxB,SAAS,EAAE,WAAK,GACjB;EACD,AAAA,eAAe,CAAC;IACd,wBAAwB,EAAE,CAAE;IAC5B,gBAAgB,EAAE,CAAE,GACrB;EACD,AAAA,gBAAgB,CAAC;IACf,wBAAwB,EAAE,IAAK;IAC/B,gBAAgB,EAAE,IAAK,GACxB;EACD,AAAA,cAAc,CAAC;IACb,YAAY,EC/gBsB,GAAG;IDghBrC,aAAa,EChhBqB,GAAG,GDihBtC;;AE5hBH;;;;;;;;EAQE;AAEF;;GAEG;AAEH,AAEE,eAFa,CAEb,WAAW,CAAC;EACb,OAAO,EAAE,MAAO,GACd;;AAIH;;GAEG;AACH,AACE,eADa,CACb,OAAO,CAAC;EACT,OAAO,EAAE,WAAY;EACrB,SAAS,EAAE,KAAM;EACjB,MAAM,EAAE,MAAO,GAkBb;EAtBH,AAMa,eANE,CACb,OAAO,CAKR,WAAW,CAAC,cAAc,CAAC;IACzB,OAAO,EAAE,YAAa;IACtB,MAAM,EAAE,sBAAuB,GAChC;EATF,AAWsB,eAXP,CACb,OAAO,CAUR,GAAG,AAAA,WAAW,AAAA,OAAO,AAAA,mBAAmB,CAAC;IACvC,UAAU,EAAE,CAAE,GACf;EAbF,AAiBE,eAjBa,CACb,OAAO,CAcR,WAAW,CACT,OAAO,CACR,GAAG,CAAC;IACF,aAAa,EAAE,GAAI,GACpB;;AAMH,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,KAAK;EAC1B,AACD,eADgB,CAChB,OAAO,CAAC;IACN,aAAa,EAAE,IAAK;IACpB,YAAY,EAAE,IAAK,GACpB;;AAIF,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,MAAM;EAC3B,AACD,eADgB,CAChB,OAAO,CAAC;IACN,aAAa,EAAE,IAAK;IACpB,YAAY,EAAE,IAAK,GACpB;;AAIF,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,MAAM;EAC3B,AACD,eADgB,CAChB,OAAO,CAAC;IACN,aAAa,EAAE,IAAK;IACpB,YAAY,EAAE,IAAK,GACpB;;AAIF,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,MAAM;EAC3B,AACD,eADgB,CAChB,OAAO,CAAC;IACN,YAAY,EAAE,IAAK,GACpB;EAEA,AAEC,WAFU,CACZ,eAAe,CACb,OAAO,CAAC;IACT,YAAY,EAAE,IAAK,GACjB;;AAKJ;;GAEG;AACH,AACE,cADY,CACZ,QAAQ,CAAC;EACV,YAAY,EAAE,OAAQ;EACtB,aAAa,EAAE,OAAQ;EACvB,WAAW,EAAE,OAAQ;EACrB,aAAa,EAAE,OAAQ;EACvB,UAAU,EAAE,IAAK;EACjB,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAI,GAQtB;EAfH,AASC,cATa,CACZ,QAAQ,CAQT,WAAW,CAAC;IACV,WAAW,EAAE,CAAE,GAChB;EAXF,AAYI,cAZU,CACZ,QAAQ,CAWT,GAAG,AAAA,QAAQ,CAAC;IACV,OAAO,EAAE,CAAE,GACZ;;AAIF,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,OAAO;EAC5B,AACD,cADe,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,OAAQ;IACtB,WAAW,EAAE,OAAQ;IACrB,UAAU,EAAE,OAAQ,GACrB;;AAIF,MAAM,CAAN,MAAM,MAAM,SAAS,EAAE,SAAS;EAC9B,AACD,cADe,CACf,QAAQ,CAAC;IACP,WAAW,EAAE,OAAQ;IACrB,YAAY,EAAE,OAAQ;IACtB,OAAO,EAAE,GAAI,GACd;EAGA,AAEC,eAFc,CAChB,cAAc,CACZ,cAAc,CAAC;IAChB,OAAO,EAAE,YAAa,GACpB;;AAKJ;;kDAEkD;AAElD,AAA2B,UAAjB,GAAG,GAAG,AAAA,UAAU,CAAC,QAAQ,CAAC;EAClC,KAAK,EAAE,IAAK,GACb;;ACnJD;;;;;;;EAOE;AAEF,AAAA,mBAAmB,CAAC;EAClB,aAAa,EAAE,IAAK;EACpB,KAAK,EAAC,IAAK,GAYZ;EAdD,AAIE,mBAJiB,CAIjB,OAAO,CAAC;IACT,SAAS,EAAE,IAAK;IAChB,WAAW,EAAE,IAAK;IAClB,cAAc,EAAE,IAAK;IACrB,KAAK,EAAE,IAAK,GACV;EATH,AAWE,mBAXiB,CAWjB,OAAO,CAAC;IACT,aAAa,EAAE,IAAK,GAClB;;AAGH,AAAA,kBAAkB,CAAC;EACjB,MAAM,EAAE,IAAK;EACb,QAAQ,EAAE,QAAS;EACnB,UAAU,EAAE,IAAK;EACjB,aAAa,EAAE,IAAK;EACpB,QAAQ,EAAE,MAAO,GAalB;EAlBD,AAOI,kBAPc,GAOd,IAAI,CAAC;IACR,OAAO,EAAE,KAAM;IACf,MAAM,EAAE,IAAK;IACb,uBAAuB,EAAE,GAAI;IAC7B,0BAA0B,EAAE,GAAI;IAChC,sBAAsB,EAAE,IAAK;IAC7B,yBAAyB,EAAE,IAAK;IAChC,gBAAgB,EAAE,OAAG;IACrB,QAAQ,EAAE,QAAS;IACnB,QAAQ,EAAE,MAAO,GACf;;AC1CH;;;;;;;GAOG;AA+BH,AAEC,IAFG,AAAA,eAAe,CAElB,WAAW,CAAC;EAEX,QAAQ,EAAE,QAAS,GAqEnB;EAzEF,AAMmB,IANf,AAAA,eAAe,CAElB,WAAW,CAIV,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,GANR,AAMsC,IANlC,AAAA,eAAe,CAElB,WAAW,CAIU,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,GAN5B,AAM2D,IANvD,AAAA,eAAe,CAElB,WAAW,CAI6B,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,GAN/C,AAMmF,IAN/E,AAAA,eAAe,CAElB,WAAW,CAIkD,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf;EANpE,AAOE,IAPE,AAAA,eAAe,CAElB,WAAW,CAKV,KAAK;EAPP,AAQE,IARE,AAAA,eAAe,CAElB,WAAW,CAMV,MAAM;EARR,AASE,IATE,AAAA,eAAe,CAElB,WAAW,CAOV,QAAQ,CAAC;IACR,SAAS,EAzBY,IAAI;IA0BzB,WAAW,EAAE,MAAO;IACpB,gBAAgB,EA/BK,IAAI;IAgCzB,MAAM,EAAE,GAAG,CAAC,KAAK,CAnCI,IAAI;IAoCzB,OAAO,EAzBc,IAAgB,GA0BrC;EAfH,AAiBE,IAjBE,AAAA,eAAe,CAElB,WAAW,CAeV,MAAM,CAAC;IACN,QAAQ,EAAE,QAAS;IACnB,KAAK,EA5CgB,IAAI;IA6CzB,MAAM,EAAE,OAAQ;IAChB,kBAAkB,EAAE,IAAK;IACzB,eAAe,EAAE,IAAK,GACtB;EAvBH,AA0BQ,IA1BJ,AAAA,eAAe,CAElB,WAAW,AAuBT,UAAU,CACV,KAAK,AAAA,iBAAiB,CAAC;IACtB,OAAO,EAAE,CAAE;IACX,UAAU,EAAE,OAAQ,GACpB;EA7BJ,AA+BG,IA/BC,AAAA,eAAe,CAElB,WAAW,AAuBT,UAAU,CAMV,KAAK;EA/BR,AAgCG,IAhCC,AAAA,eAAe,CAElB,WAAW,AAuBT,UAAU,CAOV,MAAM;EAhCT,AAiCG,IAjCC,AAAA,eAAe,CAElB,WAAW,AAuBT,UAAU,CAQV,QAAQ,CAAC;IACR,KAAK,EA1De,IAAI;IA2DxB,gBAAgB,EApDI,IAAI;IAqDxB,YAAY,EAxDQ,IAAI;IAyDxB,WAAW,EAAE,IAAgB;IAC7B,cAAc,EAAE,GAAiB,GACjC;EAvCJ,AA2CQ,IA3CJ,AAAA,eAAe,CAElB,WAAW,AAwCT,WAAW,CACX,KAAK,AAAA,iBAAiB,CAAC;IACtB,KAAK,EAnEe,OAAO,GAoE3B;EA7CJ,AA+CG,IA/CC,AAAA,eAAe,CAElB,WAAW,AAwCT,WAAW,CAKX,KAAK;EA/CR,AAgDG,IAhDC,AAAA,eAAe,CAElB,WAAW,AAwCT,WAAW,CAMX,MAAM;EAhDT,AAiDG,IAjDC,AAAA,eAAe,CAElB,WAAW,AAwCT,WAAW,CAOX,QAAQ,CAAC;IACR,gBAAgB,EApEI,IAAI;IAqExB,YAAY,EAxEQ,IAAI,GAyExB;EApDJ,AAuDO,IAvDH,AAAA,eAAe,CAElB,WAAW,CAqDV,KAAK,AAAA,iBAAiB,CAAC;IACtB,QAAQ,EAAE,QAAS;IACnB,OAAO,EAAE,KAAM;IACf,GAAG,EApEkB,GAAgB;IAqErC,IAAI,EAtEiB,IAAgB;IAuErC,KAAK,EArFgB,IAAI;IAsFzB,SAAS,EA3EY,IAAI;IA4EzB,WAAW,EAAE,CAAE;IACf,OAAO,EAAE,CAAE;IACX,UAAU,EAAE,MAAO;IACnB,UAAU,EAAE,GAAG,CAxEM,IAAI,CACJ,WAAW;IAwEhC,OAAO,EAAE,KAAM,GAMf;IAxEH,AAuDO,IAvDH,AAAA,eAAe,CAElB,WAAW,CAqDV,KAAK,AAAA,iBAAiB,AAapB,WAAW,CAAC;MACZ,OAAO,EAAE,CAAE;MACX,UAAU,EAAE,OAAQ,GACpB;;AAvEJ,AA2EC,IA3EG,AAAA,eAAe,CA2ElB,OAAO,AAEL,OAAO,CAAC;EACR,QAAQ,EAAE,QAAS,GAuBnB;EArGH,AA2EC,IA3EG,AAAA,eAAe,CA2ElB,OAAO,AAEL,OAAO,AAGN,OAAO,EAhFX,AA2EC,IA3EG,AAAA,eAAe,CA2ElB,OAAO,AAEL,OAAO,AAIN,MAAM,CAAC;IACP,OAAO,EAAE,EAAG;IACZ,QAAQ,EAAE,QAAS;IACnB,OAAO,EAAE,KAAM;IACf,GAAG,EAjGiB,IAAI;IAkGxB,MAAM,EAAE,GAAI;IACZ,KAAK,EAhGe,GAAgB;IAiGpC,UAAU,EAjHU,IAAI;IAkHxB,OAAO,EAAE,CAAE,GACX;EA1FJ,AA2EC,IA3EG,AAAA,eAAe,CA2ElB,OAAO,AAEL,OAAO,AAeN,OAAO,CAAC;IACR,KAAK,EAAE,IAAgB;IACvB,SAAS,EAAE,iBAAI,GACf;EA/FJ,AA2EC,IA3EG,AAAA,eAAe,CA2ElB,OAAO,AAEL,OAAO,AAoBN,MAAM,CAAC;IACP,KAAK,EA7Ge,IAAgB;IA8GpC,SAAS,EAAE,kBAAI,GACf;;AC1IJ;;;;;;;EAOE;AAGF,AAAA,WAAW,CAAC;EACX,GAAG,EAAE,CAAE;EACP,IAAI,EAAE,CAAE;EACR,KAAK,EAAE,IAAK;EACZ,MAAM,EAAE,IAAK;EACb,OAAO,EAAE,UAAiB;EAC1B,QAAQ,EAAE,KAAM;EAChB,OAAO,EAAE,eAAgB;EACzB,2BAA2B,EAAE,MAAO,GA0HpC;EAlID,AAUqB,WAVV,CAUV,IAAI,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAAiB;IACrB,aAAa,EAAE,CAAE,GAQjB;IAnBF,AAYE,WAZS,CAUV,IAAI,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAEJ,YAAY,CAAC;MACZ,aAAa,EAAE,CAAE,GACjB;IAdH,AAeE,WAfS,CAUV,IAAI,CAAA,AAAA,EAAC,EAAI,WAAW,AAAf,EAKJ,wBAAwB,CAAC;MACxB,UAAU,EAAE,CAAE;MACd,WAAW,EAAE,CAAE,GACf;EAlBH,AAsBC,WAtBU,CAsBV,cAAc,CAAC;IACd,UAAU,EAAE,MAAO;IACnB,QAAQ,EAAE,QAAS;IACnB,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK;IACb,IAAI,EAAE,CAAE;IACR,GAAG,EAAE,CAAE;IACP,OAAO,EAAE,CAAC,CJ7B0B,GAAG;II8BvC,kBAAkB,EAAE,UAAW;IAC/B,eAAe,EAAE,UAAW;IAC5B,UAAU,EAAE,UAAW,GACvB;EAjCF,AAoCC,WApCU,CAoCV,cAAc,AACZ,OAAO,CAAC;IACR,OAAO,EAAE,EAAG;IACZ,OAAO,EAAE,YAAa;IACtB,MAAM,EAAE,IAAK;IACb,cAAc,EAAE,MAAO,GACvB;EA1CH,AA+CE,WA/CS,CA8CV,cAAc,CACb,cAAc,AACZ,OAAO,CAAC;IACR,OAAO,EAAE,IAAK,GACd;EAlDJ,AAuDC,WAvDU,CAuDV,YAAY,CAAC;IACZ,OAAO,EAAE,YAAa;IACtB,cAAc,EAAE,MAAO;IACvB,UAAU,EAAE,IAAK;IACjB,QAAQ,EAAE,QAAS;IACnB,UAAU,EAAE,IAAK;IACjB,OAAO,EAAE,IAAK;IACd,KAAK,EAAE,IAAK;IACZ,SAAS,EAAE,KAAM;IACjB,MAAM,EAAE,SAAU;IAClB,OAAO,EAAE,UAAiB,GAS1B;IA1EF,AAmEoB,WAnET,CAuDV,YAAY,EAYX,AAAA,EAAC,EAAI,WAAW,AAAf,EAAiB,yBAAyB;IAnE7C,AAoEoB,WApET,CAuDV,YAAY,EAaX,AAAA,EAAC,EAAI,WAAW,AAAf,EAAiB,wBAAwB;IApE5C,AAqE6C,WArElC,CAuDV,YAAY,EAcX,AAAA,EAAC,EAAI,WAAW,AAAf,CAAgB,yBAAyB,CAAC,qBAAqB;IArElE,AAsE6C,WAtElC,CAuDV,YAAY,EAeX,AAAA,EAAC,EAAI,WAAW,AAAf,CAAgB,yBAAyB,CAAC,0BAA0B,CAAC;MACrE,OAAO,EAAE,KAAM,GACf;EAxEH,AA8EE,WA9ES,CA4EV,kBAAkB,CAEjB,YAAY;EA9Ed,AA8EE,WA9ES,CA6EV,gBAAgB,CACf,YAAY,CAAC;IACZ,KAAK,EAAE,IAAK;IACZ,MAAM,EAAE,IAAK,GACb;EAjFH,AAqFC,WArFU,CAqFV,aAAa,CAAC;IACb,MAAM,EAAE,QAAS,GACjB;EAvFF,AAyFC,WAzFU,CAyFV,iBAAiB,EAzFlB,AA0FuB,WA1FZ,CAyFV,iBAAiB,CACb,iBAAiB,CAAC,UAAU,CAAC;IAC/B,MAAM,EAAE,aAAc;IACtB,MAAM,EAAE,gBAAiB;IACzB,MAAM,EAAE,QAAS,GACjB;EA9FH,AAiGC,WAjGU,CAiGV,SAAS,CAAC;IACT,MAAM,EAAE,OAAQ;IAChB,MAAM,EAAE,eAAgB;IACxB,MAAM,EAAE,YAAa;IACrB,MAAM,EAAE,OAAQ,GAChB;EAtGF,AAyGE,WAzGS,CAwGV,gBAAgB,CACf,YAAY,CAAC;IACZ,MAAM,EAAE,IAAK,GACb;EA3GH,AA8GC,WA9GU,CA8GV,UAAU;EA9GX,AA+GC,WA/GU,CA+GV,UAAU;EA/GX,AAgHC,WAhHU,CAgHV,cAAc;EAhHf,AAiHC,WAjHU,CAiHV,YAAY,CAAC;IACZ,mBAAmB,EAAE,IAAK;IAC1B,gBAAgB,EAAE,IAAK;IACvB,WAAW,EAAE,IAAK,GAClB;EArHF,AAuHW,WAvHA,CAuHV,UAAU,AAAA,MAAM,CAAC;IAChB,gBAAgB,EAAE,WAAY,GAC9B;EAzHF,AA4HC,WA5HU,CA4HV,YAAY,AACV,WAAW,CAAC;IACZ,OAAO,EAAE,IAAK,GACd;;ACzIH;;;;;;;EAOE;AAEF,AAAK,KAAA,AAAA,WAAW,CAAC;EACf,KAAK,EAAE,IAAK;EACZ,SAAS,EAAE,IAAK;EAChB,WAAW,EAAE,gBAAiB;EAC9B,UAAU,EAAE,OAAQ;EACpB,MAAM,EAAE,MAAO;EACf,MAAM,EAAE,iBAAkB;EAC1B,UAAU,EAAE,IAAK;EACjB,aAAa,EAAE,IAAK;EACpB,KAAK,EAAE,IAAK,GAiDb;EA1DD,AAWE,KAXG,AAAA,WAAW,CAWd,KAAK,CAAC;IACJ,WAAW,EAAE,IAAK,GAKnB;IAjBH,AAcM,KAdD,AAAA,WAAW,CAWd,KAAK,CAGH,EAAE,AAAA,YAAY,CAAC;MACb,UAAU,EAAE,IAAK,GAClB;EAhBL,AAmBE,KAnBG,AAAA,WAAW,CAmBd,EAAE,CAAC;IACD,OAAO,EAAE,SAAU;IACnB,UAAU,EAAE,iBAAkB;IAC9B,aAAa,EAAE,iBAAkB;IACjC,WAAW,EAAE,iBAAkB;IAC/B,YAAY,EAAE,IAAK;IACnB,UAAU,EAAE,OAAQ;IACpB,UAAU,EAAE,MAAO;IACnB,WAAW,EAAE,IAAK,GACnB;EA5BH,AAgCI,KAhCC,AAAA,WAAW,CA8Bd,KAAK,CAEH,EAAE,CAAC;IACD,UAAU,EAAE,MAAO,GAgBpB;IAjDL,AAmCM,KAnCD,AAAA,WAAW,CA8Bd,KAAK,CAEH,EAAE,CAGA,EAAE,CAAC;MACD,OAAO,EAAE,IAAK;MACd,MAAM,EAAE,IAAK;MACb,UAAU,EAAE,iBAAkB;MAC9B,aAAa,EAAE,iBAAkB;MACjC,WAAW,EAAE,iBAAkB;MAC/B,UAAU,EAAE,IAAK;MACjB,UAAU,EAAE,MAAO,GACpB;IA3CP,AA6CQ,KA7CH,AAAA,WAAW,CA8Bd,KAAK,CAEH,EAAE,CAaA,EAAE,AAAA,YAAY,CAAC;MACb,UAAU,EAAE,IAAK;MACjB,WAAW,EAAE,CAAE,GAChB;EAhDP,AAoDuB,KApDlB,AAAA,WAAW,CA8Bd,KAAK,CAsBH,EAAE,AAAA,UAAW,CAAA,AAAA,IAAI,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,OAAQ,GACrB;;AC/DL;;;;;;;;EAQE;AAGF,AAEE,UAFQ,CAER,WAAW,CAAC;EACb,OAAO,EAAE,kBAAmB,GAC1B;;AAKH,AAEK,IAFD,AAAA,mBAAmB,CAErB,GAAG,AAAA,cAAc,CAAC;EACnB,MAAM,EAAE,CAAE,GACR;;AAJH,AAMQ,IANJ,AAAA,mBAAmB,CAMrB,MAAM,AAAA,SAAS,CAAC;EACjB,KAAK,EAAE,IAAK,GACV;;AARH,AAUE,IAVE,AAAA,mBAAmB,CAUrB,YAAY,CAAC;EACd,KAAK,EAAE,IAAK,GACV;;AAZH,AAcU,IAdN,AAAA,mBAAmB,CAcrB,QAAQ,AAAA,qBAAqB,CAAC;EAC5B,YAAY,EAAE,CAAE,GACjB","names":[],"sourceRoot":"/source/"}
1
+ {"version":3,"file":"../../scss/give.css","sources":["frontend/give-frontend.scss","frontend/_variables.scss","frontend/_mixins.scss","frontend/fonts.scss","plugins/qtip.scss","frontend/receipt.scss","frontend/forms.scss","frontend/alerts.scss","plugins/magnific-popup.scss","plugins/_settings.scss","frontend/layouts.scss","frontend/progress-bar.scss","plugins/float-labels.scss","frontend/modal.scss","frontend/tables.scss","frontend/theme-compatibility.scss"],"sourcesContent":["/*!\r\n * Give Frontend SCSS/CSS\r\n *\r\n * @description: The Main SCSS file for FRONTEND styles which is compiled and minified via Gulp taskrunner\r\n * @package: Give\r\n * @subpackage: SCSS/Frontend\r\n * @copyright: Copyright (c) 2016, WordImpress\r\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n@import '_variables';\r\n@import '_mixins';\r\n@import 'fonts';\r\n@import '../plugins/qtip';\r\n@import 'receipt';\r\n@import 'forms';\r\n@import 'alerts';\r\n@import '../plugins/magnific-popup';\r\n@import 'layouts';\r\n@import 'progress-bar';\r\n@import '../plugins/float-labels';\r\n@import 'modal';\r\n@import 'tables';\r\n@import 'theme-compatibility';","/**\r\n * Give CSS Variables\r\n */\r\n\r\n$green: #7ad03a;\r\n$red: #a00;\r\n$orange: #ffba00;\r\n$blue: #2ea2cc;\r\n$dark: #333;\r\n$borders: #ccc;\r\n$light-gray: #EDEDED;\r\n\r\n//Status\r\n$status-default: #777;\r\n$status-complete: $green;\r\n$status-refunded: $status-default;\r\n$status-subscription: #5bc0de;\r\n$status-revoked: #d9534f;\r\n\r\n//Font sizes\r\n$font-size-medium: 18px;\r\n\r\n$primary: #007ba4;\r\n// Primary colour for buttons (alt)\r\n$primarytext: desaturate(lighten($primary, 50%), 18%);\r\n// Text on primary colour bg\r\n\r\n$secondary: desaturate(lighten($primary, 40%), 21%);\r\n// Secondary buttons\r\n$secondarytext: desaturate(darken($secondary, 60%), 21%);\r\n// Text on secondary colour bg\r\n\r\n$highlight: adjust-hue($primary, 150deg);\r\n// Prices, In stock labels, sales flash\r\n$highlightext: desaturate(lighten($highlight, 50%), 18%);\r\n// Text on highlight colour bg\r\n\r\n$contentbg: #fff;\r\n// Content BG - Tabs (active state)\r\n$subtext: #777;\r\n// small, breadcrumbs etc","/**\r\n * Clearfix\r\n */\r\n@mixin clearfix() {\r\n *zoom: 1;\r\n\r\n &:before,\r\n &:after {\r\n content: \" \";\r\n display: table;\r\n }\r\n\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\n.give-clearfix {\r\n @include clearfix;\r\n}\r\n\r\n/**\r\n * Box Sizing\r\n * https://github.com/timrogers/sass-box-sizing-mixin\r\n */\r\n@mixin box-sizing($box-model) {\r\n -webkit-box-sizing: $box-model; // Safari <= 5\r\n -moz-box-sizing: $box-model; // Firefox <= 19\r\n box-sizing: $box-model;\r\n}\r\n\r\n/**\r\n * CSS3 Easing\r\n */\r\n@mixin easing-transition() {\r\n -moz-transition: 0.2s all linear;\r\n -o-transition: 0.2s all linear;\r\n transition: 0.2s all linear;\r\n}\r\n\r\n//Labels\r\n@mixin give-label() {\r\n padding: .2em .4em .3em;\r\n font-size: 11px;\r\n line-height: 1;\r\n color: #fff;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: baseline;\r\n border-radius: .25em;\r\n \r\n &:hover {\r\n color:#fff;\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n@mixin give-label-gray() {\r\n background-color: #929292;\r\n}\r\n@mixin give-label-orange() {\r\n background-color: #ffba00;\r\n}\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n.give-item-label-gray {\r\n @include give-label-gray();\r\n}\r\n\r\n.give-item-label-orange {\r\n @include give-label-orange();\r\n}\r\n\r\n\r\n.give-item-label {\r\n @include give-label();\r\n}\r\n\r\n//Fields\r\n@mixin give-currency() {\r\n background-color: lighten($light-gray, 2%);\r\n border-top: 1px solid $borders;\r\n border-bottom: 1px solid $borders;\r\n color: $dark;\r\n margin: 0;\r\n padding: 0 12px;\r\n height: 35px;\r\n line-height: 35px;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}\r\n\r\n@mixin give-input() {\r\n border: 1px solid $borders;\r\n background: #FFF;\r\n border-radius: 0;\r\n height: 35px;\r\n line-height: 35px;\r\n padding: 0 12px;\r\n margin: 0;\r\n font-size: $font-size-medium;\r\n @include box-sizing(border-box);\r\n}","/**\n * Give Frontend Fonts SCSS\n *\n * Fonts are from icomoon and the src paths need to be relative to template directory.\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n@font-face {\n font-family: 'give-icomoon';\n src: url('../assets/fonts/icomoon.eot?kdnr3d');\n src: url('../assets/fonts/icomoon.eot?kdnr3d#iefix') format('embedded-opentype'),\n url('../assets/fonts/icomoon.woff?kdnr3d') format('woff'),\n url('../assets/fonts/icomoon.svg?kdnr3d#icomoon') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@mixin iconstyle() {\n font-family: 'give-icomoon';\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n // Better Font Rendering\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n[class^=\"give-icon-\"], [class*=\" give-icon-\"] {\n @include iconstyle();\n}\n\n.give-icon-lamp:before {\n content: \"\\e603\";\n}\n\n.give-icon-heart:before {\n content: \"\\e604\";\n}\n\n.give-icon-question:before {\n content: \"\\e602\";\n}\n\n.give-icon-info:before {\n content: \"\\e601\";\n}\n\n.give-icon-new-tab:before {\n content: \"\\ea7e\";\n}\n\n.give-icon-alert:before {\n content: \"\\f02d\";\n}\n\n.give-icon-help:before {\n content: \"\\e606\";\n}\n\n.give-icon-spinner:before {\n content: \"\\e605\";\n}\n\n.give-icon-spinner2:before {\n content: \"\\e607\";\n}\n\n.give-icon-plus:before {\n content: \"\\e040\";\n}\n\n.give-icon-minus:before {\n content: \"\\e041\";\n}\n\n.give-icon-locked:before {\n content: \"\\e600\";\n}\n\n.dashicons-give:before {\n @include iconstyle();\n content: \"\\e800\";\n}\n\n// --------------------------\n// Spinning Icons\n// --------------------------\n\n.fa-spin {\n -webkit-animation: spin 1000ms infinite linear;\n animation: spin 1000ms infinite linear;\n}\n\n@-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n","/*\n * qTip2 - Pretty powerful tooltips - v2.2.1\n * http://qtip2.com\n *\n * Copyright (c) 2014 \n * Released under the MIT licenses\n * http://jquery.org/license\n *\n * Date: Sun Sep 7 2014 12:09 GMT+0100+0100\n * Plugins: tips modal viewport svg imagemap ie6\n * Styles: core basic css3\n */\n.qtip{\n\tposition: absolute;\n\tleft: -28000px;\n\ttop: -28000px;\n\tdisplay: none;\n\n\tmax-width: 280px;\n\tmin-width: 50px;\n\n\tfont-size: 10.5px;\n\tline-height: 12px;\n\n\tdirection: ltr;\n\n\tbox-shadow: none;\n\tpadding: 0;\n}\n\n\t.qtip-content{\n\t\tposition: relative;\n\t\tpadding: 5px 9px;\n\t\toverflow: hidden;\n\n\t\ttext-align: left;\n\t\tword-wrap: break-word;\n\t}\n\n\t.qtip-titlebar{\n\t\tposition: relative;\n\t\tpadding: 5px 35px 5px 10px;\n\t\toverflow: hidden;\n\n\t\tborder-width: 0 0 1px;\n\t\tfont-weight: bold;\n\t}\n\n\t.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }\n\n\t/* Default close button class */\n\t.qtip-close{\n\t\tposition: absolute;\n\t\tright: -9px; top: -9px;\n\t\tz-index: 11; /* Overlap .qtip-tip */\n\n\t\tcursor: pointer;\n\t\toutline: medium none;\n\n\t\tborder: 1px solid transparent;\n\t}\n\n\t\t.qtip-titlebar .qtip-close{\n\t\t\tright: 4px; top: 50%;\n\t\t\tmargin-top: -9px;\n\t\t}\n\n\t\t* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */\n\n\t\t.qtip-titlebar .ui-icon,\n\t\t.qtip-icon .ui-icon{\n\t\t\tdisplay: block;\n\t\t\ttext-indent: -1000em;\n\t\t\tdirection: ltr;\n\t\t}\n\n\t\t.qtip-icon, .qtip-icon .ui-icon{\n\t\t\t-moz-border-radius: 3px;\n\t\t\t-webkit-border-radius: 3px;\n\t\t\tborder-radius: 3px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t\t.qtip-icon .ui-icon{\n\t\t\t\twidth: 18px;\n\t\t\t\theight: 14px;\n\n\t\t\t\tline-height: 14px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttext-indent: 0;\n\t\t\t\tfont: normal bold 10px/13px Tahoma,sans-serif;\n\n\t\t\t\tcolor: inherit;\n\t\t\t\tbackground: transparent none no-repeat -100em -100em;\n\t\t\t}\n\n/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */\n.qtip-focus{}\n\n/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */\n.qtip-hover{}\n\n/* Default tooltip style */\n.qtip-default{\n\tborder: 1px solid #F1D031;\n\n\tbackground-color: #FFFFA3;\n\tcolor: #555;\n}\n\n\t.qtip-default .qtip-titlebar{\n\t\tbackground-color: #FFEF93;\n\t}\n\n\t.qtip-default .qtip-icon{\n\t\tborder-color: #CCC;\n\t\tbackground: #F1F1F1;\n\t\tcolor: #777;\n\t}\n\n\t.qtip-default .qtip-titlebar .qtip-close{\n\t\tborder-color: #AAA;\n\t\tcolor: #111;\n\t}\n\n\n/*! Light tooltip style */\n.qtip-light{\n\tbackground-color: white;\n\tborder-color: #E2E2E2;\n\tcolor: #454545;\n}\n\n\t.qtip-light .qtip-titlebar{\n\t\tbackground-color: #f1f1f1;\n\t}\n\n\n/*! Dark tooltip style */\n.qtip-dark{\n\tbackground-color: #505050;\n\tborder-color: #303030;\n\tcolor: #f3f3f3;\n}\n\n\t.qtip-dark .qtip-titlebar{\n\t\tbackground-color: #404040;\n\t}\n\n\t.qtip-dark .qtip-icon{\n\t\tborder-color: #444;\n\t}\n\n\t.qtip-dark .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/*! Cream tooltip style */\n.qtip-cream{\n\tbackground-color: #FBF7AA;\n\tborder-color: #F9E98E;\n\tcolor: #A27D35;\n}\n\n\t.qtip-cream .qtip-titlebar{\n\t\tbackground-color: #F0DE7D;\n\t}\n\n\t.qtip-cream .qtip-close .qtip-icon{\n\t\tbackground-position: -82px 0;\n\t}\n\n\n/*! Red tooltip style */\n.qtip-red{\n\tbackground-color: #F78B83;\n\tborder-color: #D95252;\n\tcolor: #912323;\n}\n\n\t.qtip-red .qtip-titlebar{\n\t\tbackground-color: #F06D65;\n\t}\n\n\t.qtip-red .qtip-close .qtip-icon{\n\t\tbackground-position: -102px 0;\n\t}\n\n\t.qtip-red .qtip-icon{\n\t\tborder-color: #D95252;\n\t}\n\n\t.qtip-red .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #D95252;\n\t}\n\n\n/*! Green tooltip style */\n.qtip-green{\n\tbackground-color: #CAED9E;\n\tborder-color: #90D93F;\n\tcolor: #3F6219;\n}\n\n\t.qtip-green .qtip-titlebar{\n\t\tbackground-color: #B0DE78;\n\t}\n\n\t.qtip-green .qtip-close .qtip-icon{\n\t\tbackground-position: -42px 0;\n\t}\n\n\n/*! Blue tooltip style */\n.qtip-blue{\n\tbackground-color: #E5F6FE;\n\tborder-color: #ADD9ED;\n\tcolor: #5E99BD;\n}\n\n\t.qtip-blue .qtip-titlebar{\n\t\tbackground-color: #D0E9F5;\n\t}\n\n\t.qtip-blue .qtip-close .qtip-icon{\n\t\tbackground-position: -2px 0;\n\t}\n\n\n.qtip-shadow{\n\t-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\t-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n\tbox-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);\n}\n\n/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */\n.qtip-rounded,\n.qtip-tipsy,\n.qtip-bootstrap{\n\t-moz-border-radius: 5px;\n\t-webkit-border-radius: 5px;\n\tborder-radius: 5px;\n}\n\n.qtip-rounded .qtip-titlebar{\n\t-moz-border-radius: 4px 4px 0 0;\n\t-webkit-border-radius: 4px 4px 0 0;\n\tborder-radius: 4px 4px 0 0;\n}\n\n/* Youtube tooltip style */\n.qtip-youtube{\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 3px #333;\n\t-moz-box-shadow: 0 0 3px #333;\n\tbox-shadow: 0 0 3px #333;\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tbackground: #4A4A4A;\n\tbackground-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));\n\tbackground-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);\n\tbackground-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);\n}\n\n\t.qtip-youtube .qtip-titlebar{\n\t\tbackground-color: #4A4A4A;\n\t\tbackground-color: rgba(0,0,0,0);\n\t}\n\n\t.qtip-youtube .qtip-content{\n\t\tpadding: .75em;\n\t\tfont: 12px arial,sans-serif;\n\n\t\tfilter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);\";\n\t}\n\n\t.qtip-youtube .qtip-icon{\n\t\tborder-color: #222;\n\t}\n\n\t.qtip-youtube .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* jQuery TOOLS Tooltip style */\n.qtip-jtools{\n\tbackground: #232323;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));\n\tbackground-image: -moz-linear-gradient(top, #717171, #232323);\n\tbackground-image: -webkit-linear-gradient(top, #717171, #232323);\n\tbackground-image: -ms-linear-gradient(top, #717171, #232323);\n\tbackground-image: -o-linear-gradient(top, #717171, #232323);\n\n\tborder: 2px solid #ddd;\n\tborder: 2px solid rgba(241,241,241,1);\n\n\t-moz-border-radius: 2px;\n\t-webkit-border-radius: 2px;\n\tborder-radius: 2px;\n\n\t-webkit-box-shadow: 0 0 12px #333;\n\t-moz-box-shadow: 0 0 12px #333;\n\tbox-shadow: 0 0 12px #333;\n}\n\n\t/* IE Specific */\n\t.qtip-jtools .qtip-titlebar{\n\t\tbackground-color: transparent;\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)\";\n\t}\n\t.qtip-jtools .qtip-content{\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)\";\n\t}\n\n\t.qtip-jtools .qtip-titlebar,\n\t.qtip-jtools .qtip-content{\n\t\tbackground: transparent;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-jtools .qtip-icon{\n\t\tborder-color: #555;\n\t}\n\n\t.qtip-jtools .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #333;\n\t}\n\n\n/* Cluetip style */\n.qtip-cluetip{\n\t-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\t-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\tbox-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);\n\n\tbackground-color: #D9D9C2;\n\tcolor: #111;\n\tborder: 0 dashed transparent;\n}\n\n\t.qtip-cluetip .qtip-titlebar{\n\t\tbackground-color: #87876A;\n\t\tcolor: white;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip-cluetip .qtip-icon{\n\t\tborder-color: #808064;\n\t}\n\n\t.qtip-cluetip .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #696952;\n\t\tcolor: #696952;\n\t}\n\n\n/* Tipsy style */\n.qtip-tipsy{\n\tbackground: black;\n\tbackground: rgba(0, 0, 0, .87);\n\n\tcolor: white;\n\tborder: 0 solid transparent;\n\n\tfont-size: 11px;\n\tfont-family: 'Lucida Grande', sans-serif;\n\tfont-weight: bold;\n\tline-height: 16px;\n\ttext-shadow: 0 1px black;\n}\n\n\t.qtip-tipsy .qtip-titlebar{\n\t\tpadding: 6px 35px 0 10px;\n\t\tbackground-color: transparent;\n\t}\n\n\t.qtip-tipsy .qtip-content{\n\t\tpadding: 6px 10px;\n\t}\n\n\t.qtip-tipsy .qtip-icon{\n\t\tborder-color: #222;\n\t\ttext-shadow: none;\n\t}\n\n\t.qtip-tipsy .qtip-titlebar .ui-state-hover{\n\t\tborder-color: #303030;\n\t}\n\n\n/* Tipped style */\n.qtip-tipped{\n\tborder: 3px solid #959FA9;\n\n\t-moz-border-radius: 3px;\n\t-webkit-border-radius: 3px;\n\tborder-radius: 3px;\n\n\tbackground-color: #F9F9F9;\n\tcolor: #454545;\n\n\tfont-weight: normal;\n\tfont-family: serif;\n}\n\n\t.qtip-tipped .qtip-titlebar{\n\t\tborder-bottom-width: 0;\n\n\t\tcolor: white;\n\t\tbackground: #3A79B8;\n\t\tbackground-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));\n\t\tbackground-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -moz-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -ms-linear-gradient(top, #3A79B8, #2E629D);\n\t\tbackground-image: -o-linear-gradient(top, #3A79B8, #2E629D);\n\t\tfilter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);\n\t\t-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)\";\n\t}\n\n\t.qtip-tipped .qtip-icon{\n\t\tborder: 2px solid #285589;\n\t\tbackground: #285589;\n\t}\n\n\t\t.qtip-tipped .qtip-icon .ui-icon{\n\t\t\tbackground-color: #FBFBFB;\n\t\t\tcolor: #555;\n\t\t}\n\n\n/**\n * Twitter Bootstrap style.\n *\n * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.\n * Does not work with IE 7.\n */\n.qtip-bootstrap{\n\t/** Taken from Bootstrap body */\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: #333333;\n\n\t/** Taken from Bootstrap .popover */\n\tpadding: 1px;\n\tbackground-color: #ffffff;\n\tborder: 1px solid #ccc;\n\tborder: 1px solid rgba(0, 0, 0, 0.2);\n\t-webkit-border-radius: 6px;\n\t-moz-border-radius: 6px;\n\tborder-radius: 6px;\n\t-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\tbox-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n\t-webkit-background-clip: padding-box;\n\t-moz-background-clip: padding;\n\tbackground-clip: padding-box;\n}\n\n\t.qtip-bootstrap .qtip-titlebar{\n\t\t/** Taken from Bootstrap .popover-title */\n\t\tpadding: 8px 14px;\n\t\tmargin: 0;\n\t\tfont-size: 14px;\n\t\tfont-weight: normal;\n\t\tline-height: 18px;\n\t\tbackground-color: #f7f7f7;\n\t\tborder-bottom: 1px solid #ebebeb;\n\t\t-webkit-border-radius: 5px 5px 0 0;\n\t\t-moz-border-radius: 5px 5px 0 0;\n\t\tborder-radius: 5px 5px 0 0;\n\t}\n\n\t\t.qtip-bootstrap .qtip-titlebar .qtip-close{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-titlebar .qtip-close{\n\t\t\t * [...]\n\t\t\t * right: 4px;\n\t\t\t * top: 50%;\n\t\t\t * [...]\n\t\t\t * border-style: solid;\n\t\t\t * }\n\t\t\t */\n\t\t\tright: 11px;\n\t\t\ttop: 45%;\n\t\t\tborder-style: none;\n\t\t}\n\n\t.qtip-bootstrap .qtip-content{\n\t\t/** Taken from Bootstrap .popover-content */\n\t\tpadding: 9px 14px;\n\t}\n\n\t.qtip-bootstrap .qtip-icon{\n\t\t/**\n\t\t * Overrides qTip2:\n\t\t * .qtip-default .qtip-icon {\n\t\t * border-color: #CCC;\n\t\t * background: #F1F1F1;\n\t\t * color: #777;\n\t\t * }\n\t\t */\n\t\tbackground: transparent;\n\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon{\n\t\t\t/**\n\t\t\t * Overrides qTip2:\n\t\t\t * .qtip-icon .ui-icon{\n\t\t\t * width: 18px;\n\t\t\t * height: 14px;\n\t\t\t * }\n\t\t\t */\n\t\t\twidth: auto;\n\t\t\theight: auto;\n\n\t\t\t/* Taken from Bootstrap .close */\n\t\t\tfloat: right;\n\t\t\tfont-size: 20px;\n\t\t\tfont-weight: bold;\n\t\t\tline-height: 18px;\n\t\t\tcolor: #000000;\n\t\t\ttext-shadow: 0 1px 0 #ffffff;\n\t\t\topacity: 0.2;\n\t\t\tfilter: alpha(opacity=20);\n\t\t}\n\n\t\t.qtip-bootstrap .qtip-icon .ui-icon:hover{\n\t\t\t/* Taken from Bootstrap .close:hover */\n\t\t\tcolor: #000000;\n\t\t\ttext-decoration: none;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.4;\n\t\t\tfilter: alpha(opacity=40);\n\t\t}\n\n\n/* IE9 fix - removes all filters */\n.qtip:not(.ie9haxors) div.qtip-content,\n.qtip:not(.ie9haxors) div.qtip-titlebar{\n\tfilter: none;\n\t-ms-filter: none;\n}\n\n\n.qtip .qtip-tip{\n\tmargin: 0 auto;\n\toverflow: hidden;\n\tz-index: 10;\n\n}\n\n\t/* Opera bug #357 - Incorrect tip position\n\thttps://github.com/Craga89/qTip2/issues/367 */\n\tx:-o-prefocus, .qtip .qtip-tip{\n\t\tvisibility: hidden;\n\t}\n\n\t.qtip .qtip-tip,\n\t.qtip .qtip-tip .qtip-vml,\n\t.qtip .qtip-tip canvas{\n\t\tposition: absolute;\n\n\t\tcolor: #123456;\n\t\tbackground: transparent;\n\t\tborder: 0 dashed transparent;\n\t}\n\n\t.qtip .qtip-tip canvas{ top: 0; left: 0; }\n\n\t.qtip .qtip-tip .qtip-vml{\n\t\tbehavior: url(#default#VML);\n\t\tdisplay: inline-block;\n\t\tvisibility: visible;\n\t}\n\n\n#qtip-overlay{\n\tposition: fixed;\n\tleft: 0; top: 0;\n\twidth: 100%; height: 100%;\n}\n\n\t/* Applied to modals with show.modal.blur set to true */\n\t#qtip-overlay.blurs{ cursor: pointer; }\n\n\t/* Change opacity of overlay here */\n\t#qtip-overlay div{\n\t\tposition: absolute;\n\t\tleft: 0; top: 0;\n\t\twidth: 100%; height: 100%;\n\n\t\tbackground-color: black;\n\n\t\topacity: 0.7;\n\t\tfilter:alpha(opacity=70);\n\t\t-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\n\t}\n\n\n.qtipmodal-ie6fix{\n\tposition: absolute !important;\n}\n","/**\r\n * Give Frontend Receipt SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Frontend\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n//------------------------------------------------------------\r\n// Email Browser Receipt Page\r\n//------------------------------------------------------------\r\nbody.give_receipt_page {\r\n\tbackground-color: #fff;\r\n\tcolor: #141412;\r\n\tmargin: 0;\r\n\tfont-family: Helvetica, sans-serif;\r\n\tfont-size: 12px;\r\n\r\n\t#give_receipt_wrapper {\r\n\t\twidth: 660px;\r\n\t\tmargin: 0 auto;\r\n\t\tpadding: 50px 0;\r\n\t}\r\n\r\n\ttable {\r\n\t\tdisplay: table;\r\n\t\twidth: 100%;\r\n\t\tborder-bottom: 1px solid #ededed;\r\n\t\tborder-collapse: collapse;\r\n\t\tborder-spacing: 0;\r\n\t\tfont-size: 14px;\r\n\t\tline-height: 2;\r\n\t\tmargin: 0 0 20px;\r\n\t}\r\n\r\n\ttd, th {\r\n\t\tdisplay: table-cell;\r\n\t\ttext-align: left;\r\n\t\tborder-top: 1px solid #ededed;\r\n\t\tpadding: 6px 10px 6px 0;\r\n\t\tfont-weight: normal;\r\n\t}\r\n\r\n\tth {\r\n\t\tfont-weight: bold;\r\n\t\ttext-transform: uppercase;\r\n\t}\r\n\r\n\th3 {\r\n\t\tfont-size: 22px;\r\n\t\tmargin: 40px 0 5px;\r\n\t\tclear: both;\r\n\t\tdisplay: block;\r\n\t\tfont-weight: bold;\r\n\t}\r\n\r\n}\r\n\r\n//------------------------------------------------------------\r\n// On Site Donation Summary Tables\r\n//------------------------------------------------------------\r\n\r\ntable#give_donation_receipt_products,\r\ntable#give_donation_receipt {\r\n\twidth: 100%;\r\n}\r\n\r\ntable#give_donation_receipt {\r\n\r\n\ttd, th, td, th {\r\n\t\ttext-align: left;\r\n\t}\r\n\r\n\t.give-receipt-thead-text {\r\n\t\tfont-size: 18px;\r\n\t\ttext-align: center;\r\n\t\tdisplay: block;\r\n\r\n\t\t> span {\r\n\t\t\tfont-size: 16px;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tli {\r\n\t\tmargin: 0 0 8px 10px;\r\n\t}\r\n\r\n\tul {\r\n\t\tmargin: 0;\r\n\t\tpadding: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\r\n\t.give_receipt_payment_status.pending,\r\n\t.give_receipt_payment_status.revoked,\r\n\t.give_receipt_payment_status.failed {\r\n\t\tcolor: #f73f2e;\r\n\t}\r\n\r\n\tspan.donation-level-text-wrap {\r\n\t\tfont-style: italic;\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n}\r\n","/**\r\n * Give Frontend Forms SCSS\r\n *\r\n * @package Give\r\n * @subpackage SCSS/Frontend\r\n * @copyright Copyright (c) 2016, WordImpress\r\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\r\n*/\r\n\r\n/*------------------------------------\r\nLayout\r\n--------------------------------------*/\r\n.give-clearfix {\r\n @include clearfix();\r\n}\r\n\r\n[id*='give-form'] {\r\n\r\n .give-hidden {\r\n display: none;\r\n }\r\n\r\n fieldset {\r\n border: none;\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n }\r\n\r\n .give-form-title {\r\n margin: 0 0 15px;\r\n }\r\n\r\n div#give-sidebar-left {\r\n width: 38%;\r\n float: left;\r\n }\r\n\r\n div.images {\r\n margin: 0 0 15px;\r\n\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: auto;\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n .give-custom-amount-text {\r\n clear: both;\r\n }\r\n\r\n div.summary {\r\n width: 58%;\r\n float: right;\r\n\r\n &.give-full-width {\r\n width: 100%;\r\n float: none;\r\n }\r\n }\r\n\r\n .give_form select.give-select.required {\r\n color: #000;\r\n }\r\n\r\n div.give-form-content-wrap {\r\n margin: 0 0 20px;\r\n }\r\n\r\n div.give-form-content-wrap.give_post_form-content {\r\n margin: 20px 0 0 0;\r\n }\r\n\r\n &.give-display-reveal, &.give-display-modal {\r\n .give-btn {\r\n margin: 0 0 15px;\r\n }\r\n #give-payment-mode-select, #give_purchase_form_wrap {\r\n display: none;\r\n }\r\n }\r\n\r\n .cc-address {\r\n margin-bottom: 15px;\r\n }\r\n}\r\n\r\n/*------------------------------------\r\nSingle Forms\r\n--------------------------------------*/\r\n\r\n.single-give_forms {\r\n\r\n &.et_right_sidebar #main-content .container:before {\r\n display: none; //hide Divi sidebar sep on single give forms\r\n }\r\n\r\n .give_forms {\r\n @include clearfix;\r\n }\r\n\r\n}\r\n\r\n/*------------------------------------\r\nGravatar List\r\n--------------------------------------*/\r\n#give-purchase-gravatars {\r\n\r\n .give-gravatars-title {\r\n margin: 0 0 15px;\r\n }\r\n\r\n .give-purchase-gravatars-list {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n li {\r\n list-style-type: none;\r\n display: inline-block;\r\n margin: 0 5px 0 0;\r\n padding: 0;\r\n }\r\n\r\n }\r\n}\r\n\r\n/*------------------------------------\r\nBase Form Styles\r\n--------------------------------------*/\r\n\r\nform[id*='give-form'],\r\n#give-recurring-form,\r\nform.give-form {\r\n margin: 0 0 25px;\r\n padding: 0;\r\n\r\n .give-hidden {\r\n display: none;\r\n }\r\n .give-tooltip {\r\n margin: 0 3px;\r\n padding: 0;\r\n font-size: 14px;\r\n @include easing-transition();\r\n color: transparentize($dark, 0.5);\r\n\r\n &:hover {\r\n color: $dark;\r\n }\r\n }\r\n\r\n legend,\r\n h3.give-section-break,\r\n h4.give-section-break {\r\n font-size: 1.15em;\r\n font-weight: bold;\r\n margin: 10px 0 15px;\r\n padding: 0 0 5px;\r\n border-bottom: 1px solid rgba( 0, 0, 0, .1 );\r\n width: 100%;\r\n\r\n span.sub-text {\r\n font-style: italic;\r\n font-weight: normal;\r\n }\r\n }\r\n\r\n //Form Layout\r\n .form-row {\r\n @include clearfix();\r\n @include box-sizing(border-box);\r\n margin: 0 0 15px;\r\n overflow: visible;\r\n padding: 0;\r\n\r\n // Prevent some themes from removing margin on last-child.\r\n &:last-child {\r\n margin-bottom: 15px;\r\n }\r\n\r\n label {\r\n display: block;\r\n margin: 0 0 5px;\r\n position: relative;\r\n line-height: 1.7;\r\n\r\n &.checkbox {\r\n display: inline;\r\n }\r\n\r\n }\r\n\r\n select, textarea, input[type=\"text\"], input[type=\"tel\"], input[type=\"email\"], input[type=\"password\"] {\r\n @include box-sizing(border-box);\r\n width: 100%;\r\n border-radius: 0;\r\n outline: none;\r\n color: $dark;\r\n background-color: #FDFDFD;\r\n border: 1px solid $borders;\r\n margin: 0;\r\n padding: .5em;\r\n\r\n &:focus {\r\n background-color: #fff;\r\n }\r\n &.required {\r\n color: $dark;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n .form-row-first,\r\n .form-row-last {\r\n float: left;\r\n width: 48.5%;\r\n }\r\n\r\n .form-row-last {\r\n float: right;\r\n }\r\n\r\n .form-row-wide {\r\n @include clearfix();\r\n clear: both;\r\n }\r\n\r\n .form-row-two-thirds {\r\n float: left;\r\n width: 65.75%;\r\n\r\n &.form-row-first {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n .form-row-one-third {\r\n float: left;\r\n width: 31.25%;\r\n margin-left: 3%;\r\n\r\n &.form-row-first {\r\n margin-left: 0;\r\n }\r\n }\r\n\r\n .form-row-responsive {\r\n // Full-width on small viewports.\r\n @media ( max-width: 480px ) {\r\n margin-left: 0;\r\n margin-right: 0;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .give-error,\r\n .give-required-indicator {\r\n color: $red;\r\n }\r\n\r\n .card-expiration {\r\n > select {\r\n width: 44%;\r\n margin: 0;\r\n }\r\n > span.exp-divider {\r\n display: inline;\r\n text-align: center;\r\n }\r\n\r\n select.card-expiry-year {\r\n float: right;\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n/*---------------------------------\r\nForm Price & Amount\r\n-----------------------------------*/\r\n\r\nform[id*='give-form'] {\r\n\r\n .give-donation-amount {\r\n margin: 0 0 15px;\r\n\r\n .give-currency-symbol {\r\n @include give-currency();\r\n float: left;\r\n\r\n &.give-currency-position-before {\r\n border-left: 1px solid $borders;\r\n border-right: none;\r\n }\r\n &.give-currency-position-after {\r\n border-left: none;\r\n border-right: 1px solid $borders;\r\n }\r\n\r\n }\r\n\r\n #give-amount,\r\n #give-amount-text {\r\n @include give-input();\r\n min-width: 125px;\r\n float: left;\r\n\r\n &.invalid-amount {\r\n border: 1px solid red;\r\n }\r\n\r\n }\r\n\r\n input.give-amount-top {\r\n width: 125px;\r\n }\r\n\r\n span.give-final-total-amount {\r\n @include give-input();\r\n cursor: not-allowed;\r\n background: #FFF;\r\n float: left;\r\n }\r\n\r\n }\r\n\r\n #give_terms_agreement {\r\n\r\n legend {\r\n display: none;\r\n }\r\n \r\n label {\r\n display: inline-block;\r\n }\r\n\r\n }\r\n\r\n #give-final-total-wrap {\r\n margin: 10px 0 25px;\r\n padding: 0;\r\n @include clearfix();\r\n\r\n .give-donation-total-label {\r\n @include give-currency();\r\n float: left;\r\n border: 1px solid $borders;\r\n\r\n @media ( max-width: 480px ) {\r\n display: block;\r\n float: none;\r\n }\r\n }\r\n\r\n .give-final-total-amount {\r\n font-size: $font-size-medium;\r\n @include give-input();\r\n border-left: none;\r\n float: left;\r\n\r\n @media ( max-width: 480px ) {\r\n border: 1px solid $borders;\r\n border-top: 0;\r\n display: block;\r\n float: none;\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n.give-display-button-only > *:not(form) {\r\n display: none !important;\r\n}\r\n\r\n.give-display-button-only form > *:not(.give-btn-modal) {\r\n display: none !important;\r\n}\r\n\r\n/*---------------------------------\r\nRadio Lists\r\n-----------------------------------*/\r\nform[id*='give-form'] {\r\n input[type=\"radio\"] {\r\n margin: 0 .5em 0 0;\r\n }\r\n\r\n #give-donation-level-radio-list {\r\n //this is the radio list for the various user set donation levels\r\n margin: 0 0 15px;\r\n padding: 0;\r\n list-style: none;\r\n clear: both;\r\n\r\n > li {\r\n list-style-type: none;\r\n list-style-image: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n label {\r\n cursor: pointer;\r\n display: inline-block;\r\n margin: 0;\r\n }\r\n\r\n input[type=\"radio\"] {\r\n margin: 0 .5em 0 0;\r\n outline: none;\r\n width: auto;\r\n }\r\n }\r\n }\r\n\r\n #give-gateway-radio-list {\r\n //this is the radio list for to select a gateway\r\n @include clearfix();\r\n margin: 0 0 15px;\r\n padding: 0;\r\n list-style: none;\r\n\r\n > li {\r\n list-style-type: none;\r\n list-style-image: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n @media ( min-width: 480px ) {\r\n display: inline-block;\r\n margin-right: 15px;\r\n margin-left: 0;\r\n }\r\n\r\n label.give-gateway-option {\r\n cursor: pointer;\r\n display: inline;\r\n margin: 0;\r\n }\r\n\r\n input[type=\"radio\"] {\r\n margin: 0 .25em 0 0;\r\n outline: none;\r\n width: auto;\r\n display: inline;\r\n }\r\n\r\n }\r\n\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nCheckboxes\r\n-----------------------------------*/\r\nform[id*='give-form'] {\r\n input[type=\"checkbox\"] {\r\n margin: 0 .25em 0 0;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nDonation Level: Dropdown/Select\r\n-----------------------------------*/\r\nform[id*='give-form'] {\r\n select.give-select-level {\r\n outline: none;\r\n border-radius: 0;\r\n min-width: 155px;\r\n border: 1px solid $borders;\r\n margin: 0 0 15px;\r\n display: block;\r\n clear: both;\r\n color: $dark;\r\n background-color: #FDFDFD;\r\n padding: .5em;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nButtons\r\n-----------------------------------*/\r\n\r\n#give-donation-level-button-wrap {\r\n @include clearfix();\r\n margin: 0 0 15px;\r\n padding: 0;\r\n clear: both;\r\n list-style: none;\r\n\r\n > li {\r\n list-style-type: none;\r\n list-style-image: none;\r\n float: left;\r\n margin: 0 5px 5px 0;\r\n }\r\n\r\n}\r\n\r\n.give_terms_links {\r\n float: right;\r\n}\r\n\r\n/*---------------------------------\r\nCC Validation\r\n-----------------------------------*/\r\n\r\n[id*='give_secure_site_wrapper'] {\r\n padding: 4px 4px 15px 0;\r\n font-size: 16px;\r\n line-height: 20px;\r\n //Secure padlock (SSL/HTTPS)\r\n span.padlock {\r\n @include iconstyle();\r\n @extend .give-icon-locked;\r\n font-size: 16px;\r\n line-height: 20px;\r\n\r\n :before {\r\n display: inline-block;\r\n }\r\n }\r\n}\r\n\r\n#give_purchase_form_wrap {\r\n input.give-input.card-number.valid {\r\n background-image: url('../assets/images/tick.png');\r\n background-repeat: no-repeat;\r\n background-position: 98% 50%;\r\n background-size: 16px;\r\n &.floatlabel-input {\r\n background-image: url('../assets/images/tick-alt.png');\r\n background-position: 100% 50%;\r\n background-size: 72px 16px;\r\n }\r\n }\r\n\r\n span.card-type {\r\n position: absolute;\r\n top: -2px;\r\n right: 0;\r\n width: 37px;\r\n height: 26px;\r\n background-size: 37px 26px !important;\r\n }\r\n\r\n .floatlabel {\r\n span.card-type {\r\n top: 11px;\r\n right: 11px;\r\n }\r\n }\r\n\r\n span.card-type.off {\r\n display: none;\r\n }\r\n span.card-type.visa {\r\n background: url('../assets/images/visa.png') no-repeat;\r\n }\r\n span.card-type.mastercard {\r\n background: url('../assets/images/mastercard.png') no-repeat;\r\n }\r\n span.card-type.discover {\r\n background: url('../assets/images/discover.png') no-repeat;\r\n }\r\n span.card-type.amex {\r\n background: url('../assets/images/amex.png') no-repeat;\r\n }\r\n span.card-type.maestro {\r\n background: url('../assets/images/maestro.png') no-repeat;\r\n }\r\n span.card-type.dinersclub {\r\n background: url('../assets/images/diners-club.png') no-repeat;\r\n }\r\n span.card-type.jcb {\r\n background: url('../assets/images/jcb.png') no-repeat;\r\n }\r\n span.card-type.dankort {\r\n background: url('../assets/images/dankort.png') no-repeat;\r\n }\r\n span.card-type.unionpay {\r\n background: url('../assets/images/unionpay.png') no-repeat;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nLoading Animation\r\n-----------------------------------*/\r\n\r\n/* Loading Elipsis */\r\n@-webkit-keyframes opacity {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n@-moz-keyframes opacity {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n}\r\n\r\nform[id*='give-form'] {\r\n p.give-loading-text,\r\n span.give-loading-text {\r\n display: none;\r\n float: right;\r\n height: 16px;\r\n width: 16px;\r\n margin: 0;\r\n padding: 0;\r\n font-style: italic;\r\n line-height: 20px;\r\n font-size: 16px;\r\n font-weight: normal;\r\n }\r\n\r\n .give-loading-animation {\r\n @include iconstyle();\r\n float: left;\r\n height: 16px;\r\n width: 16px;\r\n line-height: 1;\r\n font-size: 16px;\r\n margin: 0 5px 0 0;\r\n background-size: 20px 20px;\r\n background-repeat: no-repeat;\r\n background-color: transparent;\r\n @extend .give-icon-spinner2;\r\n @extend .fa-spin;\r\n }\r\n\r\n .give-payment-mode-label\r\n .give-loading-text {\r\n float: right;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nUser Login\r\n-----------------------------------*/\r\n\r\n/*\r\n * User Login within Donation Form\r\n * (visible when Form Display > Login is enabled)\r\n */\r\n[id*='give-form'] {\r\n .give-login-account-wrap {\r\n margin: 0 0 15px;\r\n position: relative;\r\n\r\n .give-login-message {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .give-loading-text {\r\n position: absolute;\r\n right: 0;\r\n top: .25em;\r\n }\r\n }\r\n\r\n fieldset[id^=\"give-login-fields\"] {\r\n margin: 0 0 15px;\r\n }\r\n\r\n .give-new-account-link {\r\n margin: 0 0 15px;\r\n padding: 0;\r\n }\r\n\r\n .give_login_forgot_password {\r\n float: right;\r\n }\r\n}\r\n\r\n[id^='give-user-login-submit'],\r\n.give-submit-button-wrap {\r\n\r\n input.give-cancel-login {\r\n margin-left: 5px;\r\n }\r\n\r\n span.give-loading-animation {\r\n margin: 0 0 0 .5em;\r\n display: none;\r\n }\r\n .give-submit {\r\n float: left;\r\n }\r\n}\r\n\r\n/* Login Shortcode Form */\r\n#give-login-form,\r\n#give-register-form {\r\n legend, div.give-login {\r\n line-height: 2;\r\n margin-bottom: 15px;\r\n }\r\n\r\n label {\r\n min-width: 100px;\r\n display: inline-block;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nModal - Magnific Popup\r\n-----------------------------------*/\r\n\r\n//Show/Hide elements in Magnific Popup\r\ndiv.give-form-wrap.mfp-hide {\r\n display: block !important;\r\n}\r\n\r\ndiv.mfp-content {\r\n //Basic Styles\r\n fieldset {\r\n p, ol, ul {\r\n margin-bottom: 1.2em;\r\n line-height: 1.4;\r\n }\r\n }\r\n\r\n}\r\n\r\n/*---------------------------------\r\nBasic Button Style\r\n-----------------------------------*/\r\n\r\n.give-btn {\r\n background: $light-gray;\r\n border: 1px solid $borders;\r\n color: $dark;\r\n padding: 8px 10px;\r\n cursor: pointer;\r\n line-height: 1.2em;\r\n font-size: 1em;\r\n\r\n &:hover {\r\n background: #dbdbdb;\r\n }\r\n\r\n}\r\n\r\n/*---------------------------------\r\nEmail Access Form\r\n-----------------------------------*/\r\n\r\nform#give-email-access-form {\r\n div.g-recaptcha, input#give-email {\r\n margin: 0 0 15px;\r\n }\r\n input#give-email {\r\n width: 305px;\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nResponsiveness\r\n-----------------------------------*/\r\n@media (max-width: 768px) {\r\n // Multi-column layout for single forms.\r\n [id*='give-form'] {\r\n div.images, div.summary {\r\n width: 100%;\r\n float: none;\r\n }\r\n\r\n div#give-sidebar-left {\r\n width: 100%;\r\n float: none;\r\n }\r\n }\r\n}\r\n\r\n/*---------------------------------\r\nSection Breaks\r\n-----------------------------------*/\r\n\r\n// Headings are commonly styled by themes, so we need to be extra-specific.\r\n.give-form-wrap .give-form h3.give-section-break,\r\n.give-form-wrap .give-form h4.give-section-break {\r\n margin: 10px 0 0;\r\n}\r\n","/*---------------------------------\nNotices, Warnings & Errors\n-----------------------------------*/\n.give_error, .give_success {\n position: relative;\n margin: 15px 0;\n background: #F9F9F9;\n padding: 1em 1em 1em 2em;\n border-left: 4px solid $red;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125);\n clear: both;\n\n > p {\n margin: 0 !important;\n color: $dark;\n }\n\n &:before {\n @include iconstyle();\n position: absolute;\n top: 50%;\n font-size: 16px;\n margin-top: -15px;\n left: -17px;\n background-color: $red;\n color: #FFF;\n width: 30px;\n height: 30px;\n border-radius: 100%;\n text-align: center;\n line-height: 30px;\n text-shadow: 1px 1px rgba(0, 0, 0, 0.5);\n content: '\\f02d';\n }\n\n &.give_warning {\n border-color: $orange;\n\n &:before {\n background-color: $orange;\n text-shadow: 1px 1px rgba(0, 0, 0, 0.1);\n }\n }\n}\n\n.give_success {\n border-color: $green;\n\n &:before {\n background-color: $green;\n content: '\\e601';\n text-shadow: 1px 1px rgba(0, 0, 0, 0.2);\n }\n\n}","/* Magnific Popup CSS */\n\n@import \"settings\";\n\n////////////////////////\n//\n// Contents:\n//\n// 1. General styles\n// - Transluscent overlay\n// - Containers, wrappers\n// - Cursors\n// - Helper classes\n// 2. Appearance\n// - Preloader & text that displays error messages\n// - CSS reset for buttons\n// - Close icon\n// - \"1 of X\" counter\n// - Navigation (left/right) arrows\n// - Iframe content type styles\n// - Image content type styles\n// - Media query where size of arrows is reduced\n// - IE7 support\n//\n////////////////////////\n\n\n\n////////////////////////\n// 1. General styles\n////////////////////////\n\n// Transluscent overlay\n.mfp-bg {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 2;\n overflow: hidden;\n position: fixed;\n\n background: $mfp-overlay-color;\n opacity: $mfp-overlay-opacity;\n}\n\n// Wrapper for popup\n.mfp-wrap {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 3;\n position: fixed;\n outline: none !important;\n -webkit-backface-visibility: hidden; // fixes webkit bug that can cause \"false\" scrollbar\n}\n\n// Root container\n.mfp-container {\n text-align: center;\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n padding: 0 $mfp-popup-padding-left;\n box-sizing: border-box;\n}\n\n// Vertical centerer helper\n.mfp-container {\n &:before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n }\n}\n\n// Remove vertical centering when popup has class `mfp-align-top`\n.mfp-align-top {\n .mfp-container {\n &:before {\n display: none;\n }\n }\n}\n\n// Popup content holder\n.mfp-content {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin: 0 auto;\n text-align: left;\n z-index: $mfp-z-index-base + 5;\n}\n.mfp-inline-holder,\n.mfp-ajax-holder {\n .mfp-content {\n width: 100%;\n cursor: auto;\n }\n}\n\n// Cursors\n.mfp-ajax-cur {\n cursor: progress;\n}\n.mfp-zoom-out-cur {\n &, .mfp-image-holder .mfp-close {\n cursor: -moz-zoom-out;\n cursor: -webkit-zoom-out;\n cursor: zoom-out;\n }\n}\n.mfp-zoom {\n cursor: pointer;\n cursor: -webkit-zoom-in;\n cursor: -moz-zoom-in;\n cursor: zoom-in;\n}\n.mfp-auto-cursor {\n .mfp-content {\n cursor: auto;\n }\n}\n\n.mfp-close,\n.mfp-arrow,\n.mfp-preloader,\n.mfp-counter {\n -webkit-user-select:none;\n -moz-user-select: none;\n user-select: none;\n}\n\n// Hide the image during the loading\n.mfp-loading {\n &.mfp-figure {\n display: none;\n }\n}\n\n// Helper class that hides stuff\n@if $mfp-use-visuallyhidden {\n // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden\n .mfp-hide {\n border: 0 !important;\n clip: rect(0 0 0 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n }\n} @else {\n .mfp-hide {\n display: none !important;\n }\n}\n\n\n////////////////////////\n// 2. Appearance\n////////////////////////\n\n// Preloader and text that displays error messages\n.mfp-preloader {\n color: $mfp-controls-text-color;\n position: absolute;\n top: 50%;\n width: auto;\n text-align: center;\n margin-top: -0.8em;\n left: 8px;\n right: 8px;\n z-index: $mfp-z-index-base + 4;\n a {\n color: $mfp-controls-text-color;\n &:hover {\n color: $mfp-controls-text-color-hover;\n }\n }\n}\n\n// Hide preloader when content successfully loaded\n.mfp-s-ready {\n .mfp-preloader {\n display: none;\n }\n}\n\n// Hide content when it was not loaded\n.mfp-s-error {\n .mfp-content {\n display: none;\n }\n}\n\n// CSS-reset for buttons\nbutton {\n &.mfp-close,\n &.mfp-arrow {\n overflow: visible;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n display: block;\n outline: none;\n padding: 0;\n z-index: $mfp-z-index-base + 6;\n box-shadow: none;\n touch-action: manipulation;\n }\n &::-moz-focus-inner {\n padding: 0;\n border: 0\n }\n}\n\n\n// Close icon\n.mfp-close {\n width: 44px;\n height: 44px;\n line-height: 44px;\n\n position: absolute;\n right: 0;\n top: 0;\n text-decoration: none;\n text-align: center;\n opacity: $mfp-controls-opacity;\n padding: 0 0 18px 10px;\n color: $mfp-controls-color;\n\n font-style: normal;\n font-size: 28px;\n font-family: Arial, Baskerville, monospace;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:active {\n top: 1px;\n }\n}\n.mfp-close-btn-in {\n .mfp-close {\n color: $mfp-inner-close-icon-color;\n }\n}\n.mfp-image-holder,\n.mfp-iframe-holder {\n .mfp-close {\n color: $mfp-controls-color;\n right: -6px;\n text-align: right;\n padding-right: 6px;\n width: 100%;\n }\n}\n\n// \"1 of X\" counter\n.mfp-counter {\n position: absolute;\n top: 0;\n right: 0;\n color: $mfp-controls-text-color;\n font-size: 12px;\n line-height: 18px;\n white-space: nowrap;\n}\n\n// Navigation arrows\n@if $mfp-include-arrows {\n .mfp-arrow {\n position: absolute;\n opacity: $mfp-controls-opacity;\n margin: 0;\n top: 50%;\n margin-top: -55px;\n padding: 0;\n width: 90px;\n height: 110px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n &:active {\n margin-top: -54px;\n }\n &:hover,\n &:focus {\n opacity: 1;\n }\n &:before,\n &:after {\n content: '';\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n left: 0;\n top: 0;\n margin-top: 35px;\n margin-left: 35px;\n border: medium inset transparent;\n }\n\n &:after {\n\n border-top-width: 13px;\n border-bottom-width: 13px;\n top:8px;\n }\n\n &:before {\n border-top-width: 21px;\n border-bottom-width: 21px;\n opacity: 0.7;\n }\n\n }\n\n .mfp-arrow-left {\n left: 0;\n &:after {\n border-right: 17px solid $mfp-controls-color;\n margin-left: 31px;\n }\n &:before {\n margin-left: 25px;\n border-right: 27px solid $mfp-controls-border-color;\n }\n }\n\n .mfp-arrow-right {\n right: 0;\n &:after {\n border-left: 17px solid $mfp-controls-color;\n margin-left: 39px\n }\n &:before {\n border-left: 27px solid $mfp-controls-border-color;\n }\n }\n}\n\n\n\n// Iframe content type\n@if $mfp-include-iframe-type {\n .mfp-iframe-holder {\n padding-top: $mfp-iframe-padding-top;\n padding-bottom: $mfp-iframe-padding-top;\n .mfp-content {\n line-height: 0;\n width: 100%;\n max-width: $mfp-iframe-max-width;\n }\n .mfp-close {\n top: -40px;\n }\n }\n .mfp-iframe-scaler {\n width: 100%;\n height: 0;\n overflow: hidden;\n padding-top: $mfp-iframe-ratio * 100%;\n iframe {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: $mfp-shadow;\n background: $mfp-iframe-background;\n }\n }\n}\n\n\n\n// Image content type\n@if $mfp-include-image-type {\n\n /* Main image in popup */\n img {\n &.mfp-img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n line-height: 0;\n box-sizing: border-box;\n padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;\n margin: 0 auto;\n }\n }\n\n /* The shadow behind the image */\n .mfp-figure {\n line-height: 0;\n &:after {\n content: '';\n position: absolute;\n left: 0;\n top: $mfp-image-padding-top;\n bottom: $mfp-image-padding-bottom;\n display: block;\n right: 0;\n width: auto;\n height: auto;\n z-index: -1;\n box-shadow: $mfp-shadow;\n background: $mfp-image-background;\n }\n small {\n color: $mfp-caption-subtitle-color;\n display: block;\n font-size: 12px;\n line-height: 14px;\n }\n figure {\n margin: 0;\n }\n }\n .mfp-bottom-bar {\n margin-top: -$mfp-image-padding-bottom + 4;\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n cursor: auto;\n }\n .mfp-title {\n text-align: left;\n line-height: 18px;\n color: $mfp-caption-title-color;\n word-wrap: break-word;\n padding-right: 36px; // leave some space for counter at right side\n }\n\n .mfp-image-holder {\n .mfp-content {\n max-width: 100%;\n }\n }\n\n .mfp-gallery {\n .mfp-image-holder {\n .mfp-figure {\n cursor: pointer;\n }\n }\n }\n\n\n @if $mfp-include-mobile-layout-for-image {\n @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {\n /**\n * Remove all paddings around the image on small screen\n */\n .mfp-img-mobile {\n .mfp-image-holder {\n padding-left: 0;\n padding-right: 0;\n }\n img {\n &.mfp-img {\n padding: 0;\n }\n }\n .mfp-figure {\n // The shadow behind the image\n &:after {\n top: 0;\n bottom: 0;\n }\n small {\n display: inline;\n margin-left: 5px;\n }\n }\n .mfp-bottom-bar {\n background: rgba(0,0,0,0.6);\n bottom: 0;\n margin: 0;\n top: auto;\n padding: 3px 5px;\n position: fixed;\n box-sizing: border-box;\n &:empty {\n padding: 0;\n }\n }\n .mfp-counter {\n right: 5px;\n top: 3px;\n }\n .mfp-close {\n top: 0;\n right: 0;\n width: 35px;\n height: 35px;\n line-height: 35px;\n background: rgba(0, 0, 0, 0.6);\n position: fixed;\n text-align: center;\n padding: 0;\n }\n }\n }\n }\n}\n\n\n\n// Scale navigation arrows and reduce padding from sides\n@media all and (max-width: 900px) {\n .mfp-arrow {\n -webkit-transform: scale(0.75);\n transform: scale(0.75);\n }\n .mfp-arrow-left {\n -webkit-transform-origin: 0;\n transform-origin: 0;\n }\n .mfp-arrow-right {\n -webkit-transform-origin: 100%;\n transform-origin: 100%;\n }\n .mfp-container {\n padding-left: $mfp-popup-padding-left-mobile;\n padding-right: $mfp-popup-padding-left-mobile;\n }\n}\n\n","////////////////////////\n// Settings //\n////////////////////////\n\n// overlay\n$mfp-overlay-color: #0b0b0b !default; // Color of overlay screen\n$mfp-overlay-opacity: 0.8 !default; // Opacity of overlay screen\n$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // Shadow on image or iframe\n\n// spacing\n$mfp-popup-padding-left: 8px !default; // Padding from left and from right side\n$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px\n\n$mfp-z-index-base: 1040 !default; // Base z-index of popup\n\n// controls\n$mfp-include-arrows: true !default; // Include styles for nav arrows\n$mfp-controls-opacity: 0.65 !default; // Opacity of controls\n$mfp-controls-color: #FFF !default; // Color of controls\n$mfp-controls-border-color: #3F3F3F !default; \t // Border color of controls\n$mfp-inner-close-icon-color: #333 !default; // Color of close button when inside\n$mfp-controls-text-color: #CCC !default; // Color of preloader and \"1 of X\" indicator\n$mfp-controls-text-color-hover: #FFF !default; // Hover color of preloader and \"1 of X\" indicator\n\n// Iframe-type options\n$mfp-include-iframe-type: true !default; // Enable Iframe-type popups\n$mfp-iframe-padding-top: 40px !default; // Iframe padding top\n$mfp-iframe-background: #000 !default; // Background color of iframes\n$mfp-iframe-max-width: 900px !default; // Maximum width of iframes\n$mfp-iframe-ratio: 9/16 !default; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)\n\n// Image-type options\n$mfp-include-image-type: true !default; // Enable Image-type popups\n$mfp-image-background: #444 !default;\n$mfp-image-padding-top: 40px !default; // Image padding top\n$mfp-image-padding-bottom: 40px !default; // Image padding bottom\n$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom\n\n// Image caption options\n$mfp-caption-title-color: #F3F3F3 !default; // Caption title color\n$mfp-caption-subtitle-color: #BDBDBD !default; // Caption subtitle color\n\n// A11y\n$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers\n","/**\n * Give Layouts SCSS/CSS\n *\n * @description: This file provides layout styles for various themes such as the default WordPress themes and others if applicable; Most themes handle Give's template system just fine ;)\n * @package: Give\n * @subpackage: SCSS/Frontend\n * @copyright: Copyright (c) 2016, WordImpress\n * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n/**\n * Twenty Thirteen specific styles\n */\n\n.twentythirteen {\n\n .give_forms {\n\tpadding: 40px 0;\n }\n\n}\n\n/**\n * Twenty Fourteen specific styles\n */\n.twentyfourteen {\n .tfgive {\n\tpadding: 12px 10px 0;\n\tmax-width: 474px;\n\tmargin: 0 auto;\n\n\t.give_forms .entry-summary {\n\t padding: 0 !important;\n\t margin: 0 0 1.618em !important;\n\t}\n\n\tdiv.give_forms.hentry.has-post-thumbnail {\n\t margin-top: 0;\n\t}\n\n\t.give_forms {\n\t .images {\n\t\timg {\n\t\t margin-bottom: 1em;\n\t\t}\n\t }\n\t}\n }\n}\n\n@media screen and (min-width: 673px) {\n .twentyfourteen {\n\t.tfgive {\n\t padding-right: 30px;\n\t padding-left: 30px;\n\t}\n }\n}\n\n@media screen and (min-width: 1040px) {\n .twentyfourteen {\n\t.tfgive {\n\t padding-right: 15px;\n\t padding-left: 15px;\n\t}\n }\n}\n\n@media screen and (min-width: 1110px) {\n .twentyfourteen {\n\t.tfgive {\n\t padding-right: 30px;\n\t padding-left: 30px;\n\t}\n }\n}\n\n@media screen and (min-width: 1218px) {\n .twentyfourteen {\n\t.tfgive {\n\t margin-right: 54px;\n\t}\n }\n .full-width {\n\t.twentyfourteen {\n\t .tfgive {\n\t\tmargin-right: auto;\n\t }\n\t}\n }\n}\n\n/**\n * Twenty Fifteen specific styles\n */\n.twentyfifteen {\n .t15give {\n\tpadding-left: 7.6923%;\n\tpadding-right: 7.6923%;\n\tpadding-top: 7.6923%;\n\tmargin-bottom: 7.6923%;\n\tbackground: #fff;\n\tbox-shadow: 0 0 1px rgba(0, 0, 0, 0.15);\n\n\t.page-title {\n\t margin-left: 0;\n\t}\n\tdiv.summary {\n\t padding: 0;\n\t}\n }\n}\n\n@media screen and (min-width: 38.75em) {\n .twentyfifteen {\n\t.t15give {\n\t margin-right: 7.6923%;\n\t margin-left: 7.6923%;\n\t margin-top: 8.3333%;\n\t}\n }\n}\n\n@media screen and (min-width: 59.6875em) {\n .twentyfifteen {\n\t.t15give {\n\t margin-left: 8.3333%;\n\t margin-right: 8.3333%;\n\t padding: 10%;\n\t}\n }\n\n .single-product {\n\t.twentyfifteen {\n\t .entry-summary {\n\t\tpadding: 0 !important;\n\t }\n\t}\n }\n}\n\n/*----------------------------------------------\nAvada\n------------------------------------------------*/\n\n.avada-row > div.give-wrap #content {\n width: 100%;\n}","/**\n * Give Frontend Progress Bar SCSS\n *\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n.give-goal-progress {\n margin-bottom: 20px;\n clear:both;\n\n .income {\n\tfont-size: 46px;\n\tline-height: 48px;\n\tletter-spacing: -1px;\n\tcolor: #333;\n }\n\n .raised {\n\tmargin-bottom: 15px;\n }\n}\n\n.give-progress-bar {\n height: 20px; \n position: relative;\n background: #EEE;\n border-radius: 25px;\n overflow: hidden;\n\n > span {\n\tdisplay: block;\n\theight: 100%;\n\tborder-top-right-radius: 8px;\n\tborder-bottom-right-radius: 8px;\n\tborder-top-left-radius: 20px;\n\tborder-bottom-left-radius: 20px;\n\tbackground-color: rgb(43, 194, 83);\n\tposition: relative;\n\toverflow: hidden;\n }\n}","/*!\n * Float Labels\n *\n * Version: 1.0.8\n * Author: Paul Ryley (http://geminilabs.io)\n * URL: https://github.com/geminilabs/float-labels.js\n * License: MIT\n */\n\n//\n// Variables\n//\n\n$fl-placeholder : #aaa !default;\n$fl-text : #333 !default;\n$fl-text-focus : #007ba4 !default;\n$fl-borders : #ccc !default;\n$fl-borders-focus : #ccc !default;\n$fl-borders-active : #ccc !default;\n$fl-background : #fff !default;\n$fl-background-focus : #fff !default;\n$fl-background-active : #fff !default;\n\n$fl-font-size : 16px !default;\n$fl-font-size-small : 11px !default;\n\n$fl-spacing-base : 24px !default;\n$fl-spacing-half : $fl-spacing-base / 2 !default;\n$fl-spacing-third : $fl-spacing-base / 3 !default;\n$fl-spacing-fourth : $fl-spacing-base / 4 !default;\n\n$fl-transition-speed : 0.3s !default;\n$fl-transition-easing : ease-in-out !default;\n\n//\n// Styles\n//\n\nform.floated-labels {\n\n\t.floatlabel {\n\n\t\tposition: relative;\n\n\t\tinput[type=\"text\"], input[type=\"tel\"], input[type=\"email\"], input[type=\"password\"],\n\t\tinput,\n\t\tselect,\n\t\ttextarea {\n\t\t\tfont-size: $fl-font-size;\n\t\t\tline-height: normal;\n\t\t\tbackground-color: $fl-background;\n\t\t\tborder: 1px solid $fl-borders;\n\t\t\tpadding: $fl-spacing-half;\n\t\t}\n\n\t\tselect {\n\t\t\tposition: relative;\n\t\t\tcolor: $fl-placeholder;\n\t\t\tcursor: pointer;\n\t\t\t-webkit-appearance: none;\n\t\t\t-moz-appearance: none;\n\t\t}\n\n\t\t&.is-active {\n\t\t\tlabel.floatlabel-label {\n\t\t\t\topacity: 1;\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\n\t\t\tinput,\n\t\t\tselect,\n\t\t\ttextarea {\n\t\t\t\tcolor: $fl-text;\n\t\t\t\tbackground-color: $fl-background-active;\n\t\t\t\tborder-color: $fl-borders-active;\n\t\t\t\tpadding-top: $fl-spacing-base - ($fl-spacing-third / 2);\n\t\t\t\tpadding-bottom: $fl-spacing-third / 2;\n\t\t\t}\n\t\t}\n\n\t\t&.is-focused {\n\t\t\tlabel.floatlabel-label {\n\t\t\t\tcolor: $fl-text-focus;\n\t\t\t}\n\n\t\t\tinput,\n\t\t\tselect,\n\t\t\ttextarea {\n\t\t\t\tbackground-color: $fl-background-focus;\n\t\t\t\tborder-color: $fl-borders-focus;\n\t\t\t}\n\t\t}\n\n\t\tlabel.floatlabel-label {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\ttop: $fl-spacing-third;\n\t\t\tleft: $fl-spacing-half;\n\t\t\tcolor: $fl-placeholder;\n\t\t\tfont-size: $fl-font-size-small;\n\t\t\tline-height: 1;\n\t\t\topacity: 0;\n\t\t\tvisibility: hidden;\n\t\t\ttransition: all $fl-transition-speed $fl-transition-easing;\n\t\t\tpadding: 0 1px;\n\n\t\t\t&.is-visible {\n\t\t\t\topacity: 1;\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\t\t}\n\t}\n\n\t.styled {\n\n\t\t&.select {\n\t\t\tposition: relative;\n\n\t\t\t&:before,\n\t\t\t&:after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: $fl-spacing-base;\n\t\t\t\theight: 2px;\n\t\t\t\twidth: $fl-spacing-fourth;\n\t\t\t\tbackground: $fl-placeholder;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tright: $fl-spacing-half + $fl-spacing-fourth;\n\t\t\t\ttransform: skew(0deg, 45deg);\n\t\t\t}\n\n\t\t\t&:after {\n\t\t\t\tright: $fl-spacing-half;\n\t\t\t\ttransform: skew(0deg, -45deg);\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * Give Magnific Modal Custom SCSS\n *\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n// Wrapper for popup\n.give-modal {\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: $mfp-z-index-base + 2147482500;\n\tposition: fixed;\n\toutline: none !important;\n\t-webkit-backface-visibility: hidden; // fixes webkit bug that can cause \"false\" scrollbar\n\n\tform[id*='give-form'] {\n\t\tmargin-bottom: 0;\n\t\t.give-submit {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t\t.give-payment-mode-label {\n\t\t\tmargin-top: 0;\n\t\t\tpadding-top: 0;\n\t\t}\n\t}\n\n\t// Root container\n\t.mfp-container {\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tpadding: 0 $mfp-popup-padding-left;\n\t\t-webkit-box-sizing: border-box;\n\t\t-moz-box-sizing: border-box;\n\t\tbox-sizing: border-box;\n\t}\n\n\t// Vertical centerer helper\n\t.mfp-container {\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\theight: 100%;\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t// Remove vertical centering when popup has class `mfp-align-top`\n\t.mfp-align-top {\n\t\t.mfp-container {\n\t\t\t&:before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Popup content holder\n\t.mfp-content {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\ttext-align: left;\n\t\tposition: relative;\n\t\tbackground: #FFF;\n\t\tpadding: 20px;\n\t\twidth: auto;\n\t\tmax-width: 500px;\n\t\tmargin: 40px auto;\n\t\tz-index: $mfp-z-index-base + 2147482600;\n\n\t\t[id*='give-form'] #give-payment-mode-select,\n\t\t[id*='give-form'] #give_purchase_form_wrap,\n\t\t[id*='give-form'].give-display-button-only .give-donation-amount,\n\t\t[id*='give-form'].give-display-button-only .give-donation-levels-wrap {\n\t\t\tdisplay: block;\n\t\t}\n\n\t}\n\n\t.mfp-inline-holder,\n\t.mfp-ajax-holder {\n\t\t.mfp-content {\n\t\t\twidth: 100%;\n\t\t\tcursor: auto;\n\t\t}\n\t}\n\n\t// Cursors\n\t.mfp-ajax-cur {\n\t\tcursor: progress;\n\t}\n\n\t.mfp-zoom-out-cur {\n\t\t&, .mfp-image-holder .mfp-close {\n\t\t\tcursor: -moz-zoom-out;\n\t\t\tcursor: -webkit-zoom-out;\n\t\t\tcursor: zoom-out;\n\t\t}\n\t}\n\n\t.mfp-zoom {\n\t\tcursor: pointer;\n\t\tcursor: -webkit-zoom-in;\n\t\tcursor: -moz-zoom-in;\n\t\tcursor: zoom-in;\n\t}\n\n\t.mfp-auto-cursor {\n\t\t.mfp-content {\n\t\t\tcursor: auto;\n\t\t}\n\t}\n\n\t.mfp-close,\n\t.mfp-arrow,\n\t.mfp-preloader,\n\t.mfp-counter {\n\t\t-webkit-user-select: none;\n\t\t-moz-user-select: none;\n\t\tuser-select: none;\n\t}\n\n\t.mfp-close:hover {\n\t\tbackground-color: transparent;\n\t}\n\n\t// Hide the image during the loading\n\t.mfp-loading {\n\t\t&.mfp-figure {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n}","/**\n * Give Frontend Tables SCSS\n *\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\ntable.give-table {\n color: #666;\n font-size: 14px;\n text-shadow: 1px 1px 0px #fff;\n background: #eaebec;\n margin: 20px 0;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-bottom: none;\n width: 100%;\n\n thead {\n font-weight: bold;\n\n th:first-child {\n text-align: left;\n }\n }\n\n th {\n padding: 21px 25px;\n border-top: 1px solid #E8E8E8;\n border-bottom: 1px solid #e0e0e0;\n border-left: 1px solid #e0e0e0;\n border-right: none;\n background: #F6F6F6;\n text-align: center;\n font-weight: bold;\n }\n\n tbody {\n\n tr {\n text-align: center;\n\n td {\n padding: 18px;\n border: none;\n border-top: 1px solid #ffffff;\n border-bottom: 1px solid #e0e0e0;\n border-left: 1px solid #e0e0e0;\n background: #FFF;\n text-align: center;\n }\n\n td:first-child {\n text-align: left;\n border-left: 0;\n }\n }\n\n //Even Rows\n tr:nth-child(even) td {\n background: #fcfcfc;\n }\n\n }\n\n}","/**\n * Give Frontend Theme Compatibility\n *\n * @description: The following styles help Give look good and fixes CSS conflicts with popular WordPress themes\n * @package Give\n * @subpackage SCSS/Frontend\n * @copyright Copyright (c) 2016, WordImpress\n * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License\n*/\n\n//Divi\n.give-divi {\n\n .qtip-tipsy {\n\tz-index: 1000002 !important;\n }\n\n}\n\n//Twenty Sixteen\nbody.give-twentysixteen {\n\n div.entry-summary {\n\tmargin: 0;\n }\n\n button.give-btn {\n\tcolor: #333;\n }\n\n .give-submit {\n\tcolor: #FFF;\n }\n\n fieldset#give_terms_agreement {\n padding-left: 0;\n }\n\n}"],"mappings":"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","names":[]}
give.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: The most robust, flexible, and intuitive way to accept donations on WordPress.
6
  * Author: WordImpress
7
  * Author URI: https://wordimpress.com
8
- * Version: 1.8.6
9
  * Text Domain: give
10
  * Domain Path: /languages
11
  * GitHub Plugin URI: https://github.com/WordImpress/Give
@@ -214,6 +214,14 @@ if ( ! class_exists( 'Give' ) ) :
214
  self::$instance->template_loader = new Give_Template_Loader();
215
  self::$instance->email_access = new Give_Email_Access();
216
 
 
 
 
 
 
 
 
 
217
  }
218
 
219
  return self::$instance;
@@ -260,7 +268,7 @@ if ( ! class_exists( 'Give' ) ) :
260
 
261
  // Plugin version
262
  if ( ! defined( 'GIVE_VERSION' ) ) {
263
- define( 'GIVE_VERSION', '1.8.6' );
264
  }
265
 
266
  // Plugin Folder Path
@@ -305,6 +313,7 @@ if ( ! class_exists( 'Give' ) ) :
305
  $give_options = give_get_settings();
306
 
307
  require_once GIVE_PLUGIN_DIR . 'includes/admin/give-metabox-functions.php';
 
308
  require_once GIVE_PLUGIN_DIR . 'includes/post-types.php';
309
  require_once GIVE_PLUGIN_DIR . 'includes/scripts.php';
310
  require_once GIVE_PLUGIN_DIR . 'includes/ajax-functions.php';
5
  * Description: The most robust, flexible, and intuitive way to accept donations on WordPress.
6
  * Author: WordImpress
7
  * Author URI: https://wordimpress.com
8
+ * Version: 1.8.7
9
  * Text Domain: give
10
  * Domain Path: /languages
11
  * GitHub Plugin URI: https://github.com/WordImpress/Give
214
  self::$instance->template_loader = new Give_Template_Loader();
215
  self::$instance->email_access = new Give_Email_Access();
216
 
217
+
218
+ /**
219
+ * Fire the action after Give core loads
220
+ *
221
+ * @since 1.8.7
222
+ */
223
+ do_action( 'give_init', self::$instance );
224
+
225
  }
226
 
227
  return self::$instance;
268
 
269
  // Plugin version
270
  if ( ! defined( 'GIVE_VERSION' ) ) {
271
+ define( 'GIVE_VERSION', '1.8.7' );
272
  }
273
 
274
  // Plugin Folder Path
313
  $give_options = give_get_settings();
314
 
315
  require_once GIVE_PLUGIN_DIR . 'includes/admin/give-metabox-functions.php';
316
+ require_once GIVE_PLUGIN_DIR . 'includes/class-give-cache.php';
317
  require_once GIVE_PLUGIN_DIR . 'includes/post-types.php';
318
  require_once GIVE_PLUGIN_DIR . 'includes/scripts.php';
319
  require_once GIVE_PLUGIN_DIR . 'includes/ajax-functions.php';
includes/actions.php CHANGED
@@ -27,8 +27,8 @@ function give_get_actions() {
27
 
28
  $_get_action = ! empty( $_GET['give_action'] ) ? $_GET['give_action'] : null;
29
 
30
- // Add backward compatibility to give-action param ( $_GET or $_POST )
31
- if( doing_action( 'admin_init' ) && empty( $_get_action ) ) {
32
  $_get_action = ! empty( $_GET['give-action'] ) ? $_GET['give-action'] : null;
33
  }
34
 
@@ -46,10 +46,9 @@ function give_get_actions() {
46
  }
47
 
48
  add_action( 'init', 'give_get_actions' );
49
- add_action( 'admin_init', 'give_get_actions' );
50
 
51
  /**
52
- * Hooks Give actions, when present in the $_POST superglobal. Every give_action
53
  * present in $_POST is called using WordPress's do_action function. These
54
  * functions are called on init.
55
  *
@@ -62,8 +61,8 @@ function give_post_actions() {
62
  $_post_action = ! empty( $_POST['give_action'] ) ? $_POST['give_action'] : null;
63
 
64
 
65
- // Add backward compatibility to give-action param ( $_GET or $_POST )
66
- if( doing_action( 'admin_init' ) && empty( $_post_action ) ) {
67
  $_post_action = ! empty( $_POST['give-action'] ) ? $_POST['give-action'] : null;
68
  }
69
 
@@ -81,7 +80,6 @@ function give_post_actions() {
81
  }
82
 
83
  add_action( 'init', 'give_post_actions' );
84
- add_action( 'admin_init', 'give_post_actions' );
85
 
86
  /**
87
  * Connect WordPress user with Donor.
@@ -92,6 +90,7 @@ add_action( 'admin_init', 'give_post_actions' );
92
  * @return void
93
  */
94
  function give_connect_donor_to_wpuser( $user_id, $user_data ){
 
95
  $donor = new Give_Customer( $user_data['user_email'] );
96
 
97
  // Validate donor id and check if do nor is already connect to wp user or not.
@@ -159,7 +158,56 @@ function give_donor_batch_export_complete( $data ) {
159
  && ! empty( $data['forms'] )
160
  && isset( $data['give_export_option']['query_id'] )
161
  ) {
162
- delete_transient( $data['give_export_option']['query_id'] );
163
  }
164
  }
165
  add_action('give_file_export_complete', 'give_donor_batch_export_complete' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  $_get_action = ! empty( $_GET['give_action'] ) ? $_GET['give_action'] : null;
29
 
30
+ // Add backward compatibility to give-action param ( $_GET )
31
+ if( empty( $_get_action ) ) {
32
  $_get_action = ! empty( $_GET['give-action'] ) ? $_GET['give-action'] : null;
33
  }
34
 
46
  }
47
 
48
  add_action( 'init', 'give_get_actions' );
 
49
 
50
  /**
51
+ * Hooks Give actions, when present in the $_POST super global. Every give_action
52
  * present in $_POST is called using WordPress's do_action function. These
53
  * functions are called on init.
54
  *
61
  $_post_action = ! empty( $_POST['give_action'] ) ? $_POST['give_action'] : null;
62
 
63
 
64
+ // Add backward compatibility to give-action param ( $_POST )
65
+ if( empty( $_post_action ) ) {
66
  $_post_action = ! empty( $_POST['give-action'] ) ? $_POST['give-action'] : null;
67
  }
68
 
80
  }
81
 
82
  add_action( 'init', 'give_post_actions' );
 
83
 
84
  /**
85
  * Connect WordPress user with Donor.
90
  * @return void
91
  */
92
  function give_connect_donor_to_wpuser( $user_id, $user_data ){
93
+ /* @var Give_Customer $donor */
94
  $donor = new Give_Customer( $user_data['user_email'] );
95
 
96
  // Validate donor id and check if do nor is already connect to wp user or not.
158
  && ! empty( $data['forms'] )
159
  && isset( $data['give_export_option']['query_id'] )
160
  ) {
161
+ Give_Cache::delete( Give_Cache::get_key( $data['give_export_option']['query_id'] ) );
162
  }
163
  }
164
  add_action('give_file_export_complete', 'give_donor_batch_export_complete' );
165
+
166
+ /**
167
+ * Print css for wordpress setting pages.
168
+ *
169
+ * @since 1.8.7
170
+ */
171
+ function give_admin_quick_css() {
172
+ /* @var WP_Screen $screen */
173
+ $screen = get_current_screen();
174
+
175
+ if( ! ( $screen instanceof WP_Screen ) ) {
176
+ return false;
177
+ }
178
+
179
+ switch ( true ) {
180
+ case ( 'plugins' === $screen->base ):
181
+ ?>
182
+ <style>
183
+ tr.active.update + tr.give-addon-notice-tr td{
184
+ box-shadow:none;
185
+ -webkit-box-shadow:none;
186
+ }
187
+ tr.active + tr.give-addon-notice-tr td{
188
+ position: relative;
189
+ top:-1px;
190
+ }
191
+ tr.active + tr.give-addon-notice-tr .notice{
192
+ margin: 5px 20px 15px 40px;
193
+ }
194
+
195
+ tr.give-addon-notice-tr .dashicons {
196
+ color: #f56e28;
197
+ }
198
+ tr.give-addon-notice-tr td{
199
+ border-left: 4px solid #00a0d2;
200
+ }
201
+
202
+ tr.give-addon-notice-tr td{
203
+ padding: 0!important;
204
+ }
205
+
206
+ tr.active.update + tr.give-addon-notice-tr .notice{
207
+ margin: 5px 20px 5px 40px;
208
+ }
209
+ </style>
210
+ <?php
211
+ }
212
+ }
213
+ add_action( 'admin_head', 'give_admin_quick_css' );
includes/admin/EDD_SL_Plugin_Updater.php CHANGED
@@ -7,7 +7,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
7
  * Allows plugins to use their own update API.
8
  *
9
  * @author Easy Digital Downloads
10
- * @version 1.6.11
11
  */
12
  class EDD_SL_Plugin_Updater {
13
 
@@ -279,8 +279,8 @@ class EDD_SL_Plugin_Updater {
279
  // Convert sections into an associative array, since we're getting an object, but Core expects an array.
280
  if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
281
  $new_sections = array();
282
- foreach ( $_data->sections as $key => $key ) {
283
- $new_sections[ $key ] = $key;
284
  }
285
 
286
  $_data->sections = $new_sections;
@@ -289,8 +289,8 @@ class EDD_SL_Plugin_Updater {
289
  // Convert banners into an associative array, since we're getting an object, but Core expects an array.
290
  if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
291
  $new_banners = array();
292
- foreach ( $_data->banners as $key => $key ) {
293
- $new_banners[ $key ] = $key;
294
  }
295
 
296
  $_data->banners = $new_banners;
7
  * Allows plugins to use their own update API.
8
  *
9
  * @author Easy Digital Downloads
10
+ * @version 1.6.12
11
  */
12
  class EDD_SL_Plugin_Updater {
13
 
279
  // Convert sections into an associative array, since we're getting an object, but Core expects an array.
280
  if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
281
  $new_sections = array();
282
+ foreach ( $_data->sections as $key => $value ) {
283
+ $new_sections[ $key ] = $value;
284
  }
285
 
286
  $_data->sections = $new_sections;
289
  // Convert banners into an associative array, since we're getting an object, but Core expects an array.
290
  if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
291
  $new_banners = array();
292
+ foreach ( $_data->banners as $key => $value ) {
293
+ $new_banners[ $key ] = $value;
294
  }
295
 
296
  $_data->banners = $new_banners;
includes/admin/add-ons.php CHANGED
@@ -48,7 +48,7 @@ function give_add_ons_page() {
48
  function give_add_ons_get_feed() {
49
 
50
  $addons_debug = false; //set to true to debug
51
- $cache = get_transient( 'give_add_ons_feed' );
52
 
53
  if ( $cache === false || $addons_debug === true && WP_DEBUG === true ) {
54
  $feed = wp_remote_get( 'https://givewp.com/downloads/feed/', array( 'sslverify' => false ) );
@@ -56,10 +56,13 @@ function give_add_ons_get_feed() {
56
  if ( ! is_wp_error( $feed ) ) {
57
  if ( isset( $feed['body'] ) && strlen( $feed['body'] ) > 0 ) {
58
  $cache = wp_remote_retrieve_body( $feed );
59
- set_transient( 'give_add_ons_feed', $cache, 3600 );
60
  }
61
  } else {
62
- $cache = '<div class="error"><p>' . esc_html__( 'There was an error retrieving the Give Add-ons list from the server. Please try again later.', 'give' ) . '</div>';
 
 
 
63
  }
64
  }
65
 
48
  function give_add_ons_get_feed() {
49
 
50
  $addons_debug = false; //set to true to debug
51
+ $cache = Give_Cache::get( 'give_add_ons_feed', true );
52
 
53
  if ( $cache === false || $addons_debug === true && WP_DEBUG === true ) {
54
  $feed = wp_remote_get( 'https://givewp.com/downloads/feed/', array( 'sslverify' => false ) );
56
  if ( ! is_wp_error( $feed ) ) {
57
  if ( isset( $feed['body'] ) && strlen( $feed['body'] ) > 0 ) {
58
  $cache = wp_remote_retrieve_body( $feed );
59
+ Give_Cache::set( 'give_add_ons_feed', $cache, HOUR_IN_SECONDS, true );
60
  }
61
  } else {
62
+ $cache = sprintf(
63
+ '<div class="error"><p>%s</p></div>',
64
+ esc_html__( 'There was an error retrieving the Give Add-ons list from the server. Please try again later.', 'give' )
65
+ );
66
  }
67
  }
68
 
includes/admin/admin-actions.php CHANGED
@@ -57,12 +57,12 @@ function give_hide_subscription_notices() {
57
  // Transient key name.
58
  $transient_key = "_give_hide_license_notices_shortly_{$current_user->ID}_{$notice_id}";
59
 
60
- if ( get_transient( $transient_key ) ) {
61
  return;
62
  }
63
 
64
  // Hide notice for 24 hours.
65
- set_transient( $transient_key, true, 24 * HOUR_IN_SECONDS );
66
 
67
  // Redirect user.
68
  wp_safe_redirect( remove_query_arg( '_give_hide_license_notices_shortly', $_SERVER['REQUEST_URI'] ) );
57
  // Transient key name.
58
  $transient_key = "_give_hide_license_notices_shortly_{$current_user->ID}_{$notice_id}";
59
 
60
+ if ( Give_Cache::get( $transient_key, true ) ) {
61
  return;
62
  }
63
 
64
  // Hide notice for 24 hours.
65
+ Give_Cache::set( $transient_key, true, DAY_IN_SECONDS, true );
66
 
67
  // Redirect user.
68
  wp_safe_redirect( remove_query_arg( '_give_hide_license_notices_shortly', $_SERVER['REQUEST_URI'] ) );
includes/admin/class-admin-notices.php CHANGED
@@ -77,13 +77,13 @@ class Give_Notices {
77
 
78
  if ( ! give_test_ajax_works() && ! get_user_meta( get_current_user_id(), '_give_admin_ajax_inaccessible_dismissed', true ) && current_user_can( 'manage_give_settings' ) ) {
79
  echo '<div class="error">';
80
- echo '<p>' . esc_html__( 'Your site appears to be blocking the WordPress ajax interface. This may cause issues with Give.', 'give' ) . '</p>';
81
  /* translators: %s: http://docs.givewp.com/ajax-blocked */
82
  echo '<p>' . sprintf( __( 'Please see <a href="%s" target="_blank">this reference</a> for possible solutions.', 'give' ), esc_url( 'http://docs.givewp.com/ajax-blocked' ) ) . '</p>';
83
  echo '<p><a href="' . add_query_arg( array(
84
  'give_action' => 'dismiss_notices',
85
  'give_notice' => 'admin_ajax_inaccessible',
86
- ) ) . '">' . esc_html__( 'Dismiss Notice', 'give' ) . '</a></p>';
87
  echo '</div>';
88
  }
89
 
@@ -93,16 +93,16 @@ class Give_Notices {
93
  if ( current_user_can( 'view_give_reports' ) ) {
94
  switch ( $_GET['give-message'] ) {
95
  case 'donation_deleted' :
96
- $this->notices['updated']['give-donation-deleted'] = esc_attr__( 'The donation has been deleted.', 'give' );
97
  break;
98
  case 'email_sent' :
99
- $this->notices['updated']['give-payment-sent'] = esc_attr__( 'The donation receipt has been resent.', 'give' );
100
  break;
101
  case 'refreshed-reports' :
102
- $this->notices['updated']['give-refreshed-reports'] = esc_attr__( 'The reports cache has been cleared.', 'give' );
103
  break;
104
  case 'donation-note-deleted' :
105
- $this->notices['updated']['give-donation-note-deleted'] = esc_attr__( 'The donation note has been deleted.', 'give' );
106
  break;
107
  }
108
  }
@@ -111,35 +111,35 @@ class Give_Notices {
111
  if ( current_user_can( 'manage_give_settings' ) ) {
112
  switch ( $_GET['give-message'] ) {
113
  case 'settings-imported' :
114
- $this->notices['updated']['give-settings-imported'] = esc_attr__( 'The settings have been imported.', 'give' );
115
  break;
116
  case 'api-key-generated' :
117
- $this->notices['updated']['give-api-key-generated'] = esc_attr__( 'API keys have been generated.', 'give' );
118
  break;
119
  case 'api-key-exists' :
120
- $this->notices['error']['give-api-key-exists'] = esc_attr__( 'The specified user already has API keys.', 'give' );
121
  break;
122
  case 'api-key-regenerated' :
123
- $this->notices['updated']['give-api-key-regenerated'] = esc_attr__( 'API keys have been regenerated.', 'give' );
124
  break;
125
  case 'api-key-revoked' :
126
- $this->notices['updated']['give-api-key-revoked'] = esc_attr__( 'API keys have been revoked.', 'give' );
127
  break;
128
  case 'sent-test-email' :
129
- $this->notices['updated']['give-sent-test-email'] = esc_attr__( 'The test email has been sent.', 'give' );
130
  break;
131
  case 'matched-success-failure-page':
132
- $this->notices['updated']['give-matched-success-failure-page'] = esc_html__( 'You cannot set the success and failed pages to the same page', 'give' );
133
  }
134
  }
135
  // Payments errors.
136
  if ( current_user_can( 'edit_give_payments' ) ) {
137
  switch ( $_GET['give-message'] ) {
138
  case 'note-added' :
139
- $this->notices['updated']['give-note-added'] = esc_attr__( 'The donation note has been added.', 'give' );
140
  break;
141
  case 'payment-updated' :
142
- $this->notices['updated']['give-payment-updated'] = esc_attr__( 'The donation has been updated.', 'give' );
143
  break;
144
  }
145
  }
@@ -148,27 +148,27 @@ class Give_Notices {
148
  if ( current_user_can( 'edit_give_payments' ) ) {
149
  switch ( $_GET['give-message'] ) {
150
  case 'customer-deleted' :
151
- $this->notices['updated']['give-customer-deleted'] = esc_attr__( 'The donor has been deleted.', 'give' );
152
  break;
153
 
154
  case 'email-added' :
155
- $this->notices['updated']['give-customer-email-added'] = esc_attr__( 'Donor email added', 'give' );
156
  break;
157
 
158
  case 'email-removed' :
159
- $this->notices['updated']['give-customer-email-removed'] = esc_attr__( 'Donor email removed', 'give' );
160
  break;
161
 
162
  case 'email-remove-failed' :
163
- $this->notices['error']['give-customer-email-remove-failed'] = esc_attr__( 'Failed to remove donor email', 'give' );
164
  break;
165
 
166
  case 'primary-email-updated' :
167
- $this->notices['updated']['give-customer-primary-email-updated'] = esc_attr__( 'Primary email updated for donor', 'give' );
168
  break;
169
 
170
  case 'primary-email-failed' :
171
- $this->notices['error']['give-customer-primary-email-failed'] = esc_attr__( 'Failed to set primary email', 'give' );
172
 
173
  }
174
  }
@@ -200,7 +200,7 @@ class Give_Notices {
200
  * @return void
201
  */
202
  function give_admin_addons_notices() {
203
- add_settings_error( 'give-notices', 'give-addons-feed-error', esc_attr__( 'There seems to be an issue with the server. Please try again in a few minutes.', 'give' ), 'error' );
204
  settings_errors( 'give-notices' );
205
  }
206
 
77
 
78
  if ( ! give_test_ajax_works() && ! get_user_meta( get_current_user_id(), '_give_admin_ajax_inaccessible_dismissed', true ) && current_user_can( 'manage_give_settings' ) ) {
79
  echo '<div class="error">';
80
+ echo '<p>' . __( 'Your site appears to be blocking the WordPress ajax interface. This may cause issues with Give.', 'give' ) . '</p>';
81
  /* translators: %s: http://docs.givewp.com/ajax-blocked */
82
  echo '<p>' . sprintf( __( 'Please see <a href="%s" target="_blank">this reference</a> for possible solutions.', 'give' ), esc_url( 'http://docs.givewp.com/ajax-blocked' ) ) . '</p>';
83
  echo '<p><a href="' . add_query_arg( array(
84
  'give_action' => 'dismiss_notices',
85
  'give_notice' => 'admin_ajax_inaccessible',
86
+ ) ) . '">' . __( 'Dismiss Notice', 'give' ) . '</a></p>';
87
  echo '</div>';
88
  }
89
 
93
  if ( current_user_can( 'view_give_reports' ) ) {
94
  switch ( $_GET['give-message'] ) {
95
  case 'donation_deleted' :
96
+ $this->notices['updated']['give-donation-deleted'] = __( 'The donation has been deleted.', 'give' );
97
  break;
98
  case 'email_sent' :
99
+ $this->notices['updated']['give-payment-sent'] = __( 'The donation receipt has been resent.', 'give' );
100
  break;
101
  case 'refreshed-reports' :
102
+ $this->notices['updated']['give-refreshed-reports'] = __( 'The reports cache has been cleared.', 'give' );
103
  break;
104
  case 'donation-note-deleted' :
105
+ $this->notices['updated']['give-donation-note-deleted'] = __( 'The donation note has been deleted.', 'give' );
106
  break;
107
  }
108
  }
111
  if ( current_user_can( 'manage_give_settings' ) ) {
112
  switch ( $_GET['give-message'] ) {
113
  case 'settings-imported' :
114
+ $this->notices['updated']['give-settings-imported'] = __( 'The settings have been imported.', 'give' );
115
  break;
116
  case 'api-key-generated' :
117
+ $this->notices['updated']['give-api-key-generated'] = __( 'API keys have been generated.', 'give' );
118
  break;
119
  case 'api-key-exists' :
120
+ $this->notices['error']['give-api-key-exists'] = __( 'The specified user already has API keys.', 'give' );
121
  break;
122
  case 'api-key-regenerated' :
123
+ $this->notices['updated']['give-api-key-regenerated'] = __( 'API keys have been regenerated.', 'give' );
124
  break;
125
  case 'api-key-revoked' :
126
+ $this->notices['updated']['give-api-key-revoked'] = __( 'API keys have been revoked.', 'give' );
127
  break;
128
  case 'sent-test-email' :
129
+ $this->notices['updated']['give-sent-test-email'] = __( 'The test email has been sent.', 'give' );
130
  break;
131
  case 'matched-success-failure-page':
132
+ $this->notices['updated']['give-matched-success-failure-page'] = __( 'You cannot set the success and failed pages to the same page', 'give' );
133
  }
134
  }
135
  // Payments errors.
136
  if ( current_user_can( 'edit_give_payments' ) ) {
137
  switch ( $_GET['give-message'] ) {
138
  case 'note-added' :
139
+ $this->notices['updated']['give-note-added'] = __( 'The donation note has been added.', 'give' );
140
  break;
141
  case 'payment-updated' :
142
+ $this->notices['updated']['give-payment-updated'] = __( 'The donation has been updated.', 'give' );
143
  break;
144
  }
145
  }
148
  if ( current_user_can( 'edit_give_payments' ) ) {
149
  switch ( $_GET['give-message'] ) {
150
  case 'customer-deleted' :
151
+ $this->notices['updated']['give-customer-deleted'] = __( 'The donor has been deleted.', 'give' );
152
  break;
153
 
154
  case 'email-added' :
155
+ $this->notices['updated']['give-customer-email-added'] = __( 'Donor email added', 'give' );
156
  break;
157
 
158
  case 'email-removed' :
159
+ $this->notices['updated']['give-customer-email-removed'] = __( 'Donor email removed', 'give' );
160
  break;
161
 
162
  case 'email-remove-failed' :
163
+ $this->notices['error']['give-customer-email-remove-failed'] = __( 'Failed to remove donor email', 'give' );
164
  break;
165
 
166
  case 'primary-email-updated' :
167
+ $this->notices['updated']['give-customer-primary-email-updated'] = __( 'Primary email updated for donor', 'give' );
168
  break;
169
 
170
  case 'primary-email-failed' :
171
+ $this->notices['error']['give-customer-primary-email-failed'] = __( 'Failed to set primary email', 'give' );
172
 
173
  }
174
  }
200
  * @return void
201
  */
202
  function give_admin_addons_notices() {
203
+ add_settings_error( 'give-notices', 'give-addons-feed-error', __( 'There seems to be an issue with the server. Please try again in a few minutes.', 'give' ), 'error' );
204
  settings_errors( 'give-notices' );
205
  }
206
 
includes/admin/class-api-keys-table.php CHANGED
@@ -304,13 +304,19 @@ class Give_API_Keys_Table extends WP_List_Table {
304
  public function total_items() {
305
  global $wpdb;
306
 
307
- if ( ! get_transient( 'give_total_api_keys' ) ) {
308
- $total_items = $wpdb->get_var( "SELECT count(user_id) FROM $wpdb->usermeta WHERE meta_value='give_user_secret_key'" );
 
 
 
 
 
 
309
 
310
- set_transient( 'give_total_api_keys', $total_items, 60 * 60 );
311
  }
312
 
313
- return get_transient( 'give_total_api_keys' );
314
  }
315
 
316
  /**
304
  public function total_items() {
305
  global $wpdb;
306
 
307
+ if ( ! ( $total_items = Give_Cache::get( 'give_total_api_keys', true ) ) ) {
308
+ $total_items = $wpdb->get_var(
309
+ $wpdb->prepare(
310
+ "SELECT count(user_id)
311
+ FROM {$wpdb->usermeta} WHERE meta_value='%s'",
312
+ 'give_user_secret_key'
313
+ )
314
+ );
315
 
316
+ Give_Cache::set( 'give_total_api_keys', $total_items, HOUR_IN_SECONDS, true );
317
  }
318
 
319
+ return $total_items;
320
  }
321
 
322
  /**
includes/admin/class-give-settings.php CHANGED
@@ -1,1461 +1,1458 @@
1
- <?php
2
-
3
- /**
4
- * Class Give_Plugin_Settings
5
- *
6
- * Register settings Include and setup custom metaboxes and fields.
7
- *
8
- * @package Give
9
- * @subpackage Admin
10
- * @license https://opensource.org/licenses/gpl-license GNU Public License
11
- * @link https://github.com/webdevstudios/Custom-Metaboxes-and-Fields-for-WordPress
12
- */
13
- class Give_Plugin_Settings {
14
-
15
- /**
16
- * Option key, and option page slug.
17
- *
18
- * @var string
19
- */
20
- private $key = 'give_settings';
21
-
22
- /**
23
- * Array of metaboxes/fields.
24
- *
25
- * @var array
26
- */
27
- protected $option_metabox = array();
28
-
29
- /**
30
- * Options Page title.
31
- *
32
- * @var string
33
- */
34
- protected $title = '';
35
-
36
- /**
37
- * Options Page hook.
38
- *
39
- * @var string
40
- */
41
- protected $options_page = '';
42
-
43
- /**
44
- * Give_Plugin_Settings constructor.
45
- */
46
- public function __construct() {
47
-
48
- //Custom CMB2 Settings Fields
49
- add_action( 'cmb2_render_give_title', 'give_title_callback', 10, 5 );
50
- add_action( 'cmb2_render_give_description', 'give_description_callback', 10, 5 );
51
- add_action( 'cmb2_render_enabled_gateways', 'give_enabled_gateways_callback', 10, 5 );
52
- add_action( 'cmb2_render_default_gateway', 'give_default_gateway_callback', 10, 5 );
53
- add_action( 'cmb2_render_email_preview_buttons', 'give_email_preview_buttons_callback', 10, 5 );
54
- add_action( 'cmb2_render_system_info', 'give_system_info_callback', 10, 5 );
55
- add_action( 'cmb2_render_api', 'give_api_callback', 10, 5 );
56
- add_action( 'cmb2_render_license_key', 'give_license_key_callback', 10, 5 );
57
- }
58
-
59
-
60
- /**
61
- * Register our setting to WP
62
- *
63
- * @since 1.0
64
- */
65
- public function init() {
66
- register_setting( $this->key, $this->key );
67
-
68
- }
69
-
70
-
71
- /**
72
- * Filter CMB2 URL
73
- *
74
- * Required for CMB2 to properly load CSS/JS.
75
- *
76
- * @param $url
77
- *
78
- * @return mixed
79
- */
80
- public function give_update_cmb_meta_box_url( $url ) {
81
- //Path to Give's CMB
82
- return GIVE_PLUGIN_URL . '/includes/libraries/cmb2';
83
- }
84
-
85
-
86
- /**
87
- * Retrieve settings tabs
88
- *
89
- * @since 1.0
90
- * @return array $tabs
91
- */
92
- public function give_get_settings_tabs() {
93
-
94
- $settings = $this->give_settings( null );
95
-
96
- $tabs = array();
97
- $tabs['general'] = esc_html__( 'General', 'give' );
98
- $tabs['gateways'] = esc_html__( 'Payment Gateways', 'give' );
99
- $tabs['display'] = esc_html__( 'Display Options', 'give' );
100
- $tabs['emails'] = esc_html__( 'Emails', 'give' );
101
-
102
- if ( ! empty( $settings['addons']['fields'] ) ) {
103
- $tabs['addons'] = esc_html__( 'Add-ons', 'give' );
104
- }
105
-
106
- if ( ! empty( $settings['licenses']['fields'] ) ) {
107
- $tabs['licenses'] = esc_html__( 'Licenses', 'give' );
108
- }
109
-
110
- $tabs['advanced'] = esc_html__( 'Advanced', 'give' );
111
- $tabs['api'] = esc_html__( 'API', 'give' );
112
- $tabs['system_info'] = esc_html__( 'System Info', 'give' );
113
-
114
- return apply_filters( 'give_settings_tabs', $tabs );
115
- }
116
-
117
-
118
- /**
119
- * Admin page markup. Mostly handled by CMB2
120
- * @since 1.0
121
- */
122
- public function admin_page_display() {
123
-
124
- $active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $this->give_get_settings_tabs() ) ? $_GET['tab'] : 'general';
125
-
126
- ?>
127
-
128
- <div class="wrap give_settings_page cmb2_options_page <?php echo $this->key; ?>">
129
-
130
- <h1 class="screen-reader-text"><?php echo get_admin_page_title(); ?></h1>
131
-
132
- <h2 class="nav-tab-wrapper">
133
- <?php
134
- foreach ( $this->give_get_settings_tabs() as $tab_id => $tab_name ) {
135
-
136
- $tab_url = esc_url( add_query_arg( array(
137
- 'settings-updated' => false,
138
- 'tab' => $tab_id
139
- ) ) );
140
-
141
- $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
142
-
143
- echo '<a href="' . esc_url( $tab_url ) . '" class="nav-tab' . $active . '" id="tab-' . $tab_id . '">' . esc_html( $tab_name ) . '</a>';
144
-
145
- }
146
- ?>
147
- </h2>
148
-
149
- <?php cmb2_metabox_form( $this->give_settings( $active_tab ), $this->key ); ?>
150
-
151
- </div><!-- .wrap -->
152
-
153
- <?php
154
- }
155
-
156
-
157
- /**
158
- *
159
- * Modify CMB2 Default Form Output
160
- *
161
- * @param string @args
162
- *
163
- * @since 1.0
164
- *
165
- * @param $form_format
166
- * @param $object_id
167
- * @param $cmb
168
- *
169
- * @return string
170
- */
171
- function give_modify_cmb2_form_output( $form_format, $object_id, $cmb ) {
172
-
173
- //only modify the give settings form
174
- if ( 'give_settings' == $object_id ) {
175
-
176
- return '<form class="cmb-form" method="post" id="%1$s" enctype="multipart/form-data" encoding="multipart/form-data"><input type="hidden" name="give_settings_saved" value="true"><input type="hidden" name="object_id" value="%2$s">%3$s<div class="give-submit-wrap"><input type="submit" name="submit-cmb" value="' . esc_attr__( 'Save Settings', 'give' ) . '" class="button-primary"></div></form>';
177
-
178
- }
179
-
180
- return $form_format;
181
-
182
- }
183
-
184
- /**
185
- * Define General Settings Metabox and field configurations.
186
- *
187
- * Filters are provided for each settings section to allow add-ons and other plugins to add their own settings
188
- *
189
- * @param $active_tab |string active tab settings; null returns full array
190
- *
191
- * @return array
192
- */
193
- public function give_settings( $active_tab ) {
194
-
195
- $give_settings = array(
196
- /**
197
- * General Settings
198
- */
199
- 'general' => array(
200
- 'id' => 'general_settings',
201
- 'give_title' => esc_html__( 'General Settings', 'give' ),
202
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
203
- 'fields' => apply_filters( 'give_settings_general', array(
204
- array(
205
- 'name' => esc_html__( 'General Settings', 'give' ),
206
- 'desc' => '',
207
- 'type' => 'give_title',
208
- 'id' => 'give_title_general_settings_1'
209
- ),
210
- array(
211
- 'name' => esc_html__( 'Success Page', 'give' ),
212
- /* translators: %s: [give_receipt] */
213
- 'desc' => sprintf( __( 'The page donors are sent to after completing their donations. The %s shortcode should be on this page.', 'give' ), '<code>[give_receipt]</code>' ),
214
- 'id' => 'success_page',
215
- 'type' => 'select',
216
- 'options' => give_cmb2_get_post_options( array(
217
- 'post_type' => 'page',
218
- 'numberposts' => - 1
219
- ) ),
220
- ),
221
- array(
222
- 'name' => esc_html__( 'Failed Donation Page', 'give' ),
223
- 'desc' => esc_html__( 'The page donors are sent to if their donation is cancelled or fails.', 'give' ),
224
- 'id' => 'failure_page',
225
- 'type' => 'select',
226
- 'options' => give_cmb2_get_post_options( array(
227
- 'post_type' => 'page',
228
- 'numberposts' => - 1
229
- ) ),
230
- ),
231
- array(
232
- 'name' => esc_html__( 'Donation History Page', 'give' ),
233
- /* translators: %s: [donation_history] */
234
- 'desc' => sprintf( __( 'The page showing a complete donation history for the current user. The %s shortcode should be on this page.', 'give' ), '<code>[donation_history]</code>' ),
235
- 'id' => 'history_page',
236
- 'type' => 'select',
237
- 'options' => give_cmb2_get_post_options( array(
238
- 'post_type' => 'page',
239
- 'numberposts' => - 1
240
- ) ),
241
- ),
242
- array(
243
- 'name' => esc_html__( 'Base Country', 'give' ),
244
- 'desc' => esc_html__( 'The country your site operates from.', 'give' ),
245
- 'id' => 'base_country',
246
- 'type' => 'select',
247
- 'options' => give_get_country_list(),
248
- ),
249
- array(
250
- 'name' => esc_html__( 'Currency Settings', 'give' ),
251
- 'desc' => '',
252
- 'type' => 'give_title',
253
- 'id' => 'give_title_general_settings_2'
254
- ),
255
- array(
256
- 'name' => esc_html__( 'Currency', 'give' ),
257
- 'desc' => esc_html__( 'The donation currency. Note that some payment gateways have currency restrictions.', 'give' ),
258
- 'id' => 'currency',
259
- 'type' => 'select',
260
- 'options' => give_get_currencies(),
261
- 'default' => 'USD',
262
- ),
263
- array(
264
- 'name' => esc_html__( 'Currency Position', 'give' ),
265
- 'desc' => esc_html__( 'The position of the currency symbol.', 'give' ),
266
- 'id' => 'currency_position',
267
- 'type' => 'select',
268
- 'options' => array(
269
- /* translators: %s: currency symbol */
270
- 'before' => sprintf( esc_html__( 'Before - %s10', 'give' ), give_currency_symbol( give_get_currency() ) ),
271
- /* translators: %s: currency symbol */
272
- 'after' => sprintf( esc_html__( 'After - 10%s', 'give' ), give_currency_symbol( give_get_currency() ) )
273
- ),
274
- 'default' => 'before',
275
- ),
276
- array(
277
- 'name' => esc_html__( 'Thousands Separator', 'give' ),
278
- 'desc' => esc_html__( 'The symbol (usually , or .) to separate thousands.', 'give' ),
279
- 'id' => 'thousands_separator',
280
- 'type' => 'text_small',
281
- 'sanitization_cb' => 'give_sanitize_thousand_separator',
282
- 'default' => ',',
283
- ),
284
- array(
285
- 'name' => esc_html__( 'Decimal Separator', 'give' ),
286
- 'desc' => esc_html__( 'The symbol (usually , or .) to separate decimal points.', 'give' ),
287
- 'id' => 'decimal_separator',
288
- 'type' => 'text_small',
289
- 'default' => '.',
290
- ),
291
- array(
292
- 'name' => esc_html__( 'Number of Decimals', 'give' ),
293
- 'desc' => esc_html__( 'The number of decimal points displayed in amounts.', 'give' ),
294
- 'id' => 'number_decimals',
295
- 'type' => 'text_small',
296
- 'default' => 2,
297
- 'sanitization_cb' => 'give_sanitize_number_decimals',
298
- ),
299
- )
300
- )
301
- ),
302
- /**
303
- * Payment Gateways
304
- */
305
- 'gateways' => array(
306
- 'id' => 'payment_gateways',
307
- 'give_title' => esc_html__( 'Payment Gateways', 'give' ),
308
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
309
- 'fields' => apply_filters( 'give_settings_gateways', array(
310
- array(
311
- 'name' => esc_html__( 'Gateways Settings', 'give' ),
312
- 'desc' => '',
313
- 'id' => 'give_title_gateway_settings_1',
314
- 'type' => 'give_title'
315
- ),
316
- array(
317
- 'name' => esc_html__( 'Test Mode', 'give' ),
318
- 'desc' => esc_html__( 'While in test mode no live donations are processed. To fully use test mode, you must have a sandbox (test) account for the payment gateway you are testing.', 'give' ),
319
- 'id' => 'test_mode',
320
- 'type' => 'checkbox'
321
- ),
322
- array(
323
- 'name' => esc_html__( 'Enabled Gateways', 'give' ),
324
- 'desc' => esc_html__( 'Enable your payment gateway. Can be ordered by dragging.', 'give' ),
325
- 'id' => 'gateways',
326
- 'type' => 'enabled_gateways'
327
- ),
328
- array(
329
- 'name' => esc_html__( 'Default Gateway', 'give' ),
330
- 'desc' => esc_html__( 'The gateway that will be selected by default.', 'give' ),
331
- 'id' => 'default_gateway',
332
- 'type' => 'default_gateway'
333
- ),
334
- array(
335
- 'name' => esc_html__( 'PayPal Standard', 'give' ),
336
- 'desc' => '',
337
- 'type' => 'give_title',
338
- 'id' => 'give_title_gateway_settings_2',
339
- ),
340
- array(
341
- 'name' => esc_html__( 'PayPal Email', 'give' ),
342
- 'desc' => esc_html__( 'Enter your PayPal account\'s email.', 'give' ),
343
- 'id' => 'paypal_email',
344
- 'type' => 'text_email',
345
- ),
346
- array(
347
- 'name' => esc_html__( 'PayPal Page Style', 'give' ),
348
- 'desc' => esc_html__( 'Enter the name of the page style to use, or leave blank to use the default.', 'give' ),
349
- 'id' => 'paypal_page_style',
350
- 'type' => 'text',
351
- ),
352
- array(
353
- 'name' => esc_html__( 'PayPal Transaction Type', 'give' ),
354
- 'desc' => esc_html__( 'Nonprofits must verify their status to withdraw donations they receive via PayPal. PayPal users that are not verified nonprofits must demonstrate how their donations will be used, once they raise more than $10,000. By default, Give transactions are sent to PayPal as donations. You may change the transaction type using this option if you feel you may not meet PayPal\'s donation requirements.', 'give' ),
355
- 'id' => 'paypal_button_type',
356
- 'type' => 'radio_inline',
357
- 'options' => array(
358
- 'donation' => esc_html__( 'Donation', 'give' ),
359
- 'standard' => esc_html__( 'Standard Transaction', 'give' )
360
- ),
361
- 'default' => 'donation',
362
- ),
363
- array(
364
- 'name' => esc_html__( 'Disable PayPal IPN Verification', 'give' ),
365
- 'desc' => esc_html__( 'If donations are not getting marked as complete, use a slightly less secure method of verifying donations.', 'give' ),
366
- 'id' => 'disable_paypal_verification',
367
- 'type' => 'checkbox'
368
- ),
369
- array(
370
- 'name' => esc_html__( 'Offline Donations', 'give' ),
371
- 'desc' => '',
372
- 'type' => 'give_title',
373
- 'id' => 'give_title_gateway_settings_3',
374
- ),
375
- array(
376
- 'name' => esc_html__( 'Collect Billing Details', 'give' ),
377
- 'desc' => esc_html__( 'Enable to request billing details for offline donations. Will appear above offline donation instructions. Can be enabled/disabled per form.', 'give' ),
378
- 'id' => 'give_offline_donation_enable_billing_fields',
379
- 'type' => 'checkbox'
380
- ),
381
- array(
382
- 'name' => esc_html__( 'Offline Donation Instructions', 'give' ),
383
- 'desc' => esc_html__( 'The following content will appear for all forms when the user selects the offline donation payment option. Note: You may customize the content per form as needed.', 'give' ),
384
- 'id' => 'global_offline_donation_content',
385
- 'default' => give_get_default_offline_donation_content(),
386
- 'type' => 'wysiwyg',
387
- 'options' => array(
388
- 'textarea_rows' => 6,
389
- )
390
- ),
391
- array(
392
- 'name' => esc_html__( 'Offline Donation Email Instructions Subject', 'give' ),
393
- 'desc' => esc_html__( 'Enter the subject line for the donation receipt email.', 'give' ),
394
- 'id' => 'offline_donation_subject',
395
- 'default' => esc_attr__( '{donation} - Offline Donation Instructions', 'give' ),
396
- 'type' => 'text'
397
- ),
398
- array(
399
- 'name' => esc_html__( 'Offline Donation Email Instructions', 'give' ),
400
- 'desc' => esc_html__( 'Enter the instructions you want emailed to the donor after they have submitted the donation form. Most likely this would include important information like mailing address and who to make the check out to.', 'give' ),
401
- 'id' => 'global_offline_donation_email',
402
- 'default' => give_get_default_offline_donation_email_content(),
403
- 'type' => 'wysiwyg',
404
- 'options' => array(
405
- 'textarea_rows' => 6,
406
- )
407
- )
408
- )
409
- )
410
- ),
411
- /** Display Settings */
412
- 'display' => array(
413
- 'id' => 'display_settings',
414
- 'give_title' => esc_html__( 'Display Settings', 'give' ),
415
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
416
- 'fields' => apply_filters( 'give_settings_display', array(
417
- array(
418
- 'name' => esc_html__( 'Display Settings', 'give' ),
419
- 'desc' => '',
420
- 'id' => 'give_title_display_settings_1',
421
- 'type' => 'give_title'
422
- ),
423
- array(
424
- 'name' => esc_html__( 'Disable CSS', 'give' ),
425
- 'desc' => esc_html__( 'Enable this option if you would like to disable all of Give\'s included CSS stylesheets.', 'give' ),
426
- 'id' => 'disable_css',
427
- 'type' => 'checkbox'
428
- ),
429
- array(
430
- 'name' => esc_html__( 'Enable Floating Labels', 'give' ),
431
- /* translators: %s: http://docs.givewp.com/form-floating-labels */
432
- 'desc' => sprintf( wp_kses( __( 'Enable <a href="%s" target="_blank">floating labels</a> in Give\'s donation forms. Note that if the "Disable CSS" option is enabled, you will need to style the floating labels yourself.', 'give' ), array( 'a' => array( 'href' => array(), 'target' => array() ) ) ), esc_url( 'http://docs.givewp.com/form-floating-labels' ) ),
433
- 'id' => 'floatlabels',
434
- 'type' => 'checkbox'
435
- ),
436
- array(
437
- 'name' => esc_html__( 'Disable Welcome Screen', 'give' ),
438
- /* translators: %s: about page URL */
439
- 'desc' => sprintf( wp_kses( __( 'Enable this option if you would like to disable the <a href="%s" target="_blank">Give Welcome screen</a> every time Give is activated and/or updated.', 'give' ), array(
440
- 'a' => array(
441
- 'href' => array(),
442
- 'target' => array()
443
- )
444
- ) ), esc_url( admin_url( 'index.php?page=give-about' ) ) ),
445
- 'id' => 'disable_welcome',
446
- 'type' => 'checkbox'
447
- ),
448
- array(
449
- 'name' => esc_html__( 'Post Types', 'give' ),
450
- 'desc' => '',
451
- 'id' => 'give_title_display_settings_2',
452
- 'type' => 'give_title'
453
- ),
454
- array(
455
- 'name' => esc_html__( 'Disable Form Single Views', 'give' ),
456
- 'desc' => esc_html__( 'By default, all forms have single views enabled which create a specific URL on your website for that form. This option disables the singular and archive views from being publicly viewable. Note: you will need to embed forms using a shortcode or widget if enabled.', 'give' ),
457
- 'id' => 'disable_forms_singular',
458
- 'type' => 'checkbox'
459
- ),
460
- array(
461
- 'name' => esc_html__( 'Disable Form Archives', 'give' ),
462
- 'desc' => esc_html__( 'Archives pages list all the forms you have created. This option will disable only the form\'s archive page(s). The single form\'s view will remain in place. Note: you will need to refresh your permalinks after this option has been enabled.', 'give' ),
463
- 'id' => 'disable_forms_archives',
464
- 'type' => 'checkbox'
465
- ),
466
- array(
467
- 'name' => esc_html__( 'Disable Form Excerpts', 'give' ),
468
- 'desc' => esc_html__( 'The excerpt is an optional summary or description of a donation form; in short, a summary as to why the user should give.', 'give' ),
469
- 'id' => 'disable_forms_excerpt',
470
- 'type' => 'checkbox'
471
- ),
472
- array(
473
- 'name' => esc_html__( 'Featured Image Size', 'give' ),
474
- 'desc' => esc_html__( 'The Featured Image is an image that is chosen as the representative image for a donation form. Some themes may have custom featured image sizes. Please select the size you would like to display for your single donation form\'s featured image.', 'give' ),
475
- 'id' => 'featured_image_size',
476
- 'type' => 'select',
477
- 'default' => 'large',
478
- 'options' => give_get_featured_image_sizes()
479
- ),
480
- array(
481
- 'name' => esc_html__( 'Disable Form Featured Image', 'give' ),
482
- 'desc' => esc_html__( 'If you do not wish to use the featured image functionality you can disable it using this option and it will not be displayed for single donation forms.', 'give' ),
483
- 'id' => 'disable_form_featured_img',
484
- 'type' => 'checkbox'
485
- ),
486
- array(
487
- 'name' => esc_html__( 'Disable Single Form Sidebar', 'give' ),
488
- 'desc' => esc_html__( 'The sidebar allows you to add additional widget to the Give single form view. If you don\'t plan on using the sidebar you may disable it with this option.', 'give' ),
489
- 'id' => 'disable_form_sidebar',
490
- 'type' => 'checkbox'
491
- ),
492
- array(
493
- 'name' => esc_html__( 'Taxonomies', 'give' ),
494
- 'desc' => '',
495
- 'id' => 'give_title_display_settings_3',
496
- 'type' => 'give_title'
497
- ),
498
- array(
499
- 'name' => esc_html__( 'Enable Form Categories', 'give' ),
500
- 'desc' => esc_html__( 'Enables the "Category" taxonomy for all Give forms.', 'give' ),
501
- 'id' => 'categories',
502
- 'type' => 'checkbox'
503
- ),
504
- array(
505
- 'name' => esc_html__( 'Enable Form Tags', 'give' ),
506
- 'desc' => esc_html__( 'Enables the "Tag" taxonomy for all Give forms.', 'give' ),
507
- 'id' => 'tags',
508
- 'type' => 'checkbox'
509
- ),
510
- )
511
- )
512
-
513
- ),
514
- /**
515
- * Emails Options
516
- */
517
- 'emails' => array(
518
- 'id' => 'email_settings',
519
- 'give_title' => esc_html__( 'Email Settings', 'give' ),
520
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
521
- 'fields' => apply_filters( 'give_settings_emails', array(
522
- array(
523
- 'name' => esc_html__( 'Email Settings', 'give' ),
524
- 'desc' => '',
525
- 'id' => 'give_title_email_settings_1',
526
- 'type' => 'give_title'
527
- ),
528
- array(
529
- 'id' => 'email_template',
530
- 'name' => esc_html__( 'Email Template', 'give' ),
531
- 'desc' => esc_html__( 'Choose a template. Click "Save Changes" then "Preview Donation Receipt" to see the new template.', 'give' ),
532
- 'type' => 'select',
533
- 'options' => give_get_email_templates()
534
- ),
535
- array(
536
- 'id' => 'email_logo',
537
- 'name' => esc_html__( 'Logo', 'give' ),
538
- 'desc' => esc_html__( 'Upload or choose a logo to be displayed at the top of the donation receipt emails. Displayed on HTML emails only.', 'give' ),
539
- 'type' => 'file'
540
- ),
541
- array(
542
- 'id' => 'from_name',
543
- 'name' => esc_html__( 'From Name', 'give' ),
544
- 'desc' => esc_html__( 'The name that appears in the "From" field in donation receipt emails.', 'give' ),
545
- 'default' => get_bloginfo( 'name' ),
546
- 'type' => 'text'
547
- ),
548
- array(
549
- 'id' => 'from_email',
550
- 'name' => esc_html__( 'From Email', 'give' ),
551
- 'desc' => esc_html__( 'Email to send donation receipts from. This will act as the "from" and "reply-to" address.', 'give' ),
552
- 'default' => get_bloginfo( 'admin_email' ),
553
- 'type' => 'text'
554
- ),
555
- array(
556
- 'name' => esc_html__( 'Donation Receipt', 'give' ),
557
- 'desc' => '',
558
- 'id' => 'give_title_email_settings_2',
559
- 'type' => 'give_title'
560
- ),
561
- array(
562
- 'id' => 'donation_subject',
563
- 'name' => esc_html__( 'Donation Email Subject', 'give' ),
564
- 'desc' => esc_html__( 'Enter the subject line for the donation receipt email.', 'give' ),
565
- 'default' => esc_attr__( 'Donation Receipt', 'give' ),
566
- 'type' => 'text'
567
- ),
568
- array(
569
- 'id' => 'donation_receipt',
570
- 'name' => esc_html__( 'Donation Receipt', 'give' ),
571
- 'desc' => sprintf(
572
- /* translators: %s: emails tags list */
573
- esc_html__( 'Enter the email that is sent to users after completing a successful donation. HTML is accepted. Available template tags: %s', 'give' ),
574
- '<br/>' . give_get_emails_tags_list()
575
- ),
576
- 'type' => 'wysiwyg',
577
- 'default' => give_get_default_donation_receipt_email()
578
- ),
579
- array(
580
- 'name' => esc_html__( 'New Donation Notification', 'give' ),
581
- 'desc' => '',
582
- 'id' => 'give_title_email_settings_3',
583
- 'type' => 'give_title'
584
- ),
585
- array(
586
- 'id' => 'donation_notification_subject',
587
- 'name' => esc_html__( 'Donation Notification Subject', 'give' ),
588
- 'desc' => esc_html__( 'Enter the subject line for the donation notification email.', 'give' ),
589
- 'type' => 'text',
590
- 'default' => esc_attr__( 'New Donation - #{payment_id}', 'give' )
591
- ),
592
- array(
593
- 'id' => 'donation_notification',
594
- 'name' => esc_html__( 'Donation Notification', 'give' ),
595
- 'desc' => sprintf(
596
- /* translators: %s: emails tags list */
597
- esc_html__( 'Enter the email that is sent to donation notification emails after completion of a donation. HTML is accepted. Available template tags: %s', 'give' ),
598
- '<br/>' . give_get_emails_tags_list()
599
- ),
600
- 'type' => 'wysiwyg',
601
- 'default' => give_get_default_donation_notification_email()
602
- ),
603
- array(
604
- 'id' => 'admin_notice_emails',
605
- 'name' => esc_html__( 'Donation Notification Emails', 'give' ),
606
- 'desc' => __( 'Enter the email address(es) that should receive a notification anytime a donation is made, please only enter <span class="give-underline">one email address per line</span> and <strong>not separated by commas</strong>.', 'give' ),
607
- 'type' => 'textarea',
608
- 'default' => get_bloginfo( 'admin_email' )
609
- ),
610
- array(
611
- 'id' => 'disable_admin_notices',
612
- 'name' => esc_html__( 'Disable Admin Notifications', 'give' ),
613
- 'desc' => esc_html__( 'Check this box if you do not want to receive emails when new donations are made.', 'give' ),
614
- 'type' => 'checkbox'
615
- )
616
- )
617
- )
618
- ),
619
- /** Extension Settings */
620
- 'addons' => array(
621
- 'id' => 'addons',
622
- 'give_title' => esc_html__( 'Give Add-ons Settings', 'give' ),
623
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
624
- 'fields' => apply_filters( 'give_settings_addons', array()
625
- )
626
- ),
627
- /** Licenses Settings */
628
- 'licenses' => array(
629
- 'id' => 'licenses',
630
- 'give_title' => esc_html__( 'Give Licenses', 'give' ),
631
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
632
- 'fields' => apply_filters( 'give_settings_licenses', array()
633
- )
634
- ),
635
- /** Advanced Options */
636
- 'advanced' => array(
637
- 'id' => 'advanced_options',
638
- 'give_title' => esc_html__( 'Advanced Options', 'give' ),
639
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
640
- 'fields' => apply_filters( 'give_settings_advanced', array(
641
- array(
642
- 'name' => esc_html__( 'Access Control', 'give' ),
643
- 'desc' => '',
644
- 'id' => 'give_title_session_control_1',
645
- 'type' => 'give_title'
646
- ),
647
- array(
648
- 'id' => 'session_lifetime',
649
- 'name' => esc_html__( 'Session Lifetime', 'give' ),
650
- 'desc' => esc_html__( 'The length of time a user\'s session is kept alive. Give starts a new session per user upon donation. Sessions allow donors to view their donation receipts without being logged in.', 'give' ),
651
- 'type' => 'select',
652
- 'options' => array(
653
- '86400' => esc_html__( '24 Hours', 'give' ),
654
- '172800' => esc_html__( '48 Hours', 'give' ),
655
- '259200' => esc_html__( '72 Hours', 'give' ),
656
- '604800' => esc_html__( '1 Week', 'give' ),
657
- )
658
- ),
659
- array(
660
- 'name' => esc_html__( 'Email Access', 'give' ),
661
- 'desc' => esc_html__( 'Would you like your donors to be able to access their donation history using only email? Donors whose sessions have expired and do not have an account may still access their donation history via a temporary email access link.', 'give' ),
662
- 'id' => 'email_access',
663
- 'type' => 'checkbox',
664
- ),
665
- array(
666
- 'id' => 'recaptcha_key',
667
- 'name' => esc_html__( 'reCAPTCHA Site Key', 'give' ),
668
- /* translators: %s: https://www.google.com/recaptcha/ */
669
- 'desc' => sprintf( __( 'If you would like to prevent spam on the email access form navigate to <a href="%s" target="_blank">the reCAPTCHA website</a> and sign up for an API key. The reCAPTCHA uses Google\'s user-friendly single click verification method.', 'give' ), esc_url( 'https://www.google.com/recaptcha/' ) ),
670
- 'default' => '',
671
- 'type' => 'text'
672
- ),
673
- array(
674
- 'id' => 'recaptcha_secret',
675
- 'name' => esc_html__( 'reCAPTCHA Secret Key', 'give' ),
676
- 'desc' => esc_html__( 'Please paste the reCAPTCHA secret key here from your manage reCAPTCHA API Keys panel.', 'give' ),
677
- 'default' => '',
678
- 'type' => 'text'
679
- ),
680
- array(
681
- 'name' => esc_html__( 'Data Control', 'give' ),
682
- 'desc' => '',
683
- 'id' => 'give_title_data_control_2',
684
- 'type' => 'give_title'
685
- ),
686
- array(
687
- 'name' => esc_html__( 'Remove All Data on Uninstall?', 'give' ),
688
- 'desc' => esc_html__( 'When the plugin is deleted, completely remove all Give data.', 'give' ),
689
- 'id' => 'uninstall_on_delete',
690
- 'type' => 'checkbox'
691
- ),
692
- array(
693
- 'name' => esc_html__( 'Filter Control', 'give' ),
694
- 'desc' => '',
695
- 'id' => 'give_title_filter_control',
696
- 'type' => 'give_title'
697
- ),
698
- array(
699
- /* translators: %s: the_content */
700
- 'name' => sprintf( __( 'Disable %s filter', 'give' ), '<code>the_content</code>' ),
701
- /* translators: 1: https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content 2: the_content */
702
- 'desc' => sprintf( __( 'If you are seeing extra social buttons, related posts, or other unwanted elements appearing within your forms then you can disable WordPress\' content filter. <a href="%1$s" target="_blank">Learn more</a> about %2$s filter.', 'give' ), esc_url( 'https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content' ), '<code>the_content</code>' ),
703
- 'id' => 'disable_the_content_filter',
704
- 'type' => 'checkbox'
705
- ),
706
- array(
707
- 'name' => esc_html__( 'Script Loading', 'give' ),
708
- 'desc' => '',
709
- 'id' => 'give_title_script_control',
710
- 'type' => 'give_title'
711
- ),
712
- array(
713
- 'name' => esc_html__( 'Load Scripts in Footer?', 'give' ),
714
- 'desc' => esc_html__( 'Check this box if you would like Give to load all frontend JavaScript files in the footer.', 'give' ),
715
- 'id' => 'scripts_footer',
716
- 'type' => 'checkbox'
717
- )
718
- )
719
- )
720
- ),
721
- /** API Settings */
722
- 'api' => array(
723
- 'id' => 'api',
724
- 'give_title' => esc_html__( 'API', 'give' ),
725
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
726
- 'show_names' => false, // Hide field names on the left
727
- 'fields' => apply_filters( 'give_settings_system', array(
728
- array(
729
- 'id' => 'api',
730
- 'name' => esc_html__( 'API', 'give' ),
731
- 'type' => 'api'
732
- )
733
- )
734
- )
735
- ),
736
- /** Licenses Settings */
737
- 'system_info' => array(
738
- 'id' => 'system_info',
739
- 'give_title' => esc_html__( 'System Info', 'give' ),
740
- 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key, ), ),
741
- 'fields' => apply_filters( 'give_settings_system', array(
742
- array(
743
- 'id' => 'system-info-textarea',
744
- 'name' => esc_html__( 'System Info', 'give' ),
745
- 'desc' => esc_html__( 'Please copy and paste this information in your ticket when contacting support.', 'give' ),
746
- 'type' => 'system_info'
747
- )
748
- )
749
- )
750
- ),
751
- );
752
-
753
- $give_settings = apply_filters( 'give_registered_settings', $give_settings );
754
-
755
- //Return all settings array if no active tab
756
- if ( empty( $active_tab ) || ! isset( $give_settings[ $active_tab ] ) ) {
757
- return $give_settings;
758
- }
759
-
760
-
761
- // Add other tabs and settings fields as needed
762
- return $give_settings[ $active_tab ];
763
-
764
- }
765
-
766
- /**
767
- * Show Settings Notices
768
- */
769
- public function settings_notices() {
770
-
771
- if ( ! isset( $_POST['give_settings_saved'] ) ) {
772
- return;
773
- }
774
-
775
- add_settings_error( 'give-notices', 'global-settings-updated', esc_html__( 'Settings updated.', 'give' ), 'updated' );
776
-
777
- }
778
-
779
-
780
- /**
781
- * Public getter method for retrieving protected/private variables
782
- *
783
- * @since 1.0
784
- *
785
- * @param string $field Field to retrieve
786
- *
787
- * @return mixed Field value or exception is thrown.
788
- * @throws Exception Throws an exception if the field is invalid.
789
- */
790
- public function __get( $field ) {
791
-
792
- // Allowed fields to retrieve
793
- if ( in_array( $field, array( 'key', 'fields', 'give_title', 'options_page' ), true ) ) {
794
- return $this->{$field};
795
- }
796
- if ( 'option_metabox' === $field ) {
797
- return $this->option_metabox();
798
- }
799
-
800
- throw new Exception( sprintf( esc_html__( 'Invalid property: %s', 'give' ), $field ) );
801
- }
802
-
803
-
804
- }
805
-
806
- // Get it started
807
- $Give_Settings = new Give_Plugin_Settings();
808
-
809
- /**
810
- * Wrapper function around cmb2_get_option
811
- * @since 0.1.0
812
- *
813
- * @param string $key Options array key
814
- * @param string $default The default option if the option isn't set
815
- *
816
- * @return mixed Option value
817
- */
818
- function give_get_option( $key = '', $default = false ) {
819
- $give_options = give_get_settings();
820
- $value = ! empty( $give_options[ $key ] ) ? $give_options[ $key ] : $default;
821
- $value = apply_filters( 'give_get_option', $value, $key, $default );
822
-
823
- return apply_filters( "give_get_option_{$key}", $value, $key, $default );
824
- }
825
-
826
-
827
- /**
828
- * Update an option
829
- *
830
- * Updates an give setting value in both the db and the global variable.
831
- * Warning: Passing in an empty, false or null string value will remove
832
- * the key from the give_options array.
833
- *
834
- * @since 1.0
835
- *
836
- * @param string $key The Key to update
837
- * @param string|bool|int $value The value to set the key to
838
- *
839
- * @return boolean True if updated, false if not.
840
- */
841
- function give_update_option( $key = '', $value = false ) {
842
-
843
- // If no key, exit
844
- if ( empty( $key ) ) {
845
- return false;
846
- }
847
-
848
- if ( empty( $value ) ) {
849
- $remove_option = give_delete_option( $key );
850
-
851
- return $remove_option;
852
- }
853
-
854
- // First let's grab the current settings
855
- $options = get_option( 'give_settings' );
856
-
857
- // Let's let devs alter that value coming in
858
- $value = apply_filters( 'give_update_option', $value, $key );
859
-
860
- // Next let's try to update the value
861
- $options[ $key ] = $value;
862
- $did_update = update_option( 'give_settings', $options );
863
-
864
- // If it updated, let's update the global variable
865
- if ( $did_update ) {
866
- global $give_options;
867
- $give_options[ $key ] = $value;
868
- }
869
-
870
- return $did_update;
871
- }
872
-
873
- /**
874
- * Remove an option
875
- *
876
- * Removes an give setting value in both the db and the global variable.
877
- *
878
- * @since 1.0
879
- *
880
- * @global $give_options
881
- *
882
- * @param string $key The Key to delete
883
- *
884
- * @return boolean True if updated, false if not.
885
- */
886
- function give_delete_option( $key = '' ) {
887
-
888
- // If no key, exit
889
- if ( empty( $key ) ) {
890
- return false;
891
- }
892
-
893
- // First let's grab the current settings
894
- $options = get_option( 'give_settings' );
895
-
896
- // Next let's try to update the value
897
- if ( isset( $options[ $key ] ) ) {
898
-
899
- unset( $options[ $key ] );
900
-
901
- }
902
-
903
- $did_update = update_option( 'give_settings', $options );
904
-
905
- // If it updated, let's update the global variable
906
- if ( $did_update ) {
907
- global $give_options;
908
- $give_options = $options;
909
- }
910
-
911
- return $did_update;
912
- }
913
-
914
-
915
- /**
916
- * Get Settings
917
- *
918
- * Retrieves all Give plugin settings
919
- *
920
- * @since 1.0
921
- * @return array Give settings
922
- */
923
- function give_get_settings() {
924
-
925
- $settings = get_option( 'give_settings' );
926
-
927
- return (array) apply_filters( 'give_get_settings', $settings );
928
-
929
- }
930
-
931
-
932
- /**
933
- * Give Settings Array Insert.
934
- *
935
- * Allows other Add-ons and plugins to insert Give settings at a desired position.
936
- *
937
- * @since 1.3.5
938
- *
939
- * @param $array
940
- * @param $position |int|string Expects an array key or 'id' of the settings field to appear after
941
- * @param $insert |array a valid array of options to insert
942
- *
943
- * @return array
944
- */
945
- function give_settings_array_insert( $array, $position, $insert ) {
946
- if ( is_int( $position ) ) {
947
- array_splice( $array, $position, 0, $insert );
948
- } else {
949
-
950
- foreach ( $array as $index => $subarray ) {
951
- if ( isset( $subarray['id'] ) && $subarray['id'] == $position ) {
952
- $pos = $index;
953
- }
954
- }
955
-
956
- if ( ! isset( $pos ) ) {
957
- return $array;
958
- }
959
-
960
- $array = array_merge(
961
- array_slice( $array, 0, $pos ),
962
- $insert,
963
- array_slice( $array, $pos )
964
- );
965
- }
966
-
967
- return $array;
968
- }
969
-
970
-
971
- /**
972
- * Gateways Callback
973
- *
974
- * Renders gateways fields.
975
- *
976
- * @since 1.0
977
- * @param array $field_arr
978
- * @param array $saved_values
979
- * @return void
980
- */
981
- function give_enabled_gateways_callback( $field_arr, $saved_values = array() ) {
982
-
983
- $id = $field_arr['id'];
984
- $gateways = give_get_ordered_payment_gateways( give_get_payment_gateways() );
985
-
986
- echo '<ul class="give-checklist-fields give-payment-gatways-list">';
987
-
988
- foreach ( $gateways as $key => $option ) :
989
-
990
- if ( is_array( $saved_values ) && array_key_exists( $key, $saved_values ) ) {
991
- $enabled = '1';
992
- } else {
993
- $enabled = null;
994
- }
995
-
996
- echo '<li><span class="give-drag-handle"><span class="dashicons dashicons-menu"></span></span><input name="' . $id . '[' . $key . ']" id="' . $id . '[' . $key . ']" type="checkbox" value="1" ' . checked( '1', $enabled, false ) . '/>&nbsp;';
997
- echo '<label for="' . $id . '[' . $key . ']">' . $option['admin_label'] . '</label></li>';
998
-
999
- endforeach;
1000
-
1001
- echo '</ul>';
1002
- }
1003
-
1004
- /**
1005
- * Gateways Callback (drop down)
1006
- *
1007
- * Renders gateways select menu
1008
- *
1009
- * @since 1.0
1010
- * @param array $field_arr
1011
- * @param array $saved_value
1012
- * @return void
1013
- */
1014
- function give_default_gateway_callback( $field_arr, $saved_value ) {
1015
- $id = $field_arr['id'];
1016
- $gateways = give_get_enabled_payment_gateways();
1017
- $saved_value = give_get_default_gateway( null );
1018
-
1019
- echo '<select class="give-select" name="' . $id . '" id="' . $id . '">';
1020
-
1021
- foreach ( $gateways as $key => $option ) :
1022
- $selected = isset( $saved_value ) ? selected( $key, $saved_value, false ) : '';
1023
- echo '<option value="' . esc_attr( $key ) . '"' . $selected . '>' . esc_html( $option['admin_label'] ) . '</option>';
1024
- endforeach;
1025
-
1026
- echo '</select>';
1027
-
1028
- }
1029
-
1030
- /**
1031
- * Give Title
1032
- *
1033
- * Renders custom section titles output; Really only an because CMB2's output is a bit funky
1034
- *
1035
- * @since 1.0
1036
- *
1037
- * @param $field_object , $escaped_value, $object_id, $object_type, $field_type_object
1038
- *
1039
- * @return void
1040
- */
1041
- function give_title_callback( $field_object, $escaped_value, $object_id, $object_type, $field_type_object ) {
1042
-
1043
- $id = $field_type_object->field->args['id'];
1044
- $title = $field_type_object->field->args['name'];
1045
- $field_description = $field_type_object->field->args['desc'];
1046
-
1047
- echo '<hr>' . $field_description;
1048
-
1049
- }
1050
-
1051
- /**
1052
- * Give Description
1053
- *
1054
- * Renders custom description text which any plugin can use to output content, html, php, etc.
1055
- *
1056
- * @since 1.3.5
1057
- *
1058
- * @param $field_object , $escaped_value, $object_id, $object_type, $field_type_object
1059
- *
1060
- * @return void
1061
- */
1062
- function give_description_callback( $field_object, $escaped_value, $object_id, $object_type, $field_type_object ) {
1063
-
1064
- $id = $field_type_object->field->args['id'];
1065
- $title = $field_type_object->field->args['name'];
1066
- $field_description = $field_type_object->field->args['desc'];
1067
-
1068
-
1069
- echo $field_description;
1070
-
1071
- }
1072
-
1073
- /**
1074
- * Gets a number of posts and displays them as options
1075
- *
1076
- * @param array $query_args Optional. Overrides defaults.
1077
- * @param bool $force Force the pages to be loaded even if not on settings
1078
- *
1079
- * @see: https://github.com/WebDevStudios/CMB2/wiki/Adding-your-own-field-types
1080
- * @return array An array of options that matches the CMB2 options array
1081
- */
1082
- function give_cmb2_get_post_options( $query_args, $force = false ) {
1083
-
1084
- $post_options = array( '' => '' ); // Blank option
1085
-
1086
- if ( ( ! isset( $_GET['page'] ) || 'give-settings' != $_GET['page'] ) && ! $force ) {
1087
- return $post_options;
1088
- }
1089
-
1090
- $args = wp_parse_args( $query_args, array(
1091
- 'post_type' => 'page',
1092
- 'numberposts' => 10,
1093
- ) );
1094
-
1095
- $posts = get_posts( $args );
1096
-
1097
- if ( $posts ) {
1098
- foreach ( $posts as $post ) {
1099
-
1100
- $post_options[ $post->ID ] = $post->post_title;
1101
-
1102
- }
1103
- }
1104
-
1105
- return $post_options;
1106
- }
1107
-
1108
-
1109
- /**
1110
- * Featured Image Sizes
1111
- *
1112
- * Outputs an array for the "Featured Image Size" option found under Settings > Display Options.
1113
- *
1114
- * @since 1.4
1115
- *
1116
- * @global $_wp_additional_image_sizes
1117
- */
1118
- function give_get_featured_image_sizes() {
1119
- global $_wp_additional_image_sizes;
1120
- $sizes = array();
1121
- $get_sizes = get_intermediate_image_sizes();
1122
-
1123
- // check whether intermediate image sizes exist first
1124
- if ( empty( $get_sizes ) ) {
1125
- $get_sizes = array( 'thumbnail', 'medium', 'medium_large', 'large' );
1126
- }
1127
-
1128
- foreach ( $get_sizes as $_size ) {
1129
-
1130
- if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
1131
- $sizes[ $_size ] = $_size . ' - ' . get_option( "{$_size}_size_w" ) . 'x' . get_option( "{$_size}_size_h" );
1132
- } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
1133
- $sizes[ $_size ] = $_size . ' - ' . $_wp_additional_image_sizes[ $_size ]['width'] . 'x' . $_wp_additional_image_sizes[ $_size ]['height'];
1134
- }
1135
-
1136
- }
1137
-
1138
- return apply_filters( 'give_get_featured_image_sizes', $sizes );
1139
- }
1140
-
1141
-
1142
- /**
1143
- * Give License Key Callback
1144
- *
1145
- * Registers the license field callback for EDD's Software Licensing.
1146
- *
1147
- * @since 1.0
1148
- *
1149
- * @param array $field_object , $escaped_value, $object_id, $object_type, $field_type_object Arguments passed by CMB2
1150
- *
1151
- * @return void
1152
- */
1153
- function give_license_key_callback( $field_object, $escaped_value, $object_id, $object_type, $field_type_object ) {
1154
- /* @var CMB2_Types $field_type_object */
1155
-
1156
- $id = $field_type_object->field->args['id'];
1157
- $field_description = $field_type_object->field->args['desc'];
1158
- $license = $field_type_object->field->args['options']['license'];
1159
- $license_key = $escaped_value;
1160
- $is_license_key = apply_filters( 'give_is_license_key', ( is_object( $license ) && ! empty( $license ) ) );
1161
- $is_valid_license = apply_filters( 'give_is_valid_license', ( $is_license_key && property_exists( $license, 'license' ) && 'valid' === $license->license ) );
1162
- $shortname = $field_type_object->field->args['options']['shortname'];
1163
- $field_classes = 'regular-text give-license-field';
1164
- $type = empty( $escaped_value ) || ! $is_valid_license ? 'text' : 'password';
1165
- $custom_html = '';
1166
- $messages = array();
1167
- $class = '';
1168
- $account_page_link = $field_type_object->field->args['options']['account_url'];
1169
- $checkout_page_link = $field_type_object->field->args['options']['checkout_url'];
1170
- $addon_name = $field_type_object->field->args['options']['item_name'];
1171
- $license_status = null;
1172
- $is_in_subscription = null;
1173
-
1174
- // By default query on edd api url will return license object which contain status and message property, this can break below functionality.
1175
- // To combat that check if status is set to error or not, if yes then set $is_license_key to false.
1176
- if ( $is_license_key && property_exists( $license, 'status' ) && 'error' === $license->status ) {
1177
- $is_license_key = false;
1178
- }
1179
-
1180
-
1181
- // Check if current license is part of subscription or not.
1182
- $subscriptions = get_option( 'give_subscriptions' );
1183
-
1184
- if ( $is_license_key && $subscriptions ) {
1185
- foreach ( $subscriptions as $subscription ) {
1186
- if ( in_array( $license_key, $subscription['licenses'] ) ) {
1187
- $is_in_subscription = $subscription['id'];
1188
- break;
1189
- }
1190
- }
1191
- }
1192
-
1193
-
1194
- if ( $is_license_key ) {
1195
- if ( $is_in_subscription ) {
1196
- $subscription_expires = strtotime( $subscriptions[ $is_in_subscription ]['expires'] );
1197
- $subscription_status = esc_html__( 'renew', 'give' );
1198
-
1199
- if ( ( 'active' !== $subscriptions[ $is_in_subscription ]['status'] ) ) {
1200
- $subscription_status = esc_html__( 'expire', 'give' );
1201
- }
1202
-
1203
- if ( $subscription_expires < current_time( 'timestamp', 1 ) ) {
1204
- $messages[] = sprintf(
1205
- __( 'Your subscription (<a href="%s" target="_blank">#%d</a>) expired. Please <a href="%s" target="_blank" title="Renew your license key">renew your license key</a>', 'give' ),
1206
- urldecode( $subscriptions[ $is_in_subscription ]['invoice_url'] ),
1207
- $subscriptions[ $is_in_subscription ]['payment_id'],
1208
- $checkout_page_link . '?edd_license_key=' . $subscriptions[ $is_in_subscription ]['license_key'] . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired'
1209
- );
1210
- $license_status = 'license-expired';
1211
- } elseif ( strtotime( '- 7 days', $subscription_expires ) < current_time( 'timestamp', 1 ) ) {
1212
- $messages[] = sprintf(
1213
- __( 'Your subscription (<a href="%s" target="_blank">#%d</a>) will %s in %s.', 'give' ),
1214
- urldecode( $subscriptions[ $is_in_subscription ]['invoice_url'] ),
1215
- $subscriptions[ $is_in_subscription ]['payment_id'],
1216
- $subscription_status,
1217
- human_time_diff( current_time( 'timestamp', 1 ), strtotime( $subscriptions[ $is_in_subscription ]['expires'] ) )
1218
- );
1219
- $license_status = 'license-expires-soon';
1220
- } else {
1221
- $messages[] = sprintf(
1222
- __( 'Your subscription (<a href="%s" target="_blank">#%d</a>) will %s on %s.', 'give' ),
1223
- urldecode( $subscriptions[ $is_in_subscription ]['invoice_url'] ),
1224
- $subscriptions[ $is_in_subscription ]['payment_id'],
1225
- $subscription_status,
1226
- date_i18n( get_option( 'date_format' ), strtotime( $subscriptions[ $is_in_subscription ]['expires'], current_time( 'timestamp' ) ) )
1227
- );
1228
- $license_status = 'license-expiration-date';
1229
- }
1230
-
1231
-
1232
- } elseif ( empty( $license->success ) && property_exists( $license, 'error' ) ) {
1233
-
1234
- // activate_license 'invalid' on anything other than valid, so if there was an error capture it
1235
- switch( $license->error ) {
1236
- case 'expired' :
1237
- $class = $license->error;
1238
- $messages[] = sprintf(
1239
- __( 'Your license key expired on %s. Please <a href="%s" target="_blank" title="Renew your license key">renew your license key</a>.', 'give' ),
1240
- date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ),
1241
- $checkout_page_link . '?edd_license_key=' . $license_key . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired'
1242
- );
1243
- $license_status = 'license-' . $class;
1244
- break;
1245
-
1246
- case 'missing' :
1247
- $class = $license->error;
1248
- $messages[] = sprintf(
1249
- __( 'Invalid license. Please <a href="%s" target="_blank" title="Visit account page">visit your account page</a> and verify it.', 'give' ),
1250
- $account_page_link . '?utm_campaign=admin&utm_source=licenses&utm_medium=missing'
1251
- );
1252
- $license_status = 'license-' . $class;
1253
- break;
1254
-
1255
- case 'invalid' :
1256
- $class = $license->error;
1257
- $messages[] = sprintf(
1258
- __( 'Your %s is not active for this URL. Please <a href="%s" target="_blank" title="Visit account page">visit your account page</a> to manage your license key URLs.', 'give' ),
1259
- $addon_name,
1260
- $account_page_link . '?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
1261
- );
1262
- $license_status = 'license-' . $class;
1263
- break;
1264
-
1265
- case 'site_inactive' :
1266
- $class = $license->error;
1267
- $messages[] = sprintf(
1268
- __( 'Your %s is not active for this URL. Please <a href="%s" target="_blank" title="Visit account page">visit your account page</a> to manage your license key URLs.', 'give' ),
1269
- $addon_name,
1270
- $account_page_link . '?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
1271
- );
1272
- $license_status = 'license-' . $class;
1273
- break;
1274
-
1275
- case 'item_name_mismatch' :
1276
- $class = $license->error;
1277
- $messages[] = sprintf( __( 'This license %s does not belong to %s.', 'give' ), $license_key, $addon_name );
1278
- $license_status = 'license-' . $class;
1279
- break;
1280
-
1281
- case 'no_activations_left':
1282
- $class = $license->error;
1283
- $messages[] = sprintf( __( 'Your license key has reached it\'s activation limit. <a href="%s">View possible upgrades</a> now.', 'give' ), $account_page_link );
1284
- $license_status = 'license-' . $class;
1285
- break;
1286
- }
1287
- } else {
1288
- switch ( $license->license ) {
1289
- case 'valid' :
1290
- default:
1291
- $class = 'valid';
1292
- $now = current_time( 'timestamp' );
1293
- $expiration = strtotime( $license->expires, current_time( 'timestamp' ) );
1294
-
1295
- if ( 'lifetime' === $license->expires ) {
1296
- $messages[] = esc_html__( 'License key never expires.', 'give' );
1297
- $license_status = 'license-lifetime-notice';
1298
- } elseif ( $expiration > $now && $expiration - $now < ( DAY_IN_SECONDS * 30 ) ) {
1299
- $messages[] = sprintf(
1300
- __( 'Your license key expires soon! It expires on %s. <a href="%s" target="_blank" title="Renew license">Renew your license key</a>.', 'give' ),
1301
- date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ),
1302
- $checkout_page_link . '?edd_license_key=' . $value . '&utm_campaign=admin&utm_source=licenses&utm_medium=renew'
1303
- );
1304
- $license_status = 'license-expires-soon';
1305
- } else {
1306
- $messages[] = sprintf(
1307
- __( 'Your license key expires on %s.', 'give' ),
1308
- date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) )
1309
- );
1310
- $license_status = 'license-expiration-date';
1311
- }
1312
- break;
1313
- }
1314
- }
1315
- } else {
1316
- $messages[] = sprintf(
1317
- __( 'To receive updates, please enter your valid %s license key.', 'give' ),
1318
- $addon_name
1319
- );
1320
- $license_status = 'inactive';
1321
- }
1322
-
1323
-
1324
- // Add class for input field if license is active.
1325
- if ( $is_valid_license ) {
1326
- $field_classes .= ' give-license-active';
1327
- }
1328
-
1329
- // Get input field html.
1330
- $input_field_html = "<input type=\"{$type}\" name=\"{$id}\" class=\"{$field_classes}\" value=\"{$license_key}\">";
1331
-
1332
- // If license is active so show deactivate button.
1333
- if ( $is_valid_license ) {
1334
- // Get input field html.
1335
- $input_field_html = "<input type=\"{$type}\" name=\"{$id}\" class=\"{$field_classes}\" value=\"{$license_key}\" readonly=\"readonly\">";
1336
-
1337
- $custom_html = '<input type="submit" class="button button-small give-license-deactivate" name="' . $id . '_deactivate" value="' . esc_attr__( 'Deactivate License', 'give' ) . '"/>';
1338
-
1339
-
1340
- }
1341
-
1342
- // Field description.
1343
- $custom_html .= '<label for="give_settings[' . $id . ']"> ' . $field_description . '</label>';
1344
-
1345
- // If no messages found then inform user that to get updated in future register yourself.
1346
- if ( empty( $messages ) ) {
1347
- $messages[] = apply_filters( "{$shortname}_default_addon_notice", esc_html__( 'To receive updates, please enter your valid license key.', 'give' ) );
1348
- }
1349
-
1350
- foreach( $messages as $message ) {
1351
- $custom_html .= '<div class="give-license-status-notice give-' . $license_status . '">';
1352
- $custom_html .= '<p>' . $message . '</p>';
1353
- $custom_html .= '</div>';
1354
- }
1355
-
1356
-
1357
- // Field html.
1358
- $custom_html = apply_filters( 'give_license_key_field_html', $input_field_html . $custom_html, $field_type_object );
1359
-
1360
- // Nonce.
1361
- wp_nonce_field( $id . '-nonce', $id . '-nonce' );
1362
-
1363
- // Print field html.
1364
- echo "<div class=\"give-license-key\"><label for=\"{$id}\">{$addon_name }</label></div><div class=\"give-license-block\">{$custom_html}</div>";
1365
- }
1366
-
1367
-
1368
- /**
1369
- * Display the API Keys
1370
- *
1371
- * @since 1.0
1372
- * @return void
1373
- */
1374
- function give_api_callback() {
1375
-
1376
- if ( ! current_user_can( 'manage_give_settings' ) ) {
1377
- return;
1378
- }
1379
-
1380
- /**
1381
- * Fires before displaying API keys.
1382
- *
1383
- * @since 1.0
1384
- */
1385
- do_action( 'give_tools_api_keys_before' );
1386
-
1387
- require_once GIVE_PLUGIN_DIR . 'includes/admin/class-api-keys-table.php';
1388
-
1389
- $api_keys_table = new Give_API_Keys_Table();
1390
- $api_keys_table->prepare_items();
1391
- $api_keys_table->display();
1392
- ?>
1393
- <span class="cmb2-metabox-description api-description">
1394
- <?php echo sprintf(
1395
- /* translators: 1: http://docs.givewp.com/api 2: http://docs.givewp.com/addon-zapier */
1396
- __( 'You can create API keys for individual users within their profile edit screen. API keys allow users to use the <a href="%1$s" target="_blank">Give REST API</a> to retrieve donation data in JSON or XML for external applications or devices, such as <a href="%2$s" target="_blank">Zapier</a>.', 'give' ),
1397
- esc_url( 'http://docs.givewp.com/api' ),
1398
- esc_url( 'http://docs.givewp.com/addon-zapier' )
1399
- ); ?>
1400
- </span>
1401
- <?php
1402
-
1403
- /**
1404
- * Fires after displaying API keys.
1405
- *
1406
- * @since 1.0
1407
- */
1408
- do_action( 'give_tools_api_keys_after' );
1409
- }
1410
-
1411
- add_action( 'give_settings_tab_api_keys', 'give_api_callback' );
1412
-
1413
- /**
1414
- * Hook Callback
1415
- *
1416
- * Adds a do_action() hook in place of the field.
1417
- *
1418
- * @since 1.0
1419
- *
1420
- * @param array $args Arguments passed by the setting
1421
- *
1422
- * @return void
1423
- */
1424
- function give_hook_callback( $args ) {
1425
-
1426
- $id = $args['id'];
1427
-
1428
- /**
1429
- * Fires in give field.
1430
- *
1431
- * @since 1.0
1432
- */
1433
- do_action( "give_{$id}" );
1434
-
1435
- }
1436
-
1437
-
1438
- /**
1439
- * Check if radio(enabled/disabled) and checkbox(on) is active or not.
1440
- *
1441
- * @since 1.8
1442
- * @param string $value
1443
- * @param string $compare_with
1444
- * @return bool
1445
- */
1446
- function give_is_setting_enabled( $value, $compare_with = null ) {
1447
- if( ! is_null( $compare_with ) ) {
1448
-
1449
- if( is_array( $compare_with ) ) {
1450
- // Output.
1451
- return in_array( $value, $compare_with );
1452
- }
1453
-
1454
- // Output.
1455
- return ( $value === $compare_with );
1456
- }
1457
-
1458
- // Backward compatibility: From version 1.8 most of setting is modified to enabled/disabled
1459
- // Output.
1460
- return ( in_array( $value, array( 'enabled', 'on', 'yes' ) ) ? true : false );
1461
- }
1
+ <?php
2
+
3
+ /**
4
+ * Class Give_Plugin_Settings
5
+ *
6
+ * Register settings Include and setup custom metaboxes and fields.
7
+ *
8
+ * @package Give
9
+ * @subpackage Admin
10
+ * @license https://opensource.org/licenses/gpl-license GNU Public License
11
+ * @link https://github.com/webdevstudios/Custom-Metaboxes-and-Fields-for-WordPress
12
+ *
13
+ * @property $key
14
+ * @property $title
15
+ * @property $options_page
16
+ */
17
+ class Give_Plugin_Settings {
18
+
19
+ /**
20
+ * Option key, and option page slug.
21
+ *
22
+ * @var string
23
+ */
24
+ private $key = 'give_settings';
25
+
26
+ /**
27
+ * Options Page title.
28
+ *
29
+ * @var string
30
+ */
31
+ protected $title = '';
32
+
33
+ /**
34
+ * Options Page hook.
35
+ *
36
+ * @var string
37
+ */
38
+ protected $options_page = '';
39
+
40
+ /**
41
+ * Give_Plugin_Settings constructor.
42
+ */
43
+ public function __construct() {
44
+
45
+ // Custom CMB2 Settings Fields
46
+ add_action( 'cmb2_render_give_title', 'give_title_callback', 10, 5 );
47
+ add_action( 'cmb2_render_give_description', 'give_description_callback', 10, 5 );
48
+ add_action( 'cmb2_render_enabled_gateways', 'give_enabled_gateways_callback', 10, 5 );
49
+ add_action( 'cmb2_render_default_gateway', 'give_default_gateway_callback', 10, 5 );
50
+ add_action( 'cmb2_render_email_preview_buttons', 'give_email_preview_buttons_callback', 10, 5 );
51
+ add_action( 'cmb2_render_system_info', 'give_system_info_callback', 10, 5 );
52
+ add_action( 'cmb2_render_api', 'give_api_callback', 10, 5 );
53
+ add_action( 'cmb2_render_license_key', 'give_license_key_callback', 10, 5 );
54
+ }
55
+
56
+
57
+ /**
58
+ * Register our setting to WP
59
+ *
60
+ * @since 1.0
61
+ */
62
+ public function init() {
63
+ register_setting( $this->key, $this->key );
64
+
65
+ }
66
+
67
+
68
+ /**
69
+ * Filter CMB2 URL
70
+ *
71
+ * Required for CMB2 to properly load CSS/JS.
72
+ *
73
+ * @param $url
74
+ *
75
+ * @return mixed
76
+ */
77
+ public function give_update_cmb_meta_box_url( $url ) {
78
+ // Path to Give's CMB
79
+ return GIVE_PLUGIN_URL . '/includes/libraries/cmb2';
80
+ }
81
+
82
+
83
+ /**
84
+ * Retrieve settings tabs
85
+ *
86
+ * @since 1.0
87
+ * @return array $tabs
88
+ */
89
+ public function give_get_settings_tabs() {
90
+
91
+ $settings = $this->give_settings( null );
92
+
93
+ $tabs = array();
94
+ $tabs['general'] = __( 'General', 'give' );
95
+ $tabs['gateways'] = __( 'Payment Gateways', 'give' );
96
+ $tabs['display'] = __( 'Display Options', 'give' );
97
+ $tabs['emails'] = __( 'Emails', 'give' );
98
+
99
+ if ( ! empty( $settings['addons']['fields'] ) ) {
100
+ $tabs['addons'] = __( 'Add-ons', 'give' );
101
+ }
102
+
103
+ if ( ! empty( $settings['licenses']['fields'] ) ) {
104
+ $tabs['licenses'] = __( 'Licenses', 'give' );
105
+ }
106
+
107
+ $tabs['advanced'] = __( 'Advanced', 'give' );
108
+ $tabs['api'] = __( 'API', 'give' );
109
+ $tabs['system_info'] = __( 'System Info', 'give' );
110
+
111
+ return apply_filters( 'give_settings_tabs', $tabs );
112
+ }
113
+
114
+
115
+ /**
116
+ * Admin page markup. Mostly handled by CMB2
117
+ *
118
+ * @since 1.0
119
+ */
120
+ public function admin_page_display() {
121
+
122
+ $active_tab = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $this->give_get_settings_tabs() ) ? $_GET['tab'] : 'general';
123
+
124
+ ?>
125
+
126
+ <div class="wrap give_settings_page cmb2_options_page <?php echo $this->key; ?>">
127
+
128
+ <h1 class="screen-reader-text"><?php echo get_admin_page_title(); ?></h1>
129
+
130
+ <h2 class="nav-tab-wrapper">
131
+ <?php
132
+ foreach ( $this->give_get_settings_tabs() as $tab_id => $tab_name ) {
133
+
134
+ $tab_url = esc_url( add_query_arg( array(
135
+ 'settings-updated' => false,
136
+ 'tab' => $tab_id,
137
+ ) ) );
138
+
139
+ $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
140
+
141
+ echo '<a href="' . esc_url( $tab_url ) . '" class="nav-tab' . $active . '" id="tab-' . $tab_id . '">' . esc_html( $tab_name ) . '</a>';
142
+
143
+ }
144
+ ?>
145
+ </h2>
146
+
147
+ <?php cmb2_metabox_form( $this->give_settings( $active_tab ), $this->key ); ?>
148
+
149
+ </div><!-- .wrap -->
150
+
151
+ <?php
152
+ }
153
+
154
+
155
+ /**
156
+ *
157
+ * Modify CMB2 Default Form Output
158
+ *
159
+ * @param string @args
160
+ *
161
+ * @since 1.0
162
+ *
163
+ * @param $form_format
164
+ * @param $object_id
165
+ * @param $cmb
166
+ *
167
+ * @return string
168
+ */
169
+ function give_modify_cmb2_form_output( $form_format, $object_id, $cmb ) {
170
+
171
+ // only modify the give settings form
172
+ if ( 'give_settings' == $object_id ) {
173
+
174
+ return '<form class="cmb-form" method="post" id="%1$s" enctype="multipart/form-data" encoding="multipart/form-data"><input type="hidden" name="give_settings_saved" value="true"><input type="hidden" name="object_id" value="%2$s">%3$s<div class="give-submit-wrap"><input type="submit" name="submit-cmb" value="' . esc_attr__( 'Save Settings', 'give' ) . '" class="button-primary"></div></form>';
175
+
176
+ }
177
+
178
+ return $form_format;
179
+
180
+ }
181
+
182
+ /**
183
+ * Define General Settings Metabox and field configurations.
184
+ *
185
+ * Filters are provided for each settings section to allow add-ons and other plugins to add their own settings
186
+ *
187
+ * @param $active_tab |string active tab settings; null returns full array
188
+ *
189
+ * @return array
190
+ */
191
+ public function give_settings( $active_tab ) {
192
+
193
+ $give_settings = array(
194
+ /**
195
+ * General Settings
196
+ */
197
+ 'general' => array(
198
+ 'id' => 'general_settings',
199
+ 'give_title' => __( 'General Settings', 'give' ),
200
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
201
+ 'fields' => apply_filters( 'give_settings_general', array(
202
+ array(
203
+ 'name' => __( 'General Settings', 'give' ),
204
+ 'desc' => '',
205
+ 'type' => 'give_title',
206
+ 'id' => 'give_title_general_settings_1',
207
+ ),
208
+ array(
209
+ 'name' => __( 'Success Page', 'give' ),
210
+ /* translators: %s: [give_receipt] */
211
+ 'desc' => sprintf( __( 'The page donors are sent to after completing their donations. The %s shortcode should be on this page.', 'give' ), '<code>[give_receipt]</code>' ),
212
+ 'id' => 'success_page',
213
+ 'type' => 'select',
214
+ 'options' => give_cmb2_get_post_options( array(
215
+ 'post_type' => 'page',
216
+ 'numberposts' => - 1,
217
+ ) ),
218
+ ),
219
+ array(
220
+ 'name' => __( 'Failed Donation Page', 'give' ),
221
+ 'desc' => __( 'The page donors are sent to if their donation is cancelled or fails.', 'give' ),
222
+ 'id' => 'failure_page',
223
+ 'type' => 'select',
224
+ 'options' => give_cmb2_get_post_options( array(
225
+ 'post_type' => 'page',
226
+ 'numberposts' => - 1,
227
+ ) ),
228
+ ),
229
+ array(
230
+ 'name' => __( 'Donation History Page', 'give' ),
231
+ /* translators: %s: [donation_history] */
232
+ 'desc' => sprintf( __( 'The page showing a complete donation history for the current user. The %s shortcode should be on this page.', 'give' ), '<code>[donation_history]</code>' ),
233
+ 'id' => 'history_page',
234
+ 'type' => 'select',
235
+ 'options' => give_cmb2_get_post_options( array(
236
+ 'post_type' => 'page',
237
+ 'numberposts' => - 1,
238
+ ) ),
239
+ ),
240
+ array(
241
+ 'name' => __( 'Base Country', 'give' ),
242
+ 'desc' => __( 'The country your site operates from.', 'give' ),
243
+ 'id' => 'base_country',
244
+ 'type' => 'select',
245
+ 'options' => give_get_country_list(),
246
+ ),
247
+ array(
248
+ 'name' => __( 'Currency Settings', 'give' ),
249
+ 'desc' => '',
250
+ 'type' => 'give_title',
251
+ 'id' => 'give_title_general_settings_2',
252
+ ),
253
+ array(
254
+ 'name' => __( 'Currency', 'give' ),
255
+ 'desc' => __( 'The donation currency. Note that some payment gateways have currency restrictions.', 'give' ),
256
+ 'id' => 'currency',
257
+ 'type' => 'select',
258
+ 'options' => give_get_currencies(),
259
+ 'default' => 'USD',
260
+ ),
261
+ array(
262
+ 'name' => __( 'Currency Position', 'give' ),
263
+ 'desc' => __( 'The position of the currency symbol.', 'give' ),
264
+ 'id' => 'currency_position',
265
+ 'type' => 'select',
266
+ 'options' => array(
267
+ /* translators: %s: currency symbol */
268
+ 'before' => sprintf( __( 'Before - %s10', 'give' ), give_currency_symbol( give_get_currency() ) ),
269
+ /* translators: %s: currency symbol */
270
+ 'after' => sprintf( __( 'After - 10%s', 'give' ), give_currency_symbol( give_get_currency() ) ),
271
+ ),
272
+ 'default' => 'before',
273
+ ),
274
+ array(
275
+ 'name' => __( 'Thousands Separator', 'give' ),
276
+ 'desc' => __( 'The symbol (usually , or .) to separate thousands.', 'give' ),
277
+ 'id' => 'thousands_separator',
278
+ 'type' => 'text_small',
279
+ 'sanitization_cb' => 'give_sanitize_thousand_separator',
280
+ 'default' => ',',
281
+ ),
282
+ array(
283
+ 'name' => __( 'Decimal Separator', 'give' ),
284
+ 'desc' => __( 'The symbol (usually , or .) to separate decimal points.', 'give' ),
285
+ 'id' => 'decimal_separator',
286
+ 'type' => 'text_small',
287
+ 'default' => '.',
288
+ ),
289
+ array(
290
+ 'name' => __( 'Number of Decimals', 'give' ),
291
+ 'desc' => __( 'The number of decimal points displayed in amounts.', 'give' ),
292
+ 'id' => 'number_decimals',
293
+ 'type' => 'text_small',
294
+ 'default' => 2,
295
+ 'sanitization_cb' => 'give_sanitize_number_decimals',
296
+ ),
297
+ )
298
+ ),
299
+ ),
300
+ /**
301
+ * Payment Gateways
302
+ */
303
+ 'gateways' => array(
304
+ 'id' => 'payment_gateways',
305
+ 'give_title' => __( 'Payment Gateways', 'give' ),
306
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
307
+ 'fields' => apply_filters( 'give_settings_gateways', array(
308
+ array(
309
+ 'name' => __( 'Gateways Settings', 'give' ),
310
+ 'desc' => '',
311
+ 'id' => 'give_title_gateway_settings_1',
312
+ 'type' => 'give_title',
313
+ ),
314
+ array(
315
+ 'name' => __( 'Test Mode', 'give' ),
316
+ 'desc' => __( 'While in test mode no live donations are processed. To fully use test mode, you must have a sandbox (test) account for the payment gateway you are testing.', 'give' ),
317
+ 'id' => 'test_mode',
318
+ 'type' => 'checkbox',
319
+ ),
320
+ array(
321
+ 'name' => __( 'Enabled Gateways', 'give' ),
322
+ 'desc' => __( 'Enable your payment gateway. Can be ordered by dragging.', 'give' ),
323
+ 'id' => 'gateways',
324
+ 'type' => 'enabled_gateways',
325
+ ),
326
+ array(
327
+ 'name' => __( 'Default Gateway', 'give' ),
328
+ 'desc' => __( 'The gateway that will be selected by default.', 'give' ),
329
+ 'id' => 'default_gateway',
330
+ 'type' => 'default_gateway',
331
+ ),
332
+ array(
333
+ 'name' => __( 'PayPal Standard', 'give' ),
334
+ 'desc' => '',
335
+ 'type' => 'give_title',
336
+ 'id' => 'give_title_gateway_settings_2',
337
+ ),
338
+ array(
339
+ 'name' => __( 'PayPal Email', 'give' ),
340
+ 'desc' => __( 'Enter your PayPal account\'s email.', 'give' ),
341
+ 'id' => 'paypal_email',
342
+ 'type' => 'text_email',
343
+ ),
344
+ array(
345
+ 'name' => __( 'PayPal Page Style', 'give' ),
346
+ 'desc' => __( 'Enter the name of the page style to use, or leave blank to use the default.', 'give' ),
347
+ 'id' => 'paypal_page_style',
348
+ 'type' => 'text',
349
+ ),
350
+ array(
351
+ 'name' => __( 'PayPal Transaction Type', 'give' ),
352
+ 'desc' => __( 'Nonprofits must verify their status to withdraw donations they receive via PayPal. PayPal users that are not verified nonprofits must demonstrate how their donations will be used, once they raise more than $10,000. By default, Give transactions are sent to PayPal as donations. You may change the transaction type using this option if you feel you may not meet PayPal\'s donation requirements.', 'give' ),
353
+ 'id' => 'paypal_button_type',
354
+ 'type' => 'radio_inline',
355
+ 'options' => array(
356
+ 'donation' => __( 'Donation', 'give' ),
357
+ 'standard' => __( 'Standard Transaction', 'give' ),
358
+ ),
359
+ 'default' => 'donation',
360
+ ),
361
+ array(
362
+ 'name' => __( 'Disable PayPal IPN Verification', 'give' ),
363
+ 'desc' => __( 'If donations are not getting marked as complete, use a slightly less secure method of verifying donations.', 'give' ),
364
+ 'id' => 'disable_paypal_verification',
365
+ 'type' => 'checkbox',
366
+ ),
367
+ array(
368
+ 'name' => __( 'Offline Donations', 'give' ),
369
+ 'desc' => '',
370
+ 'type' => 'give_title',
371
+ 'id' => 'give_title_gateway_settings_3',
372
+ ),
373
+ array(
374
+ 'name' => __( 'Collect Billing Details', 'give' ),
375
+ 'desc' => __( 'Enable to request billing details for offline donations. Will appear above offline donation instructions. Can be enabled/disabled per form.', 'give' ),
376
+ 'id' => 'give_offline_donation_enable_billing_fields',
377
+ 'type' => 'checkbox',
378
+ ),
379
+ array(
380
+ 'name' => __( 'Offline Donation Instructions', 'give' ),
381
+ 'desc' => __( 'The following content will appear for all forms when the user selects the offline donation payment option. Note: You may customize the content per form as needed.', 'give' ),
382
+ 'id' => 'global_offline_donation_content',
383
+ 'default' => give_get_default_offline_donation_content(),
384
+ 'type' => 'wysiwyg',
385
+ 'options' => array(
386
+ 'textarea_rows' => 6,
387
+ ),
388
+ ),
389
+ array(
390
+ 'name' => __( 'Offline Donation Email Instructions Subject', 'give' ),
391
+ 'desc' => __( 'Enter the subject line for the donation receipt email.', 'give' ),
392
+ 'id' => 'offline_donation_subject',
393
+ 'default' => esc_attr__( '{donation} - Offline Donation Instructions', 'give' ),
394
+ 'type' => 'text',
395
+ ),
396
+ array(
397
+ 'name' => __( 'Offline Donation Email Instructions', 'give' ),
398
+ 'desc' => __( 'Enter the instructions you want emailed to the donor after they have submitted the donation form. Most likely this would include important information like mailing address and who to make the check out to.', 'give' ),
399
+ 'id' => 'global_offline_donation_email',
400
+ 'default' => give_get_default_offline_donation_email_content(),
401
+ 'type' => 'wysiwyg',
402
+ 'options' => array(
403
+ 'textarea_rows' => 6,
404
+ ),
405
+ ),
406
+ )
407
+ ),
408
+ ),
409
+ /** Display Settings */
410
+ 'display' => array(
411
+ 'id' => 'display_settings',
412
+ 'give_title' => __( 'Display Settings', 'give' ),
413
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
414
+ 'fields' => apply_filters( 'give_settings_display', array(
415
+ array(
416
+ 'name' => __( 'Display Settings', 'give' ),
417
+ 'desc' => '',
418
+ 'id' => 'give_title_display_settings_1',
419
+ 'type' => 'give_title',
420
+ ),
421
+ array(
422
+ 'name' => __( 'Disable CSS', 'give' ),
423
+ 'desc' => __( 'Enable this option if you would like to disable all of Give\'s included CSS stylesheets.', 'give' ),
424
+ 'id' => 'disable_css',
425
+ 'type' => 'checkbox',
426
+ ),
427
+ array(
428
+ 'name' => __( 'Enable Floating Labels', 'give' ),
429
+ /* translators: %s: http://docs.givewp.com/form-floating-labels */
430
+ 'desc' => sprintf( wp_kses( __( 'Enable <a href="%s" target="_blank">floating labels</a> in Give\'s donation forms. Note that if the "Disable CSS" option is enabled, you will need to style the floating labels yourself.', 'give' ), array(
431
+ 'a' => array(
432
+ 'href' => array(),
433
+ 'target' => array(),
434
+ ),
435
+ ) ), esc_url( 'http://docs.givewp.com/form-floating-labels' ) ),
436
+ 'id' => 'floatlabels',
437
+ 'type' => 'checkbox',
438
+ ),
439
+ array(
440
+ 'name' => __( 'Disable Welcome Screen', 'give' ),
441
+ /* translators: %s: about page URL */
442
+ 'desc' => sprintf( wp_kses( __( 'Enable this option if you would like to disable the <a href="%s" target="_blank">Give Welcome screen</a> every time Give is activated and/or updated.', 'give' ), array(
443
+ 'a' => array(
444
+ 'href' => array(),
445
+ 'target' => array(),
446
+ ),
447
+ ) ), esc_url( admin_url( 'index.php?page=give-about' ) ) ),
448
+ 'id' => 'disable_welcome',
449
+ 'type' => 'checkbox',
450
+ ),
451
+ array(
452
+ 'name' => __( 'Post Types', 'give' ),
453
+ 'desc' => '',
454
+ 'id' => 'give_title_display_settings_2',
455
+ 'type' => 'give_title',
456
+ ),
457
+ array(
458
+ 'name' => __( 'Disable Form Single Views', 'give' ),
459
+ 'desc' => __( 'By default, all forms have single views enabled which create a specific URL on your website for that form. This option disables the singular and archive views from being publicly viewable. Note: you will need to embed forms using a shortcode or widget if enabled.', 'give' ),
460
+ 'id' => 'disable_forms_singular',
461
+ 'type' => 'checkbox',
462
+ ),
463
+ array(
464
+ 'name' => __( 'Disable Form Archives', 'give' ),
465
+ 'desc' => __( 'Archives pages list all the forms you have created. This option will disable only the form\'s archive page(s). The single form\'s view will remain in place. Note: you will need to refresh your permalinks after this option has been enabled.', 'give' ),
466
+ 'id' => 'disable_forms_archives',
467
+ 'type' => 'checkbox',
468
+ ),
469
+ array(
470
+ 'name' => __( 'Disable Form Excerpts', 'give' ),
471
+ 'desc' => __( 'The excerpt is an optional summary or description of a donation form; in short, a summary as to why the user should give.', 'give' ),
472
+ 'id' => 'disable_forms_excerpt',
473
+ 'type' => 'checkbox',
474
+ ),
475
+ array(
476
+ 'name' => __( 'Featured Image Size', 'give' ),
477
+ 'desc' => __( 'The Featured Image is an image that is chosen as the representative image for a donation form. Some themes may have custom featured image sizes. Please select the size you would like to display for your single donation form\'s featured image.', 'give' ),
478
+ 'id' => 'featured_image_size',
479
+ 'type' => 'select',
480
+ 'default' => 'large',
481
+ 'options' => give_get_featured_image_sizes(),
482
+ ),
483
+ array(
484
+ 'name' => __( 'Disable Form Featured Image', 'give' ),
485
+ 'desc' => __( 'If you do not wish to use the featured image functionality you can disable it using this option and it will not be displayed for single donation forms.', 'give' ),
486
+ 'id' => 'disable_form_featured_img',
487
+ 'type' => 'checkbox',
488
+ ),
489
+ array(
490
+ 'name' => __( 'Disable Single Form Sidebar', 'give' ),
491
+ 'desc' => __( 'The sidebar allows you to add additional widget to the Give single form view. If you don\'t plan on using the sidebar you may disable it with this option.', 'give' ),
492
+ 'id' => 'disable_form_sidebar',
493
+ 'type' => 'checkbox',
494
+ ),
495
+ array(
496
+ 'name' => __( 'Taxonomies', 'give' ),
497
+ 'desc' => '',
498
+ 'id' => 'give_title_display_settings_3',
499
+ 'type' => 'give_title',
500
+ ),
501
+ array(
502
+ 'name' => __( 'Enable Form Categories', 'give' ),
503
+ 'desc' => __( 'Enables the "Category" taxonomy for all Give forms.', 'give' ),
504
+ 'id' => 'categories',
505
+ 'type' => 'checkbox',
506
+ ),
507
+ array(
508
+ 'name' => __( 'Enable Form Tags', 'give' ),
509
+ 'desc' => __( 'Enables the "Tag" taxonomy for all Give forms.', 'give' ),
510
+ 'id' => 'tags',
511
+ 'type' => 'checkbox',
512
+ ),
513
+ )
514
+ ),
515
+
516
+ ),
517
+ /**
518
+ * Emails Options
519
+ */
520
+ 'emails' => array(
521
+ 'id' => 'email_settings',
522
+ 'give_title' => __( 'Email Settings', 'give' ),
523
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
524
+ 'fields' => apply_filters( 'give_settings_emails', array(
525
+ array(
526
+ 'name' => __( 'Email Settings', 'give' ),
527
+ 'desc' => '',
528
+ 'id' => 'give_title_email_settings_1',
529
+ 'type' => 'give_title',
530
+ ),
531
+ array(
532
+ 'id' => 'email_template',
533
+ 'name' => __( 'Email Template', 'give' ),
534
+ 'desc' => __( 'Choose a template. Click "Save Changes" then "Preview Donation Receipt" to see the new template.', 'give' ),
535
+ 'type' => 'select',
536
+ 'options' => give_get_email_templates(),
537
+ ),
538
+ array(
539
+ 'id' => 'email_logo',
540
+ 'name' => __( 'Logo', 'give' ),
541
+ 'desc' => __( 'Upload or choose a logo to be displayed at the top of the donation receipt emails. Displayed on HTML emails only.', 'give' ),
542
+ 'type' => 'file',
543
+ ),
544
+ array(
545
+ 'id' => 'from_name',
546
+ 'name' => __( 'From Name', 'give' ),
547
+ 'desc' => __( 'The name that appears in the "From" field in donation receipt emails.', 'give' ),
548
+ 'default' => get_bloginfo( 'name' ),
549
+ 'type' => 'text',
550
+ ),
551
+ array(
552
+ 'id' => 'from_email',
553
+ 'name' => __( 'From Email', 'give' ),
554
+ 'desc' => __( 'Email to send donation receipts from. This will act as the "from" and "reply-to" address.', 'give' ),
555
+ 'default' => get_bloginfo( 'admin_email' ),
556
+ 'type' => 'text',
557
+ ),
558
+ array(
559
+ 'name' => __( 'Donation Receipt', 'give' ),
560
+ 'desc' => '',
561
+ 'id' => 'give_title_email_settings_2',
562
+ 'type' => 'give_title',
563
+ ),
564
+ array(
565
+ 'id' => 'donation_subject',
566
+ 'name' => __( 'Donation Email Subject', 'give' ),
567
+ 'desc' => __( 'Enter the subject line for the donation receipt email.', 'give' ),
568
+ 'default' => esc_attr__( 'Donation Receipt', 'give' ),
569
+ 'type' => 'text',
570
+ ),
571
+ array(
572
+ 'id' => 'donation_receipt',
573
+ 'name' => __( 'Donation Receipt', 'give' ),
574
+ 'desc' => sprintf(
575
+ /* translators: %s: emails tags list */
576
+ __( 'Enter the email that is sent to users after completing a successful donation. HTML is accepted. Available template tags: %s', 'give' ),
577
+ '<br/>' . give_get_emails_tags_list()
578
+ ),
579
+ 'type' => 'wysiwyg',
580
+ 'default' => give_get_default_donation_receipt_email(),
581
+ ),
582
+ array(
583
+ 'name' => __( 'New Donation Notification', 'give' ),
584
+ 'desc' => '',
585
+ 'id' => 'give_title_email_settings_3',
586
+ 'type' => 'give_title',
587
+ ),
588
+ array(
589
+ 'id' => 'donation_notification_subject',
590
+ 'name' => __( 'Donation Notification Subject', 'give' ),
591
+ 'desc' => __( 'Enter the subject line for the donation notification email.', 'give' ),
592
+ 'type' => 'text',
593
+ 'default' => esc_attr__( 'New Donation - #{payment_id}', 'give' ),
594
+ ),
595
+ array(
596
+ 'id' => 'donation_notification',
597
+ 'name' => __( 'Donation Notification', 'give' ),
598
+ 'desc' => sprintf(
599
+ /* translators: %s: emails tags list */
600
+ __( 'Enter the email that is sent to donation notification emails after completion of a donation. HTML is accepted. Available template tags: %s', 'give' ),
601
+ '<br/>' . give_get_emails_tags_list()
602
+ ),
603
+ 'type' => 'wysiwyg',
604
+ 'default' => give_get_default_donation_notification_email(),
605
+ ),
606
+ array(
607
+ 'id' => 'admin_notice_emails',
608
+ 'name' => __( 'Donation Notification Emails', 'give' ),
609
+ 'desc' => __( 'Enter the email address(es) that should receive a notification anytime a donation is made, please only enter <span class="give-underline">one email address per line</span> and <strong>not separated by commas</strong>.', 'give' ),
610
+ 'type' => 'textarea',
611
+ 'default' => get_bloginfo( 'admin_email' ),
612
+ ),
613
+ array(
614
+ 'id' => 'disable_admin_notices',
615
+ 'name' => __( 'Disable Admin Notifications', 'give' ),
616
+ 'desc' => __( 'Check this box if you do not want to receive emails when new donations are made.', 'give' ),
617
+ 'type' => 'checkbox',
618
+ ),
619
+ )
620
+ ),
621
+ ),
622
+ /** Extension Settings */
623
+ 'addons' => array(
624
+ 'id' => 'addons',
625
+ 'give_title' => __( 'Give Add-ons Settings', 'give' ),
626
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
627
+ 'fields' => apply_filters( 'give_settings_addons', array()
628
+ ),
629
+ ),
630
+ /** Licenses Settings */
631
+ 'licenses' => array(
632
+ 'id' => 'licenses',
633
+ 'give_title' => __( 'Give Licenses', 'give' ),
634
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
635
+ 'fields' => apply_filters( 'give_settings_licenses', array()
636
+ ),
637
+ ),
638
+ /** Advanced Options */
639
+ 'advanced' => array(
640
+ 'id' => 'advanced_options',
641
+ 'give_title' => __( 'Advanced Options', 'give' ),
642
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
643
+ 'fields' => apply_filters( 'give_settings_advanced', array(
644
+ array(
645
+ 'name' => __( 'Access Control', 'give' ),
646
+ 'desc' => '',
647
+ 'id' => 'give_title_session_control_1',
648
+ 'type' => 'give_title',
649
+ ),
650
+ array(
651
+ 'id' => 'session_lifetime',
652
+ 'name' => __( 'Session Lifetime', 'give' ),
653
+ 'desc' => __( 'The length of time a user\'s session is kept alive. Give starts a new session per user upon donation. Sessions allow donors to view their donation receipts without being logged in.', 'give' ),
654
+ 'type' => 'select',
655
+ 'options' => array(
656
+ '86400' => __( '24 Hours', 'give' ),
657
+ '172800' => __( '48 Hours', 'give' ),
658
+ '259200' => __( '72 Hours', 'give' ),
659
+ '604800' => __( '1 Week', 'give' ),
660
+ ),
661
+ ),
662
+ array(
663
+ 'name' => __( 'Email Access', 'give' ),
664
+ 'desc' => __( 'Would you like your donors to be able to access their donation history using only email? Donors whose sessions have expired and do not have an account may still access their donation history via a temporary email access link.', 'give' ),
665
+ 'id' => 'email_access',
666
+ 'type' => 'checkbox',
667
+ ),
668
+ array(
669
+ 'id' => 'recaptcha_key',
670
+ 'name' => __( 'reCAPTCHA Site Key', 'give' ),
671
+ /* translators: %s: https://www.google.com/recaptcha/ */
672
+ 'desc' => sprintf( __( 'If you would like to prevent spam on the email access form navigate to <a href="%s" target="_blank">the reCAPTCHA website</a> and sign up for an API key. The reCAPTCHA uses Google\'s user-friendly single click verification method.', 'give' ), esc_url( 'https://www.google.com/recaptcha/' ) ),
673
+ 'default' => '',
674
+ 'type' => 'text',
675
+ ),
676
+ array(
677
+ 'id' => 'recaptcha_secret',
678
+ 'name' => __( 'reCAPTCHA Secret Key', 'give' ),
679
+ 'desc' => __( 'Please paste the reCAPTCHA secret key here from your manage reCAPTCHA API Keys panel.', 'give' ),
680
+ 'default' => '',
681
+ 'type' => 'text',
682
+ ),
683
+ array(
684
+ 'name' => __( 'Data Control', 'give' ),
685
+ 'desc' => '',
686
+ 'id' => 'give_title_data_control_2',
687
+ 'type' => 'give_title',
688
+ ),
689
+ array(
690
+ 'name' => __( 'Remove All Data on Uninstall?', 'give' ),
691
+ 'desc' => __( 'When the plugin is deleted, completely remove all Give data.', 'give' ),
692
+ 'id' => 'uninstall_on_delete',
693
+ 'type' => 'checkbox',
694
+ ),
695
+ array(
696
+ 'name' => __( 'Filter Control', 'give' ),
697
+ 'desc' => '',
698
+ 'id' => 'give_title_filter_control',
699
+ 'type' => 'give_title',
700
+ ),
701
+ array(
702
+ /* translators: %s: the_content */
703
+ 'name' => sprintf( __( 'Disable %s filter', 'give' ), '<code>the_content</code>' ),
704
+ /* translators: 1: https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content 2: the_content */
705
+ 'desc' => sprintf( __( 'If you are seeing extra social buttons, related posts, or other unwanted elements appearing within your forms then you can disable WordPress\' content filter. <a href="%1$s" target="_blank">Learn more</a> about %2$s filter.', 'give' ), esc_url( 'https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content' ), '<code>the_content</code>' ),
706
+ 'id' => 'disable_the_content_filter',
707
+ 'type' => 'checkbox',
708
+ ),
709
+ array(
710
+ 'name' => __( 'Script Loading', 'give' ),
711
+ 'desc' => '',
712
+ 'id' => 'give_title_script_control',
713
+ 'type' => 'give_title',
714
+ ),
715
+ array(
716
+ 'name' => __( 'Load Scripts in Footer?', 'give' ),
717
+ 'desc' => __( 'Check this box if you would like Give to load all frontend JavaScript files in the footer.', 'give' ),
718
+ 'id' => 'scripts_footer',
719
+ 'type' => 'checkbox',
720
+ ),
721
+ )
722
+ ),
723
+ ),
724
+ /** API Settings */
725
+ 'api' => array(
726
+ 'id' => 'api',
727
+ 'give_title' => __( 'API', 'give' ),
728
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
729
+ 'show_names' => false, // Hide field names on the left
730
+ 'fields' => apply_filters( 'give_settings_system', array(
731
+ array(
732
+ 'id' => 'api',
733
+ 'name' => __( 'API', 'give' ),
734
+ 'type' => 'api',
735
+ ),
736
+ )
737
+ ),
738
+ ),
739
+ /** Licenses Settings */
740
+ 'system_info' => array(
741
+ 'id' => 'system_info',
742
+ 'give_title' => __( 'System Info', 'give' ),
743
+ 'show_on' => array( 'key' => 'options-page', 'value' => array( $this->key ) ),
744
+ 'fields' => apply_filters( 'give_settings_system', array(
745
+ array(
746
+ 'id' => 'system-info-textarea',
747
+ 'name' => __( 'System Info', 'give' ),
748
+ 'desc' => __( 'Please copy and paste this information in your ticket when contacting support.', 'give' ),
749
+ 'type' => 'system_info',
750
+ ),
751
+ )
752
+ ),
753
+ ),
754
+ );
755
+
756
+ $give_settings = apply_filters( 'give_registered_settings', $give_settings );
757
+
758
+ // Return all settings array if no active tab
759
+ if ( empty( $active_tab ) || ! isset( $give_settings[ $active_tab ] ) ) {
760
+ return $give_settings;
761
+ }
762
+
763
+ // Add other tabs and settings fields as needed
764
+ return $give_settings[ $active_tab ];
765
+
766
+ }
767
+
768
+ /**
769
+ * Show Settings Notices
770
+ */
771
+ public function settings_notices() {
772
+
773
+ if ( ! isset( $_POST['give_settings_saved'] ) ) {
774
+ return;
775
+ }
776
+
777
+ add_settings_error( 'give-notices', 'global-settings-updated', __( 'Settings updated.', 'give' ), 'updated' );
778
+
779
+ }
780
+
781
+
782
+ /**
783
+ * Public getter method for retrieving protected/private variables
784
+ *
785
+ * @since 1.0
786
+ *
787
+ * @param string $field Field to retrieve
788
+ *
789
+ * @return mixed Field value or exception is thrown.
790
+ * @throws Exception Throws an exception if the field is invalid.
791
+ */
792
+ public function __get( $field ) {
793
+
794
+ // Allowed fields to retrieve
795
+ if ( in_array( $field, array( 'key', 'fields', 'give_title', 'options_page' ), true ) ) {
796
+ return $this->{$field};
797
+ }
798
+
799
+ throw new Exception( sprintf( __( 'Invalid property: %s', 'give' ), $field ) );
800
+ }
801
+
802
+
803
+ }
804
+
805
+ // Get it started
806
+ $Give_Settings = new Give_Plugin_Settings();
807
+
808
+ /**
809
+ * Helps get a single option from the give_get_settings() array.
810
+ *
811
+ * @since 0.1.0
812
+ *
813
+ * @param string $key Options array key
814
+ * @param string|bool $default The default option if the option isn't set
815
+ *
816
+ * @return mixed Option value
817
+ */
818
+ function give_get_option( $key = '', $default = false ) {
819
+ $give_options = give_get_settings();
820
+ $value = ! empty( $give_options[ $key ] ) ? $give_options[ $key ] : $default;
821
+ $value = apply_filters( 'give_get_option', $value, $key, $default );
822
+
823
+ return apply_filters( "give_get_option_{$key}", $value, $key, $default );
824
+ }
825
+
826
+
827
+ /**
828
+ * Update an option
829
+ *
830
+ * Updates an give setting value in both the db and the global variable.
831
+ * Warning: Passing in an empty, false or null string value will remove
832
+ * the key from the give_options array.
833
+ *
834
+ * @since 1.0
835
+ *
836
+ * @param string $key The Key to update
837
+ * @param string|bool|int $value The value to set the key to
838
+ *
839
+ * @return boolean True if updated, false if not.
840
+ */
841
+ function give_update_option( $key = '', $value = false ) {
842
+
843
+ // If no key, exit
844
+ if ( empty( $key ) ) {
845
+ return false;
846
+ }
847
+
848
+ if ( empty( $value ) ) {
849
+ $remove_option = give_delete_option( $key );
850
+
851
+ return $remove_option;
852
+ }
853
+
854
+ // First let's grab the current settings
855
+ $options = get_option( 'give_settings' );
856
+
857
+ // Let's let devs alter that value coming in
858
+ $value = apply_filters( 'give_update_option', $value, $key );
859
+
860
+ // Next let's try to update the value
861
+ $options[ $key ] = $value;
862
+ $did_update = update_option( 'give_settings', $options );
863
+
864
+ // If it updated, let's update the global variable
865
+ if ( $did_update ) {
866
+ global $give_options;
867
+ $give_options[ $key ] = $value;
868
+ }
869
+
870
+ return $did_update;
871
+ }
872
+
873
+ /**
874
+ * Remove an option
875
+ *
876
+ * Removes an give setting value in both the db and the global variable.
877
+ *
878
+ * @since 1.0
879
+ *
880
+ * @global $give_options
881
+ *
882
+ * @param string $key The Key to delete
883
+ *
884
+ * @return boolean True if updated, false if not.
885
+ */
886
+ function give_delete_option( $key = '' ) {
887
+
888
+ // If no key, exit
889
+ if ( empty( $key ) ) {
890
+ return false;
891
+ }
892
+
893
+ // First let's grab the current settings
894
+ $options = get_option( 'give_settings' );
895
+
896
+ // Next let's try to update the value
897
+ if ( isset( $options[ $key ] ) ) {
898
+ unset( $options[ $key ] );
899
+ }
900
+
901
+ $did_update = update_option( 'give_settings', $options );
902
+
903
+ // If it updated, let's update the global variable
904
+ if ( $did_update ) {
905
+ global $give_options;
906
+ $give_options = $options;
907
+ }
908
+
909
+ return $did_update;
910
+ }
911
+
912
+
913
+ /**
914
+ * Get Settings
915
+ *
916
+ * Retrieves all Give plugin settings
917
+ *
918
+ * @since 1.0
919
+ * @return array Give settings
920
+ */
921
+ function give_get_settings() {
922
+
923
+ $settings = get_option( 'give_settings' );
924
+
925
+ return (array) apply_filters( 'give_get_settings', $settings );
926
+
927
+ }
928
+
929
+
930
+ /**
931
+ * Give Settings Array Insert.
932
+ *
933
+ * Allows other Add-ons and plugins to insert Give settings at a desired position.
934
+ *
935
+ * @since 1.3.5
936
+ *
937
+ * @param $array
938
+ * @param $position |int|string Expects an array key or 'id' of the settings field to appear after
939
+ * @param $insert |array a valid array of options to insert
940
+ *
941
+ * @return array
942
+ */
943
+ function give_settings_array_insert( $array, $position, $insert ) {
944
+ if ( is_int( $position ) ) {
945
+ array_splice( $array, $position, 0, $insert );
946
+ } else {
947
+
948
+ foreach ( $array as $index => $subarray ) {
949
+ if ( isset( $subarray['id'] ) && $subarray['id'] == $position ) {
950
+ $pos = $index;
951
+ }
952
+ }
953
+
954
+ if ( ! isset( $pos ) ) {
955
+ return $array;
956
+ }
957
+
958
+ $array = array_merge(
959
+ array_slice( $array, 0, $pos ),
960
+ $insert,
961
+ array_slice( $array, $pos )
962
+ );
963
+ }
964
+
965
+ return $array;
966
+ }
967
+
968
+
969
+ /**
970
+ * Gateways Callback
971
+ *
972
+ * Renders gateways fields.
973
+ *
974
+ * @since 1.0
975
+ *
976
+ * @param array $field_arr
977
+ * @param array $saved_values
978
+ *
979
+ * @return void
980
+ */
981
+ function give_enabled_gateways_callback( $field_arr, $saved_values = array() ) {
982
+
983
+ $id = $field_arr['id'];
984
+ $gateways = give_get_ordered_payment_gateways( give_get_payment_gateways() );
985
+
986
+ echo '<ul class="give-checklist-fields give-payment-gatways-list">';
987
+
988
+ foreach ( $gateways as $key => $option ) :
989
+
990
+ if ( is_array( $saved_values ) && array_key_exists( $key, $saved_values ) ) {
991
+ $enabled = '1';
992
+ } else {
993
+ $enabled = null;
994
+ }
995
+
996
+ echo '<li><span class="give-drag-handle"><span class="dashicons dashicons-menu"></span></span><input name="' . $id . '[' . $key . ']" id="' . $id . '[' . $key . ']" type="checkbox" value="1" ' . checked( '1', $enabled, false ) . '/>&nbsp;';
997
+ echo '<label for="' . $id . '[' . $key . ']">' . $option['admin_label'] . '</label></li>';
998
+
999
+ endforeach;
1000
+
1001
+ echo '</ul>';
1002
+ }
1003
+
1004
+ /**
1005
+ * Gateways Callback (drop down)
1006
+ *
1007
+ * Renders gateways select menu
1008
+ *
1009
+ * @since 1.0
1010
+ *
1011
+ * @param array $field_arr
1012
+ * @param array $saved_value
1013
+ *
1014
+ * @return void
1015
+ */
1016
+ function give_default_gateway_callback( $field_arr, $saved_value ) {
1017
+ $id = $field_arr['id'];
1018
+ $gateways = give_get_enabled_payment_gateways();
1019
+ $saved_value = give_get_default_gateway( null );
1020
+
1021
+ echo '<select class="give-select" name="' . $id . '" id="' . $id . '">';
1022
+
1023
+ foreach ( $gateways as $key => $option ) :
1024
+ $selected = isset( $saved_value ) ? selected( $key, $saved_value, false ) : '';
1025
+ echo '<option value="' . esc_attr( $key ) . '"' . $selected . '>' . esc_html( $option['admin_label'] ) . '</option>';
1026
+ endforeach;
1027
+
1028
+ echo '</select>';
1029
+
1030
+ }
1031
+
1032
+ /**
1033
+ * Give Title
1034
+ *
1035
+ * Renders custom section titles output; Really only an because CMB2's output is a bit funky
1036
+ *
1037
+ * @since 1.0
1038
+ *
1039
+ * @param $field_object , $escaped_value, $object_id, $object_type, $field_type_object
1040
+ *
1041
+ * @return void
1042
+ */
1043
+ function give_title_callback( $field_object, $escaped_value, $object_id, $object_type, $field_type_object ) {
1044
+
1045
+ $id = $field_type_object->field->args['id'];
1046
+ $title = $field_type_object->field->args['name'];
1047
+ $field_description = $field_type_object->field->args['desc'];
1048
+
1049
+ echo '<hr>' . $field_description;
1050
+
1051
+ }
1052
+
1053
+ /**
1054
+ * Give Description
1055
+ *
1056
+ * Renders custom description text which any plugin can use to output content, html, php, etc.
1057
+ *
1058
+ * @since 1.3.5
1059
+ *
1060
+ * @param $field_object , $escaped_value, $object_id, $object_type, $field_type_object
1061
+ *
1062
+ * @return void
1063
+ */
1064
+ function give_description_callback( $field_object, $escaped_value, $object_id, $object_type, $field_type_object ) {
1065
+
1066
+ $id = $field_type_object->field->args['id'];
1067
+ $title = $field_type_object->field->args['name'];
1068
+ $field_description = $field_type_object->field->args['desc'];
1069
+
1070
+ echo $field_description;
1071
+
1072
+ }
1073
+
1074
+ /**
1075
+ * Gets a number of posts and displays them as options
1076
+ *
1077
+ * @param array $query_args Optional. Overrides defaults.
1078
+ * @param bool $force Force the pages to be loaded even if not on settings
1079
+ *
1080
+ * @see: https://github.com/WebDevStudios/CMB2/wiki/Adding-your-own-field-types
1081
+ * @return array An array of options that matches the CMB2 options array
1082
+ */
1083
+ function give_cmb2_get_post_options( $query_args, $force = false ) {
1084
+
1085
+ $post_options = array( '' => '' ); // Blank option
1086
+
1087
+ if ( ( ! isset( $_GET['page'] ) || 'give-settings' != $_GET['page'] ) && ! $force ) {
1088
+ return $post_options;
1089
+ }
1090
+
1091
+ $args = wp_parse_args( $query_args, array(
1092
+ 'post_type' => 'page',
1093
+ 'numberposts' => 10,
1094
+ ) );
1095
+
1096
+ $posts = get_posts( $args );
1097
+
1098
+ if ( $posts ) {
1099
+ foreach ( $posts as $post ) {
1100
+
1101
+ $post_options[ $post->ID ] = $post->post_title;
1102
+
1103
+ }
1104
+ }
1105
+
1106
+ return $post_options;
1107
+ }
1108
+
1109
+
1110
+ /**
1111
+ * Featured Image Sizes
1112
+ *
1113
+ * Outputs an array for the "Featured Image Size" option found under Settings > Display Options.
1114
+ *
1115
+ * @since 1.4
1116
+ *
1117
+ * @global $_wp_additional_image_sizes
1118
+ *
1119
+ * @return array $sizes
1120
+ */
1121
+ function give_get_featured_image_sizes() {
1122
+ global $_wp_additional_image_sizes;
1123
+ $sizes = array();
1124
+ $get_sizes = get_intermediate_image_sizes();
1125
+
1126
+ // check whether intermediate image sizes exist first
1127
+ if ( empty( $get_sizes ) ) {
1128
+ $get_sizes = array( 'thumbnail', 'medium', 'medium_large', 'large' );
1129
+ }
1130
+
1131
+ foreach ( $get_sizes as $_size ) {
1132
+
1133
+ if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
1134
+ $sizes[ $_size ] = $_size . ' - ' . get_option( "{$_size}_size_w" ) . 'x' . get_option( "{$_size}_size_h" );
1135
+ } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
1136
+ $sizes[ $_size ] = $_size . ' - ' . $_wp_additional_image_sizes[ $_size ]['width'] . 'x' . $_wp_additional_image_sizes[ $_size ]['height'];
1137
+ }
1138
+ }
1139
+
1140
+ return apply_filters( 'give_get_featured_image_sizes', $sizes );
1141
+ }
1142
+
1143
+
1144
+ /**
1145
+ * Give License Key Callback
1146
+ *
1147
+ * Registers the license field callback for EDD's Software Licensing.
1148
+ *
1149
+ * @since 1.0
1150
+ *
1151
+ * @param array $field_object , $escaped_value, $object_id, $object_type, $field_type_object Arguments passed by CMB2
1152
+ *
1153
+ * @return void
1154
+ */
1155
+ function give_license_key_callback( $field_object, $escaped_value, $object_id, $object_type, $field_type_object ) {
1156
+ /* @var CMB2_Types $field_type_object */
1157
+
1158
+ $id = $field_type_object->field->args['id'];
1159
+ $field_description = $field_type_object->field->args['desc'];
1160
+ $license = $field_type_object->field->args['options']['license'];
1161
+ $license_key = $escaped_value;
1162
+ $is_license_key = apply_filters( 'give_is_license_key', ( is_object( $license ) && ! empty( $license ) ) );
1163
+ $is_valid_license = apply_filters( 'give_is_valid_license', ( $is_license_key && property_exists( $license, 'license' ) && 'valid' === $license->license ) );
1164
+ $shortname = $field_type_object->field->args['options']['shortname'];
1165
+ $field_classes = 'regular-text give-license-field';
1166
+ $type = empty( $escaped_value ) || ! $is_valid_license ? 'text' : 'password';
1167
+ $custom_html = '';
1168
+ $messages = array();
1169
+ $class = '';
1170
+ $account_page_link = $field_type_object->field->args['options']['account_url'];
1171
+ $checkout_page_link = $field_type_object->field->args['options']['checkout_url'];
1172
+ $addon_name = $field_type_object->field->args['options']['item_name'];
1173
+ $license_status = null;
1174
+ $is_in_subscription = null;
1175
+
1176
+ // By default query on edd api url will return license object which contain status and message property, this can break below functionality.
1177
+ // To combat that check if status is set to error or not, if yes then set $is_license_key to false.
1178
+ if ( $is_license_key && property_exists( $license, 'status' ) && 'error' === $license->status ) {
1179
+ $is_license_key = false;
1180
+ }
1181
+
1182
+ // Check if current license is part of subscription or not.
1183
+ $subscriptions = get_option( 'give_subscriptions' );
1184
+
1185
+ if ( $is_license_key && $subscriptions ) {
1186
+ foreach ( $subscriptions as $subscription ) {
1187
+ if ( in_array( $license_key, $subscription['licenses'] ) ) {
1188
+ $is_in_subscription = $subscription['id'];
1189
+ break;
1190
+ }
1191
+ }
1192
+ }
1193
+
1194
+ if ( $is_license_key ) {
1195
+ if ( $is_in_subscription ) {
1196
+ $subscription_expires = strtotime( $subscriptions[ $is_in_subscription ]['expires'] );
1197
+ $subscription_status = __( 'renew', 'give' );
1198
+
1199
+ if ( ( 'active' !== $subscriptions[ $is_in_subscription ]['status'] ) ) {
1200
+ $subscription_status = __( 'expire', 'give' );
1201
+ }
1202
+
1203
+ if ( $subscription_expires < current_time( 'timestamp', 1 ) ) {
1204
+ $messages[] = sprintf(
1205
+ __( 'Your subscription (<a href="%1$s" target="_blank">#%2$d</a>) expired. Please <a href="%3$s" target="_blank" title="Renew your license key">renew your license key</a>', 'give' ),
1206
+ urldecode( $subscriptions[ $is_in_subscription ]['invoice_url'] ),
1207
+ $subscriptions[ $is_in_subscription ]['payment_id'],
1208
+ $checkout_page_link . '?edd_license_key=' . $subscriptions[ $is_in_subscription ]['license_key'] . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired'
1209
+ );
1210
+ $license_status = 'license-expired';
1211
+ } elseif ( strtotime( '- 7 days', $subscription_expires ) < current_time( 'timestamp', 1 ) ) {
1212
+ $messages[] = sprintf(
1213
+ __( 'Your subscription (<a href="%1$s" target="_blank">#%2$d</a>) will %3$s in %4$s.', 'give' ),
1214
+ urldecode( $subscriptions[ $is_in_subscription ]['invoice_url'] ),
1215
+ $subscriptions[ $is_in_subscription ]['payment_id'],
1216
+ $subscription_status,
1217
+ human_time_diff( current_time( 'timestamp', 1 ), strtotime( $subscriptions[ $is_in_subscription ]['expires'] ) )
1218
+ );
1219
+ $license_status = 'license-expires-soon';
1220
+ } else {
1221
+ $messages[] = sprintf(
1222
+ __( 'Your subscription (<a href="%1$s" target="_blank">#%2$d</a>) will %3$s on %4$s.', 'give' ),
1223
+ urldecode( $subscriptions[ $is_in_subscription ]['invoice_url'] ),
1224
+ $subscriptions[ $is_in_subscription ]['payment_id'],
1225
+ $subscription_status,
1226
+ date_i18n( get_option( 'date_format' ), strtotime( $subscriptions[ $is_in_subscription ]['expires'], current_time( 'timestamp' ) ) )
1227
+ );
1228
+ $license_status = 'license-expiration-date';
1229
+ }
1230
+ } elseif ( empty( $license->success ) && property_exists( $license, 'error' ) ) {
1231
+
1232
+ // activate_license 'invalid' on anything other than valid, so if there was an error capture it
1233
+ switch ( $license->error ) {
1234
+ case 'expired' :
1235
+ $class = $license->error;
1236
+ $messages[] = sprintf(
1237
+ __( 'Your license key expired on %1$s. Please <a href="%2$s" target="_blank" title="Renew your license key">renew your license key</a>.', 'give' ),
1238
+ date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ),
1239
+ $checkout_page_link . '?edd_license_key=' . $license_key . '&utm_campaign=admin&utm_source=licenses&utm_medium=expired'
1240
+ );
1241
+ $license_status = 'license-' . $class;
1242
+ break;
1243
+
1244
+ case 'missing' :
1245
+ $class = $license->error;
1246
+ $messages[] = sprintf(
1247
+ __( 'Invalid license. Please <a href="%s" target="_blank" title="Visit account page">visit your account page</a> and verify it.', 'give' ),
1248
+ $account_page_link . '?utm_campaign=admin&utm_source=licenses&utm_medium=missing'
1249
+ );
1250
+ $license_status = 'license-' . $class;
1251
+ break;
1252
+
1253
+ case 'invalid' :
1254
+ $class = $license->error;
1255
+ $messages[] = sprintf(
1256
+ __( 'Your %1$s is not active for this URL. Please <a href="%2$s" target="_blank" title="Visit account page">visit your account page</a> to manage your license key URLs.', 'give' ),
1257
+ $addon_name,
1258
+ $account_page_link . '?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
1259
+ );
1260
+ $license_status = 'license-' . $class;
1261
+ break;
1262
+
1263
+ case 'site_inactive' :
1264
+ $class = $license->error;
1265
+ $messages[] = sprintf(
1266
+ __( 'Your %1$s is not active for this URL. Please <a href="%2$s" target="_blank" title="Visit account page">visit your account page</a> to manage your license key URLs.', 'give' ),
1267
+ $addon_name,
1268
+ $account_page_link . '?utm_campaign=admin&utm_source=licenses&utm_medium=invalid'
1269
+ );
1270
+ $license_status = 'license-' . $class;
1271
+ break;
1272
+
1273
+ case 'item_name_mismatch' :
1274
+ $class = $license->error;
1275
+ $messages[] = sprintf( __( 'This license %1$s does not belong to %2$s.', 'give' ), $license_key, $addon_name );
1276
+ $license_status = 'license-' . $class;
1277
+ break;
1278
+
1279
+ case 'no_activations_left':
1280
+ $class = $license->error;
1281
+ $messages[] = sprintf( __( 'Your license key has reached it\'s activation limit. <a href="%s">View possible upgrades</a> now.', 'give' ), $account_page_link );
1282
+ $license_status = 'license-' . $class;
1283
+ break;
1284
+ }
1285
+ } else {
1286
+ switch ( $license->license ) {
1287
+ case 'valid' :
1288
+ default:
1289
+ $class = 'valid';
1290
+ $now = current_time( 'timestamp' );
1291
+ $expiration = strtotime( $license->expires, current_time( 'timestamp' ) );
1292
+
1293
+ if ( 'lifetime' === $license->expires ) {
1294
+ $messages[] = __( 'License key never expires.', 'give' );
1295
+ $license_status = 'license-lifetime-notice';
1296
+ } elseif ( $expiration > $now && $expiration - $now < ( DAY_IN_SECONDS * 30 ) ) {
1297
+ $messages[] = sprintf(
1298
+ __( 'Your license key expires soon! It expires on %1$s. <a href="%2$s" target="_blank" title="Renew license">Renew your license key</a>.', 'give' ),
1299
+ date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) ),
1300
+ $checkout_page_link . '?edd_license_key=' . $license_key . '&utm_campaign=admin&utm_source=licenses&utm_medium=renew'
1301
+ );
1302
+ $license_status = 'license-expires-soon';
1303
+ } else {
1304
+ $messages[] = sprintf(
1305
+ __( 'Your license key expires on %s.', 'give' ),
1306
+ date_i18n( get_option( 'date_format' ), strtotime( $license->expires, current_time( 'timestamp' ) ) )
1307
+ );
1308
+ $license_status = 'license-expiration-date';
1309
+ }
1310
+ break;
1311
+ }
1312
+ }
1313
+ } else {
1314
+ $messages[] = sprintf(
1315
+ __( 'To receive updates, please enter your valid %s license key.', 'give' ),
1316
+ $addon_name
1317
+ );
1318
+ $license_status = 'inactive';
1319
+ }
1320
+
1321
+ // Add class for input field if license is active.
1322
+ if ( $is_valid_license ) {
1323
+ $field_classes .= ' give-license-active';
1324
+ }
1325
+
1326
+ // Get input field html.
1327
+ $input_field_html = "<input type=\"{$type}\" name=\"{$id}\" class=\"{$field_classes}\" value=\"{$license_key}\">";
1328
+
1329
+ // If license is active so show deactivate button.
1330
+ if ( $is_valid_license ) {
1331
+ // Get input field html.
1332
+ $input_field_html = "<input type=\"{$type}\" name=\"{$id}\" class=\"{$field_classes}\" value=\"{$license_key}\" readonly=\"readonly\">";
1333
+
1334
+ $custom_html = '<input type="submit" class="button button-small give-license-deactivate" name="' . $id . '_deactivate" value="' . esc_attr__( 'Deactivate License', 'give' ) . '"/>';
1335
+
1336
+ }
1337
+
1338
+ // Field description.
1339
+ $custom_html .= '<label for="give_settings[' . $id . ']"> ' . $field_description . '</label>';
1340
+
1341
+ // If no messages found then inform user that to get updated in future register yourself.
1342
+ if ( empty( $messages ) ) {
1343
+ $messages[] = apply_filters( "{$shortname}_default_addon_notice", __( 'To receive updates, please enter your valid license key.', 'give' ) );
1344
+ }
1345
+
1346
+ foreach ( $messages as $message ) {
1347
+ $custom_html .= '<div class="give-license-status-notice give-' . $license_status . '">';
1348
+ $custom_html .= '<p>' . $message . '</p>';
1349
+ $custom_html .= '</div>';
1350
+ }
1351
+
1352
+ // Field html.
1353
+ $custom_html = apply_filters( 'give_license_key_field_html', $input_field_html . $custom_html, $field_type_object );
1354
+
1355
+ // Nonce.
1356
+ wp_nonce_field( $id . '-nonce', $id . '-nonce' );
1357
+
1358
+ // Print field html.
1359
+ echo "<div class=\"give-license-key\"><label for=\"{$id}\">{$addon_name }</label></div><div class=\"give-license-block\">{$custom_html}</div>";
1360
+ }
1361
+
1362
+
1363
+ /**
1364
+ * Display the API Keys
1365
+ *
1366
+ * @since 1.0
1367
+ * @return void
1368
+ */
1369
+ function give_api_callback() {
1370
+
1371
+ if ( ! current_user_can( 'manage_give_settings' ) ) {
1372
+ return;
1373
+ }
1374
+
1375
+ /**
1376
+ * Fires before displaying API keys.
1377
+ *
1378
+ * @since 1.0
1379
+ */
1380
+ do_action( 'give_tools_api_keys_before' );
1381
+
1382
+ require_once GIVE_PLUGIN_DIR . 'includes/admin/class-api-keys-table.php';
1383
+
1384
+ $api_keys_table = new Give_API_Keys_Table();
1385
+ $api_keys_table->prepare_items();
1386
+ $api_keys_table->display();
1387
+ ?>
1388
+ <span class="cmb2-metabox-description api-description">
1389
+ <?php echo sprintf(
1390
+ /* translators: 1: http://docs.givewp.com/api 2: http://docs.givewp.com/addon-zapier */
1391
+ __( 'You can create API keys for individual users within their profile edit screen. API keys allow users to use the <a href="%1$s" target="_blank">Give REST API</a> to retrieve donation data in JSON or XML for external applications or devices, such as <a href="%2$s" target="_blank">Zapier</a>.', 'give' ),
1392
+ esc_url( 'http://docs.givewp.com/api' ),
1393
+ esc_url( 'http://docs.givewp.com/addon-zapier' )
1394
+ ); ?>
1395
+ </span>
1396
+ <?php
1397
+
1398
+ /**
1399
+ * Fires after displaying API keys.
1400
+ *
1401
+ * @since 1.0
1402
+ */
1403
+ do_action( 'give_tools_api_keys_after' );
1404
+ }
1405
+
1406
+ add_action( 'give_settings_tab_api_keys', 'give_api_callback' );
1407
+
1408
+ /**
1409
+ * Hook Callback
1410
+ *
1411
+ * Adds a do_action() hook in place of the field.
1412
+ *
1413
+ * @since 1.0
1414
+ *
1415
+ * @param array $args Arguments passed by the setting
1416
+ *
1417
+ * @return void
1418
+ */
1419
+ function give_hook_callback( $args ) {
1420
+
1421
+ $id = $args['id'];
1422
+
1423
+ /**
1424
+ * Fires in give field.
1425
+ *
1426
+ * @since 1.0
1427
+ */
1428
+ do_action( "give_{$id}" );
1429
+
1430
+ }
1431
+
1432
+
1433
+ /**
1434
+ * Check if radio(enabled/disabled) and checkbox(on) is active or not.
1435
+ *
1436
+ * @since 1.8
1437
+ *
1438
+ * @param string $value
1439
+ * @param string $compare_with
1440
+ *
1441
+ * @return bool
1442
+ */
1443
+ function give_is_setting_enabled( $value, $compare_with = null ) {
1444
+ if ( ! is_null( $compare_with ) ) {
1445
+
1446
+ if ( is_array( $compare_with ) ) {
1447
+ // Output.
1448
+ return in_array( $value, $compare_with );
1449
+ }
1450
+
1451
+ // Output.
1452
+ return ( $value === $compare_with );
1453
+ }
1454
+
1455
+ // Backward compatibility: From version 1.8 most of setting is modified to enabled/disabled
1456
+ // Output.
1457
+ return ( in_array( $value, array( 'enabled', 'on', 'yes' ) ) ? true : false );
1458
+ }
 
 
 
includes/admin/class-i18n-module.php CHANGED
@@ -107,11 +107,11 @@ class Give_i18n_Banner {
107
  * @return bool
108
  */
109
  private function hide_promo() {
110
- $hide_promo = get_transient( 'give_i18n_give_promo_hide' );
111
  if ( ! $hide_promo ) {
112
  if ( filter_input( INPUT_GET, 'remove_i18n_promo', FILTER_VALIDATE_INT ) === 1 ) {
113
  // No expiration time, so this would normally not expire, but it wouldn't be copied to other sites etc.
114
- set_transient( 'give_i18n_give_promo_hide', true );
115
  $hide_promo = true;
116
  }
117
  }
@@ -242,11 +242,11 @@ class Give_i18n_Banner {
242
  */
243
  private function find_or_initialize_translation_details() {
244
 
245
- $set = get_transient( 'give_i18n_give_' . $this->locale );
246
 
247
  if ( ! $set ) {
248
  $set = $this->retrieve_translation_details();
249
- set_transient( 'give_i18n_give_' . $this->locale, $set, DAY_IN_SECONDS );
250
  }
251
 
252
  return $set;
107
  * @return bool
108
  */
109
  private function hide_promo() {
110
+ $hide_promo = Give_Cache::get( 'give_i18n_give_promo_hide', true );
111
  if ( ! $hide_promo ) {
112
  if ( filter_input( INPUT_GET, 'remove_i18n_promo', FILTER_VALIDATE_INT ) === 1 ) {
113
  // No expiration time, so this would normally not expire, but it wouldn't be copied to other sites etc.
114
+ Give_Cache::set( 'give_i18n_give_promo_hide', true, null, true );
115
  $hide_promo = true;
116
  }
117
  }
242
  */
243
  private function find_or_initialize_translation_details() {
244
 
245
+ $set = Give_Cache::get( "give_i18n_give_{$this->locale}", true );
246
 
247
  if ( ! $set ) {
248
  $set = $this->retrieve_translation_details();
249
+ Give_Cache::set( "give_i18n_give_{$this->locale}", $set, DAY_IN_SECONDS, true );
250
  }
251
 
252
  return $set;
includes/admin/customers/customer-actions.php CHANGED
@@ -595,7 +595,7 @@ function give_set_donor_primary_email() {
595
  $url = add_query_arg( 'give-message', 'primary-email-updated', admin_url( 'edit.php?post_type=give_forms&page=give-donors&view=overview&id=' . $donor->id ) );
596
  $user = wp_get_current_user();
597
  $user_login = ! empty( $user->user_login ) ? $user->user_login : esc_html__( 'System', 'give' );
598
- $donor_note = sprintf( __( 'Email address %1$s set as primary by %1$s', 'give' ), $_GET['email'], $user_login );
599
 
600
  $donor->add_note( $donor_note );
601
  } else {
595
  $url = add_query_arg( 'give-message', 'primary-email-updated', admin_url( 'edit.php?post_type=give_forms&page=give-donors&view=overview&id=' . $donor->id ) );
596
  $user = wp_get_current_user();
597
  $user_login = ! empty( $user->user_login ) ? $user->user_login : esc_html__( 'System', 'give' );
598
+ $donor_note = sprintf( __( 'Email address %1$s set as primary by %2$s', 'give' ), $_GET['email'], $user_login );
599
 
600
  $donor->add_note( $donor_note );
601
  } else {
includes/admin/payments/class-payments-table.php CHANGED
@@ -139,22 +139,26 @@ class Give_Payment_History_Table extends WP_List_Table {
139
  $end_date = isset( $_GET['end-date'] ) ? sanitize_text_field( $_GET['end-date'] ) : null;
140
  $status = isset( $_GET['status'] ) ? $_GET['status'] : '';
141
  ?>
142
- <div id="give-payment-filters">
143
  <span id="give-payment-date-filters">
144
- <label for="start-date" class="give-start-date-label"><?php esc_html_e( 'Start Date:', 'give' ); ?></label>
145
- <input type="text" id="start-date" name="start-date" class="give_datepicker" value="<?php echo $start_date; ?>" placeholder="mm/dd/yyyy"/>
 
 
146
  <label for="end-date" class="give-end-date-label"><?php esc_html_e( 'End Date:', 'give' ); ?></label>
147
- <input type="text" id="end-date" name="end-date" class="give_datepicker" value="<?php echo $end_date; ?>" placeholder="mm/dd/yyyy"/>
 
148
  <input type="submit" class="button-secondary" value="<?php esc_attr_e( 'Apply', 'give' ); ?>"/>
149
  </span>
150
  <?php if ( ! empty( $status ) ) : ?>
151
- <input type="hidden" name="status" value="<?php echo esc_attr( $status ); ?>"/>
152
  <?php endif; ?>
153
  <?php if ( ! empty( $start_date ) || ! empty( $end_date ) ) : ?>
154
- <a href="<?php echo admin_url( 'edit.php?post_type=give_forms&page=give-payment-history' ); ?>" class="button-secondary"><?php esc_html_e( 'Clear Filter', 'give' ); ?></a>
 
155
  <?php endif; ?>
156
  <?php $this->search_box( esc_html__( 'Search', 'give' ), 'give-payments' ); ?>
157
- </div>
158
 
159
  <?php
160
  }
@@ -184,7 +188,7 @@ class Give_Payment_History_Table extends WP_List_Table {
184
  echo '<input type="hidden" name="order" value="' . esc_attr( $_REQUEST['order'] ) . '" />';
185
  }
186
  ?>
187
- <p class="search-box" role="search">
188
  <?php
189
  /**
190
  * Fires in the payment history search box.
@@ -195,10 +199,10 @@ class Give_Payment_History_Table extends WP_List_Table {
195
  */
196
  do_action( 'give_payment_history_search' );
197
  ?>
198
- <label class="screen-reader-text" for="<?php echo $input_id ?>"><?php echo $text; ?>:</label>
199
- <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>"/>
200
  <?php submit_button( $text, 'button', false, false, array( 'ID' => 'search-submit' ) ); ?><br/>
201
- </p>
202
  <?php
203
  }
204
 
@@ -413,7 +417,7 @@ class Give_Payment_History_Table extends WP_List_Table {
413
  *
414
  * @param Give_Payment $payment
415
  *
416
- * @return mixed|void
417
  */
418
  function get_row_actions( $payment ) {
419
 
@@ -692,7 +696,7 @@ class Give_Payment_History_Table extends WP_List_Table {
692
  *
693
  * @access public
694
  * @since 1.0
695
- * @return object all the data for the payments
696
  */
697
  public function payments_data() {
698
 
@@ -731,10 +735,8 @@ class Give_Payment_History_Table extends WP_List_Table {
731
  );
732
 
733
  if ( is_string( $search ) && false !== strpos( $search, 'txn:' ) ) {
734
-
735
  $args['search_in_notes'] = true;
736
  $args['s'] = trim( str_replace( 'txn:', '', $args['s'] ) );
737
-
738
  }
739
 
740
  $p_query = new Give_Payments_Query( $args );
@@ -795,7 +797,7 @@ class Give_Payment_History_Table extends WP_List_Table {
795
  default:
796
  // Retrieve the count of the non-default-Give status.
797
  $count = wp_count_posts( 'give_payment' );
798
- $total_items = $count->{$status};
799
  break;
800
  }
801
 
139
  $end_date = isset( $_GET['end-date'] ) ? sanitize_text_field( $_GET['end-date'] ) : null;
140
  $status = isset( $_GET['status'] ) ? $_GET['status'] : '';
141
  ?>
142
+ <div id="give-payment-filters">
143
  <span id="give-payment-date-filters">
144
+ <label for="start-date"
145
+ class="give-start-date-label"><?php esc_html_e( 'Start Date:', 'give' ); ?></label>
146
+ <input type="text" id="start-date" name="start-date" class="give_datepicker"
147
+ value="<?php echo $start_date; ?>" placeholder="mm/dd/yyyy"/>
148
  <label for="end-date" class="give-end-date-label"><?php esc_html_e( 'End Date:', 'give' ); ?></label>
149
+ <input type="text" id="end-date" name="end-date" class="give_datepicker"
150
+ value="<?php echo $end_date; ?>" placeholder="mm/dd/yyyy"/>
151
  <input type="submit" class="button-secondary" value="<?php esc_attr_e( 'Apply', 'give' ); ?>"/>
152
  </span>
153
  <?php if ( ! empty( $status ) ) : ?>
154
+ <input type="hidden" name="status" value="<?php echo esc_attr( $status ); ?>"/>
155
  <?php endif; ?>
156
  <?php if ( ! empty( $start_date ) || ! empty( $end_date ) ) : ?>
157
+ <a href="<?php echo admin_url( 'edit.php?post_type=give_forms&page=give-payment-history' ); ?>"
158
+ class="button-secondary"><?php esc_html_e( 'Clear Filter', 'give' ); ?></a>
159
  <?php endif; ?>
160
  <?php $this->search_box( esc_html__( 'Search', 'give' ), 'give-payments' ); ?>
161
+ </div>
162
 
163
  <?php
164
  }
188
  echo '<input type="hidden" name="order" value="' . esc_attr( $_REQUEST['order'] ) . '" />';
189
  }
190
  ?>
191
+ <p class="search-box" role="search">
192
  <?php
193
  /**
194
  * Fires in the payment history search box.
199
  */
200
  do_action( 'give_payment_history_search' );
201
  ?>
202
+ <label class="screen-reader-text" for="<?php echo $input_id ?>"><?php echo $text; ?>:</label>
203
+ <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>"/>
204
  <?php submit_button( $text, 'button', false, false, array( 'ID' => 'search-submit' ) ); ?><br/>
205
+ </p>
206
  <?php
207
  }
208
 
417
  *
418
  * @param Give_Payment $payment
419
  *
420
+ * @return array $actions
421
  */
422
  function get_row_actions( $payment ) {
423
 
696
  *
697
  * @access public
698
  * @since 1.0
699
+ * @return array objects in array containing all the data for the payments
700
  */
701
  public function payments_data() {
702
 
735
  );
736
 
737
  if ( is_string( $search ) && false !== strpos( $search, 'txn:' ) ) {
 
738
  $args['search_in_notes'] = true;
739
  $args['s'] = trim( str_replace( 'txn:', '', $args['s'] ) );
 
740
  }
741
 
742
  $p_query = new Give_Payments_Query( $args );
797
  default:
798
  // Retrieve the count of the non-default-Give status.
799
  $count = wp_count_posts( 'give_payment' );
800
+ $total_items = isset( $count->{$status} ) ? $count->{$status} : 0;
801
  break;
802
  }
803
 
includes/admin/plugins.php CHANGED
@@ -28,7 +28,7 @@ function give_plugin_action_links( $actions ) {
28
  'settings' => sprintf(
29
  '<a href="%1$s">%2$s</a>',
30
  admin_url( 'edit.php?post_type=give_forms&page=give-settings' ),
31
- esc_html__( 'Settings', 'give' )
32
  ),
33
  );
34
 
@@ -62,7 +62,7 @@ function give_plugin_row_meta( $plugin_meta, $plugin_file ) {
62
  'utm_campaign' => 'admin',
63
  ), 'https://givewp.com/documentation/' )
64
  ),
65
- esc_html__( 'Documentation', 'give' )
66
  ),
67
  sprintf(
68
  '<a href="%1$s" target="_blank">%2$s</a>',
@@ -72,7 +72,7 @@ function give_plugin_row_meta( $plugin_meta, $plugin_file ) {
72
  'utm_campaign' => 'admin',
73
  ), 'https://givewp.com/addons/' )
74
  ),
75
- esc_html__( 'Add-ons', 'give' )
76
  ),
77
  );
78
 
28
  'settings' => sprintf(
29
  '<a href="%1$s">%2$s</a>',
30
  admin_url( 'edit.php?post_type=give_forms&page=give-settings' ),
31
+ __( 'Settings', 'give' )
32
  ),
33
  );
34
 
62
  'utm_campaign' => 'admin',
63
  ), 'https://givewp.com/documentation/' )
64
  ),
65
+ __( 'Documentation', 'give' )
66
  ),
67
  sprintf(
68
  '<a href="%1$s" target="_blank">%2$s</a>',
72
  'utm_campaign' => 'admin',
73
  ), 'https://givewp.com/addons/' )
74
  ),
75
+ __( 'Add-ons', 'give' )
76
  ),
77
  );
78
 
includes/admin/reporting/class-sales-logs-list-table.php CHANGED
@@ -338,11 +338,10 @@ class Give_Sales_Log_Table extends WP_List_Table {
338
  'meta_query' => $this->get_meta_query(),
339
  );
340
 
341
- $cache_key = give_get_cache_key( 'get_logs', $log_query );
342
 
343
  // Return result from cache if exist.
344
- if ( ! ( $logs_data = get_option( $cache_key ) ) ) {
345
-
346
  $logs = $give_logs->get_connected_logs( $log_query );
347
 
348
  if ( $logs ) {
@@ -370,7 +369,7 @@ class Give_Sales_Log_Table extends WP_List_Table {
370
 
371
  // Cache results.
372
  if ( ! empty( $logs_data ) ) {
373
- add_option( $cache_key, $logs_data, '', 'no' );
374
  }
375
  }
376
  }
338
  'meta_query' => $this->get_meta_query(),
339
  );
340
 
341
+ $cache_key = Give_Cache::get_key( 'get_logs', $log_query );
342
 
343
  // Return result from cache if exist.
344
+ if ( ! ( $logs_data = Give_Cache::get( $cache_key ) ) ) {
 
345
  $logs = $give_logs->get_connected_logs( $log_query );
346
 
347
  if ( $logs ) {
369
 
370
  // Cache results.
371
  if ( ! empty( $logs_data ) ) {
372
+ Give_Cache::set( $cache_key, $logs_data );
373
  }
374
  }
375
  }
includes/admin/reporting/export/class-batch-export-customers.php CHANGED
@@ -75,9 +75,9 @@ class Give_Batch_Customers_Export extends Give_Batch_Export {
75
  if( ! empty( $this->form ) ) {
76
  // Cache donor ids to output unique list of donor.
77
  $this->query_id = give_clean( $_REQUEST['give_export_option']['query_id'] );
78
- if( ! ( $this->donor_ids = get_transient( $this->query_id ) ) ) {
79
  $this->donor_ids = array();
80
- set_transient( $this->query_id, $this->donor_ids, HOUR_IN_SECONDS );
81
  }
82
  }
83
 
@@ -209,7 +209,7 @@ class Give_Batch_Customers_Export extends Give_Batch_Export {
209
  }
210
 
211
  // Cache donor ids only if admin export donor for specific form.
212
- set_transient( $this->query_id, array_unique( $this->donor_ids ), HOUR_IN_SECONDS );
213
  }
214
  } else {
215
 
75
  if( ! empty( $this->form ) ) {
76
  // Cache donor ids to output unique list of donor.
77
  $this->query_id = give_clean( $_REQUEST['give_export_option']['query_id'] );
78
+ if( ! ( $this->donor_ids = Give_Cache::get( $this->query_id, true ) ) ) {
79
  $this->donor_ids = array();
80
+ Give_Cache::set( $this->query_id, $this->donor_ids, HOUR_IN_SECONDS, true );
81
  }
82
  }
83
 
209
  }
210
 
211
  // Cache donor ids only if admin export donor for specific form.
212
+ Give_Cache::set( $this->query_id, array_unique( $this->donor_ids ), HOUR_IN_SECONDS, true );
213
  }
214
  } else {
215
 
includes/admin/reporting/graphing.php CHANGED
@@ -840,12 +840,14 @@ function give_run_refresh_reports_transients( $data ) {
840
  return;
841
  }
842
 
843
- //Delete transients
844
- delete_transient( 'give_estimated_monthly_stats' );
845
- delete_transient( 'give_earnings_total' );
846
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
847
- delete_transient( md5( 'give_earnings_todaytoday' ) );
848
 
 
 
 
 
 
849
  }
850
 
851
  add_action( 'give_refresh_reports_transients', 'give_run_refresh_reports_transients' );
840
  return;
841
  }
842
 
843
+ // Monthly stats.
844
+ Give_Cache::delete( Give_Cache::get_key( 'give_estimated_monthly_stats' ) );
 
 
 
845
 
846
+ // Total earning.
847
+ delete_option( 'give_earnings_total' );
848
+
849
+ // @todo: Refresh only range related stat cache
850
+ give_delete_donation_stats();
851
  }
852
 
853
  add_action( 'give_refresh_reports_transients', 'give_run_refresh_reports_transients' );
includes/admin/reporting/reports.php CHANGED
@@ -591,7 +591,7 @@ function give_reports_tab_logs() {
591
  */
592
  function give_estimated_monthly_stats() {
593
 
594
- $estimated = get_transient( 'give_estimated_monthly_stats' );
595
 
596
  if ( false === $estimated ) {
597
 
@@ -614,7 +614,7 @@ function give_estimated_monthly_stats() {
614
  $estimated['sales'] = ( $to_date_sales / $current_day ) * $days_in_month;
615
 
616
  // Cache for one day
617
- set_transient( 'give_estimated_monthly_stats', $estimated, 86400 );
618
  }
619
 
620
  return maybe_unserialize( $estimated );
591
  */
592
  function give_estimated_monthly_stats() {
593
 
594
+ $estimated = Give_Cache::get( 'give_estimated_monthly_stats', true );
595
 
596
  if ( false === $estimated ) {
597
 
614
  $estimated['sales'] = ( $to_date_sales / $current_day ) * $days_in_month;
615
 
616
  // Cache for one day
617
+ Give_Cache::set( 'give_estimated_monthly_stats', $estimated, DAY_IN_SECONDS, true );
618
  }
619
 
620
  return maybe_unserialize( $estimated );
includes/admin/reporting/tools/class-give-tools-delete-test-transactions.php CHANGED
@@ -48,14 +48,14 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
48
  *
49
  * @access public
50
  * @since 1.5
51
- * @global object $wpdb Used to query the database using the WordPress
52
- * Database API
53
- * @return array $data The data for the CSV file
54
  */
55
  public function get_data() {
56
  global $wpdb;
57
 
58
- $items = $this->get_stored_data( 'give_temp_reset_ids' );
59
 
60
  if ( ! is_array( $items ) ) {
61
  return false;
@@ -119,7 +119,7 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
119
  */
120
  public function get_percentage_complete() {
121
 
122
- $items = $this->get_stored_data( 'give_temp_reset_ids', false );
123
  $total = count( $items );
124
 
125
  $percentage = 100;
@@ -154,7 +154,7 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
154
  public function process_step() {
155
 
156
  if ( ! $this->can_export() ) {
157
- wp_die( esc_html__( 'You do not have permission to delete test transactions.', 'give' ), esc_html__( 'Error', 'give' ), array( 'response' => 403 ) );
158
  }
159
 
160
  $had_data = $this->get_data();
@@ -164,11 +164,10 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
164
 
165
  return true;
166
  } else {
167
- update_option( 'give_earnings_total', 0 );
168
- delete_transient( 'give_earnings_total' );
169
- delete_transient( 'give_estimated_monthly_stats' . true );
170
- delete_transient( 'give_estimated_monthly_stats' . false );
171
- $this->delete_data( 'give_temp_reset_ids' );
172
 
173
  // Reset the sequential order numbers
174
  if ( give_get_option( 'enable_sequential' ) ) {
@@ -176,7 +175,7 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
176
  }
177
 
178
  $this->done = true;
179
- $this->message = esc_html__( 'Test transactions successfully deleted.', 'give' );
180
 
181
  return false;
182
  }
@@ -214,10 +213,10 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
214
  public function pre_fetch() {
215
 
216
  if ( $this->step == 1 ) {
217
- $this->delete_data( 'give_temp_reset_ids' );
218
  }
219
 
220
- $items = get_option( 'give_temp_reset_ids', false );
221
 
222
  if ( false === $items ) {
223
  $items = array();
@@ -226,7 +225,7 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
226
  'post_type' => 'give_payment',
227
  'post_status' => 'any',
228
  'posts_per_page' => - 1,
229
- //ONLY TEST MODE TRANSACTIONS!!!
230
  'meta_key' => '_give_payment_mode',
231
  'meta_value' => 'test'
232
  ) );
@@ -241,9 +240,9 @@ class Give_Tools_Delete_Test_Transactions extends Give_Batch_Export {
241
 
242
  // Allow filtering of items to remove with an unassociative array for each item.
243
  // The array contains the unique ID of the item, and a 'type' for you to use in the execution of the get_data method.
244
- $items = apply_filters( 'give_reset_items', $items );
245
 
246
- $this->store_data( 'give_temp_reset_ids', $items );
247
  }
248
 
249
  }
48
  *
49
  * @access public
50
  * @since 1.5
51
+ * @global object $wpdb Used to query the database using the WordPress Database API
52
+ *
53
+ * @return array|bool $data The data for the CSV file
54
  */
55
  public function get_data() {
56
  global $wpdb;
57
 
58
+ $items = $this->get_stored_data( 'give_temp_reset_test_ids' );
59
 
60
  if ( ! is_array( $items ) ) {
61
  return false;
119
  */
120
  public function get_percentage_complete() {
121
 
122
+ $items = $this->get_stored_data( 'give_temp_delete_test_ids', false );
123
  $total = count( $items );
124
 
125
  $percentage = 100;
154
  public function process_step() {
155
 
156
  if ( ! $this->can_export() ) {
157
+ wp_die( __( 'You do not have permission to delete test transactions.', 'give' ), __( 'Error', 'give' ), array( 'response' => 403 ) );
158
  }
159
 
160
  $had_data = $this->get_data();
164
 
165
  return true;
166
  } else {
167
+ update_option( 'give_earnings_total', give_get_total_earnings( true ) );
168
+ Give_Cache::delete( Give_Cache::get_key('give_estimated_monthly_stats' ) );
169
+
170
+ $this->delete_data( 'give_temp_delete_test_ids' );
 
171
 
172
  // Reset the sequential order numbers
173
  if ( give_get_option( 'enable_sequential' ) ) {
175
  }
176
 
177
  $this->done = true;
178
+ $this->message = __( 'Test transactions successfully deleted.', 'give' );
179
 
180
  return false;
181
  }
213
  public function pre_fetch() {
214
 
215
  if ( $this->step == 1 ) {
216
+ $this->delete_data( 'give_temp_delete_test_ids' );
217
  }
218
 
219
+ $items = get_option( 'give_temp_delete_test_ids', false );
220
 
221
  if ( false === $items ) {
222
  $items = array();
225
  'post_type' => 'give_payment',
226
  'post_status' => 'any',
227
  'posts_per_page' => - 1,
228
+ // ONLY TEST MODE TRANSACTIONS!!!
229
  'meta_key' => '_give_payment_mode',
230
  'meta_value' => 'test'
231
  ) );
240
 
241
  // Allow filtering of items to remove with an unassociative array for each item.
242
  // The array contains the unique ID of the item, and a 'type' for you to use in the execution of the get_data method.
243
+ $items = apply_filters( 'give_delete_test_items', $items );
244
 
245
+ $this->store_data( 'give_temp_delete_test_ids', $items );
246
  }
247
 
248
  }
includes/admin/reporting/tools/class-give-tools-recount-income.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
- * Recount income
4
  *
5
- * This class handles batch processing of recounting income
6
  *
7
  * @subpackage Admin/Tools/Give_Tools_Recount_Income
8
  * @copyright Copyright (c) 2016, WordImpress
@@ -49,24 +49,24 @@ class Give_Tools_Recount_Income extends Give_Batch_Export {
49
  * @access public
50
  * @since 1.5
51
  *
52
- * @return array $data The data for the CSV file
53
  */
54
  public function get_data() {
55
 
56
  if ( $this->step == 1 ) {
57
- $this->delete_data( 'give_temp_recount_income' );
58
  }
59
 
60
- $total = get_option( 'give_temp_recount_income', false );
61
 
62
  if ( false === $total ) {
63
  $total = (float) 0;
64
- $this->store_data( 'give_temp_recount_income', $total );
65
  }
66
 
67
  $accepted_statuses = apply_filters( 'give_recount_accepted_statuses', array( 'publish' ) );
68
 
69
- $args = apply_filters( 'give_recount_income_args', array(
70
  'number' => $this->per_step,
71
  'page' => $this->step,
72
  'status' => $accepted_statuses,
@@ -89,14 +89,13 @@ class Give_Tools_Recount_Income extends Give_Batch_Export {
89
 
90
  $total = round( $total, give_currency_decimal_filter() );
91
 
92
- $this->store_data( 'give_temp_recount_income', $total );
93
 
94
  return true;
95
 
96
  }
97
 
98
- update_option( 'give_income_total', $total );
99
- set_transient( 'give_income_total', $total, 86400 );
100
 
101
  return false;
102
 
@@ -110,16 +109,16 @@ class Give_Tools_Recount_Income extends Give_Batch_Export {
110
  */
111
  public function get_percentage_complete() {
112
 
113
- $total = $this->get_stored_data( 'give_recount_income_total' );
114
 
115
  if ( false === $total ) {
116
- $args = apply_filters( 'give_recount_income_total_args', array() );
117
 
118
  $counts = give_count_payments( $args );
119
  $total = absint( $counts->publish );
120
- $total = apply_filters( 'give_recount_store_income_total', $total );
121
 
122
- $this->store_data( 'give_recount_income_total', $total );
123
  }
124
 
125
  $percentage = 100;
@@ -164,8 +163,8 @@ class Give_Tools_Recount_Income extends Give_Batch_Export {
164
 
165
  return true;
166
  } else {
167
- $this->delete_data( 'give_recount_income_total' );
168
- $this->delete_data( 'give_temp_recount_income' );
169
  $this->done = true;
170
  $this->message = esc_html__( 'Income stats have been successfully recounted.', 'give' );
171
 
1
  <?php
2
  /**
3
+ * Recount earnings
4
  *
5
+ * This class handles batch processing of recounting earnings
6
  *
7
  * @subpackage Admin/Tools/Give_Tools_Recount_Income
8
  * @copyright Copyright (c) 2016, WordImpress
49
  * @access public
50
  * @since 1.5
51
  *
52
+ * @return bool
53
  */
54
  public function get_data() {
55
 
56
  if ( $this->step == 1 ) {
57
+ $this->delete_data( 'give_temp_recount_earnings' );
58
  }
59
 
60
+ $total = get_option( 'give_temp_recount_earnings', false );
61
 
62
  if ( false === $total ) {
63
  $total = (float) 0;
64
+ $this->store_data( 'give_temp_recount_earnings', $total );
65
  }
66
 
67
  $accepted_statuses = apply_filters( 'give_recount_accepted_statuses', array( 'publish' ) );
68
 
69
+ $args = apply_filters( 'give_recount_earnings_args', array(
70
  'number' => $this->per_step,
71
  'page' => $this->step,
72
  'status' => $accepted_statuses,
89
 
90
  $total = round( $total, give_currency_decimal_filter() );
91
 
92
+ $this->store_data( 'give_temp_recount_earnings', $total );
93
 
94
  return true;
95
 
96
  }
97
 
98
+ update_option( 'give_earnings_total', $total );
 
99
 
100
  return false;
101
 
109
  */
110
  public function get_percentage_complete() {
111
 
112
+ $total = $this->get_stored_data( 'give_recount_earnings_total' );
113
 
114
  if ( false === $total ) {
115
+ $args = apply_filters( 'give_recount_earnings_total_args', array() );
116
 
117
  $counts = give_count_payments( $args );
118
  $total = absint( $counts->publish );
119
+ $total = apply_filters( 'give_recount_store_earnings_total', $total );
120
 
121
+ $this->store_data( 'give_recount_earnings_total', $total );
122
  }
123
 
124
  $percentage = 100;
163
 
164
  return true;
165
  } else {
166
+ $this->delete_data( 'give_recount_earnings_total' );
167
+ $this->delete_data( 'give_temp_recount_earnings' );
168
  $this->done = true;
169
  $this->message = esc_html__( 'Income stats have been successfully recounted.', 'give' );
170
 
includes/admin/reporting/tools/class-give-tools-reset-stats.php CHANGED
@@ -193,9 +193,8 @@ class Give_Tools_Reset_Stats extends Give_Batch_Export {
193
  return true;
194
  } else {
195
  update_option( 'give_earnings_total', 0 );
196
- delete_transient( 'give_earnings_total' );
197
- delete_transient( 'give_estimated_monthly_stats' . true );
198
- delete_transient( 'give_estimated_monthly_stats' . false );
199
  $this->delete_data( 'give_temp_reset_ids' );
200
 
201
  // Reset the sequential order numbers
193
  return true;
194
  } else {
195
  update_option( 'give_earnings_total', 0 );
196
+ Give_Cache::delete( Give_Cache::get_key('give_estimated_monthly_stats' ) );
197
+
 
198
  $this->delete_data( 'give_temp_reset_ids' );
199
 
200
  // Reset the sequential order numbers
includes/admin/settings/class-settings-license.php CHANGED
@@ -47,7 +47,6 @@ if ( ! class_exists( 'Give_Settings_License' ) ) :
47
 
48
  add_filter( 'give-settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
49
  add_action( "give-settings_settings_{$this->id}_page", array( $this, 'output' ) );
50
- add_action( "give-settings_save_{$this->id}", array( $this, 'save' ) );
51
  }
52
 
53
  /**
@@ -105,26 +104,6 @@ if ( ! class_exists( 'Give_Settings_License' ) ) :
105
 
106
  Give_Admin_Settings::output_fields( $settings, 'give_settings' );
107
  }
108
-
109
- /**
110
- * Save settings.
111
- *
112
- * @since 1.8
113
- * @return void
114
- */
115
- public function save() {
116
- $settings = $this->get_settings();
117
- $current_section = give_get_current_setting_section();
118
-
119
- Give_Admin_Settings::save_fields( $settings, 'give_settings' );
120
-
121
- /**
122
- * Trigger Action
123
- *
124
- * @since 1.8
125
- */
126
- do_action( 'give_update_options_' . $this->id . '_' . $current_section );
127
- }
128
  }
129
 
130
  endif;
47
 
48
  add_filter( 'give-settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
49
  add_action( "give-settings_settings_{$this->id}_page", array( $this, 'output' ) );
 
50
  }
51
 
52
  /**
104
 
105
  Give_Admin_Settings::output_fields( $settings, 'give_settings' );
106
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  }
108
 
109
  endif;
includes/admin/shortcodes/class-shortcode-button.php CHANGED
@@ -154,10 +154,10 @@ final class Give_Shortcode_Button {
154
  if ( apply_filters( sanitize_title( $shortcode ) . '_condition', true ) ) {
155
 
156
  $shortcodes[ $shortcode ] = sprintf(
157
- '<div class="sc-shortcode mce-menu-item give-shortcode-item-%1$s" data-shortcode="%s">%s</div>',
158
  $shortcode,
159
- $values['label'],
160
- $shortcode
161
  );
162
  }
163
  }
154
  if ( apply_filters( sanitize_title( $shortcode ) . '_condition', true ) ) {
155
 
156
  $shortcodes[ $shortcode ] = sprintf(
157
+ '<div class="sc-shortcode mce-menu-item give-shortcode-item-%1$s" data-shortcode="%2$s">%3$s</div>',
158
  $shortcode,
159
+ $shortcode,
160
+ $values['label']
161
  );
162
  }
163
  }
includes/admin/upgrades/upgrade-functions.php CHANGED
@@ -37,16 +37,18 @@ function give_do_automatic_upgrades() {
37
  case version_compare( $give_version, '1.6', '<' ) :
38
  give_v16_upgrades();
39
  $did_upgrade = true;
40
- break;
41
 
42
  case version_compare( $give_version, '1.7', '<' ) :
43
  give_v17_upgrades();
44
  $did_upgrade = true;
45
- break;
46
 
47
  case version_compare( $give_version, '1.8', '<' ) :
48
  give_v18_upgrades();
49
  $did_upgrade = true;
 
 
 
 
50
  }
51
 
52
  if ( $did_upgrade ) {
@@ -820,3 +822,73 @@ function give_v18_renamed_core_settings() {
820
  'enable_tags' => 'tags',
821
  );
822
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  case version_compare( $give_version, '1.6', '<' ) :
38
  give_v16_upgrades();
39
  $did_upgrade = true;
 
40
 
41
  case version_compare( $give_version, '1.7', '<' ) :
42
  give_v17_upgrades();
43
  $did_upgrade = true;
 
44
 
45
  case version_compare( $give_version, '1.8', '<' ) :
46
  give_v18_upgrades();
47
  $did_upgrade = true;
48
+
49
+ case version_compare( $give_version, '1.8.7', '<' ) :
50
+ give_v187_upgrades();
51
+ $did_upgrade = true;
52
  }
53
 
54
  if ( $did_upgrade ) {
822
  'enable_tags' => 'tags',
823
  );
824
  }
825
+
826
+
827
+ /**
828
+ * Upgrade core settings.
829
+ *
830
+ * @since 1.8.7
831
+ * @return void
832
+ */
833
+ function give_v187_upgrades(){
834
+ global $wpdb;
835
+
836
+ /**
837
+ * Upgrade 1: Remove stat and cache transients.
838
+ */
839
+ $cached_options = $wpdb->get_col(
840
+ $wpdb->prepare(
841
+ "SELECT * FROM {$wpdb->options} where (option_name LIKE '%%%s%%' OR option_name LIKE '%%%s%%')",
842
+ array(
843
+ '_transient_give_stats_',
844
+ 'give_cache',
845
+ '_transient_give_add_ons_feed',
846
+ '_transient__give_ajax_works'.
847
+ '_transient_give_total_api_keys',
848
+ '_transient_give_i18n_give_promo_hide',
849
+ '_transient_give_contributors',
850
+ '_transient_give_estimated_monthly_stats',
851
+ '_transient_give_earnings_total',
852
+ '_transient_give_i18n_give_',
853
+ '_transient__give_installed',
854
+ '_transient__give_activation_redirect',
855
+ '_transient__give_hide_license_notices_shortly_',
856
+ 'give_income_total'
857
+ )
858
+ ),
859
+ 1
860
+ );
861
+
862
+ // User related transients.
863
+ $user_apikey_options = $wpdb->get_results(
864
+ $wpdb->prepare(
865
+ "SELECT user_id, meta_key
866
+ FROM $wpdb->usermeta
867
+ WHERE meta_value=%s",
868
+ 'give_user_public_key'
869
+ ),
870
+ ARRAY_A
871
+ );
872
+
873
+ if( ! empty( $user_apikey_options ) ) {
874
+ foreach ( $user_apikey_options as $user ) {
875
+ $cached_options[] = '_transient_' . md5( 'give_api_user_' . $user['meta_key'] );
876
+ $cached_options[] = '_transient_' . md5( 'give_api_user_public_key' . $user['user_id'] );
877
+ $cached_options[] = '_transient_' . md5( 'give_api_user_secret_key' . $user['user_id'] );
878
+ }
879
+ }
880
+
881
+ if ( ! empty( $cached_options ) ) {
882
+ foreach ( $cached_options as $option ) {
883
+ switch ( true ) {
884
+ case ( false !== strpos( $option, 'transient' ) ):
885
+ $option = str_replace( '_transient_', '', $option );
886
+ delete_transient( $option );
887
+ break;
888
+
889
+ default:
890
+ delete_option( $option );
891
+ }
892
+ }
893
+ }
894
+ }
includes/admin/welcome.php CHANGED
@@ -556,7 +556,7 @@ class Give_Welcome {
556
  * @return array $contributors List of contributors
557
  */
558
  public function get_contributors() {
559
- $contributors = get_transient( 'give_contributors' );
560
 
561
  if ( false !== $contributors ) {
562
  return $contributors;
@@ -574,7 +574,7 @@ class Give_Welcome {
574
  return array();
575
  }
576
 
577
- set_transient( 'give_contributors', $contributors, 3600 );
578
 
579
  return $contributors;
580
  }
@@ -592,12 +592,12 @@ class Give_Welcome {
592
  $give_options = give_get_settings();
593
 
594
  // Bail if no activation redirect
595
- if ( ! get_transient( '_give_activation_redirect' ) ) {
596
  return;
597
  }
598
 
599
  // Delete the redirect transient
600
- delete_transient( '_give_activation_redirect' );
601
 
602
  // Bail if activating from network, or bulk
603
  if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
556
  * @return array $contributors List of contributors
557
  */
558
  public function get_contributors() {
559
+ $contributors = Give_Cache::get( 'give_contributors', true );
560
 
561
  if ( false !== $contributors ) {
562
  return $contributors;
574
  return array();
575
  }
576
 
577
+ Give_Cache::set( 'give_contributors', $contributors, HOUR_IN_SECONDS, true );
578
 
579
  return $contributors;
580
  }
592
  $give_options = give_get_settings();
593
 
594
  // Bail if no activation redirect
595
+ if ( ! Give_Cache::get( '_give_activation_redirect', true ) ) {
596
  return;
597
  }
598
 
599
  // Delete the redirect transient
600
+ Give_Cache::delete( Give_Cache::get_key( '_give_activation_redirect' ) );
601
 
602
  // Bail if activating from network, or bulk
603
  if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
includes/ajax-functions.php CHANGED
@@ -45,7 +45,7 @@ function give_test_ajax_works() {
45
 
46
  add_filter( 'block_local_requests', '__return_false' );
47
 
48
- if ( get_transient( '_give_ajax_works' ) ) {
49
  return true;
50
  }
51
 
@@ -85,7 +85,7 @@ function give_test_ajax_works() {
85
  }
86
 
87
  if ( $works ) {
88
- set_transient( '_give_ajax_works', '1', DAY_IN_SECONDS );
89
  }
90
 
91
  return $works;
45
 
46
  add_filter( 'block_local_requests', '__return_false' );
47
 
48
+ if ( Give_Cache::get( '_give_ajax_works', true ) ) {
49
  return true;
50
  }
51
 
85
  }
86
 
87
  if ( $works ) {
88
+ Give_Cache::set( '_give_ajax_works', '1', DAY_IN_SECONDS, true );
89
  }
90
 
91
  return $works;
includes/api/class-give-api.php CHANGED
@@ -361,11 +361,11 @@ class Give_API {
361
  return false;
362
  }
363
 
364
- $user = get_transient( md5( 'give_api_user_' . $key ) );
365
 
366
  if ( false === $user ) {
367
  $user = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s LIMIT 1", $key ) );
368
- set_transient( md5( 'give_api_user_' . $key ), $user, DAY_IN_SECONDS );
369
  }
370
 
371
  if ( $user != null ) {
@@ -385,11 +385,11 @@ class Give_API {
385
  }
386
 
387
  $cache_key = md5( 'give_api_user_public_key' . $user_id );
388
- $user_public_key = get_transient( $cache_key );
389
 
390
  if ( empty( $user_public_key ) ) {
391
  $user_public_key = $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->usermeta WHERE meta_value = 'give_user_public_key' AND user_id = %d", $user_id ) );
392
- set_transient( $cache_key, $user_public_key, HOUR_IN_SECONDS );
393
  }
394
 
395
  return $user_public_key;
@@ -403,11 +403,11 @@ class Give_API {
403
  }
404
 
405
  $cache_key = md5( 'give_api_user_secret_key' . $user_id );
406
- $user_secret_key = get_transient( $cache_key );
407
 
408
  if ( empty( $user_secret_key ) ) {
409
  $user_secret_key = $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->usermeta WHERE meta_value = 'give_user_secret_key' AND user_id = %d", $user_id ) );
410
- set_transient( $cache_key, $user_secret_key, HOUR_IN_SECONDS );
411
  }
412
 
413
  return $user_secret_key;
@@ -1729,7 +1729,7 @@ class Give_API {
1729
  switch ( $process ) {
1730
  case 'generate':
1731
  if ( $this->generate_api_key( $user_id ) ) {
1732
- delete_transient( 'give_total_api_keys' );
1733
  wp_redirect( add_query_arg( 'give-message', 'api-key-generated', 'edit.php?post_type=give_forms&page=give-tools&tab=api' ) );
1734
  exit();
1735
  } else {
@@ -1739,13 +1739,13 @@ class Give_API {
1739
  break;
1740
  case 'regenerate':
1741
  $this->generate_api_key( $user_id, true );
1742
- delete_transient( 'give_total_api_keys' );
1743
  wp_redirect( add_query_arg( 'give-message', 'api-key-regenerated', 'edit.php?post_type=give_forms&page=give-tools&tab=api' ) );
1744
  exit();
1745
  break;
1746
  case 'revoke':
1747
  $this->revoke_api_key( $user_id );
1748
- delete_transient( 'give_total_api_keys' );
1749
  wp_redirect( add_query_arg( 'give-message', 'api-key-revoked', 'edit.php?post_type=give_forms&page=give-tools&tab=api' ) );
1750
  exit();
1751
  break;
@@ -1822,9 +1822,9 @@ class Give_API {
1822
  $public_key = $this->get_user_public_key( $user_id );
1823
  $secret_key = $this->get_user_secret_key( $user_id );
1824
  if ( ! empty( $public_key ) ) {
1825
- delete_transient( md5( 'give_api_user_' . $public_key ) );
1826
- delete_transient( md5( 'give_api_user_public_key' . $user_id ) );
1827
- delete_transient( md5( 'give_api_user_secret_key' . $user_id ) );
1828
  delete_user_meta( $user_id, $public_key );
1829
  delete_user_meta( $user_id, $secret_key );
1830
  } else {
361
  return false;
362
  }
363
 
364
+ $user = Give_Cache::get( md5( 'give_api_user_' . $key ), true );
365
 
366
  if ( false === $user ) {
367
  $user = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s LIMIT 1", $key ) );
368
+ Give_Cache::set( md5( 'give_api_user_' . $key ), $user, DAY_IN_SECONDS, true );
369
  }
370
 
371
  if ( $user != null ) {
385
  }
386
 
387
  $cache_key = md5( 'give_api_user_public_key' . $user_id );
388
+ $user_public_key = Give_Cache::get( $cache_key, true );
389
 
390
  if ( empty( $user_public_key ) ) {
391
  $user_public_key = $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->usermeta WHERE meta_value = 'give_user_public_key' AND user_id = %d", $user_id ) );
392
+ Give_Cache::set( $cache_key, $user_public_key, HOUR_IN_SECONDS, true );
393
  }
394
 
395
  return $user_public_key;
403
  }
404
 
405
  $cache_key = md5( 'give_api_user_secret_key' . $user_id );
406
+ $user_secret_key = Give_Cache::get( $cache_key, true );
407
 
408
  if ( empty( $user_secret_key ) ) {
409
  $user_secret_key = $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $wpdb->usermeta WHERE meta_value = 'give_user_secret_key' AND user_id = %d", $user_id ) );
410
+ Give_Cache::set( $cache_key, $user_secret_key, HOUR_IN_SECONDS, true );
411
  }
412
 
413
  return $user_secret_key;
1729
  switch ( $process ) {
1730
  case 'generate':
1731
  if ( $this->generate_api_key( $user_id ) ) {
1732
+ Give_Cache::delete( Give_Cache::get_key( 'give_total_api_keys' ) );
1733
  wp_redirect( add_query_arg( 'give-message', 'api-key-generated', 'edit.php?post_type=give_forms&page=give-tools&tab=api' ) );
1734
  exit();
1735
  } else {
1739
  break;
1740
  case 'regenerate':
1741
  $this->generate_api_key( $user_id, true );
1742
+ Give_Cache::delete( Give_Cache::get_key( 'give_total_api_keys' ) );
1743
  wp_redirect( add_query_arg( 'give-message', 'api-key-regenerated', 'edit.php?post_type=give_forms&page=give-tools&tab=api' ) );
1744
  exit();
1745
  break;
1746
  case 'revoke':
1747
  $this->revoke_api_key( $user_id );
1748
+ Give_Cache::delete( Give_Cache::get_key( 'give_total_api_keys' ) );
1749
  wp_redirect( add_query_arg( 'give-message', 'api-key-revoked', 'edit.php?post_type=give_forms&page=give-tools&tab=api' ) );
1750
  exit();
1751
  break;
1822
  $public_key = $this->get_user_public_key( $user_id );
1823
  $secret_key = $this->get_user_secret_key( $user_id );
1824
  if ( ! empty( $public_key ) ) {
1825
+ Give_Cache::delete( Give_Cache::get_key( md5( 'give_api_user_' . $public_key ) ) );
1826
+ Give_Cache::delete( Give_Cache::get_key( md5( 'give_api_user_public_key' . $user_id ) ) );
1827
+ Give_Cache::delete( Give_Cache::get_key( md5( 'give_api_user_secret_key' . $user_id ) ) );
1828
  delete_user_meta( $user_id, $public_key );
1829
  delete_user_meta( $user_id, $secret_key );
1830
  } else {
includes/class-give-cache.php ADDED
@@ -0,0 +1,324 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class for managing cache
4
+ *
5
+ * @package Give
6
+ * @subpackage Classes/Give_Cache
7
+ * @copyright Copyright (c) 2017, WordImpress
8
+ * @license https://opensource.org/licenses/gpl-license GNU Public License
9
+ * @since 1.8.7
10
+ */
11
+
12
+ // Exit if accessed directly.
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit;
15
+ }
16
+
17
+ class Give_Cache {
18
+ /**
19
+ * Instance.
20
+ *
21
+ * @since 1.8.7
22
+ * @access static
23
+ * @var
24
+ */
25
+ static private $instance;
26
+
27
+ /**
28
+ * Singleton pattern.
29
+ *
30
+ * @since 1.8.7
31
+ * @access private
32
+ * Give_Cache constructor.
33
+ */
34
+ private function __construct() {
35
+ }
36
+
37
+
38
+ /**
39
+ * Get instance.
40
+ *
41
+ * @since 1.8.7
42
+ * @access public
43
+ * @return static
44
+ */
45
+ public static function get_instance() {
46
+ if ( null === static::$instance ) {
47
+ self::$instance = new static();
48
+ }
49
+
50
+ return self::$instance;
51
+ }
52
+
53
+ /**
54
+ * Setup hooks.
55
+ *
56
+ * @since 1.8.7
57
+ * @access public
58
+ */
59
+ public function setup_hooks() {
60
+ // weekly delete all expired cache.
61
+ add_action( 'give_weekly_scheduled_events', array( $this, 'delete_all_expired' ) );
62
+ }
63
+
64
+ /**
65
+ * Get cache key.
66
+ *
67
+ * @since 1.8.7
68
+ *
69
+ * @param string $action Cache key prefix.
70
+ * @param array $query_args (optional) Query array.
71
+ *
72
+ * @return string
73
+ */
74
+
75
+ public static function get_key( $action, $query_args = null ) {
76
+ $cache_key = "give_cache_{$action}";
77
+
78
+ // Bailout.
79
+ if ( ! empty( $query_args ) ) {
80
+ $cache_key = "{$cache_key}_" . substr( md5( serialize( $query_args ) ), 0, 15 );
81
+ }
82
+
83
+ return $cache_key;
84
+ }
85
+
86
+ /**
87
+ * Get cache.
88
+ *
89
+ * @since 1.8.7
90
+ *
91
+ * @param string $cache_key
92
+ * @param bool $custom_key
93
+ * @param mixed $query_args
94
+ *
95
+ * @return mixed
96
+ */
97
+
98
+ public static function get( $cache_key, $custom_key = false, $query_args = array() ) {
99
+ if ( ! self::is_valid_cache_key( $cache_key ) ) {
100
+ if ( ! $custom_key ) {
101
+ return new WP_Error( 'give_invalid_cache_key', __( 'Cache key format should be give_cache_*', 'give' ) );
102
+ }
103
+
104
+ $cache_key = self::get_key( $cache_key, $query_args );
105
+ }
106
+
107
+ $option = get_option( $cache_key );
108
+
109
+ // Backward compatibility (<1.8.7).
110
+ if ( ! is_array( $option ) || empty( $option ) || ! array_key_exists( 'expiration', $option ) ) {
111
+ return $option;
112
+ }
113
+
114
+ // Get current time.
115
+ $current_time = current_time( 'timestamp', 1 );
116
+
117
+ if ( empty( $option['expiration'] ) || ( $current_time < $option['expiration'] ) ) {
118
+ $option = $option['data'];
119
+ } else {
120
+ $option = false;
121
+ }
122
+
123
+ return $option;
124
+ }
125
+
126
+ /**
127
+ * Set cache.
128
+ *
129
+ * @since 1.8.7
130
+ *
131
+ * @param string $cache_key
132
+ * @param mixed $data
133
+ * @param int|null $expiration Timestamp should be in GMT format.
134
+ * @param bool $custom_key
135
+ * @param mixed $query_args
136
+ *
137
+ * @return mixed
138
+ */
139
+
140
+ public static function set( $cache_key, $data, $expiration = null, $custom_key = false, $query_args = array() ) {
141
+ if ( ! self::is_valid_cache_key( $cache_key ) ) {
142
+ if ( ! $custom_key ) {
143
+ return new WP_Error( 'give_invalid_cache_key', __( 'Cache key format should be give_cache_*', 'give' ) );
144
+ }
145
+
146
+ $cache_key = self::get_key( $cache_key, $query_args );
147
+ }
148
+
149
+ $option_value = array(
150
+ 'data' => $data,
151
+ 'expiration' => ! is_null( $expiration )
152
+ ? ( $expiration + current_time( 'timestamp', 1 ) )
153
+ : null,
154
+ );
155
+
156
+ $result = add_option( $cache_key, $option_value, '', 'no' );
157
+
158
+ return $result;
159
+ }
160
+
161
+ /**
162
+ * Delete cache.
163
+ *
164
+ * @since 1.8.7
165
+ *
166
+ * @param string|array $cache_keys
167
+ *
168
+ * @return bool|WP_Error
169
+ */
170
+
171
+ public static function delete( $cache_keys ) {
172
+ $result = true;
173
+ $invalid_keys = array();
174
+
175
+ if ( ! empty( $cache_keys ) ) {
176
+ $cache_keys = is_array( $cache_keys ) ? $cache_keys : array( $cache_keys );
177
+
178
+ foreach ( $cache_keys as $cache_key ) {
179
+ if ( ! self::is_valid_cache_key( $cache_key ) ) {
180
+ $invalid_keys[] = $cache_key;
181
+ $result = false;
182
+ }
183
+
184
+ delete_option( $cache_key );
185
+ }
186
+ }
187
+
188
+ if( ! $result ) {
189
+ $result = new WP_Error(
190
+ 'give_invalid_cache_key',
191
+ __( 'Cache key format should be give_cache_*', 'give' ),
192
+ $invalid_keys
193
+ );
194
+ }
195
+
196
+ return $result;
197
+ }
198
+
199
+ /**
200
+ * Delete all logging cache.
201
+ *
202
+ * @since 1.8.7
203
+ * @access public
204
+ * @global wpdb $wpdb
205
+ *
206
+ * @param bool $force If set to true then all cached values will be delete instead of only expired
207
+ *
208
+ * @return bool
209
+ */
210
+ public static function delete_all_expired( $force = false ) {
211
+ global $wpdb;
212
+ $options = $wpdb->get_results(
213
+ $wpdb->prepare(
214
+ "SELECT option_name, option_value
215
+ FROM {$wpdb->options}
216
+ Where option_name
217
+ LIKE '%%%s%%'",
218
+ 'give_cache'
219
+ ),
220
+ ARRAY_A
221
+ );
222
+
223
+ // Bailout.
224
+ if ( empty( $options ) ) {
225
+ return false;
226
+ }
227
+
228
+ $current_time = current_time( 'timestamp', 1 );
229
+
230
+ // Delete log cache.
231
+ foreach ( $options as $option ) {
232
+ $option['option_value'] = maybe_unserialize( $option['option_value'] );
233
+
234
+ if (
235
+ (
236
+ ! self::is_valid_cache_key( $option['option_name'] )
237
+ || ! is_array( $option['option_value'] ) // Backward compatibility (<1.8.7).
238
+ || ! array_key_exists( 'expiration', $option['option_value'] ) // Backward compatibility (<1.8.7).
239
+ || empty( $option['option_value']['expiration'] )
240
+ || ( $current_time < $option['option_value']['expiration'] )
241
+ )
242
+ && ! $force
243
+ ) {
244
+ continue;
245
+ }
246
+
247
+ self::delete( $option['option_name'] );
248
+ }
249
+ }
250
+
251
+
252
+ /**
253
+ * Get list of options like.
254
+ *
255
+ * @since 1.8.7
256
+ * @access public
257
+ *
258
+ * @param string $option_name
259
+ * @param bool $fields
260
+ *
261
+ * @return array
262
+ */
263
+ public static function get_options_like( $option_name, $fields = false ) {
264
+ global $wpdb;
265
+
266
+ if ( empty( $option_name ) ) {
267
+ return array();
268
+ }
269
+
270
+ $field_names = $fields ? 'option_name, option_value' : 'option_name';
271
+
272
+ if ( $fields ) {
273
+ $options = $wpdb->get_results(
274
+ $wpdb->prepare(
275
+ "SELECT {$field_names }
276
+ FROM {$wpdb->options}
277
+ Where option_name
278
+ LIKE '%%%s%%'",
279
+ "give_cache_{$option_name}"
280
+ ),
281
+ ARRAY_A
282
+ );
283
+ } else {
284
+ $options = $wpdb->get_col(
285
+ $wpdb->prepare(
286
+ "SELECT *
287
+ FROM {$wpdb->options}
288
+ Where option_name
289
+ LIKE '%%%s%%'",
290
+ "give_cache_{$option_name}"
291
+ ),
292
+ 1
293
+ );
294
+ }
295
+
296
+ if ( ! empty( $options ) && $fields ) {
297
+ foreach ( $options as $index => $option ) {
298
+ $option['option_value'] = maybe_unserialize( $option['option_value'] );
299
+ $options[ $index ] = $option;
300
+ }
301
+ }
302
+
303
+ return $options;
304
+ }
305
+
306
+ /**
307
+ * Check cache key validity.
308
+ *
309
+ * @since 1.8.7
310
+ * @access public
311
+ *
312
+ * @param $cache_key
313
+ *
314
+ * @return bool|int
315
+ */
316
+ public static function is_valid_cache_key( $cache_key ) {
317
+ return ( false !== strpos( $cache_key, 'give_cache_' ) );
318
+ }
319
+ }
320
+
321
+ // Initialize
322
+ Give_Cache::get_instance()->setup_hooks();
323
+
324
+ // @todo implement this with all possible cache
includes/class-give-customer.php CHANGED
@@ -99,7 +99,7 @@ class Give_Customer {
99
  * @since 1.0
100
  * @access public
101
  *
102
- * @var array
103
  */
104
  public $payment_ids;
105
 
@@ -141,14 +141,17 @@ class Give_Customer {
141
  * @since 1.0
142
  * @access public
143
  *
144
- * @param bool $_id_or_email
145
  * @param bool $by_user_id
146
  */
147
  public function __construct( $_id_or_email = false, $by_user_id = false ) {
148
 
149
  $this->db = new Give_DB_Customers;
150
 
151
- if ( false === $_id_or_email || ( is_numeric( $_id_or_email ) && (int) $_id_or_email !== absint( $_id_or_email ) ) ) {
 
 
 
152
  return false;
153
  }
154
 
@@ -201,11 +204,10 @@ class Give_Customer {
201
  break;
202
 
203
  }
204
-
205
  }
206
 
207
  // Get donor's all email including primary email.
208
- $this->emails = (array) $this->get_meta( 'additional_email', false );
209
  $this->emails = array( 'primary' => $this->email ) + $this->emails;
210
 
211
  // Customer ID and email are the only things that are necessary, make sure they exist.
@@ -255,7 +257,7 @@ class Give_Customer {
255
  }
256
 
257
  $defaults = array(
258
- 'payment_ids' => ''
259
  );
260
 
261
  $args = wp_parse_args( $data, $defaults );
@@ -299,7 +301,7 @@ class Give_Customer {
299
  *
300
  * @param bool|int $created False if not a valid creation,
301
  * customer ID if user is found or valid creation.
302
- * @param array $args Customer attributes.
303
  */
304
  do_action( 'give_customer_post_create', $created, $args );
305
 
@@ -330,8 +332,8 @@ class Give_Customer {
330
  *
331
  * @since 1.0
332
  *
333
- * @param int $customer_id Customer id.
334
- * @param array $data Customer attributes.
335
  */
336
  do_action( 'give_customer_pre_update', $this->id, $data );
337
 
@@ -350,9 +352,9 @@ class Give_Customer {
350
  *
351
  * @since 1.0
352
  *
353
- * @param bool $updated If the update was successful or not.
354
- * @param int $customer_id Customer id.
355
- * @param array $data Customer attributes.
356
  */
357
  do_action( 'give_customer_post_update', $updated, $this->id, $data );
358
 
@@ -367,7 +369,7 @@ class Give_Customer {
367
  * @since 1.0
368
  * @access public
369
  *
370
- * @param int $payment_id The payment ID to attach to the customer.
371
  * @param bool $update_stats For backwards compatibility, if we should increase the stats or not.
372
  *
373
  * @return bool If the attachment was successfuly.
@@ -401,7 +403,7 @@ class Give_Customer {
401
  *
402
  * @since 1.0
403
  *
404
- * @param int $payment_id Payment id.
405
  * @param int $customer_id Customer id.
406
  */
407
  do_action( 'give_customer_pre_attach_payment', $payment_id, $this->id );
@@ -422,7 +424,6 @@ class Give_Customer {
422
 
423
  $this->increase_purchase_count();
424
  }
425
-
426
  }
427
 
428
  /**
@@ -431,8 +432,8 @@ class Give_Customer {
431
  * @since 1.0
432
  *
433
  * @param bool $payment_added If the attachment was successfuly.
434
- * @param int $payment_id Payment id.
435
- * @param int $customer_id Customer id.
436
  */
437
  do_action( 'give_customer_post_attach_payment', $payment_added, $payment_id, $this->id );
438
 
@@ -447,7 +448,7 @@ class Give_Customer {
447
  * @since 1.0
448
  * @access public
449
  *
450
- * @param int $payment_id The Payment ID to remove.
451
  * @param bool $update_stats For backwards compatibility, if we should increase the stats or not.
452
  *
453
  * @return boolean If the removal was successful.
@@ -487,7 +488,7 @@ class Give_Customer {
487
  *
488
  * @since 1.0
489
  *
490
- * @param int $payment_id Payment id.
491
  * @param int $customer_id Customer id.
492
  */
493
  do_action( 'give_customer_pre_remove_payment', $payment_id, $this->id );
@@ -508,7 +509,6 @@ class Give_Customer {
508
 
509
  $this->decrease_purchase_count();
510
  }
511
-
512
  }
513
 
514
  /**
@@ -517,8 +517,8 @@ class Give_Customer {
517
  * @since 1.0
518
  *
519
  * @param bool $payment_removed If the removal was successfuly.
520
- * @param int $payment_id Payment id.
521
- * @param int $customer_id Customer id.
522
  */
523
  do_action( 'give_customer_post_remove_payment', $payment_removed, $payment_id, $this->id );
524
 
@@ -550,7 +550,7 @@ class Give_Customer {
550
  *
551
  * @since 1.0
552
  *
553
- * @param int $count The number to increase by.
554
  * @param int $customer_id Customer id.
555
  */
556
  do_action( 'give_customer_pre_increase_purchase_count', $count, $this->id );
@@ -565,8 +565,8 @@ class Give_Customer {
565
  * @since 1.0
566
  *
567
  * @param int $purchase_count Customer donation count.
568
- * @param int $count The number increased by.
569
- * @param int $customer_id Customer id.
570
  */
571
  do_action( 'give_customer_post_increase_purchase_count', $this->purchase_count, $count, $this->id );
572
 
@@ -601,7 +601,7 @@ class Give_Customer {
601
  *
602
  * @since 1.0
603
  *
604
- * @param int $count The number to decrease by.
605
  * @param int $customer_id Customer id.
606
  */
607
  do_action( 'give_customer_pre_decrease_purchase_count', $count, $this->id );
@@ -616,8 +616,8 @@ class Give_Customer {
616
  * @since 1.0
617
  *
618
  * @param int $purchase_count Customer donation count.
619
- * @param int $count The number decreased by.
620
- * @param int $customer_id Customer id.
621
  */
622
  do_action( 'give_customer_post_decrease_purchase_count', $this->purchase_count, $count, $this->id );
623
 
@@ -643,8 +643,8 @@ class Give_Customer {
643
  *
644
  * @since 1.0
645
  *
646
- * @param float $value The value to increase by.
647
- * @param int $customer_id Customer id.
648
  */
649
  do_action( 'give_customer_pre_increase_value', $value, $this->id );
650
 
@@ -658,8 +658,8 @@ class Give_Customer {
658
  * @since 1.0
659
  *
660
  * @param float $purchase_value Customer lifetime value.
661
- * @param float $value The value increased by.
662
- * @param int $customer_id Customer id.
663
  */
664
  do_action( 'give_customer_post_increase_value', $this->purchase_value, $value, $this->id );
665
 
@@ -689,8 +689,8 @@ class Give_Customer {
689
  *
690
  * @since 1.0
691
  *
692
- * @param float $value The value to decrease by.
693
- * @param int $customer_id Customer id.
694
  */
695
  do_action( 'give_customer_pre_decrease_value', $value, $this->id );
696
 
@@ -704,8 +704,8 @@ class Give_Customer {
704
  * @since 1.0
705
  *
706
  * @param float $purchase_value Customer lifetime value.
707
- * @param float $value The value decreased by.
708
- * @param int $customer_id Customer id.
709
  */
710
  do_action( 'give_customer_post_decrease_value', $this->purchase_value, $value, $this->id );
711
 
@@ -714,51 +714,50 @@ class Give_Customer {
714
 
715
  /**
716
  * Decrease/Increase a customer's lifetime value.
717
- *
718
- * This function will update donation stat on basis of current amount and new amount donation difference.
719
- * Difference value can positive or negative. Negative value will decrease user donation stat while positive value increase donation stat.
720
- *
721
  * @since 1.0
722
- * @access public
723
  *
724
  * @param float $curr_amount Current Donation amount.
725
- * @param float $new_amount New (changed) Donation amount.
726
  *
727
  * @return mixed If successful, the new donation stat value, otherwise false.
728
  */
729
  public function update_donation_value( $curr_amount, $new_amount ) {
730
- /**
731
- * Payment total difference value can be:
732
- * zero (in case amount not change)
733
- * or -ve (in case amount decrease)
734
- * or +ve (in case amount increase)
735
- */
736
- $payment_total_diff = $new_amount - $curr_amount;
737
-
738
- // We do not need to update donation stat if donation did not change.
739
- if( ! $payment_total_diff ) {
740
- return false;
741
- }
742
-
743
-
744
- if( $payment_total_diff > 0 ) {
745
- $this->increase_value( $payment_total_diff );
746
- } else {
747
- // Pass payment total difference as +ve value to decrease amount from user lifetime stat.
748
- $this->decrease_value( -$payment_total_diff );
749
- }
750
-
751
- return $this->purchase_value;
752
  }
753
 
754
  /**
755
  * Get the parsed notes for a customer as an array.
756
  *
757
  * @since 1.0
758
- * @access public
759
  *
760
  * @param int $length The number of notes to get.
761
- * @param int $paged What note to start at.
762
  *
763
  * @return array The notes requested.
764
  */
@@ -780,7 +779,7 @@ class Give_Customer {
780
  * Get the total number of notes we have after parsing.
781
  *
782
  * @since 1.0
783
- * @access public
784
  *
785
  * @return int The number of notes for the customer.
786
  */
@@ -797,9 +796,9 @@ class Give_Customer {
797
  * Add a note for the customer.
798
  *
799
  * @since 1.0
800
- * @access public
801
  *
802
- * @param string $note The note to add. Default is empty.
803
  *
804
  * @return string|boolean The new note if added successfully, false otherwise.
805
  */
@@ -818,15 +817,15 @@ class Give_Customer {
818
 
819
  $note_string = date_i18n( 'F j, Y H:i:s', current_time( 'timestamp' ) ) . ' - ' . $note;
820
  $new_note = apply_filters( 'give_customer_add_note_string', $note_string );
821
- $notes .= "\n\n" . $new_note;
822
 
823
  /**
824
  * Fires before customer note added.
825
  *
826
  * @since 1.0
827
  *
828
- * @param string $new_note New note to add.
829
- * @param int $customer_id Customer id.
830
  */
831
  do_action( 'give_customer_pre_add_note', $new_note, $this->id );
832
 
@@ -841,9 +840,9 @@ class Give_Customer {
841
  *
842
  * @since 1.0
843
  *
844
- * @param array $customer_notes Customer notes.
845
- * @param string $new_note New note added.
846
- * @param int $customer_id Customer id.
847
  */
848
  do_action( 'give_customer_post_add_note', $this->notes, $new_note, $this->id );
849
 
@@ -856,7 +855,7 @@ class Give_Customer {
856
  * Get the notes column for the customer
857
  *
858
  * @since 1.0
859
- * @access private
860
  *
861
  * @return string The Notes for the customer, non-parsed.
862
  */
@@ -875,7 +874,7 @@ class Give_Customer {
875
  * @access public
876
  *
877
  * @param string $meta_key The meta key to retrieve. Default is empty.
878
- * @param bool $single Whether to return a single value. Default is true.
879
  *
880
  * @return mixed Will be an array if $single is false. Will be value of meta data field if $single is true.
881
  */
@@ -889,9 +888,9 @@ class Give_Customer {
889
  * @since 1.6
890
  * @access public
891
  *
892
- * @param string $meta_key Metadata name. Default is empty.
893
- * @param mixed $meta_value Metadata value.
894
- * @param bool $unique Optional. Whether the same key should not be added. Default is false.
895
  *
896
  * @return bool False for failure. True for success.
897
  */
@@ -905,9 +904,9 @@ class Give_Customer {
905
  * @since 1.6
906
  * @access public
907
  *
908
- * @param string $meta_key Metadata key. Default is empty.
909
- * @param mixed $meta_value Metadata value.
910
- * @param mixed $prev_value Optional. Previous value to check before removing. Default is empty.
911
  *
912
  * @return bool False on failure, true if success.
913
  */
@@ -921,8 +920,8 @@ class Give_Customer {
921
  * @since 1.6
922
  * @access public
923
  *
924
- * @param string $meta_key Metadata name. Default is empty.
925
- * @param mixed $meta_value Optional. Metadata value. Default is empty.
926
  *
927
  * @return bool False for failure. True for success.
928
  */
@@ -934,7 +933,7 @@ class Give_Customer {
934
  * Sanitize the data for update/create
935
  *
936
  * @since 1.0
937
- * @access private
938
  *
939
  * @param array $data The data to sanitize.
940
  *
@@ -988,7 +987,6 @@ class Give_Customer {
988
  break;
989
 
990
  }
991
-
992
  }
993
 
994
  return $data;
@@ -1000,18 +998,18 @@ class Give_Customer {
1000
  * @since 1.7
1001
  * @access public
1002
  *
1003
- * @param string $email The email address to attach to the customer
1004
- * @param bool $primary Allows setting the email added as the primary
1005
  *
1006
  * @return bool If the email was added successfully
1007
  */
1008
  public function add_email( $email = '', $primary = false ) {
1009
- if( ! is_email( $email ) ) {
1010
  return false;
1011
  }
1012
  $existing = new Give_Customer( $email );
1013
 
1014
- if( $existing->id > 0 ) {
1015
  // Email address already belongs to another customer
1016
  return false;
1017
  }
@@ -1048,7 +1046,7 @@ class Give_Customer {
1048
  * @return bool If the email was removed successfully
1049
  */
1050
  public function remove_email( $email = '' ) {
1051
- if( ! is_email( $email ) ) {
1052
  return false;
1053
  }
1054
 
@@ -1074,7 +1072,7 @@ class Give_Customer {
1074
  * @return bool If the email was set as primary successfully
1075
  */
1076
  public function set_primary_email( $new_primary_email = '' ) {
1077
- if( ! is_email( $new_primary_email ) ) {
1078
  return false;
1079
  }
1080
 
@@ -1082,7 +1080,7 @@ class Give_Customer {
1082
 
1083
  $existing = new Give_Customer( $new_primary_email );
1084
 
1085
- if( $existing->id > 0 && (int) $existing->id !== (int) $this->id ) {
1086
  // This email belongs to another customer
1087
  return false;
1088
  }
@@ -1100,7 +1098,7 @@ class Give_Customer {
1100
 
1101
  $ret = $update && $remove && $add;
1102
 
1103
- if( $ret ) {
1104
  $this->email = $new_primary_email;
1105
  }
1106
 
99
  * @since 1.0
100
  * @access public
101
  *
102
+ * @var string
103
  */
104
  public $payment_ids;
105
 
141
  * @since 1.0
142
  * @access public
143
  *
144
+ * @param bool $_id_or_email
145
  * @param bool $by_user_id
146
  */
147
  public function __construct( $_id_or_email = false, $by_user_id = false ) {
148
 
149
  $this->db = new Give_DB_Customers;
150
 
151
+ if (
152
+ false === $_id_or_email
153
+ || ( is_numeric( $_id_or_email ) && (int) $_id_or_email !== absint( $_id_or_email ) )
154
+ ) {
155
  return false;
156
  }
157
 
204
  break;
205
 
206
  }
 
207
  }
208
 
209
  // Get donor's all email including primary email.
210
+ $this->emails = (array) $this->get_meta( 'additional_email', false );
211
  $this->emails = array( 'primary' => $this->email ) + $this->emails;
212
 
213
  // Customer ID and email are the only things that are necessary, make sure they exist.
257
  }
258
 
259
  $defaults = array(
260
+ 'payment_ids' => '',
261
  );
262
 
263
  $args = wp_parse_args( $data, $defaults );
301
  *
302
  * @param bool|int $created False if not a valid creation,
303
  * customer ID if user is found or valid creation.
304
+ * @param array $args Customer attributes.
305
  */
306
  do_action( 'give_customer_post_create', $created, $args );
307
 
332
  *
333
  * @since 1.0
334
  *
335
+ * @param int $customer_id Customer id.
336
+ * @param array $data Customer attributes.
337
  */
338
  do_action( 'give_customer_pre_update', $this->id, $data );
339
 
352
  *
353
  * @since 1.0
354
  *
355
+ * @param bool $updated If the update was successful or not.
356
+ * @param int $customer_id Customer id.
357
+ * @param array $data Customer attributes.
358
  */
359
  do_action( 'give_customer_post_update', $updated, $this->id, $data );
360
 
369
  * @since 1.0
370
  * @access public
371
  *
372
+ * @param int $payment_id The payment ID to attach to the customer.
373
  * @param bool $update_stats For backwards compatibility, if we should increase the stats or not.
374
  *
375
  * @return bool If the attachment was successfuly.
403
  *
404
  * @since 1.0
405
  *
406
+ * @param int $payment_id Payment id.
407
  * @param int $customer_id Customer id.
408
  */
409
  do_action( 'give_customer_pre_attach_payment', $payment_id, $this->id );
424
 
425
  $this->increase_purchase_count();
426
  }
 
427
  }
428
 
429
  /**
432
  * @since 1.0
433
  *
434
  * @param bool $payment_added If the attachment was successfuly.
435
+ * @param int $payment_id Payment id.
436
+ * @param int $customer_id Customer id.
437
  */
438
  do_action( 'give_customer_post_attach_payment', $payment_added, $payment_id, $this->id );
439
 
448
  * @since 1.0
449
  * @access public
450
  *
451
+ * @param int $payment_id The Payment ID to remove.
452
  * @param bool $update_stats For backwards compatibility, if we should increase the stats or not.
453
  *
454
  * @return boolean If the removal was successful.
488
  *
489
  * @since 1.0
490
  *
491
+ * @param int $payment_id Payment id.
492
  * @param int $customer_id Customer id.
493
  */
494
  do_action( 'give_customer_pre_remove_payment', $payment_id, $this->id );
509
 
510
  $this->decrease_purchase_count();
511
  }
 
512
  }
513
 
514
  /**
517
  * @since 1.0
518
  *
519
  * @param bool $payment_removed If the removal was successfuly.
520
+ * @param int $payment_id Payment id.
521
+ * @param int $customer_id Customer id.
522
  */
523
  do_action( 'give_customer_post_remove_payment', $payment_removed, $payment_id, $this->id );
524
 
550
  *
551
  * @since 1.0
552
  *
553
+ * @param int $count The number to increase by.
554
  * @param int $customer_id Customer id.
555
  */
556
  do_action( 'give_customer_pre_increase_purchase_count', $count, $this->id );
565
  * @since 1.0
566
  *
567
  * @param int $purchase_count Customer donation count.
568
+ * @param int $count The number increased by.
569
+ * @param int $customer_id Customer id.
570
  */
571
  do_action( 'give_customer_post_increase_purchase_count', $this->purchase_count, $count, $this->id );
572
 
601
  *
602
  * @since 1.0
603
  *
604
+ * @param int $count The number to decrease by.
605
  * @param int $customer_id Customer id.
606
  */
607
  do_action( 'give_customer_pre_decrease_purchase_count', $count, $this->id );
616
  * @since 1.0
617
  *
618
  * @param int $purchase_count Customer donation count.
619
+ * @param int $count The number decreased by.
620
+ * @param int $customer_id Customer id.
621
  */
622
  do_action( 'give_customer_post_decrease_purchase_count', $this->purchase_count, $count, $this->id );
623
 
643
  *
644
  * @since 1.0
645
  *
646
+ * @param float $value The value to increase by.
647
+ * @param int $customer_id Customer id.
648
  */
649
  do_action( 'give_customer_pre_increase_value', $value, $this->id );
650
 
658
  * @since 1.0
659
  *
660
  * @param float $purchase_value Customer lifetime value.
661
+ * @param float $value The value increased by.
662
+ * @param int $customer_id Customer id.
663
  */
664
  do_action( 'give_customer_post_increase_value', $this->purchase_value, $value, $this->id );
665
 
689
  *
690
  * @since 1.0
691
  *
692
+ * @param float $value The value to decrease by.
693
+ * @param int $customer_id Customer id.
694
  */
695
  do_action( 'give_customer_pre_decrease_value', $value, $this->id );
696
 
704
  * @since 1.0
705
  *
706
  * @param float $purchase_value Customer lifetime value.
707
+ * @param float $value The value decreased by.
708
+ * @param int $customer_id Customer id.
709
  */
710
  do_action( 'give_customer_post_decrease_value', $this->purchase_value, $value, $this->id );
711
 
714
 
715
  /**
716
  * Decrease/Increase a customer's lifetime value.
717
+ *
718
+ * This function will update donation stat on basis of current amount and new amount donation difference.
719
+ * Difference value can positive or negative. Negative value will decrease user donation stat while positive value increase donation stat.
720
+ *
721
  * @since 1.0
722
+ * @access public
723
  *
724
  * @param float $curr_amount Current Donation amount.
725
+ * @param float $new_amount New (changed) Donation amount.
726
  *
727
  * @return mixed If successful, the new donation stat value, otherwise false.
728
  */
729
  public function update_donation_value( $curr_amount, $new_amount ) {
730
+ /**
731
+ * Payment total difference value can be:
732
+ * zero (in case amount not change)
733
+ * or -ve (in case amount decrease)
734
+ * or +ve (in case amount increase)
735
+ */
736
+ $payment_total_diff = $new_amount - $curr_amount;
737
+
738
+ // We do not need to update donation stat if donation did not change.
739
+ if ( ! $payment_total_diff ) {
740
+ return false;
741
+ }
742
+
743
+ if ( $payment_total_diff > 0 ) {
744
+ $this->increase_value( $payment_total_diff );
745
+ } else {
746
+ // Pass payment total difference as +ve value to decrease amount from user lifetime stat.
747
+ $this->decrease_value( - $payment_total_diff );
748
+ }
749
+
750
+ return $this->purchase_value;
 
751
  }
752
 
753
  /**
754
  * Get the parsed notes for a customer as an array.
755
  *
756
  * @since 1.0
757
+ * @access public
758
  *
759
  * @param int $length The number of notes to get.
760
+ * @param int $paged What note to start at.
761
  *
762
  * @return array The notes requested.
763
  */
779
  * Get the total number of notes we have after parsing.
780
  *
781
  * @since 1.0
782
+ * @access public
783
  *
784
  * @return int The number of notes for the customer.
785
  */
796
  * Add a note for the customer.
797
  *
798
  * @since 1.0
799
+ * @access public
800
  *
801
+ * @param string $note The note to add. Default is empty.
802
  *
803
  * @return string|boolean The new note if added successfully, false otherwise.
804
  */
817
 
818
  $note_string = date_i18n( 'F j, Y H:i:s', current_time( 'timestamp' ) ) . ' - ' . $note;
819
  $new_note = apply_filters( 'give_customer_add_note_string', $note_string );
820
+ $notes .= "\n\n" . $new_note;
821
 
822
  /**
823
  * Fires before customer note added.
824
  *
825
  * @since 1.0
826
  *
827
+ * @param string $new_note New note to add.
828
+ * @param int $customer_id Customer id.
829
  */
830
  do_action( 'give_customer_pre_add_note', $new_note, $this->id );
831
 
840
  *
841
  * @since 1.0
842
  *
843
+ * @param array $customer_notes Customer notes.
844
+ * @param string $new_note New note added.
845
+ * @param int $customer_id Customer id.
846
  */
847
  do_action( 'give_customer_post_add_note', $this->notes, $new_note, $this->id );
848
 
855
  * Get the notes column for the customer
856
  *
857
  * @since 1.0
858
+ * @access private
859
  *
860
  * @return string The Notes for the customer, non-parsed.
861
  */
874
  * @access public
875
  *
876
  * @param string $meta_key The meta key to retrieve. Default is empty.
877
+ * @param bool $single Whether to return a single value. Default is true.
878
  *
879
  * @return mixed Will be an array if $single is false. Will be value of meta data field if $single is true.
880
  */
888
  * @since 1.6
889
  * @access public
890
  *
891
+ * @param string $meta_key Metadata name. Default is empty.
892
+ * @param mixed $meta_value Metadata value.
893
+ * @param bool $unique Optional. Whether the same key should not be added. Default is false.
894
  *
895
  * @return bool False for failure. True for success.
896
  */
904
  * @since 1.6
905
  * @access public
906
  *
907
+ * @param string $meta_key Metadata key. Default is empty.
908
+ * @param mixed $meta_value Metadata value.
909
+ * @param mixed $prev_value Optional. Previous value to check before removing. Default is empty.
910
  *
911
  * @return bool False on failure, true if success.
912
  */
920
  * @since 1.6
921
  * @access public
922
  *
923
+ * @param string $meta_key Metadata name. Default is empty.
924
+ * @param mixed $meta_value Optional. Metadata value. Default is empty.
925
  *
926
  * @return bool False for failure. True for success.
927
  */
933
  * Sanitize the data for update/create
934
  *
935
  * @since 1.0
936
+ * @access private
937
  *
938
  * @param array $data The data to sanitize.
939
  *
987
  break;
988
 
989
  }
 
990
  }
991
 
992
  return $data;
998
  * @since 1.7
999
  * @access public
1000
  *
1001
+ * @param string $email The email address to attach to the customer
1002
+ * @param bool $primary Allows setting the email added as the primary
1003
  *
1004
  * @return bool If the email was added successfully
1005
  */
1006
  public function add_email( $email = '', $primary = false ) {
1007
+ if ( ! is_email( $email ) ) {
1008
  return false;
1009
  }
1010
  $existing = new Give_Customer( $email );
1011
 
1012
+ if ( $existing->id > 0 ) {
1013
  // Email address already belongs to another customer
1014
  return false;
1015
  }
1046
  * @return bool If the email was removed successfully
1047
  */
1048
  public function remove_email( $email = '' ) {
1049
+ if ( ! is_email( $email ) ) {
1050
  return false;
1051
  }
1052
 
1072
  * @return bool If the email was set as primary successfully
1073
  */
1074
  public function set_primary_email( $new_primary_email = '' ) {
1075
+ if ( ! is_email( $new_primary_email ) ) {
1076
  return false;
1077
  }
1078
 
1080
 
1081
  $existing = new Give_Customer( $new_primary_email );
1082
 
1083
+ if ( $existing->id > 0 && (int) $existing->id !== (int) $this->id ) {
1084
  // This email belongs to another customer
1085
  return false;
1086
  }
1098
 
1099
  $ret = $update && $remove && $add;
1100
 
1101
+ if ( $ret ) {
1102
  $this->email = $new_primary_email;
1103
  }
1104
 
includes/class-give-license-handler.php CHANGED
@@ -103,7 +103,7 @@ if ( ! class_exists( 'Give_License' ) ) :
103
  *
104
  * @var string
105
  */
106
- private $api_url = 'https://givewp.com/edd-sl-api/';
107
 
108
  /**
109
  * Account URL
@@ -113,7 +113,7 @@ if ( ! class_exists( 'Give_License' ) ) :
113
  *
114
  * @var null|string
115
  */
116
- private $account_url = 'https://givewp.com/my-account/';
117
 
118
  /**
119
  * Ccheckout URL
@@ -133,33 +133,35 @@ if ( ! class_exists( 'Give_License' ) ) :
133
  * @access public
134
  * @since 1.0
135
  *
136
- * @param string $_file
137
- * @param string $_item_name
138
- * @param string $_version
139
- * @param string $_author
140
- * @param string $_optname
141
- * @param string $_api_url
142
- * @param string $_checkout_url
143
- * @param string $_account_url
144
  */
145
  public function __construct( $_file, $_item_name, $_version, $_author, $_optname = null, $_api_url = null, $_checkout_url = null, $_account_url = null ) {
 
146
  $give_options = give_get_settings();
147
 
148
- $this->file = $_file;
149
- $this->item_name = $_item_name;
150
- $this->item_shortname = 'give_' . preg_replace( '/[^a-zA-Z0-9_\s]/', '', str_replace( ' ', '_', strtolower( $this->item_name ) ) );
151
- $this->version = $_version;
152
- $this->license = isset( $give_options[ $this->item_shortname . '_license_key' ] ) ? trim( $give_options[ $this->item_shortname . '_license_key' ] ) : '';
153
- $this->license_data = get_option( $this->item_shortname . '_license_active' );
154
- $this->author = $_author;
155
- $this->api_url = is_null( $_api_url ) ? $this->api_url : $_api_url;
156
- $this->checkout_url = is_null( $_checkout_url ) ? $this->checkout_url : $_checkout_url;
157
- $this->account_url = is_null( $_account_url ) ? $this->account_url : $_account_url;
 
158
 
159
  // Setup hooks
160
  $this->includes();
161
  $this->hooks();
162
- //$this->auto_updater();
163
  }
164
 
165
  /**
@@ -173,6 +175,7 @@ if ( ! class_exists( 'Give_License' ) ) :
173
  * @return void
174
  */
175
  private function includes() {
 
176
  if ( ! class_exists( 'EDD_SL_Plugin_Updater' ) ) {
177
  require_once 'admin/EDD_SL_Plugin_Updater.php';
178
  }
@@ -201,7 +204,6 @@ if ( ! class_exists( 'Give_License' ) ) :
201
 
202
  // Updater
203
  add_action( 'admin_init', array( $this, 'auto_updater' ), 0 );
204
-
205
  add_action( 'admin_notices', array( $this, 'notices' ) );
206
 
207
  // Check license weekly.
@@ -211,31 +213,33 @@ if ( ! class_exists( 'Give_License' ) ) :
211
  // Check subscription weekly.
212
  add_action( 'give_weekly_scheduled_events', array( $this, 'weekly_subscription_check' ) );
213
  add_action( 'give_validate_license_when_site_migrated', array( $this, 'weekly_subscription_check' ) );
 
 
 
 
 
214
  }
215
 
 
216
  /**
217
  * Auto Updater
218
  *
219
  * @access private
220
  * @since 1.0
221
  *
222
- * @return bool
223
  */
224
  public function auto_updater() {
225
 
226
- if ( ! $this->is_valid_license() ) {
227
- return false;
228
- }
229
-
230
  // Setup the updater
231
- $give_updater = new EDD_SL_Plugin_Updater(
232
  $this->api_url,
233
  $this->file,
234
  array(
235
  'version' => $this->version,
236
  'license' => $this->license,
237
  'item_name' => $this->item_name,
238
- 'author' => $this->author
239
  )
240
  );
241
  }
@@ -261,15 +265,15 @@ if ( ! class_exists( 'Give_License' ) ) :
261
  'desc' => '',
262
  'type' => 'license_key',
263
  'options' => array(
264
- 'license' => get_option( $this->item_shortname . '_license_active' ),
265
- 'shortname' => $this->item_shortname,
266
- 'item_name' => $this->item_name,
267
- 'api_url' => $this->api_url,
268
- 'checkout_url' => $this->checkout_url,
269
- 'account_url' => $this->account_url
270
  ),
271
- 'size' => 'regular'
272
- )
273
  );
274
 
275
  return array_merge( $settings, $give_license_settings );
@@ -291,10 +295,10 @@ if ( ! class_exists( 'Give_License' ) ) :
291
 
292
  $give_license_settings = array(
293
  array(
294
- 'name' => esc_html__( 'Add-on Licenses', 'give' ),
295
  'desc' => '<hr>',
296
  'type' => 'give_title',
297
- 'id' => 'give_title'
298
  ),
299
  );
300
 
@@ -319,9 +323,7 @@ if ( ! class_exists( 'Give_License' ) ) :
319
 
320
  // Security check.
321
  if ( ! wp_verify_nonce( $_REQUEST[ $this->item_shortname . '_license_key-nonce' ], $this->item_shortname . '_license_key-nonce' ) ) {
322
-
323
- wp_die( esc_html__( 'Nonce verification failed.', 'give' ), esc_html__( 'Error', 'give' ), array( 'response' => 403 ) );
324
-
325
  }
326
 
327
  // Check if user have correct permissions.
@@ -330,18 +332,20 @@ if ( ! class_exists( 'Give_License' ) ) :
330
  }
331
 
332
  // Allow third party addon developers to handle license activation.
333
- if( $this->__is_third_party_addon() ){
334
  do_action( 'give_activate_license', $this );
 
335
  return;
336
  }
337
 
338
  // Delete previous license setting if a empty license key submitted.
339
  if ( empty( $_POST[ $this->item_shortname . '_license_key' ] ) ) {
340
  delete_option( $this->item_shortname . '_license_active' );
 
341
  return;
342
  }
343
 
344
- // Do not simultaneously activate any addon if user want to deactivate any addon.
345
  foreach ( $_POST as $key => $value ) {
346
  if ( false !== strpos( $key, 'license_key_deactivate' ) ) {
347
  // Don't activate a key when deactivating a different key
@@ -349,7 +353,6 @@ if ( ! class_exists( 'Give_License' ) ) :
349
  }
350
  }
351
 
352
-
353
  // Check if plugin previously installed.
354
  if ( $this->is_valid_license() ) {
355
  return;
@@ -359,7 +362,7 @@ if ( ! class_exists( 'Give_License' ) ) :
359
  $license = sanitize_text_field( $_POST[ $this->item_shortname . '_license_key' ] );
360
 
361
  // Bailout.
362
- if( empty( $license ) ) {
363
  return;
364
  }
365
 
@@ -368,10 +371,10 @@ if ( ! class_exists( 'Give_License' ) ) :
368
 
369
  // Data to send to the API
370
  $api_params = array(
371
- 'edd_action' => 'activate_license', //never change from "edd_" to "give_"!
372
  'license' => $license,
373
  'item_name' => urlencode( $this->item_name ),
374
- 'url' => home_url()
375
  );
376
 
377
  // Call the API
@@ -380,7 +383,7 @@ if ( ! class_exists( 'Give_License' ) ) :
380
  array(
381
  'timeout' => 15,
382
  'sslverify' => false,
383
- 'body' => $api_params
384
  )
385
  );
386
 
@@ -396,6 +399,9 @@ if ( ! class_exists( 'Give_License' ) ) :
396
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
397
  update_option( $this->item_shortname . '_license_active', $license_data );
398
 
 
 
 
399
  // Check subscription for license key and store this to db (if any).
400
  $this->__single_subscription_check();
401
  }
@@ -417,18 +423,17 @@ if ( ! class_exists( 'Give_License' ) ) :
417
  }
418
 
419
  if ( ! wp_verify_nonce( $_REQUEST[ $this->item_shortname . '_license_key-nonce' ], $this->item_shortname . '_license_key-nonce' ) ) {
420
-
421
- wp_die( esc_html__( 'Nonce verification failed.', 'give' ), esc_html__( 'Error', 'give' ), array( 'response' => 403 ) );
422
-
423
  }
424
 
425
  if ( ! current_user_can( 'manage_give_settings' ) ) {
426
  return;
427
  }
428
 
429
- // Allow third party addon developers to handle license deactivation.
430
- if( $this->__is_third_party_addon() ){
431
  do_action( 'give_deactivate_license', $this );
 
432
  return;
433
  }
434
 
@@ -437,10 +442,10 @@ if ( ! class_exists( 'Give_License' ) ) :
437
 
438
  // Data to send to the API
439
  $api_params = array(
440
- 'edd_action' => 'deactivate_license', //never change from "edd_" to "give_"!
441
  'license' => $this->license,
442
  'item_name' => urlencode( $this->item_name ),
443
- 'url' => home_url()
444
  );
445
 
446
  // Call the API
@@ -449,7 +454,7 @@ if ( ! class_exists( 'Give_License' ) ) :
449
  array(
450
  'timeout' => 15,
451
  'sslverify' => false,
452
- 'body' => $api_params
453
  )
454
  );
455
 
@@ -461,12 +466,19 @@ if ( ! class_exists( 'Give_License' ) ) :
461
  // Decode the license data
462
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
463
 
464
- // Remove license data.
465
- delete_option( $this->item_shortname . '_license_active' );
466
 
467
- // Remove license key from subscriptions if exist.
468
- $this->__remove_license_key_from_subscriptions();
469
- }
 
 
 
 
 
 
 
470
  }
471
 
472
  /**
@@ -479,27 +491,28 @@ if ( ! class_exists( 'Give_License' ) ) :
479
  */
480
  public function weekly_license_check() {
481
 
482
- if( ! empty( $_POST['give_settings'] ) ) {
483
  // Don't fire when saving settings
484
  return false;
485
  }
486
 
487
- if( empty( $this->license ) ) {
488
  return false;
489
  }
490
 
491
- // Allow third party addon developers to handle their license check.
492
- if( $this->__is_third_party_addon() ){
493
  do_action( 'give_weekly_license_check', $this );
 
494
  return false;
495
  }
496
 
497
  // Data to send in our API request.
498
  $api_params = array(
499
- 'edd_action'=> 'check_license',
500
- 'license' => $this->license,
501
- 'item_name' => urlencode( $this->item_name ),
502
- 'url' => home_url()
503
  );
504
 
505
  // Call the API.
@@ -508,7 +521,7 @@ if ( ! class_exists( 'Give_License' ) ) :
508
  array(
509
  'timeout' => 15,
510
  'sslverify' => false,
511
- 'body' => $api_params
512
  )
513
  );
514
 
@@ -531,24 +544,25 @@ if ( ! class_exists( 'Give_License' ) ) :
531
  */
532
  public function weekly_subscription_check() {
533
 
534
- if( ! empty( $_POST['give_settings'] ) ) {
535
  // Don't fire when saving settings
536
  return false;
537
  }
538
 
539
  // Remove old subscription data.
540
- if( absint( get_option( '_give_subscriptions_edit_last', true ) ) < current_time( 'timestamp' , 1 ) ){
541
  delete_option( 'give_subscriptions' );
542
- update_option( '_give_subscriptions_edit_last', strtotime( '+ 1 day', current_time( 'timestamp' , 1 ) ) );
543
  }
544
 
545
- if( empty( $this->license ) ) {
546
  return false;
547
  }
548
 
549
- // Allow third party addon developers to handle there subscription check.
550
- if( $this->__is_third_party_addon() ){
551
  do_action( 'give_weekly_subscription_check', $this );
 
552
  return false;
553
  }
554
 
@@ -557,13 +571,13 @@ if ( ! class_exists( 'Give_License' ) ) :
557
 
558
  // Data to send in our API request.
559
  $api_params = array(
560
- // Do not get confuse with edd_action check_subscription.
561
  // By default edd software licensing api does not have api to check subscription.
562
- // This is custom feature to check subscriptions.
563
- 'edd_action'=> 'check_subscription',
564
- 'license' => $this->license,
565
- 'item_name' => urlencode( $this->item_name ),
566
- 'url' => home_url()
567
  );
568
 
569
  // Call the API
@@ -572,7 +586,7 @@ if ( ! class_exists( 'Give_License' ) ) :
572
  array(
573
  'timeout' => 15,
574
  'sslverify' => false,
575
- 'body' => $api_params
576
  )
577
  );
578
 
@@ -583,17 +597,17 @@ if ( ! class_exists( 'Give_License' ) ) :
583
 
584
  $subscription_data = json_decode( wp_remote_retrieve_body( $response ), true );
585
 
586
- if( ! empty( $subscription_data['success'] ) && absint( $subscription_data['success'] ) ) {
587
  $subscriptions = get_option( 'give_subscriptions', array() );
588
 
589
  // Update subscription data only if subscription does not exist already.
590
- if( ! array_key_exists( $subscription_data['id'], $subscriptions ) ) {
591
- $subscriptions[ $subscription_data['id'] ] = $subscription_data;
592
  $subscriptions[ $subscription_data['id'] ]['licenses'] = array();
593
  }
594
 
595
  // Store licenses for subscription.
596
- if( ! in_array( $this->license, $subscriptions[ $subscription_data['id'] ]['licenses'] ) ) {
597
  $subscriptions[ $subscription_data['id'] ]['licenses'][] = $this->license;
598
  }
599
 
@@ -615,19 +629,19 @@ if ( ! class_exists( 'Give_License' ) ) :
615
  return false;
616
  }
617
 
618
- if( empty( $this->license ) ) {
619
  return false;
620
  }
621
 
622
  // Data to send in our API request.
623
  $api_params = array(
624
- // Do not get confuse with edd_action check_subscription.
625
  // By default edd software licensing api does not have api to check subscription.
626
- // This is custom feature to check subscriptions.
627
- 'edd_action'=> 'check_subscription',
628
- 'license' => $this->license,
629
- 'item_name' => urlencode( $this->item_name ),
630
- 'url' => home_url()
631
  );
632
 
633
  // Call the API
@@ -636,7 +650,7 @@ if ( ! class_exists( 'Give_License' ) ) :
636
  array(
637
  'timeout' => 15,
638
  'sslverify' => false,
639
- 'body' => $api_params
640
  )
641
  );
642
 
@@ -647,17 +661,17 @@ if ( ! class_exists( 'Give_License' ) ) :
647
 
648
  $subscription_data = json_decode( wp_remote_retrieve_body( $response ), true );
649
 
650
- if( ! empty( $subscription_data['success'] ) && absint( $subscription_data['success'] ) ) {
651
  $subscriptions = get_option( 'give_subscriptions', array() );
652
 
653
  // Update subscription data only if subscription does not exist already.
654
- if( ! array_key_exists( $subscription_data['id'], $subscriptions ) ) {
655
- $subscriptions[ $subscription_data['id'] ] = $subscription_data;
656
  $subscriptions[ $subscription_data['id'] ]['licenses'] = array();
657
  }
658
 
659
  // Store licenses for subscription.
660
- if( ! in_array( $this->license, $subscriptions[ $subscription_data['id'] ]['licenses'] ) ) {
661
  $subscriptions[ $subscription_data['id'] ]['licenses'][] = $this->license;
662
  }
663
 
@@ -674,61 +688,70 @@ if ( ! class_exists( 'Give_License' ) ) :
674
  * @return void
675
  */
676
  public function notices() {
677
- static $showed_invalid_message;
678
- static $showed_subscriptions_message;
679
- static $addon_license_key_in_subscriptions;
680
-
681
- // Set default value.
682
- $addon_license_key_in_subscriptions = ! empty( $addon_license_key_in_subscriptions ) ? $addon_license_key_in_subscriptions : array();
683
 
684
- if( empty( $this->license ) ) {
685
- return;
686
- }
687
-
688
- if( ! current_user_can( 'manage_shop_settings' ) ) {
689
  return;
690
  }
691
 
692
  // Do not show licenses notices on license tab.
693
- if( ! empty( $_GET['tab'] ) && 'licenses' === $_GET['tab'] ) {
694
  return;
695
  }
696
 
697
- $messages = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
698
 
699
  // Get subscriptions.
700
  $subscriptions = get_option( 'give_subscriptions' );
701
 
702
  // Show subscription messages.
703
- if( ! empty( $subscriptions ) && ! $showed_subscriptions_message ) {
704
 
705
  foreach ( $subscriptions as $subscription ) {
706
  // Subscription expires timestamp.
707
  $subscription_expires = strtotime( $subscription['expires'] );
708
 
709
  // Start showing subscriptions message before one week of renewal date.
710
- if( strtotime( '- 7 days', $subscription_expires ) > current_time( 'timestamp', 1 ) ) {
711
  continue;
712
  }
713
 
714
  // Check if subscription message already exist in messages.
715
- if( array_key_exists( $subscription['id'], $messages ) ) {
716
  continue;
717
  }
718
 
719
- if( ( ! $this->__is_notice_dismissed( $subscription['id'] ) && 'active' !== $subscription['status'] ) ) {
720
 
721
- if( strtotime( $subscription['expires'] ) < current_time( 'timestamp', 1 ) ) {// Check if license already expired.
722
- $messages[$subscription['id']] = sprintf(
723
- __( 'You Give addon license expired for payment <a href="%s" target="_blank">#%d</a>. <a href="%s" target="_blank">Click to renew an existing license</a> or <a href="%s">Click here if already renewed</a>.', 'give' ),
724
  urldecode( $subscription['invoice_url'] ),
725
  $subscription['payment_id'],
726
  "{$this->checkout_url}?edd_license_key={$subscription['license_key']}&utm_campaign=admin&utm_source=licenses&utm_medium=expired",
727
  esc_url( add_query_arg( '_give_hide_license_notices_permanently', $subscription['id'], $_SERVER['REQUEST_URI'] ) )
728
  );
729
- }else{
730
- $messages[$subscription['id']] = sprintf(
731
- __( 'You Give addon license will expire in %s for payment <a href="%s" target="_blank">#%d</a>. <a href="%s" target="_blank">Click to renew an existing license</a> or <a href="%s">Click here if already renewed</a>.', 'give' ),
732
  human_time_diff( current_time( 'timestamp', 1 ), strtotime( $subscription['expires'] ) ),
733
  urldecode( $subscription['invoice_url'] ),
734
  $subscription['payment_id'],
@@ -738,17 +761,22 @@ if ( ! class_exists( 'Give_License' ) ) :
738
  }
739
  }
740
 
741
- // Stop validation for these licencse keys.
742
  $addon_license_key_in_subscriptions = array_merge( $addon_license_key_in_subscriptions, $subscription['licenses'] );
743
- }
744
  $showed_subscriptions_message = true;
745
- }
746
 
747
  // Show non subscription addon messages.
748
- if( ! in_array( $this->license, $addon_license_key_in_subscriptions ) && ! $this->__is_notice_dismissed( 'general' ) && ! $this->is_valid_license() && empty( $showed_invalid_message ) ) {
749
-
750
- $messages['general'] = sprintf(
751
- __( 'You have invalid or expired license keys for Give Addon. Please go to the <a href="%s">licenses page</a> to correct this issue.', 'give' ),
 
 
 
 
 
752
  admin_url( 'edit.php?post_type=give_forms&page=give-settings&tab=licenses' )
753
  );
754
  $showed_invalid_message = true;
@@ -756,11 +784,14 @@ if ( ! class_exists( 'Give_License' ) ) :
756
  }
757
 
758
  // Print messages.
759
- if( ! empty( $messages ) ) {
760
- foreach( $messages as $notice_id => $message ) {
761
- echo '<div class="notice notice-error is-dismissible give-license-notice" data-dismiss-notice-shortly="' . esc_url( add_query_arg( '_give_hide_license_notices_shortly', $notice_id, $_SERVER['REQUEST_URI'] ) ) . '">';
762
- echo '<p>' . $message . '</p>';
763
- echo '</div>';
 
 
 
764
  }
765
  }
766
  }
@@ -774,7 +805,7 @@ if ( ! class_exists( 'Give_License' ) ) :
774
  * @return bool
775
  */
776
  public function is_valid_license() {
777
- if( apply_filters( 'give_is_valid_license' , ( is_object( $this->license_data ) && ! empty( $this->license_data ) && property_exists( $this->license_data, 'license' )&& 'valid' === $this->license_data->license ) ) ) {
778
  return true;
779
  }
780
 
@@ -804,20 +835,20 @@ if ( ! class_exists( 'Give_License' ) ) :
804
  *
805
  * @return void|bool
806
  */
807
- private function __remove_license_key_from_subscriptions(){
808
  $subscriptions = get_option( 'give_subscriptions', array() );
809
 
810
  // Bailout.
811
- if( empty( $this->license ) ) {
812
  return false;
813
  }
814
 
815
- if( ! empty( $subscriptions ) ) {
816
  foreach ( $subscriptions as $subscription_id => $subscription ) {
817
  $license_index = array_search( $this->license, $subscription['licenses'] );
818
- if( false !== $license_index ) {
819
  // Remove license key.
820
- unset( $subscriptions[ $subscription_id ]['licenses'][$license_index] );
821
 
822
  // Rearrange license keys.
823
  $subscriptions[ $subscription_id ]['licenses'] = array_values( $subscriptions[ $subscription_id ]['licenses'] );
@@ -838,7 +869,7 @@ if ( ! class_exists( 'Give_License' ) ) :
838
  *
839
  * @return void
840
  */
841
- private function __remove_license_notices_show_blocker(){
842
  global $wpdb;
843
 
844
  // Delete permanent notice blocker.
@@ -876,8 +907,8 @@ if ( ! class_exists( 'Give_License' ) ) :
876
  *
877
  * @return bool
878
  */
879
- private function __is_notice_dismissed( $notice_id ){
880
- $current_user = wp_get_current_user();
881
  $is_notice_dismissed = false;
882
 
883
  // Ge is notice dismissed permanently.
@@ -885,13 +916,60 @@ if ( ! class_exists( 'Give_License' ) ) :
885
  ? $already_dismiss_notices
886
  : array();
887
 
888
-
889
- if( in_array( $notice_id, $already_dismiss_notices ) || get_transient( "_give_hide_license_notices_shortly_{$current_user->ID}_{$notice_id}" ) ) {
890
- $is_notice_dismissed = true;
 
 
891
  }
892
 
893
  return $is_notice_dismissed;
894
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
895
  }
896
 
897
  endif; // end class_exists check
103
  *
104
  * @var string
105
  */
106
+ private $api_url = 'https://givewp.com/edd-sl-api/';
107
 
108
  /**
109
  * Account URL
113
  *
114
  * @var null|string
115
  */
116
+ private $account_url = 'https://givewp.com/my-account/';
117
 
118
  /**
119
  * Ccheckout URL
133
  * @access public
134
  * @since 1.0
135
  *
136
+ * @param string $_file
137
+ * @param string $_item_name
138
+ * @param string $_version
139
+ * @param string $_author
140
+ * @param string $_optname
141
+ * @param string $_api_url
142
+ * @param string $_checkout_url
143
+ * @param string $_account_url
144
  */
145
  public function __construct( $_file, $_item_name, $_version, $_author, $_optname = null, $_api_url = null, $_checkout_url = null, $_account_url = null ) {
146
+
147
  $give_options = give_get_settings();
148
 
149
+ $this->file = $_file;
150
+ $this->item_name = $_item_name;
151
+ $this->item_shortname = 'give_' . preg_replace( '/[^a-zA-Z0-9_\s]/', '', str_replace( ' ', '_', strtolower( $this->item_name ) ) );
152
+ $this->version = $_version;
153
+ $this->license = isset( $give_options[ $this->item_shortname . '_license_key' ] ) ? trim( $give_options[ $this->item_shortname . '_license_key' ] ) : '';
154
+ $this->license_data = get_option( $this->item_shortname . '_license_active' );
155
+ $this->author = $_author;
156
+ $this->api_url = is_null( $_api_url ) ? $this->api_url : $_api_url;
157
+ $this->checkout_url = is_null( $_checkout_url ) ? $this->checkout_url : $_checkout_url;
158
+ $this->account_url = is_null( $_account_url ) ? $this->account_url : $_account_url;
159
+ $this->auto_updater_obj = null;
160
 
161
  // Setup hooks
162
  $this->includes();
163
  $this->hooks();
164
+ $this->auto_updater();
165
  }
166
 
167
  /**
175
  * @return void
176
  */
177
  private function includes() {
178
+
179
  if ( ! class_exists( 'EDD_SL_Plugin_Updater' ) ) {
180
  require_once 'admin/EDD_SL_Plugin_Updater.php';
181
  }
204
 
205
  // Updater
206
  add_action( 'admin_init', array( $this, 'auto_updater' ), 0 );
 
207
  add_action( 'admin_notices', array( $this, 'notices' ) );
208
 
209
  // Check license weekly.
213
  // Check subscription weekly.
214
  add_action( 'give_weekly_scheduled_events', array( $this, 'weekly_subscription_check' ) );
215
  add_action( 'give_validate_license_when_site_migrated', array( $this, 'weekly_subscription_check' ) );
216
+
217
+ // Show addon notice on plugin page.
218
+ $plugin_name = end( explode( 'plugins/', $this->file ) );
219
+ add_action( "after_plugin_row_{$plugin_name}", array( $this, 'plugin_page_notices' ), 10, 3 );
220
+
221
  }
222
 
223
+
224
  /**
225
  * Auto Updater
226
  *
227
  * @access private
228
  * @since 1.0
229
  *
230
+ * @return void
231
  */
232
  public function auto_updater() {
233
 
 
 
 
 
234
  // Setup the updater
235
+ $this->auto_updater_obj = new EDD_SL_Plugin_Updater(
236
  $this->api_url,
237
  $this->file,
238
  array(
239
  'version' => $this->version,
240
  'license' => $this->license,
241
  'item_name' => $this->item_name,
242
+ 'author' => $this->author,
243
  )
244
  );
245
  }
265
  'desc' => '',
266
  'type' => 'license_key',
267
  'options' => array(
268
+ 'license' => get_option( $this->item_shortname . '_license_active' ),
269
+ 'shortname' => $this->item_shortname,
270
+ 'item_name' => $this->item_name,
271
+ 'api_url' => $this->api_url,
272
+ 'checkout_url' => $this->checkout_url,
273
+ 'account_url' => $this->account_url,
274
  ),
275
+ 'size' => 'regular',
276
+ ),
277
  );
278
 
279
  return array_merge( $settings, $give_license_settings );
295
 
296
  $give_license_settings = array(
297
  array(
298
+ 'name' => __( 'Add-on Licenses', 'give' ),
299
  'desc' => '<hr>',
300
  'type' => 'give_title',
301
+ 'id' => 'give_title',
302
  ),
303
  );
304
 
323
 
324
  // Security check.
325
  if ( ! wp_verify_nonce( $_REQUEST[ $this->item_shortname . '_license_key-nonce' ], $this->item_shortname . '_license_key-nonce' ) ) {
326
+ wp_die( __( 'Nonce verification failed.', 'give' ), __( 'Error', 'give' ), array( 'response' => 403 ) );
 
 
327
  }
328
 
329
  // Check if user have correct permissions.
332
  }
333
 
334
  // Allow third party addon developers to handle license activation.
335
+ if ( $this->__is_third_party_addon() ) {
336
  do_action( 'give_activate_license', $this );
337
+
338
  return;
339
  }
340
 
341
  // Delete previous license setting if a empty license key submitted.
342
  if ( empty( $_POST[ $this->item_shortname . '_license_key' ] ) ) {
343
  delete_option( $this->item_shortname . '_license_active' );
344
+
345
  return;
346
  }
347
 
348
+ // Do not simultaneously activate add-ons if the user want to deactivate a specific add-on.
349
  foreach ( $_POST as $key => $value ) {
350
  if ( false !== strpos( $key, 'license_key_deactivate' ) ) {
351
  // Don't activate a key when deactivating a different key
353
  }
354
  }
355
 
 
356
  // Check if plugin previously installed.
357
  if ( $this->is_valid_license() ) {
358
  return;
362
  $license = sanitize_text_field( $_POST[ $this->item_shortname . '_license_key' ] );
363
 
364
  // Bailout.
365
+ if ( empty( $license ) ) {
366
  return;
367
  }
368
 
371
 
372
  // Data to send to the API
373
  $api_params = array(
374
+ 'edd_action' => 'activate_license', // never change from "edd_" to "give_"!
375
  'license' => $license,
376
  'item_name' => urlencode( $this->item_name ),
377
+ 'url' => home_url(),
378
  );
379
 
380
  // Call the API
383
  array(
384
  'timeout' => 15,
385
  'sslverify' => false,
386
+ 'body' => $api_params,
387
  )
388
  );
389
 
399
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
400
  update_option( $this->item_shortname . '_license_active', $license_data );
401
 
402
+ // Add license key.
403
+ give_update_option( "{$this->item_shortname}_license_key", $license );
404
+
405
  // Check subscription for license key and store this to db (if any).
406
  $this->__single_subscription_check();
407
  }
423
  }
424
 
425
  if ( ! wp_verify_nonce( $_REQUEST[ $this->item_shortname . '_license_key-nonce' ], $this->item_shortname . '_license_key-nonce' ) ) {
426
+ wp_die( __( 'Nonce verification failed.', 'give' ), __( 'Error', 'give' ), array( 'response' => 403 ) );
 
 
427
  }
428
 
429
  if ( ! current_user_can( 'manage_give_settings' ) ) {
430
  return;
431
  }
432
 
433
+ // Allow third party add-on developers to handle license deactivation.
434
+ if ( $this->__is_third_party_addon() ) {
435
  do_action( 'give_deactivate_license', $this );
436
+
437
  return;
438
  }
439
 
442
 
443
  // Data to send to the API
444
  $api_params = array(
445
+ 'edd_action' => 'deactivate_license', // never change from "edd_" to "give_"!
446
  'license' => $this->license,
447
  'item_name' => urlencode( $this->item_name ),
448
+ 'url' => home_url(),
449
  );
450
 
451
  // Call the API
454
  array(
455
  'timeout' => 15,
456
  'sslverify' => false,
457
+ 'body' => $api_params,
458
  )
459
  );
460
 
466
  // Decode the license data
467
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
468
 
469
+ // Ensure deactivated successfully.
470
+ if ( isset( $license_data->success ) ) {
471
 
472
+ // Remove license data.
473
+ delete_option( $this->item_shortname . '_license_active' );
474
+
475
+ give_delete_option( $this->item_shortname . '_license_key' );
476
+
477
+ // Remove license key from subscriptions if exist.
478
+ $this->__remove_license_key_from_subscriptions();
479
+
480
+ }
481
+ }// End if().
482
  }
483
 
484
  /**
491
  */
492
  public function weekly_license_check() {
493
 
494
+ if ( ! empty( $_POST['give_settings'] ) ) {
495
  // Don't fire when saving settings
496
  return false;
497
  }
498
 
499
+ if ( empty( $this->license ) ) {
500
  return false;
501
  }
502
 
503
+ // Allow third party add-on developers to handle their license check.
504
+ if ( $this->__is_third_party_addon() ) {
505
  do_action( 'give_weekly_license_check', $this );
506
+
507
  return false;
508
  }
509
 
510
  // Data to send in our API request.
511
  $api_params = array(
512
+ 'edd_action' => 'check_license',
513
+ 'license' => $this->license,
514
+ 'item_name' => urlencode( $this->item_name ),
515
+ 'url' => home_url(),
516
  );
517
 
518
  // Call the API.
521
  array(
522
  'timeout' => 15,
523
  'sslverify' => false,
524
+ 'body' => $api_params,
525
  )
526
  );
527
 
544
  */
545
  public function weekly_subscription_check() {
546
 
547
+ if ( ! empty( $_POST['give_settings'] ) ) {
548
  // Don't fire when saving settings
549
  return false;
550
  }
551
 
552
  // Remove old subscription data.
553
+ if ( absint( get_option( '_give_subscriptions_edit_last', true ) ) < current_time( 'timestamp', 1 ) ) {
554
  delete_option( 'give_subscriptions' );
555
+ update_option( '_give_subscriptions_edit_last', strtotime( '+ 1 day', current_time( 'timestamp', 1 ) ) );
556
  }
557
 
558
+ if ( empty( $this->license ) ) {
559
  return false;
560
  }
561
 
562
+ // Allow third party add-on developers to handle their subscription check.
563
+ if ( $this->__is_third_party_addon() ) {
564
  do_action( 'give_weekly_subscription_check', $this );
565
+
566
  return false;
567
  }
568
 
571
 
572
  // Data to send in our API request.
573
  $api_params = array(
574
+ // Do not get confused with edd_action check_subscription.
575
  // By default edd software licensing api does not have api to check subscription.
576
+ // This is a custom feature to check subscriptions.
577
+ 'edd_action' => 'check_subscription',
578
+ 'license' => $this->license,
579
+ 'item_name' => urlencode( $this->item_name ),
580
+ 'url' => home_url(),
581
  );
582
 
583
  // Call the API
586
  array(
587
  'timeout' => 15,
588
  'sslverify' => false,
589
+ 'body' => $api_params,
590
  )
591
  );
592
 
597
 
598
  $subscription_data = json_decode( wp_remote_retrieve_body( $response ), true );
599
 
600
+ if ( ! empty( $subscription_data['success'] ) && absint( $subscription_data['success'] ) ) {
601
  $subscriptions = get_option( 'give_subscriptions', array() );
602
 
603
  // Update subscription data only if subscription does not exist already.
604
+ if ( ! array_key_exists( $subscription_data['id'], $subscriptions ) ) {
605
+ $subscriptions[ $subscription_data['id'] ] = $subscription_data;
606
  $subscriptions[ $subscription_data['id'] ]['licenses'] = array();
607
  }
608
 
609
  // Store licenses for subscription.
610
+ if ( ! in_array( $this->license, $subscriptions[ $subscription_data['id'] ]['licenses'] ) ) {
611
  $subscriptions[ $subscription_data['id'] ]['licenses'][] = $this->license;
612
  }
613
 
629
  return false;
630
  }
631
 
632
+ if ( empty( $this->license ) ) {
633
  return false;
634
  }
635
 
636
  // Data to send in our API request.
637
  $api_params = array(
638
+ // Do not get confused with edd_action check_subscription.
639
  // By default edd software licensing api does not have api to check subscription.
640
+ // This is a custom feature to check subscriptions.
641
+ 'edd_action' => 'check_subscription',
642
+ 'license' => $this->license,
643
+ 'item_name' => urlencode( $this->item_name ),
644
+ 'url' => home_url(),
645
  );
646
 
647
  // Call the API
650
  array(
651
  'timeout' => 15,
652
  'sslverify' => false,
653
+ 'body' => $api_params,
654
  )
655
  );
656
 
661
 
662
  $subscription_data = json_decode( wp_remote_retrieve_body( $response ), true );
663
 
664
+ if ( ! empty( $subscription_data['success'] ) && absint( $subscription_data['success'] ) ) {
665
  $subscriptions = get_option( 'give_subscriptions', array() );
666
 
667
  // Update subscription data only if subscription does not exist already.
668
+ if ( ! array_key_exists( $subscription_data['id'], $subscriptions ) ) {
669
+ $subscriptions[ $subscription_data['id'] ] = $subscription_data;
670
  $subscriptions[ $subscription_data['id'] ]['licenses'] = array();
671
  }
672
 
673
  // Store licenses for subscription.
674
+ if ( ! in_array( $this->license, $subscriptions[ $subscription_data['id'] ]['licenses'] ) ) {
675
  $subscriptions[ $subscription_data['id'] ]['licenses'][] = $this->license;
676
  }
677
 
688
  * @return void
689
  */
690
  public function notices() {
 
 
 
 
 
 
691
 
692
+ if ( ! current_user_can( 'manage_give_settings' ) ) {
 
 
 
 
693
  return;
694
  }
695
 
696
  // Do not show licenses notices on license tab.
697
+ if ( 'licenses' === give_get_current_setting_tab() ) {
698
  return;
699
  }
700
 
701
+ static $showed_invalid_message;
702
+ static $showed_subscriptions_message;
703
+ static $addon_license_key_in_subscriptions;
704
+
705
+ // Set default value.
706
+ $addon_license_key_in_subscriptions = ! empty( $addon_license_key_in_subscriptions ) ? $addon_license_key_in_subscriptions : array();
707
+ $messages = array();
708
+
709
+ if (
710
+ empty( $this->license )
711
+ && ! $this->__is_notice_dismissed( 'general' )
712
+ && empty( $showed_invalid_message )
713
+ ) {
714
+ $messages['general'] = sprintf(
715
+ __( 'You have invalid or expired license keys for one or more Give Add-ons. Please go to the <a href="%s">licenses page</a> to correct this issue.', 'give' ),
716
+ admin_url( 'edit.php?post_type=give_forms&page=give-settings&tab=licenses' )
717
+ );
718
+ $showed_invalid_message = true;
719
+
720
+ }
721
 
722
  // Get subscriptions.
723
  $subscriptions = get_option( 'give_subscriptions' );
724
 
725
  // Show subscription messages.
726
+ if ( ! empty( $subscriptions ) && ! $showed_subscriptions_message ) {
727
 
728
  foreach ( $subscriptions as $subscription ) {
729
  // Subscription expires timestamp.
730
  $subscription_expires = strtotime( $subscription['expires'] );
731
 
732
  // Start showing subscriptions message before one week of renewal date.
733
+ if ( strtotime( '- 7 days', $subscription_expires ) > current_time( 'timestamp', 1 ) ) {
734
  continue;
735
  }
736
 
737
  // Check if subscription message already exist in messages.
738
+ if ( array_key_exists( $subscription['id'], $messages ) ) {
739
  continue;
740
  }
741
 
742
+ if ( ( ! $this->__is_notice_dismissed( $subscription['id'] ) && 'active' !== $subscription['status'] ) ) {
743
 
744
+ if ( strtotime( $subscription['expires'] ) < current_time( 'timestamp', 1 ) ) {// Check if license already expired.
745
+ $messages[ $subscription['id'] ] = sprintf(
746
+ __( 'Your Give add-on license expired for payment <a href="%1$s" target="_blank">#%2$d</a>. <a href="%3$s" target="_blank">Click to renew an existing license</a> or <a href="%4$s">Click here if already renewed</a>.', 'give' ),
747
  urldecode( $subscription['invoice_url'] ),
748
  $subscription['payment_id'],
749
  "{$this->checkout_url}?edd_license_key={$subscription['license_key']}&utm_campaign=admin&utm_source=licenses&utm_medium=expired",
750
  esc_url( add_query_arg( '_give_hide_license_notices_permanently', $subscription['id'], $_SERVER['REQUEST_URI'] ) )
751
  );
752
+ } else {
753
+ $messages[ $subscription['id'] ] = sprintf(
754
+ __( 'Your Give add-on license will expire in %1$s for payment <a href="%2$s" target="_blank">#%3$d</a>. <a href="%4$s" target="_blank">Click to renew an existing license</a> or <a href="%5$s">Click here if already renewed</a>.', 'give' ),
755
  human_time_diff( current_time( 'timestamp', 1 ), strtotime( $subscription['expires'] ) ),
756
  urldecode( $subscription['invoice_url'] ),
757
  $subscription['payment_id'],
761
  }
762
  }
763
 
764
+ // Stop validation for these license keys.
765
  $addon_license_key_in_subscriptions = array_merge( $addon_license_key_in_subscriptions, $subscription['licenses'] );
766
+ }// End foreach().
767
  $showed_subscriptions_message = true;
768
+ }// End if().
769
 
770
  // Show non subscription addon messages.
771
+ if (
772
+ ! in_array( $this->license, $addon_license_key_in_subscriptions )
773
+ && ! $this->__is_notice_dismissed( 'general' )
774
+ && ! $this->is_valid_license()
775
+ && empty( $showed_invalid_message )
776
+ ) {
777
+
778
+ $messages['general'] = sprintf(
779
+ __( 'You have invalid or expired license keys for one or more Give Add-ons. Please go to the <a href="%s">licenses page</a> to correct this issue.', 'give' ),
780
  admin_url( 'edit.php?post_type=give_forms&page=give-settings&tab=licenses' )
781
  );
782
  $showed_invalid_message = true;
784
  }
785
 
786
  // Print messages.
787
+ if ( ! empty( $messages ) ) {
788
+ foreach ( $messages as $notice_id => $message ) {
789
+
790
+ echo sprintf(
791
+ '<div class="notice notice-error is-dismissible give-license-notice" data-dismiss-notice-shortly="%1$s"><p>%2$s</p></div>',
792
+ esc_url( add_query_arg( '_give_hide_license_notices_shortly', $notice_id, $_SERVER['REQUEST_URI'] ) ),
793
+ $message
794
+ );
795
  }
796
  }
797
  }
805
  * @return bool
806
  */
807
  public function is_valid_license() {
808
+ if ( apply_filters( 'give_is_valid_license', ( is_object( $this->license_data ) && ! empty( $this->license_data ) && property_exists( $this->license_data, 'license' ) && 'valid' === $this->license_data->license ) ) ) {
809
  return true;
810
  }
811
 
835
  *
836
  * @return void|bool
837
  */
838
+ private function __remove_license_key_from_subscriptions() {
839
  $subscriptions = get_option( 'give_subscriptions', array() );
840
 
841
  // Bailout.
842
+ if ( empty( $this->license ) ) {
843
  return false;
844
  }
845
 
846
+ if ( ! empty( $subscriptions ) ) {
847
  foreach ( $subscriptions as $subscription_id => $subscription ) {
848
  $license_index = array_search( $this->license, $subscription['licenses'] );
849
+ if ( false !== $license_index ) {
850
  // Remove license key.
851
+ unset( $subscriptions[ $subscription_id ]['licenses'][ $license_index ] );
852
 
853
  // Rearrange license keys.
854
  $subscriptions[ $subscription_id ]['licenses'] = array_values( $subscriptions[ $subscription_id ]['licenses'] );
869
  *
870
  * @return void
871
  */
872
+ private function __remove_license_notices_show_blocker() {
873
  global $wpdb;
874
 
875
  // Delete permanent notice blocker.
907
  *
908
  * @return bool
909
  */
910
+ private function __is_notice_dismissed( $notice_id ) {
911
+ $current_user = wp_get_current_user();
912
  $is_notice_dismissed = false;
913
 
914
  // Ge is notice dismissed permanently.
916
  ? $already_dismiss_notices
917
  : array();
918
 
919
+ if (
920
+ in_array( $notice_id, $already_dismiss_notices )
921
+ || Give_Cache::get( "_give_hide_license_notices_shortly_{$current_user->ID}_{$notice_id}", true )
922
+ ) {
923
+ $is_notice_dismissed = true;
924
  }
925
 
926
  return $is_notice_dismissed;
927
  }
928
+
929
+
930
+ /**
931
+ * @param $plugin_file
932
+ * @param $plugin_data
933
+ * @param $status
934
+ *
935
+ * @return bool
936
+ */
937
+ public function plugin_page_notices( $plugin_file, $plugin_data, $status ) {
938
+ // Bailout.
939
+ if ( $this->is_valid_license() ) {
940
+ return false;
941
+ }
942
+
943
+ $update_notice_wrap = '<tr class="give-addon-notice-tr active"><td colspan="3" class="colspanchange"><div class="notice inline notice-warning notice-alt give-invalid-license"><p><span class="dashicons dashicons-info"></span> %s</p></div></td></tr>';
944
+ $message = $this->license_state_message();
945
+
946
+ if ( ! empty( $message['message'] ) ) {
947
+ echo sprintf( $update_notice_wrap, $message['message'] );
948
+ }
949
+ }
950
+
951
+
952
+ /**
953
+ * Get message related to license state.
954
+ *
955
+ * @since 1.8.7
956
+ * @access public
957
+ * @return array
958
+ */
959
+ public function license_state_message() {
960
+ $message_data = array();
961
+
962
+ if ( ! $this->is_valid_license() ) {
963
+
964
+ $message_data['message'] = sprintf(
965
+ 'Please <a href="%1$s">activate your license</a> to receive updates and support for the %2$s add-on.',
966
+ esc_url( admin_url( 'edit.php?post_type=give_forms&page=give-settings&tab=licenses' ) ),
967
+ $this->item_name
968
+ );
969
+ }
970
+
971
+ return $message_data;
972
+ }
973
  }
974
 
975
  endif; // end class_exists check
includes/class-give-logging.php CHANGED
@@ -391,15 +391,15 @@ class Give_Logging {
391
  }
392
 
393
  // Get cache key for current query.
394
- $cache_key = give_get_cache_key( 'get_log_count', $query_args );
395
 
396
  // check if cache already exist or not.
397
- if ( ! ( $logs_count = get_option( $cache_key ) ) ) {
398
  $logs = new WP_Query( $query_args );
399
  $logs_count = (int) $logs->post_count;
400
 
401
  // Cache results.
402
- add_option( $cache_key, $logs_count, '', 'no' );
403
  }
404
 
405
  return $logs_count;
@@ -460,7 +460,8 @@ class Give_Logging {
460
  * @param int $post_id
461
  */
462
  public function background_process_delete_cache( $post_id ) {
463
- wp_schedule_single_event( time(), 'give_delete_log_cache' );
 
464
  }
465
 
466
  /**
@@ -473,12 +474,18 @@ class Give_Logging {
473
  */
474
  public function delete_cache() {
475
  global $wpdb;
476
- $cache_option_names = $wpdb->get_results(
 
 
477
  $wpdb->prepare(
478
- "SELECT option_name FROM {$wpdb->options} where option_name LIKE '%%%s%%'",
479
- 'give_cache'
 
 
 
 
480
  ),
481
- ARRAY_A
482
  );
483
 
484
  // Bailout.
@@ -486,10 +493,7 @@ class Give_Logging {
486
  return false;
487
  }
488
 
489
- // Delete log cache.
490
- foreach ( $cache_option_names as $option_name ) {
491
- delete_option( $option_name['option_name'] );
492
- }
493
  }
494
  }
495
 
391
  }
392
 
393
  // Get cache key for current query.
394
+ $cache_key = Give_Cache::get_key( 'get_log_count', $query_args );
395
 
396
  // check if cache already exist or not.
397
+ if ( ! ( $logs_count = Give_Cache::get( $cache_key ) ) ) {
398
  $logs = new WP_Query( $query_args );
399
  $logs_count = (int) $logs->post_count;
400
 
401
  // Cache results.
402
+ Give_Cache::set( $cache_key, $logs_count );
403
  }
404
 
405
  return $logs_count;
460
  * @param int $post_id
461
  */
462
  public function background_process_delete_cache( $post_id ) {
463
+ // Delete log cache immediately
464
+ wp_schedule_single_event( time() - 5, 'give_delete_log_cache' );
465
  }
466
 
467
  /**
474
  */
475
  public function delete_cache() {
476
  global $wpdb;
477
+
478
+ // Add log related keys to delete.
479
+ $cache_option_names = $wpdb->get_col(
480
  $wpdb->prepare(
481
+ "SELECT *
482
+ FROM {$wpdb->options}
483
+ where option_name LIKE '%%%s%%'
484
+ OR option_name LIKE '%%%s%%'",
485
+ 'give_cache_get_logs',
486
+ 'give_cache_get_log_count'
487
  ),
488
+ 1 // option_name
489
  );
490
 
491
  // Bailout.
493
  return false;
494
  }
495
 
496
+ Give_Cache::delete( $cache_option_names );
 
 
 
497
  }
498
  }
499
 
includes/class-give-session.php CHANGED
@@ -102,6 +102,10 @@ class Give_Session {
102
  require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/class-recursive-arrayaccess.php';
103
  }
104
 
 
 
 
 
105
  if ( ! class_exists( 'WP_Session' ) ) {
106
  require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/class-wp-session.php';
107
  require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/wp-session.php';
102
  require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/class-recursive-arrayaccess.php';
103
  }
104
 
105
+ // Include utilities class
106
+ if ( ! class_exists( 'WP_Session_Utils' ) ) {
107
+ require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/class-wp-session-utils.php';
108
+ }
109
  if ( ! class_exists( 'WP_Session' ) ) {
110
  require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/class-wp-session.php';
111
  require_once GIVE_PLUGIN_DIR . 'includes/libraries/sessions/wp-session.php';
includes/formatting.php CHANGED
@@ -393,6 +393,7 @@ function give_date_format( $date_context = '' ) {
393
  * Get cache key.
394
  *
395
  * @since 1.7
 
396
  *
397
  * @param string $action Cache key prefix.
398
  * @param array $query_args Query array.
@@ -400,12 +401,7 @@ function give_date_format( $date_context = '' ) {
400
  * @return string
401
  */
402
  function give_get_cache_key( $action, $query_args ) {
403
- // Bailout.
404
- if ( ! is_array( $query_args ) || empty( $query_args ) ) {
405
- return '';
406
- }
407
-
408
- return "give_cache_{$action}_" . substr( md5( serialize( $query_args ) ), 0, 15 );
409
  }
410
 
411
  /**
393
  * Get cache key.
394
  *
395
  * @since 1.7
396
+ * @deprecated 1.8.7 You can access this function from Give_Cache.
397
  *
398
  * @param string $action Cache key prefix.
399
  * @param array $query_args Query array.
401
  * @return string
402
  */
403
  function give_get_cache_key( $action, $query_args ) {
404
+ return Give_Cache::get_key( $action, $query_args );
 
 
 
 
 
405
  }
406
 
407
  /**
includes/gateways/offline-donations.php CHANGED
@@ -241,8 +241,8 @@ function give_offline_send_admin_notice( $payment_id = 0 ) {
241
  $admin_subject = apply_filters( 'give_offline_admin_donation_notification_subject', __( 'New Pending Donation', 'give' ), $payment_id );
242
 
243
  $admin_message = __( 'Dear Admin,', 'give' ) . "\n\n";
244
- $admin_message .= __( 'An offline donation has been made on your website:', 'give' ) . ' ' . get_bloginfo( 'name' ) . ' ';
245
- $admin_message .= __( 'Hooray! The donation is in a pending status and is awaiting payment. Donation instructions have been emailed to the donor. Once you receive payment, be sure to mark the donation as complete using the link below.', 'give' ) . "\n\n";
246
 
247
 
248
  $admin_message .= '<strong>' . __( 'Donor:', 'give' ) . '</strong> {fullname}' . "\n";
@@ -251,7 +251,7 @@ function give_offline_send_admin_notice( $payment_id = 0 ) {
251
  $admin_message .= sprintf(
252
  '<a href="%1$s">%2$s</a>',
253
  admin_url( 'edit.php?post_type=give_forms&page=give-payment-history&view=view-order-details&id=' . $payment_id ),
254
- __( 'Click Here to View and/or Update Donation Details', 'give' )
255
  ) . "\n\n";
256
 
257
  $admin_message = apply_filters( 'give_offline_admin_donation_notification', $admin_message, $payment_id );
@@ -262,6 +262,8 @@ function give_offline_send_admin_notice( $payment_id = 0 ) {
262
 
263
  //Send Email
264
  $emails = Give()->emails;
 
 
265
  if ( ! empty( $admin_headers ) ) {
266
  $emails->__set( 'headers', $admin_headers );
267
  }
@@ -398,8 +400,8 @@ function give_get_default_offline_donation_content() {
398
  $default_text .= '<li>' . __( 'Please mail your check to:', 'give' ) . '</li>';
399
  $default_text .= '</ol>';
400
  $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>' . $sitename . '</em><br>';
401
- $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>123 G Street </em><br>';
402
- $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>San Diego, CA 92101 </em><br>';
403
  $default_text .= '<p>' . __( 'All contributions will be gratefully acknowledged and are tax deductible.', 'give' ) . '</p>';
404
 
405
  return apply_filters( 'give_default_offline_donation_content', $default_text );
@@ -436,8 +438,8 @@ function give_get_default_offline_donation_email_content() {
436
  $default_text .= '<li>' . __( 'Please mail your check to:', 'give' ) . '</li>';
437
  $default_text .= '</ol>';
438
  $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>' . $sitename . '</em><br>';
439
- $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>123 G Street </em><br>';
440
- $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>San Diego, CA 92101 </em><br>';
441
  $default_text .= '<p>' . __( 'Once your donation has been received we will mark it as complete and you will receive an email receipt for your records. Please contact us with any questions you may have!', 'give' ) . '</p>';
442
  $default_text .= '<p>' . __( 'Sincerely,', 'give' ) . '</p>';
443
  $default_text .= '<p>' . $sitename . '</p>';
241
  $admin_subject = apply_filters( 'give_offline_admin_donation_notification_subject', __( 'New Pending Donation', 'give' ), $payment_id );
242
 
243
  $admin_message = __( 'Dear Admin,', 'give' ) . "\n\n";
244
+ $admin_message .= sprintf(__( 'A new offline donation has been made on your website for %s.', 'give' ), $amount) . "\n\n";
245
+ $admin_message .= __( 'The donation is in a pending status and is awaiting payment. Donation instructions have been emailed to the donor. Once you receive payment, be sure to mark the donation as complete using the link below.', 'give' ) . "\n\n";
246
 
247
 
248
  $admin_message .= '<strong>' . __( 'Donor:', 'give' ) . '</strong> {fullname}' . "\n";
251
  $admin_message .= sprintf(
252
  '<a href="%1$s">%2$s</a>',
253
  admin_url( 'edit.php?post_type=give_forms&page=give-payment-history&view=view-order-details&id=' . $payment_id ),
254
+ __( 'View Donation Details &raquo;', 'give' )
255
  ) . "\n\n";
256
 
257
  $admin_message = apply_filters( 'give_offline_admin_donation_notification', $admin_message, $payment_id );
262
 
263
  //Send Email
264
  $emails = Give()->emails;
265
+ $emails->__set( 'heading', __( 'New Offline Donation', 'give' ) );
266
+
267
  if ( ! empty( $admin_headers ) ) {
268
  $emails->__set( 'headers', $admin_headers );
269
  }
400
  $default_text .= '<li>' . __( 'Please mail your check to:', 'give' ) . '</li>';
401
  $default_text .= '</ol>';
402
  $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>' . $sitename . '</em><br>';
403
+ $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>111 Not A Real St.</em><br>';
404
+ $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>Anytown, CA 12345 </em><br>';
405
  $default_text .= '<p>' . __( 'All contributions will be gratefully acknowledged and are tax deductible.', 'give' ) . '</p>';
406
 
407
  return apply_filters( 'give_default_offline_donation_content', $default_text );
438
  $default_text .= '<li>' . __( 'Please mail your check to:', 'give' ) . '</li>';
439
  $default_text .= '</ol>';
440
  $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>' . $sitename . '</em><br>';
441
+ $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>111 Not A Real St.</em><br>';
442
+ $default_text .= '&nbsp;&nbsp;&nbsp;&nbsp;<em>Anytown, CA 12345 </em><br>';
443
  $default_text .= '<p>' . __( 'Once your donation has been received we will mark it as complete and you will receive an email receipt for your records. Please contact us with any questions you may have!', 'give' ) . '</p>';
444
  $default_text .= '<p>' . __( 'Sincerely,', 'give' ) . '</p>';
445
  $default_text .= '<p>' . $sitename . '</p>';
includes/install.php CHANGED
@@ -165,7 +165,7 @@ function give_run_install() {
165
  Give()->session->use_php_sessions();
166
 
167
  // Add a temporary option to note that Give pages have been created.
168
- set_transient( '_give_installed', $options, 30 );
169
 
170
  if ( ! $current_version ) {
171
 
@@ -191,7 +191,7 @@ function give_run_install() {
191
  }
192
 
193
  // Add the transient to redirect.
194
- set_transient( '_give_activation_redirect', true, 30 );
195
 
196
  }
197
 
@@ -268,7 +268,7 @@ function give_after_install() {
268
  return;
269
  }
270
 
271
- $give_options = get_transient( '_give_installed' );
272
  $give_table_check = get_option( '_give_table_check', false );
273
 
274
  if ( false === $give_table_check || current_time( 'timestamp' ) > $give_table_check ) {
@@ -302,7 +302,7 @@ function give_after_install() {
302
 
303
  // Delete the transient
304
  if ( false !== $give_options ) {
305
- delete_transient( '_give_installed' );
306
  }
307
 
308
 
165
  Give()->session->use_php_sessions();
166
 
167
  // Add a temporary option to note that Give pages have been created.
168
+ Give_Cache::set( '_give_installed', $options, 30, true );
169
 
170
  if ( ! $current_version ) {
171
 
191
  }
192
 
193
  // Add the transient to redirect.
194
+ Give_Cache::set( '_give_activation_redirect', true, 30, true );
195
 
196
  }
197
 
268
  return;
269
  }
270
 
271
+ $give_options = Give_Cache::get( '_give_installed', true );
272
  $give_table_check = get_option( '_give_table_check', false );
273
 
274
  if ( false === $give_table_check || current_time( 'timestamp' ) > $give_table_check ) {
302
 
303
  // Delete the transient
304
  if ( false !== $give_options ) {
305
+ Give_Cache::delete( Give_Cache::get_key( '_give_installed' ) );
306
  }
307
 
308
 
includes/libraries/sessions/class-recursive-arrayaccess.php CHANGED
@@ -7,16 +7,16 @@
7
  *
8
  * @package WordPress
9
  * @subpackage Session
10
- * @since 3.6.0
11
  */
12
 
13
  /**
14
  * Recursive array class to allow multidimensional array access.
15
  *
16
  * @package WordPress
17
- * @since 3.6.0
18
  */
19
- class Recursive_ArrayAccess implements ArrayAccess {
20
  /**
21
  * Internal data collection.
22
  *
@@ -68,9 +68,9 @@ class Recursive_ArrayAccess implements ArrayAccess {
68
  return $data;
69
  }
70
 
71
- /**
72
- * ArrayAccess Implementation
73
- **/
74
 
75
  /**
76
  * Whether a offset exists
@@ -132,5 +132,82 @@ class Recursive_ArrayAccess implements ArrayAccess {
132
  */
133
  public function offsetUnset( $offset ) {
134
  unset( $this->container[ $offset ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  }
136
  }
7
  *
8
  * @package WordPress
9
  * @subpackage Session
10
+ * @since 3.7.0
11
  */
12
 
13
  /**
14
  * Recursive array class to allow multidimensional array access.
15
  *
16
  * @package WordPress
17
+ * @since 3.7.0
18
  */
19
+ class Recursive_ArrayAccess implements ArrayAccess, Iterator, Countable {
20
  /**
21
  * Internal data collection.
22
  *
68
  return $data;
69
  }
70
 
71
+ /*****************************************************************/
72
+ /* ArrayAccess Implementation */
73
+ /*****************************************************************/
74
 
75
  /**
76
  * Whether a offset exists
132
  */
133
  public function offsetUnset( $offset ) {
134
  unset( $this->container[ $offset ] );
135
+
136
+ $this->dirty = true;
137
+ }
138
+
139
+
140
+ /*****************************************************************/
141
+ /* Iterator Implementation */
142
+ /*****************************************************************/
143
+
144
+ /**
145
+ * Current position of the array.
146
+ *
147
+ * @link http://php.net/manual/en/iterator.current.php
148
+ *
149
+ * @return mixed
150
+ */
151
+ public function current() {
152
+ return current( $this->container );
153
+ }
154
+
155
+ /**
156
+ * Key of the current element.
157
+ *
158
+ * @link http://php.net/manual/en/iterator.key.php
159
+ *
160
+ * @return mixed
161
+ */
162
+ public function key() {
163
+ return key( $this->container );
164
+ }
165
+
166
+ /**
167
+ * Move the internal point of the container array to the next item
168
+ *
169
+ * @link http://php.net/manual/en/iterator.next.php
170
+ *
171
+ * @return void
172
+ */
173
+ public function next() {
174
+ next( $this->container );
175
+ }
176
+
177
+ /**
178
+ * Rewind the internal point of the container array.
179
+ *
180
+ * @link http://php.net/manual/en/iterator.rewind.php
181
+ *
182
+ * @return void
183
+ */
184
+ public function rewind() {
185
+ reset( $this->container );
186
+ }
187
+
188
+ /**
189
+ * Is the current key valid?
190
+ *
191
+ * @link http://php.net/manual/en/iterator.rewind.php
192
+ *
193
+ * @return bool
194
+ */
195
+ public function valid() {
196
+ return $this->offsetExists( $this->key() );
197
+ }
198
+
199
+ /*****************************************************************/
200
+ /* Countable Implementation */
201
+ /*****************************************************************/
202
+
203
+ /**
204
+ * Get the count of elements in the container array.
205
+ *
206
+ * @link http://php.net/manual/en/countable.count.php
207
+ *
208
+ * @return int
209
+ */
210
+ public function count() {
211
+ return count( $this->container );
212
  }
213
  }
includes/libraries/sessions/class-wp-session-utils.php ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Utility class for sesion utilities
5
+ *
6
+ * THIS CLASS SHOULD NEVER BE INSTANTIATED
7
+ */
8
+ class WP_Session_Utils {
9
+ /**
10
+ * Count the total sessions in the database.
11
+ *
12
+ * @global wpdb $wpdb
13
+ *
14
+ * @return int
15
+ */
16
+ public static function count_sessions() {
17
+ global $wpdb;
18
+
19
+ $query = "SELECT COUNT(*) FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%'";
20
+
21
+ /**
22
+ * Filter the query in case tables are non-standard.
23
+ *
24
+ * @param string $query Database count query
25
+ */
26
+ $query = apply_filters( 'wp_session_count_query', $query );
27
+
28
+ $sessions = $wpdb->get_var( $query );
29
+
30
+ return absint( $sessions );
31
+ }
32
+
33
+ /**
34
+ * Create a new, random session in the database.
35
+ *
36
+ * @param null|string $date
37
+ */
38
+ public static function create_dummy_session( $date = null ) {
39
+ // Generate our date
40
+ if ( null !== $date ) {
41
+ $time = strtotime( $date );
42
+
43
+ if ( false === $time ) {
44
+ $date = null;
45
+ } else {
46
+ $expires = date( 'U', strtotime( $date ) );
47
+ }
48
+ }
49
+
50
+ // If null was passed, or if the string parsing failed, fall back on a default
51
+ if ( null === $date ) {
52
+ /**
53
+ * Filter the expiration of the session in the database
54
+ *
55
+ * @param int
56
+ */
57
+ $expires = time() + (int) apply_filters( 'wp_session_expiration', 30 * 60 );
58
+ }
59
+
60
+ $session_id = self::generate_id();
61
+
62
+ // Store the session
63
+ add_option( "_wp_session_{$session_id}", array(), '', 'no' );
64
+ add_option( "_wp_session_expires_{$session_id}", $expires, '', 'no' );
65
+ }
66
+
67
+ /**
68
+ * Delete old sessions from the database.
69
+ *
70
+ * @param int $limit Maximum number of sessions to delete.
71
+ *
72
+ * @global wpdb $wpdb
73
+ *
74
+ * @return int Sessions deleted.
75
+ */
76
+ public static function delete_old_sessions( $limit = 1000 ) {
77
+ global $wpdb;
78
+
79
+ $limit = absint( $limit );
80
+ $keys = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%' ORDER BY option_value ASC LIMIT 0, {$limit}" );
81
+
82
+ $now = time();
83
+ $expired = array();
84
+ $count = 0;
85
+
86
+ foreach( $keys as $expiration ) {
87
+ $key = $expiration->option_name;
88
+ $expires = $expiration->option_value;
89
+
90
+ if ( $now > $expires ) {
91
+ $session_id = preg_replace("/[^A-Za-z0-9_]/", '', substr( $key, 20 ) );
92
+
93
+ $expired[] = $key;
94
+ $expired[] = "_wp_session_{$session_id}";
95
+
96
+ $count += 1;
97
+ }
98
+ }
99
+
100
+ // Delete expired sessions
101
+ if ( ! empty( $expired ) ) {
102
+ $placeholders = array_fill( 0, count( $expired ), '%s' );
103
+ $format = implode( ', ', $placeholders );
104
+ $query = "DELETE FROM $wpdb->options WHERE option_name IN ($format)";
105
+
106
+ $prepared = $wpdb->prepare( $query, $expired );
107
+ $wpdb->query( $prepared );
108
+ }
109
+
110
+ return $count;
111
+ }
112
+
113
+ /**
114
+ * Remove all sessions from the database, regardless of expiration.
115
+ *
116
+ * @global wpdb $wpdb
117
+ *
118
+ * @return int Sessions deleted
119
+ */
120
+ public static function delete_all_sessions() {
121
+ global $wpdb;
122
+
123
+ $count = $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '_wp_session_%'" );
124
+
125
+ return (int) ( $count / 2 );
126
+ }
127
+
128
+ /**
129
+ * Generate a new, random session ID.
130
+ *
131
+ * @return string
132
+ */
133
+ public static function generate_id() {
134
+ require_once( ABSPATH . 'wp-includes/class-phpass.php' );
135
+ $hash = new PasswordHash( 8, false );
136
+
137
+ return md5( $hash->get_random_bytes( 32 ) );
138
+ }
139
+ }
includes/libraries/sessions/class-wp-session.php CHANGED
@@ -27,7 +27,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
27
  * @package WordPress
28
  * @since 3.7.0
29
  */
30
- final class WP_Session extends Recursive_ArrayAccess implements Iterator, Countable {
31
  /**
32
  * ID of the current session.
33
  *
@@ -80,15 +80,13 @@ final class WP_Session extends Recursive_ArrayAccess implements Iterator, Counta
80
  * @uses apply_filters Calls `wp_session_expiration` to determine how long until sessions expire.
81
  */
82
  protected function __construct() {
83
-
84
  if ( isset( $_COOKIE[WP_SESSION_COOKIE] ) ) {
85
-
86
  $cookie = stripslashes( $_COOKIE[WP_SESSION_COOKIE] );
87
  $cookie_crumbs = explode( '||', $cookie );
88
 
89
- $this->session_id = $cookie_crumbs[0];
90
- $this->expires = $cookie_crumbs[1];
91
- $this->exp_variant = $cookie_crumbs[2];
92
 
93
  // Update the session expiration if we're past the variant time
94
  if ( time() > $this->exp_variant ) {
@@ -97,16 +95,13 @@ final class WP_Session extends Recursive_ArrayAccess implements Iterator, Counta
97
  add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
98
  }
99
  } else {
100
- $this->session_id = $this->generate_id();
101
  $this->set_expiration();
102
  }
103
 
104
  $this->read_data();
105
 
106
- /*
107
- * Only set the cookie manually, on form submission.
108
- */
109
- //$this->set_cookie();
110
 
111
  }
112
 
@@ -134,24 +129,14 @@ final class WP_Session extends Recursive_ArrayAccess implements Iterator, Counta
134
  }
135
 
136
  /**
137
- * Set the session cookie
138
- *
139
- * IMPORTANT: Made public
140
- */
141
- public function set_cookie() {
142
- @setcookie( WP_SESSION_COOKIE, $this->session_id . '||' . $this->expires . '||' . $this->exp_variant , $this->expires, COOKIEPATH, COOKIE_DOMAIN );
143
- }
144
-
145
- /**
146
- * Generate a cryptographically strong unique ID for the session token.
147
- *
148
- * @return string
149
- */
150
- protected function generate_id() {
151
- require_once( ABSPATH . 'wp-includes/class-phpass.php');
152
- $hasher = new PasswordHash( 8, false );
153
-
154
- return md5( $hasher->get_random_bytes( 32 ) );
155
  }
156
 
157
  /**
@@ -173,15 +158,12 @@ final class WP_Session extends Recursive_ArrayAccess implements Iterator, Counta
173
  public function write_data() {
174
  $option_key = "_wp_session_{$this->session_id}";
175
 
176
- // Only write the collection to the DB if it's changed.
177
- if ( $this->dirty ) {
178
- if ( false === get_option( $option_key ) ) {
179
- add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
180
- add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
181
- } else {
182
- delete_option( "_wp_session_{$this->session_id}" );
183
- add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
184
- }
185
  }
186
  }
187
 
@@ -222,7 +204,7 @@ final class WP_Session extends Recursive_ArrayAccess implements Iterator, Counta
222
  delete_option( "_wp_session_{$this->session_id}" );
223
  }
224
 
225
- $this->session_id = $this->generate_id();
226
 
227
  $this->set_cookie();
228
  }
@@ -251,88 +233,4 @@ final class WP_Session extends Recursive_ArrayAccess implements Iterator, Counta
251
  public function reset() {
252
  $this->container = array();
253
  }
254
-
255
- /**
256
- * Checks if is valid md5 string
257
- *
258
- * @param string $md5
259
- * @return int
260
- */
261
- protected function is_valid_md5( $md5 = '' ){
262
- return preg_match( '/^[a-f0-9]{32}$/', $md5 );
263
- }
264
-
265
- /*****************************************************************/
266
- /* Iterator Implementation */
267
- /*****************************************************************/
268
-
269
- /**
270
- * Current position of the array.
271
- *
272
- * @link http://php.net/manual/en/iterator.current.php
273
- *
274
- * @return mixed
275
- */
276
- public function current() {
277
- return current( $this->container );
278
- }
279
-
280
- /**
281
- * Key of the current element.
282
- *
283
- * @link http://php.net/manual/en/iterator.key.php
284
- *
285
- * @return mixed
286
- */
287
- public function key() {
288
- return key( $this->container );
289
- }
290
-
291
- /**
292
- * Move the internal point of the container array to the next item
293
- *
294
- * @link http://php.net/manual/en/iterator.next.php
295
- *
296
- * @return void
297
- */
298
- public function next() {
299
- next( $this->container );
300
- }
301
-
302
- /**
303
- * Rewind the internal point of the container array.
304
- *
305
- * @link http://php.net/manual/en/iterator.rewind.php
306
- *
307
- * @return void
308
- */
309
- public function rewind() {
310
- reset( $this->container );
311
- }
312
-
313
- /**
314
- * Is the current key valid?
315
- *
316
- * @link http://php.net/manual/en/iterator.rewind.php
317
- *
318
- * @return bool
319
- */
320
- public function valid() {
321
- return $this->offsetExists( $this->key() );
322
- }
323
-
324
- /*****************************************************************/
325
- /* Countable Implementation */
326
- /*****************************************************************/
327
-
328
- /**
329
- * Get the count of elements in the container array.
330
- *
331
- * @link http://php.net/manual/en/countable.count.php
332
- *
333
- * @return int
334
- */
335
- public function count() {
336
- return count( $this->container );
337
- }
338
- }
27
  * @package WordPress
28
  * @since 3.7.0
29
  */
30
+ final class WP_Session extends Recursive_ArrayAccess {
31
  /**
32
  * ID of the current session.
33
  *
80
  * @uses apply_filters Calls `wp_session_expiration` to determine how long until sessions expire.
81
  */
82
  protected function __construct() {
 
83
  if ( isset( $_COOKIE[WP_SESSION_COOKIE] ) ) {
 
84
  $cookie = stripslashes( $_COOKIE[WP_SESSION_COOKIE] );
85
  $cookie_crumbs = explode( '||', $cookie );
86
 
87
+ $this->session_id = preg_replace("/[^A-Za-z0-9_]/", '', $cookie_crumbs[0] );
88
+ $this->expires = absint( $cookie_crumbs[1] );
89
+ $this->exp_variant = absint( $cookie_crumbs[2] );
90
 
91
  // Update the session expiration if we're past the variant time
92
  if ( time() > $this->exp_variant ) {
95
  add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
96
  }
97
  } else {
98
+ $this->session_id = WP_Session_Utils::generate_id();
99
  $this->set_expiration();
100
  }
101
 
102
  $this->read_data();
103
 
104
+ $this->set_cookie();
 
 
 
105
 
106
  }
107
 
129
  }
130
 
131
  /**
132
+ * Set the session cookie
133
+ * @uses apply_filters Calls `wp_session_cookie_secure` to set the $secure parameter of setcookie()
134
+ * @uses apply_filters Calls `wp_session_cookie_httponly` to set the $httponly parameter of setcookie()
135
+ */
136
+ protected function set_cookie() {
137
+ $secure = apply_filters('wp_session_cookie_secure', false);
138
+ $httponly = apply_filters('wp_session_cookie_httponly', false);
139
+ setcookie( WP_SESSION_COOKIE, $this->session_id . '||' . $this->expires . '||' . $this->exp_variant , $this->expires, COOKIEPATH, COOKIE_DOMAIN, $secure, $httponly );
 
 
 
 
 
 
 
 
 
 
140
  }
141
 
142
  /**
158
  public function write_data() {
159
  $option_key = "_wp_session_{$this->session_id}";
160
 
161
+ if ( false === get_option( $option_key ) ) {
162
+ add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
163
+ add_option( "_wp_session_expires_{$this->session_id}", $this->expires, '', 'no' );
164
+ } else {
165
+ delete_option( "_wp_session_{$this->session_id}" );
166
+ add_option( "_wp_session_{$this->session_id}", $this->container, '', 'no' );
 
 
 
167
  }
168
  }
169
 
204
  delete_option( "_wp_session_{$this->session_id}" );
205
  }
206
 
207
+ $this->session_id = WP_Session_Utils::generate_id();
208
 
209
  $this->set_cookie();
210
  }
233
  public function reset() {
234
  $this->container = array();
235
  }
236
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/libraries/sessions/wp-session.php CHANGED
@@ -5,9 +5,9 @@
5
  * Standardizes WordPress session data and uses either database transients or in-memory caching
6
  * for storing user session information.
7
  *
8
- * @package WordPress
9
  * @subpackage Session
10
- * @since 3.7.0
11
  */
12
 
13
  /**
@@ -78,8 +78,9 @@ function wp_session_start() {
78
 
79
  return $wp_session->session_started();
80
  }
81
-
82
- add_action( 'plugins_loaded', 'wp_session_start' );
 
83
 
84
  /**
85
  * Return the current session status.
@@ -114,8 +115,9 @@ function wp_session_write_close() {
114
  $wp_session->write_data();
115
  do_action( 'wp_session_commit' );
116
  }
117
-
118
- add_action( 'shutdown', 'wp_session_write_close' );
 
119
 
120
  /**
121
  * Clean up expired sessions by removing data and their expiration entries from
@@ -125,42 +127,25 @@ add_action( 'shutdown', 'wp_session_write_close' );
125
  * of a scheduled task or cron job.
126
  */
127
  function wp_session_cleanup() {
128
- global $wpdb;
129
-
130
  if ( defined( 'WP_SETUP_CONFIG' ) ) {
131
  return;
132
  }
133
 
134
  if ( ! defined( 'WP_INSTALLING' ) ) {
135
- $expiration_keys = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE '_wp_session_expires_%'" );
136
-
137
- $now = current_time( 'timestamp' );
138
- $expired_sessions = array();
139
-
140
- foreach ( $expiration_keys as $expiration ) {
141
- // If the session has expired
142
- if ( $now > intval( $expiration->option_value ) ) {
143
- // Get the session ID by parsing the option_name
144
- $session_id = substr( $expiration->option_name, 20 );
145
- if ( (int) -1 === (int) $session_id || ! preg_match( '/^[a-f0-9]{32}$/', $session_id ) ) {
146
- continue;
147
- }
148
- $expired_sessions[] = $expiration->option_name;
149
- $expired_sessions[] = esc_sql( "_wp_session_$session_id" );
150
- }
151
- }
152
-
153
- // Delete all expired sessions in a single query
154
- if ( ! empty( $expired_sessions ) ) {
155
- $option_names = implode( "','", $expired_sessions );
156
- $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name IN ('$option_names')" );
157
- }
158
  }
159
 
160
  // Allow other plugins to hook in to the garbage collection process.
161
  do_action( 'wp_session_cleanup' );
162
  }
163
-
164
  add_action( 'wp_session_garbage_collection', 'wp_session_cleanup' );
165
 
166
  /**
@@ -168,8 +153,7 @@ add_action( 'wp_session_garbage_collection', 'wp_session_cleanup' );
168
  */
169
  function wp_session_register_garbage_collection() {
170
  if ( ! wp_next_scheduled( 'wp_session_garbage_collection' ) ) {
171
- wp_schedule_event( current_time( 'timestamp' ), 'twicedaily', 'wp_session_garbage_collection' );
172
  }
173
  }
174
-
175
  add_action( 'wp', 'wp_session_register_garbage_collection' );
5
  * Standardizes WordPress session data and uses either database transients or in-memory caching
6
  * for storing user session information.
7
  *
8
+ * @package WordPress
9
  * @subpackage Session
10
+ * @since 3.7.0
11
  */
12
 
13
  /**
78
 
79
  return $wp_session->session_started();
80
  }
81
+ if ( ! defined( 'WP_CLI' ) || false === WP_CLI ) {
82
+ add_action( 'plugins_loaded', 'wp_session_start' );
83
+ }
84
 
85
  /**
86
  * Return the current session status.
115
  $wp_session->write_data();
116
  do_action( 'wp_session_commit' );
117
  }
118
+ if ( ! defined( 'WP_CLI' ) || false === WP_CLI ) {
119
+ add_action( 'shutdown', 'wp_session_write_close' );
120
+ }
121
 
122
  /**
123
  * Clean up expired sessions by removing data and their expiration entries from
127
  * of a scheduled task or cron job.
128
  */
129
  function wp_session_cleanup() {
 
 
130
  if ( defined( 'WP_SETUP_CONFIG' ) ) {
131
  return;
132
  }
133
 
134
  if ( ! defined( 'WP_INSTALLING' ) ) {
135
+ /**
136
+ * Determine the size of each batch for deletion.
137
+ *
138
+ * @param int
139
+ */
140
+ $batch_size = apply_filters( 'wp_session_delete_batch_size', 1000 );
141
+
142
+ // Delete a batch of old sessions
143
+ WP_Session_Utils::delete_old_sessions( $batch_size );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  }
145
 
146
  // Allow other plugins to hook in to the garbage collection process.
147
  do_action( 'wp_session_cleanup' );
148
  }
 
149
  add_action( 'wp_session_garbage_collection', 'wp_session_cleanup' );
150
 
151
  /**
153
  */
154
  function wp_session_register_garbage_collection() {
155
  if ( ! wp_next_scheduled( 'wp_session_garbage_collection' ) ) {
156
+ wp_schedule_event( time(), 'hourly', 'wp_session_garbage_collection' );
157
  }
158
  }
 
159
  add_action( 'wp', 'wp_session_register_garbage_collection' );
includes/misc-functions.php CHANGED
@@ -66,36 +66,36 @@ function give_get_currency_position() {
66
 
67
  function give_get_currencies() {
68
  $currencies = array(
69
- 'USD' => esc_html__( 'US Dollars ($)', 'give' ),
70
- 'EUR' => esc_html__( 'Euros (€)', 'give' ),
71
- 'GBP' => esc_html__( 'Pounds Sterling (£)', 'give' ),
72
- 'AUD' => esc_html__( 'Australian Dollars ($)', 'give' ),
73
- 'BRL' => esc_html__( 'Brazilian Real (R$)', 'give' ),
74
- 'CAD' => esc_html__( 'Canadian Dollars ($)', 'give' ),
75
- 'CZK' => esc_html__( 'Czech Koruna (Kč)', 'give' ),
76
- 'DKK' => esc_html__( 'Danish Krone (kr)', 'give' ),
77
- 'HKD' => esc_html__( 'Hong Kong Dollar ($)', 'give' ),
78
- 'HUF' => esc_html__( 'Hungarian Forint (Ft)', 'give' ),
79
- 'ILS' => esc_html__( 'Israeli Shekel (₪)', 'give' ),
80
- 'JPY' => esc_html__( 'Japanese Yen (¥)', 'give' ),
81
- 'MYR' => esc_html__( 'Malaysian Ringgits (RM)', 'give' ),
82
- 'MXN' => esc_html__( 'Mexican Peso ($)', 'give' ),
83
- 'MAD' => esc_html__( 'Moroccan Dirham (&#x2e;&#x62f;&#x2e;&#x645;)', 'give' ),
84
- 'NZD' => esc_html__( 'New Zealand Dollar ($)', 'give' ),
85
- 'NOK' => esc_html__( 'Norwegian Krone (Kr.)', 'give' ),
86
- 'PHP' => esc_html__( 'Philippine Pesos (₱)', 'give' ),
87
- 'PLN' => esc_html__( 'Polish Zloty (zł)', 'give' ),
88
- 'SGD' => esc_html__( 'Singapore Dollar ($)', 'give' ),
89
- 'KRW' => esc_html__( 'South Korean Won (₩)', 'give' ),
90
- 'ZAR' => esc_html__( 'South African Rand (R)', 'give' ),
91
- 'SEK' => esc_html__( 'Swedish Krona (kr)', 'give' ),
92
- 'CHF' => esc_html__( 'Swiss Franc (CHF)', 'give' ),
93
- 'TWD' => esc_html__( 'Taiwan New Dollars (NT$)', 'give' ),
94
- 'THB' => esc_html__( 'Thai Baht (฿)', 'give' ),
95
- 'INR' => esc_html__( 'Indian Rupee (₹)', 'give' ),
96
- 'TRY' => esc_html__( 'Turkish Lira (₺)', 'give' ),
97
- 'RIAL' => esc_html__( 'Iranian Rial (﷼)', 'give' ),
98
- 'RUB' => esc_html__( 'Russian Rubles (руб)', 'give' )
99
  );
100
 
101
  return apply_filters( 'give_currencies', $currencies );
@@ -166,7 +166,7 @@ function give_currency_symbol( $currency = '' ) {
166
  break;
167
  case 'DKK' :
168
  case 'SEK' :
169
- $symbol = 'kr';
170
  break;
171
  case 'PLN' :
172
  $symbol = 'zł';
@@ -1050,3 +1050,35 @@ function give_is_terms_enabled( $form_id ) {
1050
  return false;
1051
  }
1052
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
  function give_get_currencies() {
68
  $currencies = array(
69
+ 'USD' => __( 'US Dollars ($)', 'give' ),
70
+ 'EUR' => __( 'Euros (€)', 'give' ),
71
+ 'GBP' => __( 'Pounds Sterling (£)', 'give' ),
72
+ 'AUD' => __( 'Australian Dollars ($)', 'give' ),
73
+ 'BRL' => __( 'Brazilian Real (R$)', 'give' ),
74
+ 'CAD' => __( 'Canadian Dollars ($)', 'give' ),
75
+ 'CZK' => __( 'Czech Koruna (Kč)', 'give' ),
76
+ 'DKK' => __( 'Danish Krone (kr.)', 'give' ),
77
+ 'HKD' => __( 'Hong Kong Dollar ($)', 'give' ),
78
+ 'HUF' => __( 'Hungarian Forint (Ft)', 'give' ),
79
+ 'ILS' => __( 'Israeli Shekel (₪)', 'give' ),
80
+ 'JPY' => __( 'Japanese Yen (¥)', 'give' ),
81
+ 'MYR' => __( 'Malaysian Ringgits (RM)', 'give' ),
82
+ 'MXN' => __( 'Mexican Peso ($)', 'give' ),
83
+ 'MAD' => __( 'Moroccan Dirham (&#x2e;&#x62f;&#x2e;&#x645;)', 'give' ),
84
+ 'NZD' => __( 'New Zealand Dollar ($)', 'give' ),
85
+ 'NOK' => __( 'Norwegian Krone (Kr.)', 'give' ),
86
+ 'PHP' => __( 'Philippine Pesos (₱)', 'give' ),
87
+ 'PLN' => __( 'Polish Zloty (zł)', 'give' ),
88
+ 'SGD' => __( 'Singapore Dollar ($)', 'give' ),
89
+ 'KRW' => __( 'South Korean Won (₩)', 'give' ),
90
+ 'ZAR' => __( 'South African Rand (R)', 'give' ),
91
+ 'SEK' => __( 'Swedish Krona (kr)', 'give' ),
92
+ 'CHF' => __( 'Swiss Franc (CHF)', 'give' ),
93
+ 'TWD' => __( 'Taiwan New Dollars (NT$)', 'give' ),
94
+ 'THB' => __( 'Thai Baht (฿)', 'give' ),
95
+ 'INR' => __( 'Indian Rupee (₹)', 'give' ),
96
+ 'TRY' => __( 'Turkish Lira (₺)', 'give' ),
97
+ 'RIAL' => __( 'Iranian Rial (﷼)', 'give' ),
98
+ 'RUB' => __( 'Russian Rubles (руб)', 'give' )
99
  );
100
 
101
  return apply_filters( 'give_currencies', $currencies );
166
  break;
167
  case 'DKK' :
168
  case 'SEK' :
169
+ $symbol = '&nbsp;kr.&nbsp;';
170
  break;
171
  case 'PLN' :
172
  $symbol = 'zł';
1050
  return false;
1051
  }
1052
  }
1053
+
1054
+
1055
+ /**
1056
+ * Delete donation stats cache.
1057
+ * @todo Resolve stats cache key naming issue. Currently it is difficult to regenerate cache key.
1058
+ *
1059
+ * @since 1.8.7
1060
+ *
1061
+ * @param string|array $date_range Date for stats.
1062
+ * Date value should be in today, yesterday, this_week, last_week, this_month, last_month, this_quarter, last_quarter, this_year, last_year.
1063
+ * For date value other, all cache will be removed.
1064
+ *
1065
+ * @param array $args
1066
+ *
1067
+ * @return WP_Error|bool
1068
+ */
1069
+ function give_delete_donation_stats( $date_range = '', $args = array() ) {
1070
+ // Delete all cache.
1071
+ $status = Give_Cache::delete( Give_Cache::get_options_like( 'give_stats' ) );
1072
+
1073
+ /**
1074
+ * Fire the action when donation stats delete.
1075
+ *
1076
+ * @since 1.8.7
1077
+ *
1078
+ * @param string|array $date_range
1079
+ * @param array $args
1080
+ */
1081
+ do_action( 'give_delete_donation_stats', $status, $date_range, $args );
1082
+
1083
+ return $status;
1084
+ }
includes/payments/actions.php CHANGED
@@ -82,11 +82,8 @@ function give_complete_purchase( $payment_id, $new_status, $old_status ) {
82
  give_increase_earnings( $form_id, $amount );
83
  give_increase_purchase_count( $form_id );
84
 
85
- // Clear the total earnings cache.
86
- delete_transient( 'give_earnings_total' );
87
- // Clear the This Month earnings (this_monththis_month is NOT a typo).
88
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
89
- delete_transient( md5( 'give_earnings_todaytoday' ) );
90
 
91
  // Increase the donor's donation stats.
92
  $customer = new Give_Customer( $customer_id );
@@ -148,32 +145,6 @@ function give_record_status_change( $payment_id, $new_status, $old_status ) {
148
  add_action( 'give_update_payment_status', 'give_record_status_change', 100, 3 );
149
 
150
 
151
- /**
152
- * Clear User History Cache
153
- *
154
- * Flushes the current user's donation history transient when a payment status
155
- * is updated.
156
- *
157
- * @since 1.0
158
- *
159
- * @param int $payment_id The ID number of the payment.
160
- * @param string $new_status The status of the payment, probably "publish".
161
- * @param string $old_status The status of the payment prior to being marked as "complete", probably "pending".
162
- *
163
- * @return void
164
- */
165
- function give_clear_user_history_cache( $payment_id, $new_status, $old_status ) {
166
-
167
- $payment = new Give_Payment( $payment_id );
168
-
169
- if ( ! empty( $payment->user_id ) ) {
170
- delete_transient( 'give_user_' . $payment->user_id . '_purchases' );
171
- }
172
-
173
- }
174
-
175
- add_action( 'give_update_payment_status', 'give_clear_user_history_cache', 10, 3 );
176
-
177
  /**
178
  * Update Old Payments Totals
179
  *
@@ -278,14 +249,11 @@ add_action( 'give_weekly_scheduled_events', 'give_mark_abandoned_donations' );
278
  * @return void
279
  */
280
  function give_refresh_thismonth_stat_transients( $payment_ID ) {
 
 
281
 
282
- /* @var Give_Payment_Stats $stats Give_Payment_Stats class object. */
283
- $stats = new Give_Payment_Stats();
284
-
285
- // Delete transients.
286
- delete_transient( 'give_estimated_monthly_stats' );
287
- delete_transient( 'give_earnings_total' );
288
- delete_transient( $stats->get_earnings_cache_key( 0, 'this_month' ) );
289
  }
290
 
291
  add_action( 'save_post_give_payment', 'give_refresh_thismonth_stat_transients' );
82
  give_increase_earnings( $form_id, $amount );
83
  give_increase_purchase_count( $form_id );
84
 
85
+ // @todo: Refresh only range related stat cache
86
+ give_delete_donation_stats();
 
 
 
87
 
88
  // Increase the donor's donation stats.
89
  $customer = new Give_Customer( $customer_id );
145
  add_action( 'give_update_payment_status', 'give_record_status_change', 100, 3 );
146
 
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  /**
149
  * Update Old Payments Totals
150
  *
249
  * @return void
250
  */
251
  function give_refresh_thismonth_stat_transients( $payment_ID ) {
252
+ // Monthly stats.
253
+ Give_Cache::delete( Give_Cache::get_key( 'give_estimated_monthly_stats' ) );
254
 
255
+ // @todo: Refresh only range related stat cache
256
+ give_delete_donation_stats();
 
 
 
 
 
257
  }
258
 
259
  add_action( 'save_post_give_payment', 'give_refresh_thismonth_stat_transients' );
includes/payments/class-give-payment.php CHANGED
@@ -1626,8 +1626,8 @@ final class Give_Payment {
1626
  $this->maybe_alter_stats( $decrease_store_earnings, $decrease_customer_value, $decrease_purchase_count );
1627
  $this->delete_sales_logs();
1628
 
1629
- // Clear the This Month earnings (this_monththis_month is NOT a typo).
1630
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
1631
 
1632
  /**
1633
  * Fires after refunding payment.
@@ -1684,8 +1684,8 @@ final class Give_Payment {
1684
  $this->completed_date = false;
1685
  $this->update_meta( '_give_completed_date', '' );
1686
 
1687
- // Clear the This Month earnings (this_monththis_month is NOT a typo).
1688
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
1689
  }
1690
 
1691
  /**
@@ -1721,8 +1721,8 @@ final class Give_Payment {
1721
  $this->completed_date = false;
1722
  $this->update_meta( '_give_completed_date', '' );
1723
 
1724
- // Clear the This Month earnings (this_monththis_month is NOT a typo).
1725
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
1726
  }
1727
 
1728
  /**
@@ -1756,8 +1756,8 @@ final class Give_Payment {
1756
  $this->completed_date = false;
1757
  $this->update_meta( '_give_completed_date', '' );
1758
 
1759
- // Clear the This Month earnings (this_monththis_month is NOT a typo).
1760
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
1761
  }
1762
 
1763
  /**
1626
  $this->maybe_alter_stats( $decrease_store_earnings, $decrease_customer_value, $decrease_purchase_count );
1627
  $this->delete_sales_logs();
1628
 
1629
+ // @todo: Refresh only range related stat cache
1630
+ give_delete_donation_stats();
1631
 
1632
  /**
1633
  * Fires after refunding payment.
1684
  $this->completed_date = false;
1685
  $this->update_meta( '_give_completed_date', '' );
1686
 
1687
+ // @todo: Refresh only range related stat cache
1688
+ give_delete_donation_stats();
1689
  }
1690
 
1691
  /**
1721
  $this->completed_date = false;
1722
  $this->update_meta( '_give_completed_date', '' );
1723
 
1724
+ // @todo: Refresh only range related stat cache
1725
+ give_delete_donation_stats();
1726
  }
1727
 
1728
  /**
1756
  $this->completed_date = false;
1757
  $this->update_meta( '_give_completed_date', '' );
1758
 
1759
+ // @todo: Refresh only range related stat cache
1760
+ give_delete_donation_stats();
1761
  }
1762
 
1763
  /**
includes/payments/class-payment-stats.php CHANGED
@@ -143,8 +143,8 @@ class Give_Payment_Stats extends Give_Stats {
143
  }
144
 
145
  $args = apply_filters( 'give_stats_earnings_args', $args );
146
- $key = 'give_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
147
- $earnings = get_transient( $key );
148
 
149
  if ( false === $earnings ) {
150
  $sales = get_posts( $args );
@@ -154,7 +154,7 @@ class Give_Payment_Stats extends Give_Stats {
154
  $earnings += $wpdb->get_var( "SELECT SUM(meta_value) FROM $wpdb->postmeta WHERE meta_key = '_give_payment_total' AND post_id IN({$sales})" );
155
  }
156
  // Cache the results for one hour
157
- set_transient( $key, $earnings, HOUR_IN_SECONDS );
158
  }
159
 
160
  } else {
@@ -175,9 +175,9 @@ class Give_Payment_Stats extends Give_Stats {
175
  // This is not a valid query arg, but is used for cache keying
176
  );
177
  $args = apply_filters( 'give_stats_earnings_args', $args );
178
- $key = 'give_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
179
  //Set transient for faster stats
180
- $earnings = get_transient( $key );
181
 
182
  if ( false === $earnings ) {
183
 
@@ -196,7 +196,7 @@ class Give_Payment_Stats extends Give_Stats {
196
  }
197
 
198
  // Cache the results for one hour
199
- set_transient( $key, $earnings, 60 * 60 );
200
  }
201
  }
202
 
@@ -261,7 +261,7 @@ class Give_Payment_Stats extends Give_Stats {
261
  }
262
 
263
  $args = apply_filters( 'give_stats_earnings_args', $args );
264
- $key = 'give_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
265
 
266
  } else {
267
 
@@ -280,8 +280,9 @@ class Give_Payment_Stats extends Give_Stats {
280
  'give_transient_type' => 'give_earnings',
281
  // This is not a valid query arg, but is used for cache keying
282
  );
 
283
  $args = apply_filters( 'give_stats_earnings_args', $args );
284
- $key = 'give_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
285
  }
286
 
287
  //remove our filter
143
  }
144
 
145
  $args = apply_filters( 'give_stats_earnings_args', $args );
146
+ $key = Give_Cache::get_key( 'give_stats', $args );
147
+ $earnings = Give_Cache::get( $key );
148
 
149
  if ( false === $earnings ) {
150
  $sales = get_posts( $args );
154
  $earnings += $wpdb->get_var( "SELECT SUM(meta_value) FROM $wpdb->postmeta WHERE meta_key = '_give_payment_total' AND post_id IN({$sales})" );
155
  }
156
  // Cache the results for one hour
157
+ Give_Cache::set( $key, $earnings, HOUR_IN_SECONDS );
158
  }
159
 
160
  } else {
175
  // This is not a valid query arg, but is used for cache keying
176
  );
177
  $args = apply_filters( 'give_stats_earnings_args', $args );
178
+ $key = Give_Cache::get_key( 'give_stats', $args );
179
  //Set transient for faster stats
180
+ $earnings = Give_Cache::get( $key );
181
 
182
  if ( false === $earnings ) {
183
 
196
  }
197
 
198
  // Cache the results for one hour
199
+ Give_Cache::set( $key, $earnings, 60 * 60 );
200
  }
201
  }
202
 
261
  }
262
 
263
  $args = apply_filters( 'give_stats_earnings_args', $args );
264
+ $key = Give_Cache::get_key( 'give_stats', $args );
265
 
266
  } else {
267
 
280
  'give_transient_type' => 'give_earnings',
281
  // This is not a valid query arg, but is used for cache keying
282
  );
283
+
284
  $args = apply_filters( 'give_stats_earnings_args', $args );
285
+ $key = Give_Cache::get_key( 'give_stats', $args );
286
  }
287
 
288
  //remove our filter
includes/payments/functions.php CHANGED
@@ -25,23 +25,23 @@ if ( ! defined( 'ABSPATH' ) ) {
25
  *
26
  * @since 1.0
27
  *
28
- * @param array $args {
29
  * Optional. Array of arguments passed to payments query.
30
  *
31
- * @type int $offset The number of payments to offset before retrieval.
32
  * Default is 0.
33
- * @type int $number The number of payments to query for. Use -1 to request all
34
  * payments. Default is 20.
35
- * @type string $mode Default is 'live'.
36
- * @type string $order Designates ascending or descending order of payments.
37
  * Accepts 'ASC', 'DESC'. Default is 'DESC'.
38
- * @type string $orderby Sort retrieved payments by parameter. Default is 'ID'.
39
- * @type string $status The status of the payments. Default is 'any'.
40
- * @type string $user User. Default is null.
41
  * @type string $meta_key Custom field key. Default is null.
42
  * }
43
  *
44
- * @return object $payments Payments retrieved from the database
45
  */
46
  function give_get_payments( $args = array() ) {
47
 
@@ -62,7 +62,7 @@ function give_get_payments( $args = array() ) {
62
  * @since 1.0
63
  *
64
  * @param string $field The field to retrieve the payment with.
65
- * @param mixed $value The value for $field.
66
  *
67
  * @return mixed
68
  */
@@ -196,7 +196,7 @@ function give_insert_payment( $payment_data = array() ) {
196
  *
197
  * @since 1.0
198
  *
199
- * @param int $payment_id The payment ID.
200
  * @param array $payment_data Arguments passed.
201
  */
202
  do_action( 'give_insert_payment', $payment->ID, $payment_data );
@@ -256,7 +256,7 @@ function give_create_payment( $payment_data ) {
256
  *
257
  * @since 1.0
258
  *
259
- * @param int $payment_id Payment ID.
260
  * @param string $new_status New Payment Status. Default is 'publish'.
261
  *
262
  * @return bool
@@ -277,7 +277,7 @@ function give_update_payment_status( $payment_id, $new_status = 'publish' ) {
277
  * @since 1.0
278
  * @global $give_logs
279
  *
280
- * @param int $payment_id Payment ID (default: 0).
281
  * @param bool $update_customer If we should update the customer stats (default:true).
282
  *
283
  * @return void
@@ -305,8 +305,9 @@ function give_delete_purchase( $payment_id = 0, $update_customer = true ) {
305
 
306
  // Only decrease earnings if they haven't already been decreased (or were never increased for this payment).
307
  give_decrease_total_earnings( $amount );
308
- // Clear the This Month earnings (this_monththis_month is NOT a typo).
309
- delete_transient( md5( 'give_earnings_this_monththis_month' ) );
 
310
 
311
  if ( $customer->id && $update_customer ) {
312
 
@@ -366,8 +367,8 @@ function give_delete_purchase( $payment_id = 0, $update_customer = true ) {
366
  *
367
  * @since 1.0
368
  *
369
- * @param int|bool $form_id Form ID (default: false).
370
- * @param int $payment_id Payment ID.
371
  *
372
  * @return void
373
  */
@@ -404,7 +405,7 @@ function give_undo_purchase( $form_id = false, $payment_id ) {
404
  *
405
  * @param array $args Arguments passed.
406
  *
407
- * @return array $count Number of payments sorted by payment status.
408
  */
409
  function give_count_payments( $args = array() ) {
410
 
@@ -604,8 +605,8 @@ function give_check_for_existing_payment( $payment_id ) {
604
  *
605
  * @since 1.0
606
  *
607
- * @param WP_Post|Give_Payment $payment Payment object.
608
- * @param bool $return_label Whether to return the translated status label
609
  * instead of status value. Default false.
610
  *
611
  * @return bool|mixed True if payment status exists, false otherwise.
@@ -657,6 +658,7 @@ function give_get_payment_statuses() {
657
  'cancelled' => __( 'Cancelled', 'give' ),
658
  'abandoned' => __( 'Abandoned', 'give' ),
659
  'preapproval' => __( 'Pre-Approved', 'give' ),
 
660
  'revoked' => __( 'Revoked', 'give' ),
661
  );
662
 
@@ -684,10 +686,10 @@ function give_get_payment_status_keys() {
684
  *
685
  * @since 1.0
686
  *
687
- * @param int $day Day number. Default is null.
688
  * @param int $month_num Month number. Default is null.
689
- * @param int $year Year number. Default is null.
690
- * @param int $hour Hour number. Default is null.
691
  *
692
  * @return int $earnings Earnings
693
  */
@@ -714,12 +716,12 @@ function give_get_earnings_by_date( $day = null, $month_num, $year = null, $hour
714
  }
715
 
716
  $args = apply_filters( 'give_get_earnings_by_date_args', $args );
717
- $key = 'give_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
718
 
719
  if ( ! empty( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'give-refresh-reports' ) ) {
720
  $earnings = false;
721
  } else {
722
- $earnings = get_transient( $key );
723
  }
724
 
725
  if ( false === $earnings ) {
@@ -732,7 +734,7 @@ function give_get_earnings_by_date( $day = null, $month_num, $year = null, $hour
732
 
733
  }
734
  // Cache the results for one hour.
735
- set_transient( $key, $earnings, HOUR_IN_SECONDS );
736
  }
737
 
738
  return round( $earnings, 2 );
@@ -743,10 +745,10 @@ function give_get_earnings_by_date( $day = null, $month_num, $year = null, $hour
743
  *
744
  * @since 1.0
745
  *
746
- * @param int $day Day number. Default is null.
747
  * @param int $month_num Month number. Default is null.
748
- * @param int $year Year number. Default is null.
749
- * @param int $hour Hour number. Default is null.
750
  *
751
  * @return int $count Sales
752
  */
@@ -790,19 +792,19 @@ function give_get_sales_by_date( $day = null, $month_num = null, $year = null, $
790
 
791
  $args = apply_filters( 'give_get_sales_by_date_args', $args );
792
 
793
- $key = 'give_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
794
 
795
  if ( ! empty( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'give-refresh-reports' ) ) {
796
  $count = false;
797
  } else {
798
- $count = get_transient( $key );
799
  }
800
 
801
  if ( false === $count ) {
802
  $sales = new WP_Query( $args );
803
  $count = (int) $sales->post_count;
804
  // Cache the results for one hour.
805
- set_transient( $key, $count, HOUR_IN_SECONDS );
806
  }
807
 
808
  return $count;
@@ -851,54 +853,46 @@ function give_get_total_sales() {
851
  *
852
  * @since 1.0
853
  *
 
 
854
  * @return float $total Total earnings.
855
  */
856
- function give_get_total_earnings() {
857
 
858
- $total = get_option( 'give_earnings_total', false );
859
-
860
- // If no total stored in DB, use old method of calculating total earnings.
861
- if ( false === $total ) {
862
 
 
 
863
  global $wpdb;
864
 
865
- $total = get_transient( 'give_earnings_total' );
866
-
867
- if ( false === $total ) {
868
 
869
- $total = (float) 0;
 
 
 
 
 
870
 
871
- $args = apply_filters( 'give_get_total_earnings_args', array(
872
- 'offset' => 0,
873
- 'number' => - 1,
874
- 'status' => array( 'publish' ),
875
- 'fields' => 'ids',
876
- ) );
877
 
878
- $payments = give_get_payments( $args );
879
- if ( $payments ) {
880
-
881
- /**
882
- * If performing a donation, we need to skip the very last payment in the database,
883
- * since it calls give_increase_total_earnings() on completion,
884
- * which results in duplicated earnings for the very first donation.
885
- */
886
- if ( did_action( 'give_update_payment_status' ) ) {
887
- array_pop( $payments );
888
- }
889
-
890
- if ( ! empty( $payments ) ) {
891
- $payments = implode( ',', $payments );
892
- $total += $wpdb->get_var( "SELECT SUM(meta_value) FROM $wpdb->postmeta WHERE meta_key = '_give_payment_total' AND post_id IN({$payments})" );
893
- }
894
  }
895
 
896
- // Cache results for 1 day. This cache is cleared automatically when a payment is made.
897
- set_transient( 'give_earnings_total', $total, 86400 );
898
-
899
- // Store the total for the first time.
900
- update_option( 'give_earnings_total', $total );
901
  }
 
 
902
  }
903
 
904
  if ( $total < 0 ) {
@@ -913,7 +907,7 @@ function give_get_total_earnings() {
913
  *
914
  * @since 1.0
915
  *
916
- * @param int $amount The amount you would like to increase the total earnings by.
917
  * Default is 0.
918
  *
919
  * @return float $total Total earnings.
@@ -951,9 +945,9 @@ function give_decrease_total_earnings( $amount = 0 ) {
951
  *
952
  * @since 1.0
953
  *
954
- * @param int $payment_id Payment ID.
955
- * @param string $meta_key The meta key to pull.
956
- * @param bool $single Pull single meta entry or as an object.
957
  *
958
  * @return mixed $meta Payment Meta.
959
  */
@@ -966,8 +960,8 @@ function give_get_payment_meta( $payment_id = 0, $meta_key = '_give_payment_meta
966
  /**
967
  * Update the meta for a payment
968
  *
969
- * @param int $payment_id Payment ID.
970
- * @param string $meta_key Meta key to update.
971
  * @param string $meta_value Value to update to.
972
  * @param string $prev_value Previous value.
973
  *
@@ -1380,8 +1374,8 @@ function give_get_payment_subtotal( $payment_id = 0 ) {
1380
  *
1381
  * @since 1.5
1382
  *
1383
- * @param int $payment_id Payment ID.
1384
- * @param string $type Fee type.
1385
  *
1386
  * @return mixed array if payment fees found, false otherwise.
1387
  */
@@ -1411,7 +1405,7 @@ function give_get_payment_transaction_id( $payment_id = 0 ) {
1411
  *
1412
  * @since 1.0
1413
  *
1414
- * @param int $payment_id Payment ID.
1415
  * @param string $transaction_id The transaction ID from the gateway.
1416
  *
1417
  * @return bool|mixed
@@ -1433,7 +1427,7 @@ function give_set_payment_transaction_id( $payment_id = 0, $transaction_id = ''
1433
  * @since 1.0
1434
  * @global object $wpdb Used to query the database using the WordPress Database API.
1435
  *
1436
- * @param string $key the key to search for.
1437
  *
1438
  * @return int $purchase Donation ID.
1439
  */
@@ -1456,7 +1450,7 @@ function give_get_purchase_id_by_key( $key ) {
1456
  * @since 1.3
1457
  * @global object $wpdb Used to query the database using the WordPress Database API.
1458
  *
1459
- * @param string $key The transaction ID to search for.
1460
  *
1461
  * @return int $purchase Donation ID.
1462
  */
@@ -1477,8 +1471,8 @@ function give_get_purchase_id_by_transaction_id( $key ) {
1477
  *
1478
  * @since 1.0
1479
  *
1480
- * @param int $payment_id The donation ID to retrieve notes for.
1481
- * @param string $search Search for notes that contain a search term.
1482
  *
1483
  * @return array $notes Donation Notes
1484
  */
@@ -1505,8 +1499,8 @@ function give_get_payment_notes( $payment_id = 0, $search = '' ) {
1505
  *
1506
  * @since 1.0
1507
  *
1508
- * @param int $payment_id The payment ID to store a note for.
1509
- * @param string $note The note to store.
1510
  *
1511
  * @return int The new note ID
1512
  */
@@ -1520,8 +1514,8 @@ function give_insert_payment_note( $payment_id = 0, $note = '' ) {
1520
  *
1521
  * @since 1.0
1522
  *
1523
- * @param int $payment_id Payment ID.
1524
- * @param string $note The note.
1525
  */
1526
  do_action( 'give_pre_insert_payment_note', $payment_id, $note );
1527
 
@@ -1546,9 +1540,9 @@ function give_insert_payment_note( $payment_id = 0, $note = '' ) {
1546
  *
1547
  * @since 1.0
1548
  *
1549
- * @param int $note_id Note ID.
1550
- * @param int $payment_id Payment ID.
1551
- * @param string $note The note.
1552
  */
1553
  do_action( 'give_insert_payment_note', $note_id, $payment_id, $note );
1554
 
@@ -1600,8 +1594,8 @@ function give_delete_payment_note( $comment_id = 0, $payment_id = 0 ) {
1600
  *
1601
  * @since 1.0
1602
  *
1603
- * @param object|int $note The comment object or ID.
1604
- * @param int $payment_id The payment ID the note is connected to.
1605
  *
1606
  * @return string
1607
  */
@@ -1668,7 +1662,7 @@ add_action( 'pre_get_comments', 'give_hide_payment_notes', 10 );
1668
  *
1669
  * @since 1.0
1670
  *
1671
- * @param array $clauses Comment clauses for comment query.
1672
  * @param object $wp_comment_query WordPress Comment Query Object.
1673
  *
1674
  * @return array $clauses Updated comment clauses.
@@ -1711,8 +1705,8 @@ add_filter( 'comment_feed_where', 'give_hide_payment_notes_from_feeds', 10, 2 );
1711
  * @access public
1712
  * @since 1.0
1713
  *
1714
- * @param array $stats (empty from core filter).
1715
- * @param int $post_id Post ID.
1716
  *
1717
  * @return array Array of comment counts.
1718
  */
@@ -1803,9 +1797,9 @@ function give_filter_where_older_than_week( $where = '' ) {
1803
  *
1804
  * @since 1.5
1805
  *
1806
- * @param array $payment_meta Payment meta data.
1807
- * @param bool $only_level If set to true will only return the level name if multi-level enabled.
1808
- * @param string $separator The separator between the .
1809
  *
1810
  * @return string $form_title Returns the full title if $only_level is false, otherwise returns the levels title.
1811
  */
@@ -1849,8 +1843,8 @@ function give_get_payment_form_title( $payment_meta, $only_level = false, $separ
1849
  *
1850
  * Retrieves the Price ID when provided a proper form ID and price (donation) total
1851
  *
1852
- * @param int $form_id Form ID.
1853
- * @param string $price Price ID.
1854
  *
1855
  * @return string $price_id
1856
  */
@@ -1888,7 +1882,7 @@ function give_get_price_id( $form_id, $price ) {
1888
  * @since 1.6
1889
  *
1890
  * @param array $args Arguments for form dropdown.
1891
- * @param bool $echo This parameter decides if print form dropdown html output or not.
1892
  *
1893
  * @return string|void
1894
  */
@@ -1908,7 +1902,7 @@ function give_get_form_dropdown( $args = array(), $echo = false ) {
1908
  * @since 1.6
1909
  *
1910
  * @param array $args Arguments for form dropdown.
1911
- * @param bool $echo This parameter decide if print form dropdown html output or not.
1912
  *
1913
  * @return string|bool
1914
  */
@@ -1966,14 +1960,14 @@ function give_get_form_variable_price_dropdown( $args = array(), $echo = false )
1966
  */
1967
  function give_get_payment_meta_price_id( $payment_meta ) {
1968
 
1969
- if(isset($payment_meta['give_price_id'])) {
1970
- $price_id = $payment_meta['give_price_id'];
1971
- } elseif(isset($payment_meta['price_id'])) {
1972
- $price_id = $payment_meta['price_id'];
1973
  } else {
1974
  $price_id = give_get_price_id( $payment_meta['give_form_id'], $payment_meta['price'] );
1975
  }
1976
 
1977
- return apply_filters('give_get_payment_meta_price_id', $price_id);
1978
 
1979
  }
25
  *
26
  * @since 1.0
27
  *
28
+ * @param array $args {
29
  * Optional. Array of arguments passed to payments query.
30
  *
31
+ * @type int $offset The number of payments to offset before retrieval.
32
  * Default is 0.
33
+ * @type int $number The number of payments to query for. Use -1 to request all
34
  * payments. Default is 20.
35
+ * @type string $mode Default is 'live'.
36
+ * @type string $order Designates ascending or descending order of payments.
37
  * Accepts 'ASC', 'DESC'. Default is 'DESC'.
38
+ * @type string $orderby Sort retrieved payments by parameter. Default is 'ID'.
39
+ * @type string $status The status of the payments. Default is 'any'.
40
+ * @type string $user User. Default is null.
41
  * @type string $meta_key Custom field key. Default is null.
42
  * }
43
  *
44
+ * @return array $payments Payments retrieved from the database
45
  */
46
  function give_get_payments( $args = array() ) {
47
 
62
  * @since 1.0
63
  *
64
  * @param string $field The field to retrieve the payment with.
65
+ * @param mixed $value The value for $field.
66
  *
67
  * @return mixed
68
  */
196
  *
197
  * @since 1.0
198
  *
199
+ * @param int $payment_id The payment ID.
200
  * @param array $payment_data Arguments passed.
201
  */
202
  do_action( 'give_insert_payment', $payment->ID, $payment_data );
256
  *
257
  * @since 1.0
258
  *
259
+ * @param int $payment_id Payment ID.
260
  * @param string $new_status New Payment Status. Default is 'publish'.
261
  *
262
  * @return bool
277
  * @since 1.0
278
  * @global $give_logs
279
  *
280
+ * @param int $payment_id Payment ID (default: 0).
281
  * @param bool $update_customer If we should update the customer stats (default:true).
282
  *
283
  * @return void
305
 
306
  // Only decrease earnings if they haven't already been decreased (or were never increased for this payment).
307
  give_decrease_total_earnings( $amount );
308
+
309
+ // @todo: Refresh only range related stat cache
310
+ give_delete_donation_stats();
311
 
312
  if ( $customer->id && $update_customer ) {
313
 
367
  *
368
  * @since 1.0
369
  *
370
+ * @param int|bool $form_id Form ID (default: false).
371
+ * @param int $payment_id Payment ID.
372
  *
373
  * @return void
374
  */
405
  *
406
  * @param array $args Arguments passed.
407
  *
408
+ * @return object $stats Contains the number of payments per payment status.
409
  */
410
  function give_count_payments( $args = array() ) {
411
 
605
  *
606
  * @since 1.0
607
  *
608
+ * @param WP_Post|Give_Payment $payment Payment object.
609
+ * @param bool $return_label Whether to return the translated status label
610
  * instead of status value. Default false.
611
  *
612
  * @return bool|mixed True if payment status exists, false otherwise.
658
  'cancelled' => __( 'Cancelled', 'give' ),
659
  'abandoned' => __( 'Abandoned', 'give' ),
660
  'preapproval' => __( 'Pre-Approved', 'give' ),
661
+ 'processing' => __( 'Processing', 'give' ),
662
  'revoked' => __( 'Revoked', 'give' ),
663
  );
664
 
686
  *
687
  * @since 1.0
688
  *
689
+ * @param int $day Day number. Default is null.
690
  * @param int $month_num Month number. Default is null.
691
+ * @param int $year Year number. Default is null.
692
+ * @param int $hour Hour number. Default is null.
693
  *
694
  * @return int $earnings Earnings
695
  */
716
  }
717
 
718
  $args = apply_filters( 'give_get_earnings_by_date_args', $args );
719
+ $key = Give_Cache::get_key( 'give_stats', $args );
720
 
721
  if ( ! empty( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'give-refresh-reports' ) ) {
722
  $earnings = false;
723
  } else {
724
+ $earnings = Give_Cache::get( $key );
725
  }
726
 
727
  if ( false === $earnings ) {
734
 
735
  }
736
  // Cache the results for one hour.
737
+ Give_Cache::set( $key, $earnings, HOUR_IN_SECONDS );
738
  }
739
 
740
  return round( $earnings, 2 );
745
  *
746
  * @since 1.0
747
  *
748
+ * @param int $day Day number. Default is null.
749
  * @param int $month_num Month number. Default is null.
750
+ * @param int $year Year number. Default is null.
751
+ * @param int $hour Hour number. Default is null.
752
  *
753
  * @return int $count Sales
754
  */
792
 
793
  $args = apply_filters( 'give_get_sales_by_date_args', $args );
794
 
795
+ $key = Give_Cache::get_key( 'give_stats', $args );
796
 
797
  if ( ! empty( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'give-refresh-reports' ) ) {
798
  $count = false;
799
  } else {
800
+ $count = Give_Cache::get( $key );
801
  }
802
 
803
  if ( false === $count ) {
804
  $sales = new WP_Query( $args );
805
  $count = (int) $sales->post_count;
806
  // Cache the results for one hour.
807
+ Give_Cache::set( $key, $count, HOUR_IN_SECONDS );
808
  }
809
 
810
  return $count;
853
  *
854
  * @since 1.0
855
  *
856
+ * @param bool $recalculate Recalculate earnings forcefully.
857
+ *
858
  * @return float $total Total earnings.
859
  */
860
+ function give_get_total_earnings( $recalculate = false ) {
861
 
862
+ $total = get_option( 'give_earnings_total', 0 );
 
 
 
863
 
864
+ // Calculate total earnings.
865
+ if ( ! $total || $recalculate ) {
866
  global $wpdb;
867
 
868
+ $total = (float) 0;
 
 
869
 
870
+ $args = apply_filters( 'give_get_total_earnings_args', array(
871
+ 'offset' => 0,
872
+ 'number' => - 1,
873
+ 'status' => array( 'publish' ),
874
+ 'fields' => 'ids',
875
+ ) );
876
 
877
+ $payments = give_get_payments( $args );
878
+ if ( $payments ) {
 
 
 
 
879
 
880
+ /**
881
+ * If performing a donation, we need to skip the very last payment in the database,
882
+ * since it calls give_increase_total_earnings() on completion,
883
+ * which results in duplicated earnings for the very first donation.
884
+ */
885
+ if ( did_action( 'give_update_payment_status' ) ) {
886
+ array_pop( $payments );
 
 
 
 
 
 
 
 
 
887
  }
888
 
889
+ if ( ! empty( $payments ) ) {
890
+ $payments = implode( ',', $payments );
891
+ $total += $wpdb->get_var( "SELECT SUM(meta_value) FROM $wpdb->postmeta WHERE meta_key = '_give_payment_total' AND post_id IN({$payments})" );
892
+ }
 
893
  }
894
+
895
+ update_option( 'give_earnings_total', $total, 'no' );
896
  }
897
 
898
  if ( $total < 0 ) {
907
  *
908
  * @since 1.0
909
  *
910
+ * @param int $amount The amount you would like to increase the total earnings by.
911
  * Default is 0.
912
  *
913
  * @return float $total Total earnings.
945
  *
946
  * @since 1.0
947
  *
948
+ * @param int $payment_id Payment ID.
949
+ * @param string $meta_key The meta key to pull.
950
+ * @param bool $single Pull single meta entry or as an object.
951
  *
952
  * @return mixed $meta Payment Meta.
953
  */
960
  /**
961
  * Update the meta for a payment
962
  *
963
+ * @param int $payment_id Payment ID.
964
+ * @param string $meta_key Meta key to update.
965
  * @param string $meta_value Value to update to.
966
  * @param string $prev_value Previous value.
967
  *
1374
  *
1375
  * @since 1.5
1376
  *
1377
+ * @param int $payment_id Payment ID.
1378
+ * @param string $type Fee type.
1379
  *
1380
  * @return mixed array if payment fees found, false otherwise.
1381
  */
1405
  *
1406
  * @since 1.0
1407
  *
1408
+ * @param int $payment_id Payment ID.
1409
  * @param string $transaction_id The transaction ID from the gateway.
1410
  *
1411
  * @return bool|mixed
1427
  * @since 1.0
1428
  * @global object $wpdb Used to query the database using the WordPress Database API.
1429
  *
1430
+ * @param string $key the key to search for.
1431
  *
1432
  * @return int $purchase Donation ID.
1433
  */
1450
  * @since 1.3
1451
  * @global object $wpdb Used to query the database using the WordPress Database API.
1452
  *
1453
+ * @param string $key The transaction ID to search for.
1454
  *
1455
  * @return int $purchase Donation ID.
1456
  */
1471
  *
1472
  * @since 1.0
1473
  *
1474
+ * @param int $payment_id The donation ID to retrieve notes for.
1475
+ * @param string $search Search for notes that contain a search term.
1476
  *
1477
  * @return array $notes Donation Notes
1478
  */
1499
  *
1500
  * @since 1.0
1501
  *
1502
+ * @param int $payment_id The payment ID to store a note for.
1503
+ * @param string $note The note to store.
1504
  *
1505
  * @return int The new note ID
1506
  */
1514
  *
1515
  * @since 1.0
1516
  *
1517
+ * @param int $payment_id Payment ID.
1518
+ * @param string $note The note.
1519
  */
1520
  do_action( 'give_pre_insert_payment_note', $payment_id, $note );
1521
 
1540
  *
1541
  * @since 1.0
1542
  *
1543
+ * @param int $note_id Note ID.
1544
+ * @param int $payment_id Payment ID.
1545
+ * @param string $note The note.
1546
  */
1547
  do_action( 'give_insert_payment_note', $note_id, $payment_id, $note );
1548
 
1594
  *
1595
  * @since 1.0
1596
  *
1597
+ * @param object|int $note The comment object or ID.
1598
+ * @param int $payment_id The payment ID the note is connected to.
1599
  *
1600
  * @return string
1601
  */
1662
  *
1663
  * @since 1.0
1664
  *
1665
+ * @param array $clauses Comment clauses for comment query.
1666
  * @param object $wp_comment_query WordPress Comment Query Object.
1667
  *
1668
  * @return array $clauses Updated comment clauses.
1705
  * @access public
1706
  * @since 1.0
1707
  *
1708
+ * @param array $stats (empty from core filter).
1709
+ * @param int $post_id Post ID.
1710
  *
1711
  * @return array Array of comment counts.
1712
  */
1797
  *
1798
  * @since 1.5
1799
  *
1800
+ * @param array $payment_meta Payment meta data.
1801
+ * @param bool $only_level If set to true will only return the level name if multi-level enabled.
1802
+ * @param string $separator The separator between the .
1803
  *
1804
  * @return string $form_title Returns the full title if $only_level is false, otherwise returns the levels title.
1805
  */
1843
  *
1844
  * Retrieves the Price ID when provided a proper form ID and price (donation) total
1845
  *
1846
+ * @param int $form_id Form ID.
1847
+ * @param string $price Price ID.
1848
  *
1849
  * @return string $price_id
1850
  */
1882
  * @since 1.6
1883
  *
1884
  * @param array $args Arguments for form dropdown.
1885
+ * @param bool $echo This parameter decides if print form dropdown html output or not.
1886
  *
1887
  * @return string|void
1888
  */
1902
  * @since 1.6
1903
  *
1904
  * @param array $args Arguments for form dropdown.
1905
+ * @param bool $echo This parameter decide if print form dropdown html output or not.
1906
  *
1907
  * @return string|bool
1908
  */
1960
  */
1961
  function give_get_payment_meta_price_id( $payment_meta ) {
1962
 
1963
+ if ( isset( $payment_meta['give_price_id'] ) ) {
1964
+ $price_id = $payment_meta['give_price_id'];
1965
+ } elseif ( isset( $payment_meta['price_id'] ) ) {
1966
+ $price_id = $payment_meta['price_id'];
1967
  } else {
1968
  $price_id = give_get_price_id( $payment_meta['give_form_id'], $payment_meta['price'] );
1969
  }
1970
 
1971
+ return apply_filters( 'give_get_payment_meta_price_id', $price_id );
1972
 
1973
  }
includes/post-types.php CHANGED
@@ -38,20 +38,20 @@ function give_setup_post_types() {
38
  );
39
 
40
  $give_forms_labels = apply_filters( 'give_forms_labels', array(
41
- 'name' => esc_html__( 'Donation Forms', 'give' ),
42
- 'singular_name' => esc_html__( 'Form', 'give' ),
43
- 'add_new' => esc_html__( 'Add Form', 'give' ),
44
- 'add_new_item' => esc_html__( 'Add New Donation Form', 'give' ),
45
- 'edit_item' => esc_html__( 'Edit Donation Form', 'give' ),
46
- 'new_item' => esc_html__( 'New Form', 'give' ),
47
- 'all_items' => esc_html__( 'All Forms', 'give' ),
48
- 'view_item' => esc_html__( 'View Form', 'give' ),
49
- 'search_items' => esc_html__( 'Search Forms', 'give' ),
50
- 'not_found' => esc_html__( 'No forms found.', 'give' ),
51
- 'not_found_in_trash' => esc_html__( 'No forms found in Trash.', 'give' ),
52
  'parent_item_colon' => '',
53
- 'menu_name' => apply_filters( 'give_menu_name', esc_html__( 'Donations', 'give' ) ),
54
- 'name_admin_bar' => apply_filters( 'give_name_admin_bar_name', esc_html__( 'Donation Form', 'give' ) ),
55
  ) );
56
 
57
  // Default give_forms supports.
@@ -95,17 +95,17 @@ function give_setup_post_types() {
95
  $payment_labels = array(
96
  'name' => _x( 'Donations', 'post type general name', 'give' ),
97
  'singular_name' => _x( 'Donation', 'post type singular name', 'give' ),
98
- 'add_new' => esc_html__( 'Add New', 'give' ),
99
- 'add_new_item' => esc_html__( 'Add New Donation', 'give' ),
100
- 'edit_item' => esc_html__( 'Edit Donation', 'give' ),
101
- 'new_item' => esc_html__( 'New Donation', 'give' ),
102
- 'all_items' => esc_html__( 'All Donations', 'give' ),
103
- 'view_item' => esc_html__( 'View Donation', 'give' ),
104
- 'search_items' => esc_html__( 'Search Donations', 'give' ),
105
- 'not_found' => esc_html__( 'No donations found.', 'give' ),
106
- 'not_found_in_trash' => esc_html__( 'No donations found in Trash.', 'give' ),
107
  'parent_item_colon' => '',
108
- 'menu_name' => esc_html__( 'Donations', 'give' ),
109
  );
110
 
111
  $payment_args = array(
@@ -141,15 +141,15 @@ function give_setup_taxonomies() {
141
  $category_labels = array(
142
  'name' => _x( 'Form Categories', 'taxonomy general name', 'give' ),
143
  'singular_name' => _x( 'Category', 'taxonomy singular name', 'give' ),
144
- 'search_items' => esc_html__( 'Search Categories', 'give' ),
145
- 'all_items' => esc_html__( 'All Categories', 'give' ),
146
- 'parent_item' => esc_html__( 'Parent Category', 'give' ),
147
- 'parent_item_colon' => esc_html__( 'Parent Category:', 'give' ),
148
- 'edit_item' => esc_html__( 'Edit Category', 'give' ),
149
- 'update_item' => esc_html__( 'Update Category', 'give' ),
150
- 'add_new_item' => esc_html__( 'Add New Category', 'give' ),
151
- 'new_item_name' => esc_html__( 'New Category Name', 'give' ),
152
- 'menu_name' => esc_html__( 'Categories', 'give' ),
153
  );
154
 
155
  $category_args = apply_filters( 'give_forms_category_args', array(
@@ -181,16 +181,16 @@ function give_setup_taxonomies() {
181
  $tag_labels = array(
182
  'name' => _x( 'Form Tags', 'taxonomy general name', 'give' ),
183
  'singular_name' => _x( 'Tag', 'taxonomy singular name', 'give' ),
184
- 'search_items' => esc_html__( 'Search Tags', 'give' ),
185
- 'all_items' => esc_html__( 'All Tags', 'give' ),
186
- 'parent_item' => esc_html__( 'Parent Tag', 'give' ),
187
- 'parent_item_colon' => esc_html__( 'Parent Tag:', 'give' ),
188
- 'edit_item' => esc_html__( 'Edit Tag', 'give' ),
189
- 'update_item' => esc_html__( 'Update Tag', 'give' ),
190
- 'add_new_item' => esc_html__( 'Add New Tag', 'give' ),
191
- 'new_item_name' => esc_html__( 'New Tag Name', 'give' ),
192
- 'menu_name' => esc_html__( 'Tags', 'give' ),
193
- 'choose_from_most_used' => esc_html__( 'Choose from most used tags.', 'give' ),
194
  );
195
 
196
  $tag_args = apply_filters( 'give_forms_tag_args', array(
@@ -226,8 +226,8 @@ add_action( 'init', 'give_setup_taxonomies', 0 );
226
  */
227
  function give_get_default_form_labels() {
228
  $defaults = array(
229
- 'singular' => esc_html__( 'Form', 'give' ),
230
- 'plural' => esc_html__( 'Forms', 'give' ),
231
  );
232
 
233
  return apply_filters( 'give_default_form_name', $defaults );
@@ -272,7 +272,7 @@ function give_get_forms_label_plural( $lowercase = false ) {
272
  function give_change_default_title( $title ) {
273
  // If a frontend plugin uses this filter (check extensions before changing this function)
274
  if ( ! is_admin() ) {
275
- $title = esc_html__( 'Enter form title here', 'give' );
276
 
277
  return $title;
278
  }
@@ -280,7 +280,7 @@ function give_change_default_title( $title ) {
280
  $screen = get_current_screen();
281
 
282
  if ( 'give_forms' == $screen->post_type ) {
283
- $title = esc_html__( 'Enter form title here', 'give' );
284
  }
285
 
286
  return $title;
@@ -297,7 +297,7 @@ add_filter( 'enter_title_here', 'give_change_default_title' );
297
  function give_register_post_type_statuses() {
298
  // Payment Statuses
299
  register_post_status( 'refunded', array(
300
- 'label' => esc_html__( 'Refunded', 'give' ),
301
  'public' => true,
302
  'exclude_from_search' => false,
303
  'show_in_admin_all_list' => true,
@@ -305,7 +305,7 @@ function give_register_post_type_statuses() {
305
  'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'give' ),
306
  ) );
307
  register_post_status( 'failed', array(
308
- 'label' => esc_html__( 'Failed', 'give' ),
309
  'public' => true,
310
  'exclude_from_search' => false,
311
  'show_in_admin_all_list' => true,
@@ -313,7 +313,7 @@ function give_register_post_type_statuses() {
313
  'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'give' ),
314
  ) );
315
  register_post_status( 'revoked', array(
316
- 'label' => esc_html__( 'Revoked', 'give' ),
317
  'public' => true,
318
  'exclude_from_search' => false,
319
  'show_in_admin_all_list' => true,
@@ -321,7 +321,7 @@ function give_register_post_type_statuses() {
321
  'label_count' => _n_noop( 'Revoked <span class="count">(%s)</span>', 'Revoked <span class="count">(%s)</span>', 'give' ),
322
  ) );
323
  register_post_status( 'cancelled', array(
324
- 'label' => esc_html__( 'Cancelled', 'give' ),
325
  'public' => true,
326
  'exclude_from_search' => false,
327
  'show_in_admin_all_list' => true,
@@ -329,13 +329,21 @@ function give_register_post_type_statuses() {
329
  'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'give' ),
330
  ) );
331
  register_post_status( 'abandoned', array(
332
- 'label' => esc_html__( 'Abandoned', 'give' ),
333
  'public' => true,
334
  'exclude_from_search' => false,
335
  'show_in_admin_all_list' => true,
336
  'show_in_admin_status_list' => true,
337
  'label_count' => _n_noop( 'Abandoned <span class="count">(%s)</span>', 'Abandoned <span class="count">(%s)</span>', 'give' ),
338
  ) );
 
 
 
 
 
 
 
 
339
 
340
  }
341
 
@@ -358,21 +366,21 @@ function give_updated_messages( $messages ) {
358
  if ( give_is_setting_enabled( give_get_option( 'forms_singular' ) ) ) {
359
 
360
  $messages['give_forms'] = array(
361
- 1 => esc_html__( 'Form updated.', 'give' ),
362
- 4 => esc_html__( 'Form updated.', 'give' ),
363
- 6 => esc_html__( 'Form published.', 'give' ),
364
- 7 => esc_html__( 'Form saved.', 'give' ),
365
- 8 => esc_html__( 'Form submitted.', 'give' ),
366
  );
367
 
368
  } else {
369
 
370
  $messages['give_forms'] = array(
371
- 1 => sprintf( '%1$s <a href="%2$s">%3$s</a>', esc_html__( 'Form updated.', 'give' ), get_permalink( $post_ID ), esc_html__( 'View Form', 'give' ) ),
372
- 4 => sprintf( '%1$s <a href="%2$s">%3$s</a>', esc_html__( 'Form updated.', 'give' ), get_permalink( $post_ID ), esc_html__( 'View Form', 'give' ) ),
373
- 6 => sprintf( '%1$s <a href="%2$s">%3$s</a>', esc_html__( 'Form published.', 'give' ), get_permalink( $post_ID ), esc_html__( 'View Form', 'give' ) ),
374
- 7 => sprintf( '%1$s <a href="%2$s">%3$s</a>', esc_html__( 'Form saved.', 'give' ), get_permalink( $post_ID ), esc_html__( 'View Form', 'give' ) ),
375
- 8 => sprintf( '%1$s <a href="%2$s">%3$s</a>', esc_html__( 'Form submitted.', 'give' ), get_permalink( $post_ID ), esc_html__( 'View Form', 'give' ) ),
376
  );
377
 
378
  }
@@ -417,9 +425,9 @@ function give_widgets_init() {
417
  ) {
418
 
419
  register_sidebar( apply_filters( 'give_forms_single_sidebar', array(
420
- 'name' => esc_html__( 'Give Single Form Sidebar', 'give' ),
421
  'id' => 'give-forms-sidebar',
422
- 'description' => esc_html__( 'Widgets in this area will be shown on the single Give forms aside area. This sidebar will not display for embedded forms.', 'give' ),
423
  'before_widget' => '<div id="%1$s" class="widget %2$s">',
424
  'after_widget' => '</div>',
425
  'before_title' => '<h3 class="widgettitle widget-title">',
38
  );
39
 
40
  $give_forms_labels = apply_filters( 'give_forms_labels', array(
41
+ 'name' => __( 'Donation Forms', 'give' ),
42
+ 'singular_name' => __( 'Form', 'give' ),
43
+ 'add_new' => __( 'Add Form', 'give' ),
44
+ 'add_new_item' => __( 'Add New Donation Form', 'give' ),
45
+ 'edit_item' => __( 'Edit Donation Form', 'give' ),
46
+ 'new_item' => __( 'New Form', 'give' ),
47
+ 'all_items' => __( 'All Forms', 'give' ),
48
+ 'view_item' => __( 'View Form', 'give' ),
49
+ 'search_items' => __( 'Search Forms', 'give' ),
50
+ 'not_found' => __( 'No forms found.', 'give' ),
51
+ 'not_found_in_trash' => __( 'No forms found in Trash.', 'give' ),
52
  'parent_item_colon' => '',
53
+ 'menu_name' => apply_filters( 'give_menu_name', __( 'Donations', 'give' ) ),
54
+ 'name_admin_bar' => apply_filters( 'give_name_admin_bar_name', __( 'Donation Form', 'give' ) ),
55
  ) );
56
 
57
  // Default give_forms supports.
95
  $payment_labels = array(
96
  'name' => _x( 'Donations', 'post type general name', 'give' ),
97
  'singular_name' => _x( 'Donation', 'post type singular name', 'give' ),
98
+ 'add_new' => __( 'Add New', 'give' ),
99
+ 'add_new_item' => __( 'Add New Donation', 'give' ),
100
+ 'edit_item' => __( 'Edit Donation', 'give' ),
101
+ 'new_item' => __( 'New Donation', 'give' ),
102
+ 'all_items' => __( 'All Donations', 'give' ),
103
+ 'view_item' => __( 'View Donation', 'give' ),
104
+ 'search_items' => __( 'Search Donations', 'give' ),
105
+ 'not_found' => __( 'No donations found.', 'give' ),
106
+ 'not_found_in_trash' => __( 'No donations found in Trash.', 'give' ),
107
  'parent_item_colon' => '',
108
+ 'menu_name' => __( 'Donations', 'give' ),
109
  );
110
 
111
  $payment_args = array(
141
  $category_labels = array(
142
  'name' => _x( 'Form Categories', 'taxonomy general name', 'give' ),
143
  'singular_name' => _x( 'Category', 'taxonomy singular name', 'give' ),
144
+ 'search_items' => __( 'Search Categories', 'give' ),
145
+ 'all_items' => __( 'All Categories', 'give' ),
146
+ 'parent_item' => __( 'Parent Category', 'give' ),
147
+ 'parent_item_colon' => __( 'Parent Category:', 'give' ),
148
+ 'edit_item' => __( 'Edit Category', 'give' ),
149
+ 'update_item' => __( 'Update Category', 'give' ),
150
+ 'add_new_item' => __( 'Add New Category', 'give' ),
151
+ 'new_item_name' => __( 'New Category Name', 'give' ),
152
+ 'menu_name' => __( 'Categories', 'give' ),
153
  );
154
 
155
  $category_args = apply_filters( 'give_forms_category_args', array(
181
  $tag_labels = array(
182
  'name' => _x( 'Form Tags', 'taxonomy general name', 'give' ),
183
  'singular_name' => _x( 'Tag', 'taxonomy singular name', 'give' ),
184
+ 'search_items' => __( 'Search Tags', 'give' ),
185
+ 'all_items' => __( 'All Tags', 'give' ),
186
+ 'parent_item' => __( 'Parent Tag', 'give' ),
187
+ 'parent_item_colon' => __( 'Parent Tag:', 'give' ),
188
+ 'edit_item' => __( 'Edit Tag', 'give' ),
189
+ 'update_item' => __( 'Update Tag', 'give' ),
190
+ 'add_new_item' => __( 'Add New Tag', 'give' ),
191
+ 'new_item_name' => __( 'New Tag Name', 'give' ),
192
+ 'menu_name' => __( 'Tags', 'give' ),
193
+ 'choose_from_most_used' => __( 'Choose from most used tags.', 'give' ),
194
  );
195
 
196
  $tag_args = apply_filters( 'give_forms_tag_args', array(
226
  */
227
  function give_get_default_form_labels() {
228
  $defaults = array(
229
+ 'singular' => __( 'Form', 'give' ),
230
+ 'plural' => __( 'Forms', 'give' ),
231
  );
232
 
233
  return apply_filters( 'give_default_form_name', $defaults );
272
  function give_change_default_title( $title ) {
273
  // If a frontend plugin uses this filter (check extensions before changing this function)
274
  if ( ! is_admin() ) {
275
+ $title = __( 'Enter form title here', 'give' );
276
 
277
  return $title;
278
  }
280
  $screen = get_current_screen();
281
 
282
  if ( 'give_forms' == $screen->post_type ) {
283
+ $title = __( 'Enter form title here', 'give' );
284
  }
285
 
286
  return $title;
297
  function give_register_post_type_statuses() {
298
  // Payment Statuses
299
  register_post_status( 'refunded', array(
300
+ 'label' => __( 'Refunded', 'give' ),
301
  'public' => true,
302
  'exclude_from_search' => false,
303
  'show_in_admin_all_list' => true,
305
  'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'give' ),
306
  ) );
307
  register_post_status( 'failed', array(
308
+ 'label' => __( 'Failed', 'give' ),
309
  'public' => true,
310
  'exclude_from_search' => false,
311
  'show_in_admin_all_list' => true,
313
  'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'give' ),
314
  ) );
315
  register_post_status( 'revoked', array(
316
+ 'label' => __( 'Revoked', 'give' ),
317
  'public' => true,
318
  'exclude_from_search' => false,
319
  'show_in_admin_all_list' => true,
321
  'label_count' => _n_noop( 'Revoked <span class="count">(%s)</span>', 'Revoked <span class="count">(%s)</span>', 'give' ),
322
  ) );
323
  register_post_status( 'cancelled', array(
324
+ 'label' => __( 'Cancelled', 'give' ),
325
  'public' => true,
326
  'exclude_from_search' => false,
327
  'show_in_admin_all_list' => true,
329
  'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'give' ),
330
  ) );
331
  register_post_status( 'abandoned', array(
332
+ 'label' => __( 'Abandoned', 'give' ),
333
  'public' => true,
334
  'exclude_from_search' => false,
335
  'show_in_admin_all_list' => true,
336
  'show_in_admin_status_list' => true,
337
  'label_count' => _n_noop( 'Abandoned <span class="count">(%s)</span>', 'Abandoned <span class="count">(%s)</span>', 'give' ),
338
  ) );
339
+ register_post_status( 'processing', array(
340
+ 'label' => _x( 'Processing', 'Processing payment status', 'give' ),
341
+ 'public' => true,
342
+ 'exclude_from_search' => false,
343
+ 'show_in_admin_all_list' => true,
344
+ 'show_in_admin_status_list' => true,
345
+ 'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'give' )
346
+ ) );
347
 
348
  }
349
 
366
  if ( give_is_setting_enabled( give_get_option( 'forms_singular' ) ) ) {
367
 
368
  $messages['give_forms'] = array(
369
+ 1 => __( 'Form updated.', 'give' ),
370
+ 4 => __( 'Form updated.', 'give' ),
371
+ 6 => __( 'Form published.', 'give' ),
372
+ 7 => __( 'Form saved.', 'give' ),
373
+ 8 => __( 'Form submitted.', 'give' ),
374
  );
375
 
376
  } else {
377
 
378
  $messages['give_forms'] = array(
379
+ 1 => sprintf( '%1$s <a href="%2$s">%3$s</a>', __( 'Form updated.', 'give' ), get_permalink( $post_ID ), __( 'View Form', 'give' ) ),
380
+ 4 => sprintf( '%1$s <a href="%2$s">%3$s</a>', __( 'Form updated.', 'give' ), get_permalink( $post_ID ), __( 'View Form', 'give' ) ),
381
+ 6 => sprintf( '%1$s <a href="%2$s">%3$s</a>', __( 'Form published.', 'give' ), get_permalink( $post_ID ), __( 'View Form', 'give' ) ),
382
+ 7 => sprintf( '%1$s <a href="%2$s">%3$s</a>', __( 'Form saved.', 'give' ), get_permalink( $post_ID ), __( 'View Form', 'give' ) ),
383
+ 8 => sprintf( '%1$s <a href="%2$s">%3$s</a>', __( 'Form submitted.', 'give' ), get_permalink( $post_ID ), __( 'View Form', 'give' ) ),
384
  );
385
 
386
  }
425
  ) {
426
 
427
  register_sidebar( apply_filters( 'give_forms_single_sidebar', array(
428
+ 'name' => __( 'Give Single Form Sidebar', 'give' ),
429
  'id' => 'give-forms-sidebar',
430
+ 'description' => __( 'Widgets in this area will be shown on the single Give forms aside area. This sidebar will not display for embedded forms.', 'give' ),
431
  'before_widget' => '<div id="%1$s" class="widget %2$s">',
432
  'after_widget' => '</div>',
433
  'before_title' => '<h3 class="widgettitle widget-title">',
includes/process-donation.php CHANGED
@@ -43,7 +43,7 @@ function give_process_donation_form() {
43
  * @since 1.0
44
  *
45
  * @param bool|array $valid_data Validate fields.
46
- * @param array $_POST Array of variables passed via the HTTP POST.
47
  */
48
  do_action( 'give_checkout_error_checks', $valid_data, $_POST );
49
 
@@ -124,8 +124,8 @@ function give_process_donation_form() {
124
  *
125
  * @since 1.0
126
  *
127
- * @param array $_POST Array of variables passed via the HTTP POST.
128
- * @param array $user_info Array containing basic user information.
129
  * @param bool|array $valid_data Validate fields.
130
  */
131
  do_action( 'give_checkout_before_gateway', $_POST, $user_info, $valid_data );
@@ -171,30 +171,33 @@ add_action( 'wp_ajax_nopriv_give_process_donation', 'give_process_donation_form'
171
  * @since 1.7
172
  *
173
  * @param array $valid_data Validated data submitted for the purchase
174
- * @param array $post Additional $_POST data submitted
175
  *
176
  * @return void
177
  */
178
- function give_checkout_check_existing_email( $valid_data, $post ) {
179
 
180
  // Verify that the email address belongs to this customer.
181
  if ( is_user_logged_in() ) {
182
 
183
- $email = $valid_data['logged_in_user']['user_email'];
184
  $customer = new Give_Customer( get_current_user_id(), true );
185
 
186
  // If this email address is not registered with this customer, see if it belongs to any other customer
187
- if ( $email !== $customer->email && ( is_array( $customer->emails ) && ! in_array( $email, $customer->emails ) ) ) {
188
- $found_customer = new Give_Customer( $email );
 
 
 
189
 
190
  if ( $found_customer->id > 0 ) {
191
- give_set_error( 'give-customer-email-exists', sprintf( esc_html__( 'The email address %s is already in use.', 'give' ), $email ) );
192
  }
193
  }
194
  }
195
  }
196
 
197
- add_action( 'give_checkout_error_checks', 'give_checkout_check_existing_email', 10, 2 );
198
 
199
  /**
200
  * Process the checkout login form
@@ -340,7 +343,7 @@ function give_purchase_form_validate_gateway() {
340
  give_set_error(
341
  'invalid_donation_minimum',
342
  sprintf(
343
- /* translators: %s: minimum donation amount */
344
  esc_html__( 'This form has a minimum donation amount of %s.', 'give' ),
345
  give_currency_filter( give_format_amount( give_get_form_minimum_price( $form_id ) ) )
346
  )
@@ -779,7 +782,7 @@ function give_register_and_login_new_user( $user_data = array() ) {
779
  *
780
  * @since 1.0
781
  *
782
- * @param int $user_id User id.
783
  * @param array $user_data Array containing user data.
784
  */
785
  do_action( 'give_insert_user', $user_id, $user_data );
@@ -939,7 +942,7 @@ function give_get_purchase_cc_info() {
939
  *
940
  * @since 1.0
941
  *
942
- * @param int $zip
943
  * @param string $country_code
944
  *
945
  * @return bool|mixed|void
43
  * @since 1.0
44
  *
45
  * @param bool|array $valid_data Validate fields.
46
+ * @param array $_POST Array of variables passed via the HTTP POST.
47
  */
48
  do_action( 'give_checkout_error_checks', $valid_data, $_POST );
49
 
124
  *
125
  * @since 1.0
126
  *
127
+ * @param array $_POST Array of variables passed via the HTTP POST.
128
+ * @param array $user_info Array containing basic user information.
129
  * @param bool|array $valid_data Validate fields.
130
  */
131
  do_action( 'give_checkout_before_gateway', $_POST, $user_info, $valid_data );
171
  * @since 1.7
172
  *
173
  * @param array $valid_data Validated data submitted for the purchase
174
+ * @param array $post Additional $_POST data submitted
175
  *
176
  * @return void
177
  */
178
+ function give_check_logged_in_user_for_existing_email( $valid_data, $post ) {
179
 
180
  // Verify that the email address belongs to this customer.
181
  if ( is_user_logged_in() ) {
182
 
183
+ $submitted_email = $valid_data['logged_in_user']['user_email'];
184
  $customer = new Give_Customer( get_current_user_id(), true );
185
 
186
  // If this email address is not registered with this customer, see if it belongs to any other customer
187
+ if (
188
+ $submitted_email !== $customer->email
189
+ && ( is_array( $customer->emails ) && ! in_array( $submitted_email, $customer->emails ) )
190
+ ) {
191
+ $found_customer = new Give_Customer( $submitted_email );
192
 
193
  if ( $found_customer->id > 0 ) {
194
+ give_set_error( 'give-customer-email-exists', sprintf(__('You are logged in as %1$s, and are submitting a donation as %2$s, which is an existing donor. To ensure that the email address is tied to the correct donor, please submit this donation from a logged-out browser, or choose another email address.'), $customer->email, $submitted_email) );
195
  }
196
  }
197
  }
198
  }
199
 
200
+ add_action( 'give_checkout_error_checks', 'give_check_logged_in_user_for_existing_email', 10, 2 );
201
 
202
  /**
203
  * Process the checkout login form
343
  give_set_error(
344
  'invalid_donation_minimum',
345
  sprintf(
346
+ /* translators: %s: minimum donation amount */
347
  esc_html__( 'This form has a minimum donation amount of %s.', 'give' ),
348
  give_currency_filter( give_format_amount( give_get_form_minimum_price( $form_id ) ) )
349
  )
782
  *
783
  * @since 1.0
784
  *
785
+ * @param int $user_id User id.
786
  * @param array $user_data Array containing user data.
787
  */
788
  do_action( 'give_insert_user', $user_id, $user_data );
942
  *
943
  * @since 1.0
944
  *
945
+ * @param int $zip
946
  * @param string $country_code
947
  *
948
  * @return bool|mixed|void
includes/shortcodes.php CHANGED
@@ -29,7 +29,7 @@ function give_donation_history() {
29
  if ( isset( $_GET['payment_key'] ) ) {
30
  ob_start();
31
  echo give_receipt_shortcode( array() );
32
- echo '<a href="' . esc_url( give_get_history_page_uri() ) . '">&laquo; ' . esc_html__( 'Return to All Donations', 'give' ) . '</a>';
33
 
34
  return ob_get_clean();
35
  }
@@ -52,16 +52,18 @@ function give_donation_history() {
52
  return ob_get_clean();
53
 
54
  } elseif ( give_is_setting_enabled( $email_access ) ) {
55
- //Is Email-based access enabled?
56
  ob_start();
57
  give_get_template_part( 'email', 'login-form' );
58
 
59
  return ob_get_clean();
 
60
  } else {
61
 
62
- echo apply_filters( 'give_donation_history_nonuser_message', give_output_error( __( 'You must be logged in to view your donation history. Please login using your account or create an account using the same email you used to donate with.', 'give' ), false ) );
63
- echo do_shortcode( '[give_login]' );
64
-
 
65
  }
66
  }
67
 
@@ -127,13 +129,13 @@ function give_goal_shortcode( $atts ) {
127
 
128
  //Sanity check 1: ensure there is an ID Provided.
129
  if ( empty( $atts['id'] ) ) {
130
- give_output_error( esc_html__( 'The shortcode is missing Donation Form ID attribute.', 'give' ), true );
131
  }
132
 
133
  //Sanity check 2: Check the form even has Goals enabled.
134
  if ( ! give_is_setting_enabled( get_post_meta( $atts['id'], '_give_goal_option', true ) ) ) {
135
 
136
- give_output_error( esc_html__( 'The form does not have Goals enabled.', 'give' ), true );
137
  } else {
138
  //Passed all sanity checks: output Goal.
139
  give_show_goal_progress( $atts['id'], $atts );
@@ -217,7 +219,7 @@ function give_receipt_shortcode( $atts ) {
217
  global $give_receipt_args, $payment;
218
 
219
  $give_receipt_args = shortcode_atts( array(
220
- 'error' => esc_html__( 'You are missing the payment key to view this donation receipt.', 'give' ),
221
  'price' => true,
222
  'donor' => true,
223
  'date' => true,
@@ -277,7 +279,7 @@ function give_receipt_shortcode( $atts ) {
277
 
278
  ob_start();
279
 
280
- give_output_error( apply_filters( 'give_must_be_logged_in_error_message', esc_html__( 'You must be logged in to view this donation receipt.', 'give' ) ) );
281
 
282
  give_get_template_part( 'shortcode', 'login' );
283
 
@@ -398,7 +400,7 @@ function give_process_profile_editor_updates( $data ) {
398
  *
399
  * @since 1.0
400
  *
401
- * @param int $user_id The ID of the user.
402
  * @param array $userdata User info, including ID, first name, last name, display name and email.
403
  */
404
  do_action( 'give_pre_update_user_profile', $user_id, $userdata );
@@ -406,7 +408,7 @@ function give_process_profile_editor_updates( $data ) {
406
  // New password
407
  if ( ! empty( $data['give_new_user_pass1'] ) ) {
408
  if ( $data['give_new_user_pass1'] !== $data['give_new_user_pass2'] ) {
409
- give_set_error( 'password_mismatch', esc_html__( 'The passwords you entered do not match. Please try again.', 'give' ) );
410
  } else {
411
  $userdata['user_pass'] = $data['give_new_user_pass1'];
412
  }
@@ -414,16 +416,16 @@ function give_process_profile_editor_updates( $data ) {
414
 
415
  if ( empty( $email ) ) {
416
  // Make sure email should not be empty.
417
- give_set_error( 'email_empty', esc_html__( 'The email you entered is empty.', 'give' ) );
418
 
419
  } else if ( ! is_email( $email ) ) {
420
  // Make sure email should be valid.
421
- give_set_error( 'email_not_valid', esc_html__( 'The email you entered is not valid. Please use another', 'give' ) );
422
 
423
  } else if ( $email != $old_user_data->user_email ) {
424
  // Make sure the new email doesn't belong to another user
425
  if ( email_exists( $email ) ) {
426
- give_set_error( 'email_exists', esc_html__( 'The email you entered belongs to another user. Please use another.', 'give' ) );
427
  }
428
  }
429
 
@@ -447,7 +449,7 @@ function give_process_profile_editor_updates( $data ) {
447
  *
448
  * @since 1.0
449
  *
450
- * @param int $user_id The ID of the user.
451
  * @param array $userdata User info, including ID, first name, last name, display name and email.
452
  */
453
  do_action( 'give_user_profile_updated', $user_id, $userdata );
29
  if ( isset( $_GET['payment_key'] ) ) {
30
  ob_start();
31
  echo give_receipt_shortcode( array() );
32
+ echo '<a href="' . esc_url( give_get_history_page_uri() ) . '">&laquo; ' . __( 'Return to All Donations', 'give' ) . '</a>';
33
 
34
  return ob_get_clean();
35
  }
52
  return ob_get_clean();
53
 
54
  } elseif ( give_is_setting_enabled( $email_access ) ) {
55
+ // Is Email-based access enabled?
56
  ob_start();
57
  give_get_template_part( 'email', 'login-form' );
58
 
59
  return ob_get_clean();
60
+
61
  } else {
62
 
63
+ $output = apply_filters( 'give_donation_history_nonuser_message', give_output_error( __( 'You must be logged in to view your donation history. Please login using your account or create an account using the same email you used to donate with.', 'give' ), false ) );
64
+ $output .= do_shortcode( '[give_login]' );
65
+
66
+ return $output;
67
  }
68
  }
69
 
129
 
130
  //Sanity check 1: ensure there is an ID Provided.
131
  if ( empty( $atts['id'] ) ) {
132
+ give_output_error( __( 'The shortcode is missing Donation Form ID attribute.', 'give' ), true );
133
  }
134
 
135
  //Sanity check 2: Check the form even has Goals enabled.
136
  if ( ! give_is_setting_enabled( get_post_meta( $atts['id'], '_give_goal_option', true ) ) ) {
137
 
138
+ give_output_error( __( 'The form does not have Goals enabled.', 'give' ), true );
139
  } else {
140
  //Passed all sanity checks: output Goal.
141
  give_show_goal_progress( $atts['id'], $atts );
219
  global $give_receipt_args, $payment;
220
 
221
  $give_receipt_args = shortcode_atts( array(
222
+ 'error' => __( 'You are missing the payment key to view this donation receipt.', 'give' ),
223
  'price' => true,
224
  'donor' => true,
225
  'date' => true,
279
 
280
  ob_start();
281
 
282
+ give_output_error( apply_filters( 'give_must_be_logged_in_error_message', __( 'You must be logged in to view this donation receipt.', 'give' ) ) );
283
 
284
  give_get_template_part( 'shortcode', 'login' );
285
 
400
  *
401
  * @since 1.0
402
  *
403
+ * @param int $user_id The ID of the user.
404
  * @param array $userdata User info, including ID, first name, last name, display name and email.
405
  */
406
  do_action( 'give_pre_update_user_profile', $user_id, $userdata );
408
  // New password
409
  if ( ! empty( $data['give_new_user_pass1'] ) ) {
410
  if ( $data['give_new_user_pass1'] !== $data['give_new_user_pass2'] ) {
411
+ give_set_error( 'password_mismatch', __( 'The passwords you entered do not match. Please try again.', 'give' ) );
412
  } else {
413
  $userdata['user_pass'] = $data['give_new_user_pass1'];
414
  }
416
 
417
  if ( empty( $email ) ) {
418
  // Make sure email should not be empty.
419
+ give_set_error( 'email_empty', __( 'The email you entered is empty.', 'give' ) );
420
 
421
  } else if ( ! is_email( $email ) ) {
422
  // Make sure email should be valid.
423
+ give_set_error( 'email_not_valid', __( 'The email you entered is not valid. Please use another', 'give' ) );
424
 
425
  } else if ( $email != $old_user_data->user_email ) {
426
  // Make sure the new email doesn't belong to another user
427
  if ( email_exists( $email ) ) {
428
+ give_set_error( 'email_exists', __( 'The email you entered belongs to another user. Please use another.', 'give' ) );
429
  }
430
  }
431
 
449
  *
450
  * @since 1.0
451
  *
452
+ * @param int $user_id The ID of the user.
453
  * @param array $userdata User info, including ID, first name, last name, display name and email.
454
  */
455
  do_action( 'give_user_profile_updated', $user_id, $userdata );
includes/template-functions.php CHANGED
@@ -413,16 +413,6 @@ if ( ! function_exists( 'give_template_single_title' ) ) {
413
  }
414
  }
415
 
416
- if ( ! function_exists( 'give_show_avatars' ) ) {
417
-
418
- /**
419
- * Output the product title.
420
- */
421
- function give_show_avatars() {
422
- echo do_shortcode( '[give_donors_gravatars]' );
423
- }
424
- }
425
-
426
  /**
427
  * Conditional Functions
428
  */
413
  }
414
  }
415
 
 
 
 
 
 
 
 
 
 
 
416
  /**
417
  * Conditional Functions
418
  */
includes/user-functions.php CHANGED
@@ -304,28 +304,28 @@ function give_validate_username( $username, $form_id = 0 ) {
304
  // We have an user name, check if it already exists.
305
  if ( username_exists( $username ) ) {
306
  // Username already registered.
307
- give_set_error( 'username_unavailable', esc_html__( 'Username already taken.', 'give' ) );
308
  $valid = false;
309
 
310
  // Check if it's valid.
311
  } elseif ( $sanitized_user_name !== $username ) {
312
  // Invalid username.
313
  if ( is_multisite() ) {
314
- give_set_error( 'username_invalid', esc_html__( 'Invalid username. Only lowercase letters (a-z) and numbers are allowed.', 'give' ) );
315
  $valid = false;
316
  } else {
317
- give_set_error( 'username_invalid', esc_html__( 'Invalid username.', 'give' ) );
318
  $valid = false;
319
  }
320
  }
321
  } else {
322
  // Username is empty.
323
- give_set_error( 'username_empty', esc_html__( 'Enter a username.', 'give' ) );
324
  $valid = false;
325
 
326
  // Check if guest checkout is disable for form.
327
  if ( $form_id && give_logged_in_only( $form_id ) ) {
328
- give_set_error( 'registration_required', esc_html__( 'You must register or login to complete your donation.', 'give' ) );
329
  $valid = false;
330
  }
331
  }
@@ -360,17 +360,17 @@ function give_validate_user_email( $email, $registering_new_user = false ) {
360
 
361
  if ( empty( $email ) ) {
362
  // No email.
363
- give_set_error( 'email_empty', esc_html__( 'Enter an email.', 'give' ) );
364
  $valid = false;
365
 
366
  } elseif ( ! is_email( $email ) ) {
367
  // Validate email.
368
- give_set_error( 'email_invalid', esc_html__( 'Invalid email.', 'give' ) );
369
  $valid = false;
370
 
371
  } elseif ( $registering_new_user && email_exists( $email ) ) {
372
  // Check if email exists.
373
- give_set_error( 'email_used', esc_html__( 'The email already active for another user.', 'give' ) );
374
  $valid = false;
375
  }
376
 
@@ -406,18 +406,18 @@ function give_validate_user_password( $password = '', $confirm_password = '', $r
406
  // Verify confirmation matches.
407
  if ( $password != $confirm_password ) {
408
  // Passwords do not match
409
- give_set_error( 'password_mismatch', esc_html__( 'Passwords don\'t match.', 'give' ) );
410
  $valid = false;
411
  }
412
  } elseif ( $registering_new_user ) {
413
  // Password or confirmation missing.
414
  if ( ! $password ) {
415
  // The password is invalid.
416
- give_set_error( 'password_empty', esc_html__( 'Enter a password.', 'give' ) );
417
  $valid = false;
418
  } elseif ( ! $confirm_password ) {
419
  // Confirmation password is invalid.
420
- give_set_error( 'confirmation_empty', esc_html__( 'Enter the password confirmation.', 'give' ) );
421
  $valid = false;
422
  }
423
  }
@@ -563,7 +563,7 @@ function give_new_user_notification( $user_id = 0, $user_data = array() ) {
563
  /* translators: %s: user email */
564
  $message .= sprintf( esc_attr__( 'E-mail: %s', 'give' ), $user_data['user_email'] ) . "\r\n";
565
 
566
- @wp_mail(
567
  get_option( 'admin_email' ),
568
  sprintf(
569
  /* translators: %s: site name */
@@ -580,7 +580,7 @@ function give_new_user_notification( $user_id = 0, $user_data = array() ) {
580
 
581
  $message .= '<a href="' . wp_login_url() . '"> ' . esc_attr__( 'Click Here to Login &raquo;', 'give' ) . '</a>' . "\r\n";
582
 
583
- wp_mail(
584
  $user_data['user_email'],
585
  sprintf(
586
  /* translators: %s: site name */
304
  // We have an user name, check if it already exists.
305
  if ( username_exists( $username ) ) {
306
  // Username already registered.
307
+ give_set_error( 'username_unavailable', __( 'Username already taken.', 'give' ) );
308
  $valid = false;
309
 
310
  // Check if it's valid.
311
  } elseif ( $sanitized_user_name !== $username ) {
312
  // Invalid username.
313
  if ( is_multisite() ) {
314
+ give_set_error( 'username_invalid', __( 'Invalid username. Only lowercase letters (a-z) and numbers are allowed.', 'give' ) );
315
  $valid = false;
316
  } else {
317
+ give_set_error( 'username_invalid', __( 'Invalid username.', 'give' ) );
318
  $valid = false;
319
  }
320
  }
321
  } else {
322
  // Username is empty.
323
+ give_set_error( 'username_empty', __( 'Enter a username.', 'give' ) );
324
  $valid = false;
325
 
326
  // Check if guest checkout is disable for form.
327
  if ( $form_id && give_logged_in_only( $form_id ) ) {
328
+ give_set_error( 'registration_required', __( 'You must register or login to complete your donation.', 'give' ) );
329
  $valid = false;
330
  }
331
  }
360
 
361
  if ( empty( $email ) ) {
362
  // No email.
363
+ give_set_error( 'email_empty', __( 'Enter an email.', 'give' ) );
364
  $valid = false;
365
 
366
  } elseif ( ! is_email( $email ) ) {
367
  // Validate email.
368
+ give_set_error( 'email_invalid', __( 'Invalid email.', 'give' ) );
369
  $valid = false;
370
 
371
  } elseif ( $registering_new_user && email_exists( $email ) ) {
372
  // Check if email exists.
373
+ give_set_error( 'email_used', __( 'The email address provided is already active for another user.', 'give' ) );
374
  $valid = false;
375
  }
376
 
406
  // Verify confirmation matches.
407
  if ( $password != $confirm_password ) {
408
  // Passwords do not match
409
+ give_set_error( 'password_mismatch', __( 'Passwords don\'t match.', 'give' ) );
410
  $valid = false;
411
  }
412
  } elseif ( $registering_new_user ) {
413
  // Password or confirmation missing.
414
  if ( ! $password ) {
415
  // The password is invalid.
416
+ give_set_error( 'password_empty', __( 'Enter a password.', 'give' ) );
417
  $valid = false;
418
  } elseif ( ! $confirm_password ) {
419
  // Confirmation password is invalid.
420
+ give_set_error( 'confirmation_empty', __( 'Enter the password confirmation.', 'give' ) );
421
  $valid = false;
422
  }
423
  }
563
  /* translators: %s: user email */
564
  $message .= sprintf( esc_attr__( 'E-mail: %s', 'give' ), $user_data['user_email'] ) . "\r\n";
565
 
566
+ Give()->emails->send(
567
  get_option( 'admin_email' ),
568
  sprintf(
569
  /* translators: %s: site name */
580
 
581
  $message .= '<a href="' . wp_login_url() . '"> ' . esc_attr__( 'Click Here to Login &raquo;', 'give' ) . '</a>' . "\r\n";
582
 
583
+ Give()->emails->send(
584
  $user_data['user_email'],
585
  sprintf(
586
  /* translators: %s: site name */
languages/give.pot CHANGED
@@ -15,11 +15,12 @@ msgstr ""
15
  "X-Poedit-SearchPath-0: .\n"
16
  "X-Poedit-SearchPathExcluded-0: *.js\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
- #: give.php:469, give.php:495
 
19
  msgid "Cheatin&#8217; huh?"
20
  msgstr ""
21
 
22
- #: includes/actions.php:102
23
  msgid "WordPress user #%d is connected to #%d"
24
  msgstr ""
25
 
@@ -35,7 +36,7 @@ msgstr ""
35
  msgid "The following Add-ons extend the functionality of Give."
36
  msgstr ""
37
 
38
- #: includes/admin/add-ons.php:62
39
  msgid "There was an error retrieving the Give Add-ons list from the server. Please try again later."
40
  msgstr ""
41
 
@@ -79,7 +80,7 @@ msgstr ""
79
  msgid "Give Add-ons"
80
  msgstr ""
81
 
82
- #: includes/admin/admin-pages.php:75, includes/admin/class-give-settings.php:205, includes/admin/plugins.php:75, includes/admin/settings/class-settings-addon.php:29, includes/admin/welcome.php:202
83
  msgid "Add-ons"
84
  msgstr ""
85
 
@@ -271,607 +272,607 @@ msgstr ""
271
  msgid "Generate New API Keys"
272
  msgstr ""
273
 
274
- #: includes/admin/class-give-settings.php:193, includes/admin/settings/class-settings-general.php:30, includes/admin/settings/class-settings-general.php:273
275
  msgid "General"
276
  msgstr ""
277
 
278
- #: includes/admin/class-give-settings.php:195, includes/admin/class-give-settings.php:613, includes/admin/settings/class-settings-gateways.php:30
279
  msgid "Payment Gateways"
280
  msgstr ""
281
 
282
- #: includes/admin/class-give-settings.php:197, includes/admin/forms/class-metabox-form-data.php:246, includes/admin/settings/class-settings-display.php:30, includes/admin/shortcodes/shortcode-give-form.php:100
283
  msgid "Display Options"
284
  msgstr ""
285
 
286
- #: includes/admin/class-give-settings.php:199, includes/admin/settings/class-settings-email.php:30
287
  msgid "Emails"
288
  msgstr ""
289
 
290
- #: includes/admin/class-give-settings.php:213, includes/admin/settings/class-settings-license.php:46
291
  msgid "Licenses"
292
  msgstr ""
293
 
294
- #: includes/admin/class-give-settings.php:219, includes/admin/settings/class-settings-advanced.php:30
295
  msgid "Advanced"
296
  msgstr ""
297
 
298
- #: includes/admin/class-give-settings.php:221, includes/admin/class-give-settings.php:1447, includes/admin/class-give-settings.php:1459, includes/admin/tools/class-settings-api.php:46, includes/admin/tools/class-settings-api.php:84
299
  msgid "API"
300
  msgstr ""
301
 
302
- #: includes/admin/class-give-settings.php:223, includes/admin/class-give-settings.php:1477, includes/admin/class-give-settings.php:1487, includes/admin/tools/class-settings-system-info.php:46
303
  msgid "System Info"
304
  msgstr ""
305
 
306
- #: includes/admin/class-give-settings.php:351
307
  msgid "Save Settings"
308
  msgstr ""
309
 
310
- #: includes/admin/class-give-settings.php:401, includes/admin/class-give-settings.php:409, includes/admin/settings/class-settings-general.php:187
311
  msgid "General Settings"
312
  msgstr ""
313
 
314
- #: includes/admin/class-give-settings.php:421, includes/admin/settings/class-settings-general.php:193, includes/admin/tools/views/html-admin-page-system-info.php:444
315
  msgid "Success Page"
316
  msgstr ""
317
 
318
- #: includes/admin/class-give-settings.php:425, includes/admin/settings/class-settings-general.php:195
319
  msgid "The page donors are sent to after completing their donations. The %s shortcode should be on this page."
320
  msgstr ""
321
 
322
- #: includes/admin/class-give-settings.php:443, includes/admin/settings/class-settings-general.php:204
323
  msgid "Failed Donation Page"
324
  msgstr ""
325
 
326
- #: includes/admin/class-give-settings.php:445, includes/admin/settings/class-settings-general.php:205
327
  msgid "The page donors are sent to if their donation is cancelled or fails."
328
  msgstr ""
329
 
330
- #: includes/admin/class-give-settings.php:463, includes/admin/settings/class-settings-general.php:214
331
  msgid "Donation History Page"
332
  msgstr ""
333
 
334
- #: includes/admin/class-give-settings.php:467, includes/admin/settings/class-settings-general.php:216
335
  msgid "The page showing a complete donation history for the current user. The %s shortcode should be on this page."
336
  msgstr ""
337
 
338
- #: includes/admin/class-give-settings.php:485, includes/admin/settings/class-settings-general.php:225
339
  msgid "Base Country"
340
  msgstr ""
341
 
342
- #: includes/admin/class-give-settings.php:487, includes/admin/settings/class-settings-general.php:226
343
  msgid "The country your site operates from."
344
  msgstr ""
345
 
346
- #: includes/admin/class-give-settings.php:499, includes/admin/settings/class-settings-general.php:115, includes/admin/settings/class-settings-general.php:169
347
  msgid "Currency Settings"
348
  msgstr ""
349
 
350
- #: includes/admin/class-give-settings.php:511, includes/admin/settings/class-settings-general.php:121, includes/admin/settings/class-settings-general.php:274
351
  msgid "Currency"
352
  msgstr ""
353
 
354
- #: includes/admin/class-give-settings.php:513, includes/admin/settings/class-settings-general.php:122
355
  msgid "The donation currency. Note that some payment gateways have currency restrictions."
356
  msgstr ""
357
 
358
- #: includes/admin/class-give-settings.php:527, includes/admin/settings/class-settings-general.php:129, includes/admin/tools/views/html-admin-page-system-info.php:429
359
  msgid "Currency Position"
360
  msgstr ""
361
 
362
- #: includes/admin/class-give-settings.php:529, includes/admin/settings/class-settings-general.php:130
363
  msgid "The position of the currency symbol."
364
  msgstr ""
365
 
366
- #: includes/admin/class-give-settings.php:539, includes/admin/settings/class-settings-general.php:135
367
  msgid "Before - %s10"
368
  msgstr ""
369
 
370
- #: includes/admin/class-give-settings.php:543, includes/admin/settings/class-settings-general.php:137
371
  msgid "After - 10%s"
372
  msgstr ""
373
 
374
- #: includes/admin/class-give-settings.php:553, includes/admin/settings/class-settings-general.php:142, includes/admin/tools/views/html-admin-page-system-info.php:439
375
  msgid "Thousands Separator"
376
  msgstr ""
377
 
378
- #: includes/admin/class-give-settings.php:555
379
  msgid "The symbol (usually , or .) to separate thousands."
380
  msgstr ""
381
 
382
- #: includes/admin/class-give-settings.php:569, includes/admin/settings/class-settings-general.php:150, includes/admin/tools/views/html-admin-page-system-info.php:434
383
  msgid "Decimal Separator"
384
  msgstr ""
385
 
386
- #: includes/admin/class-give-settings.php:571, includes/admin/settings/class-settings-general.php:151
387
  msgid "The symbol (usually , or .) to separate decimal points."
388
  msgstr ""
389
 
390
- #: includes/admin/class-give-settings.php:583, includes/admin/settings/class-settings-general.php:158
391
  msgid "Number of Decimals"
392
  msgstr ""
393
 
394
- #: includes/admin/class-give-settings.php:585, includes/admin/settings/class-settings-general.php:159
395
  msgid "The number of decimal points displayed in amounts."
396
  msgstr ""
397
 
398
- #: includes/admin/class-give-settings.php:621
399
  msgid "Gateways Settings"
400
  msgstr ""
401
 
402
- #: includes/admin/class-give-settings.php:633, includes/admin/settings/class-settings-gateways.php:181, includes/admin/tools/views/html-admin-page-system-info.php:419
403
  msgid "Test Mode"
404
  msgstr ""
405
 
406
- #: includes/admin/class-give-settings.php:635, includes/admin/settings/class-settings-gateways.php:182
407
  msgid "While in test mode no live donations are processed. To fully use test mode, you must have a sandbox (test) account for the payment gateway you are testing."
408
  msgstr ""
409
 
410
- #: includes/admin/class-give-settings.php:645, includes/admin/settings/class-settings-gateways.php:192
411
  msgid "Enabled Gateways"
412
  msgstr ""
413
 
414
- #: includes/admin/class-give-settings.php:647, includes/admin/settings/class-settings-gateways.php:193
415
  msgid "Enable your payment gateway. Can be ordered by dragging."
416
  msgstr ""
417
 
418
- #: includes/admin/class-give-settings.php:657, includes/admin/forms/class-metabox-form-data.php:277, includes/admin/settings/class-settings-gateways.php:198
419
  msgid "Default Gateway"
420
  msgstr ""
421
 
422
- #: includes/admin/class-give-settings.php:659, includes/admin/settings/class-settings-gateways.php:199
423
  msgid "The gateway that will be selected by default."
424
  msgstr ""
425
 
426
- #: includes/admin/class-give-settings.php:669, includes/admin/settings/class-settings-gateways.php:246, includes/gateways/functions.php:27
427
  msgid "PayPal Standard"
428
  msgstr ""
429
 
430
- #: includes/admin/class-give-settings.php:681, includes/admin/settings/class-settings-gateways.php:56
431
  msgid "PayPal Email"
432
  msgstr ""
433
 
434
- #: includes/admin/class-give-settings.php:683, includes/admin/settings/class-settings-gateways.php:57
435
  msgid "Enter your PayPal account's email."
436
  msgstr ""
437
 
438
- #: includes/admin/class-give-settings.php:693, includes/admin/settings/class-settings-gateways.php:62
439
  msgid "PayPal Page Style"
440
  msgstr ""
441
 
442
- #: includes/admin/class-give-settings.php:695
443
  msgid "Enter the name of the page style to use, or leave blank to use the default."
444
  msgstr ""
445
 
446
- #: includes/admin/class-give-settings.php:705, includes/admin/settings/class-settings-gateways.php:68
447
  msgid "PayPal Transaction Type"
448
  msgstr ""
449
 
450
- #: includes/admin/class-give-settings.php:707, includes/admin/settings/class-settings-gateways.php:69
451
  msgid "Nonprofits must verify their status to withdraw donations they receive via PayPal. PayPal users that are not verified nonprofits must demonstrate how their donations will be used, once they raise more than $10,000. By default, Give transactions are sent to PayPal as donations. You may change the transaction type using this option if you feel you may not meet PayPal's donation requirements."
452
  msgstr ""
453
 
454
- #: includes/admin/class-give-settings.php:715, includes/admin/payments/class-payments-table.php:272, includes/admin/settings/class-settings-gateways.php:73
455
  msgid "Donation"
456
  msgstr ""
457
 
458
- #: includes/admin/class-give-settings.php:717, includes/admin/settings/class-settings-gateways.php:74
459
  msgid "Standard Transaction"
460
  msgstr ""
461
 
462
- #: includes/admin/class-give-settings.php:727
463
  msgid "Disable PayPal IPN Verification"
464
  msgstr ""
465
 
466
- #: includes/admin/class-give-settings.php:729, includes/admin/settings/class-settings-gateways.php:91
467
  msgid "If donations are not getting marked as complete, use a slightly less secure method of verifying donations."
468
  msgstr ""
469
 
470
- #: includes/admin/class-give-settings.php:739, includes/admin/forms/class-metabox-form-data.php:1081, includes/admin/settings/class-settings-gateways.php:247, includes/gateways/offline-donations.php:303, includes/gateways/offline-donations.php:361
471
  msgid "Offline Donations"
472
  msgstr ""
473
 
474
- #: includes/admin/class-give-settings.php:751, includes/admin/settings/class-settings-gateways.php:122
475
  msgid "Collect Billing Details"
476
  msgstr ""
477
 
478
- #: includes/admin/class-give-settings.php:753, includes/admin/settings/class-settings-gateways.php:123
479
  msgid "Enable to request billing details for offline donations. Will appear above offline donation instructions. Can be enabled/disabled per form."
480
  msgstr ""
481
 
482
- #: includes/admin/class-give-settings.php:763, includes/admin/settings/class-settings-gateways.php:133, includes/gateways/offline-donations.php:187, includes/gateways/offline-donations.php:202
483
  msgid "Offline Donation Instructions"
484
  msgstr ""
485
 
486
- #: includes/admin/class-give-settings.php:765, includes/admin/settings/class-settings-gateways.php:134
487
  msgid "The following content will appear for all forms when the user selects the offline donation payment option. Note: You may customize the content per form as needed."
488
  msgstr ""
489
 
490
- #: includes/admin/class-give-settings.php:783, includes/admin/settings/class-settings-gateways.php:143
491
  msgid "Offline Donation Email Instructions Subject"
492
  msgstr ""
493
 
494
- #: includes/admin/class-give-settings.php:785, includes/admin/class-give-settings.php:1127, includes/admin/settings/class-settings-email.php:106, includes/admin/settings/class-settings-gateways.php:144, includes/gateways/offline-donations.php:341
495
  msgid "Enter the subject line for the donation receipt email."
496
  msgstr ""
497
 
498
- #: includes/admin/class-give-settings.php:789, includes/admin/settings/class-settings-gateways.php:146
499
  msgid "{donation} - Offline Donation Instructions"
500
  msgstr ""
501
 
502
- #: includes/admin/class-give-settings.php:797, includes/admin/settings/class-settings-gateways.php:150
503
  msgid "Offline Donation Email Instructions"
504
  msgstr ""
505
 
506
- #: includes/admin/class-give-settings.php:799, includes/admin/settings/class-settings-gateways.php:151, includes/gateways/offline-donations.php:349
507
  msgid "Enter the instructions you want emailed to the donor after they have submitted the donation form. Most likely this would include important information like mailing address and who to make the check out to."
508
  msgstr ""
509
 
510
- #: includes/admin/class-give-settings.php:827, includes/admin/class-give-settings.php:835
511
  msgid "Display Settings"
512
  msgstr ""
513
 
514
- #: includes/admin/class-give-settings.php:847
515
  msgid "Disable CSS"
516
  msgstr ""
517
 
518
- #: includes/admin/class-give-settings.php:849
519
  msgid "Enable this option if you would like to disable all of Give's included CSS stylesheets."
520
  msgstr ""
521
 
522
- #: includes/admin/class-give-settings.php:859
523
  msgid "Enable Floating Labels"
524
  msgstr ""
525
 
526
- #: includes/admin/class-give-settings.php:863
527
  msgid "Enable <a href=\"%s\" target=\"_blank\">floating labels</a> in Give's donation forms. Note that if the \"Disable CSS\" option is enabled, you will need to style the floating labels yourself."
528
  msgstr ""
529
 
530
- #: includes/admin/class-give-settings.php:873
531
  msgid "Disable Welcome Screen"
532
  msgstr ""
533
 
534
- #: includes/admin/class-give-settings.php:877
535
  msgid "Enable this option if you would like to disable the <a href=\"%s\" target=\"_blank\">Give Welcome screen</a> every time Give is activated and/or updated."
536
  msgstr ""
537
 
538
- #: includes/admin/class-give-settings.php:897, includes/admin/settings/class-settings-display.php:303
539
  msgid "Post Types"
540
  msgstr ""
541
 
542
- #: includes/admin/class-give-settings.php:909
543
  msgid "Disable Form Single Views"
544
  msgstr ""
545
 
546
- #: includes/admin/class-give-settings.php:911
547
  msgid "By default, all forms have single views enabled which create a specific URL on your website for that form. This option disables the singular and archive views from being publicly viewable. Note: you will need to embed forms using a shortcode or widget if enabled."
548
  msgstr ""
549
 
550
- #: includes/admin/class-give-settings.php:921
551
  msgid "Disable Form Archives"
552
  msgstr ""
553
 
554
- #: includes/admin/class-give-settings.php:923
555
  msgid "Archives pages list all the forms you have created. This option will disable only the form's archive page(s). The single form's view will remain in place. Note: you will need to refresh your permalinks after this option has been enabled."
556
  msgstr ""
557
 
558
- #: includes/admin/class-give-settings.php:933
559
  msgid "Disable Form Excerpts"
560
  msgstr ""
561
 
562
- #: includes/admin/class-give-settings.php:935, includes/admin/settings/class-settings-display.php:134
563
  msgid "The excerpt is an optional summary or description of a donation form; in short, a summary as to why the user should give."
564
  msgstr ""
565
 
566
- #: includes/admin/class-give-settings.php:945, includes/admin/settings/class-settings-display.php:155
567
  msgid "Featured Image Size"
568
  msgstr ""
569
 
570
- #: includes/admin/class-give-settings.php:947, includes/admin/settings/class-settings-display.php:156
571
  msgid "The Featured Image is an image that is chosen as the representative image for a donation form. Some themes may have custom featured image sizes. Please select the size you would like to display for your single donation form's featured image."
572
  msgstr ""
573
 
574
- #: includes/admin/class-give-settings.php:961
575
  msgid "Disable Form Featured Image"
576
  msgstr ""
577
 
578
- #: includes/admin/class-give-settings.php:963, includes/admin/settings/class-settings-display.php:145
579
  msgid "If you do not wish to use the featured image functionality you can disable it using this option and it will not be displayed for single donation forms."
580
  msgstr ""
581
 
582
- #: includes/admin/class-give-settings.php:973
583
  msgid "Disable Single Form Sidebar"
584
  msgstr ""
585
 
586
- #: includes/admin/class-give-settings.php:975
587
  msgid "The sidebar allows you to add additional widget to the Give single form view. If you don't plan on using the sidebar you may disable it with this option."
588
  msgstr ""
589
 
590
- #: includes/admin/class-give-settings.php:985, includes/admin/settings/class-settings-display.php:304
591
  msgid "Taxonomies"
592
  msgstr ""
593
 
594
- #: includes/admin/class-give-settings.php:997
595
  msgid "Enable Form Categories"
596
  msgstr ""
597
 
598
- #: includes/admin/class-give-settings.php:999
599
  msgid "Enables the \"Category\" taxonomy for all Give forms."
600
  msgstr ""
601
 
602
- #: includes/admin/class-give-settings.php:1009
603
  msgid "Enable Form Tags"
604
  msgstr ""
605
 
606
- #: includes/admin/class-give-settings.php:1011
607
  msgid "Enables the \"Tag\" taxonomy for all Give forms."
608
  msgstr ""
609
 
610
- #: includes/admin/class-give-settings.php:1037, includes/admin/class-give-settings.php:1045, includes/admin/settings/class-settings-email.php:86, includes/admin/settings/class-settings-email.php:219
611
  msgid "Email Settings"
612
  msgstr ""
613
 
614
- #: includes/admin/class-give-settings.php:1059, includes/admin/settings/class-settings-email.php:57
615
  msgid "Email Template"
616
  msgstr ""
617
 
618
- #: includes/admin/class-give-settings.php:1061
619
  msgid "Choose a template. Click \"Save Changes\" then \"Preview Donation Receipt\" to see the new template."
620
  msgstr ""
621
 
622
- #: includes/admin/class-give-settings.php:1073, includes/admin/settings/class-settings-email.php:64, includes/scripts.php:312
623
  msgid "Logo"
624
  msgstr ""
625
 
626
- #: includes/admin/class-give-settings.php:1075, includes/admin/settings/class-settings-email.php:65
627
  msgid "Upload or choose a logo to be displayed at the top of the donation receipt emails. Displayed on HTML emails only."
628
  msgstr ""
629
 
630
- #: includes/admin/class-give-settings.php:1085, includes/admin/settings/class-settings-email.php:70
631
  msgid "From Name"
632
  msgstr ""
633
 
634
- #: includes/admin/class-give-settings.php:1087
635
  msgid "The name that appears in the \"From\" field in donation receipt emails."
636
  msgstr ""
637
 
638
- #: includes/admin/class-give-settings.php:1099, includes/admin/settings/class-settings-email.php:77
639
  msgid "From Email"
640
  msgstr ""
641
 
642
- #: includes/admin/class-give-settings.php:1101
643
  msgid "Email to send donation receipts from. This will act as the \"from\" and \"reply-to\" address."
644
  msgstr ""
645
 
646
- #: includes/admin/class-give-settings.php:1111, includes/admin/class-give-settings.php:1129, includes/admin/class-give-settings.php:1139, includes/admin/settings/class-settings-email.php:107, includes/admin/settings/class-settings-email.php:112, includes/admin/settings/class-settings-email.php:220, includes/admin/shortcodes/shortcode-give-receipt.php:27, includes/admin/shortcodes/shortcode-give-receipt.php:28, includes/emails/functions.php:59, includes/emails/functions.php:84, includes/emails/functions.php:143, includes/emails/functions.php:154, includes/emails/template.php:165, includes/emails/template.php:420, templates/shortcode-receipt.php:116
647
  msgid "Donation Receipt"
648
  msgstr ""
649
 
650
- #: includes/admin/class-give-settings.php:1125, includes/admin/settings/class-settings-email.php:105
651
  msgid "Donation Email Subject"
652
  msgstr ""
653
 
654
- #: includes/admin/class-give-settings.php:1145
655
  msgid "Enter the email that is sent to users after completing a successful donation. HTML is accepted. Available template tags: %s"
656
  msgstr ""
657
 
658
- #: includes/admin/class-give-settings.php:1159, includes/admin/settings/class-settings-email.php:221
659
  msgid "New Donation Notification"
660
  msgstr ""
661
 
662
- #: includes/admin/class-give-settings.php:1173, includes/admin/settings/class-settings-email.php:155
663
  msgid "Donation Notification Subject"
664
  msgstr ""
665
 
666
- #: includes/admin/class-give-settings.php:1175
667
  msgid "Enter the subject line for the donation notification email."
668
  msgstr ""
669
 
670
- #: includes/admin/class-give-settings.php:1179, includes/admin/settings/class-settings-email.php:158
671
  msgid "New Donation - #{payment_id}"
672
  msgstr ""
673
 
674
- #: includes/admin/class-give-settings.php:1187, includes/admin/settings/class-settings-email.php:162
675
  msgid "Donation Notification"
676
  msgstr ""
677
 
678
- #: includes/admin/class-give-settings.php:1193
679
  msgid "Enter the email that is sent to donation notification emails after completion of a donation. HTML is accepted. Available template tags: %s"
680
  msgstr ""
681
 
682
- #: includes/admin/class-give-settings.php:1209, includes/admin/settings/class-settings-email.php:173
683
  msgid "Donation Notification Emails"
684
  msgstr ""
685
 
686
- #: includes/admin/class-give-settings.php:1211, includes/admin/settings/class-settings-email.php:174
687
  msgid "Enter the email address(es) that should receive a notification anytime a donation is made, please only enter <span class=\"give-underline\">one email address per line</span> and <strong>not separated by commas</strong>."
688
  msgstr ""
689
 
690
- #: includes/admin/class-give-settings.php:1223
691
  msgid "Disable Admin Notifications"
692
  msgstr ""
693
 
694
- #: includes/admin/class-give-settings.php:1225
695
  msgid "Check this box if you do not want to receive emails when new donations are made."
696
  msgstr ""
697
 
698
- #: includes/admin/class-give-settings.php:1243
699
  msgid "Give Add-ons Settings"
700
  msgstr ""
701
 
702
- #: includes/admin/class-give-settings.php:1259
703
  msgid "Give Licenses"
704
  msgstr ""
705
 
706
- #: includes/admin/class-give-settings.php:1275, includes/admin/settings/class-settings-advanced.php:133
707
  msgid "Advanced Options"
708
  msgstr ""
709
 
710
- #: includes/admin/class-give-settings.php:1283, includes/admin/settings/class-settings-general.php:97, includes/admin/settings/class-settings-general.php:275
711
  msgid "Access Control"
712
  msgstr ""
713
 
714
- #: includes/admin/class-give-settings.php:1297, includes/admin/settings/class-settings-general.php:57
715
  msgid "Session Lifetime"
716
  msgstr ""
717
 
718
- #: includes/admin/class-give-settings.php:1299, includes/admin/settings/class-settings-general.php:58
719
  msgid "The length of time a user's session is kept alive. Give starts a new session per user upon donation. Sessions allow donors to view their donation receipts without being logged in."
720
  msgstr ""
721
 
722
- #: includes/admin/class-give-settings.php:1305, includes/admin/settings/class-settings-general.php:61
723
  msgid "24 Hours"
724
  msgstr ""
725
 
726
- #: includes/admin/class-give-settings.php:1307, includes/admin/settings/class-settings-general.php:62
727
  msgid "48 Hours"
728
  msgstr ""
729
 
730
- #: includes/admin/class-give-settings.php:1309, includes/admin/settings/class-settings-general.php:63
731
  msgid "72 Hours"
732
  msgstr ""
733
 
734
- #: includes/admin/class-give-settings.php:1311, includes/admin/settings/class-settings-general.php:64
735
  msgid "1 Week"
736
  msgstr ""
737
 
738
- #: includes/admin/class-give-settings.php:1319, includes/admin/settings/class-settings-general.php:68
739
  msgid "Email Access"
740
  msgstr ""
741
 
742
- #: includes/admin/class-give-settings.php:1321, includes/admin/settings/class-settings-general.php:69
743
  msgid "Would you like your donors to be able to access their donation history using only email? Donors whose sessions have expired and do not have an account may still access their donation history via a temporary email access link."
744
  msgstr ""
745
 
746
- #: includes/admin/class-give-settings.php:1333, includes/admin/settings/class-settings-general.php:80
747
  msgid "reCAPTCHA Site Key"
748
  msgstr ""
749
 
750
- #: includes/admin/class-give-settings.php:1337
751
  msgid "If you would like to prevent spam on the email access form navigate to <a href=\"%s\" target=\"_blank\">the reCAPTCHA website</a> and sign up for an API key. The reCAPTCHA uses Google's user-friendly single click verification method."
752
  msgstr ""
753
 
754
- #: includes/admin/class-give-settings.php:1349, includes/admin/settings/class-settings-general.php:88
755
  msgid "reCAPTCHA Secret Key"
756
  msgstr ""
757
 
758
- #: includes/admin/class-give-settings.php:1351
759
  msgid "Please paste the reCAPTCHA secret key here from your manage reCAPTCHA API Keys panel."
760
  msgstr ""
761
 
762
- #: includes/admin/class-give-settings.php:1361
763
  msgid "Data Control"
764
  msgstr ""
765
 
766
- #: includes/admin/class-give-settings.php:1373
767
  msgid "Remove All Data on Uninstall?"
768
  msgstr ""
769
 
770
- #: includes/admin/class-give-settings.php:1375
771
  msgid "When the plugin is deleted, completely remove all Give data."
772
  msgstr ""
773
 
774
- #: includes/admin/class-give-settings.php:1385
775
  msgid "Filter Control"
776
  msgstr ""
777
 
778
- #: includes/admin/class-give-settings.php:1399
779
  msgid "Disable %s filter"
780
  msgstr ""
781
 
782
- #: includes/admin/class-give-settings.php:1403, includes/admin/settings/class-settings-advanced.php:70
783
  msgid "If you are seeing extra social buttons, related posts, or other unwanted elements appearing within your forms then you can disable WordPress' content filter. <a href=\"%1$s\" target=\"_blank\">Learn more</a> about %2$s filter."
784
  msgstr ""
785
 
786
- #: includes/admin/class-give-settings.php:1413
787
  msgid "Script Loading"
788
  msgstr ""
789
 
790
- #: includes/admin/class-give-settings.php:1425
791
  msgid "Load Scripts in Footer?"
792
  msgstr ""
793
 
794
- #: includes/admin/class-give-settings.php:1427
795
  msgid "Check this box if you would like Give to load all frontend JavaScript files in the footer."
796
  msgstr ""
797
 
798
- #: includes/admin/class-give-settings.php:1489
799
  msgid "Please copy and paste this information in your ticket when contacting support."
800
  msgstr ""
801
 
802
- #: includes/admin/class-give-settings.php:1549
803
  msgid "Settings updated."
804
  msgstr ""
805
 
806
- #: includes/admin/class-give-settings.php:1599
807
  msgid "Invalid property: %s"
808
  msgstr ""
809
 
810
- #: includes/admin/class-give-settings.php:2393
811
  msgid "renew"
812
  msgstr ""
813
 
814
- #: includes/admin/class-give-settings.php:2399
815
  msgid "expire"
816
  msgstr ""
817
 
818
- #: includes/admin/class-give-settings.php:2409
819
- msgid "Your subscription (<a href=\"%s\" target=\"_blank\">#%d</a>) expired. Please <a href=\"%s\" target=\"_blank\" title=\"Renew your license key\">renew your license key</a>"
820
  msgstr ""
821
 
822
- #: includes/admin/class-give-settings.php:2425
823
- msgid "Your subscription (<a href=\"%s\" target=\"_blank\">#%d</a>) will %s in %s."
824
  msgstr ""
825
 
826
- #: includes/admin/class-give-settings.php:2443
827
- msgid "Your subscription (<a href=\"%s\" target=\"_blank\">#%d</a>) will %s on %s."
828
  msgstr ""
829
 
830
- #: includes/admin/class-give-settings.php:2477
831
- msgid "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank\" title=\"Renew your license key\">renew your license key</a>."
832
  msgstr ""
833
 
834
- #: includes/admin/class-give-settings.php:2497
835
  msgid "Invalid license. Please <a href=\"%s\" target=\"_blank\" title=\"Visit account page\">visit your account page</a> and verify it."
836
  msgstr ""
837
 
838
- #: includes/admin/class-give-settings.php:2515, includes/admin/class-give-settings.php:2535
839
- msgid "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank\" title=\"Visit account page\">visit your account page</a> to manage your license key URLs."
840
  msgstr ""
841
 
842
- #: includes/admin/class-give-settings.php:2553
843
- msgid "This license %s does not belong to %s."
844
  msgstr ""
845
 
846
- #: includes/admin/class-give-settings.php:2565
847
  msgid "Your license key has reached it's activation limit. <a href=\"%s\">View possible upgrades</a> now."
848
  msgstr ""
849
 
850
- #: includes/admin/class-give-settings.php:2591
851
  msgid "License key never expires."
852
  msgstr ""
853
 
854
- #: includes/admin/class-give-settings.php:2599
855
- msgid "Your license key expires soon! It expires on %s. <a href=\"%s\" target=\"_blank\" title=\"Renew license\">Renew your license key</a>."
856
  msgstr ""
857
 
858
- #: includes/admin/class-give-settings.php:2613
859
  msgid "Your license key expires on %s."
860
  msgstr ""
861
 
862
- #: includes/admin/class-give-settings.php:2633
863
  msgid "To receive updates, please enter your valid %s license key."
864
  msgstr ""
865
 
866
- #: includes/admin/class-give-settings.php:2673
867
  msgid "Deactivate License"
868
  msgstr ""
869
 
870
- #: includes/admin/class-give-settings.php:2693
871
  msgid "To receive updates, please enter your valid license key."
872
  msgstr ""
873
 
874
- #: includes/admin/class-give-settings.php:2791
875
  msgid "You can create API keys for individual users within their profile edit screen. API keys allow users to use the <a href=\"%1$s\" target=\"_blank\">Give REST API</a> to retrieve donation data in JSON or XML for external applications or devices, such as <a href=\"%2$s\" target=\"_blank\">Zapier</a>."
876
  msgstr ""
877
 
@@ -951,7 +952,7 @@ msgstr ""
951
  msgid "Delete \"%s\""
952
  msgstr ""
953
 
954
- #: includes/admin/customers/class-customer-table.php:225, includes/admin/payments/class-payments-table.php:462, includes/admin/payments/class-payments-table.php:554, includes/payments/functions.php:1635
955
  msgid "Delete"
956
  msgstr ""
957
 
@@ -959,7 +960,7 @@ msgstr ""
959
  msgid "You do not have permission to edit this donor."
960
  msgstr ""
961
 
962
- #: includes/admin/customers/customer-actions.php:31, includes/admin/customers/customer-actions.php:43, includes/admin/customers/customer-actions.php:195, includes/admin/customers/customer-actions.php:207, includes/admin/customers/customer-actions.php:273, includes/admin/customers/customer-actions.php:286, includes/admin/customers/customer-actions.php:368, includes/admin/customers/customer-actions.php:379, includes/admin/customers/customer-actions.php:545, includes/admin/customers/customer-actions.php:589, includes/admin/forms/dashboard-columns.php:237, includes/admin/payments/actions.php:31, includes/admin/payments/actions.php:88, includes/admin/payments/actions.php:99, includes/admin/payments/actions.php:314, includes/admin/payments/actions.php:334, includes/admin/payments/actions.php:367, includes/admin/payments/actions.php:389, includes/admin/payments/view-order-details.php:24, includes/admin/payments/view-order-details.php:34, includes/admin/reporting/class-api-requests-logs-list-table.php:141, includes/admin/reporting/class-export.php:177, includes/admin/reporting/class-gateway-error-logs-list-table.php:128, includes/admin/reporting/export/class-batch-export.php:133, includes/admin/reporting/export/export-actions.php:26, includes/admin/reporting/pdf-reports.php:31, includes/admin/reporting/pdf-reports.php:35, includes/admin/reporting/tools/class-give-tools-delete-test-transactions.php:157, includes/admin/reporting/tools/class-give-tools-recount-all-stats.php:206, includes/admin/reporting/tools/class-give-tools-recount-customer-stats.php:195, includes/admin/reporting/tools/class-give-tools-recount-form-stats.php:220, includes/admin/reporting/tools/class-give-tools-recount-income.php:157, includes/admin/reporting/tools/class-give-tools-recount-single-customer-stats.php:152, includes/admin/reporting/tools/class-give-tools-reset-stats.php:185, includes/admin/upgrades/upgrade-functions.php:167, includes/admin/upgrades/upgrade-functions.php:279, includes/admin/upgrades/upgrade-functions.php:316, includes/admin/upgrades/upgrade-functions.php:687, includes/api/class-give-api.php:1691, includes/api/class-give-api.php:1696, includes/api/class-give-api.php:1714, includes/api/class-give-api.php:1724, includes/class-give-license-handler.php:323, includes/class-give-license-handler.php:421, includes/emails/actions.php:56, includes/emails/template.php:270, includes/error-tracking.php:50, includes/formatting.php:470, includes/gateways/manual.php:38
963
  msgid "Error"
964
  msgstr ""
965
 
@@ -1011,11 +1012,11 @@ msgstr ""
1011
  msgid "An error has occurred. Please try again."
1012
  msgstr ""
1013
 
1014
- #: includes/admin/customers/customer-actions.php:467, includes/admin/reporting/export/export-actions.php:26, includes/admin/reporting/pdf-reports.php:35, includes/api/class-give-api.php:1691, includes/class-give-license-handler.php:323, includes/class-give-license-handler.php:421, includes/gateways/manual.php:38
1015
  msgid "Nonce verification failed."
1016
  msgstr ""
1017
 
1018
- #: includes/admin/customers/customer-actions.php:472, includes/login-register.php:254, includes/process-donation.php:537, includes/process-donation.php:711, includes/user-functions.php:368
1019
  msgid "Invalid email."
1020
  msgstr ""
1021
 
@@ -1031,7 +1032,7 @@ msgstr ""
1031
  msgid "Email successfully added to donor."
1032
  msgstr ""
1033
 
1034
- #: includes/admin/customers/customer-actions.php:500, includes/admin/customers/customer-actions.php:552, includes/admin/customers/customer-actions.php:597, includes/payments/functions.php:1618
1035
  msgid "System"
1036
  msgstr ""
1037
 
@@ -1039,7 +1040,7 @@ msgstr ""
1039
  msgid "Email address %1$s added by %2$s"
1040
  msgstr ""
1041
 
1042
- #: includes/admin/customers/customer-actions.php:505
1043
  msgid "Email address %1$s set as primary by %2$s"
1044
  msgstr ""
1045
 
@@ -1051,10 +1052,6 @@ msgstr ""
1051
  msgid "Email address %1$s removed by %2$s"
1052
  msgstr ""
1053
 
1054
- #: includes/admin/customers/customer-actions.php:598
1055
- msgid "Email address %1$s set as primary by %1$s"
1056
- msgstr ""
1057
-
1058
  #: includes/admin/customers/customer-functions.php:52
1059
  msgid "Donor Profile"
1060
  msgstr ""
@@ -1177,15 +1174,15 @@ msgstr ""
1177
  msgid "ID"
1178
  msgstr ""
1179
 
1180
- #: includes/admin/customers/customers.php:502, includes/admin/forms/class-metabox-form-data.php:201, includes/admin/forms/class-metabox-form-data.php:371, includes/admin/forms/dashboard-columns.php:38, includes/admin/payments/class-payments-table.php:276, includes/admin/reporting/export/class-batch-export-payments.php:55, templates/history-donations.php:34
1181
  msgid "Amount"
1182
  msgstr ""
1183
 
1184
- #: includes/admin/customers/customers.php:503, includes/admin/forms/dashboard-columns.php:43, includes/admin/payments/class-payments-table.php:275, includes/admin/reporting/class-api-requests-logs-list-table.php:96, includes/admin/reporting/class-export-earnings.php:64, includes/admin/reporting/class-export.php:73, includes/admin/reporting/class-gateway-error-logs-list-table.php:131, includes/admin/reporting/class-sales-logs-list-table.php:118, includes/admin/reporting/export/class-batch-export-payments.php:59, templates/history-donations.php:33
1185
  msgid "Date"
1186
  msgstr ""
1187
 
1188
- #: includes/admin/customers/customers.php:504, includes/admin/payments/class-payments-table.php:274, includes/admin/reporting/class-sales-logs-list-table.php:116, includes/admin/reporting/export/class-batch-export-forms.php:51, includes/admin/reporting/export/class-batch-export-payments.php:61
1189
  msgid "Status"
1190
  msgstr ""
1191
 
@@ -1213,7 +1210,7 @@ msgstr ""
1213
  msgid "View Form %s."
1214
  msgstr ""
1215
 
1216
- #: includes/admin/customers/customers.php:580, includes/post-types.php:48, includes/post-types.php:371, includes/post-types.php:372, includes/post-types.php:373, includes/post-types.php:374, includes/post-types.php:375
1217
  msgid "View Form"
1218
  msgstr ""
1219
 
@@ -1324,7 +1321,7 @@ msgstr ""
1324
  msgid "Dropdown"
1325
  msgstr ""
1326
 
1327
- #: includes/admin/forms/class-metabox-form-data.php:151, includes/gateways/paypal-standard.php:785, includes/gateways/paypal-standard.php:796, includes/payments/functions.php:1834
1328
  msgid "Custom Amount"
1329
  msgstr ""
1330
 
@@ -1332,11 +1329,11 @@ msgstr ""
1332
  msgid "Do you want the user to be able to input their own donation amount?"
1333
  msgstr ""
1334
 
1335
- #: includes/admin/forms/class-metabox-form-data.php:157, includes/admin/forms/class-metabox-form-data.php:289, includes/admin/forms/class-metabox-form-data.php:314, includes/admin/forms/class-metabox-form-data.php:347, includes/admin/forms/class-metabox-form-data.php:390, includes/admin/forms/class-metabox-form-data.php:428, includes/admin/settings/class-settings-advanced.php:75, includes/admin/settings/class-settings-display.php:62, includes/admin/settings/class-settings-display.php:74, includes/admin/settings/class-settings-display.php:86, includes/admin/settings/class-settings-display.php:117, includes/admin/settings/class-settings-display.php:128, includes/admin/settings/class-settings-display.php:139, includes/admin/settings/class-settings-display.php:150, includes/admin/settings/class-settings-display.php:169, includes/admin/settings/class-settings-display.php:200, includes/admin/settings/class-settings-display.php:211, includes/admin/settings/class-settings-display.php:242, includes/admin/settings/class-settings-email.php:149, includes/admin/settings/class-settings-gateways.php:85, includes/admin/settings/class-settings-gateways.php:96, includes/admin/settings/class-settings-gateways.php:128, includes/admin/settings/class-settings-gateways.php:187, includes/admin/settings/class-settings-general.php:74, includes/admin/tools/views/html-admin-page-system-info.php:421, includes/admin/tools/views/html-admin-page-system-info.php:494, includes/admin/tools/views/html-admin-page-system-info.php:499, includes/admin/tools/views/html-admin-page-system-info.php:514, includes/admin/tools/views/html-admin-page-system-info.php:519, includes/admin/tools/views/html-admin-page-system-info.php:540, includes/admin/tools/views/html-admin-page-system-info.php:545, includes/gateways/offline-donations.php:323
1336
  msgid "Enabled"
1337
  msgstr ""
1338
 
1339
- #: includes/admin/forms/class-metabox-form-data.php:158, includes/admin/forms/class-metabox-form-data.php:290, includes/admin/forms/class-metabox-form-data.php:315, includes/admin/forms/class-metabox-form-data.php:348, includes/admin/forms/class-metabox-form-data.php:391, includes/admin/forms/class-metabox-form-data.php:429, includes/admin/settings/class-settings-advanced.php:76, includes/admin/settings/class-settings-display.php:63, includes/admin/settings/class-settings-display.php:75, includes/admin/settings/class-settings-display.php:87, includes/admin/settings/class-settings-display.php:118, includes/admin/settings/class-settings-display.php:129, includes/admin/settings/class-settings-display.php:140, includes/admin/settings/class-settings-display.php:151, includes/admin/settings/class-settings-display.php:170, includes/admin/settings/class-settings-display.php:201, includes/admin/settings/class-settings-display.php:212, includes/admin/settings/class-settings-display.php:243, includes/admin/settings/class-settings-email.php:150, includes/admin/settings/class-settings-gateways.php:86, includes/admin/settings/class-settings-gateways.php:97, includes/admin/settings/class-settings-gateways.php:129, includes/admin/settings/class-settings-gateways.php:188, includes/admin/settings/class-settings-general.php:75, includes/admin/tools/views/html-admin-page-system-info.php:421, includes/admin/tools/views/html-admin-page-system-info.php:494, includes/admin/tools/views/html-admin-page-system-info.php:499, includes/admin/tools/views/html-admin-page-system-info.php:514, includes/admin/tools/views/html-admin-page-system-info.php:519, includes/admin/tools/views/html-admin-page-system-info.php:540, includes/admin/tools/views/html-admin-page-system-info.php:545, includes/gateways/offline-donations.php:324
1340
  msgid "Disabled"
1341
  msgstr ""
1342
 
@@ -1456,7 +1453,7 @@ msgstr ""
1456
  msgid "Select the <a href=\"%s\" target=\"_blank\">floating labels</a> setting for this Give form. Be aware that if you have the \"Disable CSS\" option enabled, you will need to style the floating labels yourself."
1457
  msgstr ""
1458
 
1459
- #: includes/admin/forms/class-metabox-form-data.php:313, includes/admin/forms/class-metabox-form-data.php:479, includes/forms/widget.php:184, includes/gateways/offline-donations.php:309
1460
  msgid "Global Option"
1461
  msgstr ""
1462
 
@@ -1564,11 +1561,11 @@ msgstr ""
1564
  msgid "Do you want to require the donor to accept terms prior to being able to complete their donation?"
1565
  msgstr ""
1566
 
1567
- #: includes/admin/forms/class-metabox-form-data.php:480, includes/gateways/offline-donations.php:310
1568
  msgid "Customize"
1569
  msgstr ""
1570
 
1571
- #: includes/admin/forms/class-metabox-form-data.php:481, includes/gateways/offline-donations.php:311
1572
  msgid "Disable"
1573
  msgstr ""
1574
 
@@ -1656,139 +1653,139 @@ msgstr ""
1656
  msgid "Error creating new donor."
1657
  msgstr ""
1658
 
1659
- #: includes/admin/payments/class-payments-table.php:144
1660
  msgid "Start Date:"
1661
  msgstr ""
1662
 
1663
- #: includes/admin/payments/class-payments-table.php:146
1664
  msgid "End Date:"
1665
  msgstr ""
1666
 
1667
- #: includes/admin/payments/class-payments-table.php:148, includes/admin/reporting/logs.php:135
1668
  msgid "Apply"
1669
  msgstr ""
1670
 
1671
- #: includes/admin/payments/class-payments-table.php:154
1672
  msgid "Clear Filter"
1673
  msgstr ""
1674
 
1675
- #: includes/admin/payments/class-payments-table.php:156, includes/admin/reporting/logs.php:83, includes/admin/reporting/reports.php:277
1676
  msgid "Search"
1677
  msgstr ""
1678
 
1679
- #: includes/admin/payments/class-payments-table.php:228, includes/admin/reporting/class-sales-logs-list-table.php:307, includes/class-give-html-elements.php:395
1680
  msgid "All"
1681
  msgstr ""
1682
 
1683
- #: includes/admin/payments/class-payments-table.php:232
1684
  msgid "Completed"
1685
  msgstr ""
1686
 
1687
- #: includes/admin/payments/class-payments-table.php:236, includes/payments/functions.php:653
1688
  msgid "Pending"
1689
  msgstr ""
1690
 
1691
- #: includes/admin/payments/class-payments-table.php:240, includes/payments/functions.php:655, includes/post-types.php:300
1692
  msgid "Refunded"
1693
  msgstr ""
1694
 
1695
- #: includes/admin/payments/class-payments-table.php:244, includes/payments/functions.php:660, includes/post-types.php:316
1696
  msgid "Revoked"
1697
  msgstr ""
1698
 
1699
- #: includes/admin/payments/class-payments-table.php:248, includes/payments/functions.php:656, includes/post-types.php:308
1700
  msgid "Failed"
1701
  msgstr ""
1702
 
1703
- #: includes/admin/payments/class-payments-table.php:252, includes/payments/functions.php:657, includes/post-types.php:324
1704
  msgid "Cancelled"
1705
  msgstr ""
1706
 
1707
- #: includes/admin/payments/class-payments-table.php:256, includes/payments/functions.php:658, includes/post-types.php:332
1708
  msgid "Abandoned"
1709
  msgstr ""
1710
 
1711
- #: includes/admin/payments/class-payments-table.php:273, includes/admin/shortcodes/shortcode-give-form.php:27, includes/admin/shortcodes/shortcode-give-form.php:28, includes/post-types.php:54
1712
  msgid "Donation Form"
1713
  msgstr ""
1714
 
1715
- #: includes/admin/payments/class-payments-table.php:277, includes/admin/reporting/class-gateway-error-logs-list-table.php:132, templates/history-donations.php:35
1716
  msgid "Details"
1717
  msgstr ""
1718
 
1719
- #: includes/admin/payments/class-payments-table.php:335, includes/admin/payments/class-payments-table.php:373
1720
  msgid "View Donation %s"
1721
  msgstr ""
1722
 
1723
- #: includes/admin/payments/class-payments-table.php:337
1724
  msgid "by"
1725
  msgstr ""
1726
 
1727
- #: includes/admin/payments/class-payments-table.php:350, includes/admin/reporting/class-sales-logs-list-table.php:74, includes/admin/reporting/class-sales-logs-list-table.php:310, includes/admin/shortcodes/abstract-shortcode-generator.php:296, includes/class-give-html-elements.php:130, includes/forms/widget.php:155
1728
  msgid "Untitled (#%s)"
1729
  msgstr ""
1730
 
1731
- #: includes/admin/payments/class-payments-table.php:401
1732
  msgid "(unknown)"
1733
  msgstr ""
1734
 
1735
- #: includes/admin/payments/class-payments-table.php:404
1736
  msgid "Email donor"
1737
  msgstr ""
1738
 
1739
- #: includes/admin/payments/class-payments-table.php:443
1740
  msgid "Resend Donation %s Receipt"
1741
  msgstr ""
1742
 
1743
- #: includes/admin/payments/class-payments-table.php:444, includes/admin/payments/view-order-details.php:218
1744
  msgid "Resend Receipt"
1745
  msgstr ""
1746
 
1747
- #: includes/admin/payments/class-payments-table.php:461
1748
  msgid "Delete Donation %s"
1749
  msgstr ""
1750
 
1751
- #: includes/admin/payments/class-payments-table.php:482, includes/admin/payments/view-order-details.php:59, includes/admin/reporting/class-sales-logs-list-table.php:90
1752
  msgid "This donation was made in test mode."
1753
  msgstr ""
1754
 
1755
- #: includes/admin/payments/class-payments-table.php:482, includes/admin/reporting/class-sales-logs-list-table.php:90
1756
  msgid "Test"
1757
  msgstr ""
1758
 
1759
- #: includes/admin/payments/class-payments-table.php:539
1760
  msgid "(donor missing)"
1761
  msgstr ""
1762
 
1763
- #: includes/admin/payments/class-payments-table.php:555
1764
  msgid "Set To Completed"
1765
  msgstr ""
1766
 
1767
- #: includes/admin/payments/class-payments-table.php:556
1768
  msgid "Set To Pending"
1769
  msgstr ""
1770
 
1771
- #: includes/admin/payments/class-payments-table.php:557
1772
  msgid "Set To Refunded"
1773
  msgstr ""
1774
 
1775
- #: includes/admin/payments/class-payments-table.php:558
1776
  msgid "Set To Revoked"
1777
  msgstr ""
1778
 
1779
- #: includes/admin/payments/class-payments-table.php:559
1780
  msgid "Set To Failed"
1781
  msgstr ""
1782
 
1783
- #: includes/admin/payments/class-payments-table.php:560
1784
  msgid "Set To Cancelled"
1785
  msgstr ""
1786
 
1787
- #: includes/admin/payments/class-payments-table.php:561
1788
  msgid "Set To Abandoned"
1789
  msgstr ""
1790
 
1791
- #: includes/admin/payments/class-payments-table.php:562
1792
  msgid "Resend Email Receipts"
1793
  msgstr ""
1794
 
@@ -2536,11 +2533,11 @@ msgstr ""
2536
  msgid "You do not have permission to delete test transactions."
2537
  msgstr ""
2538
 
2539
- #: includes/admin/reporting/tools/class-give-tools-delete-test-transactions.php:179
2540
  msgid "Test transactions successfully deleted."
2541
  msgstr ""
2542
 
2543
- #: includes/admin/reporting/tools/class-give-tools-recount-all-stats.php:206, includes/admin/reporting/tools/class-give-tools-recount-customer-stats.php:195, includes/admin/reporting/tools/class-give-tools-recount-form-stats.php:220, includes/admin/reporting/tools/class-give-tools-recount-income.php:157, includes/admin/reporting/tools/class-give-tools-recount-single-customer-stats.php:152
2544
  msgid "You do not have permission to recount stats."
2545
  msgstr ""
2546
 
@@ -2556,7 +2553,7 @@ msgstr ""
2556
  msgid "Donation counts and income amount statistics successfully recounted for \"%s\"."
2557
  msgstr ""
2558
 
2559
- #: includes/admin/reporting/tools/class-give-tools-recount-income.php:170
2560
  msgid "Income stats have been successfully recounted."
2561
  msgstr ""
2562
 
@@ -2564,7 +2561,7 @@ msgstr ""
2564
  msgid "You do not have permission to reset data."
2565
  msgstr ""
2566
 
2567
- #: includes/admin/reporting/tools/class-give-tools-reset-stats.php:207
2568
  msgid "Donation forms, income, donations counts, and logs successfully reset."
2569
  msgstr ""
2570
 
@@ -2808,7 +2805,7 @@ msgstr ""
2808
  msgid "PayPal Standard Gateway Settings"
2809
  msgstr ""
2810
 
2811
- #: includes/admin/settings/class-settings-gateways.php:151, includes/gateways/offline-donations.php:349
2812
  msgid "Available template tags:"
2813
  msgstr ""
2814
 
@@ -3693,27 +3690,27 @@ msgstr ""
3693
  msgid "The parent theme developers URL."
3694
  msgstr ""
3695
 
3696
- #: includes/admin/upgrades/upgrade-functions.php:93
3697
  msgid "Give needs to upgrade the donor database, click <a href=\"%s\">here</a> to start the upgrade."
3698
  msgstr ""
3699
 
3700
- #: includes/admin/upgrades/upgrade-functions.php:102
3701
  msgid "Give needs to upgrade the donations database, click <a href=\"%s\">here</a> to start the upgrade."
3702
  msgstr ""
3703
 
3704
- #: includes/admin/upgrades/upgrade-functions.php:113
3705
  msgid "Give needs to complete a database upgrade that was previously started, click <a href=\"%s\">here</a> to resume the upgrade."
3706
  msgstr ""
3707
 
3708
- #: includes/admin/upgrades/upgrade-functions.php:125
3709
  msgid "Give needs to upgrade the form database, click %1$shere%2$s to start the upgrade."
3710
  msgstr ""
3711
 
3712
- #: includes/admin/upgrades/upgrade-functions.php:141
3713
  msgid "Please make sure to create a database backup before initiating the upgrade."
3714
  msgstr ""
3715
 
3716
- #: includes/admin/upgrades/upgrade-functions.php:167, includes/admin/upgrades/upgrade-functions.php:279, includes/admin/upgrades/upgrade-functions.php:316, includes/admin/upgrades/upgrade-functions.php:687
3717
  msgid "You do not have permission to do Give upgrades."
3718
  msgstr ""
3719
 
@@ -3961,6 +3958,10 @@ msgstr ""
3961
  msgid "You do not have permission to %s API keys for this user."
3962
  msgstr ""
3963
 
 
 
 
 
3964
  #: includes/class-give-cli-commands.php:102
3965
  msgid "Give Version: "
3966
  msgstr ""
@@ -4081,7 +4082,7 @@ msgstr ""
4081
  msgid "Once Weekly"
4082
  msgstr ""
4083
 
4084
- #: includes/class-give-customer.php:235, includes/class-give-donate-form.php:406
15
  "X-Poedit-SearchPath-0: .\n"
16
  "X-Poedit-SearchPathExcluded-0: *.js\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
+
19
+ #: give.php:485, give.php:511
20
  msgid "Cheatin&#8217; huh?"
21
  msgstr ""
22
 
23
+ #: includes/actions.php:101
24
  msgid "WordPress user #%d is connected to #%d"
25
  msgstr ""
26
 
36
  msgid "The following Add-ons extend the functionality of Give."
37
  msgstr ""
38
 
39
+ #: includes/admin/add-ons.php:64
40
  msgid "There was an error retrieving the Give Add-ons list from the server. Please try again later."
41
  msgstr ""
42
 
80
  msgid "Give Add-ons"
81
  msgstr ""
82
 
83
+ #: includes/admin/admin-pages.php:75, includes/admin/class-give-settings.php:100, includes/admin/plugins.php:75, includes/admin/settings/class-settings-addon.php:29, includes/admin/welcome.php:202
84
  msgid "Add-ons"
85
  msgstr ""
86
 
272
  msgid "Generate New API Keys"
273
  msgstr ""
274
 
275
+ #: includes/admin/class-give-settings.php:94, includes/admin/settings/class-settings-general.php:30, includes/admin/settings/class-settings-general.php:273
276
  msgid "General"
277
  msgstr ""
278
 
279
+ #: includes/admin/class-give-settings.php:95, includes/admin/class-give-settings.php:305, includes/admin/settings/class-settings-gateways.php:30
280
  msgid "Payment Gateways"
281
  msgstr ""
282
 
283
+ #: includes/admin/class-give-settings.php:96, includes/admin/forms/class-metabox-form-data.php:246, includes/admin/settings/class-settings-display.php:30, includes/admin/shortcodes/shortcode-give-form.php:100
284
  msgid "Display Options"
285
  msgstr ""
286
 
287
+ #: includes/admin/class-give-settings.php:97, includes/admin/settings/class-settings-email.php:30
288
  msgid "Emails"
289
  msgstr ""
290
 
291
+ #: includes/admin/class-give-settings.php:104, includes/admin/settings/class-settings-license.php:46
292
  msgid "Licenses"
293
  msgstr ""
294
 
295
+ #: includes/admin/class-give-settings.php:107, includes/admin/settings/class-settings-advanced.php:30
296
  msgid "Advanced"
297
  msgstr ""
298
 
299
+ #: includes/admin/class-give-settings.php:108, includes/admin/class-give-settings.php:727, includes/admin/class-give-settings.php:733, includes/admin/tools/class-settings-api.php:46, includes/admin/tools/class-settings-api.php:84
300
  msgid "API"
301
  msgstr ""
302
 
303
+ #: includes/admin/class-give-settings.php:109, includes/admin/class-give-settings.php:742, includes/admin/class-give-settings.php:747, includes/admin/tools/class-settings-system-info.php:46
304
  msgid "System Info"
305
  msgstr ""
306
 
307
+ #: includes/admin/class-give-settings.php:174
308
  msgid "Save Settings"
309
  msgstr ""
310
 
311
+ #: includes/admin/class-give-settings.php:199, includes/admin/class-give-settings.php:203, includes/admin/settings/class-settings-general.php:187
312
  msgid "General Settings"
313
  msgstr ""
314
 
315
+ #: includes/admin/class-give-settings.php:209, includes/admin/settings/class-settings-general.php:193, includes/admin/tools/views/html-admin-page-system-info.php:444
316
  msgid "Success Page"
317
  msgstr ""
318
 
319
+ #: includes/admin/class-give-settings.php:211, includes/admin/settings/class-settings-general.php:195
320
  msgid "The page donors are sent to after completing their donations. The %s shortcode should be on this page."
321
  msgstr ""
322
 
323
+ #: includes/admin/class-give-settings.php:220, includes/admin/settings/class-settings-general.php:204
324
  msgid "Failed Donation Page"
325
  msgstr ""
326
 
327
+ #: includes/admin/class-give-settings.php:221, includes/admin/settings/class-settings-general.php:205
328
  msgid "The page donors are sent to if their donation is cancelled or fails."
329
  msgstr ""
330
 
331
+ #: includes/admin/class-give-settings.php:230, includes/admin/settings/class-settings-general.php:214
332
  msgid "Donation History Page"
333
  msgstr ""
334
 
335
+ #: includes/admin/class-give-settings.php:232, includes/admin/settings/class-settings-general.php:216
336
  msgid "The page showing a complete donation history for the current user. The %s shortcode should be on this page."
337
  msgstr ""
338
 
339
+ #: includes/admin/class-give-settings.php:241, includes/admin/settings/class-settings-general.php:225
340
  msgid "Base Country"
341
  msgstr ""
342
 
343
+ #: includes/admin/class-give-settings.php:242, includes/admin/settings/class-settings-general.php:226
344
  msgid "The country your site operates from."
345
  msgstr ""
346
 
347
+ #: includes/admin/class-give-settings.php:248, includes/admin/settings/class-settings-general.php:115, includes/admin/settings/class-settings-general.php:169
348
  msgid "Currency Settings"
349
  msgstr ""
350
 
351
+ #: includes/admin/class-give-settings.php:254, includes/admin/settings/class-settings-general.php:121, includes/admin/settings/class-settings-general.php:274
352
  msgid "Currency"
353
  msgstr ""
354
 
355
+ #: includes/admin/class-give-settings.php:255, includes/admin/settings/class-settings-general.php:122
356
  msgid "The donation currency. Note that some payment gateways have currency restrictions."
357
  msgstr ""
358
 
359
+ #: includes/admin/class-give-settings.php:262, includes/admin/settings/class-settings-general.php:129, includes/admin/tools/views/html-admin-page-system-info.php:429
360
  msgid "Currency Position"
361
  msgstr ""
362
 
363
+ #: includes/admin/class-give-settings.php:263, includes/admin/settings/class-settings-general.php:130
364
  msgid "The position of the currency symbol."
365
  msgstr ""
366
 
367
+ #: includes/admin/class-give-settings.php:268, includes/admin/settings/class-settings-general.php:135
368
  msgid "Before - %s10"
369
  msgstr ""
370
 
371
+ #: includes/admin/class-give-settings.php:270, includes/admin/settings/class-settings-general.php:137
372
  msgid "After - 10%s"
373
  msgstr ""
374
 
375
+ #: includes/admin/class-give-settings.php:275, includes/admin/settings/class-settings-general.php:142, includes/admin/tools/views/html-admin-page-system-info.php:439
376
  msgid "Thousands Separator"
377
  msgstr ""
378
 
379
+ #: includes/admin/class-give-settings.php:276
380
  msgid "The symbol (usually , or .) to separate thousands."
381
  msgstr ""
382
 
383
+ #: includes/admin/class-give-settings.php:283, includes/admin/settings/class-settings-general.php:150, includes/admin/tools/views/html-admin-page-system-info.php:434
384
  msgid "Decimal Separator"
385
  msgstr ""
386
 
387
+ #: includes/admin/class-give-settings.php:284, includes/admin/settings/class-settings-general.php:151
388
  msgid "The symbol (usually , or .) to separate decimal points."
389
  msgstr ""
390
 
391
+ #: includes/admin/class-give-settings.php:290, includes/admin/settings/class-settings-general.php:158
392
  msgid "Number of Decimals"
393
  msgstr ""
394
 
395
+ #: includes/admin/class-give-settings.php:291, includes/admin/settings/class-settings-general.php:159
396
  msgid "The number of decimal points displayed in amounts."
397
  msgstr ""
398
 
399
+ #: includes/admin/class-give-settings.php:309
400
  msgid "Gateways Settings"
401
  msgstr ""
402
 
403
+ #: includes/admin/class-give-settings.php:315, includes/admin/settings/class-settings-gateways.php:181, includes/admin/tools/views/html-admin-page-system-info.php:419
404
  msgid "Test Mode"
405
  msgstr ""
406
 
407
+ #: includes/admin/class-give-settings.php:316, includes/admin/settings/class-settings-gateways.php:182
408
  msgid "While in test mode no live donations are processed. To fully use test mode, you must have a sandbox (test) account for the payment gateway you are testing."
409
  msgstr ""
410
 
411
+ #: includes/admin/class-give-settings.php:321, includes/admin/settings/class-settings-gateways.php:192
412
  msgid "Enabled Gateways"
413
  msgstr ""
414
 
415
+ #: includes/admin/class-give-settings.php:322, includes/admin/settings/class-settings-gateways.php:193
416
  msgid "Enable your payment gateway. Can be ordered by dragging."
417
  msgstr ""
418
 
419
+ #: includes/admin/class-give-settings.php:327, includes/admin/forms/class-metabox-form-data.php:277, includes/admin/settings/class-settings-gateways.php:198
420
  msgid "Default Gateway"
421
  msgstr ""
422
 
423
+ #: includes/admin/class-give-settings.php:328, includes/admin/settings/class-settings-gateways.php:199
424
  msgid "The gateway that will be selected by default."
425
  msgstr ""
426
 
427
+ #: includes/admin/class-give-settings.php:333, includes/admin/settings/class-settings-gateways.php:246, includes/gateways/functions.php:27
428
  msgid "PayPal Standard"
429
  msgstr ""
430
 
431
+ #: includes/admin/class-give-settings.php:339, includes/admin/settings/class-settings-gateways.php:56
432
  msgid "PayPal Email"
433
  msgstr ""
434
 
435
+ #: includes/admin/class-give-settings.php:340, includes/admin/settings/class-settings-gateways.php:57
436
  msgid "Enter your PayPal account's email."
437
  msgstr ""
438
 
439
+ #: includes/admin/class-give-settings.php:345, includes/admin/settings/class-settings-gateways.php:62
440
  msgid "PayPal Page Style"
441
  msgstr ""
442
 
443
+ #: includes/admin/class-give-settings.php:346
444
  msgid "Enter the name of the page style to use, or leave blank to use the default."
445
  msgstr ""
446
 
447
+ #: includes/admin/class-give-settings.php:351, includes/admin/settings/class-settings-gateways.php:68
448
  msgid "PayPal Transaction Type"
449
  msgstr ""
450
 
451
+ #: includes/admin/class-give-settings.php:352, includes/admin/settings/class-settings-gateways.php:69
452
  msgid "Nonprofits must verify their status to withdraw donations they receive via PayPal. PayPal users that are not verified nonprofits must demonstrate how their donations will be used, once they raise more than $10,000. By default, Give transactions are sent to PayPal as donations. You may change the transaction type using this option if you feel you may not meet PayPal's donation requirements."
453
  msgstr ""
454
 
455
+ #: includes/admin/class-give-settings.php:356, includes/admin/payments/class-payments-table.php:276, includes/admin/settings/class-settings-gateways.php:73
456
  msgid "Donation"
457
  msgstr ""
458
 
459
+ #: includes/admin/class-give-settings.php:357, includes/admin/settings/class-settings-gateways.php:74
460
  msgid "Standard Transaction"
461
  msgstr ""
462
 
463
+ #: includes/admin/class-give-settings.php:362
464
  msgid "Disable PayPal IPN Verification"
465
  msgstr ""
466
 
467
+ #: includes/admin/class-give-settings.php:363, includes/admin/settings/class-settings-gateways.php:91
468
  msgid "If donations are not getting marked as complete, use a slightly less secure method of verifying donations."
469
  msgstr ""
470
 
471
+ #: includes/admin/class-give-settings.php:368, includes/admin/forms/class-metabox-form-data.php:1081, includes/admin/settings/class-settings-gateways.php:247, includes/gateways/offline-donations.php:305, includes/gateways/offline-donations.php:363
472
  msgid "Offline Donations"
473
  msgstr ""
474
 
475
+ #: includes/admin/class-give-settings.php:374, includes/admin/settings/class-settings-gateways.php:122
476
  msgid "Collect Billing Details"
477
  msgstr ""
478
 
479
+ #: includes/admin/class-give-settings.php:375, includes/admin/settings/class-settings-gateways.php:123
480
  msgid "Enable to request billing details for offline donations. Will appear above offline donation instructions. Can be enabled/disabled per form."
481
  msgstr ""
482
 
483
+ #: includes/admin/class-give-settings.php:380, includes/admin/settings/class-settings-gateways.php:133, includes/gateways/offline-donations.php:187, includes/gateways/offline-donations.php:202
484
  msgid "Offline Donation Instructions"
485
  msgstr ""
486
 
487
+ #: includes/admin/class-give-settings.php:381, includes/admin/settings/class-settings-gateways.php:134
488
  msgid "The following content will appear for all forms when the user selects the offline donation payment option. Note: You may customize the content per form as needed."
489
  msgstr ""
490
 
491
+ #: includes/admin/class-give-settings.php:390, includes/admin/settings/class-settings-gateways.php:143
492
  msgid "Offline Donation Email Instructions Subject"
493
  msgstr ""
494
 
495
+ #: includes/admin/class-give-settings.php:391, includes/admin/class-give-settings.php:567, includes/admin/settings/class-settings-email.php:106, includes/admin/settings/class-settings-gateways.php:144, includes/gateways/offline-donations.php:343
496
  msgid "Enter the subject line for the donation receipt email."
497
  msgstr ""
498
 
499
+ #: includes/admin/class-give-settings.php:393, includes/admin/settings/class-settings-gateways.php:146
500
  msgid "{donation} - Offline Donation Instructions"
501
  msgstr ""
502
 
503
+ #: includes/admin/class-give-settings.php:397, includes/admin/settings/class-settings-gateways.php:150
504
  msgid "Offline Donation Email Instructions"
505
  msgstr ""
506
 
507
+ #: includes/admin/class-give-settings.php:398, includes/admin/settings/class-settings-gateways.php:151, includes/gateways/offline-donations.php:351
508
  msgid "Enter the instructions you want emailed to the donor after they have submitted the donation form. Most likely this would include important information like mailing address and who to make the check out to."
509
  msgstr ""
510
 
511
+ #: includes/admin/class-give-settings.php:412, includes/admin/class-give-settings.php:416
512
  msgid "Display Settings"
513
  msgstr ""
514
 
515
+ #: includes/admin/class-give-settings.php:422
516
  msgid "Disable CSS"
517
  msgstr ""
518
 
519
+ #: includes/admin/class-give-settings.php:423
520
  msgid "Enable this option if you would like to disable all of Give's included CSS stylesheets."
521
  msgstr ""
522
 
523
+ #: includes/admin/class-give-settings.php:428
524
  msgid "Enable Floating Labels"
525
  msgstr ""
526
 
527
+ #: includes/admin/class-give-settings.php:430
528
  msgid "Enable <a href=\"%s\" target=\"_blank\">floating labels</a> in Give's donation forms. Note that if the \"Disable CSS\" option is enabled, you will need to style the floating labels yourself."
529
  msgstr ""
530
 
531
+ #: includes/admin/class-give-settings.php:440
532
  msgid "Disable Welcome Screen"
533
  msgstr ""
534
 
535
+ #: includes/admin/class-give-settings.php:442
536
  msgid "Enable this option if you would like to disable the <a href=\"%s\" target=\"_blank\">Give Welcome screen</a> every time Give is activated and/or updated."
537
  msgstr ""
538
 
539
+ #: includes/admin/class-give-settings.php:452, includes/admin/settings/class-settings-display.php:303
540
  msgid "Post Types"
541
  msgstr ""
542
 
543
+ #: includes/admin/class-give-settings.php:458
544
  msgid "Disable Form Single Views"
545
  msgstr ""
546
 
547
+ #: includes/admin/class-give-settings.php:459
548
  msgid "By default, all forms have single views enabled which create a specific URL on your website for that form. This option disables the singular and archive views from being publicly viewable. Note: you will need to embed forms using a shortcode or widget if enabled."
549
  msgstr ""
550
 
551
+ #: includes/admin/class-give-settings.php:464
552
  msgid "Disable Form Archives"
553
  msgstr ""
554
 
555
+ #: includes/admin/class-give-settings.php:465
556
  msgid "Archives pages list all the forms you have created. This option will disable only the form's archive page(s). The single form's view will remain in place. Note: you will need to refresh your permalinks after this option has been enabled."
557
  msgstr ""
558
 
559
+ #: includes/admin/class-give-settings.php:470
560
  msgid "Disable Form Excerpts"
561
  msgstr ""
562
 
563
+ #: includes/admin/class-give-settings.php:471, includes/admin/settings/class-settings-display.php:134
564
  msgid "The excerpt is an optional summary or description of a donation form; in short, a summary as to why the user should give."
565
  msgstr ""
566
 
567
+ #: includes/admin/class-give-settings.php:476, includes/admin/settings/class-settings-display.php:155
568
  msgid "Featured Image Size"
569
  msgstr ""
570
 
571
+ #: includes/admin/class-give-settings.php:477, includes/admin/settings/class-settings-display.php:156
572
  msgid "The Featured Image is an image that is chosen as the representative image for a donation form. Some themes may have custom featured image sizes. Please select the size you would like to display for your single donation form's featured image."
573
  msgstr ""
574
 
575
+ #: includes/admin/class-give-settings.php:484
576
  msgid "Disable Form Featured Image"
577
  msgstr ""
578
 
579
+ #: includes/admin/class-give-settings.php:485, includes/admin/settings/class-settings-display.php:145
580
  msgid "If you do not wish to use the featured image functionality you can disable it using this option and it will not be displayed for single donation forms."
581
  msgstr ""
582
 
583
+ #: includes/admin/class-give-settings.php:490
584
  msgid "Disable Single Form Sidebar"
585
  msgstr ""
586
 
587
+ #: includes/admin/class-give-settings.php:491
588
  msgid "The sidebar allows you to add additional widget to the Give single form view. If you don't plan on using the sidebar you may disable it with this option."
589
  msgstr ""
590
 
591
+ #: includes/admin/class-give-settings.php:496, includes/admin/settings/class-settings-display.php:304
592
  msgid "Taxonomies"
593
  msgstr ""
594
 
595
+ #: includes/admin/class-give-settings.php:502
596
  msgid "Enable Form Categories"
597
  msgstr ""
598
 
599
+ #: includes/admin/class-give-settings.php:503
600
  msgid "Enables the \"Category\" taxonomy for all Give forms."
601
  msgstr ""
602
 
603
+ #: includes/admin/class-give-settings.php:508
604
  msgid "Enable Form Tags"
605
  msgstr ""
606
 
607
+ #: includes/admin/class-give-settings.php:509
608
  msgid "Enables the \"Tag\" taxonomy for all Give forms."
609
  msgstr ""
610
 
611
+ #: includes/admin/class-give-settings.php:522, includes/admin/class-give-settings.php:526, includes/admin/settings/class-settings-email.php:86, includes/admin/settings/class-settings-email.php:219
612
  msgid "Email Settings"
613
  msgstr ""
614
 
615
+ #: includes/admin/class-give-settings.php:533, includes/admin/settings/class-settings-email.php:57
616
  msgid "Email Template"
617
  msgstr ""
618
 
619
+ #: includes/admin/class-give-settings.php:534
620
  msgid "Choose a template. Click \"Save Changes\" then \"Preview Donation Receipt\" to see the new template."
621
  msgstr ""
622
 
623
+ #: includes/admin/class-give-settings.php:540, includes/admin/settings/class-settings-email.php:64, includes/scripts.php:312
624
  msgid "Logo"
625
  msgstr ""
626
 
627
+ #: includes/admin/class-give-settings.php:541, includes/admin/settings/class-settings-email.php:65
628
  msgid "Upload or choose a logo to be displayed at the top of the donation receipt emails. Displayed on HTML emails only."
629
  msgstr ""
630
 
631
+ #: includes/admin/class-give-settings.php:546, includes/admin/settings/class-settings-email.php:70
632
  msgid "From Name"
633
  msgstr ""
634
 
635
+ #: includes/admin/class-give-settings.php:547
636
  msgid "The name that appears in the \"From\" field in donation receipt emails."
637
  msgstr ""
638
 
639
+ #: includes/admin/class-give-settings.php:553, includes/admin/settings/class-settings-email.php:77
640
  msgid "From Email"
641
  msgstr ""
642
 
643
+ #: includes/admin/class-give-settings.php:554
644
  msgid "Email to send donation receipts from. This will act as the \"from\" and \"reply-to\" address."
645
  msgstr ""
646
 
647
+ #: includes/admin/class-give-settings.php:559, includes/admin/class-give-settings.php:568, includes/admin/class-give-settings.php:573, includes/admin/settings/class-settings-email.php:107, includes/admin/settings/class-settings-email.php:112, includes/admin/settings/class-settings-email.php:220, includes/admin/shortcodes/shortcode-give-receipt.php:27, includes/admin/shortcodes/shortcode-give-receipt.php:28, includes/emails/functions.php:59, includes/emails/functions.php:84, includes/emails/functions.php:143, includes/emails/functions.php:154, includes/emails/template.php:165, includes/emails/template.php:420, templates/shortcode-receipt.php:116
648
  msgid "Donation Receipt"
649
  msgstr ""
650
 
651
+ #: includes/admin/class-give-settings.php:566, includes/admin/settings/class-settings-email.php:105
652
  msgid "Donation Email Subject"
653
  msgstr ""
654
 
655
+ #: includes/admin/class-give-settings.php:576
656
  msgid "Enter the email that is sent to users after completing a successful donation. HTML is accepted. Available template tags: %s"
657
  msgstr ""
658
 
659
+ #: includes/admin/class-give-settings.php:583, includes/admin/settings/class-settings-email.php:221
660
  msgid "New Donation Notification"
661
  msgstr ""
662
 
663
+ #: includes/admin/class-give-settings.php:590, includes/admin/settings/class-settings-email.php:155
664
  msgid "Donation Notification Subject"
665
  msgstr ""
666
 
667
+ #: includes/admin/class-give-settings.php:591
668
  msgid "Enter the subject line for the donation notification email."
669
  msgstr ""
670
 
671
+ #: includes/admin/class-give-settings.php:593, includes/admin/settings/class-settings-email.php:158
672
  msgid "New Donation - #{payment_id}"
673
  msgstr ""
674
 
675
+ #: includes/admin/class-give-settings.php:597, includes/admin/settings/class-settings-email.php:162
676
  msgid "Donation Notification"
677
  msgstr ""
678
 
679
+ #: includes/admin/class-give-settings.php:600
680
  msgid "Enter the email that is sent to donation notification emails after completion of a donation. HTML is accepted. Available template tags: %s"
681
  msgstr ""
682
 
683
+ #: includes/admin/class-give-settings.php:608, includes/admin/settings/class-settings-email.php:173
684
  msgid "Donation Notification Emails"
685
  msgstr ""
686
 
687
+ #: includes/admin/class-give-settings.php:609, includes/admin/settings/class-settings-email.php:174
688
  msgid "Enter the email address(es) that should receive a notification anytime a donation is made, please only enter <span class=\"give-underline\">one email address per line</span> and <strong>not separated by commas</strong>."
689
  msgstr ""
690
 
691
+ #: includes/admin/class-give-settings.php:615
692
  msgid "Disable Admin Notifications"
693
  msgstr ""
694
 
695
+ #: includes/admin/class-give-settings.php:616
696
  msgid "Check this box if you do not want to receive emails when new donations are made."
697
  msgstr ""
698
 
699
+ #: includes/admin/class-give-settings.php:625
700
  msgid "Give Add-ons Settings"
701
  msgstr ""
702
 
703
+ #: includes/admin/class-give-settings.php:633
704
  msgid "Give Licenses"
705
  msgstr ""
706
 
707
+ #: includes/admin/class-give-settings.php:641, includes/admin/settings/class-settings-advanced.php:133
708
  msgid "Advanced Options"
709
  msgstr ""
710
 
711
+ #: includes/admin/class-give-settings.php:645, includes/admin/settings/class-settings-general.php:97, includes/admin/settings/class-settings-general.php:275
712
  msgid "Access Control"
713
  msgstr ""
714
 
715
+ #: includes/admin/class-give-settings.php:652, includes/admin/settings/class-settings-general.php:57
716
  msgid "Session Lifetime"
717
  msgstr ""
718
 
719
+ #: includes/admin/class-give-settings.php:653, includes/admin/settings/class-settings-general.php:58
720
  msgid "The length of time a user's session is kept alive. Give starts a new session per user upon donation. Sessions allow donors to view their donation receipts without being logged in."
721
  msgstr ""
722
 
723
+ #: includes/admin/class-give-settings.php:656, includes/admin/settings/class-settings-general.php:61
724
  msgid "24 Hours"
725
  msgstr ""
726
 
727
+ #: includes/admin/class-give-settings.php:657, includes/admin/settings/class-settings-general.php:62
728
  msgid "48 Hours"
729
  msgstr ""
730
 
731
+ #: includes/admin/class-give-settings.php:658, includes/admin/settings/class-settings-general.php:63
732
  msgid "72 Hours"
733
  msgstr ""
734
 
735
+ #: includes/admin/class-give-settings.php:659, includes/admin/settings/class-settings-general.php:64
736
  msgid "1 Week"
737
  msgstr ""
738
 
739
+ #: includes/admin/class-give-settings.php:663, includes/admin/settings/class-settings-general.php:68
740
  msgid "Email Access"
741
  msgstr ""
742
 
743
+ #: includes/admin/class-give-settings.php:664, includes/admin/settings/class-settings-general.php:69
744
  msgid "Would you like your donors to be able to access their donation history using only email? Donors whose sessions have expired and do not have an account may still access their donation history via a temporary email access link."
745
  msgstr ""
746
 
747
+ #: includes/admin/class-give-settings.php:670, includes/admin/settings/class-settings-general.php:80
748
  msgid "reCAPTCHA Site Key"
749
  msgstr ""
750
 
751
+ #: includes/admin/class-give-settings.php:672
752
  msgid "If you would like to prevent spam on the email access form navigate to <a href=\"%s\" target=\"_blank\">the reCAPTCHA website</a> and sign up for an API key. The reCAPTCHA uses Google's user-friendly single click verification method."
753
  msgstr ""
754
 
755
+ #: includes/admin/class-give-settings.php:678, includes/admin/settings/class-settings-general.php:88
756
  msgid "reCAPTCHA Secret Key"
757
  msgstr ""
758
 
759
+ #: includes/admin/class-give-settings.php:679
760
  msgid "Please paste the reCAPTCHA secret key here from your manage reCAPTCHA API Keys panel."
761
  msgstr ""
762
 
763
+ #: includes/admin/class-give-settings.php:684
764
  msgid "Data Control"
765
  msgstr ""
766
 
767
+ #: includes/admin/class-give-settings.php:690
768
  msgid "Remove All Data on Uninstall?"
769
  msgstr ""
770
 
771
+ #: includes/admin/class-give-settings.php:691
772
  msgid "When the plugin is deleted, completely remove all Give data."
773
  msgstr ""
774
 
775
+ #: includes/admin/class-give-settings.php:696
776
  msgid "Filter Control"
777
  msgstr ""
778
 
779
+ #: includes/admin/class-give-settings.php:703
780
  msgid "Disable %s filter"
781
  msgstr ""
782
 
783
+ #: includes/admin/class-give-settings.php:705, includes/admin/settings/class-settings-advanced.php:70
784
  msgid "If you are seeing extra social buttons, related posts, or other unwanted elements appearing within your forms then you can disable WordPress' content filter. <a href=\"%1$s\" target=\"_blank\">Learn more</a> about %2$s filter."
785
  msgstr ""
786
 
787
+ #: includes/admin/class-give-settings.php:710
788
  msgid "Script Loading"
789
  msgstr ""
790
 
791
+ #: includes/admin/class-give-settings.php:716
792
  msgid "Load Scripts in Footer?"
793
  msgstr ""
794
 
795
+ #: includes/admin/class-give-settings.php:717
796
  msgid "Check this box if you would like Give to load all frontend JavaScript files in the footer."
797
  msgstr ""
798
 
799
+ #: includes/admin/class-give-settings.php:748
800
  msgid "Please copy and paste this information in your ticket when contacting support."
801
  msgstr ""
802
 
803
+ #: includes/admin/class-give-settings.php:777
804
  msgid "Settings updated."
805
  msgstr ""
806
 
807
+ #: includes/admin/class-give-settings.php:799
808
  msgid "Invalid property: %s"
809
  msgstr ""
810
 
811
+ #: includes/admin/class-give-settings.php:1197
812
  msgid "renew"
813
  msgstr ""
814
 
815
+ #: includes/admin/class-give-settings.php:1200
816
  msgid "expire"
817
  msgstr ""
818
 
819
+ #: includes/admin/class-give-settings.php:1205
820
+ msgid "Your subscription (<a href=\"%1$s\" target=\"_blank\">#%2$d</a>) expired. Please <a href=\"%3$s\" target=\"_blank\" title=\"Renew your license key\">renew your license key</a>"
821
  msgstr ""
822
 
823
+ #: includes/admin/class-give-settings.php:1213
824
+ msgid "Your subscription (<a href=\"%1$s\" target=\"_blank\">#%2$d</a>) will %3$s in %4$s."
825
  msgstr ""
826
 
827
+ #: includes/admin/class-give-settings.php:1222
828
+ msgid "Your subscription (<a href=\"%1$s\" target=\"_blank\">#%2$d</a>) will %3$s on %4$s."
829
  msgstr ""
830
 
831
+ #: includes/admin/class-give-settings.php:1237
832
+ msgid "Your license key expired on %1$s. Please <a href=\"%2$s\" target=\"_blank\" title=\"Renew your license key\">renew your license key</a>."
833
  msgstr ""
834
 
835
+ #: includes/admin/class-give-settings.php:1247
836
  msgid "Invalid license. Please <a href=\"%s\" target=\"_blank\" title=\"Visit account page\">visit your account page</a> and verify it."
837
  msgstr ""
838
 
839
+ #: includes/admin/class-give-settings.php:1256, includes/admin/class-give-settings.php:1266
840
+ msgid "Your %1$s is not active for this URL. Please <a href=\"%2$s\" target=\"_blank\" title=\"Visit account page\">visit your account page</a> to manage your license key URLs."
841
  msgstr ""
842
 
843
+ #: includes/admin/class-give-settings.php:1275
844
+ msgid "This license %1$s does not belong to %2$s."
845
  msgstr ""
846
 
847
+ #: includes/admin/class-give-settings.php:1281
848
  msgid "Your license key has reached it's activation limit. <a href=\"%s\">View possible upgrades</a> now."
849
  msgstr ""
850
 
851
+ #: includes/admin/class-give-settings.php:1294
852
  msgid "License key never expires."
853
  msgstr ""
854
 
855
+ #: includes/admin/class-give-settings.php:1298
856
+ msgid "Your license key expires soon! It expires on %1$s. <a href=\"%2$s\" target=\"_blank\" title=\"Renew license\">Renew your license key</a>."
857
  msgstr ""
858
 
859
+ #: includes/admin/class-give-settings.php:1305
860
  msgid "Your license key expires on %s."
861
  msgstr ""
862
 
863
+ #: includes/admin/class-give-settings.php:1315
864
  msgid "To receive updates, please enter your valid %s license key."
865
  msgstr ""
866
 
867
+ #: includes/admin/class-give-settings.php:1334
868
  msgid "Deactivate License"
869
  msgstr ""
870
 
871
+ #: includes/admin/class-give-settings.php:1343
872
  msgid "To receive updates, please enter your valid license key."
873
  msgstr ""
874
 
875
+ #: includes/admin/class-give-settings.php:1391
876
  msgid "You can create API keys for individual users within their profile edit screen. API keys allow users to use the <a href=\"%1$s\" target=\"_blank\">Give REST API</a> to retrieve donation data in JSON or XML for external applications or devices, such as <a href=\"%2$s\" target=\"_blank\">Zapier</a>."
877
  msgstr ""
878
 
952
  msgid "Delete \"%s\""
953
  msgstr ""
954
 
955
+ #: includes/admin/customers/class-customer-table.php:225, includes/admin/payments/class-payments-table.php:466, includes/admin/payments/class-payments-table.php:558, includes/payments/functions.php:1629
956
  msgid "Delete"
957
  msgstr ""
958
 
960
  msgid "You do not have permission to edit this donor."
961
  msgstr ""
962
 
963
+ #: includes/admin/customers/customer-actions.php:31, includes/admin/customers/customer-actions.php:43, includes/admin/customers/customer-actions.php:195, includes/admin/customers/customer-actions.php:207, includes/admin/customers/customer-actions.php:273, includes/admin/customers/customer-actions.php:286, includes/admin/customers/customer-actions.php:368, includes/admin/customers/customer-actions.php:379, includes/admin/customers/customer-actions.php:545, includes/admin/customers/customer-actions.php:589, includes/admin/forms/dashboard-columns.php:237, includes/admin/payments/actions.php:31, includes/admin/payments/actions.php:88, includes/admin/payments/actions.php:99, includes/admin/payments/actions.php:314, includes/admin/payments/actions.php:334, includes/admin/payments/actions.php:367, includes/admin/payments/actions.php:389, includes/admin/payments/view-order-details.php:24, includes/admin/payments/view-order-details.php:34, includes/admin/reporting/class-api-requests-logs-list-table.php:141, includes/admin/reporting/class-export.php:177, includes/admin/reporting/class-gateway-error-logs-list-table.php:128, includes/admin/reporting/export/class-batch-export.php:133, includes/admin/reporting/export/export-actions.php:26, includes/admin/reporting/pdf-reports.php:31, includes/admin/reporting/pdf-reports.php:35, includes/admin/reporting/tools/class-give-tools-delete-test-transactions.php:157, includes/admin/reporting/tools/class-give-tools-recount-all-stats.php:206, includes/admin/reporting/tools/class-give-tools-recount-customer-stats.php:195, includes/admin/reporting/tools/class-give-tools-recount-form-stats.php:220, includes/admin/reporting/tools/class-give-tools-recount-income.php:156, includes/admin/reporting/tools/class-give-tools-recount-single-customer-stats.php:152, includes/admin/reporting/tools/class-give-tools-reset-stats.php:185, includes/admin/upgrades/upgrade-functions.php:169, includes/admin/upgrades/upgrade-functions.php:281, includes/admin/upgrades/upgrade-functions.php:318, includes/admin/upgrades/upgrade-functions.php:689, includes/api/class-give-api.php:1691, includes/api/class-give-api.php:1696, includes/api/class-give-api.php:1714, includes/api/class-give-api.php:1724, includes/class-give-license-handler.php:326, includes/class-give-license-handler.php:426, includes/emails/actions.php:56, includes/emails/template.php:270, includes/error-tracking.php:50, includes/formatting.php:466, includes/gateways/manual.php:38
964
  msgid "Error"
965
  msgstr ""
966
 
1012
  msgid "An error has occurred. Please try again."
1013
  msgstr ""
1014
 
1015
+ #: includes/admin/customers/customer-actions.php:467, includes/admin/reporting/export/export-actions.php:26, includes/admin/reporting/pdf-reports.php:35, includes/api/class-give-api.php:1691, includes/class-give-license-handler.php:326, includes/class-give-license-handler.php:426, includes/gateways/manual.php:38
1016
  msgid "Nonce verification failed."
1017
  msgstr ""
1018
 
1019
+ #: includes/admin/customers/customer-actions.php:472, includes/login-register.php:254, includes/process-donation.php:540, includes/process-donation.php:714, includes/user-functions.php:368
1020
  msgid "Invalid email."
1021
  msgstr ""
1022
 
1032
  msgid "Email successfully added to donor."
1033
  msgstr ""
1034
 
1035
+ #: includes/admin/customers/customer-actions.php:500, includes/admin/customers/customer-actions.php:552, includes/admin/customers/customer-actions.php:597, includes/payments/functions.php:1612
1036
  msgid "System"
1037
  msgstr ""
1038
 
1040
  msgid "Email address %1$s added by %2$s"
1041
  msgstr ""
1042
 
1043
+ #: includes/admin/customers/customer-actions.php:505, includes/admin/customers/customer-actions.php:598
1044
  msgid "Email address %1$s set as primary by %2$s"
1045
  msgstr ""
1046
 
1052
  msgid "Email address %1$s removed by %2$s"
1053
  msgstr ""
1054
 
 
 
 
 
1055
  #: includes/admin/customers/customer-functions.php:52
1056
  msgid "Donor Profile"
1057
  msgstr ""
1174
  msgid "ID"
1175
  msgstr ""
1176
 
1177
+ #: includes/admin/customers/customers.php:502, includes/admin/forms/class-metabox-form-data.php:201, includes/admin/forms/class-metabox-form-data.php:371, includes/admin/forms/dashboard-columns.php:38, includes/admin/payments/class-payments-table.php:280, includes/admin/reporting/export/class-batch-export-payments.php:55, templates/history-donations.php:34
1178
  msgid "Amount"
1179
  msgstr ""
1180
 
1181
+ #: includes/admin/customers/customers.php:503, includes/admin/forms/dashboard-columns.php:43, includes/admin/payments/class-payments-table.php:279, includes/admin/reporting/class-api-requests-logs-list-table.php:96, includes/admin/reporting/class-export-earnings.php:64, includes/admin/reporting/class-export.php:73, includes/admin/reporting/class-gateway-error-logs-list-table.php:131, includes/admin/reporting/class-sales-logs-list-table.php:118, includes/admin/reporting/export/class-batch-export-payments.php:59, templates/history-donations.php:33
1182
  msgid "Date"
1183
  msgstr ""
1184
 
1185
+ #: includes/admin/customers/customers.php:504, includes/admin/payments/class-payments-table.php:278, includes/admin/reporting/class-sales-logs-list-table.php:116, includes/admin/reporting/export/class-batch-export-forms.php:51, includes/admin/reporting/export/class-batch-export-payments.php:61
1186
  msgid "Status"
1187
  msgstr ""
1188
 
1210
  msgid "View Form %s."
1211
  msgstr ""
1212
 
1213
+ #: includes/admin/customers/customers.php:580, includes/post-types.php:48, includes/post-types.php:379, includes/post-types.php:380, includes/post-types.php:381, includes/post-types.php:382, includes/post-types.php:383
1214
  msgid "View Form"
1215
  msgstr ""
1216
 
1321
  msgid "Dropdown"
1322
  msgstr ""
1323
 
1324
+ #: includes/admin/forms/class-metabox-form-data.php:151, includes/gateways/paypal-standard.php:785, includes/gateways/paypal-standard.php:796, includes/payments/functions.php:1828
1325
  msgid "Custom Amount"
1326
  msgstr ""
1327
 
1329
  msgid "Do you want the user to be able to input their own donation amount?"
1330
  msgstr ""
1331
 
1332
+ #: includes/admin/forms/class-metabox-form-data.php:157, includes/admin/forms/class-metabox-form-data.php:289, includes/admin/forms/class-metabox-form-data.php:314, includes/admin/forms/class-metabox-form-data.php:347, includes/admin/forms/class-metabox-form-data.php:390, includes/admin/forms/class-metabox-form-data.php:428, includes/admin/settings/class-settings-advanced.php:75, includes/admin/settings/class-settings-display.php:62, includes/admin/settings/class-settings-display.php:74, includes/admin/settings/class-settings-display.php:86, includes/admin/settings/class-settings-display.php:117, includes/admin/settings/class-settings-display.php:128, includes/admin/settings/class-settings-display.php:139, includes/admin/settings/class-settings-display.php:150, includes/admin/settings/class-settings-display.php:169, includes/admin/settings/class-settings-display.php:200, includes/admin/settings/class-settings-display.php:211, includes/admin/settings/class-settings-display.php:242, includes/admin/settings/class-settings-email.php:149, includes/admin/settings/class-settings-gateways.php:85, includes/admin/settings/class-settings-gateways.php:96, includes/admin/settings/class-settings-gateways.php:128, includes/admin/settings/class-settings-gateways.php:187, includes/admin/settings/class-settings-general.php:74, includes/admin/tools/views/html-admin-page-system-info.php:421, includes/admin/tools/views/html-admin-page-system-info.php:494, includes/admin/tools/views/html-admin-page-system-info.php:499, includes/admin/tools/views/html-admin-page-system-info.php:514, includes/admin/tools/views/html-admin-page-system-info.php:519, includes/admin/tools/views/html-admin-page-system-info.php:540, includes/admin/tools/views/html-admin-page-system-info.php:545, includes/gateways/offline-donations.php:325
1333
  msgid "Enabled"
1334
  msgstr ""
1335
 
1336
+ #: includes/admin/forms/class-metabox-form-data.php:158, includes/admin/forms/class-metabox-form-data.php:290, includes/admin/forms/class-metabox-form-data.php:315, includes/admin/forms/class-metabox-form-data.php:348, includes/admin/forms/class-metabox-form-data.php:391, includes/admin/forms/class-metabox-form-data.php:429, includes/admin/settings/class-settings-advanced.php:76, includes/admin/settings/class-settings-display.php:63, includes/admin/settings/class-settings-display.php:75, includes/admin/settings/class-settings-display.php:87, includes/admin/settings/class-settings-display.php:118, includes/admin/settings/class-settings-display.php:129, includes/admin/settings/class-settings-display.php:140, includes/admin/settings/class-settings-display.php:151, includes/admin/settings/class-settings-display.php:170, includes/admin/settings/class-settings-display.php:201, includes/admin/settings/class-settings-display.php:212, includes/admin/settings/class-settings-display.php:243, includes/admin/settings/class-settings-email.php:150, includes/admin/settings/class-settings-gateways.php:86, includes/admin/settings/class-settings-gateways.php:97, includes/admin/settings/class-settings-gateways.php:129, includes/admin/settings/class-settings-gateways.php:188, includes/admin/settings/class-settings-general.php:75, includes/admin/tools/views/html-admin-page-system-info.php:421, includes/admin/tools/views/html-admin-page-system-info.php:494, includes/admin/tools/views/html-admin-page-system-info.php:499, includes/admin/tools/views/html-admin-page-system-info.php:514, includes/admin/tools/views/html-admin-page-system-info.php:519, includes/admin/tools/views/html-admin-page-system-info.php:540, includes/admin/tools/views/html-admin-page-system-info.php:545, includes/gateways/offline-donations.php:326
1337
  msgid "Disabled"
1338
  msgstr ""
1339
 
1453
  msgid "Select the <a href=\"%s\" target=\"_blank\">floating labels</a> setting for this Give form. Be aware that if you have the \"Disable CSS\" option enabled, you will need to style the floating labels yourself."
1454
  msgstr ""
1455
 
1456
+ #: includes/admin/forms/class-metabox-form-data.php:313, includes/admin/forms/class-metabox-form-data.php:479, includes/forms/widget.php:184, includes/gateways/offline-donations.php:311
1457
  msgid "Global Option"
1458
  msgstr ""
1459
 
1561
  msgid "Do you want to require the donor to accept terms prior to being able to complete their donation?"
1562
  msgstr ""
1563
 
1564
+ #: includes/admin/forms/class-metabox-form-data.php:480, includes/gateways/offline-donations.php:312
1565
  msgid "Customize"
1566
  msgstr ""
1567
 
1568
+ #: includes/admin/forms/class-metabox-form-data.php:481, includes/gateways/offline-donations.php:313
1569
  msgid "Disable"
1570
  msgstr ""
1571
 
1653
  msgid "Error creating new donor."
1654
  msgstr ""
1655
 
1656
+ #: includes/admin/payments/class-payments-table.php:145
1657
  msgid "Start Date:"
1658
  msgstr ""
1659
 
1660
+ #: includes/admin/payments/class-payments-table.php:148
1661
  msgid "End Date:"
1662
  msgstr ""
1663
 
1664
+ #: includes/admin/payments/class-payments-table.php:151, includes/admin/reporting/logs.php:135
1665
  msgid "Apply"
1666
  msgstr ""
1667
 
1668
+ #: includes/admin/payments/class-payments-table.php:158
1669
  msgid "Clear Filter"
1670
  msgstr ""
1671
 
1672
+ #: includes/admin/payments/class-payments-table.php:160, includes/admin/reporting/logs.php:83, includes/admin/reporting/reports.php:277
1673
  msgid "Search"
1674
  msgstr ""
1675
 
1676
+ #: includes/admin/payments/class-payments-table.php:232, includes/admin/reporting/class-sales-logs-list-table.php:307, includes/class-give-html-elements.php:395
1677
  msgid "All"
1678
  msgstr ""
1679
 
1680
+ #: includes/admin/payments/class-payments-table.php:236
1681
  msgid "Completed"
1682
  msgstr ""
1683
 
1684
+ #: includes/admin/payments/class-payments-table.php:240, includes/payments/functions.php:654
1685
  msgid "Pending"
1686
  msgstr ""
1687
 
1688
+ #: includes/admin/payments/class-payments-table.php:244, includes/payments/functions.php:656, includes/post-types.php:300
1689
  msgid "Refunded"
1690
  msgstr ""
1691
 
1692
+ #: includes/admin/payments/class-payments-table.php:248, includes/payments/functions.php:662, includes/post-types.php:316
1693
  msgid "Revoked"
1694
  msgstr ""
1695
 
1696
+ #: includes/admin/payments/class-payments-table.php:252, includes/payments/functions.php:657, includes/post-types.php:308
1697
  msgid "Failed"
1698
  msgstr ""
1699
 
1700
+ #: includes/admin/payments/class-payments-table.php:256, includes/payments/functions.php:658, includes/post-types.php:324
1701
  msgid "Cancelled"
1702
  msgstr ""
1703
 
1704
+ #: includes/admin/payments/class-payments-table.php:260, includes/payments/functions.php:659, includes/post-types.php:332
1705
  msgid "Abandoned"
1706
  msgstr ""
1707
 
1708
+ #: includes/admin/payments/class-payments-table.php:277, includes/admin/shortcodes/shortcode-give-form.php:27, includes/admin/shortcodes/shortcode-give-form.php:28, includes/post-types.php:54
1709
  msgid "Donation Form"
1710
  msgstr ""
1711
 
1712
+ #: includes/admin/payments/class-payments-table.php:281, includes/admin/reporting/class-gateway-error-logs-list-table.php:132, templates/history-donations.php:35
1713
  msgid "Details"
1714
  msgstr ""
1715
 
1716
+ #: includes/admin/payments/class-payments-table.php:339, includes/admin/payments/class-payments-table.php:377
1717
  msgid "View Donation %s"
1718
  msgstr ""
1719
 
1720
+ #: includes/admin/payments/class-payments-table.php:341
1721
  msgid "by"
1722
  msgstr ""
1723
 
1724
+ #: includes/admin/payments/class-payments-table.php:354, includes/admin/reporting/class-sales-logs-list-table.php:74, includes/admin/reporting/class-sales-logs-list-table.php:310, includes/admin/shortcodes/abstract-shortcode-generator.php:296, includes/class-give-html-elements.php:130, includes/forms/widget.php:155
1725
  msgid "Untitled (#%s)"
1726
  msgstr ""
1727
 
1728
+ #: includes/admin/payments/class-payments-table.php:405
1729
  msgid "(unknown)"
1730
  msgstr ""
1731
 
1732
+ #: includes/admin/payments/class-payments-table.php:408
1733
  msgid "Email donor"
1734
  msgstr ""
1735
 
1736
+ #: includes/admin/payments/class-payments-table.php:447
1737
  msgid "Resend Donation %s Receipt"
1738
  msgstr ""
1739
 
1740
+ #: includes/admin/payments/class-payments-table.php:448, includes/admin/payments/view-order-details.php:218
1741
  msgid "Resend Receipt"
1742
  msgstr ""
1743
 
1744
+ #: includes/admin/payments/class-payments-table.php:465
1745
  msgid "Delete Donation %s"
1746
  msgstr ""
1747
 
1748
+ #: includes/admin/payments/class-payments-table.php:486, includes/admin/payments/view-order-details.php:59, includes/admin/reporting/class-sales-logs-list-table.php:90
1749
  msgid "This donation was made in test mode."
1750
  msgstr ""
1751
 
1752
+ #: includes/admin/payments/class-payments-table.php:486, includes/admin/reporting/class-sales-logs-list-table.php:90
1753
  msgid "Test"
1754
  msgstr ""
1755
 
1756
+ #: includes/admin/payments/class-payments-table.php:543
1757
  msgid "(donor missing)"
1758
  msgstr ""
1759
 
1760
+ #: includes/admin/payments/class-payments-table.php:559
1761
  msgid "Set To Completed"
1762
  msgstr ""
1763
 
1764
+ #: includes/admin/payments/class-payments-table.php:560
1765
  msgid "Set To Pending"
1766
  msgstr ""
1767
 
1768
+ #: includes/admin/payments/class-payments-table.php:561
1769
  msgid "Set To Refunded"
1770
  msgstr ""
1771
 
1772
+ #: includes/admin/payments/class-payments-table.php:562
1773
  msgid "Set To Revoked"
1774
  msgstr ""
1775
 
1776
+ #: includes/admin/payments/class-payments-table.php:563
1777
  msgid "Set To Failed"
1778
  msgstr ""
1779
 
1780
+ #: includes/admin/payments/class-payments-table.php:564
1781
  msgid "Set To Cancelled"
1782
  msgstr ""
1783
 
1784
+ #: includes/admin/payments/class-payments-table.php:565
1785
  msgid "Set To Abandoned"
1786
  msgstr ""
1787
 
1788
+ #: includes/admin/payments/class-payments-table.php:566
1789
  msgid "Resend Email Receipts"
1790
  msgstr ""
1791
 
2533
  msgid "You do not have permission to delete test transactions."
2534
  msgstr ""
2535
 
2536
+ #: includes/admin/reporting/tools/class-give-tools-delete-test-transactions.php:178
2537
  msgid "Test transactions successfully deleted."
2538
  msgstr ""
2539
 
2540
+ #: includes/admin/reporting/tools/class-give-tools-recount-all-stats.php:206, includes/admin/reporting/tools/class-give-tools-recount-customer-stats.php:195, includes/admin/reporting/tools/class-give-tools-recount-form-stats.php:220, includes/admin/reporting/tools/class-give-tools-recount-income.php:156, includes/admin/reporting/tools/class-give-tools-recount-single-customer-stats.php:152
2541
  msgid "You do not have permission to recount stats."
2542
  msgstr ""
2543
 
2553
  msgid "Donation counts and income amount statistics successfully recounted for \"%s\"."
2554
  msgstr ""
2555
 
2556
+ #: includes/admin/reporting/tools/class-give-tools-recount-income.php:169
2557
  msgid "Income stats have been successfully recounted."
2558
  msgstr ""
2559
 
2561
  msgid "You do not have permission to reset data."
2562
  msgstr ""
2563
 
2564
+ #: includes/admin/reporting/tools/class-give-tools-reset-stats.php:206
2565
  msgid "Donation forms, income, donations counts, and logs successfully reset."
2566
  msgstr ""
2567
 
2805
  msgid "PayPal Standard Gateway Settings"
2806
  msgstr ""
2807
 
2808
+ #: includes/admin/settings/class-settings-gateways.php:151, includes/gateways/offline-donations.php:351
2809
  msgid "Available template tags:"
2810
  msgstr ""
2811
 
3690
  msgid "The parent theme developers URL."
3691
  msgstr ""
3692
 
3693
+ #: includes/admin/upgrades/upgrade-functions.php:95
3694
  msgid "Give needs to upgrade the donor database, click <a href=\"%s\">here</a> to start the upgrade."
3695
  msgstr ""
3696
 
3697
+ #: includes/admin/upgrades/upgrade-functions.php:104
3698
  msgid "Give needs to upgrade the donations database, click <a href=\"%s\">here</a> to start the upgrade."
3699
  msgstr ""
3700
 
3701
+ #: includes/admin/upgrades/upgrade-functions.php:115
3702
  msgid "Give needs to complete a database upgrade that was previously started, click <a href=\"%s\">here</a> to resume the upgrade."
3703
  msgstr ""
3704
 
3705
+ #: includes/admin/upgrades/upgrade-functions.php:127
3706
  msgid "Give needs to upgrade the form database, click %1$shere%2$s to start the upgrade."
3707
  msgstr ""
3708
 
3709
+ #: includes/admin/upgrades/upgrade-functions.php:143
3710
  msgid "Please make sure to create a database backup before initiating the upgrade."
3711
  msgstr ""
3712
 
3713
+ #: includes/admin/upgrades/upgrade-functions.php:169, includes/admin/upgrades/upgrade-functions.php:281, includes/admin/upgrades/upgrade-functions.php:318, includes/admin/upgrades/upgrade-functions.php:689
3714
  msgid "You do not have permission to do Give upgrades."
3715
  msgstr ""
3716
 
3958
  msgid "You do not have permission to %s API keys for this user."
3959
  msgstr ""
3960
 
3961
+ #: includes/class-give-cache.php:101, includes/class-give-cache.php:143, includes/class-give-cache.php:191
3962
+ msgid "Cache key format should be give_cache_*"
3963
+ msgstr ""
3964
+
3965
  #: includes/class-give-cli-commands.php:102
3966
  msgid "Give Version: "
3967
  msgstr ""
4082
  msgid "Once Weekly"
4083
  msgstr ""
4084
 
4085
+ #: includes/class-give-cus