The Plus Addons for Elementor | FREE Elementor Widgets & Elementor Templates, Header Menu, Blog Post Builder, Dark Mode, Full-Page Scroll, Cross Domain Copy - Version 1.1.1

Version Description

  • Compatibility Issue Resolved
  • Minor Bug Fixes
Download this release

Release Info

Developer posimyththemes
Plugin Icon wp plugin The Plus Addons for Elementor | FREE Elementor Widgets & Elementor Templates, Header Menu, Blog Post Builder, Dark Mode, Full-Page Scroll, Cross Domain Copy
Version 1.1.1
Comparing to
See all releases

Code changes from version 1.0.0 to 1.1.1

Files changed (69) hide show
  1. assets/js/extra/app.min.js +9 -9
  2. assets/js/extra/easepack.min.js +0 -12
  3. assets/js/extra/imagesloaded.pkgd.min.js +2 -2
  4. assets/js/extra/isotope.pkgd.min.js +12 -0
  5. assets/js/extra/packery-mode.pkgd.min.js +2 -2
  6. includes/plus-options/cmb2-conditionals.js +2 -0
  7. includes/plus-options/includes.php +3 -3
  8. includes/plus-options/metabox/bootstrap.php +84 -0
  9. includes/plus-options/metabox/css/cmb2-display-rtl.css +45 -0
  10. includes/plus-options/metabox/css/cmb2-display-rtl.min.css +2 -0
  11. includes/plus-options/metabox/css/cmb2-display.css +45 -0
  12. includes/plus-options/metabox/css/cmb2-display.css.map +7 -0
  13. includes/plus-options/metabox/css/cmb2-display.min.css +2 -0
  14. includes/plus-options/metabox/css/cmb2-front-rtl.css +1331 -0
  15. includes/plus-options/metabox/css/cmb2-front-rtl.min.css +2 -0
  16. includes/plus-options/metabox/css/cmb2-front.css +1331 -0
  17. includes/plus-options/metabox/css/cmb2-front.css.map +7 -0
  18. includes/plus-options/metabox/css/cmb2-front.min.css +2 -0
  19. includes/plus-options/metabox/css/cmb2-rtl.css +2098 -0
  20. includes/plus-options/metabox/css/cmb2-rtl.min.css +2 -0
  21. includes/plus-options/metabox/css/cmb2.css +2098 -0
  22. includes/plus-options/metabox/css/cmb2.css.map +7 -0
  23. includes/plus-options/metabox/css/cmb2.min.css +55 -0
  24. includes/plus-options/metabox/css/index.php +2 -0
  25. includes/plus-options/metabox/css/sass/cmb2-display.scss +1 -0
  26. includes/plus-options/metabox/css/sass/cmb2-front.scss +14 -0
  27. includes/plus-options/metabox/css/sass/cmb2.scss +12 -0
  28. includes/plus-options/metabox/css/sass/index.php +2 -0
  29. includes/plus-options/metabox/css/sass/partials/_collapsible_ui.scss +56 -0
  30. includes/plus-options/metabox/css/sass/partials/_context_metaboxes.scss +107 -0
  31. includes/plus-options/metabox/css/sass/partials/_display.scss +34 -0
  32. includes/plus-options/metabox/css/sass/partials/_front.scss +56 -0
  33. includes/plus-options/metabox/css/sass/partials/_jquery_ui.scss +457 -0
  34. includes/plus-options/metabox/css/sass/partials/_main_wrap.scss +530 -0
  35. includes/plus-options/metabox/css/sass/partials/_misc.scss +29 -0
  36. includes/plus-options/metabox/css/sass/partials/_mixins.scss +51 -0
  37. includes/plus-options/metabox/css/sass/partials/_new_term.scss +31 -0
  38. includes/plus-options/metabox/css/sass/partials/_options-page.scss +71 -0
  39. includes/plus-options/metabox/css/sass/partials/_post_metaboxes.scss +84 -0
  40. includes/plus-options/metabox/css/sass/partials/_sidebar_placements.scss +146 -0
  41. includes/plus-options/metabox/css/sass/partials/_variables.scss +25 -0
  42. includes/plus-options/metabox/css/sass/partials/index.php +2 -0
  43. includes/plus-options/metabox/helpers/cmb_Meta_Box_ajax.php +3 -3
  44. includes/plus-options/metabox/images/index.php +2 -0
  45. includes/plus-options/metabox/includes/CMB2.php +1764 -0
  46. includes/plus-options/metabox/includes/CMB2_Ajax.php +323 -0
  47. includes/plus-options/metabox/includes/CMB2_Base.php +533 -0
  48. includes/plus-options/metabox/includes/CMB2_Boxes.php +139 -0
  49. includes/plus-options/metabox/includes/CMB2_Field.php +1621 -0
  50. includes/plus-options/metabox/includes/CMB2_Field_Display.php +484 -0
  51. includes/plus-options/metabox/includes/CMB2_Hookup_Base.php +105 -0
  52. includes/plus-options/metabox/includes/CMB2_JS.php +245 -0
  53. includes/plus-options/metabox/includes/CMB2_Options.php +250 -0
  54. includes/plus-options/metabox/includes/CMB2_Options_Hookup.php +360 -0
  55. includes/plus-options/metabox/includes/CMB2_Sanitize.php +587 -0
  56. includes/plus-options/metabox/includes/CMB2_Show_Filters.php +179 -0
  57. includes/plus-options/metabox/includes/CMB2_Types.php +662 -0
  58. includes/plus-options/metabox/includes/CMB2_Utils.php +669 -0
  59. includes/plus-options/metabox/includes/CMB2_hookup.php +933 -0
  60. includes/plus-options/metabox/includes/helper-functions.php +426 -0
  61. includes/plus-options/metabox/includes/index.php +2 -0
  62. includes/plus-options/metabox/includes/rest-api/CMB2_REST.php +794 -0
  63. includes/plus-options/metabox/includes/rest-api/CMB2_REST_Controller.php +448 -0
  64. includes/plus-options/metabox/includes/rest-api/CMB2_REST_Controller_Boxes.php +270 -0
  65. includes/plus-options/metabox/includes/rest-api/CMB2_REST_Controller_Fields.php +502 -0
  66. includes/plus-options/metabox/includes/shim/WP_REST_Controller.php +541 -0
  67. includes/plus-options/metabox/includes/types/CMB2_Type_Base.php +177 -0
  68. includes/plus-options/metabox/includes/types/CMB2_Type_Checkbox.php +74 -0
  69. includes/plus-options/metabox/includes/types/CMB2_Type_Colorpicker.php +89 -0
assets/js/extra/app.min.js CHANGED
@@ -1,7 +1,7 @@
1
- /*!Waypoints - 4.0.1*/
2
  !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
3
 
4
- /*! Velocity.min.js (1.5.0)*/
5
  !function(a){"use strict";function b(a){var b=a.length,d=c.type(a);return"function"!==d&&!c.isWindow(a)&&(!(1!==a.nodeType||!b)||("array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a))}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return a&&a===a.window},c.type=function(a){return a?"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a:a+""},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return b===undefined||f.call(a,b)},c.each=function(a,c,d){var e=0,f=a.length,g=b(a);if(d){if(g)for(;e<f&&c.apply(a[e],d)!==!1;e++);else for(e in a)if(a.hasOwnProperty(e)&&c.apply(a[e],d)===!1)break}else if(g)for(;e<f&&c.call(a[e],e,a[e])!==!1;e++);else for(e in a)if(a.hasOwnProperty(e)&&c.call(a[e],e,a[e])===!1)break;return a},c.data=function(a,b,e){if(e===undefined){var f=a[c.expando],g=f&&d[f];if(b===undefined)return g;if(g&&b in g)return g[b]}else if(b!==undefined){var h=a[c.expando]||(a[c.expando]=++c.uuid);return d[h]=d[h]||{},d[h][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&(b?c.each(b,function(a,b){delete f[b]}):delete d[e])},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);i<j;i++)if(f=arguments[i])for(e in f)f.hasOwnProperty(e)&&(a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):d!==undefined&&(h[e]=d)));return h},c.queue=function(a,d,e){if(a){d=(d||"fx")+"queue";var f=c.data(a,d);return e?(!f||c.isArray(e)?f=c.data(a,d,function(a,c){var d=c||[];return a&&(b(Object(a))?function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;)a[e++]=b[d++];if(c!==c)for(;b[d]!==undefined;)a[e++]=b[d++];a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}(e)):f.push(e),f):f||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){var a=this[0],b=function(a){for(var b=a.offsetParent;b&&"html"!==b.nodeName.toLowerCase()&&b.style&&"static"===b.style.position;)b=b.offsetParent;return b||document}(a),d=this.offset(),e=/^(?:body|html)$/i.test(b.nodeName)?{top:0,left:0}:c(b).offset();return d.top-=parseFloat(a.style.marginTop)||0,d.left-=parseFloat(a.style.marginLeft)||0,b.style&&(e.top+=parseFloat(b.style.borderTopWidth)||0,e.left+=parseFloat(b.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;i<h.length;i++)e["[object "+h[i]+"]"]=h[i].toLowerCase();c.fn.init.prototype=c.fn,a.Velocity={Utilities:c}}}(window),function(a){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a():"function"==typeof define&&define.amd?define(a):a()}(function(){"use strict";return function(a,b,c,d){function e(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function f(a){return u.isWrapped(a)?a=s.call(a):u.isNode(a)&&(a=[a]),a}function g(a){var b=o.data(a,"velocity");return null===b?d:b}function h(a,b){var c=g(a);c&&c.delayTimer&&!c.delayPaused&&(c.delayRemaining=c.delay-b+c.delayBegin,c.delayPaused=!0,clearTimeout(c.delayTimer.setTimeout))}function i(a,b){var c=g(a);c&&c.delayTimer&&c.delayPaused&&(c.delayPaused=!1,c.delayTimer.setTimeout=setTimeout(c.delayTimer.next,c.delayRemaining))}function j(a){return function(b){return Math.round(b*a)*(1/a)}}function k(a,c,d,e){function f(a,b){return 1-3*b+3*a}function g(a,b){return 3*b-6*a}function h(a){return 3*a}function i(a,b,c){return((f(b,c)*a+g(b,c))*a+h(b))*a}function j(a,b,c){return 3*f(b,c)*a*a+2*g(b,c)*a+h(b)}function k(b,c){for(var e=0;e<p;++e){var f=j(c,a,d);if(0===f)return c;c-=(i(c,a,d)-b)/f}return c}function l(){for(var b=0;b<t;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do{g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g}while(Math.abs(f)>r&&++h<s);return g}function n(b){for(var c=0,e=1,f=t-1;e!==f&&x[e]<=b;++e)c+=u;--e;var g=(b-x[e])/(x[e+1]-x[e]),h=c+g*u,i=j(h,a,d);return i>=q?k(b,h):0===i?h:m(b,c,c+u)}function o(){y=!0,a===c&&d===e||l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;w<4;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function l(a,b){var c=a;return u.isString(a)?y.Easings[a]||(c=!1):c=u.isArray(a)&&1===a.length?j.apply(null,a):u.isArray(a)&&2===a.length?z.apply(null,a.concat([b])):!(!u.isArray(a)||4!==a.length)&&k.apply(null,a),c===!1&&(c=y.Easings[y.defaults.easing]?y.defaults.easing:x),c}function m(a){if(a){var b=y.timestamp&&a!==!0?a:r.now(),c=y.State.calls.length;c>1e4&&(y.State.calls=e(y.State.calls),c=y.State.calls.length);for(var f=0;f<c;f++)if(y.State.calls[f]){var h=y.State.calls[f],i=h[0],j=h[2],k=h[3],l=!!k,q=null,s=h[5],t=h[6];if(k||(k=y.State.calls[f][3]=b-16),s){if(s.resume!==!0)continue;k=h[3]=Math.round(b-t-16),h[5]=null}t=h[6]=b-k;for(var v=Math.min(t/j.duration,1),w=0,x=i.length;w<x;w++){var z=i[w],B=z.element;if(g(B)){var D=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var E=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];o.each(E,function(a,b){A.setPropertyValue(B,"display",b)})}A.setPropertyValue(B,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&A.setPropertyValue(B,"visibility",j.visibility);for(var F in z)if(z.hasOwnProperty(F)&&"element"!==F){var G,H=z[F],I=u.isString(H.easing)?y.Easings[H.easing]:H.easing;if(u.isString(H.pattern)){var J=1===v?function(a,b,c){var d=H.endValue[b];return c?Math.round(d):d}:function(a,b,c){var d=H.startValue[b],e=H.endValue[b]-d,f=d+e*I(v,j,e);return c?Math.round(f):f};G=H.pattern.replace(/{(\d+)(!)?}/g,J)}else if(1===v)G=H.endValue;else{var K=H.endValue-H.startValue;G=H.startValue+K*I(v,j,K)}if(!l&&G===H.currentValue)continue;if(H.currentValue=G,"tween"===F)q=G;else{var L;if(A.Hooks.registered[F]){L=A.Hooks.getRoot(F);var M=g(B).rootPropertyValueCache[L];M&&(H.rootPropertyValue=M)}var N=A.setPropertyValue(B,F,H.currentValue+(p<9&&0===parseFloat(G)?"":H.unitType),H.rootPropertyValue,H.scrollData);A.Hooks.registered[F]&&(A.Normalizations.registered[L]?g(B).rootPropertyValueCache[L]=A.Normalizations.registered[L]("extract",null,N[1]):g(B).rootPropertyValueCache[L]=N[1]),"transform"===N[0]&&(D=!0)}}j.mobileHA&&g(B).transformCache.translate3d===d&&(g(B).transformCache.translate3d="(0px, 0px, 0px)",D=!0),D&&A.flushTransformCache(B)}}j.display!==d&&"none"!==j.display&&(y.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(y.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],v,Math.max(0,k+j.duration-b),k,q),1===v&&n(f)}}y.State.isTicking&&C(m)}function n(a,b){if(!y.State.calls[a])return!1;for(var c=y.State.calls[a][0],e=y.State.calls[a][1],f=y.State.calls[a][2],h=y.State.calls[a][4],i=!1,j=0,k=c.length;j<k;j++){var l=c[j].element;b||f.loop||("none"===f.display&&A.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&A.setPropertyValue(l,"visibility",f.visibility));var m=g(l);if(f.loop!==!0&&(o.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(o.queue(l)[1]))&&m){m.isAnimating=!1,m.rootPropertyValueCache={};var n=!1;o.each(A.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=m.transformCache[b];m.transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete m.transformCache[b])}),f.mobileHA&&(n=!0,delete m.transformCache.translate3d),n&&A.flushTransformCache(l),A.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(r){setTimeout(function(){throw r},1)}h&&f.loop!==!0&&h(e),m&&f.loop===!0&&!b&&(o.each(m.tweensContainer,function(a,b){if(/^rotate/.test(a)&&(parseFloat(b.startValue)-parseFloat(b.endValue))%360==0){var c=b.startValue;b.startValue=b.endValue,b.endValue=c}/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),y(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&o.dequeue(l,f.queue)}y.State.calls[a]=!1;for(var p=0,q=y.State.calls.length;p<q;p++)if(y.State.calls[p]!==!1){i=!0;break}i===!1&&(y.State.isTicking=!1,delete y.State.calls,y.State.calls=[])}var o,p=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="<!--[if IE "+a+"]><span></span><![endif]-->",b.getElementsByTagName("span").length)return b=null,a}return d}(),q=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),r=function(){var a=b.performance||{};if("function"!=typeof a.now){var c=a.timing&&a.timing.navigationStart?a.timing.navigationStart:(new Date).getTime();a.now=function(){return(new Date).getTime()-c}}return a}(),s=function(){var a=Array.prototype.slice;try{return a.call(c.documentElement),a}catch(b){return function(b,c){var d=this.length;if("number"!=typeof b&&(b=0),"number"!=typeof c&&(c=d),this.slice)return a.call(this,b,c);var e,f=[],g=b>=0?b:Math.max(0,d+b),h=c<0?d+c:Math.min(c,d),i=h-g;if(i>0)if(f=new Array(i),this.charAt)for(e=0;e<i;e++)f[e]=this.charAt(g+e);else for(e=0;e<i;e++)f[e]=this[g+e];return f}}}(),t=function(){return Array.prototype.includes?function(a,b){return a.includes(b)}:Array.prototype.indexOf?function(a,b){return a.indexOf(b)>=0}:function(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return!0;return!1}},u={isNumber:function(a){return"number"==typeof a},isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isWrapped:function(a){return a&&a!==b&&u.isNumber(a.length)&&!u.isString(a)&&!u.isFunction(a)&&!u.isNode(a)&&(0===a.length||u.isNode(a[0]))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}},v=!1;if(a.fn&&a.fn.jquery?(o=a,v=!0):o=b.Velocity.Utilities,p<=8&&!v)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(p<=7)return void(jQuery.fn.velocity=jQuery.fn.animate);var w=400,x="swing",y={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[],delayedElements:{count:0}},CSS:{},Utilities:o,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:w,easing:x,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0,promiseRejectEmpty:!0},init:function(a){o.data(a,"velocity",{isSVG:u.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:5,patch:0},debug:!1,timestamp:!0,pauseAll:function(a){var b=(new Date).getTime();o.each(y.State.calls,function(b,c){if(c){if(a!==d&&(c[2].queue!==a||c[2].queue===!1))return!0;c[5]={resume:!1}}}),o.each(y.State.delayedElements,function(a,c){c&&h(c,b)})},resumeAll:function(a){var b=(new Date).getTime();o.each(y.State.calls,function(b,c){if(c){if(a!==d&&(c[2].queue!==a||c[2].queue===!1))return!0;c[5]&&(c[5].resume=!0)}}),o.each(y.State.delayedElements,function(a,c){c&&i(c,b)})}};b.pageYOffset!==d?(y.State.scrollAnchor=b,y.State.scrollPropertyLeft="pageXOffset",y.State.scrollPropertyTop="pageYOffset"):(y.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,y.State.scrollPropertyLeft="scrollLeft",y.State.scrollPropertyTop="scrollTop");var z=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*.016):g=.016;;)if(h=c(h||i,g),j.push(1+h.x),k+=16,!(Math.abs(h.x)>1e-4&&Math.abs(h.v)>1e-4))break;return f?function(a){return j[a*(j.length-1)|0]}:k}}();y.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},o.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){y.Easings[b[0]]=k.apply(null,b[1])});var A=y.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a<A.Lists.colors.length;a++){var b="color"===A.Lists.colors[a]?"0 0 0 1":"255 255 255 1";A.Hooks.templates[A.Lists.colors[a]]=["Red Green Blue Alpha",b]}var c,d,e;if(p)for(c in A.Hooks.templates)if(A.Hooks.templates.hasOwnProperty(c)){d=A.Hooks.templates[c],e=d[0].split(" ");var f=d[1].match(A.RegEx.valueSplit);"Color"===e[0]&&(e.push(e.shift()),f.push(f.shift()),A.Hooks.templates[c]=[e.join(" "),f.join(" ")])}for(c in A.Hooks.templates)if(A.Hooks.templates.hasOwnProperty(c)){d=A.Hooks.templates[c],e=d[0].split(" ");for(var g in e)if(e.hasOwnProperty(g)){var h=c+e[g],i=g;A.Hooks.registered[h]=[c,i]}}},getRoot:function(a){var b=A.Hooks.registered[a];return b?b[0]:a},getUnit:function(a,b){var c=(a.substr(b||0,5).match(/^[a-z%]+/)||[])[0]||"";return c&&t(A.Lists.units,c)?c:""},fixColors:function(a){return a.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g,function(a,b,c){return A.Lists.colorNames.hasOwnProperty(c)?(b?b:"rgba(")+A.Lists.colorNames[c]+(b?"":",1)"):b+c})},cleanRootPropertyValue:function(a,b){return A.RegEx.valueUnwrap.test(b)&&(b=b.match(A.RegEx.valueUnwrap)[1]),A.Values.isCSSNullValue(b)&&(b=A.Hooks.templates[a][1]),b},extractValue:function(a,b){var c=A.Hooks.registered[a];if(c){var d=c[0],e=c[1];return b=A.Hooks.cleanRootPropertyValue(d,b),b.toString().match(A.RegEx.valueSplit)[e]}return b},injectValue:function(a,b,c){var d=A.Hooks.registered[a];if(d){var e,f=d[0],g=d[1];return c=A.Hooks.cleanRootPropertyValue(f,c),e=c.toString().match(A.RegEx.valueSplit),e[g]=b,e.join(" ")}return c}},Normalizations:{registered:{clip:function(a,b,c){switch(a){case"name":return"clip";case"extract":var d;return A.RegEx.wrappedValueAlreadyExtracted.test(c)?d=c:(d=c.toString().match(A.RegEx.valueUnwrap),d=d?d[1].replace(/,(\s+)?/g," "):c),d;case"inject":return"rect("+c+")"}},blur:function(a,b,c){switch(a){case"name":return y.State.isFirefox?"filter":"-webkit-filter";case"extract":var d=parseFloat(c);if(!d&&0!==d){var e=c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);d=e?e[1]:0}return d;case"inject":return parseFloat(c)?"blur("+c+")":"none"}},opacity:function(a,b,c){if(p<=8)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){function a(a,b,c){if("border-box"===A.getPropertyValue(b,"boxSizing").toString().toLowerCase()===(c||!1)){var d,e,f=0,g="width"===a?["Left","Right"]:["Top","Bottom"],h=["padding"+g[0],"padding"+g[1],"border"+g[0]+"Width","border"+g[1]+"Width"];for(d=0;d<h.length;d++)e=parseFloat(A.getPropertyValue(b,h[d])),isNaN(e)||(f+=e);return c?-f:f}return 0}function b(b,c){return function(d,e,f){switch(d){case"name":return b;case"extract":return parseFloat(f)+a(b,e,c);case"inject":return parseFloat(f)-a(b,e,c)+"px"}}}p&&!(p>9)||y.State.isGingerbread||(A.Lists.transformsBase=A.Lists.transformsBase.concat(A.Lists.transforms3D));for(var c=0;c<A.Lists.transformsBase.length;c++)!function(){var a=A.Lists.transformsBase[c];A.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return"transform";case"extract":return g(c)===d||g(c).transformCache[a]===d?/^scale/i.test(a)?1:0:g(c).transformCache[a].replace(/[()]/g,"");case"inject":var f=!1;switch(a.substr(0,a.length-1)){case"translate":f=!/(%|px|em|rem|vw|vh|\d)$/i.test(e);break;case"scal":case"scale":y.State.isAndroid&&g(c).transformCache[a]===d&&e<1&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[a]="("+e+")"),g(c).transformCache[a]}}}();for(var e=0;e<A.Lists.colors.length;e++)!function(){var a=A.Lists.colors[e];A.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return a;case"extract":var f;if(A.RegEx.wrappedValueAlreadyExtracted.test(e))f=e;else{var g,h={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(e)?g=h[e]!==d?h[e]:h.black:A.RegEx.isHex.test(e)?g="rgb("+A.Values.hexToRgb(e).join(" ")+")":/^rgba?\(/i.test(e)||(g=h.black),f=(g||e).toString().match(A.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return(!p||p>8)&&3===f.split(" ").length&&(f+=" 1"),f;case"inject":return/^rgb/.test(e)?e:(p<=8?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(p<=8?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}}();A.Normalizations.registered.innerWidth=b("width",!0),A.Normalizations.registered.innerHeight=b("height",!0),A.Normalizations.registered.outerWidth=b("width"),A.Normalizations.registered.outerHeight=b("height")}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(p||y.State.isAndroid&&!y.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(y.State.prefixMatches[a])return[y.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;c<d;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),u.isString(y.State.prefixElement.style[e]))return y.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d}),b=c.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return!a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){if(a)if(a.classList)a.classList.add(b);else if(u.isString(a.className))a.className+=(a.className.length?" ":"")+b;else{var c=a.getAttribute(p<=7?"className":"class")||"";a.setAttribute("class",c+(c?" ":"")+b)}},removeClass:function(a,b){if(a)if(a.classList)a.classList.remove(b);else if(u.isString(a.className))a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ");else{var c=a.getAttribute(p<=7?"className":"class")||"";a.setAttribute("class",c.replace(new RegExp("(^|s)"+b.split(" ").join("|")+"(s|$)","gi")," "))}}},getPropertyValue:function(a,c,e,f){function h(a,c){var e=0;if(p<=8)e=o.css(a,c);else{var i=!1;/^(width|height)$/.test(c)&&0===A.getPropertyValue(a,"display")&&(i=!0,A.setPropertyValue(a,"display",A.Values.getDisplayType(a)));var j=function(){i&&A.setPropertyValue(a,"display","none")};if(!f){if("height"===c&&"border-box"!==A.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(A.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(A.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(A.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(A.getPropertyValue(a,"paddingBottom"))||0);return j(),k}if("width"===c&&"border-box"!==A.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(A.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(A.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(A.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(A.getPropertyValue(a,"paddingRight"))||0);return j(),l}}var m;m=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),e=9===p&&"filter"===c?m.getPropertyValue(c):m[c],""!==e&&null!==e||(e=a.style[c]),j()}if("auto"===e&&/^(top|right|bottom|left)$/i.test(c)){var n=h(a,"position");("fixed"===n||"absolute"===n&&/top|left/i.test(c))&&(e=o(a).position()[c]+"px")}return e}var i;if(A.Hooks.registered[c]){var j=c,k=A.Hooks.getRoot(j);e===d&&(e=A.getPropertyValue(a,A.Names.prefixCheck(k)[0])),A.Normalizations.registered[k]&&(e=A.Normalizations.registered[k]("extract",a,e)),i=A.Hooks.extractValue(j,e)}else if(A.Normalizations.registered[c]){var l,m;l=A.Normalizations.registered[c]("name",a),"transform"!==l&&(m=h(a,A.Names.prefixCheck(l)[0]),A.Values.isCSSNullValue(m)&&A.Hooks.templates[c]&&(m=A.Hooks.templates[c][1])),i=A.Normalizations.registered[c]("extract",a,m)}if(!/^[\d-]/.test(i)){var n=g(a);if(n&&n.isSVG&&A.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(q){i=0}else i=a.getAttribute(c);else i=h(a,A.Names.prefixCheck(c)[0])}return A.Values.isCSSNullValue(i)&&(i=0),y.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(A.Normalizations.registered[c]&&"transform"===A.Normalizations.registered[c]("name",a))A.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(A.Hooks.registered[c]){var i=c,j=A.Hooks.getRoot(c);e=e||A.getPropertyValue(a,j),d=A.Hooks.injectValue(i,d,e),c=j}if(A.Normalizations.registered[c]&&(d=A.Normalizations.registered[c]("inject",a,d),c=A.Normalizations.registered[c]("name",a)),h=A.Names.prefixCheck(c)[0],p<=8)try{a.style[h]=d}catch(l){y.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else{var k=g(a);k&&k.isSVG&&A.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d}y.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){var b="",c=g(a);if((p||y.State.isAndroid&&!y.State.isChrome)&&c&&c.isSVG){var d=function(b){return parseFloat(A.getPropertyValue(a,b))},e={translate:[d("translateX"),d("translateY")],skewX:[d("skewX")],skewY:[d("skewY")],scale:1!==d("scale")?[d("scale"),d("scale")]:[d("scaleX"),d("scaleY")],rotate:[d("rotateZ"),0,0]};o.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),e[a]&&(b+=a+"("+e[a].join(" ")+") ",delete e[a])})}else{var f,h;o.each(g(a).transformCache,function(c){if(f=g(a).transformCache[c],"transformPerspective"===c)return h=f,!0;9===p&&"rotateZ"===c&&(c="rotate"),b+=c+f+" "}),h&&(b="perspective"+h+" "+b)}A.setPropertyValue(a,"transform",b)}};A.Hooks.register(),A.Normalizations.register(),y.hook=function(a,b,c){var e;return a=f(a),o.each(a,function(a,f){if(g(f)===d&&y.init(f),c===d)e===d&&(e=A.getPropertyValue(f,b));else{var h=A.setPropertyValue(f,b,c);"transform"===h[0]&&y.CSS.flushTransformCache(f),e=h}}),e};var B=function(){function a(){return k?z.promise||null:p}function e(a,e){function f(f){var k,n;if(i.begin&&0===D)try{i.begin.call(r,r)}catch(V){setTimeout(function(){throw V},1)}if("scroll"===G){var p,q,w,x=/^x$/i.test(i.axis)?"Left":"Top",B=parseFloat(i.offset)||0;i.container?u.isWrapped(i.container)||u.isNode(i.container)?(i.container=i.container[0]||i.container,p=i.container["scroll"+x],w=p+o(a).position()[x.toLowerCase()]+B):i.container=null:(p=y.State.scrollAnchor[y.State["scrollProperty"+x]],q=y.State.scrollAnchor[y.State["scrollProperty"+("Left"===x?"Top":"Left")]],w=o(a).offset()[x.toLowerCase()]+B),j={scroll:{rootPropertyValue:!1,startValue:p,currentValue:p,endValue:w,unitType:"",easing:i.easing,scrollData:{container:i.container,direction:x,alternateValue:q}},element:a},y.debug&&console.log("tweensContainer (scroll): ",j.scroll,a)}else if("reverse"===G){if(!(k=g(a)))return;if(!k.tweensContainer)return void o.dequeue(a,i.queue);"none"===k.opts.display&&(k.opts.display="auto"),"hidden"===k.opts.visibility&&(k.opts.visibility="visible"),k.opts.loop=!1,k.opts.begin=null,k.opts.complete=null,v.easing||delete i.easing,v.duration||delete i.duration,i=o.extend({},k.opts,i),n=o.extend(!0,{},k?k.tweensContainer:null);for(var E in n)if(n.hasOwnProperty(E)&&"element"!==E){var F=n[E].startValue;n[E].startValue=n[E].currentValue=n[E].endValue,n[E].endValue=F,u.isEmptyObject(v)||(n[E].easing=i.easing),y.debug&&console.log("reverse tweensContainer ("+E+"): "+JSON.stringify(n[E]),a)}j=n}else if("start"===G){k=g(a),k&&k.tweensContainer&&k.isAnimating===!0&&(n=k.tweensContainer);var H=function(e,f){var g,l=A.Hooks.getRoot(e),m=!1,p=f[0],q=f[1],r=f[2]
6
  ;if(!(k&&k.isSVG||"tween"===l||A.Names.prefixCheck(l)[1]!==!1||A.Normalizations.registered[l]!==d))return void(y.debug&&console.log("Skipping ["+l+"] due to a lack of browser support."));(i.display!==d&&null!==i.display&&"none"!==i.display||i.visibility!==d&&"hidden"!==i.visibility)&&/opacity|filter/.test(e)&&!r&&0!==p&&(r=0),i._cacheValues&&n&&n[e]?(r===d&&(r=n[e].endValue+n[e].unitType),m=k.rootPropertyValueCache[l]):A.Hooks.registered[e]?r===d?(m=A.getPropertyValue(a,l),r=A.getPropertyValue(a,e,m)):m=A.Hooks.templates[l][1]:r===d&&(r=A.getPropertyValue(a,e));var s,t,v,w=!1,x=function(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=A.Values.getUnitType(a)),[d,c]};if(r!==p&&u.isString(r)&&u.isString(p)){g="";var z=0,B=0,C=[],D=[],E=0,F=0,G=0;for(r=A.Hooks.fixColors(r),p=A.Hooks.fixColors(p);z<r.length&&B<p.length;){var H=r[z],I=p[B];if(/[\d\.-]/.test(H)&&/[\d\.-]/.test(I)){for(var J=H,K=I,L=".",N=".";++z<r.length;){if((H=r[z])===L)L="..";else if(!/\d/.test(H))break;J+=H}for(;++B<p.length;){if((I=p[B])===N)N="..";else if(!/\d/.test(I))break;K+=I}var O=A.Hooks.getUnit(r,z),P=A.Hooks.getUnit(p,B);if(z+=O.length,B+=P.length,O===P)J===K?g+=J+O:(g+="{"+C.length+(F?"!":"")+"}"+O,C.push(parseFloat(J)),D.push(parseFloat(K)));else{var Q=parseFloat(J),R=parseFloat(K);g+=(E<5?"calc":"")+"("+(Q?"{"+C.length+(F?"!":"")+"}":"0")+O+" + "+(R?"{"+(C.length+(Q?1:0))+(F?"!":"")+"}":"0")+P+")",Q&&(C.push(Q),D.push(0)),R&&(C.push(0),D.push(R))}}else{if(H!==I){E=0;break}g+=H,z++,B++,0===E&&"c"===H||1===E&&"a"===H||2===E&&"l"===H||3===E&&"c"===H||E>=4&&"("===H?E++:(E&&E<5||E>=4&&")"===H&&--E<5)&&(E=0),0===F&&"r"===H||1===F&&"g"===H||2===F&&"b"===H||3===F&&"a"===H||F>=3&&"("===H?(3===F&&"a"===H&&(G=1),F++):G&&","===H?++G>3&&(F=G=0):(G&&F<(G?5:4)||F>=(G?4:3)&&")"===H&&--F<(G?5:4))&&(F=G=0)}}z===r.length&&B===p.length||(y.debug&&console.error('Trying to pattern match mis-matched strings ["'+p+'", "'+r+'"]'),g=d),g&&(C.length?(y.debug&&console.log('Pattern found "'+g+'" -> ',C,D,"["+r+","+p+"]"),r=C,p=D,t=v=""):g=d)}g||(s=x(e,r),r=s[0],v=s[1],s=x(e,p),p=s[0].replace(/^([+-\/*])=/,function(a,b){return w=b,""}),t=s[1],r=parseFloat(r)||0,p=parseFloat(p)||0,"%"===t&&(/^(fontSize|lineHeight)$/.test(e)?(p/=100,t="em"):/^scale/.test(e)?(p/=100,t=""):/(Red|Green|Blue)$/i.test(e)&&(p=p/100*255,t="")));if(/[\/*]/.test(w))t=v;else if(v!==t&&0!==r)if(0===p)t=v;else{h=h||function(){var d={myParent:a.parentNode||c.body,position:A.getPropertyValue(a,"position"),fontSize:A.getPropertyValue(a,"fontSize")},e=d.position===M.lastPosition&&d.myParent===M.lastParent,f=d.fontSize===M.lastFontSize;M.lastParent=d.myParent,M.lastPosition=d.position,M.lastFontSize=d.fontSize;var g={};if(f&&e)g.emToPx=M.lastEmToPx,g.percentToPxWidth=M.lastPercentToPxWidth,g.percentToPxHeight=M.lastPercentToPxHeight;else{var h=k&&k.isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");y.init(h),d.myParent.appendChild(h),o.each(["overflow","overflowX","overflowY"],function(a,b){y.CSS.setPropertyValue(h,b,"hidden")}),y.CSS.setPropertyValue(h,"position",d.position),y.CSS.setPropertyValue(h,"fontSize",d.fontSize),y.CSS.setPropertyValue(h,"boxSizing","content-box"),o.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){y.CSS.setPropertyValue(h,b,"100%")}),y.CSS.setPropertyValue(h,"paddingLeft","100em"),g.percentToPxWidth=M.lastPercentToPxWidth=(parseFloat(A.getPropertyValue(h,"width",null,!0))||1)/100,g.percentToPxHeight=M.lastPercentToPxHeight=(parseFloat(A.getPropertyValue(h,"height",null,!0))||1)/100,g.emToPx=M.lastEmToPx=(parseFloat(A.getPropertyValue(h,"paddingLeft"))||1)/100,d.myParent.removeChild(h)}return null===M.remToPx&&(M.remToPx=parseFloat(A.getPropertyValue(c.body,"fontSize"))||16),null===M.vwToPx&&(M.vwToPx=parseFloat(b.innerWidth)/100,M.vhToPx=parseFloat(b.innerHeight)/100),g.remToPx=M.remToPx,g.vwToPx=M.vwToPx,g.vhToPx=M.vhToPx,y.debug>=1&&console.log("Unit ratios: "+JSON.stringify(g),a),g}();var S=/margin|padding|left|right|width|text|word|letter/i.test(e)||/X$/.test(e)||"x"===e?"x":"y";switch(v){case"%":r*="x"===S?h.percentToPxWidth:h.percentToPxHeight;break;case"px":break;default:r*=h[v+"ToPx"]}switch(t){case"%":r*=1/("x"===S?h.percentToPxWidth:h.percentToPxHeight);break;case"px":break;default:r*=1/h[t+"ToPx"]}}switch(w){case"+":p=r+p;break;case"-":p=r-p;break;case"*":p*=r;break;case"/":p=r/p}j[e]={rootPropertyValue:m,startValue:r,currentValue:r,endValue:p,unitType:t,easing:q},g&&(j[e].pattern=g),y.debug&&console.log("tweensContainer ("+e+"): "+JSON.stringify(j[e]),a)};for(var I in s)if(s.hasOwnProperty(I)){var J=A.Names.camelCase(I),K=function(b,c){var d,f,g;return u.isFunction(b)&&(b=b.call(a,e,C)),u.isArray(b)?(d=b[0],!u.isArray(b[1])&&/^[\d-]/.test(b[1])||u.isFunction(b[1])||A.RegEx.isHex.test(b[1])?g=b[1]:u.isString(b[1])&&!A.RegEx.isHex.test(b[1])&&y.Easings[b[1]]||u.isArray(b[1])?(f=c?b[1]:l(b[1],i.duration),g=b[2]):g=b[1]||b[2]):d=b,c||(f=f||i.easing),u.isFunction(d)&&(d=d.call(a,e,C)),u.isFunction(g)&&(g=g.call(a,e,C)),[d||0,f,g]}(s[I]);if(t(A.Lists.colors,J)){var L=K[0],O=K[1],P=K[2];if(A.RegEx.isHex.test(L)){for(var Q=["Red","Green","Blue"],R=A.Values.hexToRgb(L),S=P?A.Values.hexToRgb(P):d,T=0;T<Q.length;T++){var U=[R[T]];O&&U.push(O),S!==d&&U.push(S[T]),H(J+Q[T],U)}continue}}H(J,K)}j.element=a}j.element&&(A.Values.addClass(a,"velocity-animating"),N.push(j),k=g(a),k&&(""===i.queue&&(k.tweensContainer=j,k.opts=i),k.isAnimating=!0),D===C-1?(y.State.calls.push([N,r,i,null,z.resolver,null,0]),y.State.isTicking===!1&&(y.State.isTicking=!0,m())):D++)}var h,i=o.extend({},y.defaults,v),j={};switch(g(a)===d&&y.init(a),parseFloat(i.delay)&&i.queue!==!1&&o.queue(a,i.queue,function(b){y.velocityQueueEntryFlag=!0;var c=y.State.delayedElements.count++;y.State.delayedElements[c]=a;var d=function(a){return function(){y.State.delayedElements[a]=!1,b()}}(c);g(a).delayBegin=(new Date).getTime(),g(a).delay=parseFloat(i.delay),g(a).delayTimer={setTimeout:setTimeout(b,parseFloat(i.delay)),next:d}}),i.duration.toString().toLowerCase()){case"fast":i.duration=200;break;case"normal":i.duration=w;break;case"slow":i.duration=600;break;default:i.duration=parseFloat(i.duration)||1}if(y.mock!==!1&&(y.mock===!0?i.duration=i.delay=1:(i.duration*=parseFloat(y.mock)||1,i.delay*=parseFloat(y.mock)||1)),i.easing=l(i.easing,i.duration),i.begin&&!u.isFunction(i.begin)&&(i.begin=null),i.progress&&!u.isFunction(i.progress)&&(i.progress=null),i.complete&&!u.isFunction(i.complete)&&(i.complete=null),i.display!==d&&null!==i.display&&(i.display=i.display.toString().toLowerCase(),"auto"===i.display&&(i.display=y.CSS.Values.getDisplayType(a))),i.visibility!==d&&null!==i.visibility&&(i.visibility=i.visibility.toString().toLowerCase()),i.mobileHA=i.mobileHA&&y.State.isMobile&&!y.State.isGingerbread,i.queue===!1)if(i.delay){var k=y.State.delayedElements.count++;y.State.delayedElements[k]=a;var n=function(a){return function(){y.State.delayedElements[a]=!1,f()}}(k);g(a).delayBegin=(new Date).getTime(),g(a).delay=parseFloat(i.delay),g(a).delayTimer={setTimeout:setTimeout(f,parseFloat(i.delay)),next:n}}else f();else o.queue(a,i.queue,function(a,b){if(b===!0)return z.promise&&z.resolver(r),!0;y.velocityQueueEntryFlag=!0,f(a)});""!==i.queue&&"fx"!==i.queue||"inprogress"===o.queue(a)[0]||o.dequeue(a)}var j,k,p,q,r,s,v,x=arguments[0]&&(arguments[0].p||o.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||u.isString(arguments[0].properties));u.isWrapped(this)?(k=!1,q=0,r=this,p=this):(k=!0,q=1,r=x?arguments[0].elements||arguments[0].e:arguments[0]);var z={promise:null,resolver:null,rejecter:null};if(k&&y.Promise&&(z.promise=new y.Promise(function(a,b){z.resolver=a,z.rejecter=b})),x?(s=arguments[0].properties||arguments[0].p,v=arguments[0].options||arguments[0].o):(s=arguments[q],v=arguments[q+1]),!(r=f(r)))return void(z.promise&&(s&&v&&v.promiseRejectEmpty===!1?z.resolver():z.rejecter()));var C=r.length,D=0;if(!/^(stop|finish|finishAll|pause|resume)$/i.test(s)&&!o.isPlainObject(v)){var E=q+1;v={};for(var F=E;F<arguments.length;F++)u.isArray(arguments[F])||!/^(fast|normal|slow)$/i.test(arguments[F])&&!/^\d/.test(arguments[F])?u.isString(arguments[F])||u.isArray(arguments[F])?v.easing=arguments[F]:u.isFunction(arguments[F])&&(v.complete=arguments[F]):v.duration=arguments[F]}var G;switch(s){case"scroll":G="scroll";break;case"reverse":G="reverse";break;case"pause":var H=(new Date).getTime();return o.each(r,function(a,b){h(b,H)}),o.each(y.State.calls,function(a,b){var c=!1;b&&o.each(b[1],function(a,e){var f=v===d?"":v;return f!==!0&&b[2].queue!==f&&(v!==d||b[2].queue!==!1)||(o.each(r,function(a,d){if(d===e)return b[5]={resume:!1},c=!0,!1}),!c&&void 0)})}),a();case"resume":return o.each(r,function(a,b){i(b,H)}),o.each(y.State.calls,function(a,b){var c=!1;b&&o.each(b[1],function(a,e){var f=v===d?"":v;return f!==!0&&b[2].queue!==f&&(v!==d||b[2].queue!==!1)||(!b[5]||(o.each(r,function(a,d){if(d===e)return b[5].resume=!0,c=!0,!1}),!c&&void 0))})}),a();case"finish":case"finishAll":case"stop":o.each(r,function(a,b){g(b)&&g(b).delayTimer&&(clearTimeout(g(b).delayTimer.setTimeout),g(b).delayTimer.next&&g(b).delayTimer.next(),delete g(b).delayTimer),"finishAll"!==s||v!==!0&&!u.isString(v)||(o.each(o.queue(b,u.isString(v)?v:""),function(a,b){u.isFunction(b)&&b()}),o.queue(b,u.isString(v)?v:"",[]))});var I=[];return o.each(y.State.calls,function(a,b){b&&o.each(b[1],function(c,e){var f=v===d?"":v;if(f!==!0&&b[2].queue!==f&&(v!==d||b[2].queue!==!1))return!0;o.each(r,function(c,d){if(d===e)if((v===!0||u.isString(v))&&(o.each(o.queue(d,u.isString(v)?v:""),function(a,b){u.isFunction(b)&&b(null,!0)}),o.queue(d,u.isString(v)?v:"",[])),"stop"===s){var h=g(d);h&&h.tweensContainer&&f!==!1&&o.each(h.tweensContainer,function(a,b){b.endValue=b.currentValue}),I.push(a)}else"finish"!==s&&"finishAll"!==s||(b[2].duration=1)})})}),"stop"===s&&(o.each(I,function(a,b){n(b,!0)}),z.promise&&z.resolver(r)),a();default:if(!o.isPlainObject(s)||u.isEmptyObject(s)){if(u.isString(s)&&y.Redirects[s]){j=o.extend({},v);var J=j.duration,K=j.delay||0;return j.backwards===!0&&(r=o.extend(!0,[],r).reverse()),o.each(r,function(a,b){parseFloat(j.stagger)?j.delay=K+parseFloat(j.stagger)*a:u.isFunction(j.stagger)&&(j.delay=K+j.stagger.call(b,a,C)),j.drag&&(j.duration=parseFloat(J)||(/^(callout|transition)/.test(s)?1e3:w),j.duration=Math.max(j.duration*(j.backwards?1-a/C:(a+1)/C),.75*j.duration,200)),y.Redirects[s].call(b,b,j||{},a,C,r,z.promise?z:d)}),a()}var L="Velocity: First argument ("+s+") was not a property map, a known action, or a registered redirect. Aborting.";return z.promise?z.rejecter(new Error(L)):b.console&&console.log(L),a()}G="start"}var M={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},N=[];o.each(r,function(a,b){u.isNode(b)&&e(b,a)}),j=o.extend({},y.defaults,v),j.loop=parseInt(j.loop,10);var O=2*j.loop-1;if(j.loop)for(var P=0;P<O;P++){var Q={delay:j.delay,progress:j.progress};P===O-1&&(Q.display=j.display,Q.visibility=j.visibility,Q.complete=j.complete),B(r,"reverse",Q)}return a()};y=o.extend(B,y),y.animate=B;var C=b.requestAnimationFrame||q;if(!y.State.isMobile&&c.hidden!==d){var D=function(){c.hidden?(C=function(a){return setTimeout(function(){a(!0)},16)},m()):C=b.requestAnimationFrame||q};D(),c.addEventListener("visibilitychange",D)}return a.Velocity=y,a!==b&&(a.fn.velocity=B,a.fn.velocity.defaults=y.defaults),o.each(["Down","Up"],function(a,b){y.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=o.extend({},c),j=i.begin,k=i.complete,l={},m={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""};i.display===d&&(i.display="Down"===b?"inline"===y.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){0===e&&j&&j.call(g,g);for(var c in m)if(m.hasOwnProperty(c)){l[c]=a.style[c];var d=A.getPropertyValue(a,c);m[c]="Down"===b?[d,0]:[0,d]}l.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in l)l.hasOwnProperty(b)&&(a.style[b]=l[b]);e===f-1&&(k&&k.call(g,g),h&&h.resolver(g))},y(a,m,i)}}),o.each(["In","Out"],function(a,b){y.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=o.extend({},c),j=i.complete,k={opacity:"In"===b?1:0};0!==e&&(i.begin=null),i.complete=e!==f-1?null:function(){j&&j.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),y(this,k,i)}}),y}(window.jQuery||window.Zepto||window,window,window?window.document:undefined)});
7
 
@@ -39,8 +39,8 @@ Velocity(sequence[0])}}((window.jQuery||window.Zepto||window),window,(window?win
39
  /*Modernizr js*/
40
  window.Modernizr=function(e,t,n){function r(e){b.cssText=e}function o(e,t){return r(S.join(e+";")+(t||""))}function a(e,t){return typeof e===t}function i(e,t){return!!~(""+e).indexOf(t)}function c(e,t){for(var r in e){var o=e[r];if(!i(o,"-")&&b[o]!==n)return"pfx"==t?o:!0}return!1}function s(e,t,r){for(var o in e){var i=t[e[o]];if(i!==n)return r===!1?e[o]:a(i,"function")?i.bind(r||t):i}return!1}function u(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),o=(e+" "+k.join(r+" ")+r).split(" ");return a(t,"string")||a(t,"undefined")?c(o,t):(o=(e+" "+T.join(r+" ")+r).split(" "),s(o,t,n))}function l(){p.input=function(n){for(var r=0,o=n.length;o>r;r++)j[n[r]]=!!(n[r]in E);return j.list&&(j.list=!(!t.createElement("datalist")||!e.HTMLDataListElement)),j}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),p.inputtypes=function(e){for(var r,o,a,i=0,c=e.length;c>i;i++)E.setAttribute("type",o=e[i]),r="text"!==E.type,r&&(E.value=x,E.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(o)&&E.style.WebkitAppearance!==n?(g.appendChild(E),a=t.defaultView,r=a.getComputedStyle&&"textfield"!==a.getComputedStyle(E,null).WebkitAppearance&&0!==E.offsetHeight,g.removeChild(E)):/^(search|tel)$/.test(o)||(r=/^(url|email)$/.test(o)?E.checkValidity&&E.checkValidity()===!1:E.value!=x)),P[e[i]]=!!r;return P}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d,f,m="2.8.3",p={},h=!0,g=t.documentElement,v="modernizr",y=t.createElement(v),b=y.style,E=t.createElement("input"),x=":)",w={}.toString,S=" -webkit- -moz- -o- -ms- ".split(" "),C="Webkit Moz O ms",k=C.split(" "),T=C.toLowerCase().split(" "),N={svg:"http://www.w3.org/2000/svg"},M={},P={},j={},$=[],D=$.slice,F=function(e,n,r,o){var a,i,c,s,u=t.createElement("div"),l=t.body,d=l||t.createElement("body");if(parseInt(r,10))for(;r--;)c=t.createElement("div"),c.id=o?o[r]:v+(r+1),u.appendChild(c);return a=["&#173;",'<style id="s',v,'">',e,"</style>"].join(""),u.id=v,(l?u:d).innerHTML+=a,d.appendChild(u),l||(d.style.background="",d.style.overflow="hidden",s=g.style.overflow,g.style.overflow="hidden",g.appendChild(d)),i=n(u,e),l?u.parentNode.removeChild(u):(d.parentNode.removeChild(d),g.style.overflow=s),!!i},z=function(t){var n=e.matchMedia||e.msMatchMedia;if(n)return n(t)&&n(t).matches||!1;var r;return F("@media "+t+" { #"+v+" { position: absolute; } }",function(t){r="absolute"==(e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position}),r},A=function(){function e(e,o){o=o||t.createElement(r[e]||"div"),e="on"+e;var i=e in o;return i||(o.setAttribute||(o=t.createElement("div")),o.setAttribute&&o.removeAttribute&&(o.setAttribute(e,""),i=a(o[e],"function"),a(o[e],"undefined")||(o[e]=n),o.removeAttribute(e))),o=null,i}var r={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return e}(),L={}.hasOwnProperty;f=a(L,"undefined")||a(L.call,"undefined")?function(e,t){return t in e&&a(e.constructor.prototype[t],"undefined")}:function(e,t){return L.call(e,t)},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError;var n=D.call(arguments,1),r=function(){if(this instanceof r){var o=function(){};o.prototype=t.prototype;var a=new o,i=t.apply(a,n.concat(D.call(arguments)));return Object(i)===i?i:a}return t.apply(e,n.concat(D.call(arguments)))};return r}),M.flexbox=function(){return u("flexWrap")},M.flexboxlegacy=function(){return u("boxDirection")},M.canvas=function(){var e=t.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},M.canvastext=function(){return!(!p.canvas||!a(t.createElement("canvas").getContext("2d").fillText,"function"))},M.webgl=function(){return!!e.WebGLRenderingContext},M.touch=function(){var n;return"ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch?n=!0:F(["@media (",S.join("touch-enabled),("),v,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(e){n=9===e.offsetTop}),n},M.geolocation=function(){return"geolocation"in navigator},M.postmessage=function(){return!!e.postMessage},M.websqldatabase=function(){return!!e.openDatabase},M.indexedDB=function(){return!!u("indexedDB",e)},M.hashchange=function(){return A("hashchange",e)&&(t.documentMode===n||t.documentMode>7)},M.history=function(){return!(!e.history||!history.pushState)},M.draganddrop=function(){var e=t.createElement("div");return"draggable"in e||"ondragstart"in e&&"ondrop"in e},M.websockets=function(){return"WebSocket"in e||"MozWebSocket"in e},M.rgba=function(){return r("background-color:rgba(150,255,150,.5)"),i(b.backgroundColor,"rgba")},M.hsla=function(){return r("background-color:hsla(120,40%,100%,.5)"),i(b.backgroundColor,"rgba")||i(b.backgroundColor,"hsla")},M.multiplebgs=function(){return r("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(b.background)},M.backgroundsize=function(){return u("backgroundSize")},M.borderimage=function(){return u("borderImage")},M.borderradius=function(){return u("borderRadius")},M.boxshadow=function(){return u("boxShadow")},M.textshadow=function(){return""===t.createElement("div").style.textShadow},M.opacity=function(){return o("opacity:.55"),/^0.55$/.test(b.opacity)},M.cssanimations=function(){return u("animationName")},M.csscolumns=function(){return u("columnCount")},M.cssgradients=function(){var e="background-image:",t="gradient(linear,left top,right bottom,from(#9f9),to(white));",n="linear-gradient(left top,#9f9, white);";return r((e+"-webkit- ".split(" ").join(t+e)+S.join(n+e)).slice(0,-e.length)),i(b.backgroundImage,"gradient")},M.cssreflections=function(){return u("boxReflect")},M.csstransforms=function(){return!!u("transform")},M.csstransforms3d=function(){var e=!!u("perspective");return e&&"webkitPerspective"in g.style&&F("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t){e=9===t.offsetLeft&&3===t.offsetHeight}),e},M.csstransitions=function(){return u("transition")},M.fontface=function(){var e;return F('@font-face {font-family:"font";src:url("https://")}',function(n,r){var o=t.getElementById("smodernizr"),a=o.sheet||o.styleSheet,i=a?a.cssRules&&a.cssRules[0]?a.cssRules[0].cssText:a.cssText||"":"";e=/src/i.test(i)&&0===i.indexOf(r.split(" ")[0])}),e},M.generatedcontent=function(){var e;return F(["#",v,"{font:0/0 a}#",v,':after{content:"',x,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){e=t.offsetHeight>=3}),e},M.video=function(){var e=t.createElement("video"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(r){}return n},M.audio=function(){var e=t.createElement("audio"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=e.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(r){}return n},M.localstorage=function(){try{return localStorage.setItem(v,v),localStorage.removeItem(v),!0}catch(e){return!1}},M.sessionstorage=function(){try{return sessionStorage.setItem(v,v),sessionStorage.removeItem(v),!0}catch(e){return!1}},M.webworkers=function(){return!!e.Worker},M.applicationcache=function(){return!!e.applicationCache},M.svg=function(){return!!t.createElementNS&&!!t.createElementNS(N.svg,"svg").createSVGRect},M.inlinesvg=function(){var e=t.createElement("div");return e.innerHTML="<svg/>",(e.firstChild&&e.firstChild.namespaceURI)==N.svg},M.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(w.call(t.createElementNS(N.svg,"animate")))},M.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(w.call(t.createElementNS(N.svg,"clipPath")))};for(var H in M)f(M,H)&&(d=H.toLowerCase(),p[d]=M[H](),$.push((p[d]?"":"no-")+d));return p.input||l(),p.addTest=function(e,t){if("object"==typeof e)for(var r in e)f(e,r)&&p.addTest(r,e[r]);else{if(e=e.toLowerCase(),p[e]!==n)return p;t="function"==typeof t?t():t,"undefined"!=typeof h&&h&&(g.className+=" "+(t?"":"no-")+e),p[e]=t}return p},r(""),y=E=null,function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=y.elements;return"string"==typeof e?e.split(" "):e}function o(e){var t=v[e[h]];return t||(t={},g++,e[h]=g,v[g]=t),t}function a(e,n,r){if(n||(n=t),l)return n.createElement(e);r||(r=o(n));var a;return a=r.cache[e]?r.cache[e].cloneNode():p.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!a.canHaveChildren||m.test(e)||a.tagUrn?a:r.frag.appendChild(a)}function i(e,n){if(e||(e=t),l)return e.createDocumentFragment();n=n||o(e);for(var a=n.frag.cloneNode(),i=0,c=r(),s=c.length;s>i;i++)a.createElement(c[i]);return a}function c(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return y.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(y,t.frag)}function s(e){e||(e=t);var r=o(e);return!y.shivCSS||u||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||c(e,r),e}var u,l,d="3.7.0",f=e.html5||{},m=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,h="_html5shiv",g=0,v={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",u="hidden"in e,l=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){u=!0,l=!0}}();var y={elements:f.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:d,shivCSS:f.shivCSS!==!1,supportsUnknownElements:l,shivMethods:f.shivMethods!==!1,type:"default",shivDocument:s,createElement:a,createDocumentFragment:i};e.html5=y,s(t)}(this,t),p._version=m,p._prefixes=S,p._domPrefixes=T,p._cssomPrefixes=k,p.mq=z,p.hasEvent=A,p.testProp=function(e){return c([e])},p.testAllProps=u,p.testStyles=F,p.prefixed=function(e,t,n){return t?u(e,t,n):u(e,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(h?" js "+$.join(" "):""),p}(this,this.document);
41
 
42
- /*imagesLoaded PACKAGED v4.1.3 */
43
- !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return-1==n.indexOf(t)&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return-1!=n&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=0,o=i[n];t=t||[];for(var r=this._onceEvents&&this._onceEvents[e];o;){var s=r&&r[o];s&&(this.off(e,o),delete r[o]),o.apply(this,t),n+=s?0:1,o=i[n]}return this}},t.allOff=t.removeAllListeners=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var i=0;i<e.length;i++)t.push(e[i]);else t.push(e);return t}function o(e,t,r){return this instanceof o?("string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=n(e),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(e,t,r)}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&d[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
44
 
45
  /*Lity.min.js v2.2.2 edit*/
46
  (function(window,factory){if(typeof define==='function'&&define.amd){define(['jquery'],function($){return factory(window,$)})}else if(typeof module==='object'&&typeof module.exports==='object'){module.exports=factory(window,require('jquery'))}else{window.lity=factory(window,window.jQuery||window.Zepto)}}(typeof window!=="undefined"?window:this,function(window,$){'use strict';var document=window.document;var _win=$(window);var _deferred=$.Deferred;var _html=$('html');var _instances=[];var _attrAriaHidden='aria-hidden';var _dataAriaHidden='lity-'+_attrAriaHidden;var _focusableElementsSelector='a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])';var _defaultOptions={handler:null,handlers:{image:imageHandler,inline:inlineHandler,youtube:youtubeHandler,vimeo:vimeoHandler,googlemaps:googlemapsHandler,facebookvideo:facebookvideoHandler,iframe:iframeHandler},template:'<div class="lity" role="dialog" aria-label="Dialog Window (Press escape to close)" tabindex="-1"><div class="lity-wrap" data-lity-close role="document"><div class="lity-loader" aria-hidden="true">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" aria-label="Close (Press escape to close)" data-lity-close>&times;</button></div></div></div>'};var _imageRegexp=/(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i;var _youtubeRegex=/(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i;var _vimeoRegex=/(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/;var _googlemapsRegex=/((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i;var _facebookvideoRegex=/(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i;var _transitionEndEvent=(function(){var el=document.createElement('div');var transEndEventNames={WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'oTransitionEnd otransitionend',transition:'transitionend'};for(var name in transEndEventNames){if(el.style[name]!==undefined){return transEndEventNames[name]}}
@@ -104,12 +104,12 @@ lity.version='2.2.2';lity.options=$.proxy(settings,lity,_defaultOptions);lity.ha
104
  /*slick.min.js*/
105
  !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});
106
 
107
- /*Isotope PACKAGED v3.0.4*/
108
- !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=0,n=i[o];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];n;){var r=s&&s[n];r&&(this.off(t,n),delete s[n]),n.apply(this,e),o+=r?0:1,n=i[o]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);s.isBoxSizeOuter=r=200==t(n.width),i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,I=a.borderTopWidth+a.borderBottomWidth,z=d&&r,x=t(s.width);x!==!1&&(a.width=x+(z?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(z?0:y+I)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+I),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"object"==typeof t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];t&&clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var s=i.toDashed(n),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(o&&o.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,n,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=this.layout.size,r=o.indexOf("%")!=-1?parseFloat(o)/100*s.width:parseInt(o,10),a=n.indexOf("%")!=-1?parseFloat(n)/100*s.height:parseInt(n,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=parseInt(t,10),s=parseInt(e,10),r=n===this.position.x&&s===this.position.y;if(this.setPosition(t,e),r&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,u=e-o,h={};h.transform=this.getTranslate(a,u),this.transition({to:h,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t)}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){
109
- var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
110
 
111
- /* Packery layout mode PACKAGED v2.0.0 */
112
- !function(a,b){"function"==typeof define&&define.amd?define("packery/js/rect",b):"object"==typeof module&&module.exports?module.exports=b():(a.Packery=a.Packery||{},a.Packery.Rect=b())}(window,function(){function a(b){for(var c in a.defaults)this[c]=a.defaults[c];for(c in b)this[c]=b[c]}a.defaults={x:0,y:0,width:0,height:0};var b=a.prototype;return b.contains=function(a){var b=a.width||0,c=a.height||0;return this.x<=a.x&&this.y<=a.y&&this.x+this.width>=a.x+b&&this.y+this.height>=a.y+c},b.overlaps=function(a){var b=this.x+this.width,c=this.y+this.height,d=a.x+a.width,e=a.y+a.height;return this.x<d&&b>a.x&&this.y<e&&c>a.y},b.getMaximalFreeRects=function(b){if(!this.overlaps(b))return!1;var c,d=[],e=this.x+this.width,f=this.y+this.height,g=b.x+b.width,h=b.y+b.height;return this.y<b.y&&(c=new a({x:this.x,y:this.y,width:this.width,height:b.y-this.y}),d.push(c)),e>g&&(c=new a({x:g,y:this.y,width:e-g,height:this.height}),d.push(c)),f>h&&(c=new a({x:this.x,y:h,width:this.width,height:f-h}),d.push(c)),this.x<b.x&&(c=new a({x:this.x,y:this.y,width:b.x-this.x,height:this.height}),d.push(c)),d},b.canFit=function(a){return this.width>=a.width&&this.height>=a.height},a}),function(a,b){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],b);else if("object"==typeof module&&module.exports)module.exports=b(require("./rect"));else{var c=a.Packery=a.Packery||{};c.Packer=b(c.Rect)}}(window,function(a){function b(a,b,c){this.width=a||0,this.height=b||0,this.sortDirection=c||"downwardLeftToRight",this.reset()}var c=b.prototype;c.reset=function(){this.spaces=[];var b=new a({x:0,y:0,width:this.width,height:this.height});this.spaces.push(b),this.sorter=d[this.sortDirection]||d.downwardLeftToRight},c.pack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b];if(c.canFit(a)){this.placeInSpace(a,c);break}}},c.columnPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.x<=a.x&&c.x+c.width>=a.x+a.width&&c.height>=a.height-.01;if(d){a.y=c.y,this.placed(a);break}}},c.rowPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.y<=a.y&&c.y+c.height>=a.y+a.height&&c.width>=a.width-.01;if(d){a.x=c.x,this.placed(a);break}}},c.placeInSpace=function(a,b){a.x=b.x,a.y=b.y,this.placed(a)},c.placed=function(a){for(var b=[],c=0;c<this.spaces.length;c++){var d=this.spaces[c],e=d.getMaximalFreeRects(a);e?b.push.apply(b,e):b.push(d)}this.spaces=b,this.mergeSortSpaces()},c.mergeSortSpaces=function(){b.mergeRects(this.spaces),this.spaces.sort(this.sorter)},c.addSpace=function(a){this.spaces.push(a),this.mergeSortSpaces()},b.mergeRects=function(a){var b=0,c=a[b];a:for(;c;){for(var d=0,e=a[b+d];e;){if(e==c)d++;else{if(e.contains(c)){a.splice(b,1),c=a[b];continue a}c.contains(e)?a.splice(b+d,1):d++}e=a[b+d]}b++,c=a[b]}return a};var d={downwardLeftToRight:function(a,b){return a.y-b.y||a.x-b.x},rightwardTopToBottom:function(a,b){return a.x-b.x||a.y-b.y}};return b}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],b):"object"==typeof module&&module.exports?module.exports=b(require("outlayer"),require("./rect")):a.Packery.Item=b(a.Outlayer,a.Packery.Rect)}(window,function(a,b){var c=document.documentElement.style,d="string"==typeof c.transform?"transform":"WebkitTransform",e=function(){a.Item.apply(this,arguments)},f=e.prototype=Object.create(a.Item.prototype),g=f._create;f._create=function(){g.call(this),this.rect=new b};var h=f.moveTo;return f.moveTo=function(a,b){var c=Math.abs(this.position.x-a),d=Math.abs(this.position.y-b),e=this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&1>c&&1>d;return e?void this.goTo(a,b):void h.apply(this,arguments)},f.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&d&&(this.element.style[d]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},f.disablePlacing=function(){this.isPlacing=!1},f.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},f.showDropPlaceholder=function(){var a=this.dropPlaceholder;a||(a=this.dropPlaceholder=document.createElement("div"),a.className="packery-drop-placeholder",a.style.position="absolute"),a.style.width=this.size.width+"px",a.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(a)},f.positionDropPlaceholder=function(){this.dropPlaceholder.style[d]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},f.hideDropPlaceholder=function(){this.layout.element.removeChild(this.dropPlaceholder)},e}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/packery",["get-size/get-size","outlayer/outlayer","./rect","./packer","./item"],b):"object"==typeof module&&module.exports?module.exports=b(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):a.Packery=b(a.getSize,a.Outlayer,a.Packery.Rect,a.Packery.Packer,a.Packery.Item)}(window,function(a,b,c,d,e){function f(a,b){return a.position.y-b.position.y||a.position.x-b.position.x}function g(a,b){return a.position.x-b.position.x||a.position.y-b.position.y}function h(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.sqrt(c*c+d*d)}c.prototype.canFit=function(a){return this.width>=a.width-1&&this.height>=a.height-1};var i=b.create("packery");i.Item=e;var j=i.prototype;j._create=function(){b.prototype._create.call(this),this.packer=new d,this.shiftPacker=new d,this.isEnabled=!0,this.dragItemCount=0;var a=this;this.handleDraggabilly={dragStart:function(){a.itemDragStart(this.element)},dragMove:function(){a.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){a.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(b,c){c&&a.itemDragStart(b.currentTarget)},drag:function(b,c){c&&a.itemDragMove(b.currentTarget,c.position.left,c.position.top)},stop:function(b,c){c&&a.itemDragEnd(b.currentTarget)}}},j._resetLayout=function(){this.getSize(),this._getMeasurements();var a,b,c;this._getOption("horizontal")?(a=1/0,b=this.size.innerHeight+this.gutter,c="rightwardTopToBottom"):(a=this.size.innerWidth+this.gutter,b=1/0,c="downwardLeftToRight"),this.packer.width=this.shiftPacker.width=a,this.packer.height=this.shiftPacker.height=b,this.packer.sortDirection=this.shiftPacker.sortDirection=c,this.packer.reset(),this.maxY=0,this.maxX=0},j._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},j._getItemLayoutPosition=function(a){if(this._setRectSize(a.element,a.rect),this.isShifting||this.dragItemCount>0){var b=this._getPackMethod();this.packer[b](a.rect)}else this.packer.pack(a.rect);return this._setMaxXY(a.rect),a.rect},j.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},j._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},j._setMaxXY=function(a){this.maxX=Math.max(a.x+a.width,this.maxX),this.maxY=Math.max(a.y+a.height,this.maxY)},j._setRectSize=function(b,c){var d=a(b),e=d.outerWidth,f=d.outerHeight;(e||f)&&(e=this._applyGridGutter(e,this.columnWidth),f=this._applyGridGutter(f,this.rowHeight)),c.width=Math.min(e,this.packer.width),c.height=Math.min(f,this.packer.height)},j._applyGridGutter=function(a,b){if(!b)return a+this.gutter;b+=this.gutter;var c=a%b,d=c&&1>c?"round":"ceil";return a=Math[d](a/b)*b},j._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},j._manageStamp=function(a){var b,d=this.getItem(a);if(d&&d.isPlacing)b=d.rect;else{var e=this._getElementOffset(a);b=new c({x:this._getOption("originLeft")?e.left:e.right,y:this._getOption("originTop")?e.top:e.bottom})}this._setRectSize(a,b),this.packer.placed(b),this._setMaxXY(b)},j.sortItemsByPosition=function(){var a=this._getOption("horizontal")?g:f;this.items.sort(a)},j.fit=function(a,b,c){var d=this.getItem(a);d&&(this.stamp(d.element),d.enablePlacing(),this.updateShiftTargets(d),b=void 0===b?d.rect.x:b,c=void 0===c?d.rect.y:c,this.shift(d,b,c),this._bindFitEvents(d),d.moveTo(d.rect.x,d.rect.y),this.shiftLayout(),this.unstamp(d.element),this.sortItemsByPosition(),d.disablePlacing())},j._bindFitEvents=function(a){function b(){d++,2==d&&c.dispatchEvent("fitComplete",null,[a])}var c=this,d=0;a.once("layout",b),this.once("layoutComplete",b)},j.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},j.needsResizeLayout=function(){var b=a(this.element),c=this._getOption("horizontal")?"innerHeight":"innerWidth";return b[c]!=this.size[c]},j.resizeShiftPercentLayout=function(){var b=this._getItemsForLayout(this.items),c=this._getOption("horizontal"),d=c?"y":"x",e=c?"height":"width",f=c?"rowHeight":"columnWidth",g=c?"innerHeight":"innerWidth",h=this[f];if(h=h&&h+this.gutter){this._getMeasurements();var i=this[f]+this.gutter;b.forEach(function(a){var b=Math.round(a.rect[d]/h);a.rect[d]=b*i})}else{var j=a(this.element)[g]+this.gutter,k=this.packer[e];b.forEach(function(a){a.rect[d]=a.rect[d]/k*j})}this.shiftLayout()},j.itemDragStart=function(a){if(this.isEnabled){this.stamp(a);var b=this.getItem(a);b&&(b.enablePlacing(),b.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(b))}},j.updateShiftTargets=function(a){this.shiftPacker.reset(),this._getBoundingRect();var b=this._getOption("originLeft"),d=this._getOption("originTop");this.stamps.forEach(function(a){var e=this.getItem(a);if(!e||!e.isPlacing){var f=this._getElementOffset(a),g=new c({x:b?f.left:f.right,y:d?f.top:f.bottom});this._setRectSize(a,g),this.shiftPacker.placed(g)}},this);var e=this._getOption("horizontal"),f=e?"rowHeight":"columnWidth",g=e?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var h,i=this[f];if(i=i&&i+this.gutter){var j=Math.ceil(a.rect[g]/i),k=Math.floor((this.shiftPacker[g]+this.gutter)/i);h=(k-j)*i;for(var l=0;k>l;l++)this._addShiftTarget(l*i,0,h)}else h=this.shiftPacker[g]+this.gutter-a.rect[g],this._addShiftTarget(0,0,h);var m=this._getItemsForLayout(this.items),n=this._getPackMethod();m.forEach(function(a){var b=a.rect;this._setRectSize(a.element,b),this.shiftPacker[n](b),this._addShiftTarget(b.x,b.y,h);var c=e?b.x+b.width:b.x,d=e?b.y:b.y+b.height;if(this._addShiftTarget(c,d,h),i)for(var f=Math.round(b[g]/i),j=1;f>j;j++){var k=e?c:b.x+i*j,l=e?b.y+i*j:d;this._addShiftTarget(k,l,h)}},this)},j._addShiftTarget=function(a,b,c){var d=this._getOption("horizontal")?b:a;if(!(0!==d&&d>c)){var e=a+","+b,f=-1!=this.shiftTargetKeys.indexOf(e);f||(this.shiftTargetKeys.push(e),this.shiftTargets.push({x:a,y:b}))}},j.shift=function(a,b,c){var d,e=1/0,f={x:b,y:c};this.shiftTargets.forEach(function(a){var b=h(a,f);e>b&&(d=a,e=b)}),a.rect.x=d.x,a.rect.y=d.y};var k=120;j.itemDragMove=function(a,b,c){function d(){f.shift(e,b,c),e.positionDropPlaceholder(),f.layout()}var e=this.isEnabled&&this.getItem(a);if(e){b-=this.size.paddingLeft,c-=this.size.paddingTop;var f=this,g=new Date;this._itemDragTime&&g-this._itemDragTime<k?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(d,k)):(d(),this._itemDragTime=g)}},j.itemDragEnd=function(a){function b(){d++,2==d&&(c.element.classList.remove("is-positioning-post-drag"),c.hideDropPlaceholder(),e.dispatchEvent("dragItemPositioned",null,[c]))}var c=this.isEnabled&&this.getItem(a);if(c){clearTimeout(this.dragTimeout),c.element.classList.add("is-positioning-post-drag");var d=0,e=this;c.once("layout",b),this.once("layoutComplete",b),c.moveTo(c.rect.x,c.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),c.disablePlacing(),this.unstamp(c.element)}},j.bindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"on")},j.unbindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"off")},j._bindDraggabillyEvents=function(a,b){var c=this.handleDraggabilly;a[b]("dragStart",c.dragStart),a[b]("dragMove",c.dragMove),a[b]("dragEnd",c.dragEnd)},j.bindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"on")},j.unbindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"off")},j._bindUIDraggableEvents=function(a,b){var c=this.handleUIDraggable;a[b]("dragstart",c.start)[b]("drag",c.drag)[b]("dragstop",c.stop)};var l=j.destroy;return j.destroy=function(){l.apply(this,arguments),this.isEnabled=!1},i.Rect=c,i.Packer=d,i}),function(a,b){"function"==typeof define&&define.amd?define(["isotope/js/layout-mode","packery/js/packery"],b):"object"==typeof module&&module.exports?module.exports=b(require("isotope-layout/js/layout-mode"),require("packery")):b(a.Isotope.LayoutMode,a.Packery)}(window,function(a,b){var c=a.create("packery"),d=c.prototype,e={_getElementOffset:!0,_getMeasurement:!0};for(var f in b.prototype)e[f]||(d[f]=b.prototype[f]);var g=d._resetLayout;d._resetLayout=function(){this.packer=this.packer||new b.Packer,this.shiftPacker=this.shiftPacker||new b.Packer,g.apply(this,arguments)};var h=d._getItemLayoutPosition;d._getItemLayoutPosition=function(a){return a.rect=a.rect||new b.Rect,h.call(this,a)};var i=d.needsResizeLayout;d.needsResizeLayout=function(){return this._getOption("horizontal")?this.needsVerticalResizeLayout():i.call(this)};var j=d._getOption;return d._getOption=function(a){return"horizontal"==a?void 0!==this.options.isHorizontal?this.options.isHorizontal:this.options.horizontal:j.apply(this.isotope,arguments)},c});
113
 
114
  /*counter numscroller.js 1.0*/
115
  !function($){function numberRoller(t){var i=$(".roller-title-number-"+t).attr("data-min"),o=$(".roller-title-number-"+t).attr("data-max"),e=$(".roller-title-number-"+t).attr("data-delay");numberRoll(t,i,o,$(".roller-title-number-"+t).attr("data-increment"),1e3*e/(o-i))}function numberRoll(slno,min,max,increment,timeout){min<=max?($(".roller-title-number-"+slno).html(min),min=parseInt(min)+parseInt(increment),setTimeout(function(){numberRoll(eval(slno),eval(min),eval(max),eval(increment),eval(timeout))},timeout)):$(".roller-title-number-"+slno).html(max)}$(window).on("load",function(){$(document).scrollzipInit(),$(document).rollerInit()}),$(window).on("load scroll resize",function(){$(".numscroller").scrollzip({showFunction:function(){numberRoller($(this).attr("data-slno"))},wholeVisible:!1})}),$.fn.scrollzipInit=function(){$("body").prepend("<div style='position:fixed;top:0px;left:0px;width:0;height:0;' id='scrollzipPoint'></div>")},$.fn.rollerInit=function(){var t=0;$(".numscroller").each(function(){t++,$(this).attr("data-slno",t),$(this).addClass("roller-title-number-"+t)})},$.fn.scrollzip=function(t){var o=$.extend({showFunction:null,hideFunction:null,showShift:0,wholeVisible:!1,hideShift:0},t);return this.each(function(t,i){return $(this).addClass("scrollzip"),$.isFunction(o.showFunction)&&$("#scrollzipPoint").length&&!$(this).hasClass("isShown")&&$(window).outerHeight()+$("#scrollzipPoint").offset().top-o.showShift>$(this).offset().top+(o.wholeVisible?$(this).outerHeight():0)&&$("#scrollzipPoint").offset().top+(o.wholeVisible?$(this).outerHeight():0)<$(this).outerHeight()+$(this).offset().top-o.showShift&&($(this).addClass("isShown"),o.showFunction.call(this)),$.isFunction(o.hideFunction)&&$("#scrollzipPoint").length&&$(this).hasClass("isShown")&&($(window).outerHeight()+$("#scrollzipPoint").offset().top-o.hideShift<$(this).offset().top+(o.wholeVisible?$(this).outerHeight():0)||$("#scrollzipPoint").offset().top+(o.wholeVisible?$(this).outerHeight():0)>$(this).outerHeight()+$(this).offset().top-o.hideShift)&&($(this).removeClass("isShown"),o.hideFunction.call(this)),this})}}(jQuery);
1
+ /* Waypoints - 4.0.1 */
2
  !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
3
 
4
+ /* Velocity.min.js (1.5.0)*/
5
  !function(a){"use strict";function b(a){var b=a.length,d=c.type(a);return"function"!==d&&!c.isWindow(a)&&(!(1!==a.nodeType||!b)||("array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a))}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return a&&a===a.window},c.type=function(a){return a?"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a:a+""},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return b===undefined||f.call(a,b)},c.each=function(a,c,d){var e=0,f=a.length,g=b(a);if(d){if(g)for(;e<f&&c.apply(a[e],d)!==!1;e++);else for(e in a)if(a.hasOwnProperty(e)&&c.apply(a[e],d)===!1)break}else if(g)for(;e<f&&c.call(a[e],e,a[e])!==!1;e++);else for(e in a)if(a.hasOwnProperty(e)&&c.call(a[e],e,a[e])===!1)break;return a},c.data=function(a,b,e){if(e===undefined){var f=a[c.expando],g=f&&d[f];if(b===undefined)return g;if(g&&b in g)return g[b]}else if(b!==undefined){var h=a[c.expando]||(a[c.expando]=++c.uuid);return d[h]=d[h]||{},d[h][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&(b?c.each(b,function(a,b){delete f[b]}):delete d[e])},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);i<j;i++)if(f=arguments[i])for(e in f)f.hasOwnProperty(e)&&(a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):d!==undefined&&(h[e]=d)));return h},c.queue=function(a,d,e){if(a){d=(d||"fx")+"queue";var f=c.data(a,d);return e?(!f||c.isArray(e)?f=c.data(a,d,function(a,c){var d=c||[];return a&&(b(Object(a))?function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;)a[e++]=b[d++];if(c!==c)for(;b[d]!==undefined;)a[e++]=b[d++];a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}(e)):f.push(e),f):f||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){var a=this[0],b=function(a){for(var b=a.offsetParent;b&&"html"!==b.nodeName.toLowerCase()&&b.style&&"static"===b.style.position;)b=b.offsetParent;return b||document}(a),d=this.offset(),e=/^(?:body|html)$/i.test(b.nodeName)?{top:0,left:0}:c(b).offset();return d.top-=parseFloat(a.style.marginTop)||0,d.left-=parseFloat(a.style.marginLeft)||0,b.style&&(e.top+=parseFloat(b.style.borderTopWidth)||0,e.left+=parseFloat(b.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;i<h.length;i++)e["[object "+h[i]+"]"]=h[i].toLowerCase();c.fn.init.prototype=c.fn,a.Velocity={Utilities:c}}}(window),function(a){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a():"function"==typeof define&&define.amd?define(a):a()}(function(){"use strict";return function(a,b,c,d){function e(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function f(a){return u.isWrapped(a)?a=s.call(a):u.isNode(a)&&(a=[a]),a}function g(a){var b=o.data(a,"velocity");return null===b?d:b}function h(a,b){var c=g(a);c&&c.delayTimer&&!c.delayPaused&&(c.delayRemaining=c.delay-b+c.delayBegin,c.delayPaused=!0,clearTimeout(c.delayTimer.setTimeout))}function i(a,b){var c=g(a);c&&c.delayTimer&&c.delayPaused&&(c.delayPaused=!1,c.delayTimer.setTimeout=setTimeout(c.delayTimer.next,c.delayRemaining))}function j(a){return function(b){return Math.round(b*a)*(1/a)}}function k(a,c,d,e){function f(a,b){return 1-3*b+3*a}function g(a,b){return 3*b-6*a}function h(a){return 3*a}function i(a,b,c){return((f(b,c)*a+g(b,c))*a+h(b))*a}function j(a,b,c){return 3*f(b,c)*a*a+2*g(b,c)*a+h(b)}function k(b,c){for(var e=0;e<p;++e){var f=j(c,a,d);if(0===f)return c;c-=(i(c,a,d)-b)/f}return c}function l(){for(var b=0;b<t;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do{g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g}while(Math.abs(f)>r&&++h<s);return g}function n(b){for(var c=0,e=1,f=t-1;e!==f&&x[e]<=b;++e)c+=u;--e;var g=(b-x[e])/(x[e+1]-x[e]),h=c+g*u,i=j(h,a,d);return i>=q?k(b,h):0===i?h:m(b,c,c+u)}function o(){y=!0,a===c&&d===e||l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;w<4;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function l(a,b){var c=a;return u.isString(a)?y.Easings[a]||(c=!1):c=u.isArray(a)&&1===a.length?j.apply(null,a):u.isArray(a)&&2===a.length?z.apply(null,a.concat([b])):!(!u.isArray(a)||4!==a.length)&&k.apply(null,a),c===!1&&(c=y.Easings[y.defaults.easing]?y.defaults.easing:x),c}function m(a){if(a){var b=y.timestamp&&a!==!0?a:r.now(),c=y.State.calls.length;c>1e4&&(y.State.calls=e(y.State.calls),c=y.State.calls.length);for(var f=0;f<c;f++)if(y.State.calls[f]){var h=y.State.calls[f],i=h[0],j=h[2],k=h[3],l=!!k,q=null,s=h[5],t=h[6];if(k||(k=y.State.calls[f][3]=b-16),s){if(s.resume!==!0)continue;k=h[3]=Math.round(b-t-16),h[5]=null}t=h[6]=b-k;for(var v=Math.min(t/j.duration,1),w=0,x=i.length;w<x;w++){var z=i[w],B=z.element;if(g(B)){var D=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var E=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];o.each(E,function(a,b){A.setPropertyValue(B,"display",b)})}A.setPropertyValue(B,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&A.setPropertyValue(B,"visibility",j.visibility);for(var F in z)if(z.hasOwnProperty(F)&&"element"!==F){var G,H=z[F],I=u.isString(H.easing)?y.Easings[H.easing]:H.easing;if(u.isString(H.pattern)){var J=1===v?function(a,b,c){var d=H.endValue[b];return c?Math.round(d):d}:function(a,b,c){var d=H.startValue[b],e=H.endValue[b]-d,f=d+e*I(v,j,e);return c?Math.round(f):f};G=H.pattern.replace(/{(\d+)(!)?}/g,J)}else if(1===v)G=H.endValue;else{var K=H.endValue-H.startValue;G=H.startValue+K*I(v,j,K)}if(!l&&G===H.currentValue)continue;if(H.currentValue=G,"tween"===F)q=G;else{var L;if(A.Hooks.registered[F]){L=A.Hooks.getRoot(F);var M=g(B).rootPropertyValueCache[L];M&&(H.rootPropertyValue=M)}var N=A.setPropertyValue(B,F,H.currentValue+(p<9&&0===parseFloat(G)?"":H.unitType),H.rootPropertyValue,H.scrollData);A.Hooks.registered[F]&&(A.Normalizations.registered[L]?g(B).rootPropertyValueCache[L]=A.Normalizations.registered[L]("extract",null,N[1]):g(B).rootPropertyValueCache[L]=N[1]),"transform"===N[0]&&(D=!0)}}j.mobileHA&&g(B).transformCache.translate3d===d&&(g(B).transformCache.translate3d="(0px, 0px, 0px)",D=!0),D&&A.flushTransformCache(B)}}j.display!==d&&"none"!==j.display&&(y.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(y.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],v,Math.max(0,k+j.duration-b),k,q),1===v&&n(f)}}y.State.isTicking&&C(m)}function n(a,b){if(!y.State.calls[a])return!1;for(var c=y.State.calls[a][0],e=y.State.calls[a][1],f=y.State.calls[a][2],h=y.State.calls[a][4],i=!1,j=0,k=c.length;j<k;j++){var l=c[j].element;b||f.loop||("none"===f.display&&A.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&A.setPropertyValue(l,"visibility",f.visibility));var m=g(l);if(f.loop!==!0&&(o.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(o.queue(l)[1]))&&m){m.isAnimating=!1,m.rootPropertyValueCache={};var n=!1;o.each(A.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=m.transformCache[b];m.transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete m.transformCache[b])}),f.mobileHA&&(n=!0,delete m.transformCache.translate3d),n&&A.flushTransformCache(l),A.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(r){setTimeout(function(){throw r},1)}h&&f.loop!==!0&&h(e),m&&f.loop===!0&&!b&&(o.each(m.tweensContainer,function(a,b){if(/^rotate/.test(a)&&(parseFloat(b.startValue)-parseFloat(b.endValue))%360==0){var c=b.startValue;b.startValue=b.endValue,b.endValue=c}/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),y(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&o.dequeue(l,f.queue)}y.State.calls[a]=!1;for(var p=0,q=y.State.calls.length;p<q;p++)if(y.State.calls[p]!==!1){i=!0;break}i===!1&&(y.State.isTicking=!1,delete y.State.calls,y.State.calls=[])}var o,p=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="<!--[if IE "+a+"]><span></span><![endif]-->",b.getElementsByTagName("span").length)return b=null,a}return d}(),q=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),r=function(){var a=b.performance||{};if("function"!=typeof a.now){var c=a.timing&&a.timing.navigationStart?a.timing.navigationStart:(new Date).getTime();a.now=function(){return(new Date).getTime()-c}}return a}(),s=function(){var a=Array.prototype.slice;try{return a.call(c.documentElement),a}catch(b){return function(b,c){var d=this.length;if("number"!=typeof b&&(b=0),"number"!=typeof c&&(c=d),this.slice)return a.call(this,b,c);var e,f=[],g=b>=0?b:Math.max(0,d+b),h=c<0?d+c:Math.min(c,d),i=h-g;if(i>0)if(f=new Array(i),this.charAt)for(e=0;e<i;e++)f[e]=this.charAt(g+e);else for(e=0;e<i;e++)f[e]=this[g+e];return f}}}(),t=function(){return Array.prototype.includes?function(a,b){return a.includes(b)}:Array.prototype.indexOf?function(a,b){return a.indexOf(b)>=0}:function(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return!0;return!1}},u={isNumber:function(a){return"number"==typeof a},isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isWrapped:function(a){return a&&a!==b&&u.isNumber(a.length)&&!u.isString(a)&&!u.isFunction(a)&&!u.isNode(a)&&(0===a.length||u.isNode(a[0]))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}},v=!1;if(a.fn&&a.fn.jquery?(o=a,v=!0):o=b.Velocity.Utilities,p<=8&&!v)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(p<=7)return void(jQuery.fn.velocity=jQuery.fn.animate);var w=400,x="swing",y={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[],delayedElements:{count:0}},CSS:{},Utilities:o,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:w,easing:x,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0,promiseRejectEmpty:!0},init:function(a){o.data(a,"velocity",{isSVG:u.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:5,patch:0},debug:!1,timestamp:!0,pauseAll:function(a){var b=(new Date).getTime();o.each(y.State.calls,function(b,c){if(c){if(a!==d&&(c[2].queue!==a||c[2].queue===!1))return!0;c[5]={resume:!1}}}),o.each(y.State.delayedElements,function(a,c){c&&h(c,b)})},resumeAll:function(a){var b=(new Date).getTime();o.each(y.State.calls,function(b,c){if(c){if(a!==d&&(c[2].queue!==a||c[2].queue===!1))return!0;c[5]&&(c[5].resume=!0)}}),o.each(y.State.delayedElements,function(a,c){c&&i(c,b)})}};b.pageYOffset!==d?(y.State.scrollAnchor=b,y.State.scrollPropertyLeft="pageXOffset",y.State.scrollPropertyTop="pageYOffset"):(y.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,y.State.scrollPropertyLeft="scrollLeft",y.State.scrollPropertyTop="scrollTop");var z=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*.016):g=.016;;)if(h=c(h||i,g),j.push(1+h.x),k+=16,!(Math.abs(h.x)>1e-4&&Math.abs(h.v)>1e-4))break;return f?function(a){return j[a*(j.length-1)|0]}:k}}();y.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},o.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){y.Easings[b[0]]=k.apply(null,b[1])});var A=y.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a<A.Lists.colors.length;a++){var b="color"===A.Lists.colors[a]?"0 0 0 1":"255 255 255 1";A.Hooks.templates[A.Lists.colors[a]]=["Red Green Blue Alpha",b]}var c,d,e;if(p)for(c in A.Hooks.templates)if(A.Hooks.templates.hasOwnProperty(c)){d=A.Hooks.templates[c],e=d[0].split(" ");var f=d[1].match(A.RegEx.valueSplit);"Color"===e[0]&&(e.push(e.shift()),f.push(f.shift()),A.Hooks.templates[c]=[e.join(" "),f.join(" ")])}for(c in A.Hooks.templates)if(A.Hooks.templates.hasOwnProperty(c)){d=A.Hooks.templates[c],e=d[0].split(" ");for(var g in e)if(e.hasOwnProperty(g)){var h=c+e[g],i=g;A.Hooks.registered[h]=[c,i]}}},getRoot:function(a){var b=A.Hooks.registered[a];return b?b[0]:a},getUnit:function(a,b){var c=(a.substr(b||0,5).match(/^[a-z%]+/)||[])[0]||"";return c&&t(A.Lists.units,c)?c:""},fixColors:function(a){return a.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g,function(a,b,c){return A.Lists.colorNames.hasOwnProperty(c)?(b?b:"rgba(")+A.Lists.colorNames[c]+(b?"":",1)"):b+c})},cleanRootPropertyValue:function(a,b){return A.RegEx.valueUnwrap.test(b)&&(b=b.match(A.RegEx.valueUnwrap)[1]),A.Values.isCSSNullValue(b)&&(b=A.Hooks.templates[a][1]),b},extractValue:function(a,b){var c=A.Hooks.registered[a];if(c){var d=c[0],e=c[1];return b=A.Hooks.cleanRootPropertyValue(d,b),b.toString().match(A.RegEx.valueSplit)[e]}return b},injectValue:function(a,b,c){var d=A.Hooks.registered[a];if(d){var e,f=d[0],g=d[1];return c=A.Hooks.cleanRootPropertyValue(f,c),e=c.toString().match(A.RegEx.valueSplit),e[g]=b,e.join(" ")}return c}},Normalizations:{registered:{clip:function(a,b,c){switch(a){case"name":return"clip";case"extract":var d;return A.RegEx.wrappedValueAlreadyExtracted.test(c)?d=c:(d=c.toString().match(A.RegEx.valueUnwrap),d=d?d[1].replace(/,(\s+)?/g," "):c),d;case"inject":return"rect("+c+")"}},blur:function(a,b,c){switch(a){case"name":return y.State.isFirefox?"filter":"-webkit-filter";case"extract":var d=parseFloat(c);if(!d&&0!==d){var e=c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);d=e?e[1]:0}return d;case"inject":return parseFloat(c)?"blur("+c+")":"none"}},opacity:function(a,b,c){if(p<=8)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){function a(a,b,c){if("border-box"===A.getPropertyValue(b,"boxSizing").toString().toLowerCase()===(c||!1)){var d,e,f=0,g="width"===a?["Left","Right"]:["Top","Bottom"],h=["padding"+g[0],"padding"+g[1],"border"+g[0]+"Width","border"+g[1]+"Width"];for(d=0;d<h.length;d++)e=parseFloat(A.getPropertyValue(b,h[d])),isNaN(e)||(f+=e);return c?-f:f}return 0}function b(b,c){return function(d,e,f){switch(d){case"name":return b;case"extract":return parseFloat(f)+a(b,e,c);case"inject":return parseFloat(f)-a(b,e,c)+"px"}}}p&&!(p>9)||y.State.isGingerbread||(A.Lists.transformsBase=A.Lists.transformsBase.concat(A.Lists.transforms3D));for(var c=0;c<A.Lists.transformsBase.length;c++)!function(){var a=A.Lists.transformsBase[c];A.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return"transform";case"extract":return g(c)===d||g(c).transformCache[a]===d?/^scale/i.test(a)?1:0:g(c).transformCache[a].replace(/[()]/g,"");case"inject":var f=!1;switch(a.substr(0,a.length-1)){case"translate":f=!/(%|px|em|rem|vw|vh|\d)$/i.test(e);break;case"scal":case"scale":y.State.isAndroid&&g(c).transformCache[a]===d&&e<1&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[a]="("+e+")"),g(c).transformCache[a]}}}();for(var e=0;e<A.Lists.colors.length;e++)!function(){var a=A.Lists.colors[e];A.Normalizations.registered[a]=function(b,c,e){switch(b){case"name":return a;case"extract":var f;if(A.RegEx.wrappedValueAlreadyExtracted.test(e))f=e;else{var g,h={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(e)?g=h[e]!==d?h[e]:h.black:A.RegEx.isHex.test(e)?g="rgb("+A.Values.hexToRgb(e).join(" ")+")":/^rgba?\(/i.test(e)||(g=h.black),f=(g||e).toString().match(A.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return(!p||p>8)&&3===f.split(" ").length&&(f+=" 1"),f;case"inject":return/^rgb/.test(e)?e:(p<=8?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(p<=8?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}}();A.Normalizations.registered.innerWidth=b("width",!0),A.Normalizations.registered.innerHeight=b("height",!0),A.Normalizations.registered.outerWidth=b("width"),A.Normalizations.registered.outerHeight=b("height")}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(p||y.State.isAndroid&&!y.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(y.State.prefixMatches[a])return[y.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;c<d;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),u.isString(y.State.prefixElement.style[e]))return y.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d}),b=c.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return!a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){if(a)if(a.classList)a.classList.add(b);else if(u.isString(a.className))a.className+=(a.className.length?" ":"")+b;else{var c=a.getAttribute(p<=7?"className":"class")||"";a.setAttribute("class",c+(c?" ":"")+b)}},removeClass:function(a,b){if(a)if(a.classList)a.classList.remove(b);else if(u.isString(a.className))a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ");else{var c=a.getAttribute(p<=7?"className":"class")||"";a.setAttribute("class",c.replace(new RegExp("(^|s)"+b.split(" ").join("|")+"(s|$)","gi")," "))}}},getPropertyValue:function(a,c,e,f){function h(a,c){var e=0;if(p<=8)e=o.css(a,c);else{var i=!1;/^(width|height)$/.test(c)&&0===A.getPropertyValue(a,"display")&&(i=!0,A.setPropertyValue(a,"display",A.Values.getDisplayType(a)));var j=function(){i&&A.setPropertyValue(a,"display","none")};if(!f){if("height"===c&&"border-box"!==A.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(A.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(A.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(A.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(A.getPropertyValue(a,"paddingBottom"))||0);return j(),k}if("width"===c&&"border-box"!==A.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(A.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(A.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(A.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(A.getPropertyValue(a,"paddingRight"))||0);return j(),l}}var m;m=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),e=9===p&&"filter"===c?m.getPropertyValue(c):m[c],""!==e&&null!==e||(e=a.style[c]),j()}if("auto"===e&&/^(top|right|bottom|left)$/i.test(c)){var n=h(a,"position");("fixed"===n||"absolute"===n&&/top|left/i.test(c))&&(e=o(a).position()[c]+"px")}return e}var i;if(A.Hooks.registered[c]){var j=c,k=A.Hooks.getRoot(j);e===d&&(e=A.getPropertyValue(a,A.Names.prefixCheck(k)[0])),A.Normalizations.registered[k]&&(e=A.Normalizations.registered[k]("extract",a,e)),i=A.Hooks.extractValue(j,e)}else if(A.Normalizations.registered[c]){var l,m;l=A.Normalizations.registered[c]("name",a),"transform"!==l&&(m=h(a,A.Names.prefixCheck(l)[0]),A.Values.isCSSNullValue(m)&&A.Hooks.templates[c]&&(m=A.Hooks.templates[c][1])),i=A.Normalizations.registered[c]("extract",a,m)}if(!/^[\d-]/.test(i)){var n=g(a);if(n&&n.isSVG&&A.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(q){i=0}else i=a.getAttribute(c);else i=h(a,A.Names.prefixCheck(c)[0])}return A.Values.isCSSNullValue(i)&&(i=0),y.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(A.Normalizations.registered[c]&&"transform"===A.Normalizations.registered[c]("name",a))A.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(A.Hooks.registered[c]){var i=c,j=A.Hooks.getRoot(c);e=e||A.getPropertyValue(a,j),d=A.Hooks.injectValue(i,d,e),c=j}if(A.Normalizations.registered[c]&&(d=A.Normalizations.registered[c]("inject",a,d),c=A.Normalizations.registered[c]("name",a)),h=A.Names.prefixCheck(c)[0],p<=8)try{a.style[h]=d}catch(l){y.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else{var k=g(a);k&&k.isSVG&&A.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d}y.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){var b="",c=g(a);if((p||y.State.isAndroid&&!y.State.isChrome)&&c&&c.isSVG){var d=function(b){return parseFloat(A.getPropertyValue(a,b))},e={translate:[d("translateX"),d("translateY")],skewX:[d("skewX")],skewY:[d("skewY")],scale:1!==d("scale")?[d("scale"),d("scale")]:[d("scaleX"),d("scaleY")],rotate:[d("rotateZ"),0,0]};o.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),e[a]&&(b+=a+"("+e[a].join(" ")+") ",delete e[a])})}else{var f,h;o.each(g(a).transformCache,function(c){if(f=g(a).transformCache[c],"transformPerspective"===c)return h=f,!0;9===p&&"rotateZ"===c&&(c="rotate"),b+=c+f+" "}),h&&(b="perspective"+h+" "+b)}A.setPropertyValue(a,"transform",b)}};A.Hooks.register(),A.Normalizations.register(),y.hook=function(a,b,c){var e;return a=f(a),o.each(a,function(a,f){if(g(f)===d&&y.init(f),c===d)e===d&&(e=A.getPropertyValue(f,b));else{var h=A.setPropertyValue(f,b,c);"transform"===h[0]&&y.CSS.flushTransformCache(f),e=h}}),e};var B=function(){function a(){return k?z.promise||null:p}function e(a,e){function f(f){var k,n;if(i.begin&&0===D)try{i.begin.call(r,r)}catch(V){setTimeout(function(){throw V},1)}if("scroll"===G){var p,q,w,x=/^x$/i.test(i.axis)?"Left":"Top",B=parseFloat(i.offset)||0;i.container?u.isWrapped(i.container)||u.isNode(i.container)?(i.container=i.container[0]||i.container,p=i.container["scroll"+x],w=p+o(a).position()[x.toLowerCase()]+B):i.container=null:(p=y.State.scrollAnchor[y.State["scrollProperty"+x]],q=y.State.scrollAnchor[y.State["scrollProperty"+("Left"===x?"Top":"Left")]],w=o(a).offset()[x.toLowerCase()]+B),j={scroll:{rootPropertyValue:!1,startValue:p,currentValue:p,endValue:w,unitType:"",easing:i.easing,scrollData:{container:i.container,direction:x,alternateValue:q}},element:a},y.debug&&console.log("tweensContainer (scroll): ",j.scroll,a)}else if("reverse"===G){if(!(k=g(a)))return;if(!k.tweensContainer)return void o.dequeue(a,i.queue);"none"===k.opts.display&&(k.opts.display="auto"),"hidden"===k.opts.visibility&&(k.opts.visibility="visible"),k.opts.loop=!1,k.opts.begin=null,k.opts.complete=null,v.easing||delete i.easing,v.duration||delete i.duration,i=o.extend({},k.opts,i),n=o.extend(!0,{},k?k.tweensContainer:null);for(var E in n)if(n.hasOwnProperty(E)&&"element"!==E){var F=n[E].startValue;n[E].startValue=n[E].currentValue=n[E].endValue,n[E].endValue=F,u.isEmptyObject(v)||(n[E].easing=i.easing),y.debug&&console.log("reverse tweensContainer ("+E+"): "+JSON.stringify(n[E]),a)}j=n}else if("start"===G){k=g(a),k&&k.tweensContainer&&k.isAnimating===!0&&(n=k.tweensContainer);var H=function(e,f){var g,l=A.Hooks.getRoot(e),m=!1,p=f[0],q=f[1],r=f[2]
6
  ;if(!(k&&k.isSVG||"tween"===l||A.Names.prefixCheck(l)[1]!==!1||A.Normalizations.registered[l]!==d))return void(y.debug&&console.log("Skipping ["+l+"] due to a lack of browser support."));(i.display!==d&&null!==i.display&&"none"!==i.display||i.visibility!==d&&"hidden"!==i.visibility)&&/opacity|filter/.test(e)&&!r&&0!==p&&(r=0),i._cacheValues&&n&&n[e]?(r===d&&(r=n[e].endValue+n[e].unitType),m=k.rootPropertyValueCache[l]):A.Hooks.registered[e]?r===d?(m=A.getPropertyValue(a,l),r=A.getPropertyValue(a,e,m)):m=A.Hooks.templates[l][1]:r===d&&(r=A.getPropertyValue(a,e));var s,t,v,w=!1,x=function(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=A.Values.getUnitType(a)),[d,c]};if(r!==p&&u.isString(r)&&u.isString(p)){g="";var z=0,B=0,C=[],D=[],E=0,F=0,G=0;for(r=A.Hooks.fixColors(r),p=A.Hooks.fixColors(p);z<r.length&&B<p.length;){var H=r[z],I=p[B];if(/[\d\.-]/.test(H)&&/[\d\.-]/.test(I)){for(var J=H,K=I,L=".",N=".";++z<r.length;){if((H=r[z])===L)L="..";else if(!/\d/.test(H))break;J+=H}for(;++B<p.length;){if((I=p[B])===N)N="..";else if(!/\d/.test(I))break;K+=I}var O=A.Hooks.getUnit(r,z),P=A.Hooks.getUnit(p,B);if(z+=O.length,B+=P.length,O===P)J===K?g+=J+O:(g+="{"+C.length+(F?"!":"")+"}"+O,C.push(parseFloat(J)),D.push(parseFloat(K)));else{var Q=parseFloat(J),R=parseFloat(K);g+=(E<5?"calc":"")+"("+(Q?"{"+C.length+(F?"!":"")+"}":"0")+O+" + "+(R?"{"+(C.length+(Q?1:0))+(F?"!":"")+"}":"0")+P+")",Q&&(C.push(Q),D.push(0)),R&&(C.push(0),D.push(R))}}else{if(H!==I){E=0;break}g+=H,z++,B++,0===E&&"c"===H||1===E&&"a"===H||2===E&&"l"===H||3===E&&"c"===H||E>=4&&"("===H?E++:(E&&E<5||E>=4&&")"===H&&--E<5)&&(E=0),0===F&&"r"===H||1===F&&"g"===H||2===F&&"b"===H||3===F&&"a"===H||F>=3&&"("===H?(3===F&&"a"===H&&(G=1),F++):G&&","===H?++G>3&&(F=G=0):(G&&F<(G?5:4)||F>=(G?4:3)&&")"===H&&--F<(G?5:4))&&(F=G=0)}}z===r.length&&B===p.length||(y.debug&&console.error('Trying to pattern match mis-matched strings ["'+p+'", "'+r+'"]'),g=d),g&&(C.length?(y.debug&&console.log('Pattern found "'+g+'" -> ',C,D,"["+r+","+p+"]"),r=C,p=D,t=v=""):g=d)}g||(s=x(e,r),r=s[0],v=s[1],s=x(e,p),p=s[0].replace(/^([+-\/*])=/,function(a,b){return w=b,""}),t=s[1],r=parseFloat(r)||0,p=parseFloat(p)||0,"%"===t&&(/^(fontSize|lineHeight)$/.test(e)?(p/=100,t="em"):/^scale/.test(e)?(p/=100,t=""):/(Red|Green|Blue)$/i.test(e)&&(p=p/100*255,t="")));if(/[\/*]/.test(w))t=v;else if(v!==t&&0!==r)if(0===p)t=v;else{h=h||function(){var d={myParent:a.parentNode||c.body,position:A.getPropertyValue(a,"position"),fontSize:A.getPropertyValue(a,"fontSize")},e=d.position===M.lastPosition&&d.myParent===M.lastParent,f=d.fontSize===M.lastFontSize;M.lastParent=d.myParent,M.lastPosition=d.position,M.lastFontSize=d.fontSize;var g={};if(f&&e)g.emToPx=M.lastEmToPx,g.percentToPxWidth=M.lastPercentToPxWidth,g.percentToPxHeight=M.lastPercentToPxHeight;else{var h=k&&k.isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");y.init(h),d.myParent.appendChild(h),o.each(["overflow","overflowX","overflowY"],function(a,b){y.CSS.setPropertyValue(h,b,"hidden")}),y.CSS.setPropertyValue(h,"position",d.position),y.CSS.setPropertyValue(h,"fontSize",d.fontSize),y.CSS.setPropertyValue(h,"boxSizing","content-box"),o.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){y.CSS.setPropertyValue(h,b,"100%")}),y.CSS.setPropertyValue(h,"paddingLeft","100em"),g.percentToPxWidth=M.lastPercentToPxWidth=(parseFloat(A.getPropertyValue(h,"width",null,!0))||1)/100,g.percentToPxHeight=M.lastPercentToPxHeight=(parseFloat(A.getPropertyValue(h,"height",null,!0))||1)/100,g.emToPx=M.lastEmToPx=(parseFloat(A.getPropertyValue(h,"paddingLeft"))||1)/100,d.myParent.removeChild(h)}return null===M.remToPx&&(M.remToPx=parseFloat(A.getPropertyValue(c.body,"fontSize"))||16),null===M.vwToPx&&(M.vwToPx=parseFloat(b.innerWidth)/100,M.vhToPx=parseFloat(b.innerHeight)/100),g.remToPx=M.remToPx,g.vwToPx=M.vwToPx,g.vhToPx=M.vhToPx,y.debug>=1&&console.log("Unit ratios: "+JSON.stringify(g),a),g}();var S=/margin|padding|left|right|width|text|word|letter/i.test(e)||/X$/.test(e)||"x"===e?"x":"y";switch(v){case"%":r*="x"===S?h.percentToPxWidth:h.percentToPxHeight;break;case"px":break;default:r*=h[v+"ToPx"]}switch(t){case"%":r*=1/("x"===S?h.percentToPxWidth:h.percentToPxHeight);break;case"px":break;default:r*=1/h[t+"ToPx"]}}switch(w){case"+":p=r+p;break;case"-":p=r-p;break;case"*":p*=r;break;case"/":p=r/p}j[e]={rootPropertyValue:m,startValue:r,currentValue:r,endValue:p,unitType:t,easing:q},g&&(j[e].pattern=g),y.debug&&console.log("tweensContainer ("+e+"): "+JSON.stringify(j[e]),a)};for(var I in s)if(s.hasOwnProperty(I)){var J=A.Names.camelCase(I),K=function(b,c){var d,f,g;return u.isFunction(b)&&(b=b.call(a,e,C)),u.isArray(b)?(d=b[0],!u.isArray(b[1])&&/^[\d-]/.test(b[1])||u.isFunction(b[1])||A.RegEx.isHex.test(b[1])?g=b[1]:u.isString(b[1])&&!A.RegEx.isHex.test(b[1])&&y.Easings[b[1]]||u.isArray(b[1])?(f=c?b[1]:l(b[1],i.duration),g=b[2]):g=b[1]||b[2]):d=b,c||(f=f||i.easing),u.isFunction(d)&&(d=d.call(a,e,C)),u.isFunction(g)&&(g=g.call(a,e,C)),[d||0,f,g]}(s[I]);if(t(A.Lists.colors,J)){var L=K[0],O=K[1],P=K[2];if(A.RegEx.isHex.test(L)){for(var Q=["Red","Green","Blue"],R=A.Values.hexToRgb(L),S=P?A.Values.hexToRgb(P):d,T=0;T<Q.length;T++){var U=[R[T]];O&&U.push(O),S!==d&&U.push(S[T]),H(J+Q[T],U)}continue}}H(J,K)}j.element=a}j.element&&(A.Values.addClass(a,"velocity-animating"),N.push(j),k=g(a),k&&(""===i.queue&&(k.tweensContainer=j,k.opts=i),k.isAnimating=!0),D===C-1?(y.State.calls.push([N,r,i,null,z.resolver,null,0]),y.State.isTicking===!1&&(y.State.isTicking=!0,m())):D++)}var h,i=o.extend({},y.defaults,v),j={};switch(g(a)===d&&y.init(a),parseFloat(i.delay)&&i.queue!==!1&&o.queue(a,i.queue,function(b){y.velocityQueueEntryFlag=!0;var c=y.State.delayedElements.count++;y.State.delayedElements[c]=a;var d=function(a){return function(){y.State.delayedElements[a]=!1,b()}}(c);g(a).delayBegin=(new Date).getTime(),g(a).delay=parseFloat(i.delay),g(a).delayTimer={setTimeout:setTimeout(b,parseFloat(i.delay)),next:d}}),i.duration.toString().toLowerCase()){case"fast":i.duration=200;break;case"normal":i.duration=w;break;case"slow":i.duration=600;break;default:i.duration=parseFloat(i.duration)||1}if(y.mock!==!1&&(y.mock===!0?i.duration=i.delay=1:(i.duration*=parseFloat(y.mock)||1,i.delay*=parseFloat(y.mock)||1)),i.easing=l(i.easing,i.duration),i.begin&&!u.isFunction(i.begin)&&(i.begin=null),i.progress&&!u.isFunction(i.progress)&&(i.progress=null),i.complete&&!u.isFunction(i.complete)&&(i.complete=null),i.display!==d&&null!==i.display&&(i.display=i.display.toString().toLowerCase(),"auto"===i.display&&(i.display=y.CSS.Values.getDisplayType(a))),i.visibility!==d&&null!==i.visibility&&(i.visibility=i.visibility.toString().toLowerCase()),i.mobileHA=i.mobileHA&&y.State.isMobile&&!y.State.isGingerbread,i.queue===!1)if(i.delay){var k=y.State.delayedElements.count++;y.State.delayedElements[k]=a;var n=function(a){return function(){y.State.delayedElements[a]=!1,f()}}(k);g(a).delayBegin=(new Date).getTime(),g(a).delay=parseFloat(i.delay),g(a).delayTimer={setTimeout:setTimeout(f,parseFloat(i.delay)),next:n}}else f();else o.queue(a,i.queue,function(a,b){if(b===!0)return z.promise&&z.resolver(r),!0;y.velocityQueueEntryFlag=!0,f(a)});""!==i.queue&&"fx"!==i.queue||"inprogress"===o.queue(a)[0]||o.dequeue(a)}var j,k,p,q,r,s,v,x=arguments[0]&&(arguments[0].p||o.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||u.isString(arguments[0].properties));u.isWrapped(this)?(k=!1,q=0,r=this,p=this):(k=!0,q=1,r=x?arguments[0].elements||arguments[0].e:arguments[0]);var z={promise:null,resolver:null,rejecter:null};if(k&&y.Promise&&(z.promise=new y.Promise(function(a,b){z.resolver=a,z.rejecter=b})),x?(s=arguments[0].properties||arguments[0].p,v=arguments[0].options||arguments[0].o):(s=arguments[q],v=arguments[q+1]),!(r=f(r)))return void(z.promise&&(s&&v&&v.promiseRejectEmpty===!1?z.resolver():z.rejecter()));var C=r.length,D=0;if(!/^(stop|finish|finishAll|pause|resume)$/i.test(s)&&!o.isPlainObject(v)){var E=q+1;v={};for(var F=E;F<arguments.length;F++)u.isArray(arguments[F])||!/^(fast|normal|slow)$/i.test(arguments[F])&&!/^\d/.test(arguments[F])?u.isString(arguments[F])||u.isArray(arguments[F])?v.easing=arguments[F]:u.isFunction(arguments[F])&&(v.complete=arguments[F]):v.duration=arguments[F]}var G;switch(s){case"scroll":G="scroll";break;case"reverse":G="reverse";break;case"pause":var H=(new Date).getTime();return o.each(r,function(a,b){h(b,H)}),o.each(y.State.calls,function(a,b){var c=!1;b&&o.each(b[1],function(a,e){var f=v===d?"":v;return f!==!0&&b[2].queue!==f&&(v!==d||b[2].queue!==!1)||(o.each(r,function(a,d){if(d===e)return b[5]={resume:!1},c=!0,!1}),!c&&void 0)})}),a();case"resume":return o.each(r,function(a,b){i(b,H)}),o.each(y.State.calls,function(a,b){var c=!1;b&&o.each(b[1],function(a,e){var f=v===d?"":v;return f!==!0&&b[2].queue!==f&&(v!==d||b[2].queue!==!1)||(!b[5]||(o.each(r,function(a,d){if(d===e)return b[5].resume=!0,c=!0,!1}),!c&&void 0))})}),a();case"finish":case"finishAll":case"stop":o.each(r,function(a,b){g(b)&&g(b).delayTimer&&(clearTimeout(g(b).delayTimer.setTimeout),g(b).delayTimer.next&&g(b).delayTimer.next(),delete g(b).delayTimer),"finishAll"!==s||v!==!0&&!u.isString(v)||(o.each(o.queue(b,u.isString(v)?v:""),function(a,b){u.isFunction(b)&&b()}),o.queue(b,u.isString(v)?v:"",[]))});var I=[];return o.each(y.State.calls,function(a,b){b&&o.each(b[1],function(c,e){var f=v===d?"":v;if(f!==!0&&b[2].queue!==f&&(v!==d||b[2].queue!==!1))return!0;o.each(r,function(c,d){if(d===e)if((v===!0||u.isString(v))&&(o.each(o.queue(d,u.isString(v)?v:""),function(a,b){u.isFunction(b)&&b(null,!0)}),o.queue(d,u.isString(v)?v:"",[])),"stop"===s){var h=g(d);h&&h.tweensContainer&&f!==!1&&o.each(h.tweensContainer,function(a,b){b.endValue=b.currentValue}),I.push(a)}else"finish"!==s&&"finishAll"!==s||(b[2].duration=1)})})}),"stop"===s&&(o.each(I,function(a,b){n(b,!0)}),z.promise&&z.resolver(r)),a();default:if(!o.isPlainObject(s)||u.isEmptyObject(s)){if(u.isString(s)&&y.Redirects[s]){j=o.extend({},v);var J=j.duration,K=j.delay||0;return j.backwards===!0&&(r=o.extend(!0,[],r).reverse()),o.each(r,function(a,b){parseFloat(j.stagger)?j.delay=K+parseFloat(j.stagger)*a:u.isFunction(j.stagger)&&(j.delay=K+j.stagger.call(b,a,C)),j.drag&&(j.duration=parseFloat(J)||(/^(callout|transition)/.test(s)?1e3:w),j.duration=Math.max(j.duration*(j.backwards?1-a/C:(a+1)/C),.75*j.duration,200)),y.Redirects[s].call(b,b,j||{},a,C,r,z.promise?z:d)}),a()}var L="Velocity: First argument ("+s+") was not a property map, a known action, or a registered redirect. Aborting.";return z.promise?z.rejecter(new Error(L)):b.console&&console.log(L),a()}G="start"}var M={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},N=[];o.each(r,function(a,b){u.isNode(b)&&e(b,a)}),j=o.extend({},y.defaults,v),j.loop=parseInt(j.loop,10);var O=2*j.loop-1;if(j.loop)for(var P=0;P<O;P++){var Q={delay:j.delay,progress:j.progress};P===O-1&&(Q.display=j.display,Q.visibility=j.visibility,Q.complete=j.complete),B(r,"reverse",Q)}return a()};y=o.extend(B,y),y.animate=B;var C=b.requestAnimationFrame||q;if(!y.State.isMobile&&c.hidden!==d){var D=function(){c.hidden?(C=function(a){return setTimeout(function(){a(!0)},16)},m()):C=b.requestAnimationFrame||q};D(),c.addEventListener("visibilitychange",D)}return a.Velocity=y,a!==b&&(a.fn.velocity=B,a.fn.velocity.defaults=y.defaults),o.each(["Down","Up"],function(a,b){y.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=o.extend({},c),j=i.begin,k=i.complete,l={},m={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""};i.display===d&&(i.display="Down"===b?"inline"===y.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){0===e&&j&&j.call(g,g);for(var c in m)if(m.hasOwnProperty(c)){l[c]=a.style[c];var d=A.getPropertyValue(a,c);m[c]="Down"===b?[d,0]:[0,d]}l.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in l)l.hasOwnProperty(b)&&(a.style[b]=l[b]);e===f-1&&(k&&k.call(g,g),h&&h.resolver(g))},y(a,m,i)}}),o.each(["In","Out"],function(a,b){y.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=o.extend({},c),j=i.complete,k={opacity:"In"===b?1:0};0!==e&&(i.begin=null),i.complete=e!==f-1?null:function(){j&&j.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),y(this,k,i)}}),y}(window.jQuery||window.Zepto||window,window,window?window.document:undefined)});
7
 
39
  /*Modernizr js*/
40
  window.Modernizr=function(e,t,n){function r(e){b.cssText=e}function o(e,t){return r(S.join(e+";")+(t||""))}function a(e,t){return typeof e===t}function i(e,t){return!!~(""+e).indexOf(t)}function c(e,t){for(var r in e){var o=e[r];if(!i(o,"-")&&b[o]!==n)return"pfx"==t?o:!0}return!1}function s(e,t,r){for(var o in e){var i=t[e[o]];if(i!==n)return r===!1?e[o]:a(i,"function")?i.bind(r||t):i}return!1}function u(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),o=(e+" "+k.join(r+" ")+r).split(" ");return a(t,"string")||a(t,"undefined")?c(o,t):(o=(e+" "+T.join(r+" ")+r).split(" "),s(o,t,n))}function l(){p.input=function(n){for(var r=0,o=n.length;o>r;r++)j[n[r]]=!!(n[r]in E);return j.list&&(j.list=!(!t.createElement("datalist")||!e.HTMLDataListElement)),j}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),p.inputtypes=function(e){for(var r,o,a,i=0,c=e.length;c>i;i++)E.setAttribute("type",o=e[i]),r="text"!==E.type,r&&(E.value=x,E.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(o)&&E.style.WebkitAppearance!==n?(g.appendChild(E),a=t.defaultView,r=a.getComputedStyle&&"textfield"!==a.getComputedStyle(E,null).WebkitAppearance&&0!==E.offsetHeight,g.removeChild(E)):/^(search|tel)$/.test(o)||(r=/^(url|email)$/.test(o)?E.checkValidity&&E.checkValidity()===!1:E.value!=x)),P[e[i]]=!!r;return P}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d,f,m="2.8.3",p={},h=!0,g=t.documentElement,v="modernizr",y=t.createElement(v),b=y.style,E=t.createElement("input"),x=":)",w={}.toString,S=" -webkit- -moz- -o- -ms- ".split(" "),C="Webkit Moz O ms",k=C.split(" "),T=C.toLowerCase().split(" "),N={svg:"http://www.w3.org/2000/svg"},M={},P={},j={},$=[],D=$.slice,F=function(e,n,r,o){var a,i,c,s,u=t.createElement("div"),l=t.body,d=l||t.createElement("body");if(parseInt(r,10))for(;r--;)c=t.createElement("div"),c.id=o?o[r]:v+(r+1),u.appendChild(c);return a=["&#173;",'<style id="s',v,'">',e,"</style>"].join(""),u.id=v,(l?u:d).innerHTML+=a,d.appendChild(u),l||(d.style.background="",d.style.overflow="hidden",s=g.style.overflow,g.style.overflow="hidden",g.appendChild(d)),i=n(u,e),l?u.parentNode.removeChild(u):(d.parentNode.removeChild(d),g.style.overflow=s),!!i},z=function(t){var n=e.matchMedia||e.msMatchMedia;if(n)return n(t)&&n(t).matches||!1;var r;return F("@media "+t+" { #"+v+" { position: absolute; } }",function(t){r="absolute"==(e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position}),r},A=function(){function e(e,o){o=o||t.createElement(r[e]||"div"),e="on"+e;var i=e in o;return i||(o.setAttribute||(o=t.createElement("div")),o.setAttribute&&o.removeAttribute&&(o.setAttribute(e,""),i=a(o[e],"function"),a(o[e],"undefined")||(o[e]=n),o.removeAttribute(e))),o=null,i}var r={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return e}(),L={}.hasOwnProperty;f=a(L,"undefined")||a(L.call,"undefined")?function(e,t){return t in e&&a(e.constructor.prototype[t],"undefined")}:function(e,t){return L.call(e,t)},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError;var n=D.call(arguments,1),r=function(){if(this instanceof r){var o=function(){};o.prototype=t.prototype;var a=new o,i=t.apply(a,n.concat(D.call(arguments)));return Object(i)===i?i:a}return t.apply(e,n.concat(D.call(arguments)))};return r}),M.flexbox=function(){return u("flexWrap")},M.flexboxlegacy=function(){return u("boxDirection")},M.canvas=function(){var e=t.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},M.canvastext=function(){return!(!p.canvas||!a(t.createElement("canvas").getContext("2d").fillText,"function"))},M.webgl=function(){return!!e.WebGLRenderingContext},M.touch=function(){var n;return"ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch?n=!0:F(["@media (",S.join("touch-enabled),("),v,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(e){n=9===e.offsetTop}),n},M.geolocation=function(){return"geolocation"in navigator},M.postmessage=function(){return!!e.postMessage},M.websqldatabase=function(){return!!e.openDatabase},M.indexedDB=function(){return!!u("indexedDB",e)},M.hashchange=function(){return A("hashchange",e)&&(t.documentMode===n||t.documentMode>7)},M.history=function(){return!(!e.history||!history.pushState)},M.draganddrop=function(){var e=t.createElement("div");return"draggable"in e||"ondragstart"in e&&"ondrop"in e},M.websockets=function(){return"WebSocket"in e||"MozWebSocket"in e},M.rgba=function(){return r("background-color:rgba(150,255,150,.5)"),i(b.backgroundColor,"rgba")},M.hsla=function(){return r("background-color:hsla(120,40%,100%,.5)"),i(b.backgroundColor,"rgba")||i(b.backgroundColor,"hsla")},M.multiplebgs=function(){return r("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(b.background)},M.backgroundsize=function(){return u("backgroundSize")},M.borderimage=function(){return u("borderImage")},M.borderradius=function(){return u("borderRadius")},M.boxshadow=function(){return u("boxShadow")},M.textshadow=function(){return""===t.createElement("div").style.textShadow},M.opacity=function(){return o("opacity:.55"),/^0.55$/.test(b.opacity)},M.cssanimations=function(){return u("animationName")},M.csscolumns=function(){return u("columnCount")},M.cssgradients=function(){var e="background-image:",t="gradient(linear,left top,right bottom,from(#9f9),to(white));",n="linear-gradient(left top,#9f9, white);";return r((e+"-webkit- ".split(" ").join(t+e)+S.join(n+e)).slice(0,-e.length)),i(b.backgroundImage,"gradient")},M.cssreflections=function(){return u("boxReflect")},M.csstransforms=function(){return!!u("transform")},M.csstransforms3d=function(){var e=!!u("perspective");return e&&"webkitPerspective"in g.style&&F("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t){e=9===t.offsetLeft&&3===t.offsetHeight}),e},M.csstransitions=function(){return u("transition")},M.fontface=function(){var e;return F('@font-face {font-family:"font";src:url("https://")}',function(n,r){var o=t.getElementById("smodernizr"),a=o.sheet||o.styleSheet,i=a?a.cssRules&&a.cssRules[0]?a.cssRules[0].cssText:a.cssText||"":"";e=/src/i.test(i)&&0===i.indexOf(r.split(" ")[0])}),e},M.generatedcontent=function(){var e;return F(["#",v,"{font:0/0 a}#",v,':after{content:"',x,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){e=t.offsetHeight>=3}),e},M.video=function(){var e=t.createElement("video"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(r){}return n},M.audio=function(){var e=t.createElement("audio"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=e.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(r){}return n},M.localstorage=function(){try{return localStorage.setItem(v,v),localStorage.removeItem(v),!0}catch(e){return!1}},M.sessionstorage=function(){try{return sessionStorage.setItem(v,v),sessionStorage.removeItem(v),!0}catch(e){return!1}},M.webworkers=function(){return!!e.Worker},M.applicationcache=function(){return!!e.applicationCache},M.svg=function(){return!!t.createElementNS&&!!t.createElementNS(N.svg,"svg").createSVGRect},M.inlinesvg=function(){var e=t.createElement("div");return e.innerHTML="<svg/>",(e.firstChild&&e.firstChild.namespaceURI)==N.svg},M.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(w.call(t.createElementNS(N.svg,"animate")))},M.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(w.call(t.createElementNS(N.svg,"clipPath")))};for(var H in M)f(M,H)&&(d=H.toLowerCase(),p[d]=M[H](),$.push((p[d]?"":"no-")+d));return p.input||l(),p.addTest=function(e,t){if("object"==typeof e)for(var r in e)f(e,r)&&p.addTest(r,e[r]);else{if(e=e.toLowerCase(),p[e]!==n)return p;t="function"==typeof t?t():t,"undefined"!=typeof h&&h&&(g.className+=" "+(t?"":"no-")+e),p[e]=t}return p},r(""),y=E=null,function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=y.elements;return"string"==typeof e?e.split(" "):e}function o(e){var t=v[e[h]];return t||(t={},g++,e[h]=g,v[g]=t),t}function a(e,n,r){if(n||(n=t),l)return n.createElement(e);r||(r=o(n));var a;return a=r.cache[e]?r.cache[e].cloneNode():p.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!a.canHaveChildren||m.test(e)||a.tagUrn?a:r.frag.appendChild(a)}function i(e,n){if(e||(e=t),l)return e.createDocumentFragment();n=n||o(e);for(var a=n.frag.cloneNode(),i=0,c=r(),s=c.length;s>i;i++)a.createElement(c[i]);return a}function c(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return y.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(y,t.frag)}function s(e){e||(e=t);var r=o(e);return!y.shivCSS||u||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||c(e,r),e}var u,l,d="3.7.0",f=e.html5||{},m=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,h="_html5shiv",g=0,v={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",u="hidden"in e,l=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){u=!0,l=!0}}();var y={elements:f.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:d,shivCSS:f.shivCSS!==!1,supportsUnknownElements:l,shivMethods:f.shivMethods!==!1,type:"default",shivDocument:s,createElement:a,createDocumentFragment:i};e.html5=y,s(t)}(this,t),p._version=m,p._prefixes=S,p._domPrefixes=T,p._cssomPrefixes=k,p.mq=z,p.hasEvent=A,p.testProp=function(e){return c([e])},p.testAllProps=u,p.testStyles=F,p.prefixed=function(e,t,n){return t?u(e,t,n):u(e,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(h?" js "+$.join(" "):""),p}(this,this.document);
41
 
42
+ /* imagesLoaded v4.1.4 */
43
+ !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
44
 
45
  /*Lity.min.js v2.2.2 edit*/
46
  (function(window,factory){if(typeof define==='function'&&define.amd){define(['jquery'],function($){return factory(window,$)})}else if(typeof module==='object'&&typeof module.exports==='object'){module.exports=factory(window,require('jquery'))}else{window.lity=factory(window,window.jQuery||window.Zepto)}}(typeof window!=="undefined"?window:this,function(window,$){'use strict';var document=window.document;var _win=$(window);var _deferred=$.Deferred;var _html=$('html');var _instances=[];var _attrAriaHidden='aria-hidden';var _dataAriaHidden='lity-'+_attrAriaHidden;var _focusableElementsSelector='a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])';var _defaultOptions={handler:null,handlers:{image:imageHandler,inline:inlineHandler,youtube:youtubeHandler,vimeo:vimeoHandler,googlemaps:googlemapsHandler,facebookvideo:facebookvideoHandler,iframe:iframeHandler},template:'<div class="lity" role="dialog" aria-label="Dialog Window (Press escape to close)" tabindex="-1"><div class="lity-wrap" data-lity-close role="document"><div class="lity-loader" aria-hidden="true">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" aria-label="Close (Press escape to close)" data-lity-close>&times;</button></div></div></div>'};var _imageRegexp=/(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i;var _youtubeRegex=/(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i;var _vimeoRegex=/(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/;var _googlemapsRegex=/((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i;var _facebookvideoRegex=/(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i;var _transitionEndEvent=(function(){var el=document.createElement('div');var transEndEventNames={WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'oTransitionEnd otransitionend',transition:'transitionend'};for(var name in transEndEventNames){if(el.style[name]!==undefined){return transEndEventNames[name]}}
104
  /*slick.min.js*/
105
  !function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});
106
 
107
+ /*Isotope PACKAGED v3.0.6*/
108
+ !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf("%")!=-1&&(s=s/100*a.width),n.indexOf("%")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry-layout/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/masonry",["../layout-mode","masonry-layout/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope-layout/js/item","isotope-layout/js/layout-mode","isotope-layout/js/layout-modes/masonry","isotope-layout/js/layout-modes/fit-rows","isotope-layout/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope-layout/js/item"),require("isotope-layout/js/layout-mode"),require("isotope-layout/js/layout-modes/masonry"),require("isotope-layout/js/layout-modes/fit-rows"),require("isotope-layout/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t);
109
+ }:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
110
 
111
+ /* Packery layout v2.0.1 */
112
+ !function(a,b){"function"==typeof define&&define.amd?define("packery/js/rect",b):"object"==typeof module&&module.exports?module.exports=b():(a.Packery=a.Packery||{},a.Packery.Rect=b())}(window,function(){function a(b){for(var c in a.defaults)this[c]=a.defaults[c];for(c in b)this[c]=b[c]}a.defaults={x:0,y:0,width:0,height:0};var b=a.prototype;return b.contains=function(a){var b=a.width||0,c=a.height||0;return this.x<=a.x&&this.y<=a.y&&this.x+this.width>=a.x+b&&this.y+this.height>=a.y+c},b.overlaps=function(a){var b=this.x+this.width,c=this.y+this.height,d=a.x+a.width,e=a.y+a.height;return this.x<d&&b>a.x&&this.y<e&&c>a.y},b.getMaximalFreeRects=function(b){if(!this.overlaps(b))return!1;var c,d=[],e=this.x+this.width,f=this.y+this.height,g=b.x+b.width,h=b.y+b.height;return this.y<b.y&&(c=new a({x:this.x,y:this.y,width:this.width,height:b.y-this.y}),d.push(c)),e>g&&(c=new a({x:g,y:this.y,width:e-g,height:this.height}),d.push(c)),f>h&&(c=new a({x:this.x,y:h,width:this.width,height:f-h}),d.push(c)),this.x<b.x&&(c=new a({x:this.x,y:this.y,width:b.x-this.x,height:this.height}),d.push(c)),d},b.canFit=function(a){return this.width>=a.width&&this.height>=a.height},a}),function(a,b){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],b);else if("object"==typeof module&&module.exports)module.exports=b(require("./rect"));else{var c=a.Packery=a.Packery||{};c.Packer=b(c.Rect)}}(window,function(a){function b(a,b,c){this.width=a||0,this.height=b||0,this.sortDirection=c||"downwardLeftToRight",this.reset()}var c=b.prototype;c.reset=function(){this.spaces=[];var b=new a({x:0,y:0,width:this.width,height:this.height});this.spaces.push(b),this.sorter=d[this.sortDirection]||d.downwardLeftToRight},c.pack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b];if(c.canFit(a)){this.placeInSpace(a,c);break}}},c.columnPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.x<=a.x&&c.x+c.width>=a.x+a.width&&c.height>=a.height-.01;if(d){a.y=c.y,this.placed(a);break}}},c.rowPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.y<=a.y&&c.y+c.height>=a.y+a.height&&c.width>=a.width-.01;if(d){a.x=c.x,this.placed(a);break}}},c.placeInSpace=function(a,b){a.x=b.x,a.y=b.y,this.placed(a)},c.placed=function(a){for(var b=[],c=0;c<this.spaces.length;c++){var d=this.spaces[c],e=d.getMaximalFreeRects(a);e?b.push.apply(b,e):b.push(d)}this.spaces=b,this.mergeSortSpaces()},c.mergeSortSpaces=function(){b.mergeRects(this.spaces),this.spaces.sort(this.sorter)},c.addSpace=function(a){this.spaces.push(a),this.mergeSortSpaces()},b.mergeRects=function(a){var b=0,c=a[b];a:for(;c;){for(var d=0,e=a[b+d];e;){if(e==c)d++;else{if(e.contains(c)){a.splice(b,1),c=a[b];continue a}c.contains(e)?a.splice(b+d,1):d++}e=a[b+d]}b++,c=a[b]}return a};var d={downwardLeftToRight:function(a,b){return a.y-b.y||a.x-b.x},rightwardTopToBottom:function(a,b){return a.x-b.x||a.y-b.y}};return b}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],b):"object"==typeof module&&module.exports?module.exports=b(require("outlayer"),require("./rect")):a.Packery.Item=b(a.Outlayer,a.Packery.Rect)}(window,function(a,b){var c=document.documentElement.style,d="string"==typeof c.transform?"transform":"WebkitTransform",e=function(){a.Item.apply(this,arguments)},f=e.prototype=Object.create(a.Item.prototype),g=f._create;f._create=function(){g.call(this),this.rect=new b};var h=f.moveTo;return f.moveTo=function(a,b){var c=Math.abs(this.position.x-a),d=Math.abs(this.position.y-b),e=this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&1>c&&1>d;return e?void this.goTo(a,b):void h.apply(this,arguments)},f.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&d&&(this.element.style[d]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},f.disablePlacing=function(){this.isPlacing=!1},f.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},f.showDropPlaceholder=function(){var a=this.dropPlaceholder;a||(a=this.dropPlaceholder=document.createElement("div"),a.className="packery-drop-placeholder",a.style.position="absolute"),a.style.width=this.size.width+"px",a.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(a)},f.positionDropPlaceholder=function(){this.dropPlaceholder.style[d]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},f.hideDropPlaceholder=function(){this.layout.element.removeChild(this.dropPlaceholder)},e}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/packery",["get-size/get-size","outlayer/outlayer","./rect","./packer","./item"],b):"object"==typeof module&&module.exports?module.exports=b(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):a.Packery=b(a.getSize,a.Outlayer,a.Packery.Rect,a.Packery.Packer,a.Packery.Item)}(window,function(a,b,c,d,e){function f(a,b){return a.position.y-b.position.y||a.position.x-b.position.x}function g(a,b){return a.position.x-b.position.x||a.position.y-b.position.y}function h(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.sqrt(c*c+d*d)}c.prototype.canFit=function(a){return this.width>=a.width-1&&this.height>=a.height-1};var i=b.create("packery");i.Item=e;var j=i.prototype;j._create=function(){b.prototype._create.call(this),this.packer=new d,this.shiftPacker=new d,this.isEnabled=!0,this.dragItemCount=0;var a=this;this.handleDraggabilly={dragStart:function(){a.itemDragStart(this.element)},dragMove:function(){a.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){a.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(b,c){c&&a.itemDragStart(b.currentTarget)},drag:function(b,c){c&&a.itemDragMove(b.currentTarget,c.position.left,c.position.top)},stop:function(b,c){c&&a.itemDragEnd(b.currentTarget)}}},j._resetLayout=function(){this.getSize(),this._getMeasurements();var a,b,c;this._getOption("horizontal")?(a=1/0,b=this.size.innerHeight+this.gutter,c="rightwardTopToBottom"):(a=this.size.innerWidth+this.gutter,b=1/0,c="downwardLeftToRight"),this.packer.width=this.shiftPacker.width=a,this.packer.height=this.shiftPacker.height=b,this.packer.sortDirection=this.shiftPacker.sortDirection=c,this.packer.reset(),this.maxY=0,this.maxX=0},j._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},j._getItemLayoutPosition=function(a){if(this._setRectSize(a.element,a.rect),this.isShifting||this.dragItemCount>0){var b=this._getPackMethod();this.packer[b](a.rect)}else this.packer.pack(a.rect);return this._setMaxXY(a.rect),a.rect},j.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},j._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},j._setMaxXY=function(a){this.maxX=Math.max(a.x+a.width,this.maxX),this.maxY=Math.max(a.y+a.height,this.maxY)},j._setRectSize=function(b,c){var d=a(b),e=d.outerWidth,f=d.outerHeight;(e||f)&&(e=this._applyGridGutter(e,this.columnWidth),f=this._applyGridGutter(f,this.rowHeight)),c.width=Math.min(e,this.packer.width),c.height=Math.min(f,this.packer.height)},j._applyGridGutter=function(a,b){if(!b)return a+this.gutter;b+=this.gutter;var c=a%b,d=c&&1>c?"round":"ceil";return a=Math[d](a/b)*b},j._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},j._manageStamp=function(a){var b,d=this.getItem(a);if(d&&d.isPlacing)b=d.rect;else{var e=this._getElementOffset(a);b=new c({x:this._getOption("originLeft")?e.left:e.right,y:this._getOption("originTop")?e.top:e.bottom})}this._setRectSize(a,b),this.packer.placed(b),this._setMaxXY(b)},j.sortItemsByPosition=function(){var a=this._getOption("horizontal")?g:f;this.items.sort(a)},j.fit=function(a,b,c){var d=this.getItem(a);d&&(this.stamp(d.element),d.enablePlacing(),this.updateShiftTargets(d),b=void 0===b?d.rect.x:b,c=void 0===c?d.rect.y:c,this.shift(d,b,c),this._bindFitEvents(d),d.moveTo(d.rect.x,d.rect.y),this.shiftLayout(),this.unstamp(d.element),this.sortItemsByPosition(),d.disablePlacing())},j._bindFitEvents=function(a){function b(){d++,2==d&&c.dispatchEvent("fitComplete",null,[a])}var c=this,d=0;a.once("layout",b),this.once("layoutComplete",b)},j.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},j.needsResizeLayout=function(){var b=a(this.element),c=this._getOption("horizontal")?"innerHeight":"innerWidth";return b[c]!=this.size[c]},j.resizeShiftPercentLayout=function(){var b=this._getItemsForLayout(this.items),c=this._getOption("horizontal"),d=c?"y":"x",e=c?"height":"width",f=c?"rowHeight":"columnWidth",g=c?"innerHeight":"innerWidth",h=this[f];if(h=h&&h+this.gutter){this._getMeasurements();var i=this[f]+this.gutter;b.forEach(function(a){var b=Math.round(a.rect[d]/h);a.rect[d]=b*i})}else{var j=a(this.element)[g]+this.gutter,k=this.packer[e];b.forEach(function(a){a.rect[d]=a.rect[d]/k*j})}this.shiftLayout()},j.itemDragStart=function(a){if(this.isEnabled){this.stamp(a);var b=this.getItem(a);b&&(b.enablePlacing(),b.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(b))}},j.updateShiftTargets=function(a){this.shiftPacker.reset(),this._getBoundingRect();var b=this._getOption("originLeft"),d=this._getOption("originTop");this.stamps.forEach(function(a){var e=this.getItem(a);if(!e||!e.isPlacing){var f=this._getElementOffset(a),g=new c({x:b?f.left:f.right,y:d?f.top:f.bottom});this._setRectSize(a,g),this.shiftPacker.placed(g)}},this);var e=this._getOption("horizontal"),f=e?"rowHeight":"columnWidth",g=e?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var h,i=this[f];if(i=i&&i+this.gutter){var j=Math.ceil(a.rect[g]/i),k=Math.floor((this.shiftPacker[g]+this.gutter)/i);h=(k-j)*i;for(var l=0;k>l;l++)this._addShiftTarget(l*i,0,h)}else h=this.shiftPacker[g]+this.gutter-a.rect[g],this._addShiftTarget(0,0,h);var m=this._getItemsForLayout(this.items),n=this._getPackMethod();m.forEach(function(a){var b=a.rect;this._setRectSize(a.element,b),this.shiftPacker[n](b),this._addShiftTarget(b.x,b.y,h);var c=e?b.x+b.width:b.x,d=e?b.y:b.y+b.height;if(this._addShiftTarget(c,d,h),i)for(var f=Math.round(b[g]/i),j=1;f>j;j++){var k=e?c:b.x+i*j,l=e?b.y+i*j:d;this._addShiftTarget(k,l,h)}},this)},j._addShiftTarget=function(a,b,c){var d=this._getOption("horizontal")?b:a;if(!(0!==d&&d>c)){var e=a+","+b,f=-1!=this.shiftTargetKeys.indexOf(e);f||(this.shiftTargetKeys.push(e),this.shiftTargets.push({x:a,y:b}))}},j.shift=function(a,b,c){var d,e=1/0,f={x:b,y:c};this.shiftTargets.forEach(function(a){var b=h(a,f);e>b&&(d=a,e=b)}),a.rect.x=d.x,a.rect.y=d.y};var k=120;j.itemDragMove=function(a,b,c){function d(){f.shift(e,b,c),e.positionDropPlaceholder(),f.layout()}var e=this.isEnabled&&this.getItem(a);if(e){b-=this.size.paddingLeft,c-=this.size.paddingTop;var f=this,g=new Date;this._itemDragTime&&g-this._itemDragTime<k?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(d,k)):(d(),this._itemDragTime=g)}},j.itemDragEnd=function(a){function b(){d++,2==d&&(c.element.classList.remove("is-positioning-post-drag"),c.hideDropPlaceholder(),e.dispatchEvent("dragItemPositioned",null,[c]))}var c=this.isEnabled&&this.getItem(a);if(c){clearTimeout(this.dragTimeout),c.element.classList.add("is-positioning-post-drag");var d=0,e=this;c.once("layout",b),this.once("layoutComplete",b),c.moveTo(c.rect.x,c.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),c.disablePlacing(),this.unstamp(c.element)}},j.bindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"on")},j.unbindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"off")},j._bindDraggabillyEvents=function(a,b){var c=this.handleDraggabilly;a[b]("dragStart",c.dragStart),a[b]("dragMove",c.dragMove),a[b]("dragEnd",c.dragEnd)},j.bindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"on")},j.unbindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"off")},j._bindUIDraggableEvents=function(a,b){var c=this.handleUIDraggable;a[b]("dragstart",c.start)[b]("drag",c.drag)[b]("dragstop",c.stop)};var l=j.destroy;return j.destroy=function(){l.apply(this,arguments),this.isEnabled=!1},i.Rect=c,i.Packer=d,i}),function(a,b){"function"==typeof define&&define.amd?define(["isotope-layout/js/layout-mode","packery/js/packery"],b):"object"==typeof module&&module.exports?module.exports=b(require("isotope-layout/js/layout-mode"),require("packery")):b(a.Isotope.LayoutMode,a.Packery)}(window,function(a,b){var c=a.create("packery"),d=c.prototype,e={_getElementOffset:!0,_getMeasurement:!0};for(var f in b.prototype)e[f]||(d[f]=b.prototype[f]);var g=d._resetLayout;d._resetLayout=function(){this.packer=this.packer||new b.Packer,this.shiftPacker=this.shiftPacker||new b.Packer,g.apply(this,arguments)};var h=d._getItemLayoutPosition;d._getItemLayoutPosition=function(a){return a.rect=a.rect||new b.Rect,h.call(this,a)};var i=d.needsResizeLayout;d.needsResizeLayout=function(){return this._getOption("horizontal")?this.needsVerticalResizeLayout():i.call(this)};var j=d._getOption;return d._getOption=function(a){return"horizontal"==a?void 0!==this.options.isHorizontal?this.options.isHorizontal:this.options.horizontal:j.apply(this.isotope,arguments)},c});
113
 
114
  /*counter numscroller.js 1.0*/
115
  !function($){function numberRoller(t){var i=$(".roller-title-number-"+t).attr("data-min"),o=$(".roller-title-number-"+t).attr("data-max"),e=$(".roller-title-number-"+t).attr("data-delay");numberRoll(t,i,o,$(".roller-title-number-"+t).attr("data-increment"),1e3*e/(o-i))}function numberRoll(slno,min,max,increment,timeout){min<=max?($(".roller-title-number-"+slno).html(min),min=parseInt(min)+parseInt(increment),setTimeout(function(){numberRoll(eval(slno),eval(min),eval(max),eval(increment),eval(timeout))},timeout)):$(".roller-title-number-"+slno).html(max)}$(window).on("load",function(){$(document).scrollzipInit(),$(document).rollerInit()}),$(window).on("load scroll resize",function(){$(".numscroller").scrollzip({showFunction:function(){numberRoller($(this).attr("data-slno"))},wholeVisible:!1})}),$.fn.scrollzipInit=function(){$("body").prepend("<div style='position:fixed;top:0px;left:0px;width:0;height:0;' id='scrollzipPoint'></div>")},$.fn.rollerInit=function(){var t=0;$(".numscroller").each(function(){t++,$(this).attr("data-slno",t),$(this).addClass("roller-title-number-"+t)})},$.fn.scrollzip=function(t){var o=$.extend({showFunction:null,hideFunction:null,showShift:0,wholeVisible:!1,hideShift:0},t);return this.each(function(t,i){return $(this).addClass("scrollzip"),$.isFunction(o.showFunction)&&$("#scrollzipPoint").length&&!$(this).hasClass("isShown")&&$(window).outerHeight()+$("#scrollzipPoint").offset().top-o.showShift>$(this).offset().top+(o.wholeVisible?$(this).outerHeight():0)&&$("#scrollzipPoint").offset().top+(o.wholeVisible?$(this).outerHeight():0)<$(this).outerHeight()+$(this).offset().top-o.showShift&&($(this).addClass("isShown"),o.showFunction.call(this)),$.isFunction(o.hideFunction)&&$("#scrollzipPoint").length&&$(this).hasClass("isShown")&&($(window).outerHeight()+$("#scrollzipPoint").offset().top-o.hideShift<$(this).offset().top+(o.wholeVisible?$(this).outerHeight():0)||$("#scrollzipPoint").offset().top+(o.wholeVisible?$(this).outerHeight():0)>$(this).outerHeight()+$(this).offset().top-o.hideShift)&&($(this).removeClass("isShown"),o.hideFunction.call(this)),this})}}(jQuery);
assets/js/extra/easepack.min.js DELETED
@@ -1,12 +0,0 @@
1
- /*!
2
- * VERSION: 1.15.6
3
- * DATE: 2017-06-19
4
- * UPDATES AND DOCS AT: http://greensock.com
5
- *
6
- * @license Copyright (c) 2008-2017, GreenSock. All rights reserved.
7
- * This work is subject to the terms at http://greensock.com/standard-license or for
8
- * Club GreenSock members, the software agreement that was issued with your membership.
9
- *
10
- * @author: Jack Doyle, jack@greensock.com
11
- **/
12
- var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e=_gsScope.GreenSockGlobals||_gsScope,f=e.com.greensock,g=2*Math.PI,h=Math.PI/2,i=f._class,j=function(b,c){var d=i("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},k=a.register||function(){},l=function(a,b,c,d,e){var f=i("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return k(f,a),f},m=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},n=function(b,c){var d=i("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},o=l("Back",n("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),n("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),n("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),p=i("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),q=p.prototype=new a;return q.constructor=p,q.getRatio=function(a){var b=a+(.5-a)*this._p;return a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1===a?0:1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},p.ease=new p(.7,.7),q.config=p.config=function(a,b,c){return new p(a,b,c)},b=i("easing.SteppedEase",function(a,b){a=a||1,this._p1=1/a,this._p2=a+(b?0:1),this._p3=b?1:0},!0),q=b.prototype=new a,q.constructor=b,q.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),((this._p2*a|0)+this._p3)*this._p1},q.config=b.config=function(a,c){return new b(a,c)},c=i("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),n=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--n>-1;)c=o?Math.random():1/l*n,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:n%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new m(1,1,null),n=l;--n>-1;)g=j[n],h=new m(g.x,g.y,h);this._prev=new m(0,0,0!==h.t?h:h.next)},!0),q=c.prototype=new a,q.constructor=c,q.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},q.config=function(a){return new c(a)},c.ease=new c,l("Bounce",j("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),j("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),j("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),l("Circ",j("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),j("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),j("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),d=function(b,c,d){var e=i("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/g*(Math.asin(1/this._p1)||0),this._p2=g/this._p2},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},l("Elastic",d("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),d("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),d("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),l("Expo",j("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),j("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),j("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),l("Sine",j("SineOut",function(a){return Math.sin(a*h)}),j("SineIn",function(a){return-Math.cos(a*h)+1}),j("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),i("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),k(e.SlowMo,"SlowMo","ease,"),k(c,"RoughEase","ease,"),k(b,"SteppedEase","ease,"),o},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(){"use strict";var a=function(){return _gsScope.GreenSockGlobals||_gsScope};"undefined"!=typeof module&&module.exports?(require("../TweenLite.min.js"),module.exports=a()):"function"==typeof define&&define.amd&&define(["TweenLite"],a)}();
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/extra/imagesloaded.pkgd.min.js CHANGED
@@ -1,7 +1,7 @@
1
  /*!
2
- * imagesLoaded PACKAGED v4.1.3
3
  * JavaScript is all like "You images are done yet or what?"
4
  * MIT License
5
  */
6
 
7
- !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return-1==n.indexOf(t)&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return-1!=n&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=0,o=i[n];t=t||[];for(var r=this._onceEvents&&this._onceEvents[e];o;){var s=r&&r[o];s&&(this.off(e,o),delete r[o]),o.apply(this,t),n+=s?0:1,o=i[n]}return this}},t.allOff=t.removeAllListeners=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var i=0;i<e.length;i++)t.push(e[i]);else t.push(e);return t}function o(e,t,r){return this instanceof o?("string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=n(e),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(e,t,r)}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&d[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
1
  /*!
2
+ * imagesLoaded PACKAGED v4.1.4
3
  * JavaScript is all like "You images are done yet or what?"
4
  * MIT License
5
  */
6
 
7
+ !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
assets/js/extra/isotope.pkgd.min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Isotope PACKAGED v3.0.6
3
+ *
4
+ * Licensed GPLv3 for open source use
5
+ * or Isotope Commercial License for commercial use
6
+ *
7
+ * https://isotope.metafizzy.co
8
+ * Copyright 2010-2018 Metafizzy
9
+ */
10
+
11
+ !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf("%")!=-1&&(s=s/100*a.width),n.indexOf("%")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry-layout/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/masonry",["../layout-mode","masonry-layout/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope-layout/js/item","isotope-layout/js/layout-mode","isotope-layout/js/layout-modes/masonry","isotope-layout/js/layout-modes/fit-rows","isotope-layout/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope-layout/js/item"),require("isotope-layout/js/layout-mode"),require("isotope-layout/js/layout-modes/masonry"),require("isotope-layout/js/layout-modes/fit-rows"),require("isotope-layout/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t);
12
+ }:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
assets/js/extra/packery-mode.pkgd.min.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
- * Packery layout mode PACKAGED v2.0.0
3
  * sub-classes Packery
4
  */
5
 
6
- !function(a,b){"function"==typeof define&&define.amd?define("packery/js/rect",b):"object"==typeof module&&module.exports?module.exports=b():(a.Packery=a.Packery||{},a.Packery.Rect=b())}(window,function(){function a(b){for(var c in a.defaults)this[c]=a.defaults[c];for(c in b)this[c]=b[c]}a.defaults={x:0,y:0,width:0,height:0};var b=a.prototype;return b.contains=function(a){var b=a.width||0,c=a.height||0;return this.x<=a.x&&this.y<=a.y&&this.x+this.width>=a.x+b&&this.y+this.height>=a.y+c},b.overlaps=function(a){var b=this.x+this.width,c=this.y+this.height,d=a.x+a.width,e=a.y+a.height;return this.x<d&&b>a.x&&this.y<e&&c>a.y},b.getMaximalFreeRects=function(b){if(!this.overlaps(b))return!1;var c,d=[],e=this.x+this.width,f=this.y+this.height,g=b.x+b.width,h=b.y+b.height;return this.y<b.y&&(c=new a({x:this.x,y:this.y,width:this.width,height:b.y-this.y}),d.push(c)),e>g&&(c=new a({x:g,y:this.y,width:e-g,height:this.height}),d.push(c)),f>h&&(c=new a({x:this.x,y:h,width:this.width,height:f-h}),d.push(c)),this.x<b.x&&(c=new a({x:this.x,y:this.y,width:b.x-this.x,height:this.height}),d.push(c)),d},b.canFit=function(a){return this.width>=a.width&&this.height>=a.height},a}),function(a,b){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],b);else if("object"==typeof module&&module.exports)module.exports=b(require("./rect"));else{var c=a.Packery=a.Packery||{};c.Packer=b(c.Rect)}}(window,function(a){function b(a,b,c){this.width=a||0,this.height=b||0,this.sortDirection=c||"downwardLeftToRight",this.reset()}var c=b.prototype;c.reset=function(){this.spaces=[];var b=new a({x:0,y:0,width:this.width,height:this.height});this.spaces.push(b),this.sorter=d[this.sortDirection]||d.downwardLeftToRight},c.pack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b];if(c.canFit(a)){this.placeInSpace(a,c);break}}},c.columnPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.x<=a.x&&c.x+c.width>=a.x+a.width&&c.height>=a.height-.01;if(d){a.y=c.y,this.placed(a);break}}},c.rowPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.y<=a.y&&c.y+c.height>=a.y+a.height&&c.width>=a.width-.01;if(d){a.x=c.x,this.placed(a);break}}},c.placeInSpace=function(a,b){a.x=b.x,a.y=b.y,this.placed(a)},c.placed=function(a){for(var b=[],c=0;c<this.spaces.length;c++){var d=this.spaces[c],e=d.getMaximalFreeRects(a);e?b.push.apply(b,e):b.push(d)}this.spaces=b,this.mergeSortSpaces()},c.mergeSortSpaces=function(){b.mergeRects(this.spaces),this.spaces.sort(this.sorter)},c.addSpace=function(a){this.spaces.push(a),this.mergeSortSpaces()},b.mergeRects=function(a){var b=0,c=a[b];a:for(;c;){for(var d=0,e=a[b+d];e;){if(e==c)d++;else{if(e.contains(c)){a.splice(b,1),c=a[b];continue a}c.contains(e)?a.splice(b+d,1):d++}e=a[b+d]}b++,c=a[b]}return a};var d={downwardLeftToRight:function(a,b){return a.y-b.y||a.x-b.x},rightwardTopToBottom:function(a,b){return a.x-b.x||a.y-b.y}};return b}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],b):"object"==typeof module&&module.exports?module.exports=b(require("outlayer"),require("./rect")):a.Packery.Item=b(a.Outlayer,a.Packery.Rect)}(window,function(a,b){var c=document.documentElement.style,d="string"==typeof c.transform?"transform":"WebkitTransform",e=function(){a.Item.apply(this,arguments)},f=e.prototype=Object.create(a.Item.prototype),g=f._create;f._create=function(){g.call(this),this.rect=new b};var h=f.moveTo;return f.moveTo=function(a,b){var c=Math.abs(this.position.x-a),d=Math.abs(this.position.y-b),e=this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&1>c&&1>d;return e?void this.goTo(a,b):void h.apply(this,arguments)},f.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&d&&(this.element.style[d]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},f.disablePlacing=function(){this.isPlacing=!1},f.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},f.showDropPlaceholder=function(){var a=this.dropPlaceholder;a||(a=this.dropPlaceholder=document.createElement("div"),a.className="packery-drop-placeholder",a.style.position="absolute"),a.style.width=this.size.width+"px",a.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(a)},f.positionDropPlaceholder=function(){this.dropPlaceholder.style[d]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},f.hideDropPlaceholder=function(){this.layout.element.removeChild(this.dropPlaceholder)},e}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/packery",["get-size/get-size","outlayer/outlayer","./rect","./packer","./item"],b):"object"==typeof module&&module.exports?module.exports=b(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):a.Packery=b(a.getSize,a.Outlayer,a.Packery.Rect,a.Packery.Packer,a.Packery.Item)}(window,function(a,b,c,d,e){function f(a,b){return a.position.y-b.position.y||a.position.x-b.position.x}function g(a,b){return a.position.x-b.position.x||a.position.y-b.position.y}function h(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.sqrt(c*c+d*d)}c.prototype.canFit=function(a){return this.width>=a.width-1&&this.height>=a.height-1};var i=b.create("packery");i.Item=e;var j=i.prototype;j._create=function(){b.prototype._create.call(this),this.packer=new d,this.shiftPacker=new d,this.isEnabled=!0,this.dragItemCount=0;var a=this;this.handleDraggabilly={dragStart:function(){a.itemDragStart(this.element)},dragMove:function(){a.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){a.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(b,c){c&&a.itemDragStart(b.currentTarget)},drag:function(b,c){c&&a.itemDragMove(b.currentTarget,c.position.left,c.position.top)},stop:function(b,c){c&&a.itemDragEnd(b.currentTarget)}}},j._resetLayout=function(){this.getSize(),this._getMeasurements();var a,b,c;this._getOption("horizontal")?(a=1/0,b=this.size.innerHeight+this.gutter,c="rightwardTopToBottom"):(a=this.size.innerWidth+this.gutter,b=1/0,c="downwardLeftToRight"),this.packer.width=this.shiftPacker.width=a,this.packer.height=this.shiftPacker.height=b,this.packer.sortDirection=this.shiftPacker.sortDirection=c,this.packer.reset(),this.maxY=0,this.maxX=0},j._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},j._getItemLayoutPosition=function(a){if(this._setRectSize(a.element,a.rect),this.isShifting||this.dragItemCount>0){var b=this._getPackMethod();this.packer[b](a.rect)}else this.packer.pack(a.rect);return this._setMaxXY(a.rect),a.rect},j.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},j._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},j._setMaxXY=function(a){this.maxX=Math.max(a.x+a.width,this.maxX),this.maxY=Math.max(a.y+a.height,this.maxY)},j._setRectSize=function(b,c){var d=a(b),e=d.outerWidth,f=d.outerHeight;(e||f)&&(e=this._applyGridGutter(e,this.columnWidth),f=this._applyGridGutter(f,this.rowHeight)),c.width=Math.min(e,this.packer.width),c.height=Math.min(f,this.packer.height)},j._applyGridGutter=function(a,b){if(!b)return a+this.gutter;b+=this.gutter;var c=a%b,d=c&&1>c?"round":"ceil";return a=Math[d](a/b)*b},j._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},j._manageStamp=function(a){var b,d=this.getItem(a);if(d&&d.isPlacing)b=d.rect;else{var e=this._getElementOffset(a);b=new c({x:this._getOption("originLeft")?e.left:e.right,y:this._getOption("originTop")?e.top:e.bottom})}this._setRectSize(a,b),this.packer.placed(b),this._setMaxXY(b)},j.sortItemsByPosition=function(){var a=this._getOption("horizontal")?g:f;this.items.sort(a)},j.fit=function(a,b,c){var d=this.getItem(a);d&&(this.stamp(d.element),d.enablePlacing(),this.updateShiftTargets(d),b=void 0===b?d.rect.x:b,c=void 0===c?d.rect.y:c,this.shift(d,b,c),this._bindFitEvents(d),d.moveTo(d.rect.x,d.rect.y),this.shiftLayout(),this.unstamp(d.element),this.sortItemsByPosition(),d.disablePlacing())},j._bindFitEvents=function(a){function b(){d++,2==d&&c.dispatchEvent("fitComplete",null,[a])}var c=this,d=0;a.once("layout",b),this.once("layoutComplete",b)},j.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},j.needsResizeLayout=function(){var b=a(this.element),c=this._getOption("horizontal")?"innerHeight":"innerWidth";return b[c]!=this.size[c]},j.resizeShiftPercentLayout=function(){var b=this._getItemsForLayout(this.items),c=this._getOption("horizontal"),d=c?"y":"x",e=c?"height":"width",f=c?"rowHeight":"columnWidth",g=c?"innerHeight":"innerWidth",h=this[f];if(h=h&&h+this.gutter){this._getMeasurements();var i=this[f]+this.gutter;b.forEach(function(a){var b=Math.round(a.rect[d]/h);a.rect[d]=b*i})}else{var j=a(this.element)[g]+this.gutter,k=this.packer[e];b.forEach(function(a){a.rect[d]=a.rect[d]/k*j})}this.shiftLayout()},j.itemDragStart=function(a){if(this.isEnabled){this.stamp(a);var b=this.getItem(a);b&&(b.enablePlacing(),b.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(b))}},j.updateShiftTargets=function(a){this.shiftPacker.reset(),this._getBoundingRect();var b=this._getOption("originLeft"),d=this._getOption("originTop");this.stamps.forEach(function(a){var e=this.getItem(a);if(!e||!e.isPlacing){var f=this._getElementOffset(a),g=new c({x:b?f.left:f.right,y:d?f.top:f.bottom});this._setRectSize(a,g),this.shiftPacker.placed(g)}},this);var e=this._getOption("horizontal"),f=e?"rowHeight":"columnWidth",g=e?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var h,i=this[f];if(i=i&&i+this.gutter){var j=Math.ceil(a.rect[g]/i),k=Math.floor((this.shiftPacker[g]+this.gutter)/i);h=(k-j)*i;for(var l=0;k>l;l++)this._addShiftTarget(l*i,0,h)}else h=this.shiftPacker[g]+this.gutter-a.rect[g],this._addShiftTarget(0,0,h);var m=this._getItemsForLayout(this.items),n=this._getPackMethod();m.forEach(function(a){var b=a.rect;this._setRectSize(a.element,b),this.shiftPacker[n](b),this._addShiftTarget(b.x,b.y,h);var c=e?b.x+b.width:b.x,d=e?b.y:b.y+b.height;if(this._addShiftTarget(c,d,h),i)for(var f=Math.round(b[g]/i),j=1;f>j;j++){var k=e?c:b.x+i*j,l=e?b.y+i*j:d;this._addShiftTarget(k,l,h)}},this)},j._addShiftTarget=function(a,b,c){var d=this._getOption("horizontal")?b:a;if(!(0!==d&&d>c)){var e=a+","+b,f=-1!=this.shiftTargetKeys.indexOf(e);f||(this.shiftTargetKeys.push(e),this.shiftTargets.push({x:a,y:b}))}},j.shift=function(a,b,c){var d,e=1/0,f={x:b,y:c};this.shiftTargets.forEach(function(a){var b=h(a,f);e>b&&(d=a,e=b)}),a.rect.x=d.x,a.rect.y=d.y};var k=120;j.itemDragMove=function(a,b,c){function d(){f.shift(e,b,c),e.positionDropPlaceholder(),f.layout()}var e=this.isEnabled&&this.getItem(a);if(e){b-=this.size.paddingLeft,c-=this.size.paddingTop;var f=this,g=new Date;this._itemDragTime&&g-this._itemDragTime<k?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(d,k)):(d(),this._itemDragTime=g)}},j.itemDragEnd=function(a){function b(){d++,2==d&&(c.element.classList.remove("is-positioning-post-drag"),c.hideDropPlaceholder(),e.dispatchEvent("dragItemPositioned",null,[c]))}var c=this.isEnabled&&this.getItem(a);if(c){clearTimeout(this.dragTimeout),c.element.classList.add("is-positioning-post-drag");var d=0,e=this;c.once("layout",b),this.once("layoutComplete",b),c.moveTo(c.rect.x,c.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),c.disablePlacing(),this.unstamp(c.element)}},j.bindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"on")},j.unbindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"off")},j._bindDraggabillyEvents=function(a,b){var c=this.handleDraggabilly;a[b]("dragStart",c.dragStart),a[b]("dragMove",c.dragMove),a[b]("dragEnd",c.dragEnd)},j.bindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"on")},j.unbindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"off")},j._bindUIDraggableEvents=function(a,b){var c=this.handleUIDraggable;a[b]("dragstart",c.start)[b]("drag",c.drag)[b]("dragstop",c.stop)};var l=j.destroy;return j.destroy=function(){l.apply(this,arguments),this.isEnabled=!1},i.Rect=c,i.Packer=d,i}),function(a,b){"function"==typeof define&&define.amd?define(["isotope/js/layout-mode","packery/js/packery"],b):"object"==typeof module&&module.exports?module.exports=b(require("isotope-layout/js/layout-mode"),require("packery")):b(a.Isotope.LayoutMode,a.Packery)}(window,function(a,b){var c=a.create("packery"),d=c.prototype,e={_getElementOffset:!0,_getMeasurement:!0};for(var f in b.prototype)e[f]||(d[f]=b.prototype[f]);var g=d._resetLayout;d._resetLayout=function(){this.packer=this.packer||new b.Packer,this.shiftPacker=this.shiftPacker||new b.Packer,g.apply(this,arguments)};var h=d._getItemLayoutPosition;d._getItemLayoutPosition=function(a){return a.rect=a.rect||new b.Rect,h.call(this,a)};var i=d.needsResizeLayout;d.needsResizeLayout=function(){return this._getOption("horizontal")?this.needsVerticalResizeLayout():i.call(this)};var j=d._getOption;return d._getOption=function(a){return"horizontal"==a?void 0!==this.options.isHorizontal?this.options.isHorizontal:this.options.horizontal:j.apply(this.isotope,arguments)},c});
1
  /*!
2
+ * Packery layout mode PACKAGED v2.0.1
3
  * sub-classes Packery
4
  */
5
 
6
+ !function(a,b){"function"==typeof define&&define.amd?define("packery/js/rect",b):"object"==typeof module&&module.exports?module.exports=b():(a.Packery=a.Packery||{},a.Packery.Rect=b())}(window,function(){function a(b){for(var c in a.defaults)this[c]=a.defaults[c];for(c in b)this[c]=b[c]}a.defaults={x:0,y:0,width:0,height:0};var b=a.prototype;return b.contains=function(a){var b=a.width||0,c=a.height||0;return this.x<=a.x&&this.y<=a.y&&this.x+this.width>=a.x+b&&this.y+this.height>=a.y+c},b.overlaps=function(a){var b=this.x+this.width,c=this.y+this.height,d=a.x+a.width,e=a.y+a.height;return this.x<d&&b>a.x&&this.y<e&&c>a.y},b.getMaximalFreeRects=function(b){if(!this.overlaps(b))return!1;var c,d=[],e=this.x+this.width,f=this.y+this.height,g=b.x+b.width,h=b.y+b.height;return this.y<b.y&&(c=new a({x:this.x,y:this.y,width:this.width,height:b.y-this.y}),d.push(c)),e>g&&(c=new a({x:g,y:this.y,width:e-g,height:this.height}),d.push(c)),f>h&&(c=new a({x:this.x,y:h,width:this.width,height:f-h}),d.push(c)),this.x<b.x&&(c=new a({x:this.x,y:this.y,width:b.x-this.x,height:this.height}),d.push(c)),d},b.canFit=function(a){return this.width>=a.width&&this.height>=a.height},a}),function(a,b){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],b);else if("object"==typeof module&&module.exports)module.exports=b(require("./rect"));else{var c=a.Packery=a.Packery||{};c.Packer=b(c.Rect)}}(window,function(a){function b(a,b,c){this.width=a||0,this.height=b||0,this.sortDirection=c||"downwardLeftToRight",this.reset()}var c=b.prototype;c.reset=function(){this.spaces=[];var b=new a({x:0,y:0,width:this.width,height:this.height});this.spaces.push(b),this.sorter=d[this.sortDirection]||d.downwardLeftToRight},c.pack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b];if(c.canFit(a)){this.placeInSpace(a,c);break}}},c.columnPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.x<=a.x&&c.x+c.width>=a.x+a.width&&c.height>=a.height-.01;if(d){a.y=c.y,this.placed(a);break}}},c.rowPack=function(a){for(var b=0;b<this.spaces.length;b++){var c=this.spaces[b],d=c.y<=a.y&&c.y+c.height>=a.y+a.height&&c.width>=a.width-.01;if(d){a.x=c.x,this.placed(a);break}}},c.placeInSpace=function(a,b){a.x=b.x,a.y=b.y,this.placed(a)},c.placed=function(a){for(var b=[],c=0;c<this.spaces.length;c++){var d=this.spaces[c],e=d.getMaximalFreeRects(a);e?b.push.apply(b,e):b.push(d)}this.spaces=b,this.mergeSortSpaces()},c.mergeSortSpaces=function(){b.mergeRects(this.spaces),this.spaces.sort(this.sorter)},c.addSpace=function(a){this.spaces.push(a),this.mergeSortSpaces()},b.mergeRects=function(a){var b=0,c=a[b];a:for(;c;){for(var d=0,e=a[b+d];e;){if(e==c)d++;else{if(e.contains(c)){a.splice(b,1),c=a[b];continue a}c.contains(e)?a.splice(b+d,1):d++}e=a[b+d]}b++,c=a[b]}return a};var d={downwardLeftToRight:function(a,b){return a.y-b.y||a.x-b.x},rightwardTopToBottom:function(a,b){return a.x-b.x||a.y-b.y}};return b}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],b):"object"==typeof module&&module.exports?module.exports=b(require("outlayer"),require("./rect")):a.Packery.Item=b(a.Outlayer,a.Packery.Rect)}(window,function(a,b){var c=document.documentElement.style,d="string"==typeof c.transform?"transform":"WebkitTransform",e=function(){a.Item.apply(this,arguments)},f=e.prototype=Object.create(a.Item.prototype),g=f._create;f._create=function(){g.call(this),this.rect=new b};var h=f.moveTo;return f.moveTo=function(a,b){var c=Math.abs(this.position.x-a),d=Math.abs(this.position.y-b),e=this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&1>c&&1>d;return e?void this.goTo(a,b):void h.apply(this,arguments)},f.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&d&&(this.element.style[d]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},f.disablePlacing=function(){this.isPlacing=!1},f.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},f.showDropPlaceholder=function(){var a=this.dropPlaceholder;a||(a=this.dropPlaceholder=document.createElement("div"),a.className="packery-drop-placeholder",a.style.position="absolute"),a.style.width=this.size.width+"px",a.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(a)},f.positionDropPlaceholder=function(){this.dropPlaceholder.style[d]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},f.hideDropPlaceholder=function(){this.layout.element.removeChild(this.dropPlaceholder)},e}),function(a,b){"function"==typeof define&&define.amd?define("packery/js/packery",["get-size/get-size","outlayer/outlayer","./rect","./packer","./item"],b):"object"==typeof module&&module.exports?module.exports=b(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):a.Packery=b(a.getSize,a.Outlayer,a.Packery.Rect,a.Packery.Packer,a.Packery.Item)}(window,function(a,b,c,d,e){function f(a,b){return a.position.y-b.position.y||a.position.x-b.position.x}function g(a,b){return a.position.x-b.position.x||a.position.y-b.position.y}function h(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.sqrt(c*c+d*d)}c.prototype.canFit=function(a){return this.width>=a.width-1&&this.height>=a.height-1};var i=b.create("packery");i.Item=e;var j=i.prototype;j._create=function(){b.prototype._create.call(this),this.packer=new d,this.shiftPacker=new d,this.isEnabled=!0,this.dragItemCount=0;var a=this;this.handleDraggabilly={dragStart:function(){a.itemDragStart(this.element)},dragMove:function(){a.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){a.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(b,c){c&&a.itemDragStart(b.currentTarget)},drag:function(b,c){c&&a.itemDragMove(b.currentTarget,c.position.left,c.position.top)},stop:function(b,c){c&&a.itemDragEnd(b.currentTarget)}}},j._resetLayout=function(){this.getSize(),this._getMeasurements();var a,b,c;this._getOption("horizontal")?(a=1/0,b=this.size.innerHeight+this.gutter,c="rightwardTopToBottom"):(a=this.size.innerWidth+this.gutter,b=1/0,c="downwardLeftToRight"),this.packer.width=this.shiftPacker.width=a,this.packer.height=this.shiftPacker.height=b,this.packer.sortDirection=this.shiftPacker.sortDirection=c,this.packer.reset(),this.maxY=0,this.maxX=0},j._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},j._getItemLayoutPosition=function(a){if(this._setRectSize(a.element,a.rect),this.isShifting||this.dragItemCount>0){var b=this._getPackMethod();this.packer[b](a.rect)}else this.packer.pack(a.rect);return this._setMaxXY(a.rect),a.rect},j.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},j._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},j._setMaxXY=function(a){this.maxX=Math.max(a.x+a.width,this.maxX),this.maxY=Math.max(a.y+a.height,this.maxY)},j._setRectSize=function(b,c){var d=a(b),e=d.outerWidth,f=d.outerHeight;(e||f)&&(e=this._applyGridGutter(e,this.columnWidth),f=this._applyGridGutter(f,this.rowHeight)),c.width=Math.min(e,this.packer.width),c.height=Math.min(f,this.packer.height)},j._applyGridGutter=function(a,b){if(!b)return a+this.gutter;b+=this.gutter;var c=a%b,d=c&&1>c?"round":"ceil";return a=Math[d](a/b)*b},j._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},j._manageStamp=function(a){var b,d=this.getItem(a);if(d&&d.isPlacing)b=d.rect;else{var e=this._getElementOffset(a);b=new c({x:this._getOption("originLeft")?e.left:e.right,y:this._getOption("originTop")?e.top:e.bottom})}this._setRectSize(a,b),this.packer.placed(b),this._setMaxXY(b)},j.sortItemsByPosition=function(){var a=this._getOption("horizontal")?g:f;this.items.sort(a)},j.fit=function(a,b,c){var d=this.getItem(a);d&&(this.stamp(d.element),d.enablePlacing(),this.updateShiftTargets(d),b=void 0===b?d.rect.x:b,c=void 0===c?d.rect.y:c,this.shift(d,b,c),this._bindFitEvents(d),d.moveTo(d.rect.x,d.rect.y),this.shiftLayout(),this.unstamp(d.element),this.sortItemsByPosition(),d.disablePlacing())},j._bindFitEvents=function(a){function b(){d++,2==d&&c.dispatchEvent("fitComplete",null,[a])}var c=this,d=0;a.once("layout",b),this.once("layoutComplete",b)},j.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},j.needsResizeLayout=function(){var b=a(this.element),c=this._getOption("horizontal")?"innerHeight":"innerWidth";return b[c]!=this.size[c]},j.resizeShiftPercentLayout=function(){var b=this._getItemsForLayout(this.items),c=this._getOption("horizontal"),d=c?"y":"x",e=c?"height":"width",f=c?"rowHeight":"columnWidth",g=c?"innerHeight":"innerWidth",h=this[f];if(h=h&&h+this.gutter){this._getMeasurements();var i=this[f]+this.gutter;b.forEach(function(a){var b=Math.round(a.rect[d]/h);a.rect[d]=b*i})}else{var j=a(this.element)[g]+this.gutter,k=this.packer[e];b.forEach(function(a){a.rect[d]=a.rect[d]/k*j})}this.shiftLayout()},j.itemDragStart=function(a){if(this.isEnabled){this.stamp(a);var b=this.getItem(a);b&&(b.enablePlacing(),b.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(b))}},j.updateShiftTargets=function(a){this.shiftPacker.reset(),this._getBoundingRect();var b=this._getOption("originLeft"),d=this._getOption("originTop");this.stamps.forEach(function(a){var e=this.getItem(a);if(!e||!e.isPlacing){var f=this._getElementOffset(a),g=new c({x:b?f.left:f.right,y:d?f.top:f.bottom});this._setRectSize(a,g),this.shiftPacker.placed(g)}},this);var e=this._getOption("horizontal"),f=e?"rowHeight":"columnWidth",g=e?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var h,i=this[f];if(i=i&&i+this.gutter){var j=Math.ceil(a.rect[g]/i),k=Math.floor((this.shiftPacker[g]+this.gutter)/i);h=(k-j)*i;for(var l=0;k>l;l++)this._addShiftTarget(l*i,0,h)}else h=this.shiftPacker[g]+this.gutter-a.rect[g],this._addShiftTarget(0,0,h);var m=this._getItemsForLayout(this.items),n=this._getPackMethod();m.forEach(function(a){var b=a.rect;this._setRectSize(a.element,b),this.shiftPacker[n](b),this._addShiftTarget(b.x,b.y,h);var c=e?b.x+b.width:b.x,d=e?b.y:b.y+b.height;if(this._addShiftTarget(c,d,h),i)for(var f=Math.round(b[g]/i),j=1;f>j;j++){var k=e?c:b.x+i*j,l=e?b.y+i*j:d;this._addShiftTarget(k,l,h)}},this)},j._addShiftTarget=function(a,b,c){var d=this._getOption("horizontal")?b:a;if(!(0!==d&&d>c)){var e=a+","+b,f=-1!=this.shiftTargetKeys.indexOf(e);f||(this.shiftTargetKeys.push(e),this.shiftTargets.push({x:a,y:b}))}},j.shift=function(a,b,c){var d,e=1/0,f={x:b,y:c};this.shiftTargets.forEach(function(a){var b=h(a,f);e>b&&(d=a,e=b)}),a.rect.x=d.x,a.rect.y=d.y};var k=120;j.itemDragMove=function(a,b,c){function d(){f.shift(e,b,c),e.positionDropPlaceholder(),f.layout()}var e=this.isEnabled&&this.getItem(a);if(e){b-=this.size.paddingLeft,c-=this.size.paddingTop;var f=this,g=new Date;this._itemDragTime&&g-this._itemDragTime<k?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(d,k)):(d(),this._itemDragTime=g)}},j.itemDragEnd=function(a){function b(){d++,2==d&&(c.element.classList.remove("is-positioning-post-drag"),c.hideDropPlaceholder(),e.dispatchEvent("dragItemPositioned",null,[c]))}var c=this.isEnabled&&this.getItem(a);if(c){clearTimeout(this.dragTimeout),c.element.classList.add("is-positioning-post-drag");var d=0,e=this;c.once("layout",b),this.once("layoutComplete",b),c.moveTo(c.rect.x,c.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),c.disablePlacing(),this.unstamp(c.element)}},j.bindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"on")},j.unbindDraggabillyEvents=function(a){this._bindDraggabillyEvents(a,"off")},j._bindDraggabillyEvents=function(a,b){var c=this.handleDraggabilly;a[b]("dragStart",c.dragStart),a[b]("dragMove",c.dragMove),a[b]("dragEnd",c.dragEnd)},j.bindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"on")},j.unbindUIDraggableEvents=function(a){this._bindUIDraggableEvents(a,"off")},j._bindUIDraggableEvents=function(a,b){var c=this.handleUIDraggable;a[b]("dragstart",c.start)[b]("drag",c.drag)[b]("dragstop",c.stop)};var l=j.destroy;return j.destroy=function(){l.apply(this,arguments),this.isEnabled=!1},i.Rect=c,i.Packer=d,i}),function(a,b){"function"==typeof define&&define.amd?define(["isotope-layout/js/layout-mode","packery/js/packery"],b):"object"==typeof module&&module.exports?module.exports=b(require("isotope-layout/js/layout-mode"),require("packery")):b(a.Isotope.LayoutMode,a.Packery)}(window,function(a,b){var c=a.create("packery"),d=c.prototype,e={_getElementOffset:!0,_getMeasurement:!0};for(var f in b.prototype)e[f]||(d[f]=b.prototype[f]);var g=d._resetLayout;d._resetLayout=function(){this.packer=this.packer||new b.Packer,this.shiftPacker=this.shiftPacker||new b.Packer,g.apply(this,arguments)};var h=d._getItemLayoutPosition;d._getItemLayoutPosition=function(a){return a.rect=a.rect||new b.Rect,h.call(this,a)};var i=d.needsResizeLayout;d.needsResizeLayout=function(){return this._getOption("horizontal")?this.needsVerticalResizeLayout():i.call(this)};var j=d._getOption;return d._getOption=function(a){return"horizontal"==a?void 0!==this.options.isHorizontal?this.options.isHorizontal:this.options.horizontal:j.apply(this.isotope,arguments)},c});
includes/plus-options/cmb2-conditionals.js CHANGED
@@ -19,3 +19,5 @@ jQuery( document ).ready( function( $ ) {
19
  .change();
20
  });
21
  });
 
 
19
  .change();
20
  });
21
  });
22
+
23
+ (function(a){'use strict';function b(){a('[data-conditional-id]').each((c,d)=>{function e(k){return g.includes(k)&&''!==k}let f=d.dataset.conditionalId,g=d.dataset.conditionalValue,h=d.closest('.cmb-row'),j=h.classList.contains('cmb-repeat-group-field');if(j){let k=h.closest('.cmb-repeatable-group').getAttribute('data-groupid'),l=h.closest('.cmb-repeatable-grouping').getAttribute('data-iterator');f=`${k}[${l}][${f}]`}a('[name="'+f+'"]').each(function(k,l){'select-one'===l.type?(!e(l.value)&&a(h).hide(),a(l).on('change',function(m){e(m.target.value)?a(h).show():a(h).hide()})):'radio'===l.type?(!e(l.value)&&l.checked&&a(h).hide(),a(l).on('change',function(m){e(m.target.value)?a(h).show():a(h).hide()})):'checkbox'===l.type&&(!l.checked&&a(h).hide(),a(l).on('change',function(m){m.target.checked?a(h).show():a(h).hide()}))})})} a( document ).ready( function(){b()}),a('.cmb2-wrap > .cmb2-metabox').on('cmb2_add_row',function(){b()})})(jQuery);
includes/plus-options/includes.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
  require_once THEPLUS_INCLUDES_URL.'plus-options/post-type.php';
3
- add_action( 'init', 'theplus_cmb_initialize_cmb_meta_boxes', 9999 );
4
  /**
5
  * Initialize the metabox class.
6
  */
7
- function theplus_cmb_initialize_cmb_meta_boxes() {
8
  if ( ! class_exists( 'cmb_Meta_Box' ) )
9
  require_once THEPLUS_INCLUDES_URL.'plus-options/metabox/init.php';
10
 
11
- }
12
  $client_post=theplus_get_option('post_type','client_post_type');
13
  if(isset($client_post) && !empty($client_post) && ($client_post=='themes' || $client_post=='plugin' || $client_post=='themes_pro')){
14
  require_once THEPLUS_INCLUDES_URL.'plus-options/custom-metabox/clients_options.php';
1
  <?php
2
  require_once THEPLUS_INCLUDES_URL.'plus-options/post-type.php';
3
+ //add_action( 'init', 'theplus_cmb_initialize_cmb_meta_boxes', 9999 );
4
  /**
5
  * Initialize the metabox class.
6
  */
7
+ /*function theplus_cmb_initialize_cmb_meta_boxes() {
8
  if ( ! class_exists( 'cmb_Meta_Box' ) )
9
  require_once THEPLUS_INCLUDES_URL.'plus-options/metabox/init.php';
10
 
11
+ }*/
12
  $client_post=theplus_get_option('post_type','client_post_type');
13
  if(isset($client_post) && !empty($client_post) && ($client_post=='themes' || $client_post=='plugin' || $client_post=='themes_pro')){
14
  require_once THEPLUS_INCLUDES_URL.'plus-options/custom-metabox/clients_options.php';
includes/plus-options/metabox/bootstrap.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Bootstraps the CMB2 process
4
+ *
5
+ * @category WordPress_Plugin
6
+ * @package CMB2
7
+ * @author CMB2
8
+ * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
+ */
11
+
12
+ /**
13
+ * Function to encapsulate the CMB2 bootstrap process.
14
+ *
15
+ * @since 2.2.0
16
+ * @return void
17
+ */
18
+ function cmb2_bootstrap() {
19
+
20
+ if ( is_admin() ) {
21
+ /**
22
+ * Fires on the admin side when CMB2 is included/loaded.
23
+ *
24
+ * In most cases, this should be used to add metaboxes. See example-functions.php
25
+ */
26
+ do_action( 'cmb2_admin_init' );
27
+ }
28
+
29
+ /**
30
+ * Fires when CMB2 is included/loaded
31
+ *
32
+ * Can be used to add metaboxes if needed on the front-end or WP-API (or the front and backend).
33
+ */
34
+ do_action( 'cmb2_init' );
35
+
36
+ /**
37
+ * For back-compat. Does the dirty-work of instantiating all the
38
+ * CMB2 instances for the cmb2_meta_boxes filter
39
+ *
40
+ * @since 2.0.2
41
+ */
42
+ $cmb_config_arrays = apply_filters( 'cmb2_meta_boxes', array() );
43
+ foreach ( (array) $cmb_config_arrays as $cmb_config ) {
44
+ new CMB2( $cmb_config );
45
+ }
46
+
47
+ /**
48
+ * Fires after all CMB2 instances are created
49
+ */
50
+ do_action( 'cmb2_init_before_hookup' );
51
+
52
+ /**
53
+ * Get all created metaboxes, and instantiate CMB2_hookup
54
+ * on metaboxes which require it.
55
+ *
56
+ * @since 2.0.2
57
+ */
58
+ foreach ( CMB2_Boxes::get_all() as $cmb ) {
59
+
60
+ /**
61
+ * Initiates the box "hookup" into WordPress.
62
+ *
63
+ * Unless the 'hookup' box property is `false`, the box will be hooked in as
64
+ * a post/user/comment/option/term box.
65
+ *
66
+ * And if the 'show_in_rest' box property is set, the box will be hooked
67
+ * into the CMB2 REST API.
68
+ *
69
+ * The dynamic portion of the hook name, $cmb->cmb_id, is the box id.
70
+ *
71
+ * @since 2.2.6
72
+ *
73
+ * @param array $cmb The CMB2 object to hookup.
74
+ */
75
+ do_action( "cmb2_init_hookup_{$cmb->cmb_id}", $cmb );
76
+ }
77
+
78
+ /**
79
+ * Fires after CMB2 initiation process has been completed
80
+ */
81
+ do_action( 'cmb2_after_init' );
82
+ }
83
+
84
+ /* End. That's it, folks! */
includes/plus-options/metabox/css/cmb2-display-rtl.css ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * CMB2 - v2.6.0 - 2019-01-18
3
+ * https://cmb2.io
4
+ * Copyright (c) 2019
5
+ * Licensed GPLv2+
6
+ */
7
+
8
+ /*--------------------------------------------------------------
9
+ * CMB2 Display Styling
10
+ --------------------------------------------------------------*/
11
+ /* line 6, sass/partials/_display.scss */
12
+ .cmb2-colorpicker-swatch span {
13
+ display: inline-block;
14
+ width: 1em;
15
+ height: 1em;
16
+ border-radius: 1em;
17
+ float: right;
18
+ margin-top: 3px;
19
+ margin-left: 2px;
20
+ }
21
+
22
+ /* line 17, sass/partials/_display.scss */
23
+ .cmb2-code {
24
+ overflow: scroll;
25
+ }
26
+
27
+ /* line 21, sass/partials/_display.scss */
28
+ .cmb-image-display {
29
+ max-width: 100%;
30
+ height: auto;
31
+ }
32
+
33
+ /* line 26, sass/partials/_display.scss */
34
+ .cmb2-display-file-list li {
35
+ display: inline;
36
+ margin: 0 0 .5em .5em;
37
+ }
38
+
39
+ /* line 31, sass/partials/_display.scss */
40
+ .cmb2-oembed * {
41
+ max-width: 100%;
42
+ height: auto;
43
+ }
44
+
45
+ /*# sourceMappingURL=cmb2-display.css.map */
includes/plus-options/metabox/css/cmb2-display-rtl.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! CMB2 - v2.6.0 - 2019-01-18 | https://cmb2.io | Copyright (c) 2019 CMB2 team | Licensed GPLv2 */
2
+ .cmb2-colorpicker-swatch span{display:inline-block;width:1em;height:1em;border-radius:1em;float:right;margin-top:3px;margin-left:2px}.cmb2-code{overflow:scroll}.cmb-image-display{max-width:100%;height:auto}.cmb2-display-file-list li{display:inline;margin:0 0 .5em .5em}.cmb2-oembed *{max-width:100%;height:auto}
includes/plus-options/metabox/css/cmb2-display.css ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * CMB2 - v2.6.0 - 2019-01-18
3
+ * https://cmb2.io
4
+ * Copyright (c) 2019
5
+ * Licensed GPLv2+
6
+ */
7
+
8
+ /*--------------------------------------------------------------
9
+ * CMB2 Display Styling
10
+ --------------------------------------------------------------*/
11
+ /* line 6, sass/partials/_display.scss */
12
+ .cmb2-colorpicker-swatch span {
13
+ display: inline-block;
14
+ width: 1em;
15
+ height: 1em;
16
+ border-radius: 1em;
17
+ float: left;
18
+ margin-top: 3px;
19
+ margin-right: 2px;
20
+ }
21
+
22
+ /* line 17, sass/partials/_display.scss */
23
+ .cmb2-code {
24
+ overflow: scroll;
25
+ }
26
+
27
+ /* line 21, sass/partials/_display.scss */
28
+ .cmb-image-display {
29
+ max-width: 100%;
30
+ height: auto;
31
+ }
32
+
33
+ /* line 26, sass/partials/_display.scss */
34
+ .cmb2-display-file-list li {
35
+ display: inline;
36
+ margin: 0 .5em .5em 0;
37
+ }
38
+
39
+ /* line 31, sass/partials/_display.scss */
40
+ .cmb2-oembed * {
41
+ max-width: 100%;
42
+ height: auto;
43
+ }
44
+
45
+ /*# sourceMappingURL=cmb2-display.css.map */
includes/plus-options/metabox/css/cmb2-display.css.map ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ {
2
+ "version": 3,
3
+ "mappings": "AAAA;;gEAEgE;;AAG/D,6BAAK;EACJ,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,YAAY,EAAE,GAAG;;;;AAInB,UAAW;EACV,QAAQ,EAAE,MAAM;;;;AAGjB,kBAAmB;EAClB,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;;;;AAGb,0BAA2B;EAC1B,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,aAAa;;;;AAGtB,cAAe;EACd,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI",
4
+ "sources": ["sass/partials/_display.scss"],
5
+ "names": [],
6
+ "file": "cmb2-display.css"
7
+ }
includes/plus-options/metabox/css/cmb2-display.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! CMB2 - v2.6.0 - 2019-01-18 | https://cmb2.io | Copyright (c) 2019 CMB2 team | Licensed GPLv2 */
2
+ .cmb2-colorpicker-swatch span{display:inline-block;width:1em;height:1em;border-radius:1em;float:left;margin-top:3px;margin-right:2px}.cmb2-code{overflow:scroll}.cmb-image-display{max-width:100%;height:auto}.cmb2-display-file-list li{display:inline;margin:0 .5em .5em 0}.cmb2-oembed *{max-width:100%;height:auto}
includes/plus-options/metabox/css/cmb2-front-rtl.css ADDED
@@ -0,0 +1,1331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * CMB2 - v2.6.0 - 2019-01-18
3
+ * https://cmb2.io
4
+ * Copyright (c) 2019
5
+ * Licensed GPLv2+
6
+ */
7
+
8
+ @charset "UTF-8";
9
+ /*--------------------------------------------------------------
10
+ * Main Wrap
11
+ --------------------------------------------------------------*/
12
+ /* line 5, sass/partials/_main_wrap.scss */
13
+ .cmb2-wrap {
14
+ margin: 0;
15
+ }
16
+ /* line 8, sass/partials/_main_wrap.scss */
17
+ .cmb2-wrap input,
18
+ .cmb2-wrap textarea {
19
+ font-size: 14px;
20
+ max-width: 100%;
21
+ padding: 5px;
22
+ }
23
+ /* line 18, sass/partials/_main_wrap.scss */
24
+ .cmb2-wrap input[type=text].cmb2-oembed {
25
+ width: 100%;
26
+ }
27
+ /* line 23, sass/partials/_main_wrap.scss */
28
+ .cmb2-wrap textarea {
29
+ width: 500px;
30
+ }
31
+ /* line 26, sass/partials/_main_wrap.scss */
32
+ .cmb2-wrap textarea.cmb2-textarea-code {
33
+ font-family: "Courier 10 Pitch", Courier, monospace;
34
+ line-height: 16px;
35
+ }
36
+ /* line 34, sass/partials/_main_wrap.scss */
37
+ .cmb2-wrap input.cmb2-text-small, .cmb2-wrap input.cmb2-timepicker {
38
+ width: 100px;
39
+ }
40
+ /* line 40, sass/partials/_main_wrap.scss */
41
+ .cmb2-wrap input.cmb2-text-money {
42
+ width: 90px;
43
+ }
44
+ /* line 45, sass/partials/_main_wrap.scss */
45
+ .cmb2-wrap input.cmb2-text-medium {
46
+ width: 230px;
47
+ }
48
+ /* line 50, sass/partials/_main_wrap.scss */
49
+ .cmb2-wrap input.cmb2-upload-file {
50
+ width: 65%;
51
+ }
52
+ /* line 54, sass/partials/_main_wrap.scss */
53
+ .cmb2-wrap input.ed_button {
54
+ padding: 2px 4px;
55
+ }
56
+ /* line 59, sass/partials/_main_wrap.scss */
57
+ .cmb2-wrap input:not([type="hidden"]) + input,
58
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
59
+ .cmb2-wrap input:not([type="hidden"]) + select {
60
+ margin-right: 20px;
61
+ }
62
+ /* line 67, sass/partials/_main_wrap.scss */
63
+ .cmb2-wrap ul {
64
+ margin: 0;
65
+ }
66
+ /* line 71, sass/partials/_main_wrap.scss */
67
+ .cmb2-wrap li {
68
+ font-size: 14px;
69
+ line-height: 16px;
70
+ margin: 1px 0 5px 0;
71
+ }
72
+ /* line 82, sass/partials/_main_wrap.scss */
73
+ .cmb2-wrap select {
74
+ font-size: 14px;
75
+ margin-top: 3px;
76
+ }
77
+ /* line 87, sass/partials/_main_wrap.scss */
78
+ .cmb2-wrap input:focus,
79
+ .cmb2-wrap textarea:focus {
80
+ background: #fffff8;
81
+ }
82
+ /* line 92, sass/partials/_main_wrap.scss */
83
+ .cmb2-wrap input[type="radio"] {
84
+ margin: 0 0 0 5px;
85
+ padding: 0;
86
+ }
87
+ /* line 97, sass/partials/_main_wrap.scss */
88
+ .cmb2-wrap input[type="checkbox"] {
89
+ margin: 0 0 0 5px;
90
+ padding: 0;
91
+ }
92
+ /* line 102, sass/partials/_main_wrap.scss */
93
+ .cmb2-wrap button,
94
+ .cmb2-wrap .button-secondary {
95
+ white-space: nowrap;
96
+ }
97
+ /* line 107, sass/partials/_main_wrap.scss */
98
+ .cmb2-wrap .mceLayout {
99
+ border: 1px solid #e9e9e9 !important;
100
+ }
101
+ /* line 111, sass/partials/_main_wrap.scss */
102
+ .cmb2-wrap .mceIframeContainer {
103
+ background: #ffffff;
104
+ }
105
+ /* line 115, sass/partials/_main_wrap.scss */
106
+ .cmb2-wrap .meta_mce {
107
+ width: 97%;
108
+ }
109
+ /* line 118, sass/partials/_main_wrap.scss */
110
+ .cmb2-wrap .meta_mce textarea {
111
+ width: 100%;
112
+ }
113
+ /* line 124, sass/partials/_main_wrap.scss */
114
+ .cmb2-wrap .wp-color-result,
115
+ .cmb2-wrap .wp-picker-input-wrap {
116
+ vertical-align: middle;
117
+ }
118
+ /* line 129, sass/partials/_main_wrap.scss */
119
+ .cmb2-wrap .wp-color-result,
120
+ .cmb2-wrap .wp-picker-container {
121
+ margin: 0 0 0 10px;
122
+ }
123
+ /* line 134, sass/partials/_main_wrap.scss */
124
+ .cmb2-wrap .cmb-row {
125
+ margin: 0;
126
+ }
127
+ /* line 137, sass/partials/_main_wrap.scss */
128
+ .cmb2-wrap .cmb-row:after {
129
+ content: '';
130
+ clear: both;
131
+ display: block;
132
+ width: 100%;
133
+ }
134
+ /* line 144, sass/partials/_main_wrap.scss */
135
+ .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
136
+ padding-top: 0;
137
+ padding-bottom: 1em;
138
+ }
139
+
140
+ /* line 152, sass/partials/_main_wrap.scss */
141
+ .cmb2-metabox {
142
+ clear: both;
143
+ margin: 0;
144
+ }
145
+ /* line 158, sass/partials/_main_wrap.scss */
146
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
147
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
148
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
149
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
150
+ border: 0;
151
+ }
152
+
153
+ /* line 165, sass/partials/_main_wrap.scss */
154
+ .cmb-add-row {
155
+ margin: 1.8em 0 0;
156
+ }
157
+
158
+ /* line 169, sass/partials/_main_wrap.scss */
159
+ .cmb-nested .cmb-td,
160
+ .cmb-repeatable-group .cmb-th,
161
+ .cmb-repeatable-group:first-of-type {
162
+ border: 0;
163
+ }
164
+
165
+ /* line 175, sass/partials/_main_wrap.scss */
166
+ .cmb-row:last-of-type,
167
+ .cmb2-wrap .cmb-row:last-of-type,
168
+ .cmb-repeatable-group:last-of-type {
169
+ border-bottom: 0;
170
+ }
171
+
172
+ /* line 181, sass/partials/_main_wrap.scss */
173
+ .cmb-repeatable-grouping {
174
+ border: 1px solid #e9e9e9;
175
+ padding: 0 1em;
176
+ }
177
+ /* line 185, sass/partials/_main_wrap.scss */
178
+ .cmb-repeatable-grouping.cmb-row {
179
+ margin: 0 0 0.8em;
180
+ }
181
+
182
+ /* line 193, sass/partials/_main_wrap.scss */
183
+ .cmb-th {
184
+ color: #222222;
185
+ float: right;
186
+ font-weight: 600;
187
+ line-height: 1.3;
188
+ padding: 20px 0 20px 10px;
189
+ vertical-align: top;
190
+ width: 200px;
191
+ }
192
+ @media (max-width: 450px) {
193
+ /* line 193, sass/partials/_main_wrap.scss */
194
+ .cmb-th {
195
+ font-size: 1.2em;
196
+ display: block;
197
+ float: none;
198
+ padding-bottom: 1em;
199
+ text-align: right;
200
+ width: 100%;
201
+ }
202
+ /* line 27, sass/partials/_mixins.scss */
203
+ .cmb-th label {
204
+ display: block;
205
+ margin-top: 0;
206
+ margin-bottom: 0.5em;
207
+ }
208
+ }
209
+
210
+ /* line 207, sass/partials/_main_wrap.scss */
211
+ .cmb-td {
212
+ line-height: 1.3;
213
+ max-width: 100%;
214
+ padding: 15px 10px;
215
+ vertical-align: middle;
216
+ }
217
+
218
+ /* line 216, sass/partials/_main_wrap.scss */
219
+ .cmb-type-title .cmb-td {
220
+ padding: 0;
221
+ }
222
+
223
+ /* line 221, sass/partials/_main_wrap.scss */
224
+ .cmb-th label {
225
+ display: block;
226
+ padding: 5px 0;
227
+ }
228
+
229
+ /* line 226, sass/partials/_main_wrap.scss */
230
+ .cmb-th + .cmb-td {
231
+ float: right;
232
+ }
233
+
234
+ /* line 230, sass/partials/_main_wrap.scss */
235
+ .cmb-td .cmb-td {
236
+ padding-bottom: 1em;
237
+ }
238
+
239
+ /* line 234, sass/partials/_main_wrap.scss */
240
+ .cmb-remove-row {
241
+ text-align: left;
242
+ }
243
+
244
+ /* line 238, sass/partials/_main_wrap.scss */
245
+ .empty-row.hidden {
246
+ display: none;
247
+ }
248
+
249
+ /* line 243, sass/partials/_main_wrap.scss */
250
+ .cmb-repeat-table {
251
+ background-color: #fafafa;
252
+ border: 1px solid #e1e1e1;
253
+ }
254
+ /* line 247, sass/partials/_main_wrap.scss */
255
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
256
+ position: relative;
257
+ counter-increment: el;
258
+ margin: 0;
259
+ padding: 10px 50px 10px 10px;
260
+ border-bottom: none !important;
261
+ }
262
+ /* line 255, sass/partials/_main_wrap.scss */
263
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
264
+ border-top: solid 1px #e9e9e9;
265
+ }
266
+ /* line 259, sass/partials/_main_wrap.scss */
267
+ .cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper {
268
+ outline: dashed 2px #e9e9e9 !important;
269
+ }
270
+ /* line 263, sass/partials/_main_wrap.scss */
271
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
272
+ content: counter(el);
273
+ display: block;
274
+ top: 0;
275
+ right: 0;
276
+ position: absolute;
277
+ width: 35px;
278
+ height: 100%;
279
+ line-height: 35px;
280
+ cursor: move;
281
+ color: #757575;
282
+ text-align: center;
283
+ border-left: solid 1px #e9e9e9;
284
+ }
285
+ /* line 280, sass/partials/_main_wrap.scss */
286
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
287
+ margin: 0;
288
+ padding: 0;
289
+ }
290
+ /* line 287, sass/partials/_main_wrap.scss */
291
+ .cmb-repeat-table + .cmb-add-row {
292
+ margin: 0;
293
+ }
294
+ /* line 290, sass/partials/_main_wrap.scss */
295
+ .cmb-repeat-table + .cmb-add-row:before {
296
+ content: '';
297
+ width: 1px;
298
+ height: 1.6em;
299
+ display: block;
300
+ margin-right: 17px;
301
+ background-color: gainsboro;
302
+ }
303
+ /* line 300, sass/partials/_main_wrap.scss */
304
+ .cmb-repeat-table .cmb-remove-row {
305
+ top: 7px;
306
+ left: 7px;
307
+ position: absolute;
308
+ width: auto;
309
+ margin-right: 0;
310
+ padding: 0 !important;
311
+ display: none;
312
+ }
313
+ /* line 311, sass/partials/_main_wrap.scss */
314
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
315
+ font-size: 20px;
316
+ text-indent: -1000px;
317
+ overflow: hidden;
318
+ position: relative;
319
+ height: auto;
320
+ line-height: 1;
321
+ padding: 0 10px 0;
322
+ }
323
+ /* line 322, sass/partials/_main_wrap.scss */
324
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
325
+ content: "";
326
+ font-family: 'Dashicons';
327
+ speak: none;
328
+ font-weight: normal;
329
+ font-variant: normal;
330
+ text-transform: none;
331
+ line-height: 1;
332
+ -webkit-font-smoothing: antialiased;
333
+ margin: 0;
334
+ text-indent: 0;
335
+ position: absolute;
336
+ top: 0;
337
+ right: 0;
338
+ width: 100%;
339
+ height: 100%;
340
+ text-align: center;
341
+ }
342
+ /* line 328, sass/partials/_main_wrap.scss */
343
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
344
+ display: block;
345
+ }
346
+
347
+ /* line 336, sass/partials/_main_wrap.scss */
348
+ .cmb-repeatable-group .cmb-th {
349
+ padding: 5px;
350
+ }
351
+ /* line 340, sass/partials/_main_wrap.scss */
352
+ .cmb-repeatable-group .cmb-group-title {
353
+ background-color: #e9e9e9;
354
+ padding: 8px 2.2em 8px 12px;
355
+ margin: 0 -1em;
356
+ min-height: 1.5em;
357
+ font-size: 14px;
358
+ line-height: 1.4;
359
+ }
360
+ /* line 348, sass/partials/_main_wrap.scss */
361
+ .cmb-repeatable-group .cmb-group-title h4 {
362
+ border: 0;
363
+ margin: 0;
364
+ font-size: 1.2em;
365
+ font-weight: 500;
366
+ padding: 0.5em 0.75em;
367
+ }
368
+ /* line 356, sass/partials/_main_wrap.scss */
369
+ .cmb-repeatable-group .cmb-group-title .cmb-th {
370
+ display: block;
371
+ width: 100%;
372
+ }
373
+ /* line 362, sass/partials/_main_wrap.scss */
374
+ .cmb-repeatable-group .cmb-group-description .cmb-th {
375
+ font-size: 1.2em;
376
+ display: block;
377
+ float: none;
378
+ padding-bottom: 1em;
379
+ text-align: right;
380
+ width: 100%;
381
+ }
382
+ /* line 27, sass/partials/_mixins.scss */
383
+ .cmb-repeatable-group .cmb-group-description .cmb-th label {
384
+ display: block;
385
+ margin-top: 0;
386
+ margin-bottom: 0.5em;
387
+ }
388
+ /* line 366, sass/partials/_main_wrap.scss */
389
+ .cmb-repeatable-group .cmb-shift-rows {
390
+ font-size: 1em;
391
+ margin-left: 1em;
392
+ text-decoration: none;
393
+ }
394
+ /* line 371, sass/partials/_main_wrap.scss */
395
+ .cmb-repeatable-group .cmb-shift-rows .dashicons {
396
+ font-size: 1.5em;
397
+ height: 1.5em;
398
+ line-height: 1.2em;
399
+ width: 1em;
400
+ }
401
+ /* line 377, sass/partials/_main_wrap.scss */
402
+ .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
403
+ line-height: 1.3em;
404
+ }
405
+ /* line 384, sass/partials/_main_wrap.scss */
406
+ .cmb-repeatable-group .cmb2-upload-button {
407
+ float: left;
408
+ }
409
+
410
+ /* line 390, sass/partials/_main_wrap.scss */
411
+ p.cmb2-metabox-description {
412
+ color: #757575;
413
+ font-style: italic;
414
+ margin: 0;
415
+ padding-top: .5em;
416
+ }
417
+
418
+ /* line 397, sass/partials/_main_wrap.scss */
419
+ span.cmb2-metabox-description {
420
+ color: #757575;
421
+ font-style: italic;
422
+ }
423
+
424
+ /* line 402, sass/partials/_main_wrap.scss */
425
+ .cmb2-metabox-title {
426
+ margin: 0 0 5px 0;
427
+ padding: 5px 0 0 0;
428
+ font-size: 14px;
429
+ }
430
+
431
+ /* line 408, sass/partials/_main_wrap.scss */
432
+ .cmb-inline ul {
433
+ padding: 4px 0 0 0;
434
+ }
435
+
436
+ /* line 412, sass/partials/_main_wrap.scss */
437
+ .cmb-inline li {
438
+ display: inline-block;
439
+ padding-left: 18px;
440
+ }
441
+
442
+ /* line 417, sass/partials/_main_wrap.scss */
443
+ .cmb-type-textarea-code pre {
444
+ margin: 0;
445
+ }
446
+
447
+ /* line 423, sass/partials/_main_wrap.scss */
448
+ .cmb2-media-status .img-status {
449
+ clear: none;
450
+ display: inline-block;
451
+ vertical-align: middle;
452
+ margin-left: 10px;
453
+ width: auto;
454
+ }
455
+ /* line 430, sass/partials/_main_wrap.scss */
456
+ .cmb2-media-status .img-status img {
457
+ max-width: 350px;
458
+ height: auto;
459
+ }
460
+ /* line 436, sass/partials/_main_wrap.scss */
461
+ .cmb2-media-status .img-status img,
462
+ .cmb2-media-status .embed-status {
463
+ background: #eee;
464
+ border: 5px solid #ffffff;
465
+ outline: 1px solid #e9e9e9;
466
+ box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.05);
467
+ background-image: linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0), linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0);
468
+ background-position: 0 0, 10px 10px;
469
+ background-size: 20px 20px;
470
+ border-radius: 2px;
471
+ -moz-border-radius: 2px;
472
+ margin: 15px 0 0 0;
473
+ }
474
+ /* line 450, sass/partials/_main_wrap.scss */
475
+ .cmb2-media-status .embed-status {
476
+ float: right;
477
+ max-width: 800px;
478
+ }
479
+ /* line 455, sass/partials/_main_wrap.scss */
480
+ .cmb2-media-status .img-status, .cmb2-media-status .embed-status {
481
+ position: relative;
482
+ }
483
+ /* line 458, sass/partials/_main_wrap.scss */
484
+ .cmb2-media-status .img-status .cmb2-remove-file-button, .cmb2-media-status .embed-status .cmb2-remove-file-button {
485
+ background: url(../images/ico-delete.png);
486
+ height: 16px;
487
+ right: -5px;
488
+ position: absolute;
489
+ text-indent: -9999px;
490
+ top: -5px;
491
+ width: 16px;
492
+ }
493
+ /* line 472, sass/partials/_main_wrap.scss */
494
+ .cmb2-media-status .img-status .cmb2-remove-file-button {
495
+ top: 10px;
496
+ }
497
+ /* line 477, sass/partials/_main_wrap.scss */
498
+ .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span {
499
+ cursor: pointer;
500
+ }
501
+ /* line 482, sass/partials/_main_wrap.scss */
502
+ .cmb2-media-status.cmb-attach-list .img-status img, .cmb2-media-status.cmb-attach-list .file-status > span {
503
+ cursor: move;
504
+ }
505
+
506
+ /* line 489, sass/partials/_main_wrap.scss */
507
+ .cmb-type-file-list .cmb2-media-status .img-status {
508
+ clear: none;
509
+ vertical-align: middle;
510
+ width: auto;
511
+ margin-left: 10px;
512
+ margin-bottom: 10px;
513
+ margin-top: 0;
514
+ }
515
+
516
+ /* line 498, sass/partials/_main_wrap.scss */
517
+ .cmb-attach-list li {
518
+ clear: both;
519
+ display: inline-block;
520
+ width: 100%;
521
+ margin-top: 5px;
522
+ margin-bottom: 10px;
523
+ }
524
+ /* line 504, sass/partials/_main_wrap.scss */
525
+ .cmb-attach-list li img {
526
+ float: right;
527
+ margin-left: 10px;
528
+ }
529
+
530
+ /* line 510, sass/partials/_main_wrap.scss */
531
+ .cmb2-remove-wrapper {
532
+ margin: 0;
533
+ }
534
+
535
+ /* line 514, sass/partials/_main_wrap.scss */
536
+ .child-cmb2 .cmb-th {
537
+ text-align: right;
538
+ }
539
+
540
+ /* line 518, sass/partials/_main_wrap.scss */
541
+ .cmb2-indented-hierarchy {
542
+ padding-right: 1.5em;
543
+ }
544
+
545
+ @media (max-width: 450px) {
546
+ /* line 523, sass/partials/_main_wrap.scss */
547
+ .cmb-th,
548
+ .cmb-td,
549
+ .cmb-th + .cmb-td {
550
+ display: block;
551
+ float: none;
552
+ width: 100%;
553
+ }
554
+ }
555
+ /*--------------------------------------------------------------
556
+ * Post Metaboxes
557
+ --------------------------------------------------------------*/
558
+ /* line 5, sass/partials/_post_metaboxes.scss */
559
+ #poststuff .cmb-group-title {
560
+ margin-right: -1em;
561
+ margin-left: -1em;
562
+ min-height: 1.5em;
563
+ }
564
+
565
+ /* line 11, sass/partials/_post_metaboxes.scss */
566
+ #poststuff .repeatable .cmb-group-title {
567
+ padding-right: 2.2em;
568
+ }
569
+
570
+ /* line 17, sass/partials/_post_metaboxes.scss */
571
+ .cmb2-postbox .cmb2-wrap, .cmb-type-group .cmb2-wrap {
572
+ margin: 0;
573
+ }
574
+ /* line 20, sass/partials/_post_metaboxes.scss */
575
+ .cmb2-postbox .cmb2-wrap > .cmb-field-list > .cmb-row, .cmb-type-group .cmb2-wrap > .cmb-field-list > .cmb-row {
576
+ padding: 1.8em 0;
577
+ }
578
+ /* line 26, sass/partials/_post_metaboxes.scss */
579
+ .cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed, .cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed {
580
+ width: 100%;
581
+ }
582
+ /* line 32, sass/partials/_post_metaboxes.scss */
583
+ .cmb2-postbox .cmb-row, .cmb-type-group .cmb-row {
584
+ padding: 0 0 1.8em;
585
+ margin: 0 0 0.8em;
586
+ }
587
+ /* line 36, sass/partials/_post_metaboxes.scss */
588
+ .cmb2-postbox .cmb-row .cmbhandle, .cmb-type-group .cmb-row .cmbhandle {
589
+ left: -1em;
590
+ position: relative;
591
+ color: #222222;
592
+ }
593
+ /* line 43, sass/partials/_post_metaboxes.scss */
594
+ .cmb2-postbox .cmb-repeatable-grouping, .cmb-type-group .cmb-repeatable-grouping {
595
+ padding: 0 1em;
596
+ max-width: 100%;
597
+ min-width: 1px !important;
598
+ }
599
+ /* line 49, sass/partials/_post_metaboxes.scss */
600
+ .cmb2-postbox .cmb-repeatable-group > .cmb-row, .cmb-type-group .cmb-repeatable-group > .cmb-row {
601
+ padding-bottom: 0;
602
+ }
603
+ /* line 53, sass/partials/_post_metaboxes.scss */
604
+ .cmb2-postbox .cmb-th, .cmb-type-group .cmb-th {
605
+ width: 18%;
606
+ padding: 0 0 0 2%;
607
+ }
608
+ /* line 59, sass/partials/_post_metaboxes.scss */
609
+ .cmb2-postbox .cmb-td, .cmb-type-group .cmb-td {
610
+ margin-bottom: 0;
611
+ padding: 0;
612
+ line-height: 1.3;
613
+ }
614
+ /* line 65, sass/partials/_post_metaboxes.scss */
615
+ .cmb2-postbox .cmb-th + .cmb-td, .cmb-type-group .cmb-th + .cmb-td {
616
+ width: 80%;
617
+ float: left;
618
+ }
619
+ /* line 70, sass/partials/_post_metaboxes.scss */
620
+ .cmb2-postbox .cmb-row:not(:last-of-type),
621
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
622
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
623
+ border-bottom: 1px solid #e9e9e9;
624
+ }
625
+ @media (max-width: 450px) {
626
+ /* line 70, sass/partials/_post_metaboxes.scss */
627
+ .cmb2-postbox .cmb-row:not(:last-of-type),
628
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
629
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
630
+ border-bottom: 0;
631
+ }
632
+ }
633
+ /* line 79, sass/partials/_post_metaboxes.scss */
634
+ .cmb2-postbox .cmb-repeat-group-field,
635
+ .cmb2-postbox .cmb-remove-field-row, .cmb-type-group .cmb-repeat-group-field,
636
+ .cmb-type-group .cmb-remove-field-row {
637
+ padding-top: 1.8em;
638
+ }
639
+
640
+ /*--------------------------------------------------------------
641
+ * Context Metaboxes
642
+ --------------------------------------------------------------*/
643
+ /* Metabox collapse arrow indicators */
644
+ /* line 9, sass/partials/_context_metaboxes.scss */
645
+ .js .cmb2-postbox.context-box .toggle-indicator:before {
646
+ content: "\f142";
647
+ display: inline-block;
648
+ font: normal 20px/1 dashicons;
649
+ speak: none;
650
+ -webkit-font-smoothing: antialiased;
651
+ -moz-osx-font-smoothing: grayscale;
652
+ text-decoration: none !important;
653
+ }
654
+ /* line 22, sass/partials/_context_metaboxes.scss */
655
+ .js .cmb2-postbox.context-box.closed .toggle-indicator:before {
656
+ content: "\f140";
657
+ }
658
+
659
+ /* line 30, sass/partials/_context_metaboxes.scss */
660
+ .cmb2-postbox.context-box {
661
+ margin-bottom: 10px;
662
+ }
663
+ /* line 34, sass/partials/_context_metaboxes.scss */
664
+ .cmb2-postbox.context-box.context-before_permalink-box {
665
+ margin-top: 10px;
666
+ }
667
+ /* line 38, sass/partials/_context_metaboxes.scss */
668
+ .cmb2-postbox.context-box.context-after_title-box {
669
+ margin-top: 10px;
670
+ }
671
+ /* line 42, sass/partials/_context_metaboxes.scss */
672
+ .cmb2-postbox.context-box.context-after_editor-box {
673
+ margin-top: 20px;
674
+ margin-bottom: 0;
675
+ }
676
+ /* line 47, sass/partials/_context_metaboxes.scss */
677
+ .cmb2-postbox.context-box.context-form_top-box {
678
+ margin-top: 10px;
679
+ }
680
+ /* line 51, sass/partials/_context_metaboxes.scss */
681
+ .cmb2-postbox.context-box.context-form_top-box .hndle {
682
+ font-size: 14px;
683
+ padding: 8px 12px;
684
+ margin: 0;
685
+ line-height: 1.4;
686
+ }
687
+ /* line 59, sass/partials/_context_metaboxes.scss */
688
+ .cmb2-postbox.context-box .hndle {
689
+ cursor: auto;
690
+ }
691
+
692
+ /* line 64, sass/partials/_context_metaboxes.scss */
693
+ .cmb2-context-wrap {
694
+ margin-top: 10px;
695
+ }
696
+ /* line 68, sass/partials/_context_metaboxes.scss */
697
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
698
+ margin-left: 300px;
699
+ width: auto;
700
+ }
701
+ /* line 75, sass/partials/_context_metaboxes.scss */
702
+ .cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox {
703
+ padding: 10px;
704
+ }
705
+ /* line 80, sass/partials/_context_metaboxes.scss */
706
+ .cmb2-context-wrap .cmb-th {
707
+ padding: 0 0 0 2%;
708
+ width: 18%;
709
+ }
710
+ /* line 85, sass/partials/_context_metaboxes.scss */
711
+ .cmb2-context-wrap .cmb-td {
712
+ width: 80%;
713
+ padding: 0;
714
+ }
715
+ /* line 90, sass/partials/_context_metaboxes.scss */
716
+ .cmb2-context-wrap .cmb-row {
717
+ margin-bottom: 10px;
718
+ }
719
+ /* line 93, sass/partials/_context_metaboxes.scss */
720
+ .cmb2-context-wrap .cmb-row:last-of-type {
721
+ margin-bottom: 0;
722
+ }
723
+
724
+ /* one column on the post write/edit screen */
725
+ @media only screen and (max-width: 850px) {
726
+ /* line 103, sass/partials/_context_metaboxes.scss */
727
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
728
+ margin-left: 0;
729
+ }
730
+ }
731
+ /*--------------------------------------------------------------
732
+ * Misc.
733
+ --------------------------------------------------------------*/
734
+ /* line 5, sass/partials/_misc.scss */
735
+ #poststuff .cmb-repeatable-group h2 {
736
+ margin: 0;
737
+ }
738
+
739
+ /* line 12, sass/partials/_misc.scss */
740
+ .edit-tags-php .cmb2-metabox-title,
741
+ .profile-php .cmb2-metabox-title,
742
+ .user-edit-php .cmb2-metabox-title {
743
+ font-size: 1.4em;
744
+ }
745
+
746
+ /* line 18, sass/partials/_misc.scss */
747
+ .cmb2-postbox .cmb-spinner, .cmb2-no-box-wrap .cmb-spinner {
748
+ float: right;
749
+ display: none;
750
+ }
751
+
752
+ /* line 24, sass/partials/_misc.scss */
753
+ .cmb-spinner {
754
+ display: none;
755
+ }
756
+ /* line 26, sass/partials/_misc.scss */
757
+ .cmb-spinner.is-active {
758
+ display: block;
759
+ }
760
+
761
+ /*--------------------------------------------------------------
762
+ * Collapsible UI
763
+ --------------------------------------------------------------*/
764
+ /* line 6, sass/partials/_collapsible_ui.scss */
765
+ .cmb2-metabox .cmbhandle {
766
+ color: #757575;
767
+ float: left;
768
+ width: 27px;
769
+ height: 30px;
770
+ cursor: pointer;
771
+ left: -1em;
772
+ position: relative;
773
+ }
774
+ /* line 14, sass/partials/_collapsible_ui.scss */
775
+ .cmb2-metabox .cmbhandle:before {
776
+ content: '\f142';
777
+ left: 12px;
778
+ font: normal 20px/1 'dashicons';
779
+ speak: none;
780
+ display: inline-block;
781
+ padding: 8px 10px;
782
+ top: 0;
783
+ position: relative;
784
+ -webkit-font-smoothing: antialiased;
785
+ -moz-osx-font-smoothing: grayscale;
786
+ text-decoration: none !important;
787
+ }
788
+ /* line 31, sass/partials/_collapsible_ui.scss */
789
+ .cmb2-metabox .postbox.closed .cmbhandle:before {
790
+ content: '\f140';
791
+ }
792
+ /* line 37, sass/partials/_collapsible_ui.scss */
793
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
794
+ -webkit-appearance: none !important;
795
+ background: none !important;
796
+ border: none !important;
797
+ position: absolute;
798
+ right: 0;
799
+ top: .5em;
800
+ line-height: 1em;
801
+ padding: 2px 6px 3px;
802
+ opacity: .5;
803
+ }
804
+ /* line 47, sass/partials/_collapsible_ui.scss */
805
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
806
+ cursor: pointer;
807
+ color: #a00;
808
+ opacity: 1;
809
+ }
810
+ /* line 51, sass/partials/_collapsible_ui.scss */
811
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
812
+ color: #f00;
813
+ }
814
+
815
+ /*
816
+ * jQuery UI CSS Framework 1.8.16
817
+ *
818
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
819
+ * Dual licensed under the MIT or GPL Version 2 licenses.
820
+ * http://jquery.org/license
821
+ *
822
+ * http://docs.jquery.com/UI/Theming/API
823
+ *
824
+ * WordPress Styles adopted from "jQuery UI Datepicker CSS for WordPress"
825
+ * https://github.com/stuttter/wp-datepicker-styling
826
+ *
827
+ */
828
+ /* line 15, sass/partials/_jquery_ui.scss */
829
+ * html .cmb2-element.ui-helper-clearfix {
830
+ height: 1%;
831
+ }
832
+
833
+ /* line 24, sass/partials/_jquery_ui.scss */
834
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
835
+ padding: 0;
836
+ margin: 0;
837
+ -webkit-border-radius: 0;
838
+ -moz-border-radius: 0;
839
+ border-radius: 0;
840
+ background-color: #fff;
841
+ border: 1px solid #dfdfdf;
842
+ border-top: none;
843
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
844
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
845
+ min-width: 17em;
846
+ width: auto;
847
+ /* Default Color Scheme */
848
+ }
849
+ /* line 38, sass/partials/_jquery_ui.scss */
850
+ .cmb2-element.ui-datepicker *, .cmb2-element .ui-datepicker * {
851
+ padding: 0;
852
+ font-family: "Open Sans", sans-serif;
853
+ -webkit-border-radius: 0;
854
+ -moz-border-radius: 0;
855
+ border-radius: 0;
856
+ }
857
+ /* line 46, sass/partials/_jquery_ui.scss */
858
+ .cmb2-element.ui-datepicker table, .cmb2-element .ui-datepicker table {
859
+ font-size: 13px;
860
+ margin: 0;
861
+ border: none;
862
+ border-collapse: collapse;
863
+ }
864
+ /* line 53, sass/partials/_jquery_ui.scss */
865
+ .cmb2-element.ui-datepicker .ui-widget-header,
866
+ .cmb2-element.ui-datepicker .ui-datepicker-header, .cmb2-element .ui-datepicker .ui-widget-header,
867
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
868
+ background-image: none;
869
+ border: none;
870
+ color: #fff;
871
+ font-weight: normal;
872
+ }
873
+ /* line 61, sass/partials/_jquery_ui.scss */
874
+ .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover, .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
875
+ background: transparent;
876
+ border-color: transparent;
877
+ cursor: pointer;
878
+ }
879
+ /* line 67, sass/partials/_jquery_ui.scss */
880
+ .cmb2-element.ui-datepicker .ui-datepicker-title, .cmb2-element .ui-datepicker .ui-datepicker-title {
881
+ margin: 0;
882
+ padding: 10px 0;
883
+ color: #fff;
884
+ font-size: 14px;
885
+ line-height: 14px;
886
+ text-align: center;
887
+ }
888
+ /* line 75, sass/partials/_jquery_ui.scss */
889
+ .cmb2-element.ui-datepicker .ui-datepicker-title select, .cmb2-element .ui-datepicker .ui-datepicker-title select {
890
+ margin-top: -8px;
891
+ margin-bottom: -8px;
892
+ }
893
+ /* line 81, sass/partials/_jquery_ui.scss */
894
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
895
+ .cmb2-element.ui-datepicker .ui-datepicker-next, .cmb2-element .ui-datepicker .ui-datepicker-prev,
896
+ .cmb2-element .ui-datepicker .ui-datepicker-next {
897
+ position: relative;
898
+ top: 0;
899
+ height: 34px;
900
+ width: 34px;
901
+ }
902
+ /* line 89, sass/partials/_jquery_ui.scss */
903
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev,
904
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next, .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,
905
+ .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next {
906
+ border: none;
907
+ }
908
+ /* line 94, sass/partials/_jquery_ui.scss */
909
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
910
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover, .cmb2-element .ui-datepicker .ui-datepicker-prev,
911
+ .cmb2-element .ui-datepicker .ui-datepicker-prev-hover {
912
+ right: 0;
913
+ }
914
+ /* line 99, sass/partials/_jquery_ui.scss */
915
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
916
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover, .cmb2-element .ui-datepicker .ui-datepicker-next,
917
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover {
918
+ left: 0;
919
+ }
920
+ /* line 104, sass/partials/_jquery_ui.scss */
921
+ .cmb2-element.ui-datepicker .ui-datepicker-next span,
922
+ .cmb2-element.ui-datepicker .ui-datepicker-prev span, .cmb2-element .ui-datepicker .ui-datepicker-next span,
923
+ .cmb2-element .ui-datepicker .ui-datepicker-prev span {
924
+ display: none;
925
+ }
926
+ /* line 109, sass/partials/_jquery_ui.scss */
927
+ .cmb2-element.ui-datepicker .ui-datepicker-prev, .cmb2-element .ui-datepicker .ui-datepicker-prev {
928
+ float: right;
929
+ }
930
+ /* line 113, sass/partials/_jquery_ui.scss */
931
+ .cmb2-element.ui-datepicker .ui-datepicker-next, .cmb2-element .ui-datepicker .ui-datepicker-next {
932
+ float: left;
933
+ }
934
+ /* line 117, sass/partials/_jquery_ui.scss */
935
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
936
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before, .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
937
+ .cmb2-element .ui-datepicker .ui-datepicker-next:before {
938
+ font: normal 20px/34px 'dashicons';
939
+ padding-right: 7px;
940
+ color: #fff;
941
+ speak: none;
942
+ -webkit-font-smoothing: antialiased;
943
+ -moz-osx-font-smoothing: grayscale;
944
+ width: 34px;
945
+ height: 34px;
946
+ }
947
+ /* line 129, sass/partials/_jquery_ui.scss */
948
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before, .cmb2-element .ui-datepicker .ui-datepicker-prev:before {
949
+ content: '\f341';
950
+ }
951
+ /* line 133, sass/partials/_jquery_ui.scss */
952
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before, .cmb2-element .ui-datepicker .ui-datepicker-next:before {
953
+ content: '\f345';
954
+ }
955
+ /* line 137, sass/partials/_jquery_ui.scss */
956
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before,
957
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover:before, .cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,
958
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover:before {
959
+ opacity: 0.7;
960
+ }
961
+ /* line 142, sass/partials/_jquery_ui.scss */
962
+ .cmb2-element.ui-datepicker select.ui-datepicker-month,
963
+ .cmb2-element.ui-datepicker select.ui-datepicker-year, .cmb2-element .ui-datepicker select.ui-datepicker-month,
964
+ .cmb2-element .ui-datepicker select.ui-datepicker-year {
965
+ width: 33%;
966
+ background: transparent;
967
+ border-color: transparent;
968
+ box-shadow: none;
969
+ color: #fff;
970
+ }
971
+ /* line 149, sass/partials/_jquery_ui.scss */
972
+ .cmb2-element.ui-datepicker select.ui-datepicker-month option,
973
+ .cmb2-element.ui-datepicker select.ui-datepicker-year option, .cmb2-element .ui-datepicker select.ui-datepicker-month option,
974
+ .cmb2-element .ui-datepicker select.ui-datepicker-year option {
975
+ color: #333;
976
+ }
977
+ /* line 154, sass/partials/_jquery_ui.scss */
978
+ .cmb2-element.ui-datepicker thead, .cmb2-element .ui-datepicker thead {
979
+ color: #fff;
980
+ font-weight: 600;
981
+ }
982
+ /* line 157, sass/partials/_jquery_ui.scss */
983
+ .cmb2-element.ui-datepicker thead th, .cmb2-element .ui-datepicker thead th {
984
+ font-weight: normal;
985
+ }
986
+ /* line 162, sass/partials/_jquery_ui.scss */
987
+ .cmb2-element.ui-datepicker th, .cmb2-element .ui-datepicker th {
988
+ padding: 10px;
989
+ }
990
+ /* line 166, sass/partials/_jquery_ui.scss */
991
+ .cmb2-element.ui-datepicker td, .cmb2-element .ui-datepicker td {
992
+ padding: 0;
993
+ border: 1px solid #f4f4f4;
994
+ }
995
+ /* line 171, sass/partials/_jquery_ui.scss */
996
+ .cmb2-element.ui-datepicker td.ui-datepicker-other-month, .cmb2-element .ui-datepicker td.ui-datepicker-other-month {
997
+ border: transparent;
998
+ }
999
+ /* line 175, sass/partials/_jquery_ui.scss */
1000
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end, .cmb2-element .ui-datepicker td.ui-datepicker-week-end {
1001
+ background-color: #f4f4f4;
1002
+ border: 1px solid #f4f4f4;
1003
+ }
1004
+ /* line 178, sass/partials/_jquery_ui.scss */
1005
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today, .cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today {
1006
+ -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1007
+ -moz-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1008
+ box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1009
+ }
1010
+ /* line 185, sass/partials/_jquery_ui.scss */
1011
+ .cmb2-element.ui-datepicker td.ui-datepicker-today, .cmb2-element .ui-datepicker td.ui-datepicker-today {
1012
+ background-color: #f0f0c0;
1013
+ }
1014
+ /* line 189, sass/partials/_jquery_ui.scss */
1015
+ .cmb2-element.ui-datepicker td.ui-datepicker-current-day, .cmb2-element .ui-datepicker td.ui-datepicker-current-day {
1016
+ background: #bbdd88;
1017
+ }
1018
+ /* line 193, sass/partials/_jquery_ui.scss */
1019
+ .cmb2-element.ui-datepicker td .ui-state-default, .cmb2-element .ui-datepicker td .ui-state-default {
1020
+ background: transparent;
1021
+ border: none;
1022
+ text-align: center;
1023
+ text-decoration: none;
1024
+ width: auto;
1025
+ display: block;
1026
+ padding: 5px 10px;
1027
+ font-weight: normal;
1028
+ color: #444;
1029
+ }
1030
+ /* line 205, sass/partials/_jquery_ui.scss */
1031
+ .cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default, .cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default {
1032
+ opacity: 0.5;
1033
+ }
1034
+ /* line 210, sass/partials/_jquery_ui.scss */
1035
+ .cmb2-element.ui-datepicker .ui-widget-header,
1036
+ .cmb2-element.ui-datepicker .ui-datepicker-header, .cmb2-element .ui-datepicker .ui-widget-header,
1037
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
1038
+ background: #00a0d2;
1039
+ }
1040
+ /* line 215, sass/partials/_jquery_ui.scss */
1041
+ .cmb2-element.ui-datepicker thead, .cmb2-element .ui-datepicker thead {
1042
+ background: #32373c;
1043
+ }
1044
+ /* line 219, sass/partials/_jquery_ui.scss */
1045
+ .cmb2-element.ui-datepicker td .ui-state-hover, .cmb2-element.ui-datepicker td .ui-state-active, .cmb2-element .ui-datepicker td .ui-state-hover, .cmb2-element .ui-datepicker td .ui-state-active {
1046
+ background: #0073aa;
1047
+ color: #fff;
1048
+ }
1049
+ /* line 224, sass/partials/_jquery_ui.scss */
1050
+ .cmb2-element.ui-datepicker .ui-timepicker-div, .cmb2-element .ui-datepicker .ui-timepicker-div {
1051
+ font-size: 14px;
1052
+ }
1053
+ /* line 226, sass/partials/_jquery_ui.scss */
1054
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl, .cmb2-element .ui-datepicker .ui-timepicker-div dl {
1055
+ text-align: right;
1056
+ padding: 0 .6em;
1057
+ }
1058
+ /* line 229, sass/partials/_jquery_ui.scss */
1059
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dt, .cmb2-element .ui-datepicker .ui-timepicker-div dl dt {
1060
+ float: right;
1061
+ clear: right;
1062
+ padding: 0 5px 0 0;
1063
+ }
1064
+ /* line 234, sass/partials/_jquery_ui.scss */
1065
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd, .cmb2-element .ui-datepicker .ui-timepicker-div dl dd {
1066
+ margin: 0 40% 10px 10px;
1067
+ }
1068
+ /* line 236, sass/partials/_jquery_ui.scss */
1069
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd select, .cmb2-element .ui-datepicker .ui-timepicker-div dl dd select {
1070
+ width: 100%;
1071
+ }
1072
+ /* line 242, sass/partials/_jquery_ui.scss */
1073
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane, .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane {
1074
+ padding: .6em;
1075
+ text-align: right;
1076
+ }
1077
+ /* line 246, sass/partials/_jquery_ui.scss */
1078
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary, .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary, .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary, .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary {
1079
+ padding: 0 10px 1px;
1080
+ -webkit-border-radius: 3px;
1081
+ -moz-border-radius: 3px;
1082
+ border-radius: 3px;
1083
+ margin: 0 .4em .4em .6em;
1084
+ }
1085
+
1086
+ /* line 260, sass/partials/_jquery_ui.scss */
1087
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header,
1088
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,
1089
+ .admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header {
1090
+ background: #00a0d2;
1091
+ }
1092
+ /* line 265, sass/partials/_jquery_ui.scss */
1093
+ .admin-color-fresh .cmb2-element.ui-datepicker thead, .admin-color-fresh .cmb2-element .ui-datepicker thead {
1094
+ background: #32373c;
1095
+ }
1096
+ /* line 269, sass/partials/_jquery_ui.scss */
1097
+ .admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover {
1098
+ background: #0073aa;
1099
+ color: #fff;
1100
+ }
1101
+
1102
+ /* line 277, sass/partials/_jquery_ui.scss */
1103
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header,
1104
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,
1105
+ .admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header {
1106
+ background: #52accc;
1107
+ }
1108
+ /* line 282, sass/partials/_jquery_ui.scss */
1109
+ .admin-color-blue .cmb2-element.ui-datepicker thead, .admin-color-blue .cmb2-element .ui-datepicker thead {
1110
+ background: #4796b3;
1111
+ }
1112
+ /* line 291, sass/partials/_jquery_ui.scss */
1113
+ .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active, .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover, .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active {
1114
+ background: #096484;
1115
+ color: #fff;
1116
+ }
1117
+ /* line 296, sass/partials/_jquery_ui.scss */
1118
+ .admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today, .admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today {
1119
+ background: #eee;
1120
+ }
1121
+
1122
+ /* line 305, sass/partials/_jquery_ui.scss */
1123
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header,
1124
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,
1125
+ .admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header {
1126
+ background: #59524c;
1127
+ }
1128
+ /* line 310, sass/partials/_jquery_ui.scss */
1129
+ .admin-color-coffee .cmb2-element.ui-datepicker thead, .admin-color-coffee .cmb2-element .ui-datepicker thead {
1130
+ background: #46403c;
1131
+ }
1132
+ /* line 314, sass/partials/_jquery_ui.scss */
1133
+ .admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover {
1134
+ background: #c7a589;
1135
+ color: #fff;
1136
+ }
1137
+
1138
+ /* line 322, sass/partials/_jquery_ui.scss */
1139
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header,
1140
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,
1141
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header {
1142
+ background: #523f6d;
1143
+ }
1144
+ /* line 327, sass/partials/_jquery_ui.scss */
1145
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker thead, .admin-color-ectoplasm .cmb2-element .ui-datepicker thead {
1146
+ background: #413256;
1147
+ }
1148
+ /* line 331, sass/partials/_jquery_ui.scss */
1149
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover {
1150
+ background: #a3b745;
1151
+ color: #fff;
1152
+ }
1153
+
1154
+ /* line 339, sass/partials/_jquery_ui.scss */
1155
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header,
1156
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,
1157
+ .admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header {
1158
+ background: #363b3f;
1159
+ }
1160
+ /* line 344, sass/partials/_jquery_ui.scss */
1161
+ .admin-color-midnight .cmb2-element.ui-datepicker thead, .admin-color-midnight .cmb2-element .ui-datepicker thead {
1162
+ background: #26292c;
1163
+ }
1164
+ /* line 348, sass/partials/_jquery_ui.scss */
1165
+ .admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover {
1166
+ background: #e14d43;
1167
+ color: #fff;
1168
+ }
1169
+
1170
+ /* line 356, sass/partials/_jquery_ui.scss */
1171
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header,
1172
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,
1173
+ .admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header {
1174
+ background: #738e96;
1175
+ }
1176
+ /* line 361, sass/partials/_jquery_ui.scss */
1177
+ .admin-color-ocean .cmb2-element.ui-datepicker thead, .admin-color-ocean .cmb2-element .ui-datepicker thead {
1178
+ background: #627c83;
1179
+ }
1180
+ /* line 365, sass/partials/_jquery_ui.scss */
1181
+ .admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover {
1182
+ background: #9ebaa0;
1183
+ color: #fff;
1184
+ }
1185
+
1186
+ /* line 373, sass/partials/_jquery_ui.scss */
1187
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header,
1188
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,
1189
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover, .admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,
1190
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,
1191
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
1192
+ background: #cf4944;
1193
+ }
1194
+ /* line 379, sass/partials/_jquery_ui.scss */
1195
+ .admin-color-sunrise .cmb2-element.ui-datepicker th, .admin-color-sunrise .cmb2-element .ui-datepicker th {
1196
+ border-color: #be3631;
1197
+ background: #be3631;
1198
+ }
1199
+ /* line 384, sass/partials/_jquery_ui.scss */
1200
+ .admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover {
1201
+ background: #dd823b;
1202
+ color: #fff;
1203
+ }
1204
+
1205
+ /* line 392, sass/partials/_jquery_ui.scss */
1206
+ .admin-color-light .cmb2-element.ui-datepicker .ui-widget-header,
1207
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,
1208
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header {
1209
+ background: #e5e5e5;
1210
+ }
1211
+ /* line 397, sass/partials/_jquery_ui.scss */
1212
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,
1213
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year, .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,
1214
+ .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year {
1215
+ color: #555;
1216
+ }
1217
+ /* line 402, sass/partials/_jquery_ui.scss */
1218
+ .admin-color-light .cmb2-element.ui-datepicker thead, .admin-color-light .cmb2-element .ui-datepicker thead {
1219
+ background: #888;
1220
+ }
1221
+ /* line 406, sass/partials/_jquery_ui.scss */
1222
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,
1223
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-default,
1224
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1225
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before, .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,
1226
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,
1227
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
1228
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1229
+ color: #555;
1230
+ }
1231
+ /* line 414, sass/partials/_jquery_ui.scss */
1232
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-light .cmb2-element.ui-datepicker td .ui-state-active, .admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover, .admin-color-light .cmb2-element .ui-datepicker td .ui-state-active {
1233
+ background: #ccc;
1234
+ }
1235
+ /* line 418, sass/partials/_jquery_ui.scss */
1236
+ .admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today, .admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today {
1237
+ background: #eee;
1238
+ }
1239
+
1240
+ /* line 426, sass/partials/_jquery_ui.scss */
1241
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header,
1242
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,
1243
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header {
1244
+ background: #56b274;
1245
+ }
1246
+ /* line 431, sass/partials/_jquery_ui.scss */
1247
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead, .admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead {
1248
+ background: #36533f;
1249
+ }
1250
+ /* line 435, sass/partials/_jquery_ui.scss */
1251
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover {
1252
+ background: #446950;
1253
+ color: #fff;
1254
+ }
1255
+
1256
+ /* line 443, sass/partials/_jquery_ui.scss */
1257
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header,
1258
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,
1259
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header {
1260
+ background: #4ca26a;
1261
+ }
1262
+ /* line 448, sass/partials/_jquery_ui.scss */
1263
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker thead, .admin-color-bbp-mint .cmb2-element .ui-datepicker thead {
1264
+ background: #4f6d59;
1265
+ }
1266
+ /* line 452, sass/partials/_jquery_ui.scss */
1267
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover {
1268
+ background: #5fb37c;
1269
+ color: #fff;
1270
+ }
1271
+
1272
+ /**
1273
+ * CMB2 Frontend
1274
+ */
1275
+ /*--------------------------------------------------------------
1276
+ * CMB2 Frontend
1277
+ --------------------------------------------------------------*/
1278
+ /* line 5, sass/partials/_front.scss */
1279
+ .closed .inside {
1280
+ display: none;
1281
+ }
1282
+
1283
+ /* line 9, sass/partials/_front.scss */
1284
+ .cmb-repeatable-grouping {
1285
+ position: relative;
1286
+ }
1287
+ /* line 12, sass/partials/_front.scss */
1288
+ .cmb-repeatable-grouping .cmb-group-title {
1289
+ margin-right: -1em;
1290
+ margin-left: -1em;
1291
+ min-height: 1.5em;
1292
+ }
1293
+ /* line 18, sass/partials/_front.scss */
1294
+ .cmb-repeatable-grouping h3 {
1295
+ font-size: 14px;
1296
+ padding: 8px 12px;
1297
+ margin: 0;
1298
+ line-height: 1.4;
1299
+ }
1300
+
1301
+ /* line 29, sass/partials/_front.scss */
1302
+ .cmb-repeatable-group.repeatable .cmb-group-title {
1303
+ padding-right: 2.2em;
1304
+ }
1305
+ /* line 33, sass/partials/_front.scss */
1306
+ .cmb-repeatable-group.non-repeatable .cmb-group-title {
1307
+ padding-right: 12px;
1308
+ }
1309
+
1310
+ /* line 39, sass/partials/_front.scss */
1311
+ .cmb-type-group .cmb-row .cmbhandle {
1312
+ left: 0;
1313
+ position: absolute;
1314
+ }
1315
+
1316
+ /* line 44, sass/partials/_front.scss */
1317
+ .cmb-spinner {
1318
+ background: url(/wp-admin/images/spinner.gif) no-repeat;
1319
+ -webkit-background-size: 20px 20px;
1320
+ background-size: 20px 20px;
1321
+ display: none;
1322
+ float: left;
1323
+ vertical-align: middle;
1324
+ opacity: 0.7;
1325
+ filter: alpha(opacity=70);
1326
+ width: 20px;
1327
+ height: 20px;
1328
+ margin: 4px 10px 0;
1329
+ }
1330
+
1331
+ /*# sourceMappingURL=cmb2-front.css.map */
includes/plus-options/metabox/css/cmb2-front-rtl.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! CMB2 - v2.6.0 - 2019-01-18 | https://cmb2.io | Copyright (c) 2019 CMB2 team | Licensed GPLv2 */
2
+ @charset "UTF-8";.cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-right:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 0 0 5px;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 0 0 10px}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:right;font-weight:600;line-height:1.3;padding:20px 0 20px 10px;vertical-align:top;width:200px}@media (max-width:450px){.cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:right}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:left}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 50px 10px 10px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper{outline:dashed 2px #e9e9e9!important}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;right:0;position:absolute;width:35px;height:100%;line-height:35px;cursor:move;color:#757575;text-align:center;border-left:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-right:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;left:7px;position:absolute;width:auto;margin-right:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;right:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 2.2em 8px 12px;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-left:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:left}p.cmb2-metabox-description{color:#757575;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#757575;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-left:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-left:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#eee;border:5px solid #fff;outline:1px solid #e9e9e9;box-shadow:inset 0 0 15px rgba(0,0,0,.3),inset 0 0 0 1px rgba(0,0,0,.05);background-image:linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0),linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0);background-position:0 0,10px 10px;background-size:20px 20px;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0}.cmb2-media-status .embed-status{float:right;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;right:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb2-media-status.cmb-attach-list .file-status>span,.cmb2-media-status.cmb-attach-list .img-status img{cursor:move}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-left:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{float:right;margin-left:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:right}.cmb2-indented-hierarchy{padding-right:1.5em}@media (max-width:450px){.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}}#poststuff .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-right:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{left:-1em;position:relative;color:#222}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 0 0 2%}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:left}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}@media (max-width:450px){.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 0 0 2%;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:0}}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:right;display:none}.cmb-spinner.is-active{display:block}.cmb2-metabox .cmbhandle{color:#757575;float:left;width:27px;height:30px;cursor:pointer;left:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;right:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-right:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:right;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:right;clear:right;padding:0 5px 0 0}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 40% 10px 10px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:right}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .4em .4em .6em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}.closed .inside{display:none}.cmb-repeatable-grouping{position:relative}.cmb-repeatable-grouping .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}.cmb-repeatable-grouping h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb-repeatable-group.repeatable .cmb-group-title{padding-right:2.2em}.cmb-repeatable-group.non-repeatable .cmb-group-title{padding-right:12px}.cmb-type-group .cmb-row .cmbhandle{left:0;position:absolute}.cmb-spinner{background:url(/wp-admin/images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}
includes/plus-options/metabox/css/cmb2-front.css ADDED
@@ -0,0 +1,1331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * CMB2 - v2.6.0 - 2019-01-18
3
+ * https://cmb2.io
4
+ * Copyright (c) 2019
5
+ * Licensed GPLv2+
6
+ */
7
+
8
+ @charset "UTF-8";
9
+ /*--------------------------------------------------------------
10
+ * Main Wrap
11
+ --------------------------------------------------------------*/
12
+ /* line 5, sass/partials/_main_wrap.scss */
13
+ .cmb2-wrap {
14
+ margin: 0;
15
+ }
16
+ /* line 8, sass/partials/_main_wrap.scss */
17
+ .cmb2-wrap input,
18
+ .cmb2-wrap textarea {
19
+ font-size: 14px;
20
+ max-width: 100%;
21
+ padding: 5px;
22
+ }
23
+ /* line 18, sass/partials/_main_wrap.scss */
24
+ .cmb2-wrap input[type=text].cmb2-oembed {
25
+ width: 100%;
26
+ }
27
+ /* line 23, sass/partials/_main_wrap.scss */
28
+ .cmb2-wrap textarea {
29
+ width: 500px;
30
+ }
31
+ /* line 26, sass/partials/_main_wrap.scss */
32
+ .cmb2-wrap textarea.cmb2-textarea-code {
33
+ font-family: "Courier 10 Pitch", Courier, monospace;
34
+ line-height: 16px;
35
+ }
36
+ /* line 34, sass/partials/_main_wrap.scss */
37
+ .cmb2-wrap input.cmb2-text-small, .cmb2-wrap input.cmb2-timepicker {
38
+ width: 100px;
39
+ }
40
+ /* line 40, sass/partials/_main_wrap.scss */
41
+ .cmb2-wrap input.cmb2-text-money {
42
+ width: 90px;
43
+ }
44
+ /* line 45, sass/partials/_main_wrap.scss */
45
+ .cmb2-wrap input.cmb2-text-medium {
46
+ width: 230px;
47
+ }
48
+ /* line 50, sass/partials/_main_wrap.scss */
49
+ .cmb2-wrap input.cmb2-upload-file {
50
+ width: 65%;
51
+ }
52
+ /* line 54, sass/partials/_main_wrap.scss */
53
+ .cmb2-wrap input.ed_button {
54
+ padding: 2px 4px;
55
+ }
56
+ /* line 59, sass/partials/_main_wrap.scss */
57
+ .cmb2-wrap input:not([type="hidden"]) + input,
58
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
59
+ .cmb2-wrap input:not([type="hidden"]) + select {
60
+ margin-left: 20px;
61
+ }
62
+ /* line 67, sass/partials/_main_wrap.scss */
63
+ .cmb2-wrap ul {
64
+ margin: 0;
65
+ }
66
+ /* line 71, sass/partials/_main_wrap.scss */
67
+ .cmb2-wrap li {
68
+ font-size: 14px;
69
+ line-height: 16px;
70
+ margin: 1px 0 5px 0;
71
+ }
72
+ /* line 82, sass/partials/_main_wrap.scss */
73
+ .cmb2-wrap select {
74
+ font-size: 14px;
75
+ margin-top: 3px;
76
+ }
77
+ /* line 87, sass/partials/_main_wrap.scss */
78
+ .cmb2-wrap input:focus,
79
+ .cmb2-wrap textarea:focus {
80
+ background: #fffff8;
81
+ }
82
+ /* line 92, sass/partials/_main_wrap.scss */
83
+ .cmb2-wrap input[type="radio"] {
84
+ margin: 0 5px 0 0;
85
+ padding: 0;
86
+ }
87
+ /* line 97, sass/partials/_main_wrap.scss */
88
+ .cmb2-wrap input[type="checkbox"] {
89
+ margin: 0 5px 0 0;
90
+ padding: 0;
91
+ }
92
+ /* line 102, sass/partials/_main_wrap.scss */
93
+ .cmb2-wrap button,
94
+ .cmb2-wrap .button-secondary {
95
+ white-space: nowrap;
96
+ }
97
+ /* line 107, sass/partials/_main_wrap.scss */
98
+ .cmb2-wrap .mceLayout {
99
+ border: 1px solid #e9e9e9 !important;
100
+ }
101
+ /* line 111, sass/partials/_main_wrap.scss */
102
+ .cmb2-wrap .mceIframeContainer {
103
+ background: #ffffff;
104
+ }
105
+ /* line 115, sass/partials/_main_wrap.scss */
106
+ .cmb2-wrap .meta_mce {
107
+ width: 97%;
108
+ }
109
+ /* line 118, sass/partials/_main_wrap.scss */
110
+ .cmb2-wrap .meta_mce textarea {
111
+ width: 100%;
112
+ }
113
+ /* line 124, sass/partials/_main_wrap.scss */
114
+ .cmb2-wrap .wp-color-result,
115
+ .cmb2-wrap .wp-picker-input-wrap {
116
+ vertical-align: middle;
117
+ }
118
+ /* line 129, sass/partials/_main_wrap.scss */
119
+ .cmb2-wrap .wp-color-result,
120
+ .cmb2-wrap .wp-picker-container {
121
+ margin: 0 10px 0 0;
122
+ }
123
+ /* line 134, sass/partials/_main_wrap.scss */
124
+ .cmb2-wrap .cmb-row {
125
+ margin: 0;
126
+ }
127
+ /* line 137, sass/partials/_main_wrap.scss */
128
+ .cmb2-wrap .cmb-row:after {
129
+ content: '';
130
+ clear: both;
131
+ display: block;
132
+ width: 100%;
133
+ }
134
+ /* line 144, sass/partials/_main_wrap.scss */
135
+ .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
136
+ padding-top: 0;
137
+ padding-bottom: 1em;
138
+ }
139
+
140
+ /* line 152, sass/partials/_main_wrap.scss */
141
+ .cmb2-metabox {
142
+ clear: both;
143
+ margin: 0;
144
+ }
145
+ /* line 158, sass/partials/_main_wrap.scss */
146
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
147
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
148
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
149
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
150
+ border: 0;
151
+ }
152
+
153
+ /* line 165, sass/partials/_main_wrap.scss */
154
+ .cmb-add-row {
155
+ margin: 1.8em 0 0;
156
+ }
157
+
158
+ /* line 169, sass/partials/_main_wrap.scss */
159
+ .cmb-nested .cmb-td,
160
+ .cmb-repeatable-group .cmb-th,
161
+ .cmb-repeatable-group:first-of-type {
162
+ border: 0;
163
+ }
164
+
165
+ /* line 175, sass/partials/_main_wrap.scss */
166
+ .cmb-row:last-of-type,
167
+ .cmb2-wrap .cmb-row:last-of-type,
168
+ .cmb-repeatable-group:last-of-type {
169
+ border-bottom: 0;
170
+ }
171
+
172
+ /* line 181, sass/partials/_main_wrap.scss */
173
+ .cmb-repeatable-grouping {
174
+ border: 1px solid #e9e9e9;
175
+ padding: 0 1em;
176
+ }
177
+ /* line 185, sass/partials/_main_wrap.scss */
178
+ .cmb-repeatable-grouping.cmb-row {
179
+ margin: 0 0 0.8em;
180
+ }
181
+
182
+ /* line 193, sass/partials/_main_wrap.scss */
183
+ .cmb-th {
184
+ color: #222222;
185
+ float: left;
186
+ font-weight: 600;
187
+ line-height: 1.3;
188
+ padding: 20px 10px 20px 0;
189
+ vertical-align: top;
190
+ width: 200px;
191
+ }
192
+ @media (max-width: 450px) {
193
+ /* line 193, sass/partials/_main_wrap.scss */
194
+ .cmb-th {
195
+ font-size: 1.2em;
196
+ display: block;
197
+ float: none;
198
+ padding-bottom: 1em;
199
+ text-align: left;
200
+ width: 100%;
201
+ }
202
+ /* line 27, sass/partials/_mixins.scss */
203
+ .cmb-th label {
204
+ display: block;
205
+ margin-top: 0;
206
+ margin-bottom: 0.5em;
207
+ }
208
+ }
209
+
210
+ /* line 207, sass/partials/_main_wrap.scss */
211
+ .cmb-td {
212
+ line-height: 1.3;
213
+ max-width: 100%;
214
+ padding: 15px 10px;
215
+ vertical-align: middle;
216
+ }
217
+
218
+ /* line 216, sass/partials/_main_wrap.scss */
219
+ .cmb-type-title .cmb-td {
220
+ padding: 0;
221
+ }
222
+
223
+ /* line 221, sass/partials/_main_wrap.scss */
224
+ .cmb-th label {
225
+ display: block;
226
+ padding: 5px 0;
227
+ }
228
+
229
+ /* line 226, sass/partials/_main_wrap.scss */
230
+ .cmb-th + .cmb-td {
231
+ float: left;
232
+ }
233
+
234
+ /* line 230, sass/partials/_main_wrap.scss */
235
+ .cmb-td .cmb-td {
236
+ padding-bottom: 1em;
237
+ }
238
+
239
+ /* line 234, sass/partials/_main_wrap.scss */
240
+ .cmb-remove-row {
241
+ text-align: right;
242
+ }
243
+
244
+ /* line 238, sass/partials/_main_wrap.scss */
245
+ .empty-row.hidden {
246
+ display: none;
247
+ }
248
+
249
+ /* line 243, sass/partials/_main_wrap.scss */
250
+ .cmb-repeat-table {
251
+ background-color: #fafafa;
252
+ border: 1px solid #e1e1e1;
253
+ }
254
+ /* line 247, sass/partials/_main_wrap.scss */
255
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
256
+ position: relative;
257
+ counter-increment: el;
258
+ margin: 0;
259
+ padding: 10px 10px 10px 50px;
260
+ border-bottom: none !important;
261
+ }
262
+ /* line 255, sass/partials/_main_wrap.scss */
263
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
264
+ border-top: solid 1px #e9e9e9;
265
+ }
266
+ /* line 259, sass/partials/_main_wrap.scss */
267
+ .cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper {
268
+ outline: dashed 2px #e9e9e9 !important;
269
+ }
270
+ /* line 263, sass/partials/_main_wrap.scss */
271
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
272
+ content: counter(el);
273
+ display: block;
274
+ top: 0;
275
+ left: 0;
276
+ position: absolute;
277
+ width: 35px;
278
+ height: 100%;
279
+ line-height: 35px;
280
+ cursor: move;
281
+ color: #757575;
282
+ text-align: center;
283
+ border-right: solid 1px #e9e9e9;
284
+ }
285
+ /* line 280, sass/partials/_main_wrap.scss */
286
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
287
+ margin: 0;
288
+ padding: 0;
289
+ }
290
+ /* line 287, sass/partials/_main_wrap.scss */
291
+ .cmb-repeat-table + .cmb-add-row {
292
+ margin: 0;
293
+ }
294
+ /* line 290, sass/partials/_main_wrap.scss */
295
+ .cmb-repeat-table + .cmb-add-row:before {
296
+ content: '';
297
+ width: 1px;
298
+ height: 1.6em;
299
+ display: block;
300
+ margin-left: 17px;
301
+ background-color: gainsboro;
302
+ }
303
+ /* line 300, sass/partials/_main_wrap.scss */
304
+ .cmb-repeat-table .cmb-remove-row {
305
+ top: 7px;
306
+ right: 7px;
307
+ position: absolute;
308
+ width: auto;
309
+ margin-left: 0;
310
+ padding: 0 !important;
311
+ display: none;
312
+ }
313
+ /* line 311, sass/partials/_main_wrap.scss */
314
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
315
+ font-size: 20px;
316
+ text-indent: -1000px;
317
+ overflow: hidden;
318
+ position: relative;
319
+ height: auto;
320
+ line-height: 1;
321
+ padding: 0 10px 0;
322
+ }
323
+ /* line 322, sass/partials/_main_wrap.scss */
324
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
325
+ content: "";
326
+ font-family: 'Dashicons';
327
+ speak: none;
328
+ font-weight: normal;
329
+ font-variant: normal;
330
+ text-transform: none;
331
+ line-height: 1;
332
+ -webkit-font-smoothing: antialiased;
333
+ margin: 0;
334
+ text-indent: 0;
335
+ position: absolute;
336
+ top: 0;
337
+ left: 0;
338
+ width: 100%;
339
+ height: 100%;
340
+ text-align: center;
341
+ }
342
+ /* line 328, sass/partials/_main_wrap.scss */
343
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
344
+ display: block;
345
+ }
346
+
347
+ /* line 336, sass/partials/_main_wrap.scss */
348
+ .cmb-repeatable-group .cmb-th {
349
+ padding: 5px;
350
+ }
351
+ /* line 340, sass/partials/_main_wrap.scss */
352
+ .cmb-repeatable-group .cmb-group-title {
353
+ background-color: #e9e9e9;
354
+ padding: 8px 12px 8px 2.2em;
355
+ margin: 0 -1em;
356
+ min-height: 1.5em;
357
+ font-size: 14px;
358
+ line-height: 1.4;
359
+ }
360
+ /* line 348, sass/partials/_main_wrap.scss */
361
+ .cmb-repeatable-group .cmb-group-title h4 {
362
+ border: 0;
363
+ margin: 0;
364
+ font-size: 1.2em;
365
+ font-weight: 500;
366
+ padding: 0.5em 0.75em;
367
+ }
368
+ /* line 356, sass/partials/_main_wrap.scss */
369
+ .cmb-repeatable-group .cmb-group-title .cmb-th {
370
+ display: block;
371
+ width: 100%;
372
+ }
373
+ /* line 362, sass/partials/_main_wrap.scss */
374
+ .cmb-repeatable-group .cmb-group-description .cmb-th {
375
+ font-size: 1.2em;
376
+ display: block;
377
+ float: none;
378
+ padding-bottom: 1em;
379
+ text-align: left;
380
+ width: 100%;
381
+ }
382
+ /* line 27, sass/partials/_mixins.scss */
383
+ .cmb-repeatable-group .cmb-group-description .cmb-th label {
384
+ display: block;
385
+ margin-top: 0;
386
+ margin-bottom: 0.5em;
387
+ }
388
+ /* line 366, sass/partials/_main_wrap.scss */
389
+ .cmb-repeatable-group .cmb-shift-rows {
390
+ font-size: 1em;
391
+ margin-right: 1em;
392
+ text-decoration: none;
393
+ }
394
+ /* line 371, sass/partials/_main_wrap.scss */
395
+ .cmb-repeatable-group .cmb-shift-rows .dashicons {
396
+ font-size: 1.5em;
397
+ height: 1.5em;
398
+ line-height: 1.2em;
399
+ width: 1em;
400
+ }
401
+ /* line 377, sass/partials/_main_wrap.scss */
402
+ .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
403
+ line-height: 1.3em;
404
+ }
405
+ /* line 384, sass/partials/_main_wrap.scss */
406
+ .cmb-repeatable-group .cmb2-upload-button {
407
+ float: right;
408
+ }
409
+
410
+ /* line 390, sass/partials/_main_wrap.scss */
411
+ p.cmb2-metabox-description {
412
+ color: #757575;
413
+ font-style: italic;
414
+ margin: 0;
415
+ padding-top: .5em;
416
+ }
417
+
418
+ /* line 397, sass/partials/_main_wrap.scss */
419
+ span.cmb2-metabox-description {
420
+ color: #757575;
421
+ font-style: italic;
422
+ }
423
+
424
+ /* line 402, sass/partials/_main_wrap.scss */
425
+ .cmb2-metabox-title {
426
+ margin: 0 0 5px 0;
427
+ padding: 5px 0 0 0;
428
+ font-size: 14px;
429
+ }
430
+
431
+ /* line 408, sass/partials/_main_wrap.scss */
432
+ .cmb-inline ul {
433
+ padding: 4px 0 0 0;
434
+ }
435
+
436
+ /* line 412, sass/partials/_main_wrap.scss */
437
+ .cmb-inline li {
438
+ display: inline-block;
439
+ padding-right: 18px;
440
+ }
441
+
442
+ /* line 417, sass/partials/_main_wrap.scss */
443
+ .cmb-type-textarea-code pre {
444
+ margin: 0;
445
+ }
446
+
447
+ /* line 423, sass/partials/_main_wrap.scss */
448
+ .cmb2-media-status .img-status {
449
+ clear: none;
450
+ display: inline-block;
451
+ vertical-align: middle;
452
+ margin-right: 10px;
453
+ width: auto;
454
+ }
455
+ /* line 430, sass/partials/_main_wrap.scss */
456
+ .cmb2-media-status .img-status img {
457
+ max-width: 350px;
458
+ height: auto;
459
+ }
460
+ /* line 436, sass/partials/_main_wrap.scss */
461
+ .cmb2-media-status .img-status img,
462
+ .cmb2-media-status .embed-status {
463
+ background: #eee;
464
+ border: 5px solid #ffffff;
465
+ outline: 1px solid #e9e9e9;
466
+ box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.05);
467
+ background-image: linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0), linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0);
468
+ background-position: 0 0, 10px 10px;
469
+ background-size: 20px 20px;
470
+ border-radius: 2px;
471
+ -moz-border-radius: 2px;
472
+ margin: 15px 0 0 0;
473
+ }
474
+ /* line 450, sass/partials/_main_wrap.scss */
475
+ .cmb2-media-status .embed-status {
476
+ float: left;
477
+ max-width: 800px;
478
+ }
479
+ /* line 455, sass/partials/_main_wrap.scss */
480
+ .cmb2-media-status .img-status, .cmb2-media-status .embed-status {
481
+ position: relative;
482
+ }
483
+ /* line 458, sass/partials/_main_wrap.scss */
484
+ .cmb2-media-status .img-status .cmb2-remove-file-button, .cmb2-media-status .embed-status .cmb2-remove-file-button {
485
+ background: url(../images/ico-delete.png);
486
+ height: 16px;
487
+ left: -5px;
488
+ position: absolute;
489
+ text-indent: -9999px;
490
+ top: -5px;
491
+ width: 16px;
492
+ }
493
+ /* line 472, sass/partials/_main_wrap.scss */
494
+ .cmb2-media-status .img-status .cmb2-remove-file-button {
495
+ top: 10px;
496
+ }
497
+ /* line 477, sass/partials/_main_wrap.scss */
498
+ .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span {
499
+ cursor: pointer;
500
+ }
501
+ /* line 482, sass/partials/_main_wrap.scss */
502
+ .cmb2-media-status.cmb-attach-list .img-status img, .cmb2-media-status.cmb-attach-list .file-status > span {
503
+ cursor: move;
504
+ }
505
+
506
+ /* line 489, sass/partials/_main_wrap.scss */
507
+ .cmb-type-file-list .cmb2-media-status .img-status {
508
+ clear: none;
509
+ vertical-align: middle;
510
+ width: auto;
511
+ margin-right: 10px;
512
+ margin-bottom: 10px;
513
+ margin-top: 0;
514
+ }
515
+
516
+ /* line 498, sass/partials/_main_wrap.scss */
517
+ .cmb-attach-list li {
518
+ clear: both;
519
+ display: inline-block;
520
+ width: 100%;
521
+ margin-top: 5px;
522
+ margin-bottom: 10px;
523
+ }
524
+ /* line 504, sass/partials/_main_wrap.scss */
525
+ .cmb-attach-list li img {
526
+ float: left;
527
+ margin-right: 10px;
528
+ }
529
+
530
+ /* line 510, sass/partials/_main_wrap.scss */
531
+ .cmb2-remove-wrapper {
532
+ margin: 0;
533
+ }
534
+
535
+ /* line 514, sass/partials/_main_wrap.scss */
536
+ .child-cmb2 .cmb-th {
537
+ text-align: left;
538
+ }
539
+
540
+ /* line 518, sass/partials/_main_wrap.scss */
541
+ .cmb2-indented-hierarchy {
542
+ padding-left: 1.5em;
543
+ }
544
+
545
+ @media (max-width: 450px) {
546
+ /* line 523, sass/partials/_main_wrap.scss */
547
+ .cmb-th,
548
+ .cmb-td,
549
+ .cmb-th + .cmb-td {
550
+ display: block;
551
+ float: none;
552
+ width: 100%;
553
+ }
554
+ }
555
+ /*--------------------------------------------------------------
556
+ * Post Metaboxes
557
+ --------------------------------------------------------------*/
558
+ /* line 5, sass/partials/_post_metaboxes.scss */
559
+ #poststuff .cmb-group-title {
560
+ margin-left: -1em;
561
+ margin-right: -1em;
562
+ min-height: 1.5em;
563
+ }
564
+
565
+ /* line 11, sass/partials/_post_metaboxes.scss */
566
+ #poststuff .repeatable .cmb-group-title {
567
+ padding-left: 2.2em;
568
+ }
569
+
570
+ /* line 17, sass/partials/_post_metaboxes.scss */
571
+ .cmb2-postbox .cmb2-wrap, .cmb-type-group .cmb2-wrap {
572
+ margin: 0;
573
+ }
574
+ /* line 20, sass/partials/_post_metaboxes.scss */
575
+ .cmb2-postbox .cmb2-wrap > .cmb-field-list > .cmb-row, .cmb-type-group .cmb2-wrap > .cmb-field-list > .cmb-row {
576
+ padding: 1.8em 0;
577
+ }
578
+ /* line 26, sass/partials/_post_metaboxes.scss */
579
+ .cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed, .cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed {
580
+ width: 100%;
581
+ }
582
+ /* line 32, sass/partials/_post_metaboxes.scss */
583
+ .cmb2-postbox .cmb-row, .cmb-type-group .cmb-row {
584
+ padding: 0 0 1.8em;
585
+ margin: 0 0 0.8em;
586
+ }
587
+ /* line 36, sass/partials/_post_metaboxes.scss */
588
+ .cmb2-postbox .cmb-row .cmbhandle, .cmb-type-group .cmb-row .cmbhandle {
589
+ right: -1em;
590
+ position: relative;
591
+ color: #222222;
592
+ }
593
+ /* line 43, sass/partials/_post_metaboxes.scss */
594
+ .cmb2-postbox .cmb-repeatable-grouping, .cmb-type-group .cmb-repeatable-grouping {
595
+ padding: 0 1em;
596
+ max-width: 100%;
597
+ min-width: 1px !important;
598
+ }
599
+ /* line 49, sass/partials/_post_metaboxes.scss */
600
+ .cmb2-postbox .cmb-repeatable-group > .cmb-row, .cmb-type-group .cmb-repeatable-group > .cmb-row {
601
+ padding-bottom: 0;
602
+ }
603
+ /* line 53, sass/partials/_post_metaboxes.scss */
604
+ .cmb2-postbox .cmb-th, .cmb-type-group .cmb-th {
605
+ width: 18%;
606
+ padding: 0 2% 0 0;
607
+ }
608
+ /* line 59, sass/partials/_post_metaboxes.scss */
609
+ .cmb2-postbox .cmb-td, .cmb-type-group .cmb-td {
610
+ margin-bottom: 0;
611
+ padding: 0;
612
+ line-height: 1.3;
613
+ }
614
+ /* line 65, sass/partials/_post_metaboxes.scss */
615
+ .cmb2-postbox .cmb-th + .cmb-td, .cmb-type-group .cmb-th + .cmb-td {
616
+ width: 80%;
617
+ float: right;
618
+ }
619
+ /* line 70, sass/partials/_post_metaboxes.scss */
620
+ .cmb2-postbox .cmb-row:not(:last-of-type),
621
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
622
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
623
+ border-bottom: 1px solid #e9e9e9;
624
+ }
625
+ @media (max-width: 450px) {
626
+ /* line 70, sass/partials/_post_metaboxes.scss */
627
+ .cmb2-postbox .cmb-row:not(:last-of-type),
628
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
629
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
630
+ border-bottom: 0;
631
+ }
632
+ }
633
+ /* line 79, sass/partials/_post_metaboxes.scss */
634
+ .cmb2-postbox .cmb-repeat-group-field,
635
+ .cmb2-postbox .cmb-remove-field-row, .cmb-type-group .cmb-repeat-group-field,
636
+ .cmb-type-group .cmb-remove-field-row {
637
+ padding-top: 1.8em;
638
+ }
639
+
640
+ /*--------------------------------------------------------------
641
+ * Context Metaboxes
642
+ --------------------------------------------------------------*/
643
+ /* Metabox collapse arrow indicators */
644
+ /* line 9, sass/partials/_context_metaboxes.scss */
645
+ .js .cmb2-postbox.context-box .toggle-indicator:before {
646
+ content: "\f142";
647
+ display: inline-block;
648
+ font: normal 20px/1 dashicons;
649
+ speak: none;
650
+ -webkit-font-smoothing: antialiased;
651
+ -moz-osx-font-smoothing: grayscale;
652
+ text-decoration: none !important;
653
+ }
654
+ /* line 22, sass/partials/_context_metaboxes.scss */
655
+ .js .cmb2-postbox.context-box.closed .toggle-indicator:before {
656
+ content: "\f140";
657
+ }
658
+
659
+ /* line 30, sass/partials/_context_metaboxes.scss */
660
+ .cmb2-postbox.context-box {
661
+ margin-bottom: 10px;
662
+ }
663
+ /* line 34, sass/partials/_context_metaboxes.scss */
664
+ .cmb2-postbox.context-box.context-before_permalink-box {
665
+ margin-top: 10px;
666
+ }
667
+ /* line 38, sass/partials/_context_metaboxes.scss */
668
+ .cmb2-postbox.context-box.context-after_title-box {
669
+ margin-top: 10px;
670
+ }
671
+ /* line 42, sass/partials/_context_metaboxes.scss */
672
+ .cmb2-postbox.context-box.context-after_editor-box {
673
+ margin-top: 20px;
674
+ margin-bottom: 0;
675
+ }
676
+ /* line 47, sass/partials/_context_metaboxes.scss */
677
+ .cmb2-postbox.context-box.context-form_top-box {
678
+ margin-top: 10px;
679
+ }
680
+ /* line 51, sass/partials/_context_metaboxes.scss */
681
+ .cmb2-postbox.context-box.context-form_top-box .hndle {
682
+ font-size: 14px;
683
+ padding: 8px 12px;
684
+ margin: 0;
685
+ line-height: 1.4;
686
+ }
687
+ /* line 59, sass/partials/_context_metaboxes.scss */
688
+ .cmb2-postbox.context-box .hndle {
689
+ cursor: auto;
690
+ }
691
+
692
+ /* line 64, sass/partials/_context_metaboxes.scss */
693
+ .cmb2-context-wrap {
694
+ margin-top: 10px;
695
+ }
696
+ /* line 68, sass/partials/_context_metaboxes.scss */
697
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
698
+ margin-right: 300px;
699
+ width: auto;
700
+ }
701
+ /* line 75, sass/partials/_context_metaboxes.scss */
702
+ .cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox {
703
+ padding: 10px;
704
+ }
705
+ /* line 80, sass/partials/_context_metaboxes.scss */
706
+ .cmb2-context-wrap .cmb-th {
707
+ padding: 0 2% 0 0;
708
+ width: 18%;
709
+ }
710
+ /* line 85, sass/partials/_context_metaboxes.scss */
711
+ .cmb2-context-wrap .cmb-td {
712
+ width: 80%;
713
+ padding: 0;
714
+ }
715
+ /* line 90, sass/partials/_context_metaboxes.scss */
716
+ .cmb2-context-wrap .cmb-row {
717
+ margin-bottom: 10px;
718
+ }
719
+ /* line 93, sass/partials/_context_metaboxes.scss */
720
+ .cmb2-context-wrap .cmb-row:last-of-type {
721
+ margin-bottom: 0;
722
+ }
723
+
724
+ /* one column on the post write/edit screen */
725
+ @media only screen and (max-width: 850px) {
726
+ /* line 103, sass/partials/_context_metaboxes.scss */
727
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
728
+ margin-right: 0;
729
+ }
730
+ }
731
+ /*--------------------------------------------------------------
732
+ * Misc.
733
+ --------------------------------------------------------------*/
734
+ /* line 5, sass/partials/_misc.scss */
735
+ #poststuff .cmb-repeatable-group h2 {
736
+ margin: 0;
737
+ }
738
+
739
+ /* line 12, sass/partials/_misc.scss */
740
+ .edit-tags-php .cmb2-metabox-title,
741
+ .profile-php .cmb2-metabox-title,
742
+ .user-edit-php .cmb2-metabox-title {
743
+ font-size: 1.4em;
744
+ }
745
+
746
+ /* line 18, sass/partials/_misc.scss */
747
+ .cmb2-postbox .cmb-spinner, .cmb2-no-box-wrap .cmb-spinner {
748
+ float: left;
749
+ display: none;
750
+ }
751
+
752
+ /* line 24, sass/partials/_misc.scss */
753
+ .cmb-spinner {
754
+ display: none;
755
+ }
756
+ /* line 26, sass/partials/_misc.scss */
757
+ .cmb-spinner.is-active {
758
+ display: block;
759
+ }
760
+
761
+ /*--------------------------------------------------------------
762
+ * Collapsible UI
763
+ --------------------------------------------------------------*/
764
+ /* line 6, sass/partials/_collapsible_ui.scss */
765
+ .cmb2-metabox .cmbhandle {
766
+ color: #757575;
767
+ float: right;
768
+ width: 27px;
769
+ height: 30px;
770
+ cursor: pointer;
771
+ right: -1em;
772
+ position: relative;
773
+ }
774
+ /* line 14, sass/partials/_collapsible_ui.scss */
775
+ .cmb2-metabox .cmbhandle:before {
776
+ content: '\f142';
777
+ right: 12px;
778
+ font: normal 20px/1 'dashicons';
779
+ speak: none;
780
+ display: inline-block;
781
+ padding: 8px 10px;
782
+ top: 0;
783
+ position: relative;
784
+ -webkit-font-smoothing: antialiased;
785
+ -moz-osx-font-smoothing: grayscale;
786
+ text-decoration: none !important;
787
+ }
788
+ /* line 31, sass/partials/_collapsible_ui.scss */
789
+ .cmb2-metabox .postbox.closed .cmbhandle:before {
790
+ content: '\f140';
791
+ }
792
+ /* line 37, sass/partials/_collapsible_ui.scss */
793
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
794
+ -webkit-appearance: none !important;
795
+ background: none !important;
796
+ border: none !important;
797
+ position: absolute;
798
+ left: 0;
799
+ top: .5em;
800
+ line-height: 1em;
801
+ padding: 2px 6px 3px;
802
+ opacity: .5;
803
+ }
804
+ /* line 47, sass/partials/_collapsible_ui.scss */
805
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
806
+ cursor: pointer;
807
+ color: #a00;
808
+ opacity: 1;
809
+ }
810
+ /* line 51, sass/partials/_collapsible_ui.scss */
811
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
812
+ color: #f00;
813
+ }
814
+
815
+ /*
816
+ * jQuery UI CSS Framework 1.8.16
817
+ *
818
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
819
+ * Dual licensed under the MIT or GPL Version 2 licenses.
820
+ * http://jquery.org/license
821
+ *
822
+ * http://docs.jquery.com/UI/Theming/API
823
+ *
824
+ * WordPress Styles adopted from "jQuery UI Datepicker CSS for WordPress"
825
+ * https://github.com/stuttter/wp-datepicker-styling
826
+ *
827
+ */
828
+ /* line 15, sass/partials/_jquery_ui.scss */
829
+ * html .cmb2-element.ui-helper-clearfix {
830
+ height: 1%;
831
+ }
832
+
833
+ /* line 24, sass/partials/_jquery_ui.scss */
834
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
835
+ padding: 0;
836
+ margin: 0;
837
+ -webkit-border-radius: 0;
838
+ -moz-border-radius: 0;
839
+ border-radius: 0;
840
+ background-color: #fff;
841
+ border: 1px solid #dfdfdf;
842
+ border-top: none;
843
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
844
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
845
+ min-width: 17em;
846
+ width: auto;
847
+ /* Default Color Scheme */
848
+ }
849
+ /* line 38, sass/partials/_jquery_ui.scss */
850
+ .cmb2-element.ui-datepicker *, .cmb2-element .ui-datepicker * {
851
+ padding: 0;
852
+ font-family: "Open Sans", sans-serif;
853
+ -webkit-border-radius: 0;
854
+ -moz-border-radius: 0;
855
+ border-radius: 0;
856
+ }
857
+ /* line 46, sass/partials/_jquery_ui.scss */
858
+ .cmb2-element.ui-datepicker table, .cmb2-element .ui-datepicker table {
859
+ font-size: 13px;
860
+ margin: 0;
861
+ border: none;
862
+ border-collapse: collapse;
863
+ }
864
+ /* line 53, sass/partials/_jquery_ui.scss */
865
+ .cmb2-element.ui-datepicker .ui-widget-header,
866
+ .cmb2-element.ui-datepicker .ui-datepicker-header, .cmb2-element .ui-datepicker .ui-widget-header,
867
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
868
+ background-image: none;
869
+ border: none;
870
+ color: #fff;
871
+ font-weight: normal;
872
+ }
873
+ /* line 61, sass/partials/_jquery_ui.scss */
874
+ .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover, .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
875
+ background: transparent;
876
+ border-color: transparent;
877
+ cursor: pointer;
878
+ }
879
+ /* line 67, sass/partials/_jquery_ui.scss */
880
+ .cmb2-element.ui-datepicker .ui-datepicker-title, .cmb2-element .ui-datepicker .ui-datepicker-title {
881
+ margin: 0;
882
+ padding: 10px 0;
883
+ color: #fff;
884
+ font-size: 14px;
885
+ line-height: 14px;
886
+ text-align: center;
887
+ }
888
+ /* line 75, sass/partials/_jquery_ui.scss */
889
+ .cmb2-element.ui-datepicker .ui-datepicker-title select, .cmb2-element .ui-datepicker .ui-datepicker-title select {
890
+ margin-top: -8px;
891
+ margin-bottom: -8px;
892
+ }
893
+ /* line 81, sass/partials/_jquery_ui.scss */
894
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
895
+ .cmb2-element.ui-datepicker .ui-datepicker-next, .cmb2-element .ui-datepicker .ui-datepicker-prev,
896
+ .cmb2-element .ui-datepicker .ui-datepicker-next {
897
+ position: relative;
898
+ top: 0;
899
+ height: 34px;
900
+ width: 34px;
901
+ }
902
+ /* line 89, sass/partials/_jquery_ui.scss */
903
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev,
904
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next, .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,
905
+ .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next {
906
+ border: none;
907
+ }
908
+ /* line 94, sass/partials/_jquery_ui.scss */
909
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
910
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover, .cmb2-element .ui-datepicker .ui-datepicker-prev,
911
+ .cmb2-element .ui-datepicker .ui-datepicker-prev-hover {
912
+ left: 0;
913
+ }
914
+ /* line 99, sass/partials/_jquery_ui.scss */
915
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
916
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover, .cmb2-element .ui-datepicker .ui-datepicker-next,
917
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover {
918
+ right: 0;
919
+ }
920
+ /* line 104, sass/partials/_jquery_ui.scss */
921
+ .cmb2-element.ui-datepicker .ui-datepicker-next span,
922
+ .cmb2-element.ui-datepicker .ui-datepicker-prev span, .cmb2-element .ui-datepicker .ui-datepicker-next span,
923
+ .cmb2-element .ui-datepicker .ui-datepicker-prev span {
924
+ display: none;
925
+ }
926
+ /* line 109, sass/partials/_jquery_ui.scss */
927
+ .cmb2-element.ui-datepicker .ui-datepicker-prev, .cmb2-element .ui-datepicker .ui-datepicker-prev {
928
+ float: left;
929
+ }
930
+ /* line 113, sass/partials/_jquery_ui.scss */
931
+ .cmb2-element.ui-datepicker .ui-datepicker-next, .cmb2-element .ui-datepicker .ui-datepicker-next {
932
+ float: right;
933
+ }
934
+ /* line 117, sass/partials/_jquery_ui.scss */
935
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
936
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before, .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
937
+ .cmb2-element .ui-datepicker .ui-datepicker-next:before {
938
+ font: normal 20px/34px 'dashicons';
939
+ padding-left: 7px;
940
+ color: #fff;
941
+ speak: none;
942
+ -webkit-font-smoothing: antialiased;
943
+ -moz-osx-font-smoothing: grayscale;
944
+ width: 34px;
945
+ height: 34px;
946
+ }
947
+ /* line 129, sass/partials/_jquery_ui.scss */
948
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before, .cmb2-element .ui-datepicker .ui-datepicker-prev:before {
949
+ content: '\f341';
950
+ }
951
+ /* line 133, sass/partials/_jquery_ui.scss */
952
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before, .cmb2-element .ui-datepicker .ui-datepicker-next:before {
953
+ content: '\f345';
954
+ }
955
+ /* line 137, sass/partials/_jquery_ui.scss */
956
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before,
957
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover:before, .cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,
958
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover:before {
959
+ opacity: 0.7;
960
+ }
961
+ /* line 142, sass/partials/_jquery_ui.scss */
962
+ .cmb2-element.ui-datepicker select.ui-datepicker-month,
963
+ .cmb2-element.ui-datepicker select.ui-datepicker-year, .cmb2-element .ui-datepicker select.ui-datepicker-month,
964
+ .cmb2-element .ui-datepicker select.ui-datepicker-year {
965
+ width: 33%;
966
+ background: transparent;
967
+ border-color: transparent;
968
+ box-shadow: none;
969
+ color: #fff;
970
+ }
971
+ /* line 149, sass/partials/_jquery_ui.scss */
972
+ .cmb2-element.ui-datepicker select.ui-datepicker-month option,
973
+ .cmb2-element.ui-datepicker select.ui-datepicker-year option, .cmb2-element .ui-datepicker select.ui-datepicker-month option,
974
+ .cmb2-element .ui-datepicker select.ui-datepicker-year option {
975
+ color: #333;
976
+ }
977
+ /* line 154, sass/partials/_jquery_ui.scss */
978
+ .cmb2-element.ui-datepicker thead, .cmb2-element .ui-datepicker thead {
979
+ color: #fff;
980
+ font-weight: 600;
981
+ }
982
+ /* line 157, sass/partials/_jquery_ui.scss */
983
+ .cmb2-element.ui-datepicker thead th, .cmb2-element .ui-datepicker thead th {
984
+ font-weight: normal;
985
+ }
986
+ /* line 162, sass/partials/_jquery_ui.scss */
987
+ .cmb2-element.ui-datepicker th, .cmb2-element .ui-datepicker th {
988
+ padding: 10px;
989
+ }
990
+ /* line 166, sass/partials/_jquery_ui.scss */
991
+ .cmb2-element.ui-datepicker td, .cmb2-element .ui-datepicker td {
992
+ padding: 0;
993
+ border: 1px solid #f4f4f4;
994
+ }
995
+ /* line 171, sass/partials/_jquery_ui.scss */
996
+ .cmb2-element.ui-datepicker td.ui-datepicker-other-month, .cmb2-element .ui-datepicker td.ui-datepicker-other-month {
997
+ border: transparent;
998
+ }
999
+ /* line 175, sass/partials/_jquery_ui.scss */
1000
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end, .cmb2-element .ui-datepicker td.ui-datepicker-week-end {
1001
+ background-color: #f4f4f4;
1002
+ border: 1px solid #f4f4f4;
1003
+ }
1004
+ /* line 178, sass/partials/_jquery_ui.scss */
1005
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today, .cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today {
1006
+ -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1007
+ -moz-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1008
+ box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1009
+ }
1010
+ /* line 185, sass/partials/_jquery_ui.scss */
1011
+ .cmb2-element.ui-datepicker td.ui-datepicker-today, .cmb2-element .ui-datepicker td.ui-datepicker-today {
1012
+ background-color: #f0f0c0;
1013
+ }
1014
+ /* line 189, sass/partials/_jquery_ui.scss */
1015
+ .cmb2-element.ui-datepicker td.ui-datepicker-current-day, .cmb2-element .ui-datepicker td.ui-datepicker-current-day {
1016
+ background: #bbdd88;
1017
+ }
1018
+ /* line 193, sass/partials/_jquery_ui.scss */
1019
+ .cmb2-element.ui-datepicker td .ui-state-default, .cmb2-element .ui-datepicker td .ui-state-default {
1020
+ background: transparent;
1021
+ border: none;
1022
+ text-align: center;
1023
+ text-decoration: none;
1024
+ width: auto;
1025
+ display: block;
1026
+ padding: 5px 10px;
1027
+ font-weight: normal;
1028
+ color: #444;
1029
+ }
1030
+ /* line 205, sass/partials/_jquery_ui.scss */
1031
+ .cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default, .cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default {
1032
+ opacity: 0.5;
1033
+ }
1034
+ /* line 210, sass/partials/_jquery_ui.scss */
1035
+ .cmb2-element.ui-datepicker .ui-widget-header,
1036
+ .cmb2-element.ui-datepicker .ui-datepicker-header, .cmb2-element .ui-datepicker .ui-widget-header,
1037
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
1038
+ background: #00a0d2;
1039
+ }
1040
+ /* line 215, sass/partials/_jquery_ui.scss */
1041
+ .cmb2-element.ui-datepicker thead, .cmb2-element .ui-datepicker thead {
1042
+ background: #32373c;
1043
+ }
1044
+ /* line 219, sass/partials/_jquery_ui.scss */
1045
+ .cmb2-element.ui-datepicker td .ui-state-hover, .cmb2-element.ui-datepicker td .ui-state-active, .cmb2-element .ui-datepicker td .ui-state-hover, .cmb2-element .ui-datepicker td .ui-state-active {
1046
+ background: #0073aa;
1047
+ color: #fff;
1048
+ }
1049
+ /* line 224, sass/partials/_jquery_ui.scss */
1050
+ .cmb2-element.ui-datepicker .ui-timepicker-div, .cmb2-element .ui-datepicker .ui-timepicker-div {
1051
+ font-size: 14px;
1052
+ }
1053
+ /* line 226, sass/partials/_jquery_ui.scss */
1054
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl, .cmb2-element .ui-datepicker .ui-timepicker-div dl {
1055
+ text-align: left;
1056
+ padding: 0 .6em;
1057
+ }
1058
+ /* line 229, sass/partials/_jquery_ui.scss */
1059
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dt, .cmb2-element .ui-datepicker .ui-timepicker-div dl dt {
1060
+ float: left;
1061
+ clear: left;
1062
+ padding: 0 0 0 5px;
1063
+ }
1064
+ /* line 234, sass/partials/_jquery_ui.scss */
1065
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd, .cmb2-element .ui-datepicker .ui-timepicker-div dl dd {
1066
+ margin: 0 10px 10px 40%;
1067
+ }
1068
+ /* line 236, sass/partials/_jquery_ui.scss */
1069
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd select, .cmb2-element .ui-datepicker .ui-timepicker-div dl dd select {
1070
+ width: 100%;
1071
+ }
1072
+ /* line 242, sass/partials/_jquery_ui.scss */
1073
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane, .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane {
1074
+ padding: .6em;
1075
+ text-align: left;
1076
+ }
1077
+ /* line 246, sass/partials/_jquery_ui.scss */
1078
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary, .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary, .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary, .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary {
1079
+ padding: 0 10px 1px;
1080
+ -webkit-border-radius: 3px;
1081
+ -moz-border-radius: 3px;
1082
+ border-radius: 3px;
1083
+ margin: 0 .6em .4em .4em;
1084
+ }
1085
+
1086
+ /* line 260, sass/partials/_jquery_ui.scss */
1087
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header,
1088
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,
1089
+ .admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header {
1090
+ background: #00a0d2;
1091
+ }
1092
+ /* line 265, sass/partials/_jquery_ui.scss */
1093
+ .admin-color-fresh .cmb2-element.ui-datepicker thead, .admin-color-fresh .cmb2-element .ui-datepicker thead {
1094
+ background: #32373c;
1095
+ }
1096
+ /* line 269, sass/partials/_jquery_ui.scss */
1097
+ .admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover {
1098
+ background: #0073aa;
1099
+ color: #fff;
1100
+ }
1101
+
1102
+ /* line 277, sass/partials/_jquery_ui.scss */
1103
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header,
1104
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,
1105
+ .admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header {
1106
+ background: #52accc;
1107
+ }
1108
+ /* line 282, sass/partials/_jquery_ui.scss */
1109
+ .admin-color-blue .cmb2-element.ui-datepicker thead, .admin-color-blue .cmb2-element .ui-datepicker thead {
1110
+ background: #4796b3;
1111
+ }
1112
+ /* line 291, sass/partials/_jquery_ui.scss */
1113
+ .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active, .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover, .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active {
1114
+ background: #096484;
1115
+ color: #fff;
1116
+ }
1117
+ /* line 296, sass/partials/_jquery_ui.scss */
1118
+ .admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today, .admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today {
1119
+ background: #eee;
1120
+ }
1121
+
1122
+ /* line 305, sass/partials/_jquery_ui.scss */
1123
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header,
1124
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,
1125
+ .admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header {
1126
+ background: #59524c;
1127
+ }
1128
+ /* line 310, sass/partials/_jquery_ui.scss */
1129
+ .admin-color-coffee .cmb2-element.ui-datepicker thead, .admin-color-coffee .cmb2-element .ui-datepicker thead {
1130
+ background: #46403c;
1131
+ }
1132
+ /* line 314, sass/partials/_jquery_ui.scss */
1133
+ .admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover {
1134
+ background: #c7a589;
1135
+ color: #fff;
1136
+ }
1137
+
1138
+ /* line 322, sass/partials/_jquery_ui.scss */
1139
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header,
1140
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,
1141
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header {
1142
+ background: #523f6d;
1143
+ }
1144
+ /* line 327, sass/partials/_jquery_ui.scss */
1145
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker thead, .admin-color-ectoplasm .cmb2-element .ui-datepicker thead {
1146
+ background: #413256;
1147
+ }
1148
+ /* line 331, sass/partials/_jquery_ui.scss */
1149
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover {
1150
+ background: #a3b745;
1151
+ color: #fff;
1152
+ }
1153
+
1154
+ /* line 339, sass/partials/_jquery_ui.scss */
1155
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header,
1156
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,
1157
+ .admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header {
1158
+ background: #363b3f;
1159
+ }
1160
+ /* line 344, sass/partials/_jquery_ui.scss */
1161
+ .admin-color-midnight .cmb2-element.ui-datepicker thead, .admin-color-midnight .cmb2-element .ui-datepicker thead {
1162
+ background: #26292c;
1163
+ }
1164
+ /* line 348, sass/partials/_jquery_ui.scss */
1165
+ .admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover {
1166
+ background: #e14d43;
1167
+ color: #fff;
1168
+ }
1169
+
1170
+ /* line 356, sass/partials/_jquery_ui.scss */
1171
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header,
1172
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,
1173
+ .admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header {
1174
+ background: #738e96;
1175
+ }
1176
+ /* line 361, sass/partials/_jquery_ui.scss */
1177
+ .admin-color-ocean .cmb2-element.ui-datepicker thead, .admin-color-ocean .cmb2-element .ui-datepicker thead {
1178
+ background: #627c83;
1179
+ }
1180
+ /* line 365, sass/partials/_jquery_ui.scss */
1181
+ .admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover {
1182
+ background: #9ebaa0;
1183
+ color: #fff;
1184
+ }
1185
+
1186
+ /* line 373, sass/partials/_jquery_ui.scss */
1187
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header,
1188
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,
1189
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover, .admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,
1190
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,
1191
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
1192
+ background: #cf4944;
1193
+ }
1194
+ /* line 379, sass/partials/_jquery_ui.scss */
1195
+ .admin-color-sunrise .cmb2-element.ui-datepicker th, .admin-color-sunrise .cmb2-element .ui-datepicker th {
1196
+ border-color: #be3631;
1197
+ background: #be3631;
1198
+ }
1199
+ /* line 384, sass/partials/_jquery_ui.scss */
1200
+ .admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover {
1201
+ background: #dd823b;
1202
+ color: #fff;
1203
+ }
1204
+
1205
+ /* line 392, sass/partials/_jquery_ui.scss */
1206
+ .admin-color-light .cmb2-element.ui-datepicker .ui-widget-header,
1207
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,
1208
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header {
1209
+ background: #e5e5e5;
1210
+ }
1211
+ /* line 397, sass/partials/_jquery_ui.scss */
1212
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,
1213
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year, .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,
1214
+ .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year {
1215
+ color: #555;
1216
+ }
1217
+ /* line 402, sass/partials/_jquery_ui.scss */
1218
+ .admin-color-light .cmb2-element.ui-datepicker thead, .admin-color-light .cmb2-element .ui-datepicker thead {
1219
+ background: #888;
1220
+ }
1221
+ /* line 406, sass/partials/_jquery_ui.scss */
1222
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,
1223
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-default,
1224
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1225
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before, .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,
1226
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,
1227
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
1228
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1229
+ color: #555;
1230
+ }
1231
+ /* line 414, sass/partials/_jquery_ui.scss */
1232
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-light .cmb2-element.ui-datepicker td .ui-state-active, .admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover, .admin-color-light .cmb2-element .ui-datepicker td .ui-state-active {
1233
+ background: #ccc;
1234
+ }
1235
+ /* line 418, sass/partials/_jquery_ui.scss */
1236
+ .admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today, .admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today {
1237
+ background: #eee;
1238
+ }
1239
+
1240
+ /* line 426, sass/partials/_jquery_ui.scss */
1241
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header,
1242
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,
1243
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header {
1244
+ background: #56b274;
1245
+ }
1246
+ /* line 431, sass/partials/_jquery_ui.scss */
1247
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead, .admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead {
1248
+ background: #36533f;
1249
+ }
1250
+ /* line 435, sass/partials/_jquery_ui.scss */
1251
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover {
1252
+ background: #446950;
1253
+ color: #fff;
1254
+ }
1255
+
1256
+ /* line 443, sass/partials/_jquery_ui.scss */
1257
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header,
1258
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header, .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,
1259
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header {
1260
+ background: #4ca26a;
1261
+ }
1262
+ /* line 448, sass/partials/_jquery_ui.scss */
1263
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker thead, .admin-color-bbp-mint .cmb2-element .ui-datepicker thead {
1264
+ background: #4f6d59;
1265
+ }
1266
+ /* line 452, sass/partials/_jquery_ui.scss */
1267
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover, .admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover {
1268
+ background: #5fb37c;
1269
+ color: #fff;
1270
+ }
1271
+
1272
+ /**
1273
+ * CMB2 Frontend
1274
+ */
1275
+ /*--------------------------------------------------------------
1276
+ * CMB2 Frontend
1277
+ --------------------------------------------------------------*/
1278
+ /* line 5, sass/partials/_front.scss */
1279
+ .closed .inside {
1280
+ display: none;
1281
+ }
1282
+
1283
+ /* line 9, sass/partials/_front.scss */
1284
+ .cmb-repeatable-grouping {
1285
+ position: relative;
1286
+ }
1287
+ /* line 12, sass/partials/_front.scss */
1288
+ .cmb-repeatable-grouping .cmb-group-title {
1289
+ margin-left: -1em;
1290
+ margin-right: -1em;
1291
+ min-height: 1.5em;
1292
+ }
1293
+ /* line 18, sass/partials/_front.scss */
1294
+ .cmb-repeatable-grouping h3 {
1295
+ font-size: 14px;
1296
+ padding: 8px 12px;
1297
+ margin: 0;
1298
+ line-height: 1.4;
1299
+ }
1300
+
1301
+ /* line 29, sass/partials/_front.scss */
1302
+ .cmb-repeatable-group.repeatable .cmb-group-title {
1303
+ padding-left: 2.2em;
1304
+ }
1305
+ /* line 33, sass/partials/_front.scss */
1306
+ .cmb-repeatable-group.non-repeatable .cmb-group-title {
1307
+ padding-left: 12px;
1308
+ }
1309
+
1310
+ /* line 39, sass/partials/_front.scss */
1311
+ .cmb-type-group .cmb-row .cmbhandle {
1312
+ right: 0;
1313
+ position: absolute;
1314
+ }
1315
+
1316
+ /* line 44, sass/partials/_front.scss */
1317
+ .cmb-spinner {
1318
+ background: url(/wp-admin/images/spinner.gif) no-repeat;
1319
+ -webkit-background-size: 20px 20px;
1320
+ background-size: 20px 20px;
1321
+ display: none;
1322
+ float: right;
1323
+ vertical-align: middle;
1324
+ opacity: 0.7;
1325
+ filter: alpha(opacity=70);
1326
+ width: 20px;
1327
+ height: 20px;
1328
+ margin: 4px 10px 0;
1329
+ }
1330
+
1331
+ /*# sourceMappingURL=cmb2-front.css.map */
includes/plus-options/metabox/css/cmb2-front.css.map ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ {
2
+ "version": 3,
3
+ "mappings": ";AAAA;;gEAEgE;;AAEhE,UAAW;EACV,MAAM,EAAE,CAAC;;;AAET;mBACS;EACR,SAAS,ECEK,IAAI;EDDlB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,GAAG;;;AAMZ,uCAAc;EACb,KAAK,EAAE,IAAI;;;AAIb,mBAAS;EACR,KAAK,EAAE,KAAK;;;AAEZ,sCAAqB;EACpB,WAAW,EChBE,sCAAsC;EDiBnD,WAAW,EAAE,IAAI;;;AAMlB,kEACkB;EACjB,KAAK,EAAE,KAAK;;;AAIb,gCAAkB;EACjB,KAAK,EAAE,IAAI;;;AAIZ,iCAAmB;EAClB,KAAK,EAAE,KAAK;;;AAIb,iCAAmB;EAClB,KAAK,EAAE,GAAG;;;AAGX,0BAAY;EACX,OAAO,EAAE,OAAO;;;AAIhB;;8CAES;EACR,WAAW,EAAE,IAAI;;;AAKpB,aAAG;EACF,MAAM,EAAE,CAAC;;;AAGV,aAAG;EACF,SAAS,EC5DK,IAAI;ED6DlB,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,WAAW;;;AAQpB,iBAAO;EACN,SAAS,ECvEK,IAAI;EDwElB,UAAU,EAAE,GAAG;;;AAGhB;yBACe;EACd,UAAU,ECpEI,OAAO;;;ADuEtB,8BAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX,iCAAuB;EACtB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX;4BACkB;EACjB,WAAW,EAAE,MAAM;;;AAGpB,qBAAW;EACV,MAAM,EAAE,4BAAgC;;;AAGzC,8BAAoB;EACnB,UAAU,EC1FI,OAAO;;;AD6FtB,oBAAU;EACT,KAAK,EAAE,GAAG;;;AAEV,6BAAS;EACR,KAAK,EAAE,IAAI;;;AAKb;gCACsB;EACrB,cAAc,EAAE,MAAM;;;AAGvB;+BACqB;EACpB,MAAM,EAAE,UAAU;;;AAGnB,mBAAS;EACR,MAAM,EAAE,CAAC;;;AAET,yBAAQ;EACP,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ,wDAAuC;EACtC,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,GAAG;;;;AAMtB,aAAc;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;;;AAIR;;;gEACQ;EACP,MAAM,EAAE,CAAC;;;;AAKZ,YAAa;EACZ,MAAM,EAAE,SAAS;;;;AAGlB;;mCAEoC;EACnC,MAAM,EAAE,CAAC;;;;AAGV;;kCAEmC;EAClC,aAAa,EAAE,CAAC;;;;AAGjB,wBAAyB;EACxB,MAAM,EAAE,iBAAqB;EAC7B,OAAO,EAAE,KAAK;;;AAEd,gCAAU;EACT,MAAM,EAAE,SAAS;;;;AAOnB,OAAQ;EACP,KAAK,ECnLU,OAAO;EDoLtB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,gBAAgB;EACzB,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,KAAK;;AAEZ,yBAAkC;;EATnC,OAAQ;IE3LP,SAAS,EAAE,KAAK;IAehB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;;;EAEX,aAAM;IACL,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,KAAK;;;;;AFiLtB,OAAQ;EACP,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,SAAS;EAClB,cAAc,EAAE,MAAM;;;;AAKtB,uBAAQ;EACP,OAAO,EAAE,CAAC;;;;AAIZ,aAAc;EACb,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,KAAK;;;;AAGf,iBAAkB;EACjB,KAAK,EAAE,IAAI;;;;AAGZ,eAAgB;EACf,cAAc,EAAE,GAAG;;;;AAGpB,eAAgB;EACf,UAAU,EAAE,KAAK;;;;AAGlB,iBAAkB;EACjB,OAAO,EAAE,IAAI;;;;AAId,iBAAkB;EACjB,gBAAgB,EC7ND,OAAO;ED8NtB,MAAM,EAAE,iBAAiC;;;AAEzC,yCAAwB;EACvB,QAAQ,EAAE,QAAQ;EAClB,iBAAiB,EAAE,EAAE;EAErB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,mBAAmB;EAC5B,aAAa,EAAE,eAAe;;;AAE9B,2DAAoB;EACnB,UAAU,EAAE,iBAAqB;;;AAGlC,4DAAqB;EACpB,OAAO,EAAE,6BAAiC;;;AAG3C,gDAAS;EACR,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,KAAK;EAEd,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,IAAI;EACZ,KAAK,ECnQQ,OAAO;EDoQpB,UAAU,EAAE,MAAM;EAClB,YAAY,EAAE,iBAAqB;;;AAGpC,iDAAQ;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AAKZ,gCAAe;EACd,MAAM,EAAE,CAAC;;;AAET,uCAAS;EACR,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;EACjB,gBAAgB,EAAE,SAAuB;;;AAI3C,iCAAgB;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,GAAG;EACV,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,YAAY;EAErB,OAAO,EAAE,IAAI;;;AAEb,0DAAyB;EACxB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EAEpB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAElB,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,QAAQ;;;AAEjB,iEAAS;EE/RX,OAAO,EFgSsB,GAAO;EE/RpC,WAAW,EAAE,WAAW;EACxB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,YAAY,EAAE,MAAM;EACpB,cAAc,EAAE,IAAI;EACpB,WAAW,EAAE,CAAC;EACd,sBAAsB,EAAE,WAAW;EACnC,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;;;AFsRlB,uDAAsC;EACrC,OAAO,EAAE,KAAK;;;;AAOf,6BAAQ;EACP,OAAO,EAAE,GAAG;;;AAGb,sCAAiB;EAChB,gBAAgB,ECpUF,OAAO;EDqUrB,OAAO,EAAE,kBAAkB;EAC3B,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;;AAEhB,yCAAG;EACF,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,KAAK;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,YAAY;;;AAGtB,8CAAQ;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAIb,oDAA+B;EEpW/B,SAAS,EAAE,KAAK;EAehB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AAEX,0DAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AFgVrB,qCAAgB;EACf,SAAS,EAAE,GAAG;EACd,YAAY,EAAE,GAAG;EACjB,eAAe,EAAE,IAAI;;;AAErB,gDAAW;EACV,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,KAAK;EACb,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,GAAG;;;AAEV,0EAA4B;EAC3B,WAAW,EAAE,KAAK;;;AAMrB,yCAAoB;EACnB,KAAK,EAAE,KAAK;;;;AAKd,0BAA2B;EAC1B,KAAK,ECvXU,OAAO;EDwXtB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,IAAI;;;;AAGlB,6BAA8B;EAC7B,KAAK,EC9XU,OAAO;ED+XtB,UAAU,EAAE,MAAM;;;;AAGnB,mBAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE,IAAI;;;;AAGhB,cAAe;EACd,OAAO,EAAE,SAAS;;;;AAGnB,cAAe;EACd,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,IAAI;;;;AAGpB,2BAA4B;EAC3B,MAAM,EAAE,CAAC;;;;AAKT,8BAAY;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,IAAI;;;AAEX,kCAAI;EACH,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,IAAI;;;AAId;gCACc;EACb,UAAU,ECpaI,IAAI;EDqalB,MAAM,EAAE,iBAAgB;EACxB,OAAO,EAAE,iBAAqB;EAC9B,UAAU,EAAE,sEAA0E;EACtF,gBAAgB,EAAE,wLAAsN;EACxO,mBAAmB,EAAE,cAAc;EACnC,eAAe,EAAE,SAAS;EAC1B,aAAa,EAAE,GAAG;EAClB,kBAAkB,EAAE,GAAG;EACtB,MAAM,EAAE,UAAU;;;AAGpB,gCAAc;EACb,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;;;AAGjB,gEAA2B;EAC1B,QAAQ,EAAE,QAAQ;;;AAElB,kHAAyB;EACxB,UAAU,EAAE,6BAA6B;EACzC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,IAAI;EACV,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,OAAO;EACpB,GAAG,EAAE,IAAI;EACT,KAAK,EAAE,IAAI;;;AAOZ,uDAAyB;EACxB,GAAG,EAAE,IAAI;;;AAIX,0EAAqC;EACpC,MAAM,EAAE,OAAO;;;AAIf,0GAAqC;EACpC,MAAM,EAAE,IAAI;;;;AAMf,kDAAmD;EAClD,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,CAAC;;;;AAGd,mBAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,IAAI;;;AACnB,uBAAI;EACH,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;;;;AAIpB,oBAAqB;EACpB,MAAM,EAAE,CAAC;;;;AAGV,mBAAoB;EACnB,UAAU,EAAE,IAAI;;;;AAGjB,wBAAyB;EACxB,YAAY,EAAE,KAAK;;;AAGpB,yBAAkC;;EACjC;;mBAEkB;IACjB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;;;AG/gBb;;gEAEgE;;AAEhE,2BAA4B;EAC3B,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,KAAK;;;;AAGlB,uCAAwC;EACvC,YAAY,EAAE,KAAK;;;;AAKnB,oDAAW;EACV,MAAM,EAAE,CAAC;;;AAET,8GAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB,8GAAc;EACb,KAAK,EAAE,IAAI;;;AAKd,gDAAS;EACR,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,SAAS;;;AAEjB,sEAAW;EACV,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;EAClB,KAAK,EFxBQ,OAAO;;;AE4BtB,gFAAyB;EACxB,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,cAAc;;;AAG1B,gGAAiC;EAChC,cAAc,EAAE,CAAC;;;AAGlB,8CAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,QAAQ;;;AAIlB,8CAAQ;EACP,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,GAAG;;;AAGjB,kEAAkB;EACjB,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,KAAK;;;AAGb;;wDACyC;EACxC,aAAa,EAAE,iBAAqB;;AAEpC,yBAAkC;;EAJnC;;0DACyC;IAIvC,aAAa,EAAE,CAAC;;;;AAIlB;;qCACsB;EACrB,WAAW,EAAE,KAAK;;;AChFpB;;gEAEgE;AAEhE,uCAAuC;;AAIrC,sDAAS;EACR,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uBAAuB;EAC7B,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,6DAAS;EACR,OAAO,EAAE,OAAO;;;;AAOpB,yBAA0B;EAEzB,aAAa,EAAE,IAAI;;;AAEnB,sDAA+B;EAC9B,UAAU,EAAE,IAAI;;;AAGjB,iDAA0B;EACzB,UAAU,EAAE,IAAI;;;AAGjB,kDAA2B;EAC1B,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,CAAC;;;AAGjB,8CAAuB;EAEtB,UAAU,EAAE,IAAI;;;AAEhB,qDAAO;EACN,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;;;AAIlB,gCAAO;EACN,MAAM,EAAE,IAAI;;;;AAId,kBAAmB;EAElB,UAAU,EAAE,IAAI;;;AAEhB,6CAA6B;EAC5B,YAAY,EAAE,KAAK;EACnB,KAAK,EAAE,IAAI;;;AAKX,2DAAc;EACb,OAAO,EAAE,IAAI;;;AAIf,0BAAQ;EACP,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAE,GAAG;;;AAGX,0BAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,CAAC;;;AAGX,2BAAS;EACR,aAAa,EAAE,IAAI;;;AAEnB,wCAAe;EACd,aAAa,EAAE,CAAC;;;AAMnB,8CAA8C;AAC9C,yCAA0C;;EAEzC,6CAA8C;IAC7C,YAAY,EAAE,CAAC;;;ACvGjB;;gEAEgE;;AAEhE,mCAAoC;EACnC,MAAM,EAAE,CAAC;;;;AAMT;;kCAAoB;EACnB,SAAS,EAAE,KAAK;;;;AAKjB,0DAAa;EACZ,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;;;;AAIf,YAAa;EACZ,OAAO,EAAE,IAAI;;;AACb,sBAAY;EACX,OAAO,EAAE,KAAK;;;AC1BhB;;gEAEgE;;AAG/D,wBAAW;EACV,KAAK,ELSS,OAAO;EKRrB,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;;;AAClB,+BAAS;EACR,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,yBAAyB;EAC/B,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,QAAQ;EACjB,GAAG,EAAE,CAAC;EACN,QAAQ,EAAE,QAAQ;EAClB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,+CAAS;EACR,OAAO,EAAE,OAAO;;;AAKnB,2EAA8D;EAC7D,kBAAkB,EAAE,eAAe;EACnC,UAAU,EAAE,eAAe;EAC3B,MAAM,EAAE,eAAe;EACvB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,IAAI;EACT,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,EAAE;;;AACX,2FAAkB;EACjB,MAAM,EAAE,OAAO;EACf,KAAK,ELxBQ,IAAI;EKyBjB,OAAO,EAAE,CAAC;;;AACV,iGAAQ;EACP,KAAK,EL5BO,IAAI;;;AMvBpB;;;;;;;;;;;;GAYG;;AAEH,uCAAwC;EACvC,MAAM,EAAC,EAAE;;;;AAQV,yDAA0D;EACzD,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;EAChB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,IAAI;EAChB,kBAAkB,EAAE,8BAA8B;EAClD,UAAU,EAAE,8BAA8B;EAC1C,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;EA6KX,0BAA0B;;;AA3K1B,6DAAE;EACD,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,uBAAuB;EACpC,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;;;AAGjB,qEAAM;EACL,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,IAAI;EACZ,eAAe,EAAE,QAAQ;;;AAG1B;;kDACsB;EACrB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;;;AAGpB,qIAAsC;EACrC,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,MAAM,EAAE,OAAO;;;AAGhB,mGAAqB;EACpB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,MAAM;EACf,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;;;AAElB,iHAAO;EACN,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;;;AAIrB;;gDACoB;EACnB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;;;AAGZ;;+DACmC;EAClC,MAAM,EAAE,IAAI;;;AAGb;;sDAC0B;EACzB,IAAI,EAAE,CAAC;;;AAGR;;sDAC0B;EACzB,KAAK,EAAE,CAAC;;;AAGT;;qDACyB;EACxB,OAAO,EAAE,IAAI;;;AAGd,iGAAoB;EACnB,KAAK,EAAE,IAAI;;;AAGZ,iGAAoB;EACnB,KAAK,EAAE,KAAK;;;AAGb;;uDAC2B;EAC1B,IAAI,EAAE,4BAA4B;EAClC,YAAY,EAAE,GAAG;EACjB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;;;AAGb,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB;;6DACiC;EAChC,OAAO,EAAE,GAAG;;;AAGb;;sDAC0B;EACzB,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AACX;;6DAAO;EACN,KAAK,EAAE,IAAI;;;AAIb,qEAAM;EACL,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;;;AAChB,2EAAG;EACF,WAAW,EAAE,MAAM;;;AAIrB,+DAAG;EACF,OAAO,EAAE,IAAI;;;AAGd,+DAAG;EACF,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,iBAAkB;;;AAG3B,mHAA6B;EAC5B,MAAM,EAAE,WAAW;;;AAGpB,6GAA0B;EACzB,gBAAgB,EA7JR,OAAO;EA8Jf,MAAM,EAAE,iBAAkB;;;AAC1B,qJAAsB;EACrB,kBAAkB,EAAE,wCAAwC;EAC5D,eAAe,EAAE,wCAAwC;EACzD,UAAU,EAAE,wCAAwC;;;AAItD,uGAAuB;EACtB,gBAAgB,EAAE,OAAO;;;AAG1B,mHAA6B;EAC5B,UAAU,EAAE,OAAO;;;AAGpB,mGAAqB;EACpB,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;EAClB,eAAe,EAAE,IAAI;EACrB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,IAAI;;;AAGZ,uIAAuC;EACtC,OAAO,EAAE,GAAG;;;AAIb;;kDACsB;EACrB,UAAU,EAhMA,OAAO;;;AAmMlB,qEAAM;EACL,UAAU,EAnMA,OAAO;;;AAsMlB,kMAAwC;EACvC,UAAU,EAtMI,OAAO;EAuMrB,KAAK,EAAE,IAAI;;;AAGZ,+FAAmB;EAClB,SAAS,EAAE,IAAI;;;AACf,qGAAG;EACF,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,MAAM;;;AACf,2GAAG;EACF,KAAK,EAAE,IAAI;EACX,KAAK,EAAC,IAAI;EACV,OAAO,EAAE,SAAS;;;AAEnB,2GAAG;EACF,MAAM,EAAE,eAAe;;;AACvB,yHAAO;EACN,KAAK,EAAE,IAAI;;;AAKd,uJAA4B;EAC3B,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;;;AAEhB,oXAAmC;EAClC,OAAO,EAAE,UAAU;EACnB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,gBAAgB;;;;AAS1B;;qEACsB;EACrB,UAAU,EAlPD,OAAO;;;AAqPjB,2GAAM;EACL,UAAU,EArPD,OAAO;;;AAwPjB,qIAAmB;EAClB,UAAU,EAxPG,OAAO;EAyPpB,KAAK,EAAE,IAAI;;;;AAMZ;;oEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yGAAM;EACL,UAAU,EAAE,OAAO;;;AAQnB,0QAAkC;EACjC,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;AAGZ,2IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAQlB;;sEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,6GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,uIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;yEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,mHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,6IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;;;uFAEsC;EACrC,UAAU,EAAE,OAAO;;;AAGpB,yGAAG;EACF,YAAY,EAAE,OAAO;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB;;yEAC0B;EACzB,KAAK,EAAE,IAAI;;;AAGZ,2GAAM;EACL,UAAU,EAAE,IAAI;;;AAGjB;;;;;;0EAG2B;EAC1B,KAAK,EAAE,IAAI;;;AAIX,8QAAkC;EACjC,UAAU,EAAE,IAAI;;;AAGjB,6IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAOlB;;6EACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2HAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qJAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;AC3bd;;GAEG;ACZH;;gEAEgE;;AAEhE,eAAgB;EACf,OAAO,EAAE,IAAI;;;;AAGd,wBAAyB;EACxB,QAAQ,EAAE,QAAQ;;;AAElB,yCAAiB;EAChB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,KAAK;;;AAGlB,2BAAG;EACF,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;;;;AAOjB,iDAA8B;EAC7B,YAAY,EAAE,KAAK;;;AAGpB,qDAAkC;EACjC,YAAY,EAAE,IAAI;;;;AAKpB,mCAAoC;EACnC,KAAK,EAAE,CAAC;EACR,QAAQ,EAAE,QAAQ;;;;AAGnB,YAAa;EACZ,UAAU,EAAE,2CAA2C;EACvD,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,SAAS;EAC1B,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,KAAK;EACZ,cAAc,EAAE,MAAM;EACtB,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,iBAAiB;EACzB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,UAAU",
4
+ "sources": ["sass/partials/_main_wrap.scss","sass/partials/_variables.scss","sass/partials/_mixins.scss","sass/partials/_post_metaboxes.scss","sass/partials/_context_metaboxes.scss","sass/partials/_misc.scss","sass/partials/_collapsible_ui.scss","sass/partials/_jquery_ui.scss","sass/cmb2-front.scss","sass/partials/_front.scss"],
5
+ "names": [],
6
+ "file": "cmb2-front.css"
7
+ }
includes/plus-options/metabox/css/cmb2-front.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! CMB2 - v2.6.0 - 2019-01-18 | https://cmb2.io | Copyright (c) 2019 CMB2 team | Licensed GPLv2 */
2
+ @charset "UTF-8";.cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-left:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 5px 0 0;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 10px 0 0}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:left;font-weight:600;line-height:1.3;padding:20px 10px 20px 0;vertical-align:top;width:200px}@media (max-width:450px){.cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:left}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:right}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 10px 10px 50px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper{outline:dashed 2px #e9e9e9!important}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;left:0;position:absolute;width:35px;height:100%;line-height:35px;cursor:move;color:#757575;text-align:center;border-right:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-left:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;right:7px;position:absolute;width:auto;margin-left:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 12px 8px 2.2em;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-right:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:right}p.cmb2-metabox-description{color:#757575;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#757575;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-right:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-right:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#eee;border:5px solid #fff;outline:1px solid #e9e9e9;box-shadow:inset 0 0 15px rgba(0,0,0,.3),inset 0 0 0 1px rgba(0,0,0,.05);background-image:linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0),linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0);background-position:0 0,10px 10px;background-size:20px 20px;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0}.cmb2-media-status .embed-status{float:left;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;left:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb2-media-status.cmb-attach-list .file-status>span,.cmb2-media-status.cmb-attach-list .img-status img{cursor:move}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-right:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{float:left;margin-right:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:left}.cmb2-indented-hierarchy{padding-left:1.5em}@media (max-width:450px){.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}}#poststuff .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-left:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{right:-1em;position:relative;color:#222}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 2% 0 0}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:right}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}@media (max-width:450px){.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 2% 0 0;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:0}}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:left;display:none}.cmb-spinner.is-active{display:block}.cmb2-metabox .cmbhandle{color:#757575;float:right;width:27px;height:30px;cursor:pointer;right:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;left:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-left:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:left;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:left}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .6em .4em .4em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}.closed .inside{display:none}.cmb-repeatable-grouping{position:relative}.cmb-repeatable-grouping .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}.cmb-repeatable-grouping h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb-repeatable-group.repeatable .cmb-group-title{padding-left:2.2em}.cmb-repeatable-group.non-repeatable .cmb-group-title{padding-left:12px}.cmb-type-group .cmb-row .cmbhandle{right:0;position:absolute}.cmb-spinner{background:url(/wp-admin/images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}
includes/plus-options/metabox/css/cmb2-rtl.css ADDED
@@ -0,0 +1,2098 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * CMB2 - v2.6.0 - 2019-01-18
3
+ * https://cmb2.io
4
+ * Copyright (c) 2019
5
+ * Licensed GPLv2+
6
+ */
7
+
8
+ /*--------------------------------------------------------------
9
+ * Main Wrap
10
+ --------------------------------------------------------------*/
11
+
12
+ /* line 5, sass/partials/_main_wrap.scss */
13
+
14
+ .cmb2-wrap {
15
+ margin: 0;
16
+ }
17
+
18
+ /* line 8, sass/partials/_main_wrap.scss */
19
+
20
+ .cmb2-wrap input,
21
+ .cmb2-wrap textarea {
22
+ font-size: 14px;
23
+ max-width: 100%;
24
+ padding: 5px;
25
+ }
26
+
27
+ /* line 18, sass/partials/_main_wrap.scss */
28
+
29
+ .cmb2-wrap input[type=text].cmb2-oembed {
30
+ width: 100%;
31
+ }
32
+
33
+ /* line 23, sass/partials/_main_wrap.scss */
34
+
35
+ .cmb2-wrap textarea {
36
+ width: 500px;
37
+ }
38
+
39
+ /* line 26, sass/partials/_main_wrap.scss */
40
+
41
+ .cmb2-wrap textarea.cmb2-textarea-code {
42
+ font-family: "Courier 10 Pitch", Courier, monospace;
43
+ line-height: 16px;
44
+ }
45
+
46
+ /* line 34, sass/partials/_main_wrap.scss */
47
+
48
+ .cmb2-wrap input.cmb2-text-small,
49
+ .cmb2-wrap input.cmb2-timepicker {
50
+ width: 100px;
51
+ }
52
+
53
+ /* line 40, sass/partials/_main_wrap.scss */
54
+
55
+ .cmb2-wrap input.cmb2-text-money {
56
+ width: 90px;
57
+ }
58
+
59
+ /* line 45, sass/partials/_main_wrap.scss */
60
+
61
+ .cmb2-wrap input.cmb2-text-medium {
62
+ width: 230px;
63
+ }
64
+
65
+ /* line 50, sass/partials/_main_wrap.scss */
66
+
67
+ .cmb2-wrap input.cmb2-upload-file {
68
+ width: 65%;
69
+ }
70
+
71
+ /* line 54, sass/partials/_main_wrap.scss */
72
+
73
+ .cmb2-wrap input.ed_button {
74
+ padding: 2px 4px;
75
+ }
76
+
77
+ /* line 59, sass/partials/_main_wrap.scss */
78
+
79
+ .cmb2-wrap input:not([type="hidden"]) + input,
80
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
81
+ .cmb2-wrap input:not([type="hidden"]) + select {
82
+ margin-right: 20px;
83
+ }
84
+
85
+ /* line 67, sass/partials/_main_wrap.scss */
86
+
87
+ .cmb2-wrap ul {
88
+ margin: 0;
89
+ }
90
+
91
+ /* line 71, sass/partials/_main_wrap.scss */
92
+
93
+ .cmb2-wrap li {
94
+ font-size: 14px;
95
+ line-height: 16px;
96
+ margin: 1px 0 5px 0;
97
+ }
98
+
99
+ /* line 82, sass/partials/_main_wrap.scss */
100
+
101
+ .cmb2-wrap select {
102
+ font-size: 14px;
103
+ margin-top: 3px;
104
+ }
105
+
106
+ /* line 87, sass/partials/_main_wrap.scss */
107
+
108
+ .cmb2-wrap input:focus,
109
+ .cmb2-wrap textarea:focus {
110
+ background: #fffff8;
111
+ }
112
+
113
+ /* line 92, sass/partials/_main_wrap.scss */
114
+
115
+ .cmb2-wrap input[type="radio"] {
116
+ margin: 0 0 0 5px;
117
+ padding: 0;
118
+ }
119
+
120
+ /* line 97, sass/partials/_main_wrap.scss */
121
+
122
+ .cmb2-wrap input[type="checkbox"] {
123
+ margin: 0 0 0 5px;
124
+ padding: 0;
125
+ }
126
+
127
+ /* line 102, sass/partials/_main_wrap.scss */
128
+
129
+ .cmb2-wrap button,
130
+ .cmb2-wrap .button-secondary {
131
+ white-space: nowrap;
132
+ }
133
+
134
+ /* line 107, sass/partials/_main_wrap.scss */
135
+
136
+ .cmb2-wrap .mceLayout {
137
+ border: 1px solid #e9e9e9 !important;
138
+ }
139
+
140
+ /* line 111, sass/partials/_main_wrap.scss */
141
+
142
+ .cmb2-wrap .mceIframeContainer {
143
+ background: #ffffff;
144
+ }
145
+
146
+ /* line 115, sass/partials/_main_wrap.scss */
147
+
148
+ .cmb2-wrap .meta_mce {
149
+ width: 97%;
150
+ }
151
+
152
+ /* line 118, sass/partials/_main_wrap.scss */
153
+
154
+ .cmb2-wrap .meta_mce textarea {
155
+ width: 100%;
156
+ }
157
+
158
+ /* line 124, sass/partials/_main_wrap.scss */
159
+
160
+ .cmb2-wrap .wp-color-result,
161
+ .cmb2-wrap .wp-picker-input-wrap {
162
+ vertical-align: middle;
163
+ }
164
+
165
+ /* line 129, sass/partials/_main_wrap.scss */
166
+
167
+ .cmb2-wrap .wp-color-result,
168
+ .cmb2-wrap .wp-picker-container {
169
+ margin: 0 0 0 10px;
170
+ }
171
+
172
+ /* line 134, sass/partials/_main_wrap.scss */
173
+
174
+ .cmb2-wrap .cmb-row {
175
+ margin: 0;
176
+ }
177
+
178
+ /* line 137, sass/partials/_main_wrap.scss */
179
+
180
+ .cmb2-wrap .cmb-row:after {
181
+ content: '';
182
+ clear: both;
183
+ display: block;
184
+ width: 100%;
185
+ }
186
+
187
+ /* line 144, sass/partials/_main_wrap.scss */
188
+
189
+ .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
190
+ padding-top: 0;
191
+ padding-bottom: 1em;
192
+ }
193
+
194
+ /* line 152, sass/partials/_main_wrap.scss */
195
+
196
+ .cmb2-metabox {
197
+ clear: both;
198
+ margin: 0;
199
+ }
200
+
201
+ /* line 158, sass/partials/_main_wrap.scss */
202
+
203
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
204
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
205
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
206
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
207
+ border: 0;
208
+ }
209
+
210
+ /* line 165, sass/partials/_main_wrap.scss */
211
+
212
+ .cmb-add-row {
213
+ margin: 1.8em 0 0;
214
+ }
215
+
216
+ /* line 169, sass/partials/_main_wrap.scss */
217
+
218
+ .cmb-nested .cmb-td,
219
+ .cmb-repeatable-group .cmb-th,
220
+ .cmb-repeatable-group:first-of-type {
221
+ border: 0;
222
+ }
223
+
224
+ /* line 175, sass/partials/_main_wrap.scss */
225
+
226
+ .cmb-row:last-of-type,
227
+ .cmb2-wrap .cmb-row:last-of-type,
228
+ .cmb-repeatable-group:last-of-type {
229
+ border-bottom: 0;
230
+ }
231
+
232
+ /* line 181, sass/partials/_main_wrap.scss */
233
+
234
+ .cmb-repeatable-grouping {
235
+ border: 1px solid #e9e9e9;
236
+ padding: 0 1em;
237
+ }
238
+
239
+ /* line 185, sass/partials/_main_wrap.scss */
240
+
241
+ .cmb-repeatable-grouping.cmb-row {
242
+ margin: 0 0 0.8em;
243
+ }
244
+
245
+ /* line 193, sass/partials/_main_wrap.scss */
246
+
247
+ .cmb-th {
248
+ color: #222222;
249
+ float: right;
250
+ font-weight: 600;
251
+ line-height: 1.3;
252
+ padding: 20px 0 20px 10px;
253
+ vertical-align: top;
254
+ width: 200px;
255
+ }
256
+
257
+ /* line 207, sass/partials/_main_wrap.scss */
258
+
259
+ .cmb-td {
260
+ line-height: 1.3;
261
+ max-width: 100%;
262
+ padding: 15px 10px;
263
+ vertical-align: middle;
264
+ }
265
+
266
+ /* line 216, sass/partials/_main_wrap.scss */
267
+
268
+ .cmb-type-title .cmb-td {
269
+ padding: 0;
270
+ }
271
+
272
+ /* line 221, sass/partials/_main_wrap.scss */
273
+
274
+ .cmb-th label {
275
+ display: block;
276
+ padding: 5px 0;
277
+ }
278
+
279
+ /* line 226, sass/partials/_main_wrap.scss */
280
+
281
+ .cmb-th + .cmb-td {
282
+ float: right;
283
+ }
284
+
285
+ /* line 230, sass/partials/_main_wrap.scss */
286
+
287
+ .cmb-td .cmb-td {
288
+ padding-bottom: 1em;
289
+ }
290
+
291
+ /* line 234, sass/partials/_main_wrap.scss */
292
+
293
+ .cmb-remove-row {
294
+ text-align: left;
295
+ }
296
+
297
+ /* line 238, sass/partials/_main_wrap.scss */
298
+
299
+ .empty-row.hidden {
300
+ display: none;
301
+ }
302
+
303
+ /* line 243, sass/partials/_main_wrap.scss */
304
+
305
+ .cmb-repeat-table {
306
+ background-color: #fafafa;
307
+ border: 1px solid #e1e1e1;
308
+ }
309
+
310
+ /* line 247, sass/partials/_main_wrap.scss */
311
+
312
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
313
+ position: relative;
314
+ counter-increment: el;
315
+ margin: 0;
316
+ padding: 10px 50px 10px 10px;
317
+ border-bottom: none !important;
318
+ }
319
+
320
+ /* line 255, sass/partials/_main_wrap.scss */
321
+
322
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
323
+ border-top: solid 1px #e9e9e9;
324
+ }
325
+
326
+ /* line 259, sass/partials/_main_wrap.scss */
327
+
328
+ .cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper {
329
+ outline: dashed 2px #e9e9e9 !important;
330
+ }
331
+
332
+ /* line 263, sass/partials/_main_wrap.scss */
333
+
334
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
335
+ content: counter(el);
336
+ display: block;
337
+ top: 0;
338
+ right: 0;
339
+ position: absolute;
340
+ width: 35px;
341
+ height: 100%;
342
+ line-height: 35px;
343
+ cursor: move;
344
+ color: #757575;
345
+ text-align: center;
346
+ border-left: solid 1px #e9e9e9;
347
+ }
348
+
349
+ /* line 280, sass/partials/_main_wrap.scss */
350
+
351
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
352
+ margin: 0;
353
+ padding: 0;
354
+ }
355
+
356
+ /* line 287, sass/partials/_main_wrap.scss */
357
+
358
+ .cmb-repeat-table + .cmb-add-row {
359
+ margin: 0;
360
+ }
361
+
362
+ /* line 290, sass/partials/_main_wrap.scss */
363
+
364
+ .cmb-repeat-table + .cmb-add-row:before {
365
+ content: '';
366
+ width: 1px;
367
+ height: 1.6em;
368
+ display: block;
369
+ margin-right: 17px;
370
+ background-color: gainsboro;
371
+ }
372
+
373
+ /* line 300, sass/partials/_main_wrap.scss */
374
+
375
+ .cmb-repeat-table .cmb-remove-row {
376
+ top: 7px;
377
+ left: 7px;
378
+ position: absolute;
379
+ width: auto;
380
+ margin-right: 0;
381
+ padding: 0 !important;
382
+ display: none;
383
+ }
384
+
385
+ /* line 311, sass/partials/_main_wrap.scss */
386
+
387
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
388
+ font-size: 20px;
389
+ text-indent: -1000px;
390
+ overflow: hidden;
391
+ position: relative;
392
+ height: auto;
393
+ line-height: 1;
394
+ padding: 0 10px 0;
395
+ }
396
+
397
+ /* line 322, sass/partials/_main_wrap.scss */
398
+
399
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
400
+ content: "";
401
+ font-family: 'Dashicons';
402
+ speak: none;
403
+ font-weight: normal;
404
+ font-variant: normal;
405
+ text-transform: none;
406
+ line-height: 1;
407
+ -webkit-font-smoothing: antialiased;
408
+ margin: 0;
409
+ text-indent: 0;
410
+ position: absolute;
411
+ top: 0;
412
+ right: 0;
413
+ width: 100%;
414
+ height: 100%;
415
+ text-align: center;
416
+ }
417
+
418
+ /* line 328, sass/partials/_main_wrap.scss */
419
+
420
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
421
+ display: block;
422
+ }
423
+
424
+ /* line 336, sass/partials/_main_wrap.scss */
425
+
426
+ .cmb-repeatable-group .cmb-th {
427
+ padding: 5px;
428
+ }
429
+
430
+ /* line 340, sass/partials/_main_wrap.scss */
431
+
432
+ .cmb-repeatable-group .cmb-group-title {
433
+ background-color: #e9e9e9;
434
+ padding: 8px 2.2em 8px 12px;
435
+ margin: 0 -1em;
436
+ min-height: 1.5em;
437
+ font-size: 14px;
438
+ line-height: 1.4;
439
+ }
440
+
441
+ /* line 348, sass/partials/_main_wrap.scss */
442
+
443
+ .cmb-repeatable-group .cmb-group-title h4 {
444
+ border: 0;
445
+ margin: 0;
446
+ font-size: 1.2em;
447
+ font-weight: 500;
448
+ padding: 0.5em 0.75em;
449
+ }
450
+
451
+ /* line 356, sass/partials/_main_wrap.scss */
452
+
453
+ .cmb-repeatable-group .cmb-group-title .cmb-th {
454
+ display: block;
455
+ width: 100%;
456
+ }
457
+
458
+ /* line 362, sass/partials/_main_wrap.scss */
459
+
460
+ .cmb-repeatable-group .cmb-group-description .cmb-th {
461
+ font-size: 1.2em;
462
+ display: block;
463
+ float: none;
464
+ padding-bottom: 1em;
465
+ text-align: right;
466
+ width: 100%;
467
+ }
468
+
469
+ /* line 27, sass/partials/_mixins.scss */
470
+
471
+ .cmb-repeatable-group .cmb-group-description .cmb-th label {
472
+ display: block;
473
+ margin-top: 0;
474
+ margin-bottom: 0.5em;
475
+ }
476
+
477
+ /* line 366, sass/partials/_main_wrap.scss */
478
+
479
+ .cmb-repeatable-group .cmb-shift-rows {
480
+ font-size: 1em;
481
+ margin-left: 1em;
482
+ text-decoration: none;
483
+ }
484
+
485
+ /* line 371, sass/partials/_main_wrap.scss */
486
+
487
+ .cmb-repeatable-group .cmb-shift-rows .dashicons {
488
+ font-size: 1.5em;
489
+ height: 1.5em;
490
+ line-height: 1.2em;
491
+ width: 1em;
492
+ }
493
+
494
+ /* line 377, sass/partials/_main_wrap.scss */
495
+
496
+ .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
497
+ line-height: 1.3em;
498
+ }
499
+
500
+ /* line 384, sass/partials/_main_wrap.scss */
501
+
502
+ .cmb-repeatable-group .cmb2-upload-button {
503
+ float: left;
504
+ }
505
+
506
+ /* line 390, sass/partials/_main_wrap.scss */
507
+
508
+ p.cmb2-metabox-description {
509
+ color: #757575;
510
+ font-style: italic;
511
+ margin: 0;
512
+ padding-top: .5em;
513
+ }
514
+
515
+ /* line 397, sass/partials/_main_wrap.scss */
516
+
517
+ span.cmb2-metabox-description {
518
+ color: #757575;
519
+ font-style: italic;
520
+ }
521
+
522
+ /* line 402, sass/partials/_main_wrap.scss */
523
+
524
+ .cmb2-metabox-title {
525
+ margin: 0 0 5px 0;
526
+ padding: 5px 0 0 0;
527
+ font-size: 14px;
528
+ }
529
+
530
+ /* line 408, sass/partials/_main_wrap.scss */
531
+
532
+ .cmb-inline ul {
533
+ padding: 4px 0 0 0;
534
+ }
535
+
536
+ /* line 412, sass/partials/_main_wrap.scss */
537
+
538
+ .cmb-inline li {
539
+ display: inline-block;
540
+ padding-left: 18px;
541
+ }
542
+
543
+ /* line 417, sass/partials/_main_wrap.scss */
544
+
545
+ .cmb-type-textarea-code pre {
546
+ margin: 0;
547
+ }
548
+
549
+ /* line 423, sass/partials/_main_wrap.scss */
550
+
551
+ .cmb2-media-status .img-status {
552
+ clear: none;
553
+ display: inline-block;
554
+ vertical-align: middle;
555
+ margin-left: 10px;
556
+ width: auto;
557
+ }
558
+
559
+ /* line 430, sass/partials/_main_wrap.scss */
560
+
561
+ .cmb2-media-status .img-status img {
562
+ max-width: 350px;
563
+ height: auto;
564
+ }
565
+
566
+ /* line 436, sass/partials/_main_wrap.scss */
567
+
568
+ .cmb2-media-status .img-status img,
569
+ .cmb2-media-status .embed-status {
570
+ background: #eee;
571
+ border: 5px solid #ffffff;
572
+ outline: 1px solid #e9e9e9;
573
+ box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.05);
574
+ background-image: linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0), linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0);
575
+ background-position: 0 0, 10px 10px;
576
+ background-size: 20px 20px;
577
+ border-radius: 2px;
578
+ -moz-border-radius: 2px;
579
+ margin: 15px 0 0 0;
580
+ }
581
+
582
+ /* line 450, sass/partials/_main_wrap.scss */
583
+
584
+ .cmb2-media-status .embed-status {
585
+ float: right;
586
+ max-width: 800px;
587
+ }
588
+
589
+ /* line 455, sass/partials/_main_wrap.scss */
590
+
591
+ .cmb2-media-status .img-status,
592
+ .cmb2-media-status .embed-status {
593
+ position: relative;
594
+ }
595
+
596
+ /* line 458, sass/partials/_main_wrap.scss */
597
+
598
+ .cmb2-media-status .img-status .cmb2-remove-file-button,
599
+ .cmb2-media-status .embed-status .cmb2-remove-file-button {
600
+ background: url(../images/ico-delete.png);
601
+ height: 16px;
602
+ right: -5px;
603
+ position: absolute;
604
+ text-indent: -9999px;
605
+ top: -5px;
606
+ width: 16px;
607
+ }
608
+
609
+ /* line 472, sass/partials/_main_wrap.scss */
610
+
611
+ .cmb2-media-status .img-status .cmb2-remove-file-button {
612
+ top: 10px;
613
+ }
614
+
615
+ /* line 477, sass/partials/_main_wrap.scss */
616
+
617
+ .cmb2-media-status .img-status img,
618
+ .cmb2-media-status .file-status > span {
619
+ cursor: pointer;
620
+ }
621
+
622
+ /* line 482, sass/partials/_main_wrap.scss */
623
+
624
+ .cmb2-media-status.cmb-attach-list .img-status img,
625
+ .cmb2-media-status.cmb-attach-list .file-status > span {
626
+ cursor: move;
627
+ }
628
+
629
+ /* line 489, sass/partials/_main_wrap.scss */
630
+
631
+ .cmb-type-file-list .cmb2-media-status .img-status {
632
+ clear: none;
633
+ vertical-align: middle;
634
+ width: auto;
635
+ margin-left: 10px;
636
+ margin-bottom: 10px;
637
+ margin-top: 0;
638
+ }
639
+
640
+ /* line 498, sass/partials/_main_wrap.scss */
641
+
642
+ .cmb-attach-list li {
643
+ clear: both;
644
+ display: inline-block;
645
+ width: 100%;
646
+ margin-top: 5px;
647
+ margin-bottom: 10px;
648
+ }
649
+
650
+ /* line 504, sass/partials/_main_wrap.scss */
651
+
652
+ .cmb-attach-list li img {
653
+ float: right;
654
+ margin-left: 10px;
655
+ }
656
+
657
+ /* line 510, sass/partials/_main_wrap.scss */
658
+
659
+ .cmb2-remove-wrapper {
660
+ margin: 0;
661
+ }
662
+
663
+ /* line 514, sass/partials/_main_wrap.scss */
664
+
665
+ .child-cmb2 .cmb-th {
666
+ text-align: right;
667
+ }
668
+
669
+ /* line 518, sass/partials/_main_wrap.scss */
670
+
671
+ .cmb2-indented-hierarchy {
672
+ padding-right: 1.5em;
673
+ }
674
+
675
+ /*--------------------------------------------------------------
676
+ * Post Metaboxes
677
+ --------------------------------------------------------------*/
678
+
679
+ /* line 5, sass/partials/_post_metaboxes.scss */
680
+
681
+ #poststuff .cmb-group-title {
682
+ margin-right: -1em;
683
+ margin-left: -1em;
684
+ min-height: 1.5em;
685
+ }
686
+
687
+ /* line 11, sass/partials/_post_metaboxes.scss */
688
+
689
+ #poststuff .repeatable .cmb-group-title {
690
+ padding-right: 2.2em;
691
+ }
692
+
693
+ /* line 17, sass/partials/_post_metaboxes.scss */
694
+
695
+ .cmb2-postbox .cmb2-wrap,
696
+ .cmb-type-group .cmb2-wrap {
697
+ margin: 0;
698
+ }
699
+
700
+ /* line 20, sass/partials/_post_metaboxes.scss */
701
+
702
+ .cmb2-postbox .cmb2-wrap > .cmb-field-list > .cmb-row,
703
+ .cmb-type-group .cmb2-wrap > .cmb-field-list > .cmb-row {
704
+ padding: 1.8em 0;
705
+ }
706
+
707
+ /* line 26, sass/partials/_post_metaboxes.scss */
708
+
709
+ .cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed,
710
+ .cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed {
711
+ width: 100%;
712
+ }
713
+
714
+ /* line 32, sass/partials/_post_metaboxes.scss */
715
+
716
+ .cmb2-postbox .cmb-row,
717
+ .cmb-type-group .cmb-row {
718
+ padding: 0 0 1.8em;
719
+ margin: 0 0 0.8em;
720
+ }
721
+
722
+ /* line 36, sass/partials/_post_metaboxes.scss */
723
+
724
+ .cmb2-postbox .cmb-row .cmbhandle,
725
+ .cmb-type-group .cmb-row .cmbhandle {
726
+ left: -1em;
727
+ position: relative;
728
+ color: #222222;
729
+ }
730
+
731
+ /* line 43, sass/partials/_post_metaboxes.scss */
732
+
733
+ .cmb2-postbox .cmb-repeatable-grouping,
734
+ .cmb-type-group .cmb-repeatable-grouping {
735
+ padding: 0 1em;
736
+ max-width: 100%;
737
+ min-width: 1px !important;
738
+ }
739
+
740
+ /* line 49, sass/partials/_post_metaboxes.scss */
741
+
742
+ .cmb2-postbox .cmb-repeatable-group > .cmb-row,
743
+ .cmb-type-group .cmb-repeatable-group > .cmb-row {
744
+ padding-bottom: 0;
745
+ }
746
+
747
+ /* line 53, sass/partials/_post_metaboxes.scss */
748
+
749
+ .cmb2-postbox .cmb-th,
750
+ .cmb-type-group .cmb-th {
751
+ width: 18%;
752
+ padding: 0 0 0 2%;
753
+ }
754
+
755
+ /* line 59, sass/partials/_post_metaboxes.scss */
756
+
757
+ .cmb2-postbox .cmb-td,
758
+ .cmb-type-group .cmb-td {
759
+ margin-bottom: 0;
760
+ padding: 0;
761
+ line-height: 1.3;
762
+ }
763
+
764
+ /* line 65, sass/partials/_post_metaboxes.scss */
765
+
766
+ .cmb2-postbox .cmb-th + .cmb-td,
767
+ .cmb-type-group .cmb-th + .cmb-td {
768
+ width: 80%;
769
+ float: left;
770
+ }
771
+
772
+ /* line 70, sass/partials/_post_metaboxes.scss */
773
+
774
+ .cmb2-postbox .cmb-row:not(:last-of-type),
775
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
776
+ .cmb-type-group .cmb-row:not(:last-of-type),
777
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
778
+ border-bottom: 1px solid #e9e9e9;
779
+ }
780
+
781
+ /* line 79, sass/partials/_post_metaboxes.scss */
782
+
783
+ .cmb2-postbox .cmb-repeat-group-field,
784
+ .cmb2-postbox .cmb-remove-field-row,
785
+ .cmb-type-group .cmb-repeat-group-field,
786
+ .cmb-type-group .cmb-remove-field-row {
787
+ padding-top: 1.8em;
788
+ }
789
+
790
+ /*--------------------------------------------------------------
791
+ * Context Metaboxes
792
+ --------------------------------------------------------------*/
793
+
794
+ /* Metabox collapse arrow indicators */
795
+
796
+ /* line 9, sass/partials/_context_metaboxes.scss */
797
+
798
+ .js .cmb2-postbox.context-box .toggle-indicator:before {
799
+ content: "\f142";
800
+ display: inline-block;
801
+ font: normal 20px/1 dashicons;
802
+ speak: none;
803
+ -webkit-font-smoothing: antialiased;
804
+ -moz-osx-font-smoothing: grayscale;
805
+ text-decoration: none !important;
806
+ }
807
+
808
+ /* line 22, sass/partials/_context_metaboxes.scss */
809
+
810
+ .js .cmb2-postbox.context-box.closed .toggle-indicator:before {
811
+ content: "\f140";
812
+ }
813
+
814
+ /* line 30, sass/partials/_context_metaboxes.scss */
815
+
816
+ .cmb2-postbox.context-box {
817
+ margin-bottom: 10px;
818
+ }
819
+
820
+ /* line 34, sass/partials/_context_metaboxes.scss */
821
+
822
+ .cmb2-postbox.context-box.context-before_permalink-box {
823
+ margin-top: 10px;
824
+ }
825
+
826
+ /* line 38, sass/partials/_context_metaboxes.scss */
827
+
828
+ .cmb2-postbox.context-box.context-after_title-box {
829
+ margin-top: 10px;
830
+ }
831
+
832
+ /* line 42, sass/partials/_context_metaboxes.scss */
833
+
834
+ .cmb2-postbox.context-box.context-after_editor-box {
835
+ margin-top: 20px;
836
+ margin-bottom: 0;
837
+ }
838
+
839
+ /* line 47, sass/partials/_context_metaboxes.scss */
840
+
841
+ .cmb2-postbox.context-box.context-form_top-box {
842
+ margin-top: 10px;
843
+ }
844
+
845
+ /* line 51, sass/partials/_context_metaboxes.scss */
846
+
847
+ .cmb2-postbox.context-box.context-form_top-box .hndle {
848
+ font-size: 14px;
849
+ padding: 8px 12px;
850
+ margin: 0;
851
+ line-height: 1.4;
852
+ }
853
+
854
+ /* line 59, sass/partials/_context_metaboxes.scss */
855
+
856
+ .cmb2-postbox.context-box .hndle {
857
+ cursor: auto;
858
+ }
859
+
860
+ /* line 64, sass/partials/_context_metaboxes.scss */
861
+
862
+ .cmb2-context-wrap {
863
+ margin-top: 10px;
864
+ }
865
+
866
+ /* line 68, sass/partials/_context_metaboxes.scss */
867
+
868
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
869
+ margin-left: 300px;
870
+ width: auto;
871
+ }
872
+
873
+ /* line 75, sass/partials/_context_metaboxes.scss */
874
+
875
+ .cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox {
876
+ padding: 10px;
877
+ }
878
+
879
+ /* line 80, sass/partials/_context_metaboxes.scss */
880
+
881
+ .cmb2-context-wrap .cmb-th {
882
+ padding: 0 0 0 2%;
883
+ width: 18%;
884
+ }
885
+
886
+ /* line 85, sass/partials/_context_metaboxes.scss */
887
+
888
+ .cmb2-context-wrap .cmb-td {
889
+ width: 80%;
890
+ padding: 0;
891
+ }
892
+
893
+ /* line 90, sass/partials/_context_metaboxes.scss */
894
+
895
+ .cmb2-context-wrap .cmb-row {
896
+ margin-bottom: 10px;
897
+ }
898
+
899
+ /* line 93, sass/partials/_context_metaboxes.scss */
900
+
901
+ .cmb2-context-wrap .cmb-row:last-of-type {
902
+ margin-bottom: 0;
903
+ }
904
+
905
+ /* one column on the post write/edit screen */
906
+
907
+ /*--------------------------------------------------------------
908
+ * Options page
909
+ --------------------------------------------------------------*/
910
+
911
+ /* line 5, sass/partials/_options-page.scss */
912
+
913
+ .cmb2-options-page {
914
+ max-width: 1200px;
915
+ }
916
+
917
+ /* line 8, sass/partials/_options-page.scss */
918
+
919
+ .cmb2-options-page.wrap > h2 {
920
+ margin-bottom: 1em;
921
+ }
922
+
923
+ /* line 12, sass/partials/_options-page.scss */
924
+
925
+ .cmb2-options-page .cmb2-metabox > .cmb-row {
926
+ padding: 1em;
927
+ margin-top: -1px;
928
+ background: #ffffff;
929
+ border: 1px solid #e9e9e9;
930
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
931
+ }
932
+
933
+ /* line 19, sass/partials/_options-page.scss */
934
+
935
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th {
936
+ padding: 0;
937
+ font-weight: initial;
938
+ }
939
+
940
+ /* line 24, sass/partials/_options-page.scss */
941
+
942
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
943
+ float: none;
944
+ padding: 0 1em 0 0;
945
+ margin-right: 200px;
946
+ }
947
+
948
+ /* line 37, sass/partials/_options-page.scss */
949
+
950
+ .cmb2-options-page .cmb2-wrap .cmb-type-title {
951
+ margin-top: 1em;
952
+ padding: 0.6em 1em;
953
+ background-color: #fafafa;
954
+ }
955
+
956
+ /* line 42, sass/partials/_options-page.scss */
957
+
958
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title {
959
+ font-size: 12px;
960
+ margin-top: 0;
961
+ margin-bottom: 0;
962
+ text-transform: uppercase;
963
+ }
964
+
965
+ /* line 49, sass/partials/_options-page.scss */
966
+
967
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description {
968
+ padding-top: 0.25em;
969
+ }
970
+
971
+ /* line 55, sass/partials/_options-page.scss */
972
+
973
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th {
974
+ padding: 0 0 0.8em 0;
975
+ }
976
+
977
+ /* line 59, sass/partials/_options-page.scss */
978
+
979
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-name {
980
+ font-size: 16px;
981
+ margin-top: 0;
982
+ margin-bottom: 0;
983
+ }
984
+
985
+ /* line 65, sass/partials/_options-page.scss */
986
+
987
+ .cmb2-options-page .cmb-repeatable-group .cmb-th > .cmb2-metabox-description {
988
+ font-weight: 400;
989
+ padding-bottom: 0 !important;
990
+ }
991
+
992
+ /*--------------------------------------------------------------
993
+ * New-Term Page
994
+ --------------------------------------------------------------*/
995
+
996
+ /* line 6, sass/partials/_new_term.scss */
997
+
998
+ #addtag .cmb-th {
999
+ float: none;
1000
+ width: auto;
1001
+ padding: 20px 0 0;
1002
+ }
1003
+
1004
+ /* line 12, sass/partials/_new_term.scss */
1005
+
1006
+ #addtag .cmb-td {
1007
+ padding: 0;
1008
+ }
1009
+
1010
+ /* line 16, sass/partials/_new_term.scss */
1011
+
1012
+ #addtag .cmb-th + .cmb-td {
1013
+ float: none;
1014
+ }
1015
+
1016
+ /* line 20, sass/partials/_new_term.scss */
1017
+
1018
+ #addtag select {
1019
+ max-width: 100%;
1020
+ }
1021
+
1022
+ /* line 24, sass/partials/_new_term.scss */
1023
+
1024
+ #addtag .cmb2-metabox {
1025
+ padding-bottom: 20px;
1026
+ }
1027
+
1028
+ /* line 28, sass/partials/_new_term.scss */
1029
+
1030
+ #addtag .cmb-row li label {
1031
+ display: inline;
1032
+ }
1033
+
1034
+ /*--------------------------------------------------------------
1035
+ * Misc.
1036
+ --------------------------------------------------------------*/
1037
+
1038
+ /* line 5, sass/partials/_misc.scss */
1039
+
1040
+ #poststuff .cmb-repeatable-group h2 {
1041
+ margin: 0;
1042
+ }
1043
+
1044
+ /* line 12, sass/partials/_misc.scss */
1045
+
1046
+ .edit-tags-php .cmb2-metabox-title,
1047
+ .profile-php .cmb2-metabox-title,
1048
+ .user-edit-php .cmb2-metabox-title {
1049
+ font-size: 1.4em;
1050
+ }
1051
+
1052
+ /* line 18, sass/partials/_misc.scss */
1053
+
1054
+ .cmb2-postbox .cmb-spinner,
1055
+ .cmb2-no-box-wrap .cmb-spinner {
1056
+ float: right;
1057
+ display: none;
1058
+ }
1059
+
1060
+ /* line 24, sass/partials/_misc.scss */
1061
+
1062
+ .cmb-spinner {
1063
+ display: none;
1064
+ }
1065
+
1066
+ /* line 26, sass/partials/_misc.scss */
1067
+
1068
+ .cmb-spinner.is-active {
1069
+ display: block;
1070
+ }
1071
+
1072
+ /*--------------------------------------------------------------
1073
+ * Sidebar Placement Adjustments
1074
+ --------------------------------------------------------------*/
1075
+
1076
+ /* line 10, sass/partials/_sidebar_placements.scss */
1077
+
1078
+ .inner-sidebar .cmb2-wrap > .cmb-field-list > .cmb-row,
1079
+ #side-sortables .cmb2-wrap > .cmb-field-list > .cmb-row {
1080
+ padding: 1.4em 0;
1081
+ }
1082
+
1083
+ /* line 16, sass/partials/_sidebar_placements.scss */
1084
+
1085
+ .inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker),
1086
+ #side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker) {
1087
+ width: 100%;
1088
+ }
1089
+
1090
+ /* line 20, sass/partials/_sidebar_placements.scss */
1091
+
1092
+ .inner-sidebar .cmb2-wrap input + input:not(.wp-picker-clear),
1093
+ .inner-sidebar .cmb2-wrap input + select,
1094
+ #side-sortables .cmb2-wrap input + input:not(.wp-picker-clear),
1095
+ #side-sortables .cmb2-wrap input + select {
1096
+ margin-right: 0;
1097
+ margin-top: 1em;
1098
+ display: block;
1099
+ }
1100
+
1101
+ /* line 26, sass/partials/_sidebar_placements.scss */
1102
+
1103
+ .inner-sidebar .cmb2-wrap input.cmb2-text-money,
1104
+ #side-sortables .cmb2-wrap input.cmb2-text-money {
1105
+ max-width: 70%;
1106
+ }
1107
+
1108
+ /* line 28, sass/partials/_sidebar_placements.scss */
1109
+
1110
+ .inner-sidebar .cmb2-wrap input.cmb2-text-money + .cmb2-metabox-description,
1111
+ #side-sortables .cmb2-wrap input.cmb2-text-money + .cmb2-metabox-description {
1112
+ display: block;
1113
+ }
1114
+
1115
+ /* line 34, sass/partials/_sidebar_placements.scss */
1116
+
1117
+ .inner-sidebar .cmb2-wrap label,
1118
+ #side-sortables .cmb2-wrap label {
1119
+ display: block;
1120
+ font-weight: 700;
1121
+ padding: 0 0 5px;
1122
+ }
1123
+
1124
+ /* line 42, sass/partials/_sidebar_placements.scss */
1125
+
1126
+ .inner-sidebar textarea,
1127
+ #side-sortables textarea {
1128
+ max-width: 99%;
1129
+ }
1130
+
1131
+ /* line 46, sass/partials/_sidebar_placements.scss */
1132
+
1133
+ .inner-sidebar .cmb-repeatable-group,
1134
+ #side-sortables .cmb-repeatable-group {
1135
+ border-bottom: 1px solid #e9e9e9;
1136
+ }
1137
+
1138
+ /* line 50, sass/partials/_sidebar_placements.scss */
1139
+
1140
+ .inner-sidebar .cmb-type-group > .cmb-td > .cmb-repeatable-group,
1141
+ #side-sortables .cmb-type-group > .cmb-td > .cmb-repeatable-group {
1142
+ border-bottom: 0;
1143
+ margin-bottom: -1.4em;
1144
+ }
1145
+
1146
+ /* line 55, sass/partials/_sidebar_placements.scss */
1147
+
1148
+ .inner-sidebar .cmb-th,
1149
+ .inner-sidebar .cmb-td:not(.cmb-remove-row),
1150
+ .inner-sidebar .cmb-th + .cmb-td,
1151
+ #side-sortables .cmb-th,
1152
+ #side-sortables .cmb-td:not(.cmb-remove-row),
1153
+ #side-sortables .cmb-th + .cmb-td {
1154
+ width: 100%;
1155
+ display: block;
1156
+ float: none;
1157
+ }
1158
+
1159
+ /* line 63, sass/partials/_sidebar_placements.scss */
1160
+
1161
+ .inner-sidebar .closed .inside,
1162
+ #side-sortables .closed .inside {
1163
+ display: none;
1164
+ }
1165
+
1166
+ /* line 67, sass/partials/_sidebar_placements.scss */
1167
+
1168
+ .inner-sidebar .cmb-th,
1169
+ #side-sortables .cmb-th {
1170
+ display: block;
1171
+ float: none;
1172
+ padding-bottom: 1em;
1173
+ text-align: right;
1174
+ width: 100%;
1175
+ padding-right: 0;
1176
+ padding-left: 0;
1177
+ }
1178
+
1179
+ /* line 27, sass/partials/_mixins.scss */
1180
+
1181
+ .inner-sidebar .cmb-th label,
1182
+ #side-sortables .cmb-th label {
1183
+ display: block;
1184
+ margin-top: 0;
1185
+ margin-bottom: 0.5em;
1186
+ }
1187
+
1188
+ /* line 14, sass/partials/_mixins.scss */
1189
+
1190
+ .inner-sidebar .cmb-th label,
1191
+ #side-sortables .cmb-th label {
1192
+ font-size: 14px;
1193
+ line-height: 1.4em;
1194
+ }
1195
+
1196
+ /* line 74, sass/partials/_sidebar_placements.scss */
1197
+
1198
+ .inner-sidebar .cmb-group-description .cmb-th,
1199
+ #side-sortables .cmb-group-description .cmb-th {
1200
+ padding-top: 0;
1201
+ }
1202
+
1203
+ /* line 77, sass/partials/_sidebar_placements.scss */
1204
+
1205
+ .inner-sidebar .cmb-group-description .cmb2-metabox-description,
1206
+ #side-sortables .cmb-group-description .cmb2-metabox-description {
1207
+ padding: 0;
1208
+ }
1209
+
1210
+ /* line 84, sass/partials/_sidebar_placements.scss */
1211
+
1212
+ .inner-sidebar .cmb-group-title .cmb-th,
1213
+ #side-sortables .cmb-group-title .cmb-th {
1214
+ padding: 0;
1215
+ }
1216
+
1217
+ /* line 90, sass/partials/_sidebar_placements.scss */
1218
+
1219
+ .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
1220
+ #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
1221
+ margin-top: 1em;
1222
+ }
1223
+
1224
+ /* line 99, sass/partials/_sidebar_placements.scss */
1225
+
1226
+ .inner-sidebar .cmb2-media-status .img-status img,
1227
+ .inner-sidebar .cmb2-media-status .embed-status img,
1228
+ #side-sortables .cmb2-media-status .img-status img,
1229
+ #side-sortables .cmb2-media-status .embed-status img {
1230
+ max-width: 90%;
1231
+ height: auto;
1232
+ }
1233
+
1234
+ /* line 107, sass/partials/_sidebar_placements.scss */
1235
+
1236
+ .inner-sidebar .cmb2-list label,
1237
+ #side-sortables .cmb2-list label {
1238
+ display: inline;
1239
+ font-weight: normal;
1240
+ }
1241
+
1242
+ /* line 112, sass/partials/_sidebar_placements.scss */
1243
+
1244
+ .inner-sidebar .cmb2-metabox-description,
1245
+ #side-sortables .cmb2-metabox-description {
1246
+ display: block;
1247
+ padding: 7px 0 0;
1248
+ }
1249
+
1250
+ /* line 119, sass/partials/_sidebar_placements.scss */
1251
+
1252
+ .inner-sidebar .cmb-type-checkbox .cmb-td label,
1253
+ .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
1254
+ #side-sortables .cmb-type-checkbox .cmb-td label,
1255
+ #side-sortables .cmb-type-checkbox .cmb2-metabox-description {
1256
+ font-weight: normal;
1257
+ display: inline;
1258
+ }
1259
+
1260
+ /* line 126, sass/partials/_sidebar_placements.scss */
1261
+
1262
+ .inner-sidebar .cmb-row .cmb2-metabox-description,
1263
+ #side-sortables .cmb-row .cmb2-metabox-description {
1264
+ padding-bottom: 1.8em;
1265
+ }
1266
+
1267
+ /* line 130, sass/partials/_sidebar_placements.scss */
1268
+
1269
+ .inner-sidebar .cmb2-metabox-title,
1270
+ #side-sortables .cmb2-metabox-title {
1271
+ font-size: 1.2em;
1272
+ font-style: italic;
1273
+ }
1274
+
1275
+ /* line 135, sass/partials/_sidebar_placements.scss */
1276
+
1277
+ .inner-sidebar .cmb-remove-row,
1278
+ #side-sortables .cmb-remove-row {
1279
+ clear: both;
1280
+ padding-top: 12px;
1281
+ padding-bottom: 0;
1282
+ }
1283
+
1284
+ /* line 141, sass/partials/_sidebar_placements.scss */
1285
+
1286
+ .inner-sidebar .cmb2-upload-button,
1287
+ #side-sortables .cmb2-upload-button {
1288
+ clear: both;
1289
+ margin-top: 12px;
1290
+ }
1291
+
1292
+ /*--------------------------------------------------------------
1293
+ * Collapsible UI
1294
+ --------------------------------------------------------------*/
1295
+
1296
+ /* line 6, sass/partials/_collapsible_ui.scss */
1297
+
1298
+ .cmb2-metabox .cmbhandle {
1299
+ color: #757575;
1300
+ float: left;
1301
+ width: 27px;
1302
+ height: 30px;
1303
+ cursor: pointer;
1304
+ left: -1em;
1305
+ position: relative;
1306
+ }
1307
+
1308
+ /* line 14, sass/partials/_collapsible_ui.scss */
1309
+
1310
+ .cmb2-metabox .cmbhandle:before {
1311
+ content: '\f142';
1312
+ left: 12px;
1313
+ font: normal 20px/1 'dashicons';
1314
+ speak: none;
1315
+ display: inline-block;
1316
+ padding: 8px 10px;
1317
+ top: 0;
1318
+ position: relative;
1319
+ -webkit-font-smoothing: antialiased;
1320
+ -moz-osx-font-smoothing: grayscale;
1321
+ text-decoration: none !important;
1322
+ }
1323
+
1324
+ /* line 31, sass/partials/_collapsible_ui.scss */
1325
+
1326
+ .cmb2-metabox .postbox.closed .cmbhandle:before {
1327
+ content: '\f140';
1328
+ }
1329
+
1330
+ /* line 37, sass/partials/_collapsible_ui.scss */
1331
+
1332
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1333
+ -webkit-appearance: none !important;
1334
+ background: none !important;
1335
+ border: none !important;
1336
+ position: absolute;
1337
+ right: 0;
1338
+ top: .5em;
1339
+ line-height: 1em;
1340
+ padding: 2px 6px 3px;
1341
+ opacity: .5;
1342
+ }
1343
+
1344
+ /* line 47, sass/partials/_collapsible_ui.scss */
1345
+
1346
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1347
+ cursor: pointer;
1348
+ color: #a00;
1349
+ opacity: 1;
1350
+ }
1351
+
1352
+ /* line 51, sass/partials/_collapsible_ui.scss */
1353
+
1354
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1355
+ color: #f00;
1356
+ }
1357
+
1358
+ /*
1359
+ * jQuery UI CSS Framework 1.8.16
1360
+ *
1361
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
1362
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1363
+ * http://jquery.org/license
1364
+ *
1365
+ * http://docs.jquery.com/UI/Theming/API
1366
+ *
1367
+ * WordPress Styles adopted from "jQuery UI Datepicker CSS for WordPress"
1368
+ * https://github.com/stuttter/wp-datepicker-styling
1369
+ *
1370
+ */
1371
+
1372
+ /* line 15, sass/partials/_jquery_ui.scss */
1373
+
1374
+ * html .cmb2-element.ui-helper-clearfix {
1375
+ height: 1%;
1376
+ }
1377
+
1378
+ /* line 24, sass/partials/_jquery_ui.scss */
1379
+
1380
+ .cmb2-element.ui-datepicker,
1381
+ .cmb2-element .ui-datepicker {
1382
+ padding: 0;
1383
+ margin: 0;
1384
+ -webkit-border-radius: 0;
1385
+ -moz-border-radius: 0;
1386
+ border-radius: 0;
1387
+ background-color: #fff;
1388
+ border: 1px solid #dfdfdf;
1389
+ border-top: none;
1390
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
1391
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
1392
+ min-width: 17em;
1393
+ width: auto; /* Default Color Scheme */
1394
+ }
1395
+
1396
+ /* line 38, sass/partials/_jquery_ui.scss */
1397
+
1398
+ .cmb2-element.ui-datepicker *,
1399
+ .cmb2-element .ui-datepicker * {
1400
+ padding: 0;
1401
+ font-family: "Open Sans", sans-serif;
1402
+ -webkit-border-radius: 0;
1403
+ -moz-border-radius: 0;
1404
+ border-radius: 0;
1405
+ }
1406
+
1407
+ /* line 46, sass/partials/_jquery_ui.scss */
1408
+
1409
+ .cmb2-element.ui-datepicker table,
1410
+ .cmb2-element .ui-datepicker table {
1411
+ font-size: 13px;
1412
+ margin: 0;
1413
+ border: none;
1414
+ border-collapse: collapse;
1415
+ }
1416
+
1417
+ /* line 53, sass/partials/_jquery_ui.scss */
1418
+
1419
+ .cmb2-element.ui-datepicker .ui-widget-header,
1420
+ .cmb2-element.ui-datepicker .ui-datepicker-header,
1421
+ .cmb2-element .ui-datepicker .ui-widget-header,
1422
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
1423
+ background-image: none;
1424
+ border: none;
1425
+ color: #fff;
1426
+ font-weight: normal;
1427
+ }
1428
+
1429
+ /* line 61, sass/partials/_jquery_ui.scss */
1430
+
1431
+ .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,
1432
+ .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
1433
+ background: transparent;
1434
+ border-color: transparent;
1435
+ cursor: pointer;
1436
+ }
1437
+
1438
+ /* line 67, sass/partials/_jquery_ui.scss */
1439
+
1440
+ .cmb2-element.ui-datepicker .ui-datepicker-title,
1441
+ .cmb2-element .ui-datepicker .ui-datepicker-title {
1442
+ margin: 0;
1443
+ padding: 10px 0;
1444
+ color: #fff;
1445
+ font-size: 14px;
1446
+ line-height: 14px;
1447
+ text-align: center;
1448
+ }
1449
+
1450
+ /* line 75, sass/partials/_jquery_ui.scss */
1451
+
1452
+ .cmb2-element.ui-datepicker .ui-datepicker-title select,
1453
+ .cmb2-element .ui-datepicker .ui-datepicker-title select {
1454
+ margin-top: -8px;
1455
+ margin-bottom: -8px;
1456
+ }
1457
+
1458
+ /* line 81, sass/partials/_jquery_ui.scss */
1459
+
1460
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
1461
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
1462
+ .cmb2-element .ui-datepicker .ui-datepicker-prev,
1463
+ .cmb2-element .ui-datepicker .ui-datepicker-next {
1464
+ position: relative;
1465
+ top: 0;
1466
+ height: 34px;
1467
+ width: 34px;
1468
+ }
1469
+
1470
+ /* line 89, sass/partials/_jquery_ui.scss */
1471
+
1472
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev,
1473
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,
1474
+ .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,
1475
+ .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next {
1476
+ border: none;
1477
+ }
1478
+
1479
+ /* line 94, sass/partials/_jquery_ui.scss */
1480
+
1481
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
1482
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover,
1483
+ .cmb2-element .ui-datepicker .ui-datepicker-prev,
1484
+ .cmb2-element .ui-datepicker .ui-datepicker-prev-hover {
1485
+ right: 0;
1486
+ }
1487
+
1488
+ /* line 99, sass/partials/_jquery_ui.scss */
1489
+
1490
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
1491
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover,
1492
+ .cmb2-element .ui-datepicker .ui-datepicker-next,
1493
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover {
1494
+ left: 0;
1495
+ }
1496
+
1497
+ /* line 104, sass/partials/_jquery_ui.scss */
1498
+
1499
+ .cmb2-element.ui-datepicker .ui-datepicker-next span,
1500
+ .cmb2-element.ui-datepicker .ui-datepicker-prev span,
1501
+ .cmb2-element .ui-datepicker .ui-datepicker-next span,
1502
+ .cmb2-element .ui-datepicker .ui-datepicker-prev span {
1503
+ display: none;
1504
+ }
1505
+
1506
+ /* line 109, sass/partials/_jquery_ui.scss */
1507
+
1508
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
1509
+ .cmb2-element .ui-datepicker .ui-datepicker-prev {
1510
+ float: right;
1511
+ }
1512
+
1513
+ /* line 113, sass/partials/_jquery_ui.scss */
1514
+
1515
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
1516
+ .cmb2-element .ui-datepicker .ui-datepicker-next {
1517
+ float: left;
1518
+ }
1519
+
1520
+ /* line 117, sass/partials/_jquery_ui.scss */
1521
+
1522
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1523
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before,
1524
+ .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
1525
+ .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1526
+ font: normal 20px/34px 'dashicons';
1527
+ padding-right: 7px;
1528
+ color: #fff;
1529
+ speak: none;
1530
+ -webkit-font-smoothing: antialiased;
1531
+ -moz-osx-font-smoothing: grayscale;
1532
+ width: 34px;
1533
+ height: 34px;
1534
+ }
1535
+
1536
+ /* line 129, sass/partials/_jquery_ui.scss */
1537
+
1538
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1539
+ .cmb2-element .ui-datepicker .ui-datepicker-prev:before {
1540
+ content: '\f341';
1541
+ }
1542
+
1543
+ /* line 133, sass/partials/_jquery_ui.scss */
1544
+
1545
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before,
1546
+ .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1547
+ content: '\f345';
1548
+ }
1549
+
1550
+ /* line 137, sass/partials/_jquery_ui.scss */
1551
+
1552
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before,
1553
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,
1554
+ .cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,
1555
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover:before {
1556
+ opacity: 0.7;
1557
+ }
1558
+
1559
+ /* line 142, sass/partials/_jquery_ui.scss */
1560
+
1561
+ .cmb2-element.ui-datepicker select.ui-datepicker-month,
1562
+ .cmb2-element.ui-datepicker select.ui-datepicker-year,
1563
+ .cmb2-element .ui-datepicker select.ui-datepicker-month,
1564
+ .cmb2-element .ui-datepicker select.ui-datepicker-year {
1565
+ width: 33%;
1566
+ background: transparent;
1567
+ border-color: transparent;
1568
+ box-shadow: none;
1569
+ color: #fff;
1570
+ }
1571
+
1572
+ /* line 149, sass/partials/_jquery_ui.scss */
1573
+
1574
+ .cmb2-element.ui-datepicker select.ui-datepicker-month option,
1575
+ .cmb2-element.ui-datepicker select.ui-datepicker-year option,
1576
+ .cmb2-element .ui-datepicker select.ui-datepicker-month option,
1577
+ .cmb2-element .ui-datepicker select.ui-datepicker-year option {
1578
+ color: #333;
1579
+ }
1580
+
1581
+ /* line 154, sass/partials/_jquery_ui.scss */
1582
+
1583
+ .cmb2-element.ui-datepicker thead,
1584
+ .cmb2-element .ui-datepicker thead {
1585
+ color: #fff;
1586
+ font-weight: 600;
1587
+ }
1588
+
1589
+ /* line 157, sass/partials/_jquery_ui.scss */
1590
+
1591
+ .cmb2-element.ui-datepicker thead th,
1592
+ .cmb2-element .ui-datepicker thead th {
1593
+ font-weight: normal;
1594
+ }
1595
+
1596
+ /* line 162, sass/partials/_jquery_ui.scss */
1597
+
1598
+ .cmb2-element.ui-datepicker th,
1599
+ .cmb2-element .ui-datepicker th {
1600
+ padding: 10px;
1601
+ }
1602
+
1603
+ /* line 166, sass/partials/_jquery_ui.scss */
1604
+
1605
+ .cmb2-element.ui-datepicker td,
1606
+ .cmb2-element .ui-datepicker td {
1607
+ padding: 0;
1608
+ border: 1px solid #f4f4f4;
1609
+ }
1610
+
1611
+ /* line 171, sass/partials/_jquery_ui.scss */
1612
+
1613
+ .cmb2-element.ui-datepicker td.ui-datepicker-other-month,
1614
+ .cmb2-element .ui-datepicker td.ui-datepicker-other-month {
1615
+ border: transparent;
1616
+ }
1617
+
1618
+ /* line 175, sass/partials/_jquery_ui.scss */
1619
+
1620
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end,
1621
+ .cmb2-element .ui-datepicker td.ui-datepicker-week-end {
1622
+ background-color: #f4f4f4;
1623
+ border: 1px solid #f4f4f4;
1624
+ }
1625
+
1626
+ /* line 178, sass/partials/_jquery_ui.scss */
1627
+
1628
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,
1629
+ .cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today {
1630
+ -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1631
+ -moz-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1632
+ box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1633
+ }
1634
+
1635
+ /* line 185, sass/partials/_jquery_ui.scss */
1636
+
1637
+ .cmb2-element.ui-datepicker td.ui-datepicker-today,
1638
+ .cmb2-element .ui-datepicker td.ui-datepicker-today {
1639
+ background-color: #f0f0c0;
1640
+ }
1641
+
1642
+ /* line 189, sass/partials/_jquery_ui.scss */
1643
+
1644
+ .cmb2-element.ui-datepicker td.ui-datepicker-current-day,
1645
+ .cmb2-element .ui-datepicker td.ui-datepicker-current-day {
1646
+ background: #bbdd88;
1647
+ }
1648
+
1649
+ /* line 193, sass/partials/_jquery_ui.scss */
1650
+
1651
+ .cmb2-element.ui-datepicker td .ui-state-default,
1652
+ .cmb2-element .ui-datepicker td .ui-state-default {
1653
+ background: transparent;
1654
+ border: none;
1655
+ text-align: center;
1656
+ text-decoration: none;
1657
+ width: auto;
1658
+ display: block;
1659
+ padding: 5px 10px;
1660
+ font-weight: normal;
1661
+ color: #444;
1662
+ }
1663
+
1664
+ /* line 205, sass/partials/_jquery_ui.scss */
1665
+
1666
+ .cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default,
1667
+ .cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default {
1668
+ opacity: 0.5;
1669
+ }
1670
+
1671
+ /* line 210, sass/partials/_jquery_ui.scss */
1672
+
1673
+ .cmb2-element.ui-datepicker .ui-widget-header,
1674
+ .cmb2-element.ui-datepicker .ui-datepicker-header,
1675
+ .cmb2-element .ui-datepicker .ui-widget-header,
1676
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
1677
+ background: #00a0d2;
1678
+ }
1679
+
1680
+ /* line 215, sass/partials/_jquery_ui.scss */
1681
+
1682
+ .cmb2-element.ui-datepicker thead,
1683
+ .cmb2-element .ui-datepicker thead {
1684
+ background: #32373c;
1685
+ }
1686
+
1687
+ /* line 219, sass/partials/_jquery_ui.scss */
1688
+
1689
+ .cmb2-element.ui-datepicker td .ui-state-hover,
1690
+ .cmb2-element.ui-datepicker td .ui-state-active,
1691
+ .cmb2-element .ui-datepicker td .ui-state-hover,
1692
+ .cmb2-element .ui-datepicker td .ui-state-active {
1693
+ background: #0073aa;
1694
+ color: #fff;
1695
+ }
1696
+
1697
+ /* line 224, sass/partials/_jquery_ui.scss */
1698
+
1699
+ .cmb2-element.ui-datepicker .ui-timepicker-div,
1700
+ .cmb2-element .ui-datepicker .ui-timepicker-div {
1701
+ font-size: 14px;
1702
+ }
1703
+
1704
+ /* line 226, sass/partials/_jquery_ui.scss */
1705
+
1706
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl,
1707
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl {
1708
+ text-align: right;
1709
+ padding: 0 .6em;
1710
+ }
1711
+
1712
+ /* line 229, sass/partials/_jquery_ui.scss */
1713
+
1714
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dt,
1715
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl dt {
1716
+ float: right;
1717
+ clear: right;
1718
+ padding: 0 5px 0 0;
1719
+ }
1720
+
1721
+ /* line 234, sass/partials/_jquery_ui.scss */
1722
+
1723
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd,
1724
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl dd {
1725
+ margin: 0 40% 10px 10px;
1726
+ }
1727
+
1728
+ /* line 236, sass/partials/_jquery_ui.scss */
1729
+
1730
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd select,
1731
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl dd select {
1732
+ width: 100%;
1733
+ }
1734
+
1735
+ /* line 242, sass/partials/_jquery_ui.scss */
1736
+
1737
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane,
1738
+ .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane {
1739
+ padding: .6em;
1740
+ text-align: right;
1741
+ }
1742
+
1743
+ /* line 246, sass/partials/_jquery_ui.scss */
1744
+
1745
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary,
1746
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary,
1747
+ .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary,
1748
+ .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary {
1749
+ padding: 0 10px 1px;
1750
+ -webkit-border-radius: 3px;
1751
+ -moz-border-radius: 3px;
1752
+ border-radius: 3px;
1753
+ margin: 0 .4em .4em .6em;
1754
+ }
1755
+
1756
+ /* line 260, sass/partials/_jquery_ui.scss */
1757
+
1758
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header,
1759
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,
1760
+ .admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,
1761
+ .admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header {
1762
+ background: #00a0d2;
1763
+ }
1764
+
1765
+ /* line 265, sass/partials/_jquery_ui.scss */
1766
+
1767
+ .admin-color-fresh .cmb2-element.ui-datepicker thead,
1768
+ .admin-color-fresh .cmb2-element .ui-datepicker thead {
1769
+ background: #32373c;
1770
+ }
1771
+
1772
+ /* line 269, sass/partials/_jquery_ui.scss */
1773
+
1774
+ .admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover,
1775
+ .admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover {
1776
+ background: #0073aa;
1777
+ color: #fff;
1778
+ }
1779
+
1780
+ /* line 277, sass/partials/_jquery_ui.scss */
1781
+
1782
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header,
1783
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,
1784
+ .admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,
1785
+ .admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header {
1786
+ background: #52accc;
1787
+ }
1788
+
1789
+ /* line 282, sass/partials/_jquery_ui.scss */
1790
+
1791
+ .admin-color-blue .cmb2-element.ui-datepicker thead,
1792
+ .admin-color-blue .cmb2-element .ui-datepicker thead {
1793
+ background: #4796b3;
1794
+ }
1795
+
1796
+ /* line 291, sass/partials/_jquery_ui.scss */
1797
+
1798
+ .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover,
1799
+ .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,
1800
+ .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,
1801
+ .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active {
1802
+ background: #096484;
1803
+ color: #fff;
1804
+ }
1805
+
1806
+ /* line 296, sass/partials/_jquery_ui.scss */
1807
+
1808
+ .admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today,
1809
+ .admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today {
1810
+ background: #eee;
1811
+ }
1812
+
1813
+ /* line 305, sass/partials/_jquery_ui.scss */
1814
+
1815
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header,
1816
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,
1817
+ .admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,
1818
+ .admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header {
1819
+ background: #59524c;
1820
+ }
1821
+
1822
+ /* line 310, sass/partials/_jquery_ui.scss */
1823
+
1824
+ .admin-color-coffee .cmb2-element.ui-datepicker thead,
1825
+ .admin-color-coffee .cmb2-element .ui-datepicker thead {
1826
+ background: #46403c;
1827
+ }
1828
+
1829
+ /* line 314, sass/partials/_jquery_ui.scss */
1830
+
1831
+ .admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover,
1832
+ .admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover {
1833
+ background: #c7a589;
1834
+ color: #fff;
1835
+ }
1836
+
1837
+ /* line 322, sass/partials/_jquery_ui.scss */
1838
+
1839
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header,
1840
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,
1841
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,
1842
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header {
1843
+ background: #523f6d;
1844
+ }
1845
+
1846
+ /* line 327, sass/partials/_jquery_ui.scss */
1847
+
1848
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker thead,
1849
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker thead {
1850
+ background: #413256;
1851
+ }
1852
+
1853
+ /* line 331, sass/partials/_jquery_ui.scss */
1854
+
1855
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover,
1856
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover {
1857
+ background: #a3b745;
1858
+ color: #fff;
1859
+ }
1860
+
1861
+ /* line 339, sass/partials/_jquery_ui.scss */
1862
+
1863
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header,
1864
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,
1865
+ .admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,
1866
+ .admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header {
1867
+ background: #363b3f;
1868
+ }
1869
+
1870
+ /* line 344, sass/partials/_jquery_ui.scss */
1871
+
1872
+ .admin-color-midnight .cmb2-element.ui-datepicker thead,
1873
+ .admin-color-midnight .cmb2-element .ui-datepicker thead {
1874
+ background: #26292c;
1875
+ }
1876
+
1877
+ /* line 348, sass/partials/_jquery_ui.scss */
1878
+
1879
+ .admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover,
1880
+ .admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover {
1881
+ background: #e14d43;
1882
+ color: #fff;
1883
+ }
1884
+
1885
+ /* line 356, sass/partials/_jquery_ui.scss */
1886
+
1887
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header,
1888
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,
1889
+ .admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,
1890
+ .admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header {
1891
+ background: #738e96;
1892
+ }
1893
+
1894
+ /* line 361, sass/partials/_jquery_ui.scss */
1895
+
1896
+ .admin-color-ocean .cmb2-element.ui-datepicker thead,
1897
+ .admin-color-ocean .cmb2-element .ui-datepicker thead {
1898
+ background: #627c83;
1899
+ }
1900
+
1901
+ /* line 365, sass/partials/_jquery_ui.scss */
1902
+
1903
+ .admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover,
1904
+ .admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover {
1905
+ background: #9ebaa0;
1906
+ color: #fff;
1907
+ }
1908
+
1909
+ /* line 373, sass/partials/_jquery_ui.scss */
1910
+
1911
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header,
1912
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,
1913
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,
1914
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,
1915
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,
1916
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
1917
+ background: #cf4944;
1918
+ }
1919
+
1920
+ /* line 379, sass/partials/_jquery_ui.scss */
1921
+
1922
+ .admin-color-sunrise .cmb2-element.ui-datepicker th,
1923
+ .admin-color-sunrise .cmb2-element .ui-datepicker th {
1924
+ border-color: #be3631;
1925
+ background: #be3631;
1926
+ }
1927
+
1928
+ /* line 384, sass/partials/_jquery_ui.scss */
1929
+
1930
+ .admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover,
1931
+ .admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover {
1932
+ background: #dd823b;
1933
+ color: #fff;
1934
+ }
1935
+
1936
+ /* line 392, sass/partials/_jquery_ui.scss */
1937
+
1938
+ .admin-color-light .cmb2-element.ui-datepicker .ui-widget-header,
1939
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,
1940
+ .admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,
1941
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header {
1942
+ background: #e5e5e5;
1943
+ }
1944
+
1945
+ /* line 397, sass/partials/_jquery_ui.scss */
1946
+
1947
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,
1948
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year,
1949
+ .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,
1950
+ .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year {
1951
+ color: #555;
1952
+ }
1953
+
1954
+ /* line 402, sass/partials/_jquery_ui.scss */
1955
+
1956
+ .admin-color-light .cmb2-element.ui-datepicker thead,
1957
+ .admin-color-light .cmb2-element .ui-datepicker thead {
1958
+ background: #888;
1959
+ }
1960
+
1961
+ /* line 406, sass/partials/_jquery_ui.scss */
1962
+
1963
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,
1964
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-default,
1965
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1966
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,
1967
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,
1968
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,
1969
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
1970
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1971
+ color: #555;
1972
+ }
1973
+
1974
+ /* line 414, sass/partials/_jquery_ui.scss */
1975
+
1976
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover,
1977
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,
1978
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,
1979
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-active {
1980
+ background: #ccc;
1981
+ }
1982
+
1983
+ /* line 418, sass/partials/_jquery_ui.scss */
1984
+
1985
+ .admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today,
1986
+ .admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today {
1987
+ background: #eee;
1988
+ }
1989
+
1990
+ /* line 426, sass/partials/_jquery_ui.scss */
1991
+
1992
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header,
1993
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,
1994
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,
1995
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header {
1996
+ background: #56b274;
1997
+ }
1998
+
1999
+ /* line 431, sass/partials/_jquery_ui.scss */
2000
+
2001
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead,
2002
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead {
2003
+ background: #36533f;
2004
+ }
2005
+
2006
+ /* line 435, sass/partials/_jquery_ui.scss */
2007
+
2008
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover,
2009
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover {
2010
+ background: #446950;
2011
+ color: #fff;
2012
+ }
2013
+
2014
+ /* line 443, sass/partials/_jquery_ui.scss */
2015
+
2016
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header,
2017
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,
2018
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,
2019
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header {
2020
+ background: #4ca26a;
2021
+ }
2022
+
2023
+ /* line 448, sass/partials/_jquery_ui.scss */
2024
+
2025
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker thead,
2026
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker thead {
2027
+ background: #4f6d59;
2028
+ }
2029
+
2030
+ /* line 452, sass/partials/_jquery_ui.scss */
2031
+
2032
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover,
2033
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover {
2034
+ background: #5fb37c;
2035
+ color: #fff;
2036
+ }
2037
+
2038
+ /*# sourceMappingURL=cmb2.css.map */
2039
+
2040
+ @media only screen and (max-width: 850px) {
2041
+
2042
+ /* line 103, sass/partials/_context_metaboxes.scss */
2043
+
2044
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
2045
+ margin-left: 0;
2046
+ }
2047
+
2048
+ }
2049
+
2050
+ @media (max-width: 450px) {
2051
+
2052
+ /* line 193, sass/partials/_main_wrap.scss */
2053
+
2054
+ .cmb-th {
2055
+ font-size: 1.2em;
2056
+ display: block;
2057
+ float: none;
2058
+ padding-bottom: 1em;
2059
+ text-align: right;
2060
+ width: 100%;
2061
+ }
2062
+
2063
+ /* line 27, sass/partials/_mixins.scss */
2064
+
2065
+ .cmb-th label {
2066
+ display: block;
2067
+ margin-top: 0;
2068
+ margin-bottom: 0.5em;
2069
+ }
2070
+
2071
+ /* line 523, sass/partials/_main_wrap.scss */
2072
+
2073
+ .cmb-th,
2074
+ .cmb-td,
2075
+ .cmb-th + .cmb-td {
2076
+ display: block;
2077
+ float: none;
2078
+ width: 100%;
2079
+ }
2080
+
2081
+ /* line 70, sass/partials/_post_metaboxes.scss */
2082
+
2083
+ .cmb2-postbox .cmb-row:not(:last-of-type),
2084
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
2085
+ .cmb-type-group .cmb-row:not(:last-of-type),
2086
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
2087
+ border-bottom: 0;
2088
+ }
2089
+
2090
+ /* line 24, sass/partials/_options-page.scss */
2091
+
2092
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
2093
+ padding: 0;
2094
+ margin-right: 0;
2095
+ }
2096
+
2097
+ }
2098
+
includes/plus-options/metabox/css/cmb2-rtl.min.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! CMB2 - v2.6.0 - 2019-01-18 | https://cmb2.io | Copyright (c) 2019 CMB2 team | Licensed GPLv2 */
2
+ .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-right:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 0 0 5px;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 0 0 10px}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:right;font-weight:600;line-height:1.3;padding:20px 0 20px 10px;vertical-align:top;width:200px}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:right}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:left}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 50px 10px 10px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper{outline:dashed 2px #e9e9e9!important}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;right:0;position:absolute;width:35px;height:100%;line-height:35px;cursor:move;color:#757575;text-align:center;border-left:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-right:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;left:7px;position:absolute;width:auto;margin-right:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;right:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 2.2em 8px 12px;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-left:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:left}p.cmb2-metabox-description{color:#757575;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#757575;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-left:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-left:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#eee;border:5px solid #fff;outline:1px solid #e9e9e9;box-shadow:inset 0 0 15px rgba(0,0,0,.3),inset 0 0 0 1px rgba(0,0,0,.05);background-image:linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0),linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0);background-position:0 0,10px 10px;background-size:20px 20px;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0}.cmb2-media-status .embed-status{float:right;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;right:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb2-media-status.cmb-attach-list .file-status>span,.cmb2-media-status.cmb-attach-list .img-status img{cursor:move}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-left:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{float:right;margin-left:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:right}.cmb2-indented-hierarchy{padding-right:1.5em}#poststuff .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-right:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{left:-1em;position:relative;color:#222}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 0 0 2%}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:left}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 0 0 2%;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}.cmb2-options-page{max-width:1200px}.cmb2-options-page.wrap>h2{margin-bottom:1em}.cmb2-options-page .cmb2-metabox>.cmb-row{padding:1em;margin-top:-1px;background:#fff;border:1px solid #e9e9e9;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th{padding:0;font-weight:initial}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{float:none;padding:0 1em 0 0;margin-right:200px}.cmb2-options-page .cmb2-wrap .cmb-type-title{margin-top:1em;padding:.6em 1em;background-color:#fafafa}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title{font-size:12px;margin-top:0;margin-bottom:0;text-transform:uppercase}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description{padding-top:.25em}.cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th{padding:0 0 .8em}.cmb2-options-page .cmb-repeatable-group .cmb-group-name{font-size:16px;margin-top:0;margin-bottom:0}.cmb2-options-page .cmb-repeatable-group .cmb-th>.cmb2-metabox-description{font-weight:400;padding-bottom:0!important}#addtag .cmb-th{float:none;width:auto;padding:20px 0 0}#addtag .cmb-td{padding:0}#addtag .cmb-th+.cmb-td{float:none}#addtag select{max-width:100%}#addtag .cmb2-metabox{padding-bottom:20px}#addtag .cmb-row li label{display:inline}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:right;display:none}.cmb-spinner{display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-right:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td:not(.cmb-remove-row),#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td:not(.cmb-remove-row),.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:right;width:100%;padding-right:0;padding-left:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;margin-bottom:.5em;font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmbhandle{color:#757575;float:left;width:27px;height:30px;cursor:pointer;left:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;right:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-right:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:right;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:right;clear:right;padding:0 5px 0 0}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 40% 10px 10px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:right}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .4em .4em .6em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:0}}@media (max-width:450px){.cmb-th{font-size:1.2em;padding-bottom:1em;text-align:right}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{padding:0;margin-right:0}}
includes/plus-options/metabox/css/cmb2.css ADDED
@@ -0,0 +1,2098 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * CMB2 - v2.6.0 - 2019-01-18
3
+ * https://cmb2.io
4
+ * Copyright (c) 2019
5
+ * Licensed GPLv2+
6
+ */
7
+
8
+ /*--------------------------------------------------------------
9
+ * Main Wrap
10
+ --------------------------------------------------------------*/
11
+
12
+ /* line 5, sass/partials/_main_wrap.scss */
13
+
14
+ .cmb2-wrap {
15
+ margin: 0;
16
+ }
17
+
18
+ /* line 8, sass/partials/_main_wrap.scss */
19
+
20
+ .cmb2-wrap input,
21
+ .cmb2-wrap textarea {
22
+ font-size: 14px;
23
+ max-width: 100%;
24
+ padding: 5px;
25
+ }
26
+
27
+ /* line 18, sass/partials/_main_wrap.scss */
28
+
29
+ .cmb2-wrap input[type=text].cmb2-oembed {
30
+ width: 100%;
31
+ }
32
+
33
+ /* line 23, sass/partials/_main_wrap.scss */
34
+
35
+ .cmb2-wrap textarea {
36
+ width: 500px;
37
+ }
38
+
39
+ /* line 26, sass/partials/_main_wrap.scss */
40
+
41
+ .cmb2-wrap textarea.cmb2-textarea-code {
42
+ font-family: "Courier 10 Pitch", Courier, monospace;
43
+ line-height: 16px;
44
+ }
45
+
46
+ /* line 34, sass/partials/_main_wrap.scss */
47
+
48
+ .cmb2-wrap input.cmb2-text-small,
49
+ .cmb2-wrap input.cmb2-timepicker {
50
+ width: 100px;
51
+ }
52
+
53
+ /* line 40, sass/partials/_main_wrap.scss */
54
+
55
+ .cmb2-wrap input.cmb2-text-money {
56
+ width: 90px;
57
+ }
58
+
59
+ /* line 45, sass/partials/_main_wrap.scss */
60
+
61
+ .cmb2-wrap input.cmb2-text-medium {
62
+ width: 230px;
63
+ }
64
+
65
+ /* line 50, sass/partials/_main_wrap.scss */
66
+
67
+ .cmb2-wrap input.cmb2-upload-file {
68
+ width: 65%;
69
+ }
70
+
71
+ /* line 54, sass/partials/_main_wrap.scss */
72
+
73
+ .cmb2-wrap input.ed_button {
74
+ padding: 2px 4px;
75
+ }
76
+
77
+ /* line 59, sass/partials/_main_wrap.scss */
78
+
79
+ .cmb2-wrap input:not([type="hidden"]) + input,
80
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
81
+ .cmb2-wrap input:not([type="hidden"]) + select {
82
+ margin-left: 20px;
83
+ }
84
+
85
+ /* line 67, sass/partials/_main_wrap.scss */
86
+
87
+ .cmb2-wrap ul {
88
+ margin: 0;
89
+ }
90
+
91
+ /* line 71, sass/partials/_main_wrap.scss */
92
+
93
+ .cmb2-wrap li {
94
+ font-size: 14px;
95
+ line-height: 16px;
96
+ margin: 1px 0 5px 0;
97
+ }
98
+
99
+ /* line 82, sass/partials/_main_wrap.scss */
100
+
101
+ .cmb2-wrap select {
102
+ font-size: 14px;
103
+ margin-top: 3px;
104
+ }
105
+
106
+ /* line 87, sass/partials/_main_wrap.scss */
107
+
108
+ .cmb2-wrap input:focus,
109
+ .cmb2-wrap textarea:focus {
110
+ background: #fffff8;
111
+ }
112
+
113
+ /* line 92, sass/partials/_main_wrap.scss */
114
+
115
+ .cmb2-wrap input[type="radio"] {
116
+ margin: 0 5px 0 0;
117
+ padding: 0;
118
+ }
119
+
120
+ /* line 97, sass/partials/_main_wrap.scss */
121
+
122
+ .cmb2-wrap input[type="checkbox"] {
123
+ margin: 0 5px 0 0;
124
+ padding: 0;
125
+ }
126
+
127
+ /* line 102, sass/partials/_main_wrap.scss */
128
+
129
+ .cmb2-wrap button,
130
+ .cmb2-wrap .button-secondary {
131
+ white-space: nowrap;
132
+ }
133
+
134
+ /* line 107, sass/partials/_main_wrap.scss */
135
+
136
+ .cmb2-wrap .mceLayout {
137
+ border: 1px solid #e9e9e9 !important;
138
+ }
139
+
140
+ /* line 111, sass/partials/_main_wrap.scss */
141
+
142
+ .cmb2-wrap .mceIframeContainer {
143
+ background: #ffffff;
144
+ }
145
+
146
+ /* line 115, sass/partials/_main_wrap.scss */
147
+
148
+ .cmb2-wrap .meta_mce {
149
+ width: 97%;
150
+ }
151
+
152
+ /* line 118, sass/partials/_main_wrap.scss */
153
+
154
+ .cmb2-wrap .meta_mce textarea {
155
+ width: 100%;
156
+ }
157
+
158
+ /* line 124, sass/partials/_main_wrap.scss */
159
+
160
+ .cmb2-wrap .wp-color-result,
161
+ .cmb2-wrap .wp-picker-input-wrap {
162
+ vertical-align: middle;
163
+ }
164
+
165
+ /* line 129, sass/partials/_main_wrap.scss */
166
+
167
+ .cmb2-wrap .wp-color-result,
168
+ .cmb2-wrap .wp-picker-container {
169
+ margin: 0 10px 0 0;
170
+ }
171
+
172
+ /* line 134, sass/partials/_main_wrap.scss */
173
+
174
+ .cmb2-wrap .cmb-row {
175
+ margin: 0;
176
+ }
177
+
178
+ /* line 137, sass/partials/_main_wrap.scss */
179
+
180
+ .cmb2-wrap .cmb-row:after {
181
+ content: '';
182
+ clear: both;
183
+ display: block;
184
+ width: 100%;
185
+ }
186
+
187
+ /* line 144, sass/partials/_main_wrap.scss */
188
+
189
+ .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
190
+ padding-top: 0;
191
+ padding-bottom: 1em;
192
+ }
193
+
194
+ /* line 152, sass/partials/_main_wrap.scss */
195
+
196
+ .cmb2-metabox {
197
+ clear: both;
198
+ margin: 0;
199
+ }
200
+
201
+ /* line 158, sass/partials/_main_wrap.scss */
202
+
203
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
204
+ .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
205
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
206
+ .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
207
+ border: 0;
208
+ }
209
+
210
+ /* line 165, sass/partials/_main_wrap.scss */
211
+
212
+ .cmb-add-row {
213
+ margin: 1.8em 0 0;
214
+ }
215
+
216
+ /* line 169, sass/partials/_main_wrap.scss */
217
+
218
+ .cmb-nested .cmb-td,
219
+ .cmb-repeatable-group .cmb-th,
220
+ .cmb-repeatable-group:first-of-type {
221
+ border: 0;
222
+ }
223
+
224
+ /* line 175, sass/partials/_main_wrap.scss */
225
+
226
+ .cmb-row:last-of-type,
227
+ .cmb2-wrap .cmb-row:last-of-type,
228
+ .cmb-repeatable-group:last-of-type {
229
+ border-bottom: 0;
230
+ }
231
+
232
+ /* line 181, sass/partials/_main_wrap.scss */
233
+
234
+ .cmb-repeatable-grouping {
235
+ border: 1px solid #e9e9e9;
236
+ padding: 0 1em;
237
+ }
238
+
239
+ /* line 185, sass/partials/_main_wrap.scss */
240
+
241
+ .cmb-repeatable-grouping.cmb-row {
242
+ margin: 0 0 0.8em;
243
+ }
244
+
245
+ /* line 193, sass/partials/_main_wrap.scss */
246
+
247
+ .cmb-th {
248
+ color: #222222;
249
+ float: left;
250
+ font-weight: 600;
251
+ line-height: 1.3;
252
+ padding: 20px 10px 20px 0;
253
+ vertical-align: top;
254
+ width: 200px;
255
+ }
256
+
257
+ /* line 207, sass/partials/_main_wrap.scss */
258
+
259
+ .cmb-td {
260
+ line-height: 1.3;
261
+ max-width: 100%;
262
+ padding: 15px 10px;
263
+ vertical-align: middle;
264
+ }
265
+
266
+ /* line 216, sass/partials/_main_wrap.scss */
267
+
268
+ .cmb-type-title .cmb-td {
269
+ padding: 0;
270
+ }
271
+
272
+ /* line 221, sass/partials/_main_wrap.scss */
273
+
274
+ .cmb-th label {
275
+ display: block;
276
+ padding: 5px 0;
277
+ }
278
+
279
+ /* line 226, sass/partials/_main_wrap.scss */
280
+
281
+ .cmb-th + .cmb-td {
282
+ float: left;
283
+ }
284
+
285
+ /* line 230, sass/partials/_main_wrap.scss */
286
+
287
+ .cmb-td .cmb-td {
288
+ padding-bottom: 1em;
289
+ }
290
+
291
+ /* line 234, sass/partials/_main_wrap.scss */
292
+
293
+ .cmb-remove-row {
294
+ text-align: right;
295
+ }
296
+
297
+ /* line 238, sass/partials/_main_wrap.scss */
298
+
299
+ .empty-row.hidden {
300
+ display: none;
301
+ }
302
+
303
+ /* line 243, sass/partials/_main_wrap.scss */
304
+
305
+ .cmb-repeat-table {
306
+ background-color: #fafafa;
307
+ border: 1px solid #e1e1e1;
308
+ }
309
+
310
+ /* line 247, sass/partials/_main_wrap.scss */
311
+
312
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
313
+ position: relative;
314
+ counter-increment: el;
315
+ margin: 0;
316
+ padding: 10px 10px 10px 50px;
317
+ border-bottom: none !important;
318
+ }
319
+
320
+ /* line 255, sass/partials/_main_wrap.scss */
321
+
322
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
323
+ border-top: solid 1px #e9e9e9;
324
+ }
325
+
326
+ /* line 259, sass/partials/_main_wrap.scss */
327
+
328
+ .cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper {
329
+ outline: dashed 2px #e9e9e9 !important;
330
+ }
331
+
332
+ /* line 263, sass/partials/_main_wrap.scss */
333
+
334
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
335
+ content: counter(el);
336
+ display: block;
337
+ top: 0;
338
+ left: 0;
339
+ position: absolute;
340
+ width: 35px;
341
+ height: 100%;
342
+ line-height: 35px;
343
+ cursor: move;
344
+ color: #757575;
345
+ text-align: center;
346
+ border-right: solid 1px #e9e9e9;
347
+ }
348
+
349
+ /* line 280, sass/partials/_main_wrap.scss */
350
+
351
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
352
+ margin: 0;
353
+ padding: 0;
354
+ }
355
+
356
+ /* line 287, sass/partials/_main_wrap.scss */
357
+
358
+ .cmb-repeat-table + .cmb-add-row {
359
+ margin: 0;
360
+ }
361
+
362
+ /* line 290, sass/partials/_main_wrap.scss */
363
+
364
+ .cmb-repeat-table + .cmb-add-row:before {
365
+ content: '';
366
+ width: 1px;
367
+ height: 1.6em;
368
+ display: block;
369
+ margin-left: 17px;
370
+ background-color: gainsboro;
371
+ }
372
+
373
+ /* line 300, sass/partials/_main_wrap.scss */
374
+
375
+ .cmb-repeat-table .cmb-remove-row {
376
+ top: 7px;
377
+ right: 7px;
378
+ position: absolute;
379
+ width: auto;
380
+ margin-left: 0;
381
+ padding: 0 !important;
382
+ display: none;
383
+ }
384
+
385
+ /* line 311, sass/partials/_main_wrap.scss */
386
+
387
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
388
+ font-size: 20px;
389
+ text-indent: -1000px;
390
+ overflow: hidden;
391
+ position: relative;
392
+ height: auto;
393
+ line-height: 1;
394
+ padding: 0 10px 0;
395
+ }
396
+
397
+ /* line 322, sass/partials/_main_wrap.scss */
398
+
399
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
400
+ content: "";
401
+ font-family: 'Dashicons';
402
+ speak: none;
403
+ font-weight: normal;
404
+ font-variant: normal;
405
+ text-transform: none;
406
+ line-height: 1;
407
+ -webkit-font-smoothing: antialiased;
408
+ margin: 0;
409
+ text-indent: 0;
410
+ position: absolute;
411
+ top: 0;
412
+ left: 0;
413
+ width: 100%;
414
+ height: 100%;
415
+ text-align: center;
416
+ }
417
+
418
+ /* line 328, sass/partials/_main_wrap.scss */
419
+
420
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
421
+ display: block;
422
+ }
423
+
424
+ /* line 336, sass/partials/_main_wrap.scss */
425
+
426
+ .cmb-repeatable-group .cmb-th {
427
+ padding: 5px;
428
+ }
429
+
430
+ /* line 340, sass/partials/_main_wrap.scss */
431
+
432
+ .cmb-repeatable-group .cmb-group-title {
433
+ background-color: #e9e9e9;
434
+ padding: 8px 12px 8px 2.2em;
435
+ margin: 0 -1em;
436
+ min-height: 1.5em;
437
+ font-size: 14px;
438
+ line-height: 1.4;
439
+ }
440
+
441
+ /* line 348, sass/partials/_main_wrap.scss */
442
+
443
+ .cmb-repeatable-group .cmb-group-title h4 {
444
+ border: 0;
445
+ margin: 0;
446
+ font-size: 1.2em;
447
+ font-weight: 500;
448
+ padding: 0.5em 0.75em;
449
+ }
450
+
451
+ /* line 356, sass/partials/_main_wrap.scss */
452
+
453
+ .cmb-repeatable-group .cmb-group-title .cmb-th {
454
+ display: block;
455
+ width: 100%;
456
+ }
457
+
458
+ /* line 362, sass/partials/_main_wrap.scss */
459
+
460
+ .cmb-repeatable-group .cmb-group-description .cmb-th {
461
+ font-size: 1.2em;
462
+ display: block;
463
+ float: none;
464
+ padding-bottom: 1em;
465
+ text-align: left;
466
+ width: 100%;
467
+ }
468
+
469
+ /* line 27, sass/partials/_mixins.scss */
470
+
471
+ .cmb-repeatable-group .cmb-group-description .cmb-th label {
472
+ display: block;
473
+ margin-top: 0;
474
+ margin-bottom: 0.5em;
475
+ }
476
+
477
+ /* line 366, sass/partials/_main_wrap.scss */
478
+
479
+ .cmb-repeatable-group .cmb-shift-rows {
480
+ font-size: 1em;
481
+ margin-right: 1em;
482
+ text-decoration: none;
483
+ }
484
+
485
+ /* line 371, sass/partials/_main_wrap.scss */
486
+
487
+ .cmb-repeatable-group .cmb-shift-rows .dashicons {
488
+ font-size: 1.5em;
489
+ height: 1.5em;
490
+ line-height: 1.2em;
491
+ width: 1em;
492
+ }
493
+
494
+ /* line 377, sass/partials/_main_wrap.scss */
495
+
496
+ .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
497
+ line-height: 1.3em;
498
+ }
499
+
500
+ /* line 384, sass/partials/_main_wrap.scss */
501
+
502
+ .cmb-repeatable-group .cmb2-upload-button {
503
+ float: right;
504
+ }
505
+
506
+ /* line 390, sass/partials/_main_wrap.scss */
507
+
508
+ p.cmb2-metabox-description {
509
+ color: #757575;
510
+ font-style: italic;
511
+ margin: 0;
512
+ padding-top: .5em;
513
+ }
514
+
515
+ /* line 397, sass/partials/_main_wrap.scss */
516
+
517
+ span.cmb2-metabox-description {
518
+ color: #757575;
519
+ font-style: italic;
520
+ }
521
+
522
+ /* line 402, sass/partials/_main_wrap.scss */
523
+
524
+ .cmb2-metabox-title {
525
+ margin: 0 0 5px 0;
526
+ padding: 5px 0 0 0;
527
+ font-size: 14px;
528
+ }
529
+
530
+ /* line 408, sass/partials/_main_wrap.scss */
531
+
532
+ .cmb-inline ul {
533
+ padding: 4px 0 0 0;
534
+ }
535
+
536
+ /* line 412, sass/partials/_main_wrap.scss */
537
+
538
+ .cmb-inline li {
539
+ display: inline-block;
540
+ padding-right: 18px;
541
+ }
542
+
543
+ /* line 417, sass/partials/_main_wrap.scss */
544
+
545
+ .cmb-type-textarea-code pre {
546
+ margin: 0;
547
+ }
548
+
549
+ /* line 423, sass/partials/_main_wrap.scss */
550
+
551
+ .cmb2-media-status .img-status {
552
+ clear: none;
553
+ display: inline-block;
554
+ vertical-align: middle;
555
+ margin-right: 10px;
556
+ width: auto;
557
+ }
558
+
559
+ /* line 430, sass/partials/_main_wrap.scss */
560
+
561
+ .cmb2-media-status .img-status img {
562
+ max-width: 350px;
563
+ height: auto;
564
+ }
565
+
566
+ /* line 436, sass/partials/_main_wrap.scss */
567
+
568
+ .cmb2-media-status .img-status img,
569
+ .cmb2-media-status .embed-status {
570
+ background: #eee;
571
+ border: 5px solid #ffffff;
572
+ outline: 1px solid #e9e9e9;
573
+ box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.05);
574
+ background-image: linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0), linear-gradient(45deg, #d0d0d0 25%, transparent 25%, transparent 75%, #d0d0d0 75%, #d0d0d0);
575
+ background-position: 0 0, 10px 10px;
576
+ background-size: 20px 20px;
577
+ border-radius: 2px;
578
+ -moz-border-radius: 2px;
579
+ margin: 15px 0 0 0;
580
+ }
581
+
582
+ /* line 450, sass/partials/_main_wrap.scss */
583
+
584
+ .cmb2-media-status .embed-status {
585
+ float: left;
586
+ max-width: 800px;
587
+ }
588
+
589
+ /* line 455, sass/partials/_main_wrap.scss */
590
+
591
+ .cmb2-media-status .img-status,
592
+ .cmb2-media-status .embed-status {
593
+ position: relative;
594
+ }
595
+
596
+ /* line 458, sass/partials/_main_wrap.scss */
597
+
598
+ .cmb2-media-status .img-status .cmb2-remove-file-button,
599
+ .cmb2-media-status .embed-status .cmb2-remove-file-button {
600
+ background: url(../images/ico-delete.png);
601
+ height: 16px;
602
+ left: -5px;
603
+ position: absolute;
604
+ text-indent: -9999px;
605
+ top: -5px;
606
+ width: 16px;
607
+ }
608
+
609
+ /* line 472, sass/partials/_main_wrap.scss */
610
+
611
+ .cmb2-media-status .img-status .cmb2-remove-file-button {
612
+ top: 10px;
613
+ }
614
+
615
+ /* line 477, sass/partials/_main_wrap.scss */
616
+
617
+ .cmb2-media-status .img-status img,
618
+ .cmb2-media-status .file-status > span {
619
+ cursor: pointer;
620
+ }
621
+
622
+ /* line 482, sass/partials/_main_wrap.scss */
623
+
624
+ .cmb2-media-status.cmb-attach-list .img-status img,
625
+ .cmb2-media-status.cmb-attach-list .file-status > span {
626
+ cursor: move;
627
+ }
628
+
629
+ /* line 489, sass/partials/_main_wrap.scss */
630
+
631
+ .cmb-type-file-list .cmb2-media-status .img-status {
632
+ clear: none;
633
+ vertical-align: middle;
634
+ width: auto;
635
+ margin-right: 10px;
636
+ margin-bottom: 10px;
637
+ margin-top: 0;
638
+ }
639
+
640
+ /* line 498, sass/partials/_main_wrap.scss */
641
+
642
+ .cmb-attach-list li {
643
+ clear: both;
644
+ display: inline-block;
645
+ width: 100%;
646
+ margin-top: 5px;
647
+ margin-bottom: 10px;
648
+ }
649
+
650
+ /* line 504, sass/partials/_main_wrap.scss */
651
+
652
+ .cmb-attach-list li img {
653
+ float: left;
654
+ margin-right: 10px;
655
+ }
656
+
657
+ /* line 510, sass/partials/_main_wrap.scss */
658
+
659
+ .cmb2-remove-wrapper {
660
+ margin: 0;
661
+ }
662
+
663
+ /* line 514, sass/partials/_main_wrap.scss */
664
+
665
+ .child-cmb2 .cmb-th {
666
+ text-align: left;
667
+ }
668
+
669
+ /* line 518, sass/partials/_main_wrap.scss */
670
+
671
+ .cmb2-indented-hierarchy {
672
+ padding-left: 1.5em;
673
+ }
674
+
675
+ /*--------------------------------------------------------------
676
+ * Post Metaboxes
677
+ --------------------------------------------------------------*/
678
+
679
+ /* line 5, sass/partials/_post_metaboxes.scss */
680
+
681
+ #poststuff .cmb-group-title {
682
+ margin-left: -1em;
683
+ margin-right: -1em;
684
+ min-height: 1.5em;
685
+ }
686
+
687
+ /* line 11, sass/partials/_post_metaboxes.scss */
688
+
689
+ #poststuff .repeatable .cmb-group-title {
690
+ padding-left: 2.2em;
691
+ }
692
+
693
+ /* line 17, sass/partials/_post_metaboxes.scss */
694
+
695
+ .cmb2-postbox .cmb2-wrap,
696
+ .cmb-type-group .cmb2-wrap {
697
+ margin: 0;
698
+ }
699
+
700
+ /* line 20, sass/partials/_post_metaboxes.scss */
701
+
702
+ .cmb2-postbox .cmb2-wrap > .cmb-field-list > .cmb-row,
703
+ .cmb-type-group .cmb2-wrap > .cmb-field-list > .cmb-row {
704
+ padding: 1.8em 0;
705
+ }
706
+
707
+ /* line 26, sass/partials/_post_metaboxes.scss */
708
+
709
+ .cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed,
710
+ .cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed {
711
+ width: 100%;
712
+ }
713
+
714
+ /* line 32, sass/partials/_post_metaboxes.scss */
715
+
716
+ .cmb2-postbox .cmb-row,
717
+ .cmb-type-group .cmb-row {
718
+ padding: 0 0 1.8em;
719
+ margin: 0 0 0.8em;
720
+ }
721
+
722
+ /* line 36, sass/partials/_post_metaboxes.scss */
723
+
724
+ .cmb2-postbox .cmb-row .cmbhandle,
725
+ .cmb-type-group .cmb-row .cmbhandle {
726
+ right: -1em;
727
+ position: relative;
728
+ color: #222222;
729
+ }
730
+
731
+ /* line 43, sass/partials/_post_metaboxes.scss */
732
+
733
+ .cmb2-postbox .cmb-repeatable-grouping,
734
+ .cmb-type-group .cmb-repeatable-grouping {
735
+ padding: 0 1em;
736
+ max-width: 100%;
737
+ min-width: 1px !important;
738
+ }
739
+
740
+ /* line 49, sass/partials/_post_metaboxes.scss */
741
+
742
+ .cmb2-postbox .cmb-repeatable-group > .cmb-row,
743
+ .cmb-type-group .cmb-repeatable-group > .cmb-row {
744
+ padding-bottom: 0;
745
+ }
746
+
747
+ /* line 53, sass/partials/_post_metaboxes.scss */
748
+
749
+ .cmb2-postbox .cmb-th,
750
+ .cmb-type-group .cmb-th {
751
+ width: 18%;
752
+ padding: 0 2% 0 0;
753
+ }
754
+
755
+ /* line 59, sass/partials/_post_metaboxes.scss */
756
+
757
+ .cmb2-postbox .cmb-td,
758
+ .cmb-type-group .cmb-td {
759
+ margin-bottom: 0;
760
+ padding: 0;
761
+ line-height: 1.3;
762
+ }
763
+
764
+ /* line 65, sass/partials/_post_metaboxes.scss */
765
+
766
+ .cmb2-postbox .cmb-th + .cmb-td,
767
+ .cmb-type-group .cmb-th + .cmb-td {
768
+ width: 80%;
769
+ float: right;
770
+ }
771
+
772
+ /* line 70, sass/partials/_post_metaboxes.scss */
773
+
774
+ .cmb2-postbox .cmb-row:not(:last-of-type),
775
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
776
+ .cmb-type-group .cmb-row:not(:last-of-type),
777
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
778
+ border-bottom: 1px solid #e9e9e9;
779
+ }
780
+
781
+ /* line 79, sass/partials/_post_metaboxes.scss */
782
+
783
+ .cmb2-postbox .cmb-repeat-group-field,
784
+ .cmb2-postbox .cmb-remove-field-row,
785
+ .cmb-type-group .cmb-repeat-group-field,
786
+ .cmb-type-group .cmb-remove-field-row {
787
+ padding-top: 1.8em;
788
+ }
789
+
790
+ /*--------------------------------------------------------------
791
+ * Context Metaboxes
792
+ --------------------------------------------------------------*/
793
+
794
+ /* Metabox collapse arrow indicators */
795
+
796
+ /* line 9, sass/partials/_context_metaboxes.scss */
797
+
798
+ .js .cmb2-postbox.context-box .toggle-indicator:before {
799
+ content: "\f142";
800
+ display: inline-block;
801
+ font: normal 20px/1 dashicons;
802
+ speak: none;
803
+ -webkit-font-smoothing: antialiased;
804
+ -moz-osx-font-smoothing: grayscale;
805
+ text-decoration: none !important;
806
+ }
807
+
808
+ /* line 22, sass/partials/_context_metaboxes.scss */
809
+
810
+ .js .cmb2-postbox.context-box.closed .toggle-indicator:before {
811
+ content: "\f140";
812
+ }
813
+
814
+ /* line 30, sass/partials/_context_metaboxes.scss */
815
+
816
+ .cmb2-postbox.context-box {
817
+ margin-bottom: 10px;
818
+ }
819
+
820
+ /* line 34, sass/partials/_context_metaboxes.scss */
821
+
822
+ .cmb2-postbox.context-box.context-before_permalink-box {
823
+ margin-top: 10px;
824
+ }
825
+
826
+ /* line 38, sass/partials/_context_metaboxes.scss */
827
+
828
+ .cmb2-postbox.context-box.context-after_title-box {
829
+ margin-top: 10px;
830
+ }
831
+
832
+ /* line 42, sass/partials/_context_metaboxes.scss */
833
+
834
+ .cmb2-postbox.context-box.context-after_editor-box {
835
+ margin-top: 20px;
836
+ margin-bottom: 0;
837
+ }
838
+
839
+ /* line 47, sass/partials/_context_metaboxes.scss */
840
+
841
+ .cmb2-postbox.context-box.context-form_top-box {
842
+ margin-top: 10px;
843
+ }
844
+
845
+ /* line 51, sass/partials/_context_metaboxes.scss */
846
+
847
+ .cmb2-postbox.context-box.context-form_top-box .hndle {
848
+ font-size: 14px;
849
+ padding: 8px 12px;
850
+ margin: 0;
851
+ line-height: 1.4;
852
+ }
853
+
854
+ /* line 59, sass/partials/_context_metaboxes.scss */
855
+
856
+ .cmb2-postbox.context-box .hndle {
857
+ cursor: auto;
858
+ }
859
+
860
+ /* line 64, sass/partials/_context_metaboxes.scss */
861
+
862
+ .cmb2-context-wrap {
863
+ margin-top: 10px;
864
+ }
865
+
866
+ /* line 68, sass/partials/_context_metaboxes.scss */
867
+
868
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
869
+ margin-right: 300px;
870
+ width: auto;
871
+ }
872
+
873
+ /* line 75, sass/partials/_context_metaboxes.scss */
874
+
875
+ .cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox {
876
+ padding: 10px;
877
+ }
878
+
879
+ /* line 80, sass/partials/_context_metaboxes.scss */
880
+
881
+ .cmb2-context-wrap .cmb-th {
882
+ padding: 0 2% 0 0;
883
+ width: 18%;
884
+ }
885
+
886
+ /* line 85, sass/partials/_context_metaboxes.scss */
887
+
888
+ .cmb2-context-wrap .cmb-td {
889
+ width: 80%;
890
+ padding: 0;
891
+ }
892
+
893
+ /* line 90, sass/partials/_context_metaboxes.scss */
894
+
895
+ .cmb2-context-wrap .cmb-row {
896
+ margin-bottom: 10px;
897
+ }
898
+
899
+ /* line 93, sass/partials/_context_metaboxes.scss */
900
+
901
+ .cmb2-context-wrap .cmb-row:last-of-type {
902
+ margin-bottom: 0;
903
+ }
904
+
905
+ /* one column on the post write/edit screen */
906
+
907
+ /*--------------------------------------------------------------
908
+ * Options page
909
+ --------------------------------------------------------------*/
910
+
911
+ /* line 5, sass/partials/_options-page.scss */
912
+
913
+ .cmb2-options-page {
914
+ max-width: 1200px;
915
+ }
916
+
917
+ /* line 8, sass/partials/_options-page.scss */
918
+
919
+ .cmb2-options-page.wrap > h2 {
920
+ margin-bottom: 1em;
921
+ }
922
+
923
+ /* line 12, sass/partials/_options-page.scss */
924
+
925
+ .cmb2-options-page .cmb2-metabox > .cmb-row {
926
+ padding: 1em;
927
+ margin-top: -1px;
928
+ background: #ffffff;
929
+ border: 1px solid #e9e9e9;
930
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
931
+ }
932
+
933
+ /* line 19, sass/partials/_options-page.scss */
934
+
935
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th {
936
+ padding: 0;
937
+ font-weight: initial;
938
+ }
939
+
940
+ /* line 24, sass/partials/_options-page.scss */
941
+
942
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
943
+ float: none;
944
+ padding: 0 0 0 1em;
945
+ margin-left: 200px;
946
+ }
947
+
948
+ /* line 37, sass/partials/_options-page.scss */
949
+
950
+ .cmb2-options-page .cmb2-wrap .cmb-type-title {
951
+ margin-top: 1em;
952
+ padding: 0.6em 1em;
953
+ background-color: #fafafa;
954
+ }
955
+
956
+ /* line 42, sass/partials/_options-page.scss */
957
+
958
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title {
959
+ font-size: 12px;
960
+ margin-top: 0;
961
+ margin-bottom: 0;
962
+ text-transform: uppercase;
963
+ }
964
+
965
+ /* line 49, sass/partials/_options-page.scss */
966
+
967
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description {
968
+ padding-top: 0.25em;
969
+ }
970
+
971
+ /* line 55, sass/partials/_options-page.scss */
972
+
973
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th {
974
+ padding: 0 0 0.8em 0;
975
+ }
976
+
977
+ /* line 59, sass/partials/_options-page.scss */
978
+
979
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-name {
980
+ font-size: 16px;
981
+ margin-top: 0;
982
+ margin-bottom: 0;
983
+ }
984
+
985
+ /* line 65, sass/partials/_options-page.scss */
986
+
987
+ .cmb2-options-page .cmb-repeatable-group .cmb-th > .cmb2-metabox-description {
988
+ font-weight: 400;
989
+ padding-bottom: 0 !important;
990
+ }
991
+
992
+ /*--------------------------------------------------------------
993
+ * New-Term Page
994
+ --------------------------------------------------------------*/
995
+
996
+ /* line 6, sass/partials/_new_term.scss */
997
+
998
+ #addtag .cmb-th {
999
+ float: none;
1000
+ width: auto;
1001
+ padding: 20px 0 0;
1002
+ }
1003
+
1004
+ /* line 12, sass/partials/_new_term.scss */
1005
+
1006
+ #addtag .cmb-td {
1007
+ padding: 0;
1008
+ }
1009
+
1010
+ /* line 16, sass/partials/_new_term.scss */
1011
+
1012
+ #addtag .cmb-th + .cmb-td {
1013
+ float: none;
1014
+ }
1015
+
1016
+ /* line 20, sass/partials/_new_term.scss */
1017
+
1018
+ #addtag select {
1019
+ max-width: 100%;
1020
+ }
1021
+
1022
+ /* line 24, sass/partials/_new_term.scss */
1023
+
1024
+ #addtag .cmb2-metabox {
1025
+ padding-bottom: 20px;
1026
+ }
1027
+
1028
+ /* line 28, sass/partials/_new_term.scss */
1029
+
1030
+ #addtag .cmb-row li label {
1031
+ display: inline;
1032
+ }
1033
+
1034
+ /*--------------------------------------------------------------
1035
+ * Misc.
1036
+ --------------------------------------------------------------*/
1037
+
1038
+ /* line 5, sass/partials/_misc.scss */
1039
+
1040
+ #poststuff .cmb-repeatable-group h2 {
1041
+ margin: 0;
1042
+ }
1043
+
1044
+ /* line 12, sass/partials/_misc.scss */
1045
+
1046
+ .edit-tags-php .cmb2-metabox-title,
1047
+ .profile-php .cmb2-metabox-title,
1048
+ .user-edit-php .cmb2-metabox-title {
1049
+ font-size: 1.4em;
1050
+ }
1051
+
1052
+ /* line 18, sass/partials/_misc.scss */
1053
+
1054
+ .cmb2-postbox .cmb-spinner,
1055
+ .cmb2-no-box-wrap .cmb-spinner {
1056
+ float: left;
1057
+ display: none;
1058
+ }
1059
+
1060
+ /* line 24, sass/partials/_misc.scss */
1061
+
1062
+ .cmb-spinner {
1063
+ display: none;
1064
+ }
1065
+
1066
+ /* line 26, sass/partials/_misc.scss */
1067
+
1068
+ .cmb-spinner.is-active {
1069
+ display: block;
1070
+ }
1071
+
1072
+ /*--------------------------------------------------------------
1073
+ * Sidebar Placement Adjustments
1074
+ --------------------------------------------------------------*/
1075
+
1076
+ /* line 10, sass/partials/_sidebar_placements.scss */
1077
+
1078
+ .inner-sidebar .cmb2-wrap > .cmb-field-list > .cmb-row,
1079
+ #side-sortables .cmb2-wrap > .cmb-field-list > .cmb-row {
1080
+ padding: 1.4em 0;
1081
+ }
1082
+
1083
+ /* line 16, sass/partials/_sidebar_placements.scss */
1084
+
1085
+ .inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker),
1086
+ #side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker) {
1087
+ width: 100%;
1088
+ }
1089
+
1090
+ /* line 20, sass/partials/_sidebar_placements.scss */
1091
+
1092
+ .inner-sidebar .cmb2-wrap input + input:not(.wp-picker-clear),
1093
+ .inner-sidebar .cmb2-wrap input + select,
1094
+ #side-sortables .cmb2-wrap input + input:not(.wp-picker-clear),
1095
+ #side-sortables .cmb2-wrap input + select {
1096
+ margin-left: 0;
1097
+ margin-top: 1em;
1098
+ display: block;
1099
+ }
1100
+
1101
+ /* line 26, sass/partials/_sidebar_placements.scss */
1102
+
1103
+ .inner-sidebar .cmb2-wrap input.cmb2-text-money,
1104
+ #side-sortables .cmb2-wrap input.cmb2-text-money {
1105
+ max-width: 70%;
1106
+ }
1107
+
1108
+ /* line 28, sass/partials/_sidebar_placements.scss */
1109
+
1110
+ .inner-sidebar .cmb2-wrap input.cmb2-text-money + .cmb2-metabox-description,
1111
+ #side-sortables .cmb2-wrap input.cmb2-text-money + .cmb2-metabox-description {
1112
+ display: block;
1113
+ }
1114
+
1115
+ /* line 34, sass/partials/_sidebar_placements.scss */
1116
+
1117
+ .inner-sidebar .cmb2-wrap label,
1118
+ #side-sortables .cmb2-wrap label {
1119
+ display: block;
1120
+ font-weight: 700;
1121
+ padding: 0 0 5px;
1122
+ }
1123
+
1124
+ /* line 42, sass/partials/_sidebar_placements.scss */
1125
+
1126
+ .inner-sidebar textarea,
1127
+ #side-sortables textarea {
1128
+ max-width: 99%;
1129
+ }
1130
+
1131
+ /* line 46, sass/partials/_sidebar_placements.scss */
1132
+
1133
+ .inner-sidebar .cmb-repeatable-group,
1134
+ #side-sortables .cmb-repeatable-group {
1135
+ border-bottom: 1px solid #e9e9e9;
1136
+ }
1137
+
1138
+ /* line 50, sass/partials/_sidebar_placements.scss */
1139
+
1140
+ .inner-sidebar .cmb-type-group > .cmb-td > .cmb-repeatable-group,
1141
+ #side-sortables .cmb-type-group > .cmb-td > .cmb-repeatable-group {
1142
+ border-bottom: 0;
1143
+ margin-bottom: -1.4em;
1144
+ }
1145
+
1146
+ /* line 55, sass/partials/_sidebar_placements.scss */
1147
+
1148
+ .inner-sidebar .cmb-th,
1149
+ .inner-sidebar .cmb-td:not(.cmb-remove-row),
1150
+ .inner-sidebar .cmb-th + .cmb-td,
1151
+ #side-sortables .cmb-th,
1152
+ #side-sortables .cmb-td:not(.cmb-remove-row),
1153
+ #side-sortables .cmb-th + .cmb-td {
1154
+ width: 100%;
1155
+ display: block;
1156
+ float: none;
1157
+ }
1158
+
1159
+ /* line 63, sass/partials/_sidebar_placements.scss */
1160
+
1161
+ .inner-sidebar .closed .inside,
1162
+ #side-sortables .closed .inside {
1163
+ display: none;
1164
+ }
1165
+
1166
+ /* line 67, sass/partials/_sidebar_placements.scss */
1167
+
1168
+ .inner-sidebar .cmb-th,
1169
+ #side-sortables .cmb-th {
1170
+ display: block;
1171
+ float: none;
1172
+ padding-bottom: 1em;
1173
+ text-align: left;
1174
+ width: 100%;
1175
+ padding-left: 0;
1176
+ padding-right: 0;
1177
+ }
1178
+
1179
+ /* line 27, sass/partials/_mixins.scss */
1180
+
1181
+ .inner-sidebar .cmb-th label,
1182
+ #side-sortables .cmb-th label {
1183
+ display: block;
1184
+ margin-top: 0;
1185
+ margin-bottom: 0.5em;
1186
+ }
1187
+
1188
+ /* line 14, sass/partials/_mixins.scss */
1189
+
1190
+ .inner-sidebar .cmb-th label,
1191
+ #side-sortables .cmb-th label {
1192
+ font-size: 14px;
1193
+ line-height: 1.4em;
1194
+ }
1195
+
1196
+ /* line 74, sass/partials/_sidebar_placements.scss */
1197
+
1198
+ .inner-sidebar .cmb-group-description .cmb-th,
1199
+ #side-sortables .cmb-group-description .cmb-th {
1200
+ padding-top: 0;
1201
+ }
1202
+
1203
+ /* line 77, sass/partials/_sidebar_placements.scss */
1204
+
1205
+ .inner-sidebar .cmb-group-description .cmb2-metabox-description,
1206
+ #side-sortables .cmb-group-description .cmb2-metabox-description {
1207
+ padding: 0;
1208
+ }
1209
+
1210
+ /* line 84, sass/partials/_sidebar_placements.scss */
1211
+
1212
+ .inner-sidebar .cmb-group-title .cmb-th,
1213
+ #side-sortables .cmb-group-title .cmb-th {
1214
+ padding: 0;
1215
+ }
1216
+
1217
+ /* line 90, sass/partials/_sidebar_placements.scss */
1218
+
1219
+ .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
1220
+ #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
1221
+ margin-top: 1em;
1222
+ }
1223
+
1224
+ /* line 99, sass/partials/_sidebar_placements.scss */
1225
+
1226
+ .inner-sidebar .cmb2-media-status .img-status img,
1227
+ .inner-sidebar .cmb2-media-status .embed-status img,
1228
+ #side-sortables .cmb2-media-status .img-status img,
1229
+ #side-sortables .cmb2-media-status .embed-status img {
1230
+ max-width: 90%;
1231
+ height: auto;
1232
+ }
1233
+
1234
+ /* line 107, sass/partials/_sidebar_placements.scss */
1235
+
1236
+ .inner-sidebar .cmb2-list label,
1237
+ #side-sortables .cmb2-list label {
1238
+ display: inline;
1239
+ font-weight: normal;
1240
+ }
1241
+
1242
+ /* line 112, sass/partials/_sidebar_placements.scss */
1243
+
1244
+ .inner-sidebar .cmb2-metabox-description,
1245
+ #side-sortables .cmb2-metabox-description {
1246
+ display: block;
1247
+ padding: 7px 0 0;
1248
+ }
1249
+
1250
+ /* line 119, sass/partials/_sidebar_placements.scss */
1251
+
1252
+ .inner-sidebar .cmb-type-checkbox .cmb-td label,
1253
+ .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
1254
+ #side-sortables .cmb-type-checkbox .cmb-td label,
1255
+ #side-sortables .cmb-type-checkbox .cmb2-metabox-description {
1256
+ font-weight: normal;
1257
+ display: inline;
1258
+ }
1259
+
1260
+ /* line 126, sass/partials/_sidebar_placements.scss */
1261
+
1262
+ .inner-sidebar .cmb-row .cmb2-metabox-description,
1263
+ #side-sortables .cmb-row .cmb2-metabox-description {
1264
+ padding-bottom: 1.8em;
1265
+ }
1266
+
1267
+ /* line 130, sass/partials/_sidebar_placements.scss */
1268
+
1269
+ .inner-sidebar .cmb2-metabox-title,
1270
+ #side-sortables .cmb2-metabox-title {
1271
+ font-size: 1.2em;
1272
+ font-style: italic;
1273
+ }
1274
+
1275
+ /* line 135, sass/partials/_sidebar_placements.scss */
1276
+
1277
+ .inner-sidebar .cmb-remove-row,
1278
+ #side-sortables .cmb-remove-row {
1279
+ clear: both;
1280
+ padding-top: 12px;
1281
+ padding-bottom: 0;
1282
+ }
1283
+
1284
+ /* line 141, sass/partials/_sidebar_placements.scss */
1285
+
1286
+ .inner-sidebar .cmb2-upload-button,
1287
+ #side-sortables .cmb2-upload-button {
1288
+ clear: both;
1289
+ margin-top: 12px;
1290
+ }
1291
+
1292
+ /*--------------------------------------------------------------
1293
+ * Collapsible UI
1294
+ --------------------------------------------------------------*/
1295
+
1296
+ /* line 6, sass/partials/_collapsible_ui.scss */
1297
+
1298
+ .cmb2-metabox .cmbhandle {
1299
+ color: #757575;
1300
+ float: right;
1301
+ width: 27px;
1302
+ height: 30px;
1303
+ cursor: pointer;
1304
+ right: -1em;
1305
+ position: relative;
1306
+ }
1307
+
1308
+ /* line 14, sass/partials/_collapsible_ui.scss */
1309
+
1310
+ .cmb2-metabox .cmbhandle:before {
1311
+ content: '\f142';
1312
+ right: 12px;
1313
+ font: normal 20px/1 'dashicons';
1314
+ speak: none;
1315
+ display: inline-block;
1316
+ padding: 8px 10px;
1317
+ top: 0;
1318
+ position: relative;
1319
+ -webkit-font-smoothing: antialiased;
1320
+ -moz-osx-font-smoothing: grayscale;
1321
+ text-decoration: none !important;
1322
+ }
1323
+
1324
+ /* line 31, sass/partials/_collapsible_ui.scss */
1325
+
1326
+ .cmb2-metabox .postbox.closed .cmbhandle:before {
1327
+ content: '\f140';
1328
+ }
1329
+
1330
+ /* line 37, sass/partials/_collapsible_ui.scss */
1331
+
1332
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1333
+ -webkit-appearance: none !important;
1334
+ background: none !important;
1335
+ border: none !important;
1336
+ position: absolute;
1337
+ left: 0;
1338
+ top: .5em;
1339
+ line-height: 1em;
1340
+ padding: 2px 6px 3px;
1341
+ opacity: .5;
1342
+ }
1343
+
1344
+ /* line 47, sass/partials/_collapsible_ui.scss */
1345
+
1346
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1347
+ cursor: pointer;
1348
+ color: #a00;
1349
+ opacity: 1;
1350
+ }
1351
+
1352
+ /* line 51, sass/partials/_collapsible_ui.scss */
1353
+
1354
+ .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1355
+ color: #f00;
1356
+ }
1357
+
1358
+ /*
1359
+ * jQuery UI CSS Framework 1.8.16
1360
+ *
1361
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
1362
+ * Dual licensed under the MIT or GPL Version 2 licenses.
1363
+ * http://jquery.org/license
1364
+ *
1365
+ * http://docs.jquery.com/UI/Theming/API
1366
+ *
1367
+ * WordPress Styles adopted from "jQuery UI Datepicker CSS for WordPress"
1368
+ * https://github.com/stuttter/wp-datepicker-styling
1369
+ *
1370
+ */
1371
+
1372
+ /* line 15, sass/partials/_jquery_ui.scss */
1373
+
1374
+ * html .cmb2-element.ui-helper-clearfix {
1375
+ height: 1%;
1376
+ }
1377
+
1378
+ /* line 24, sass/partials/_jquery_ui.scss */
1379
+
1380
+ .cmb2-element.ui-datepicker,
1381
+ .cmb2-element .ui-datepicker {
1382
+ padding: 0;
1383
+ margin: 0;
1384
+ -webkit-border-radius: 0;
1385
+ -moz-border-radius: 0;
1386
+ border-radius: 0;
1387
+ background-color: #fff;
1388
+ border: 1px solid #dfdfdf;
1389
+ border-top: none;
1390
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
1391
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
1392
+ min-width: 17em;
1393
+ width: auto; /* Default Color Scheme */
1394
+ }
1395
+
1396
+ /* line 38, sass/partials/_jquery_ui.scss */
1397
+
1398
+ .cmb2-element.ui-datepicker *,
1399
+ .cmb2-element .ui-datepicker * {
1400
+ padding: 0;
1401
+ font-family: "Open Sans", sans-serif;
1402
+ -webkit-border-radius: 0;
1403
+ -moz-border-radius: 0;
1404
+ border-radius: 0;
1405
+ }
1406
+
1407
+ /* line 46, sass/partials/_jquery_ui.scss */
1408
+
1409
+ .cmb2-element.ui-datepicker table,
1410
+ .cmb2-element .ui-datepicker table {
1411
+ font-size: 13px;
1412
+ margin: 0;
1413
+ border: none;
1414
+ border-collapse: collapse;
1415
+ }
1416
+
1417
+ /* line 53, sass/partials/_jquery_ui.scss */
1418
+
1419
+ .cmb2-element.ui-datepicker .ui-widget-header,
1420
+ .cmb2-element.ui-datepicker .ui-datepicker-header,
1421
+ .cmb2-element .ui-datepicker .ui-widget-header,
1422
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
1423
+ background-image: none;
1424
+ border: none;
1425
+ color: #fff;
1426
+ font-weight: normal;
1427
+ }
1428
+
1429
+ /* line 61, sass/partials/_jquery_ui.scss */
1430
+
1431
+ .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,
1432
+ .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
1433
+ background: transparent;
1434
+ border-color: transparent;
1435
+ cursor: pointer;
1436
+ }
1437
+
1438
+ /* line 67, sass/partials/_jquery_ui.scss */
1439
+
1440
+ .cmb2-element.ui-datepicker .ui-datepicker-title,
1441
+ .cmb2-element .ui-datepicker .ui-datepicker-title {
1442
+ margin: 0;
1443
+ padding: 10px 0;
1444
+ color: #fff;
1445
+ font-size: 14px;
1446
+ line-height: 14px;
1447
+ text-align: center;
1448
+ }
1449
+
1450
+ /* line 75, sass/partials/_jquery_ui.scss */
1451
+
1452
+ .cmb2-element.ui-datepicker .ui-datepicker-title select,
1453
+ .cmb2-element .ui-datepicker .ui-datepicker-title select {
1454
+ margin-top: -8px;
1455
+ margin-bottom: -8px;
1456
+ }
1457
+
1458
+ /* line 81, sass/partials/_jquery_ui.scss */
1459
+
1460
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
1461
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
1462
+ .cmb2-element .ui-datepicker .ui-datepicker-prev,
1463
+ .cmb2-element .ui-datepicker .ui-datepicker-next {
1464
+ position: relative;
1465
+ top: 0;
1466
+ height: 34px;
1467
+ width: 34px;
1468
+ }
1469
+
1470
+ /* line 89, sass/partials/_jquery_ui.scss */
1471
+
1472
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev,
1473
+ .cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,
1474
+ .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,
1475
+ .cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next {
1476
+ border: none;
1477
+ }
1478
+
1479
+ /* line 94, sass/partials/_jquery_ui.scss */
1480
+
1481
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
1482
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover,
1483
+ .cmb2-element .ui-datepicker .ui-datepicker-prev,
1484
+ .cmb2-element .ui-datepicker .ui-datepicker-prev-hover {
1485
+ left: 0;
1486
+ }
1487
+
1488
+ /* line 99, sass/partials/_jquery_ui.scss */
1489
+
1490
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
1491
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover,
1492
+ .cmb2-element .ui-datepicker .ui-datepicker-next,
1493
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover {
1494
+ right: 0;
1495
+ }
1496
+
1497
+ /* line 104, sass/partials/_jquery_ui.scss */
1498
+
1499
+ .cmb2-element.ui-datepicker .ui-datepicker-next span,
1500
+ .cmb2-element.ui-datepicker .ui-datepicker-prev span,
1501
+ .cmb2-element .ui-datepicker .ui-datepicker-next span,
1502
+ .cmb2-element .ui-datepicker .ui-datepicker-prev span {
1503
+ display: none;
1504
+ }
1505
+
1506
+ /* line 109, sass/partials/_jquery_ui.scss */
1507
+
1508
+ .cmb2-element.ui-datepicker .ui-datepicker-prev,
1509
+ .cmb2-element .ui-datepicker .ui-datepicker-prev {
1510
+ float: left;
1511
+ }
1512
+
1513
+ /* line 113, sass/partials/_jquery_ui.scss */
1514
+
1515
+ .cmb2-element.ui-datepicker .ui-datepicker-next,
1516
+ .cmb2-element .ui-datepicker .ui-datepicker-next {
1517
+ float: right;
1518
+ }
1519
+
1520
+ /* line 117, sass/partials/_jquery_ui.scss */
1521
+
1522
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1523
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before,
1524
+ .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
1525
+ .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1526
+ font: normal 20px/34px 'dashicons';
1527
+ padding-left: 7px;
1528
+ color: #fff;
1529
+ speak: none;
1530
+ -webkit-font-smoothing: antialiased;
1531
+ -moz-osx-font-smoothing: grayscale;
1532
+ width: 34px;
1533
+ height: 34px;
1534
+ }
1535
+
1536
+ /* line 129, sass/partials/_jquery_ui.scss */
1537
+
1538
+ .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1539
+ .cmb2-element .ui-datepicker .ui-datepicker-prev:before {
1540
+ content: '\f341';
1541
+ }
1542
+
1543
+ /* line 133, sass/partials/_jquery_ui.scss */
1544
+
1545
+ .cmb2-element.ui-datepicker .ui-datepicker-next:before,
1546
+ .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1547
+ content: '\f345';
1548
+ }
1549
+
1550
+ /* line 137, sass/partials/_jquery_ui.scss */
1551
+
1552
+ .cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before,
1553
+ .cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,
1554
+ .cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,
1555
+ .cmb2-element .ui-datepicker .ui-datepicker-next-hover:before {
1556
+ opacity: 0.7;
1557
+ }
1558
+
1559
+ /* line 142, sass/partials/_jquery_ui.scss */
1560
+
1561
+ .cmb2-element.ui-datepicker select.ui-datepicker-month,
1562
+ .cmb2-element.ui-datepicker select.ui-datepicker-year,
1563
+ .cmb2-element .ui-datepicker select.ui-datepicker-month,
1564
+ .cmb2-element .ui-datepicker select.ui-datepicker-year {
1565
+ width: 33%;
1566
+ background: transparent;
1567
+ border-color: transparent;
1568
+ box-shadow: none;
1569
+ color: #fff;
1570
+ }
1571
+
1572
+ /* line 149, sass/partials/_jquery_ui.scss */
1573
+
1574
+ .cmb2-element.ui-datepicker select.ui-datepicker-month option,
1575
+ .cmb2-element.ui-datepicker select.ui-datepicker-year option,
1576
+ .cmb2-element .ui-datepicker select.ui-datepicker-month option,
1577
+ .cmb2-element .ui-datepicker select.ui-datepicker-year option {
1578
+ color: #333;
1579
+ }
1580
+
1581
+ /* line 154, sass/partials/_jquery_ui.scss */
1582
+
1583
+ .cmb2-element.ui-datepicker thead,
1584
+ .cmb2-element .ui-datepicker thead {
1585
+ color: #fff;
1586
+ font-weight: 600;
1587
+ }
1588
+
1589
+ /* line 157, sass/partials/_jquery_ui.scss */
1590
+
1591
+ .cmb2-element.ui-datepicker thead th,
1592
+ .cmb2-element .ui-datepicker thead th {
1593
+ font-weight: normal;
1594
+ }
1595
+
1596
+ /* line 162, sass/partials/_jquery_ui.scss */
1597
+
1598
+ .cmb2-element.ui-datepicker th,
1599
+ .cmb2-element .ui-datepicker th {
1600
+ padding: 10px;
1601
+ }
1602
+
1603
+ /* line 166, sass/partials/_jquery_ui.scss */
1604
+
1605
+ .cmb2-element.ui-datepicker td,
1606
+ .cmb2-element .ui-datepicker td {
1607
+ padding: 0;
1608
+ border: 1px solid #f4f4f4;
1609
+ }
1610
+
1611
+ /* line 171, sass/partials/_jquery_ui.scss */
1612
+
1613
+ .cmb2-element.ui-datepicker td.ui-datepicker-other-month,
1614
+ .cmb2-element .ui-datepicker td.ui-datepicker-other-month {
1615
+ border: transparent;
1616
+ }
1617
+
1618
+ /* line 175, sass/partials/_jquery_ui.scss */
1619
+
1620
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end,
1621
+ .cmb2-element .ui-datepicker td.ui-datepicker-week-end {
1622
+ background-color: #f4f4f4;
1623
+ border: 1px solid #f4f4f4;
1624
+ }
1625
+
1626
+ /* line 178, sass/partials/_jquery_ui.scss */
1627
+
1628
+ .cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,
1629
+ .cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today {
1630
+ -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1631
+ -moz-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1632
+ box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
1633
+ }
1634
+
1635
+ /* line 185, sass/partials/_jquery_ui.scss */
1636
+
1637
+ .cmb2-element.ui-datepicker td.ui-datepicker-today,
1638
+ .cmb2-element .ui-datepicker td.ui-datepicker-today {
1639
+ background-color: #f0f0c0;
1640
+ }
1641
+
1642
+ /* line 189, sass/partials/_jquery_ui.scss */
1643
+
1644
+ .cmb2-element.ui-datepicker td.ui-datepicker-current-day,
1645
+ .cmb2-element .ui-datepicker td.ui-datepicker-current-day {
1646
+ background: #bbdd88;
1647
+ }
1648
+
1649
+ /* line 193, sass/partials/_jquery_ui.scss */
1650
+
1651
+ .cmb2-element.ui-datepicker td .ui-state-default,
1652
+ .cmb2-element .ui-datepicker td .ui-state-default {
1653
+ background: transparent;
1654
+ border: none;
1655
+ text-align: center;
1656
+ text-decoration: none;
1657
+ width: auto;
1658
+ display: block;
1659
+ padding: 5px 10px;
1660
+ font-weight: normal;
1661
+ color: #444;
1662
+ }
1663
+
1664
+ /* line 205, sass/partials/_jquery_ui.scss */
1665
+
1666
+ .cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default,
1667
+ .cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default {
1668
+ opacity: 0.5;
1669
+ }
1670
+
1671
+ /* line 210, sass/partials/_jquery_ui.scss */
1672
+
1673
+ .cmb2-element.ui-datepicker .ui-widget-header,
1674
+ .cmb2-element.ui-datepicker .ui-datepicker-header,
1675
+ .cmb2-element .ui-datepicker .ui-widget-header,
1676
+ .cmb2-element .ui-datepicker .ui-datepicker-header {
1677
+ background: #00a0d2;
1678
+ }
1679
+
1680
+ /* line 215, sass/partials/_jquery_ui.scss */
1681
+
1682
+ .cmb2-element.ui-datepicker thead,
1683
+ .cmb2-element .ui-datepicker thead {
1684
+ background: #32373c;
1685
+ }
1686
+
1687
+ /* line 219, sass/partials/_jquery_ui.scss */
1688
+
1689
+ .cmb2-element.ui-datepicker td .ui-state-hover,
1690
+ .cmb2-element.ui-datepicker td .ui-state-active,
1691
+ .cmb2-element .ui-datepicker td .ui-state-hover,
1692
+ .cmb2-element .ui-datepicker td .ui-state-active {
1693
+ background: #0073aa;
1694
+ color: #fff;
1695
+ }
1696
+
1697
+ /* line 224, sass/partials/_jquery_ui.scss */
1698
+
1699
+ .cmb2-element.ui-datepicker .ui-timepicker-div,
1700
+ .cmb2-element .ui-datepicker .ui-timepicker-div {
1701
+ font-size: 14px;
1702
+ }
1703
+
1704
+ /* line 226, sass/partials/_jquery_ui.scss */
1705
+
1706
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl,
1707
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl {
1708
+ text-align: left;
1709
+ padding: 0 .6em;
1710
+ }
1711
+
1712
+ /* line 229, sass/partials/_jquery_ui.scss */
1713
+
1714
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dt,
1715
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl dt {
1716
+ float: left;
1717
+ clear: left;
1718
+ padding: 0 0 0 5px;
1719
+ }
1720
+
1721
+ /* line 234, sass/partials/_jquery_ui.scss */
1722
+
1723
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd,
1724
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl dd {
1725
+ margin: 0 10px 10px 40%;
1726
+ }
1727
+
1728
+ /* line 236, sass/partials/_jquery_ui.scss */
1729
+
1730
+ .cmb2-element.ui-datepicker .ui-timepicker-div dl dd select,
1731
+ .cmb2-element .ui-datepicker .ui-timepicker-div dl dd select {
1732
+ width: 100%;
1733
+ }
1734
+
1735
+ /* line 242, sass/partials/_jquery_ui.scss */
1736
+
1737
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane,
1738
+ .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane {
1739
+ padding: .6em;
1740
+ text-align: left;
1741
+ }
1742
+
1743
+ /* line 246, sass/partials/_jquery_ui.scss */
1744
+
1745
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary,
1746
+ .cmb2-element.ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary,
1747
+ .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-primary,
1748
+ .cmb2-element .ui-datepicker .ui-timepicker-div + .ui-datepicker-buttonpane .button-secondary {
1749
+ padding: 0 10px 1px;
1750
+ -webkit-border-radius: 3px;
1751
+ -moz-border-radius: 3px;
1752
+ border-radius: 3px;
1753
+ margin: 0 .6em .4em .4em;
1754
+ }
1755
+
1756
+ /* line 260, sass/partials/_jquery_ui.scss */
1757
+
1758
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header,
1759
+ .admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,
1760
+ .admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,
1761
+ .admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header {
1762
+ background: #00a0d2;
1763
+ }
1764
+
1765
+ /* line 265, sass/partials/_jquery_ui.scss */
1766
+
1767
+ .admin-color-fresh .cmb2-element.ui-datepicker thead,
1768
+ .admin-color-fresh .cmb2-element .ui-datepicker thead {
1769
+ background: #32373c;
1770
+ }
1771
+
1772
+ /* line 269, sass/partials/_jquery_ui.scss */
1773
+
1774
+ .admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover,
1775
+ .admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover {
1776
+ background: #0073aa;
1777
+ color: #fff;
1778
+ }
1779
+
1780
+ /* line 277, sass/partials/_jquery_ui.scss */
1781
+
1782
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header,
1783
+ .admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,
1784
+ .admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,
1785
+ .admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header {
1786
+ background: #52accc;
1787
+ }
1788
+
1789
+ /* line 282, sass/partials/_jquery_ui.scss */
1790
+
1791
+ .admin-color-blue .cmb2-element.ui-datepicker thead,
1792
+ .admin-color-blue .cmb2-element .ui-datepicker thead {
1793
+ background: #4796b3;
1794
+ }
1795
+
1796
+ /* line 291, sass/partials/_jquery_ui.scss */
1797
+
1798
+ .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover,
1799
+ .admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,
1800
+ .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,
1801
+ .admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active {
1802
+ background: #096484;
1803
+ color: #fff;
1804
+ }
1805
+
1806
+ /* line 296, sass/partials/_jquery_ui.scss */
1807
+
1808
+ .admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today,
1809
+ .admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today {
1810
+ background: #eee;
1811
+ }
1812
+
1813
+ /* line 305, sass/partials/_jquery_ui.scss */
1814
+
1815
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header,
1816
+ .admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,
1817
+ .admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,
1818
+ .admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header {
1819
+ background: #59524c;
1820
+ }
1821
+
1822
+ /* line 310, sass/partials/_jquery_ui.scss */
1823
+
1824
+ .admin-color-coffee .cmb2-element.ui-datepicker thead,
1825
+ .admin-color-coffee .cmb2-element .ui-datepicker thead {
1826
+ background: #46403c;
1827
+ }
1828
+
1829
+ /* line 314, sass/partials/_jquery_ui.scss */
1830
+
1831
+ .admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover,
1832
+ .admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover {
1833
+ background: #c7a589;
1834
+ color: #fff;
1835
+ }
1836
+
1837
+ /* line 322, sass/partials/_jquery_ui.scss */
1838
+
1839
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header,
1840
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,
1841
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,
1842
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header {
1843
+ background: #523f6d;
1844
+ }
1845
+
1846
+ /* line 327, sass/partials/_jquery_ui.scss */
1847
+
1848
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker thead,
1849
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker thead {
1850
+ background: #413256;
1851
+ }
1852
+
1853
+ /* line 331, sass/partials/_jquery_ui.scss */
1854
+
1855
+ .admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover,
1856
+ .admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover {
1857
+ background: #a3b745;
1858
+ color: #fff;
1859
+ }
1860
+
1861
+ /* line 339, sass/partials/_jquery_ui.scss */
1862
+
1863
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header,
1864
+ .admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,
1865
+ .admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,
1866
+ .admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header {
1867
+ background: #363b3f;
1868
+ }
1869
+
1870
+ /* line 344, sass/partials/_jquery_ui.scss */
1871
+
1872
+ .admin-color-midnight .cmb2-element.ui-datepicker thead,
1873
+ .admin-color-midnight .cmb2-element .ui-datepicker thead {
1874
+ background: #26292c;
1875
+ }
1876
+
1877
+ /* line 348, sass/partials/_jquery_ui.scss */
1878
+
1879
+ .admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover,
1880
+ .admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover {
1881
+ background: #e14d43;
1882
+ color: #fff;
1883
+ }
1884
+
1885
+ /* line 356, sass/partials/_jquery_ui.scss */
1886
+
1887
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header,
1888
+ .admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,
1889
+ .admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,
1890
+ .admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header {
1891
+ background: #738e96;
1892
+ }
1893
+
1894
+ /* line 361, sass/partials/_jquery_ui.scss */
1895
+
1896
+ .admin-color-ocean .cmb2-element.ui-datepicker thead,
1897
+ .admin-color-ocean .cmb2-element .ui-datepicker thead {
1898
+ background: #627c83;
1899
+ }
1900
+
1901
+ /* line 365, sass/partials/_jquery_ui.scss */
1902
+
1903
+ .admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover,
1904
+ .admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover {
1905
+ background: #9ebaa0;
1906
+ color: #fff;
1907
+ }
1908
+
1909
+ /* line 373, sass/partials/_jquery_ui.scss */
1910
+
1911
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header,
1912
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,
1913
+ .admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,
1914
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,
1915
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,
1916
+ .admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover {
1917
+ background: #cf4944;
1918
+ }
1919
+
1920
+ /* line 379, sass/partials/_jquery_ui.scss */
1921
+
1922
+ .admin-color-sunrise .cmb2-element.ui-datepicker th,
1923
+ .admin-color-sunrise .cmb2-element .ui-datepicker th {
1924
+ border-color: #be3631;
1925
+ background: #be3631;
1926
+ }
1927
+
1928
+ /* line 384, sass/partials/_jquery_ui.scss */
1929
+
1930
+ .admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover,
1931
+ .admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover {
1932
+ background: #dd823b;
1933
+ color: #fff;
1934
+ }
1935
+
1936
+ /* line 392, sass/partials/_jquery_ui.scss */
1937
+
1938
+ .admin-color-light .cmb2-element.ui-datepicker .ui-widget-header,
1939
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,
1940
+ .admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,
1941
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header {
1942
+ background: #e5e5e5;
1943
+ }
1944
+
1945
+ /* line 397, sass/partials/_jquery_ui.scss */
1946
+
1947
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,
1948
+ .admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year,
1949
+ .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,
1950
+ .admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year {
1951
+ color: #555;
1952
+ }
1953
+
1954
+ /* line 402, sass/partials/_jquery_ui.scss */
1955
+
1956
+ .admin-color-light .cmb2-element.ui-datepicker thead,
1957
+ .admin-color-light .cmb2-element .ui-datepicker thead {
1958
+ background: #888;
1959
+ }
1960
+
1961
+ /* line 406, sass/partials/_jquery_ui.scss */
1962
+
1963
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,
1964
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-default,
1965
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,
1966
+ .admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,
1967
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,
1968
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,
1969
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,
1970
+ .admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before {
1971
+ color: #555;
1972
+ }
1973
+
1974
+ /* line 414, sass/partials/_jquery_ui.scss */
1975
+
1976
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover,
1977
+ .admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,
1978
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,
1979
+ .admin-color-light .cmb2-element .ui-datepicker td .ui-state-active {
1980
+ background: #ccc;
1981
+ }
1982
+
1983
+ /* line 418, sass/partials/_jquery_ui.scss */
1984
+
1985
+ .admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today,
1986
+ .admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today {
1987
+ background: #eee;
1988
+ }
1989
+
1990
+ /* line 426, sass/partials/_jquery_ui.scss */
1991
+
1992
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header,
1993
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,
1994
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,
1995
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header {
1996
+ background: #56b274;
1997
+ }
1998
+
1999
+ /* line 431, sass/partials/_jquery_ui.scss */
2000
+
2001
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead,
2002
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead {
2003
+ background: #36533f;
2004
+ }
2005
+
2006
+ /* line 435, sass/partials/_jquery_ui.scss */
2007
+
2008
+ .admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover,
2009
+ .admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover {
2010
+ background: #446950;
2011
+ color: #fff;
2012
+ }
2013
+
2014
+ /* line 443, sass/partials/_jquery_ui.scss */
2015
+
2016
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header,
2017
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,
2018
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,
2019
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header {
2020
+ background: #4ca26a;
2021
+ }
2022
+
2023
+ /* line 448, sass/partials/_jquery_ui.scss */
2024
+
2025
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker thead,
2026
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker thead {
2027
+ background: #4f6d59;
2028
+ }
2029
+
2030
+ /* line 452, sass/partials/_jquery_ui.scss */
2031
+
2032
+ .admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover,
2033
+ .admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover {
2034
+ background: #5fb37c;
2035
+ color: #fff;
2036
+ }
2037
+
2038
+ /*# sourceMappingURL=cmb2.css.map */
2039
+
2040
+ @media only screen and (max-width: 850px) {
2041
+
2042
+ /* line 103, sass/partials/_context_metaboxes.scss */
2043
+
2044
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
2045
+ margin-right: 0;
2046
+ }
2047
+
2048
+ }
2049
+
2050
+ @media (max-width: 450px) {
2051
+
2052
+ /* line 193, sass/partials/_main_wrap.scss */
2053
+
2054
+ .cmb-th {
2055
+ font-size: 1.2em;
2056
+ display: block;
2057
+ float: none;
2058
+ padding-bottom: 1em;
2059
+ text-align: left;
2060
+ width: 100%;
2061
+ }
2062
+
2063
+ /* line 27, sass/partials/_mixins.scss */
2064
+
2065
+ .cmb-th label {
2066
+ display: block;
2067
+ margin-top: 0;
2068
+ margin-bottom: 0.5em;
2069
+ }
2070
+
2071
+ /* line 523, sass/partials/_main_wrap.scss */
2072
+
2073
+ .cmb-th,
2074
+ .cmb-td,
2075
+ .cmb-th + .cmb-td {
2076
+ display: block;
2077
+ float: none;
2078
+ width: 100%;
2079
+ }
2080
+
2081
+ /* line 70, sass/partials/_post_metaboxes.scss */
2082
+
2083
+ .cmb2-postbox .cmb-row:not(:last-of-type),
2084
+ .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
2085
+ .cmb-type-group .cmb-row:not(:last-of-type),
2086
+ .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
2087
+ border-bottom: 0;
2088
+ }
2089
+
2090
+ /* line 24, sass/partials/_options-page.scss */
2091
+
2092
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
2093
+ padding: 0;
2094
+ margin-left: 0;
2095
+ }
2096
+
2097
+ }
2098
+
includes/plus-options/metabox/css/cmb2.css.map ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ {
2
+ "version": 3,
3
+ "mappings": ";AAAA;;gEAEgE;;AAEhE,UAAW;EACV,MAAM,EAAE,CAAC;;;AAET;mBACS;EACR,SAAS,ECEK,IAAI;EDDlB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,GAAG;;;AAMZ,uCAAc;EACb,KAAK,EAAE,IAAI;;;AAIb,mBAAS;EACR,KAAK,EAAE,KAAK;;;AAEZ,sCAAqB;EACpB,WAAW,EChBE,sCAAsC;EDiBnD,WAAW,EAAE,IAAI;;;AAMlB,kEACkB;EACjB,KAAK,EAAE,KAAK;;;AAIb,gCAAkB;EACjB,KAAK,EAAE,IAAI;;;AAIZ,iCAAmB;EAClB,KAAK,EAAE,KAAK;;;AAIb,iCAAmB;EAClB,KAAK,EAAE,GAAG;;;AAGX,0BAAY;EACX,OAAO,EAAE,OAAO;;;AAIhB;;8CAES;EACR,WAAW,EAAE,IAAI;;;AAKpB,aAAG;EACF,MAAM,EAAE,CAAC;;;AAGV,aAAG;EACF,SAAS,EC5DK,IAAI;ED6DlB,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,WAAW;;;AAQpB,iBAAO;EACN,SAAS,ECvEK,IAAI;EDwElB,UAAU,EAAE,GAAG;;;AAGhB;yBACe;EACd,UAAU,ECpEI,OAAO;;;ADuEtB,8BAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX,iCAAuB;EACtB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX;4BACkB;EACjB,WAAW,EAAE,MAAM;;;AAGpB,qBAAW;EACV,MAAM,EAAE,4BAAgC;;;AAGzC,8BAAoB;EACnB,UAAU,EC1FI,OAAO;;;AD6FtB,oBAAU;EACT,KAAK,EAAE,GAAG;;;AAEV,6BAAS;EACR,KAAK,EAAE,IAAI;;;AAKb;gCACsB;EACrB,cAAc,EAAE,MAAM;;;AAGvB;+BACqB;EACpB,MAAM,EAAE,UAAU;;;AAGnB,mBAAS;EACR,MAAM,EAAE,CAAC;;;AAET,yBAAQ;EACP,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ,wDAAuC;EACtC,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,GAAG;;;;AAMtB,aAAc;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;;;AAIR;;;gEACQ;EACP,MAAM,EAAE,CAAC;;;;AAKZ,YAAa;EACZ,MAAM,EAAE,SAAS;;;;AAGlB;;mCAEoC;EACnC,MAAM,EAAE,CAAC;;;;AAGV;;kCAEmC;EAClC,aAAa,EAAE,CAAC;;;;AAGjB,wBAAyB;EACxB,MAAM,EAAE,iBAAqB;EAC7B,OAAO,EAAE,KAAK;;;AAEd,gCAAU;EACT,MAAM,EAAE,SAAS;;;;AAOnB,OAAQ;EACP,KAAK,ECnLU,OAAO;EDoLtB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,gBAAgB;EACzB,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,KAAK;;AAEZ,yBAAkC;;EATnC,OAAQ;IE3LP,SAAS,EAAE,KAAK;IAehB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;;;EAEX,aAAM;IACL,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,KAAK;;;;;AFiLtB,OAAQ;EACP,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,SAAS;EAClB,cAAc,EAAE,MAAM;;;;AAKtB,uBAAQ;EACP,OAAO,EAAE,CAAC;;;;AAIZ,aAAc;EACb,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,KAAK;;;;AAGf,iBAAkB;EACjB,KAAK,EAAE,IAAI;;;;AAGZ,eAAgB;EACf,cAAc,EAAE,GAAG;;;;AAGpB,eAAgB;EACf,UAAU,EAAE,KAAK;;;;AAGlB,iBAAkB;EACjB,OAAO,EAAE,IAAI;;;;AAId,iBAAkB;EACjB,gBAAgB,EC7ND,OAAO;ED8NtB,MAAM,EAAE,iBAAiC;;;AAEzC,yCAAwB;EACvB,QAAQ,EAAE,QAAQ;EAClB,iBAAiB,EAAE,EAAE;EAErB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,mBAAmB;EAC5B,aAAa,EAAE,eAAe;;;AAE9B,2DAAoB;EACnB,UAAU,EAAE,iBAAqB;;;AAGlC,4DAAqB;EACpB,OAAO,EAAE,6BAAiC;;;AAG3C,gDAAS;EACR,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,KAAK;EAEd,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,IAAI;EACZ,KAAK,ECnQQ,OAAO;EDoQpB,UAAU,EAAE,MAAM;EAClB,YAAY,EAAE,iBAAqB;;;AAGpC,iDAAQ;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AAKZ,gCAAe;EACd,MAAM,EAAE,CAAC;;;AAET,uCAAS;EACR,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;EACjB,gBAAgB,EAAE,SAAuB;;;AAI3C,iCAAgB;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,GAAG;EACV,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,YAAY;EAErB,OAAO,EAAE,IAAI;;;AAEb,0DAAyB;EACxB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EAEpB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAElB,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,QAAQ;;;AAEjB,iEAAS;EE/RX,OAAO,EFgSsB,GAAO;EE/RpC,WAAW,EAAE,WAAW;EACxB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,YAAY,EAAE,MAAM;EACpB,cAAc,EAAE,IAAI;EACpB,WAAW,EAAE,CAAC;EACd,sBAAsB,EAAE,WAAW;EACnC,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;;;AFsRlB,uDAAsC;EACrC,OAAO,EAAE,KAAK;;;;AAOf,6BAAQ;EACP,OAAO,EAAE,GAAG;;;AAGb,sCAAiB;EAChB,gBAAgB,ECpUF,OAAO;EDqUrB,OAAO,EAAE,kBAAkB;EAC3B,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;;AAEhB,yCAAG;EACF,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,KAAK;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,YAAY;;;AAGtB,8CAAQ;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAIb,oDAA+B;EEpW/B,SAAS,EAAE,KAAK;EAehB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AAEX,0DAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AFgVrB,qCAAgB;EACf,SAAS,EAAE,GAAG;EACd,YAAY,EAAE,GAAG;EACjB,eAAe,EAAE,IAAI;;;AAErB,gDAAW;EACV,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,KAAK;EACb,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,GAAG;;;AAEV,0EAA4B;EAC3B,WAAW,EAAE,KAAK;;;AAMrB,yCAAoB;EACnB,KAAK,EAAE,KAAK;;;;AAKd,0BAA2B;EAC1B,KAAK,ECvXU,OAAO;EDwXtB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,IAAI;;;;AAGlB,6BAA8B;EAC7B,KAAK,EC9XU,OAAO;ED+XtB,UAAU,EAAE,MAAM;;;;AAGnB,mBAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE,IAAI;;;;AAGhB,cAAe;EACd,OAAO,EAAE,SAAS;;;;AAGnB,cAAe;EACd,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,IAAI;;;;AAGpB,2BAA4B;EAC3B,MAAM,EAAE,CAAC;;;;AAKT,8BAAY;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,IAAI;;;AAEX,kCAAI;EACH,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,IAAI;;;AAId;gCACc;EACb,UAAU,ECpaI,IAAI;EDqalB,MAAM,EAAE,iBAAgB;EACxB,OAAO,EAAE,iBAAqB;EAC9B,UAAU,EAAE,sEAA0E;EACtF,gBAAgB,EAAE,wLAAsN;EACxO,mBAAmB,EAAE,cAAc;EACnC,eAAe,EAAE,SAAS;EAC1B,aAAa,EAAE,GAAG;EAClB,kBAAkB,EAAE,GAAG;EACtB,MAAM,EAAE,UAAU;;;AAGpB,gCAAc;EACb,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;;;AAGjB,gEAA2B;EAC1B,QAAQ,EAAE,QAAQ;;;AAElB,kHAAyB;EACxB,UAAU,EAAE,6BAA6B;EACzC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,IAAI;EACV,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,OAAO;EACpB,GAAG,EAAE,IAAI;EACT,KAAK,EAAE,IAAI;;;AAOZ,uDAAyB;EACxB,GAAG,EAAE,IAAI;;;AAIX,0EAAqC;EACpC,MAAM,EAAE,OAAO;;;AAIf,0GAAqC;EACpC,MAAM,EAAE,IAAI;;;;AAMf,kDAAmD;EAClD,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,CAAC;;;;AAGd,mBAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,IAAI;;;AACnB,uBAAI;EACH,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;;;;AAIpB,oBAAqB;EACpB,MAAM,EAAE,CAAC;;;;AAGV,mBAAoB;EACnB,UAAU,EAAE,IAAI;;;;AAGjB,wBAAyB;EACxB,YAAY,EAAE,KAAK;;;AAGpB,yBAAkC;;EACjC;;mBAEkB;IACjB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;;;AG/gBb;;gEAEgE;;AAEhE,2BAA4B;EAC3B,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,KAAK;;;;AAGlB,uCAAwC;EACvC,YAAY,EAAE,KAAK;;;;AAKnB,oDAAW;EACV,MAAM,EAAE,CAAC;;;AAET,8GAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB,8GAAc;EACb,KAAK,EAAE,IAAI;;;AAKd,gDAAS;EACR,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,SAAS;;;AAEjB,sEAAW;EACV,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;EAClB,KAAK,EFxBQ,OAAO;;;AE4BtB,gFAAyB;EACxB,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,cAAc;;;AAG1B,gGAAiC;EAChC,cAAc,EAAE,CAAC;;;AAGlB,8CAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,QAAQ;;;AAIlB,8CAAQ;EACP,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,GAAG;;;AAGjB,kEAAkB;EACjB,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,KAAK;;;AAGb;;wDACyC;EACxC,aAAa,EAAE,iBAAqB;;AAEpC,yBAAkC;;EAJnC;;0DACyC;IAIvC,aAAa,EAAE,CAAC;;;;AAIlB;;qCACsB;EACrB,WAAW,EAAE,KAAK;;;AChFpB;;gEAEgE;AAEhE,uCAAuC;;AAIrC,sDAAS;EACR,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uBAAuB;EAC7B,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,6DAAS;EACR,OAAO,EAAE,OAAO;;;;AAOpB,yBAA0B;EAEzB,aAAa,EAAE,IAAI;;;AAEnB,sDAA+B;EAC9B,UAAU,EAAE,IAAI;;;AAGjB,iDAA0B;EACzB,UAAU,EAAE,IAAI;;;AAGjB,kDAA2B;EAC1B,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,CAAC;;;AAGjB,8CAAuB;EAEtB,UAAU,EAAE,IAAI;;;AAEhB,qDAAO;EACN,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;;;AAIlB,gCAAO;EACN,MAAM,EAAE,IAAI;;;;AAId,kBAAmB;EAElB,UAAU,EAAE,IAAI;;;AAEhB,6CAA6B;EAC5B,YAAY,EAAE,KAAK;EACnB,KAAK,EAAE,IAAI;;;AAKX,2DAAc;EACb,OAAO,EAAE,IAAI;;;AAIf,0BAAQ;EACP,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAE,GAAG;;;AAGX,0BAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,CAAC;;;AAGX,2BAAS;EACR,aAAa,EAAE,IAAI;;;AAEnB,wCAAe;EACd,aAAa,EAAE,CAAC;;;AAMnB,8CAA8C;AAC9C,yCAA0C;;EAEzC,6CAA8C;IAC7C,YAAY,EAAE,CAAC;;;ACvGjB;;gEAEgE;;AAEhE,kBAAmB;EAClB,SAAS,EAAE,MAAM;;;AAEjB,4BAAY;EACX,aAAa,EAAE,GAAG;;;AAGnB,2CAAyB;EACxB,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,IAAI;EAChB,UAAU,EJOI,OAAO;EINrB,MAAM,EAAE,iBAAqB;EAC7B,UAAU,EAAE,6BAA2B;;;AAEvC,qDAAU;EACT,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,OAAO;;;AAGrB,+DAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,KAAK;;AAElB,yBAAkC;;EALnC,+DAAoB;IAMlB,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;;;;AAMjB,6CAA2B;EAC1B,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,SAAS;EAClB,gBAAgB,EJjBF,OAAO;;;AImBrB,iEAAoB;EACnB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAChB,cAAc,EAAE,SAAS;;;AAG1B,uEAA0B;EACzB,WAAW,EAAE,MAAM;;;AAKpB,uEAA+B;EAC9B,OAAO,EAAE,WAAW;;;AAGrB,wDAAgB;EACf,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;;;AAGjB,4EAAoC;EACnC,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,YAAY;;;AClE/B;;gEAEgE;;AAG/D,eAAQ;EACP,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,QAAQ;;;AAGlB,eAAQ;EACP,OAAO,EAAE,CAAC;;;AAGX,yBAAkB;EACjB,KAAK,EAAE,IAAI;;;AAGZ,cAAO;EACN,SAAS,EAAE,IAAI;;;AAGhB,qBAAc;EACb,cAAc,EAAE,IAAI;;;AAGrB,yBAAkB;EACjB,OAAO,EAAE,MAAM;;;AC5BjB;;gEAEgE;;AAEhE,mCAAoC;EACnC,MAAM,EAAE,CAAC;;;;AAMT;;kCAAoB;EACnB,SAAS,EAAE,KAAK;;;;AAKjB,0DAAa;EACZ,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;;;;AAIf,YAAa;EACZ,OAAO,EAAE,IAAI;;;AACb,sBAAY;EACX,OAAO,EAAE,KAAK;;;AC1BhB;;gEAEgE;;AAO9D;uDAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB;iEAAqC;EACpC,KAAK,EAAE,IAAI;;;AAGZ;;yCAA0C;EACzC,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,KAAK;;;AAGf;gDAAkB;EACjB,SAAS,EAAE,GAAG;;;AACd;4EAA4B;EAC3B,OAAO,EAAE,KAAK;;;AAKjB;gCAAM;EACL,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,OAAO;;;AAKlB;wBAAS;EACR,SAAS,EAAE,GAAG;;;AAGf;qCAAsB;EACrB,aAAa,EAAE,iBAAqB;;;AAGrC;iEAAkD;EACjD,aAAa,EAAE,CAAC;EAChB,aAAa,EAAE,MAAM;;;AAGtB;;;;;iCAEkB;EACjB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ;+BAAgB;EACf,OAAO,EAAE,IAAI;;;AAGd;uBAAQ;EN9CR,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EM4CV,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;;;AN3CjB;6BAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AAhBrB;6BAAM;EACL,SAAS,EDHK,IAAI;ECIlB,WAAW,EAAE,KAAK;;;AM0DlB;8CAAQ;EACP,WAAW,EAAE,CAAC;;;AAEf;gEAA0B;EACzB,OAAO,EAAE,CAAC;;;AAMX;wCAAQ;EACP,OAAO,EAAE,CAAC;;;AAKX;mEAA2B;EAC1B,UAAU,EAAE,GAAG;;;AAQf;;;oDAAI;EACH,SAAS,EAAE,GAAG;EAEd,MAAM,EAAE,IAAI;;;AAKf;gCAAiB;EAChB,OAAO,EAAE,MAAM;EACf,WAAW,EAAE,MAAM;;;AAGpB;yCAA0B;EACzB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,OAAO;;;AAKhB;;;4DAC0B;EACzB,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,MAAM;;;AAIjB;kDAAmC;EAClC,cAAc,EAAE,KAAK;;;AAGtB;mCAAoB;EACnB,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,MAAM;;;AAGnB;+BAAgB;EACf,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,CAAC;;;AAGlB;mCAAoB;EACnB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;;;AC9IlB;;gEAEgE;;AAG/D,wBAAW;EACV,KAAK,ERSS,OAAO;EQRrB,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;;;AAClB,+BAAS;EACR,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,yBAAyB;EAC/B,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,QAAQ;EACjB,GAAG,EAAE,CAAC;EACN,QAAQ,EAAE,QAAQ;EAClB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,+CAAS;EACR,OAAO,EAAE,OAAO;;;AAKnB,2EAA8D;EAC7D,kBAAkB,EAAE,eAAe;EACnC,UAAU,EAAE,eAAe;EAC3B,MAAM,EAAE,eAAe;EACvB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,IAAI;EACT,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,EAAE;;;AACX,2FAAkB;EACjB,MAAM,EAAE,OAAO;EACf,KAAK,ERxBQ,IAAI;EQyBjB,OAAO,EAAE,CAAC;;;AACV,iGAAQ;EACP,KAAK,ER5BO,IAAI;;;ASvBpB;;;;;;;;;;;;GAYG;;AAEH,uCAAwC;EACvC,MAAM,EAAC,EAAE;;;;AAQV,yDAA0D;EACzD,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;EAChB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,IAAI;EAChB,kBAAkB,EAAE,8BAA8B;EAClD,UAAU,EAAE,8BAA8B;EAC1C,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;EA6KX,0BAA0B;;;AA3K1B,6DAAE;EACD,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,uBAAuB;EACpC,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;;;AAGjB,qEAAM;EACL,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,IAAI;EACZ,eAAe,EAAE,QAAQ;;;AAG1B;;kDACsB;EACrB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;;;AAGpB,qIAAsC;EACrC,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,MAAM,EAAE,OAAO;;;AAGhB,mGAAqB;EACpB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,MAAM;EACf,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;;;AAElB,iHAAO;EACN,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;;;AAIrB;;gDACoB;EACnB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;;;AAGZ;;+DACmC;EAClC,MAAM,EAAE,IAAI;;;AAGb;;sDAC0B;EACzB,IAAI,EAAE,CAAC;;;AAGR;;sDAC0B;EACzB,KAAK,EAAE,CAAC;;;AAGT;;qDACyB;EACxB,OAAO,EAAE,IAAI;;;AAGd,iGAAoB;EACnB,KAAK,EAAE,IAAI;;;AAGZ,iGAAoB;EACnB,KAAK,EAAE,KAAK;;;AAGb;;uDAC2B;EAC1B,IAAI,EAAE,4BAA4B;EAClC,YAAY,EAAE,GAAG;EACjB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;;;AAGb,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB;;6DACiC;EAChC,OAAO,EAAE,GAAG;;;AAGb;;sDAC0B;EACzB,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AACX;;6DAAO;EACN,KAAK,EAAE,IAAI;;;AAIb,qEAAM;EACL,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;;;AAChB,2EAAG;EACF,WAAW,EAAE,MAAM;;;AAIrB,+DAAG;EACF,OAAO,EAAE,IAAI;;;AAGd,+DAAG;EACF,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,iBAAkB;;;AAG3B,mHAA6B;EAC5B,MAAM,EAAE,WAAW;;;AAGpB,6GAA0B;EACzB,gBAAgB,EA7JR,OAAO;EA8Jf,MAAM,EAAE,iBAAkB;;;AAC1B,qJAAsB;EACrB,kBAAkB,EAAE,wCAAwC;EAC5D,eAAe,EAAE,wCAAwC;EACzD,UAAU,EAAE,wCAAwC;;;AAItD,uGAAuB;EACtB,gBAAgB,EAAE,OAAO;;;AAG1B,mHAA6B;EAC5B,UAAU,EAAE,OAAO;;;AAGpB,mGAAqB;EACpB,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;EAClB,eAAe,EAAE,IAAI;EACrB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,IAAI;;;AAGZ,uIAAuC;EACtC,OAAO,EAAE,GAAG;;;AAIb;;kDACsB;EACrB,UAAU,EAhMA,OAAO;;;AAmMlB,qEAAM;EACL,UAAU,EAnMA,OAAO;;;AAsMlB,kMAAwC;EACvC,UAAU,EAtMI,OAAO;EAuMrB,KAAK,EAAE,IAAI;;;AAGZ,+FAAmB;EAClB,SAAS,EAAE,IAAI;;;AACf,qGAAG;EACF,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,MAAM;;;AACf,2GAAG;EACF,KAAK,EAAE,IAAI;EACX,KAAK,EAAC,IAAI;EACV,OAAO,EAAE,SAAS;;;AAEnB,2GAAG;EACF,MAAM,EAAE,eAAe;;;AACvB,yHAAO;EACN,KAAK,EAAE,IAAI;;;AAKd,uJAA4B;EAC3B,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;;;AAEhB,oXAAmC;EAClC,OAAO,EAAE,UAAU;EACnB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,gBAAgB;;;;AAS1B;;qEACsB;EACrB,UAAU,EAlPD,OAAO;;;AAqPjB,2GAAM;EACL,UAAU,EArPD,OAAO;;;AAwPjB,qIAAmB;EAClB,UAAU,EAxPG,OAAO;EAyPpB,KAAK,EAAE,IAAI;;;;AAMZ;;oEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yGAAM;EACL,UAAU,EAAE,OAAO;;;AAQnB,0QAAkC;EACjC,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;AAGZ,2IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAQlB;;sEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,6GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,uIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;yEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,mHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,6IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;;;uFAEsC;EACrC,UAAU,EAAE,OAAO;;;AAGpB,yGAAG;EACF,YAAY,EAAE,OAAO;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB;;yEAC0B;EACzB,KAAK,EAAE,IAAI;;;AAGZ,2GAAM;EACL,UAAU,EAAE,IAAI;;;AAGjB;;;;;;0EAG2B;EAC1B,KAAK,EAAE,IAAI;;;AAIX,8QAAkC;EACjC,UAAU,EAAE,IAAI;;;AAGjB,6IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAOlB;;6EACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2HAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qJAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI",
4
+ "sources": ["sass/partials/_main_wrap.scss","sass/partials/_variables.scss","sass/partials/_mixins.scss","sass/partials/_post_metaboxes.scss","sass/partials/_context_metaboxes.scss","sass/partials/_options-page.scss","sass/partials/_new_term.scss","sass/partials/_misc.scss","sass/partials/_sidebar_placements.scss","sass/partials/_collapsible_ui.scss","sass/partials/_jquery_ui.scss"],
5
+ "names": [],
6
+ "file": "cmb2.css"
7
+ }
includes/plus-options/metabox/css/cmb2.min.css ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! CMB2 - v2.6.0 - 2019-01-18 | https://cmb2.io | Copyright (c) 2019 CMB2 team | Licensed GPLv2 */
2
+ .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px;width: 70%;}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-left:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px;width: 70%;}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 5px 0 0;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 10px 0 0}.cmb2-wrap .cmb-row{margin:0;display:table;}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:none;display:table-cell;font-weight:600;line-height:1.3;padding:20px 10px 20px 0;vertical-align:top;width:200px}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:none;display:table-cell;width: 84%;}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:right}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 10px 10px 50px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row.ui-sortable-helper{outline:dashed 2px #e9e9e9!important}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;left:0;position:absolute;width:35px;height:100%;line-height:35px;cursor:move;color:#757575;text-align:center;border-right:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-left:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;right:7px;position:absolute;width:auto;margin-left:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 12px 8px 2.2em;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-right:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:right}p.cmb2-metabox-description{color:#757575;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#757575;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-right:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-right:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#eee;border:5px solid #fff;outline:1px solid #e9e9e9;box-shadow:inset 0 0 15px rgba(0,0,0,.3),inset 0 0 0 1px rgba(0,0,0,.05);background-image:linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0),linear-gradient(45deg,#d0d0d0 25%,transparent 25%,transparent 75%,#d0d0d0 75%,#d0d0d0);background-position:0 0,10px 10px;background-size:20px 20px;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0}.cmb2-media-status .embed-status{float:left;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;left:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb2-media-status.cmb-attach-list .file-status>span,.cmb2-media-status.cmb-attach-list .img-status img{cursor:move}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-right:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{float:left;margin-right:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:left}.cmb2-indented-hierarchy{padding-left:1.5em}#poststuff .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-left:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{right:-1em;position:relative;color:#222}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 2% 0 0}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:right}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 2% 0 0;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}.cmb2-options-page{max-width:1200px}.cmb2-options-page.wrap>h2{margin-bottom:1em}.cmb2-options-page .cmb2-metabox>.cmb-row{padding:1em;margin-top:-1px;background:#fff;border:1px solid #e9e9e9;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th{padding:0;font-weight:initial}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{float:none;padding:0 0 0 1em;margin-left:200px}.cmb2-options-page .cmb2-wrap .cmb-type-title{margin-top:1em;padding:.6em 1em;background-color:#fafafa}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title{font-size:12px;margin-top:0;margin-bottom:0;text-transform:uppercase}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description{padding-top:.25em}.cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th{padding:0 0 .8em}.cmb2-options-page .cmb-repeatable-group .cmb-group-name{font-size:16px;margin-top:0;margin-bottom:0}.cmb2-options-page .cmb-repeatable-group .cmb-th>.cmb2-metabox-description{font-weight:400;padding-bottom:0!important}#addtag .cmb-th{float:none;width:auto;padding:20px 0 0}#addtag .cmb-td{padding:0}#addtag .cmb-th+.cmb-td{float:none}#addtag select{max-width:100%}#addtag .cmb2-metabox{padding-bottom:20px}#addtag .cmb-row li label{display:inline}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:left;display:none}.cmb-spinner{display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-left:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td:not(.cmb-remove-row),#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td:not(.cmb-remove-row),.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:left;width:100%;padding-left:0;padding-right:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;margin-bottom:.5em;font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmbhandle{color:#757575;float:right;width:27px;height:30px;cursor:pointer;right:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;left:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-left:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:left;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:left}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .6em .4em .4em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:0}}@media (max-width:450px){.cmb-th{font-size:1.2em;padding-bottom:1em;text-align:left}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{padding:0;margin-left:0}}
3
+ .cmb2-id-check-elements .cmb2-checkbox-list li {
4
+ display: inline-block;
5
+ width: 30% !important;
6
+ margin-bottom: 8px;
7
+ margin-top: 8px;
8
+ }
9
+ .cmb2-id-check-elements .cmb2-checkbox-list .cmb2-option {
10
+ display: none;
11
+ }
12
+ .cmb2-id-check-elements .cmb2-checkbox-list label {
13
+ position: relative;
14
+ padding-left: 40px;
15
+ }
16
+ .cmb2-id-check-elements .cmb2-checkbox-list label:before {
17
+ content: '';
18
+ position: absolute;
19
+ top: 6px;
20
+ left: 0;
21
+ width: 30px;
22
+ height: 4px;
23
+ background-color: #ff5a6e;
24
+ border-radius: 10px;
25
+ -webkit-transition: all .3s ease;
26
+ transition: all .3s ease;
27
+ }
28
+ .cmb2-id-check-elements .cmb2-checkbox-list input[type=checkbox]:checked + label:before {
29
+ background-color: #8072fc;
30
+ }
31
+ .cmb2-id-check-elements .cmb2-checkbox-list label:after {
32
+ content: '';
33
+ position: absolute;
34
+ top: 0;
35
+ left: 0;
36
+ height: 15px;
37
+ width: 15px;
38
+ background-color: #ff5a6e;
39
+ border-radius: 50%;
40
+ -webkit-transition: all .3s ease;
41
+ transition: all .3s ease;
42
+ -webkit-animation-name: pulsein;
43
+ animation-name: pulsein;
44
+ -webkit-animation-duration: .3s;
45
+ animation-duration: .3s;
46
+ }
47
+ .cmb2-id-check-elements .cmb2-checkbox-list input[type=checkbox]:checked + label:after {
48
+ background-color: #8072fc;
49
+ -webkit-transform: translateX(15px);
50
+ transform: translateX(15px);
51
+ -webkit-animation-name: pulseout;
52
+ animation-name: pulseout;
53
+ -webkit-animation-duration: .3s;
54
+ animation-duration: .3s;
55
+ }
includes/plus-options/metabox/css/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden
includes/plus-options/metabox/css/sass/cmb2-display.scss ADDED
@@ -0,0 +1 @@
 
1
+ @import "partials/display";
includes/plus-options/metabox/css/sass/cmb2-front.scss ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "partials/variables";
2
+ @import "partials/mixins";
3
+
4
+ @import "partials/main_wrap";
5
+ @import "partials/post_metaboxes";
6
+ @import "partials/context_metaboxes";
7
+ @import "partials/misc";
8
+ @import "partials/collapsible_ui";
9
+ @import "partials/jquery_ui";
10
+
11
+ /**
12
+ * CMB2 Frontend
13
+ */
14
+ @import "partials/front";
includes/plus-options/metabox/css/sass/cmb2.scss ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "partials/variables";
2
+ @import "partials/mixins";
3
+
4
+ @import "partials/main_wrap";
5
+ @import "partials/post_metaboxes";
6
+ @import "partials/context_metaboxes";
7
+ @import "partials/options-page";
8
+ @import "partials/new_term";
9
+ @import "partials/misc";
10
+ @import "partials/sidebar_placements";
11
+ @import "partials/collapsible_ui";
12
+ @import "partials/jquery_ui";
includes/plus-options/metabox/css/sass/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden
includes/plus-options/metabox/css/sass/partials/_collapsible_ui.scss ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Collapsible UI
3
+ --------------------------------------------------------------*/
4
+
5
+ .cmb2-metabox {
6
+ .cmbhandle {
7
+ color: $gray;
8
+ float: right;
9
+ width: 27px;
10
+ height: 30px;
11
+ cursor: pointer;
12
+ right: -1em;
13
+ position: relative;
14
+ &:before {
15
+ content: '\f142';
16
+ right: 12px;
17
+ font: normal 20px/1 'dashicons';
18
+ speak: none;
19
+ display: inline-block;
20
+ padding: 8px 10px;
21
+ top: 0;
22
+ position: relative;
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ text-decoration: none !important;
26
+ }
27
+ }
28
+
29
+ .postbox.closed {
30
+ .cmbhandle {
31
+ &:before {
32
+ content: '\f140';
33
+ }
34
+ }
35
+ }
36
+
37
+ button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
38
+ -webkit-appearance: none !important;
39
+ background: none !important;
40
+ border: none !important;
41
+ position: absolute;
42
+ left: 0;
43
+ top: .5em;
44
+ line-height: 1em;
45
+ padding: 2px 6px 3px;
46
+ opacity: .5;
47
+ &:not([disabled]) {
48
+ cursor: pointer;
49
+ color: $dark-red;
50
+ opacity: 1;
51
+ &:hover {
52
+ color: $red;
53
+ }
54
+ }
55
+ }
56
+ }
includes/plus-options/metabox/css/sass/partials/_context_metaboxes.scss ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Context Metaboxes
3
+ --------------------------------------------------------------*/
4
+
5
+ /* Metabox collapse arrow indicators */
6
+ .js .cmb2-postbox.context-box {
7
+
8
+ .toggle-indicator {
9
+ &:before {
10
+ content: "\f142";
11
+ display: inline-block;
12
+ font: normal 20px/1 dashicons;
13
+ speak: none;
14
+ -webkit-font-smoothing: antialiased;
15
+ -moz-osx-font-smoothing: grayscale;
16
+ text-decoration: none !important;
17
+ }
18
+ }
19
+
20
+ &.closed {
21
+ .toggle-indicator {
22
+ &:before {
23
+ content: "\f140";
24
+ }
25
+ }
26
+ }
27
+
28
+ }
29
+
30
+ .cmb2-postbox.context-box {
31
+
32
+ margin-bottom: 10px;
33
+
34
+ &.context-before_permalink-box {
35
+ margin-top: 10px;
36
+ }
37
+
38
+ &.context-after_title-box {
39
+ margin-top: 10px;
40
+ }
41
+
42
+ &.context-after_editor-box {
43
+ margin-top: 20px;
44
+ margin-bottom: 0;
45
+ }
46
+
47
+ &.context-form_top-box {
48
+
49
+ margin-top: 10px;
50
+
51
+ .hndle {
52
+ font-size: 14px;
53
+ padding: 8px 12px;
54
+ margin: 0;
55
+ line-height: 1.4;
56
+ }
57
+ }
58
+
59
+ .hndle {
60
+ cursor: auto;
61
+ }
62
+ }
63
+
64
+ .cmb2-context-wrap {
65
+
66
+ margin-top: 10px;
67
+
68
+ &.cmb2-context-wrap-form_top {
69
+ margin-right: 300px;
70
+ width: auto;
71
+ }
72
+
73
+ &.cmb2-context-wrap-no-title {
74
+
75
+ .cmb2-metabox {
76
+ padding: 10px;
77
+ }
78
+ }
79
+
80
+ .cmb-th {
81
+ padding: 0 2% 0 0;
82
+ width: 18%;
83
+ }
84
+
85
+ .cmb-td {
86
+ width: 80%;
87
+ padding: 0;
88
+ }
89
+
90
+ .cmb-row {
91
+ margin-bottom: 10px;
92
+
93
+ &:last-of-type {
94
+ margin-bottom: 0;
95
+ }
96
+ }
97
+
98
+ }
99
+
100
+ /* one column on the post write/edit screen */
101
+ @media only screen and (max-width: 850px) {
102
+
103
+ .cmb2-context-wrap.cmb2-context-wrap-form_top {
104
+ margin-right: 0;
105
+ }
106
+
107
+ }
includes/plus-options/metabox/css/sass/partials/_display.scss ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * CMB2 Display Styling
3
+ --------------------------------------------------------------*/
4
+
5
+ .cmb2-colorpicker-swatch {
6
+ span {
7
+ display: inline-block;
8
+ width: 1em;
9
+ height: 1em;
10
+ border-radius: 1em;
11
+ float: left;
12
+ margin-top: 3px;
13
+ margin-right: 2px;
14
+ }
15
+ }
16
+
17
+ .cmb2-code {
18
+ overflow: scroll;
19
+ }
20
+
21
+ .cmb-image-display {
22
+ max-width: 100%;
23
+ height: auto;
24
+ }
25
+
26
+ .cmb2-display-file-list li {
27
+ display: inline;
28
+ margin: 0 .5em .5em 0;
29
+ }
30
+
31
+ .cmb2-oembed * {
32
+ max-width: 100%;
33
+ height: auto;
34
+ }
includes/plus-options/metabox/css/sass/partials/_front.scss ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * CMB2 Frontend
3
+ --------------------------------------------------------------*/
4
+
5
+ .closed .inside {
6
+ display: none;
7
+ }
8
+
9
+ .cmb-repeatable-grouping {
10
+ position: relative;
11
+
12
+ .cmb-group-title {
13
+ margin-left: -1em;
14
+ margin-right: -1em;
15
+ min-height: 1.5em;
16
+ }
17
+
18
+ h3 {
19
+ font-size: 14px;
20
+ padding: 8px 12px;
21
+ margin: 0;
22
+ line-height: 1.4;
23
+ }
24
+
25
+ }
26
+
27
+ .cmb-repeatable-group {
28
+
29
+ &.repeatable .cmb-group-title {
30
+ padding-left: 2.2em;
31
+ }
32
+
33
+ &.non-repeatable .cmb-group-title {
34
+ padding-left: 12px;
35
+ }
36
+
37
+ }
38
+
39
+ .cmb-type-group .cmb-row .cmbhandle {
40
+ right: 0;
41
+ position: absolute;
42
+ }
43
+
44
+ .cmb-spinner {
45
+ background: url(/wp-admin/images/spinner.gif) no-repeat;
46
+ -webkit-background-size: 20px 20px;
47
+ background-size: 20px 20px;
48
+ display: none;
49
+ float: right;
50
+ vertical-align: middle;
51
+ opacity: 0.7;
52
+ filter: alpha(opacity=70);
53
+ width: 20px;
54
+ height: 20px;
55
+ margin: 4px 10px 0;
56
+ }
includes/plus-options/metabox/css/sass/partials/_jquery_ui.scss ADDED
@@ -0,0 +1,457 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.16
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ *
10
+ * WordPress Styles adopted from "jQuery UI Datepicker CSS for WordPress"
11
+ * https://github.com/stuttter/wp-datepicker-styling
12
+ *
13
+ */
14
+
15
+ * html .cmb2-element.ui-helper-clearfix {
16
+ height:1%;
17
+ }
18
+
19
+ $weekend: #f4f4f4;
20
+ $freshblue: #00a0d2;
21
+ $freshdark: #32373c;
22
+ $freshdarkblue: #0073aa;
23
+
24
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
25
+ padding: 0;
26
+ margin: 0;
27
+ -webkit-border-radius: 0;
28
+ -moz-border-radius: 0;
29
+ border-radius: 0;
30
+ background-color: #fff;
31
+ border: 1px solid #dfdfdf;
32
+ border-top: none;
33
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
34
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
35
+ min-width: 17em;
36
+ width: auto;
37
+
38
+ * {
39
+ padding: 0;
40
+ font-family: "Open Sans", sans-serif;
41
+ -webkit-border-radius: 0;
42
+ -moz-border-radius: 0;
43
+ border-radius: 0;
44
+ }
45
+
46
+ table {
47
+ font-size: 13px;
48
+ margin: 0;
49
+ border: none;
50
+ border-collapse: collapse;
51
+ }
52
+
53
+ .ui-widget-header,
54
+ .ui-datepicker-header {
55
+ background-image: none;
56
+ border: none;
57
+ color: #fff;
58
+ font-weight: normal;
59
+ }
60
+
61
+ .ui-datepicker-header .ui-state-hover {
62
+ background: transparent;
63
+ border-color: transparent;
64
+ cursor: pointer;
65
+ }
66
+
67
+ .ui-datepicker-title {
68
+ margin: 0;
69
+ padding: 10px 0;
70
+ color: #fff;
71
+ font-size: 14px;
72
+ line-height: 14px;
73
+ text-align: center;
74
+
75
+ select {
76
+ margin-top: -8px;
77
+ margin-bottom: -8px;
78
+ }
79
+ }
80
+
81
+ .ui-datepicker-prev,
82
+ .ui-datepicker-next {
83
+ position: relative;
84
+ top: 0;
85
+ height: 34px;
86
+ width: 34px;
87
+ }
88
+
89
+ .ui-state-hover.ui-datepicker-prev,
90
+ .ui-state-hover.ui-datepicker-next {
91
+ border: none;
92
+ }
93
+
94
+ .ui-datepicker-prev,
95
+ .ui-datepicker-prev-hover {
96
+ left: 0;
97
+ }
98
+
99
+ .ui-datepicker-next,
100
+ .ui-datepicker-next-hover {
101
+ right: 0;
102
+ }
103
+
104
+ .ui-datepicker-next span,
105
+ .ui-datepicker-prev span {
106
+ display: none;
107
+ }
108
+
109
+ .ui-datepicker-prev {
110
+ float: left;
111
+ }
112
+
113
+ .ui-datepicker-next {
114
+ float: right;
115
+ }
116
+
117
+ .ui-datepicker-prev:before,
118
+ .ui-datepicker-next:before {
119
+ font: normal 20px/34px 'dashicons';
120
+ padding-left: 7px;
121
+ color: #fff;
122
+ speak: none;
123
+ -webkit-font-smoothing: antialiased;
124
+ -moz-osx-font-smoothing: grayscale;
125
+ width: 34px;
126
+ height: 34px;
127
+ }
128
+
129
+ .ui-datepicker-prev:before {
130
+ content: '\f341';
131
+ }
132
+
133
+ .ui-datepicker-next:before {
134
+ content: '\f345';
135
+ }
136
+
137
+ .ui-datepicker-prev-hover:before,
138
+ .ui-datepicker-next-hover:before {
139
+ opacity: 0.7;
140
+ }
141
+
142
+ select.ui-datepicker-month,
143
+ select.ui-datepicker-year {
144
+ width: 33%;
145
+ background: transparent;
146
+ border-color: transparent;
147
+ box-shadow: none;
148
+ color: #fff;
149
+ option {
150
+ color: #333;
151
+ }
152
+ }
153
+
154
+ thead {
155
+ color: #fff;
156
+ font-weight: 600;
157
+ th {
158
+ font-weight: normal;
159
+ }
160
+ }
161
+
162
+ th {
163
+ padding: 10px;
164
+ }
165
+
166
+ td {
167
+ padding: 0;
168
+ border: 1px solid $weekend;
169
+ }
170
+
171
+ td.ui-datepicker-other-month {
172
+ border: transparent;
173
+ }
174
+
175
+ td.ui-datepicker-week-end {
176
+ background-color: $weekend;
177
+ border: 1px solid $weekend;
178
+ &.ui-datepicker-today {
179
+ -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
180
+ -moz-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
181
+ box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
182
+ }
183
+ }
184
+
185
+ td.ui-datepicker-today {
186
+ background-color: #f0f0c0;
187
+ }
188
+
189
+ td.ui-datepicker-current-day {
190
+ background: #bbdd88;
191
+ }
192
+
193
+ td .ui-state-default {
194
+ background: transparent;
195
+ border: none;
196
+ text-align: center;
197
+ text-decoration: none;
198
+ width: auto;
199
+ display: block;
200
+ padding: 5px 10px;
201
+ font-weight: normal;
202
+ color: #444;
203
+ }
204
+
205
+ td.ui-state-disabled .ui-state-default {
206
+ opacity: 0.5;
207
+ }
208
+
209
+ /* Default Color Scheme */
210
+ .ui-widget-header,
211
+ .ui-datepicker-header {
212
+ background: $freshblue;
213
+ }
214
+
215
+ thead {
216
+ background: $freshdark;
217
+ }
218
+
219
+ td .ui-state-hover, td .ui-state-active {
220
+ background: $freshdarkblue;
221
+ color: #fff;
222
+ }
223
+
224
+ .ui-timepicker-div {
225
+ font-size: 14px;
226
+ dl {
227
+ text-align: left;
228
+ padding: 0 .6em;
229
+ dt {
230
+ float: left;
231
+ clear:left;
232
+ padding: 0 0 0 5px;
233
+ }
234
+ dd {
235
+ margin: 0 10px 10px 40%;
236
+ select {
237
+ width: 100%;
238
+ }
239
+ }
240
+ }
241
+
242
+ + .ui-datepicker-buttonpane {
243
+ padding: .6em;
244
+ text-align: left;
245
+
246
+ .button-primary, .button-secondary {
247
+ padding: 0 10px 1px;
248
+ -webkit-border-radius: 3px;
249
+ -moz-border-radius: 3px;
250
+ border-radius: 3px;
251
+ margin: 0 .6em .4em .4em;
252
+ }
253
+
254
+ }
255
+ }
256
+
257
+ }
258
+ .admin-color-fresh {
259
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
260
+ .ui-widget-header,
261
+ .ui-datepicker-header {
262
+ background: $freshblue;
263
+ }
264
+
265
+ thead {
266
+ background: $freshdark;
267
+ }
268
+
269
+ td .ui-state-hover {
270
+ background: $freshdarkblue;
271
+ color: #fff;
272
+ }
273
+ }
274
+ }
275
+ .admin-color-blue {
276
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
277
+ .ui-widget-header,
278
+ .ui-datepicker-header {
279
+ background: #52accc;
280
+ }
281
+
282
+ thead {
283
+ background: #4796b3;
284
+ }
285
+
286
+ // td .ui-state-hover {
287
+ // background: #096484;
288
+ // }
289
+
290
+ td {
291
+ .ui-state-hover, .ui-state-active {
292
+ background: #096484;
293
+ color: #fff;
294
+ }
295
+
296
+ &.ui-datepicker-today {
297
+ background: #eee;
298
+ }
299
+ }
300
+
301
+ }
302
+ }
303
+ .admin-color-coffee {
304
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
305
+ .ui-widget-header,
306
+ .ui-datepicker-header {
307
+ background: #59524c;
308
+ }
309
+
310
+ thead {
311
+ background: #46403c;
312
+ }
313
+
314
+ td .ui-state-hover {
315
+ background: #c7a589;
316
+ color: #fff;
317
+ }
318
+ }
319
+ }
320
+ .admin-color-ectoplasm {
321
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
322
+ .ui-widget-header,
323
+ .ui-datepicker-header {
324
+ background: #523f6d;
325
+ }
326
+
327
+ thead {
328
+ background: #413256;
329
+ }
330
+
331
+ td .ui-state-hover {
332
+ background: #a3b745;
333
+ color: #fff;
334
+ }
335
+ }
336
+ }
337
+ .admin-color-midnight {
338
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
339
+ .ui-widget-header,
340
+ .ui-datepicker-header {
341
+ background: #363b3f;
342
+ }
343
+
344
+ thead {
345
+ background: #26292c;
346
+ }
347
+
348
+ td .ui-state-hover {
349
+ background: #e14d43;
350
+ color: #fff;
351
+ }
352
+ }
353
+ }
354
+ .admin-color-ocean {
355
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
356
+ .ui-widget-header,
357
+ .ui-datepicker-header {
358
+ background: #738e96;
359
+ }
360
+
361
+ thead {
362
+ background: #627c83;
363
+ }
364
+
365
+ td .ui-state-hover {
366
+ background: #9ebaa0;
367
+ color: #fff;
368
+ }
369
+ }
370
+ }
371
+ .admin-color-sunrise {
372
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
373
+ .ui-widget-header,
374
+ .ui-datepicker-header,
375
+ .ui-datepicker-header .ui-state-hover {
376
+ background: #cf4944;
377
+ }
378
+
379
+ th {
380
+ border-color: #be3631;
381
+ background: #be3631;
382
+ }
383
+
384
+ td .ui-state-hover {
385
+ background: #dd823b;
386
+ color: #fff;
387
+ }
388
+ }
389
+ }
390
+ .admin-color-light {
391
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
392
+ .ui-widget-header,
393
+ .ui-datepicker-header {
394
+ background: #e5e5e5;
395
+ }
396
+
397
+ select.ui-datepicker-month,
398
+ select.ui-datepicker-year {
399
+ color: #555;
400
+ }
401
+
402
+ thead {
403
+ background: #888;
404
+ }
405
+
406
+ .ui-datepicker-title,
407
+ td .ui-state-default,
408
+ .ui-datepicker-prev:before,
409
+ .ui-datepicker-next:before {
410
+ color: #555;
411
+ }
412
+
413
+ td {
414
+ .ui-state-hover, .ui-state-active {
415
+ background: #ccc;
416
+ }
417
+
418
+ &.ui-datepicker-today {
419
+ background: #eee;
420
+ }
421
+ }
422
+ }
423
+ }
424
+ .admin-color-bbp-evergreen {
425
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
426
+ .ui-widget-header,
427
+ .ui-datepicker-header {
428
+ background: #56b274;
429
+ }
430
+
431
+ thead {
432
+ background: #36533f;
433
+ }
434
+
435
+ td .ui-state-hover {
436
+ background: #446950;
437
+ color: #fff;
438
+ }
439
+ }
440
+ }
441
+ .admin-color-bbp-mint {
442
+ .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
443
+ .ui-widget-header,
444
+ .ui-datepicker-header {
445
+ background: #4ca26a;
446
+ }
447
+
448
+ thead {
449
+ background: #4f6d59;
450
+ }
451
+
452
+ td .ui-state-hover {
453
+ background: #5fb37c;
454
+ color: #fff;
455
+ }
456
+ }
457
+ }
includes/plus-options/metabox/css/sass/partials/_main_wrap.scss ADDED
@@ -0,0 +1,530 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Main Wrap
3
+ --------------------------------------------------------------*/
4
+
5
+ .cmb2-wrap {
6
+ margin: 0;
7
+
8
+ input,
9
+ textarea {
10
+ font-size: $font-size;
11
+ max-width: 100%;
12
+ padding: 5px;
13
+
14
+ }
15
+
16
+ input[type=text] {
17
+
18
+ &.cmb2-oembed {
19
+ width: 100%;
20
+ }
21
+ }
22
+
23
+ textarea {
24
+ width: 500px;
25
+
26
+ &.cmb2-textarea-code {
27
+ font-family: $font-mono;
28
+ line-height: 16px;
29
+ }
30
+ }
31
+
32
+ input {
33
+
34
+ &.cmb2-text-small,
35
+ &.cmb2-timepicker {
36
+ width: 100px;
37
+ // margin-right: 15px
38
+ }
39
+
40
+ &.cmb2-text-money {
41
+ width: 90px;
42
+ // margin-right: 15px
43
+ }
44
+
45
+ &.cmb2-text-medium {
46
+ width: 230px;
47
+ // margin-right: 15px
48
+ }
49
+
50
+ &.cmb2-upload-file {
51
+ width: 65%;
52
+ }
53
+
54
+ &.ed_button {
55
+ padding: 2px 4px;
56
+ }
57
+
58
+ &:not([type="hidden"]) {
59
+ + input,
60
+ + .button-secondary,
61
+ + select {
62
+ margin-left: 20px;
63
+ }
64
+ }
65
+ }
66
+
67
+ ul {
68
+ margin: 0;
69
+ }
70
+
71
+ li {
72
+ font-size: $font-size;
73
+ line-height: 16px;
74
+ margin: 1px 0 5px 0;
75
+ }
76
+
77
+ // .cmb-field-list .cmb-field-list {
78
+ // padding-top:5px;
79
+ // margin: 0;
80
+ // }
81
+
82
+ select {
83
+ font-size: $font-size;
84
+ margin-top: 3px;
85
+ }
86
+
87
+ input:focus,
88
+ textarea:focus {
89
+ background: $light-yellow;
90
+ }
91
+
92
+ input[type="radio"] {
93
+ margin: 0 5px 0 0;
94
+ padding: 0
95
+ }
96
+
97
+ input[type="checkbox"] {
98
+ margin: 0 5px 0 0;
99
+ padding: 0;
100
+ }
101
+
102
+ button,
103
+ .button-secondary {
104
+ white-space: nowrap;
105
+ }
106
+
107
+ .mceLayout {
108
+ border: 1px solid $light-gray !important;
109
+ }
110
+
111
+ .mceIframeContainer {
112
+ background: $white;
113
+ }
114
+
115
+ .meta_mce {
116
+ width: 97%;
117
+
118
+ textarea {
119
+ width: 100%;
120
+ }
121
+ }
122
+
123
+ // Color picker
124
+ .wp-color-result,
125
+ .wp-picker-input-wrap {
126
+ vertical-align: middle;
127
+ }
128
+
129
+ .wp-color-result,
130
+ .wp-picker-container {
131
+ margin: 0 10px 0 0;
132
+ }
133
+
134
+ .cmb-row {
135
+ margin: 0;
136
+
137
+ &:after {
138
+ content: '';
139
+ clear: both;
140
+ display: block;
141
+ width: 100%;
142
+ }
143
+
144
+ &.cmb-repeat .cmb2-metabox-description {
145
+ padding-top: 0;
146
+ padding-bottom: 1em;
147
+ }
148
+ }
149
+
150
+ }
151
+
152
+ .cmb2-metabox {
153
+ clear: both;
154
+ margin: 0;
155
+
156
+ > .cmb-row:first-of-type >,
157
+ .cmb-field-list > .cmb-row:first-of-type > {
158
+ .cmb-td,
159
+ .cmb-th {
160
+ border: 0;
161
+ }
162
+ }
163
+ }
164
+
165
+ .cmb-add-row {
166
+ margin: 1.8em 0 0;
167
+ }
168
+
169
+ .cmb-nested .cmb-td,
170
+ .cmb-repeatable-group .cmb-th,
171
+ .cmb-repeatable-group:first-of-type {
172
+ border: 0;
173
+ }
174
+
175
+ .cmb-row:last-of-type,
176
+ .cmb2-wrap .cmb-row:last-of-type,
177
+ .cmb-repeatable-group:last-of-type {
178
+ border-bottom: 0;
179
+ }
180
+
181
+ .cmb-repeatable-grouping {
182
+ border: 1px solid $light-gray;
183
+ padding: 0 1em;
184
+
185
+ &.cmb-row {
186
+ margin: 0 0 0.8em;
187
+ }
188
+
189
+ + .cmb-repeatable-grouping {
190
+ }
191
+ }
192
+
193
+ .cmb-th {
194
+ color: $dark-gray;
195
+ float: left;
196
+ font-weight: 600;
197
+ line-height: 1.3;
198
+ padding: 20px 10px 20px 0;
199
+ vertical-align: top;
200
+ width: 200px;
201
+
202
+ @media (max-width: $mobile-break) {
203
+ @include fullth;
204
+ }
205
+ }
206
+
207
+ .cmb-td {
208
+ line-height: 1.3;
209
+ max-width: 100%;
210
+ padding: 15px 10px;
211
+ vertical-align: middle;
212
+ }
213
+
214
+ .cmb-type-title {
215
+
216
+ .cmb-td {
217
+ padding: 0;
218
+ }
219
+ }
220
+
221
+ .cmb-th label {
222
+ display: block;
223
+ padding: 5px 0;
224
+ }
225
+
226
+ .cmb-th + .cmb-td {
227
+ float: left;
228
+ }
229
+
230
+ .cmb-td .cmb-td {
231
+ padding-bottom: 1em;
232
+ }
233
+
234
+ .cmb-remove-row {
235
+ text-align: right;
236
+ }
237
+
238
+ .empty-row.hidden {
239
+ display: none;
240
+ }
241
+
242
+ // Repeatable fields styles
243
+ .cmb-repeat-table {
244
+ background-color: $almostwhite;
245
+ border: 1px solid darken($light-gray, 3%);
246
+
247
+ .cmb-row.cmb-repeat-row {
248
+ position: relative;
249
+ counter-increment: el;
250
+
251
+ margin: 0;
252
+ padding: 10px 10px 10px 50px;
253
+ border-bottom: none !important; // Sometime, we need !important :).
254
+
255
+ & + .cmb-repeat-row {
256
+ border-top: solid 1px $light-gray;
257
+ }
258
+
259
+ &.ui-sortable-helper {
260
+ outline: dashed 2px $light-gray !important; // Sometime, we need !important :).
261
+ }
262
+
263
+ &:before {
264
+ content: counter(el);
265
+ display: block;
266
+
267
+ top: 0;
268
+ left: 0;
269
+ position: absolute;
270
+
271
+ width: 35px;
272
+ height: 100%;
273
+ line-height: 35px;
274
+ cursor: move;
275
+ color: $gray;
276
+ text-align: center;
277
+ border-right: solid 1px $light-gray;
278
+ }
279
+
280
+ .cmb-td {
281
+ margin: 0;
282
+ padding: 0;
283
+ }
284
+
285
+ }
286
+
287
+ + .cmb-add-row {
288
+ margin: 0;
289
+
290
+ &:before {
291
+ content: '';
292
+ width: 1px;
293
+ height: 1.6em;
294
+ display: block;
295
+ margin-left: 17px;
296
+ background-color: darken($light-gray, 5%);
297
+ }
298
+ }
299
+
300
+ .cmb-remove-row {
301
+ top: 7px;
302
+ right: 7px;
303
+ position: absolute;
304
+
305
+ width: auto;
306
+ margin-left: 0;
307
+ padding: 0 !important; // Sometime, we need !important :).
308
+
309
+ display: none;
310
+
311
+ > .cmb-remove-row-button {
312
+ font-size: 20px;
313
+ text-indent: -1000px;
314
+
315
+ overflow: hidden;
316
+ position: relative;
317
+
318
+ height: auto;
319
+ line-height: 1;
320
+ padding: 0 10px 0;
321
+
322
+ &:before {
323
+ @include pseudo-dashicons("\f335");
324
+ }
325
+ }
326
+ }
327
+
328
+ .cmb-repeat-row:hover .cmb-remove-row {
329
+ display: block;
330
+ }
331
+
332
+ }
333
+
334
+ .cmb-repeatable-group {
335
+
336
+ .cmb-th {
337
+ padding: 5px;
338
+ }
339
+
340
+ .cmb-group-title {
341
+ background-color: $light-gray;
342
+ padding: 8px 12px 8px 2.2em;
343
+ margin: 0 -1em;
344
+ min-height: 1.5em;
345
+ font-size: 14px;
346
+ line-height: 1.4;
347
+
348
+ h4 {
349
+ border: 0;
350
+ margin: 0;
351
+ font-size: 1.2em;
352
+ font-weight: 500;
353
+ padding: 0.5em 0.75em;
354
+ }
355
+
356
+ .cmb-th {
357
+ display: block;
358
+ width: 100%;
359
+ }
360
+ }
361
+
362
+ .cmb-group-description .cmb-th {
363
+ @include fullth;
364
+ }
365
+
366
+ .cmb-shift-rows {
367
+ font-size: 1em;
368
+ margin-right: 1em;
369
+ text-decoration: none;
370
+
371
+ .dashicons {
372
+ font-size: 1.5em;
373
+ height: 1.5em;
374
+ line-height: 1.2em;
375
+ width: 1em;
376
+
377
+ &.dashicons-arrow-down-alt2 {
378
+ line-height: 1.3em;
379
+
380
+ }
381
+ }
382
+ }
383
+
384
+ .cmb2-upload-button {
385
+ float: right;
386
+ }
387
+
388
+ }
389
+
390
+ p.cmb2-metabox-description {
391
+ color: $gray;
392
+ font-style: italic;
393
+ margin: 0;
394
+ padding-top: .5em;
395
+ }
396
+
397
+ span.cmb2-metabox-description {
398
+ color: $gray;
399
+ font-style: italic;
400
+ }
401
+
402
+ .cmb2-metabox-title {
403
+ margin: 0 0 5px 0;
404
+ padding: 5px 0 0 0;
405
+ font-size: 14px;
406
+ }
407
+
408
+ .cmb-inline ul {
409
+ padding: 4px 0 0 0;
410
+ }
411
+
412
+ .cmb-inline li {
413
+ display: inline-block;
414
+ padding-right: 18px;
415
+ }
416
+
417
+ .cmb-type-textarea-code pre {
418
+ margin: 0;
419
+ }
420
+
421
+ .cmb2-media-status {
422
+
423
+ .img-status {
424
+ clear: none;
425
+ display: inline-block;
426
+ vertical-align: middle;
427
+ margin-right: 10px;
428
+ width: auto;
429
+
430
+ img {
431
+ max-width: 350px;
432
+ height: auto;
433
+ }
434
+ }
435
+
436
+ .img-status img,
437
+ .embed-status {
438
+ background: $lightchecker;
439
+ border: 5px solid $white;
440
+ outline: 1px solid $light-gray;
441
+ box-shadow: inset 0 0 15px rgba( 0, 0, 0, 0.3 ), inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
442
+ background-image: linear-gradient(45deg, $darkchecker 25%, transparent 25%, transparent 75%, $darkchecker 75%, $darkchecker), linear-gradient(45deg, $darkchecker 25%, transparent 25%, transparent 75%, $darkchecker 75%, $darkchecker);
443
+ background-position: 0 0, 10px 10px;
444
+ background-size: 20px 20px;
445
+ border-radius: 2px;
446
+ -moz-border-radius: 2px;
447
+ margin: 15px 0 0 0;
448
+ }
449
+
450
+ .embed-status {
451
+ float: left;
452
+ max-width: 800px;
453
+ }
454
+
455
+ .img-status, .embed-status {
456
+ position: relative;
457
+
458
+ .cmb2-remove-file-button {
459
+ background: url(../images/ico-delete.png);
460
+ height: 16px;
461
+ left: -5px;
462
+ position: absolute;
463
+ text-indent: -9999px;
464
+ top: -5px;
465
+ width: 16px;
466
+ }
467
+
468
+ }
469
+
470
+ .img-status {
471
+
472
+ .cmb2-remove-file-button {
473
+ top: 10px;
474
+ }
475
+ }
476
+
477
+ .img-status img, .file-status > span {
478
+ cursor: pointer;
479
+ }
480
+
481
+ &.cmb-attach-list {
482
+ .img-status img, .file-status > span {
483
+ cursor: move;
484
+ }
485
+ }
486
+
487
+ }
488
+
489
+ .cmb-type-file-list .cmb2-media-status .img-status {
490
+ clear: none;
491
+ vertical-align: middle;
492
+ width: auto;
493
+ margin-right: 10px;
494
+ margin-bottom: 10px;
495
+ margin-top: 0;
496
+ }
497
+
498
+ .cmb-attach-list li {
499
+ clear: both;
500
+ display: inline-block;
501
+ width: 100%;
502
+ margin-top: 5px;
503
+ margin-bottom: 10px;
504
+ img {
505
+ float: left;
506
+ margin-right: 10px;
507
+ }
508
+ }
509
+
510
+ .cmb2-remove-wrapper {
511
+ margin: 0;
512
+ }
513
+
514
+ .child-cmb2 .cmb-th {
515
+ text-align: left;
516
+ }
517
+
518
+ .cmb2-indented-hierarchy {
519
+ padding-left: 1.5em;
520
+ }
521
+
522
+ @media (max-width: $mobile-break) {
523
+ .cmb-th,
524
+ .cmb-td,
525
+ .cmb-th + .cmb-td {
526
+ display: block;
527
+ float: none;
528
+ width: 100%;
529
+ }
530
+ }
includes/plus-options/metabox/css/sass/partials/_misc.scss ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Misc.
3
+ --------------------------------------------------------------*/
4
+
5
+ #poststuff .cmb-repeatable-group h2 {
6
+ margin: 0;
7
+ }
8
+
9
+ .edit-tags-php,
10
+ .profile-php,
11
+ .user-edit-php {
12
+ .cmb2-metabox-title {
13
+ font-size: 1.4em;
14
+ }
15
+ }
16
+
17
+ .cmb2-postbox, .cmb2-no-box-wrap {
18
+ .cmb-spinner {
19
+ float: left;
20
+ display: none;
21
+ }
22
+ }
23
+
24
+ .cmb-spinner {
25
+ display: none;
26
+ &.is-active {
27
+ display: block;
28
+ }
29
+ }
includes/plus-options/metabox/css/sass/partials/_mixins.scss ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //--------------------------------------------------------------
2
+ // Mixins
3
+ //--------------------------------------------------------------
4
+
5
+ @mixin fullth() {
6
+ font-size: 1.2em;
7
+ @include _fullth;
8
+ }
9
+
10
+ @mixin fullth_side() {
11
+
12
+ @include _fullth;
13
+
14
+ label {
15
+ font-size: $font-size;
16
+ line-height: 1.4em;
17
+ }
18
+ }
19
+
20
+ @mixin _fullth() {
21
+ display: block;
22
+ float: none;
23
+ padding-bottom: 1em;
24
+ text-align: left;
25
+ width: 100%;
26
+
27
+ label {
28
+ display: block;
29
+ margin-top: 0;
30
+ margin-bottom: 0.5em;
31
+ }
32
+ }
33
+
34
+ @mixin pseudo-dashicons( $glyph: "\f333" ) {
35
+ content: $glyph;
36
+ font-family: 'Dashicons';
37
+ speak: none;
38
+ font-weight: normal;
39
+ font-variant: normal;
40
+ text-transform: none;
41
+ line-height: 1;
42
+ -webkit-font-smoothing: antialiased;
43
+ margin: 0;
44
+ text-indent: 0;
45
+ position: absolute;
46
+ top: 0;
47
+ left: 0;
48
+ width: 100%;
49
+ height: 100%;
50
+ text-align: center;
51
+ }
includes/plus-options/metabox/css/sass/partials/_new_term.scss ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * New-Term Page
3
+ --------------------------------------------------------------*/
4
+
5
+ #addtag {
6
+ .cmb-th {
7
+ float: none;
8
+ width: auto;
9
+ padding: 20px 0 0;
10
+ }
11
+
12
+ .cmb-td {
13
+ padding: 0;
14
+ }
15
+
16
+ .cmb-th + .cmb-td {
17
+ float: none;
18
+ }
19
+
20
+ select {
21
+ max-width: 100%;
22
+ }
23
+
24
+ .cmb2-metabox {
25
+ padding-bottom: 20px;
26
+ }
27
+
28
+ .cmb-row li label {
29
+ display: inline;
30
+ }
31
+ }
includes/plus-options/metabox/css/sass/partials/_options-page.scss ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Options page
3
+ --------------------------------------------------------------*/
4
+
5
+ .cmb2-options-page {
6
+ max-width: 1200px;
7
+
8
+ &.wrap > h2 {
9
+ margin-bottom: 1em;
10
+ }
11
+
12
+ .cmb2-metabox > .cmb-row {
13
+ padding: 1em;
14
+ margin-top: -1px;
15
+ background: $white;
16
+ border: 1px solid $light-gray;
17
+ box-shadow: 0 1px 1px rgba(black, 0.05);
18
+
19
+ > .cmb-th {
20
+ padding: 0;
21
+ font-weight: initial;
22
+ }
23
+
24
+ > .cmb-th + .cmb-td {
25
+ float: none;
26
+ padding: 0 0 0 1em;
27
+ margin-left: 200px;
28
+
29
+ @media (max-width: $mobile-break) {
30
+ padding: 0;
31
+ margin-left: 0;
32
+ }
33
+ }
34
+ }
35
+
36
+ // Title field style.
37
+ .cmb2-wrap .cmb-type-title {
38
+ margin-top: 1em;
39
+ padding: 0.6em 1em;
40
+ background-color: $almostwhite;
41
+
42
+ .cmb2-metabox-title {
43
+ font-size: 12px;
44
+ margin-top: 0;
45
+ margin-bottom: 0;
46
+ text-transform: uppercase;
47
+ }
48
+
49
+ .cmb2-metabox-description {
50
+ padding-top: 0.25em;
51
+ }
52
+ }
53
+
54
+ .cmb-repeatable-group {
55
+ .cmb-group-description .cmb-th {
56
+ padding: 0 0 0.8em 0;
57
+ }
58
+
59
+ .cmb-group-name {
60
+ font-size: 16px;
61
+ margin-top: 0;
62
+ margin-bottom: 0;
63
+ }
64
+
65
+ .cmb-th > .cmb2-metabox-description {
66
+ font-weight: 400;
67
+ padding-bottom: 0 !important;
68
+ }
69
+ }
70
+
71
+ }
includes/plus-options/metabox/css/sass/partials/_post_metaboxes.scss ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Post Metaboxes
3
+ --------------------------------------------------------------*/
4
+
5
+ #poststuff .cmb-group-title {
6
+ margin-left: -1em;
7
+ margin-right: -1em;
8
+ min-height: 1.5em;
9
+ }
10
+
11
+ #poststuff .repeatable .cmb-group-title {
12
+ padding-left: 2.2em;
13
+ }
14
+
15
+ .cmb2-postbox, .cmb-type-group {
16
+
17
+ .cmb2-wrap {
18
+ margin: 0;
19
+
20
+ > .cmb-field-list > .cmb-row {
21
+ padding: 1.8em 0;
22
+ }
23
+
24
+ input[type=text] {
25
+
26
+ &.cmb2-oembed {
27
+ width: 100%;
28
+ }
29
+ }
30
+ }
31
+
32
+ .cmb-row {
33
+ padding: 0 0 1.8em;
34
+ margin: 0 0 0.8em;
35
+
36
+ .cmbhandle {
37
+ right: -1em;
38
+ position: relative;
39
+ color: $dark-gray;
40
+ }
41
+ }
42
+
43
+ .cmb-repeatable-grouping {
44
+ padding: 0 1em;
45
+ max-width: 100%;
46
+ min-width: 1px !important;
47
+ }
48
+
49
+ .cmb-repeatable-group > .cmb-row {
50
+ padding-bottom: 0;
51
+ }
52
+
53
+ .cmb-th {
54
+ width: 18%;
55
+ padding: 0 2% 0 0;
56
+ // text-align: right;
57
+ }
58
+
59
+ .cmb-td {
60
+ margin-bottom: 0;
61
+ padding: 0;
62
+ line-height: 1.3;
63
+ }
64
+
65
+ .cmb-th + .cmb-td {
66
+ width: 80%;
67
+ float: right;
68
+ }
69
+
70
+ .cmb-row:not(:last-of-type),
71
+ .cmb-repeatable-group:not(:last-of-type) {
72
+ border-bottom: 1px solid $light-gray;
73
+
74
+ @media (max-width: $mobile-break) {
75
+ border-bottom: 0;
76
+ }
77
+ }
78
+
79
+ .cmb-repeat-group-field,
80
+ .cmb-remove-field-row {
81
+ padding-top: 1.8em;
82
+ }
83
+
84
+ }
includes/plus-options/metabox/css/sass/partials/_sidebar_placements.scss ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*--------------------------------------------------------------
2
+ * Sidebar Placement Adjustments
3
+ --------------------------------------------------------------*/
4
+
5
+ .inner-sidebar,
6
+ #side-sortables {
7
+
8
+ .cmb2-wrap {
9
+
10
+ > .cmb-field-list > .cmb-row {
11
+ padding: 1.4em 0;
12
+ }
13
+
14
+ input {
15
+
16
+ &[type=text]:not( .wp-color-picker ) {
17
+ width: 100%;
18
+ }
19
+
20
+ + input:not( .wp-picker-clear ), + select {
21
+ margin-left: 0;
22
+ margin-top: 1em;
23
+ display: block;
24
+ }
25
+
26
+ &.cmb2-text-money {
27
+ max-width: 70%;
28
+ + .cmb2-metabox-description {
29
+ display: block;
30
+ }
31
+ }
32
+ }
33
+
34
+ label {
35
+ display: block;
36
+ font-weight: 700;
37
+ padding: 0 0 5px;
38
+ }
39
+
40
+ }
41
+
42
+ textarea {
43
+ max-width: 99%;
44
+ }
45
+
46
+ .cmb-repeatable-group {
47
+ border-bottom: 1px solid $light-gray;
48
+ }
49
+
50
+ .cmb-type-group > .cmb-td > .cmb-repeatable-group {
51
+ border-bottom: 0;
52
+ margin-bottom: -1.4em;
53
+ }
54
+
55
+ .cmb-th,
56
+ .cmb-td:not(.cmb-remove-row),
57
+ .cmb-th + .cmb-td {
58
+ width: 100%;
59
+ display: block;
60
+ float: none;
61
+ }
62
+
63
+ .closed .inside {
64
+ display: none;
65
+ }
66
+
67
+ .cmb-th {
68
+ @include fullth_side;
69
+ padding-left: 0;
70
+ padding-right: 0;
71
+ }
72
+
73
+ .cmb-group-description {
74
+ .cmb-th {
75
+ padding-top: 0;
76
+ }
77
+ .cmb2-metabox-description {
78
+ padding: 0;
79
+ }
80
+ }
81
+
82
+ .cmb-group-title {
83
+ // padding-bottom: 0;
84
+ .cmb-th {
85
+ padding: 0;
86
+ }
87
+ }
88
+
89
+ .cmb-repeatable-grouping {
90
+ + .cmb-repeatable-grouping {
91
+ margin-top: 1em;
92
+ }
93
+ }
94
+ .cmb2-media-status {
95
+
96
+ .img-status,
97
+ .embed-status {
98
+
99
+ img {
100
+ max-width: 90%;
101
+ // width: auto;
102
+ height: auto;
103
+ }
104
+ }
105
+ }
106
+
107
+ .cmb2-list label {
108
+ display: inline;
109
+ font-weight: normal;
110
+ }
111
+
112
+ .cmb2-metabox-description {
113
+ display: block;
114
+ padding: 7px 0 0;
115
+ }
116
+
117
+ .cmb-type-checkbox {
118
+
119
+ .cmb-td label,
120
+ .cmb2-metabox-description {
121
+ font-weight: normal;
122
+ display: inline;
123
+ }
124
+ }
125
+
126
+ .cmb-row .cmb2-metabox-description {
127
+ padding-bottom: 1.8em;
128
+ }
129
+
130
+ .cmb2-metabox-title {
131
+ font-size: 1.2em;
132
+ font-style: italic;
133
+ }
134
+
135
+ .cmb-remove-row {
136
+ clear: both;
137
+ padding-top: 12px;
138
+ padding-bottom: 0;
139
+ }
140
+
141
+ .cmb2-upload-button {
142
+ clear: both;
143
+ margin-top: 12px;
144
+ }
145
+
146
+ }
includes/plus-options/metabox/css/sass/partials/_variables.scss ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //--------------------------------------------------------------
2
+ // Variables
3
+ //--------------------------------------------------------------
4
+
5
+ // Mobile break-point
6
+ $mobile-break : 450px;
7
+
8
+ // Fonts
9
+ $font-sans : sans-serif;
10
+ $font-serif : Georgia, Times, "Times New Roman", serif;
11
+ $font-mono : "Courier 10 Pitch", Courier, monospace;
12
+ $font-size : 14px;
13
+
14
+ // Colors
15
+ $dark-gray : #222222;
16
+ $gray : #757575;
17
+ $light-gray : #e9e9e9;
18
+ $lightchecker : #eee;
19
+ $darkchecker : #d0d0d0;
20
+ $blue : #0063ce;
21
+ $light-yellow : #fffff8;
22
+ $white : #ffffff;
23
+ $almostwhite : #fafafa;
24
+ $red : #f00;
25
+ $dark-red : #a00;
includes/plus-options/metabox/css/sass/partials/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden
includes/plus-options/metabox/helpers/cmb_Meta_Box_ajax.php CHANGED
@@ -58,7 +58,7 @@ class cmb_Meta_Box_ajax {
58
  $html = self::get_oembed( $oembed_url, $_REQUEST['object_id'], array(
59
  'object_type' => isset( $_REQUEST['object_type'] ) ? $_REQUEST['object_type'] : 'post',
60
  'oembed_args' => $embed_args,
61
- 'field_id' => $_REQUEST['field_id'],
62
  ) );
63
 
64
  self::send_result( $html );
@@ -128,10 +128,10 @@ class cmb_Meta_Box_ajax {
128
 
129
  // Send back our embed
130
  if ( $check_embed && $check_embed != $fallback )
131
- return '<div class="embed_status">'. $check_embed .'<p class="cmb_remove_wrapper"><a href="#" class="cmb_remove_file_button" rel="'. $args['field_id'] .'">'. __( 'Remove Embed', 'cmb' ) .'</a></p></div>';
132
 
133
  // Otherwise, send back error info that no oEmbeds were found
134
- return '<p class="ui-state-error-text">'. sprintf( __( 'No oEmbed Results Found for %s. View more info at', 'cmb' ), $fallback ) .' <a href="http://codex.wordpress.org/Embeds" target="_blank">codex.wordpress.org/Embeds</a>.</p>';
135
 
136
  }
137
 
58
  $html = self::get_oembed( $oembed_url, $_REQUEST['object_id'], array(
59
  'object_type' => isset( $_REQUEST['object_type'] ) ? $_REQUEST['object_type'] : 'post',
60
  'oembed_args' => $embed_args,
61
+ 'field_id' => sanitize_text_field($_REQUEST['field_id']),
62
  ) );
63
 
64
  self::send_result( $html );
128
 
129
  // Send back our embed
130
  if ( $check_embed && $check_embed != $fallback )
131
+ return '<div class="embed_status">'. $check_embed .'<p class="cmb_remove_wrapper"><a href="#" class="cmb_remove_file_button" rel="'. esc_attr($args['field_id']) .'">'. __( 'Remove Embed', 'theplus' ) .'</a></p></div>';
132
 
133
  // Otherwise, send back error info that no oEmbeds were found
134
+ return '<p class="ui-state-error-text">'. sprintf( __( 'No oEmbed Results Found for %s. View more info at', 'theplus' ), $fallback ) .' <a href="http://codex.wordpress.org/Embeds" target="_blank">codex.wordpress.org/Embeds</a>.</p>';
135
 
136
  }
137
 
includes/plus-options/metabox/images/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden
includes/plus-options/metabox/includes/CMB2.php ADDED
@@ -0,0 +1,1764 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 - The core metabox object
4
+ *
5
+ * @category WordPress_Plugin
6
+ * @package CMB2
7
+ * @author CMB2 team
8
+ * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
+ *
11
+ * @property-read string $cmb_id
12
+ * @property-read array $meta_box
13
+ * @property-read array $updated
14
+ * @property-read bool $has_columns
15
+ * @property-read array $tax_metaboxes_to_remove
16
+ */
17
+
18
+ /**
19
+ * The main CMB2 object for storing box data/properties.
20
+ */
21
+ class CMB2 extends CMB2_Base {
22
+
23
+ /**
24
+ * The object properties name.
25
+ *
26
+ * @var string
27
+ * @since 2.2.3
28
+ */
29
+ protected $properties_name = 'meta_box';
30
+
31
+ /**
32
+ * Metabox Config array
33
+ *
34
+ * @var array
35
+ * @since 0.9.0
36
+ */
37
+ protected $meta_box = array();
38
+
39
+ /**
40
+ * Type of object registered for metabox. (e.g., post, user, or comment)
41
+ *
42
+ * @var string
43
+ * @since 1.0.0
44
+ */
45
+ protected $mb_object_type = null;
46
+
47
+ /**
48
+ * List of fields that are changed/updated on save
49
+ *
50
+ * @var array
51
+ * @since 1.1.0
52
+ */
53
+ protected $updated = array();
54
+
55
+ /**
56
+ * Metabox Defaults
57
+ *
58
+ * @var array
59
+ * @since 1.0.1
60
+ */
61
+ protected $mb_defaults = array(
62
+ 'id' => '',
63
+ 'title' => '',
64
+ // Post type slug, or 'user', 'term', 'comment', or 'options-page'.
65
+ 'object_types' => array(),
66
+
67
+ /**
68
+ * The context within the screen where the boxes should display. Available contexts vary
69
+ * from screen to screen. Post edit screen contexts include 'normal', 'side', and 'advanced'.
70
+ *
71
+ * For placement in locations outside of a metabox, other options include:
72
+ * 'form_top', 'before_permalink', 'after_title', 'after_editor'
73
+ *
74
+ * Comments screen contexts include 'normal' and 'side'. Default is 'normal'.
75
+ */
76
+ 'context' => 'normal',
77
+ 'priority' => 'high',
78
+ 'show_names' => true, // Show field names on the left.
79
+ 'show_on_cb' => null, // Callback to determine if metabox should display.
80
+ 'show_on' => array(), // Post IDs or page templates to display this metabox. overrides 'show_on_cb'.
81
+ 'cmb_styles' => true, // Include CMB2 stylesheet.
82
+ 'enqueue_js' => true, // Include CMB2 JS.
83
+ 'fields' => array(),
84
+
85
+ /**
86
+ * Handles hooking CMB2 forms/metaboxes into the post/attachement/user/options-page screens
87
+ * and handles hooking in and saving those fields.
88
+ */
89
+ 'hookup' => true,
90
+ 'save_fields' => true, // Will not save during hookup if false.
91
+ 'closed' => false, // Default metabox to being closed.
92
+ 'taxonomies' => array(),
93
+ 'new_user_section' => 'add-new-user', // or 'add-existing-user'.
94
+ 'new_term_section' => true,
95
+ 'show_in_rest' => false,
96
+ 'classes' => null, // Optionally add classes to the CMB2 wrapper.
97
+ 'classes_cb' => '', // Optionally add classes to the CMB2 wrapper (via a callback).
98
+
99
+ /*
100
+ * The following parameter is for post alternate-context metaboxes only.
101
+ *
102
+ * To output the fields 'naked' (without a postbox wrapper/style), then
103
+ * add a `'remove_box_wrap' => true` to your metabox registration array.
104
+ */
105
+ 'remove_box_wrap' => false,
106
+
107
+ /*
108
+ * The following parameter is any additional arguments passed as $callback_args
109
+ * to add_meta_box, if/when applicable.
110
+ *
111
+ * CMB2 does not use these arguments in the add_meta_box callback, however, these args
112
+ * are parsed for certain special properties, like determining Gutenberg/block-editor
113
+ * compatibility.
114
+ *
115
+ * Examples:
116
+ *
117
+ * - Make sure default editor is used as metabox is not compatible with block editor
118
+ * [ '__block_editor_compatible_meta_box' => false/true ]
119
+ *
120
+ * - Or declare this box exists for backwards compatibility
121
+ * [ '__back_compat_meta_box' => false ]
122
+ *
123
+ * More: https://wordpress.org/gutenberg/handbook/extensibility/meta-box/
124
+ */
125
+ 'mb_callback_args' => null,
126
+
127
+ /*
128
+ * The following parameters are for options-page metaboxes,
129
+ * and several are passed along to add_menu_page()/add_submenu_page()
130
+ */
131
+
132
+ // 'menu_title' => null, // Falls back to 'title' (above). Do not define here so we can set a fallback.
133
+ 'message_cb' => '', // Optionally define the options-save message (via a callback).
134
+ 'option_key' => '', // The actual option key and admin menu page slug.
135
+ 'parent_slug' => '', // Used as first param in add_submenu_page().
136
+ 'capability' => 'manage_options', // Cap required to view options-page.
137
+ 'icon_url' => '', // Menu icon. Only applicable if 'parent_slug' is left empty.
138
+ 'position' => null, // Menu position. Only applicable if 'parent_slug' is left empty.
139
+
140
+ 'admin_menu_hook' => 'admin_menu', // Alternately 'network_admin_menu' to add network-level options page.
141
+ 'display_cb' => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
142
+ 'save_button' => '', // The text for the options-page save button. Defaults to 'Save'.
143
+ 'disable_settings_errors' => false, // On settings pages (not options-general.php sub-pages), allows disabling.
144
+ 'tab_group' => '', // Tab-group identifier, enables options page tab navigation.
145
+ // 'tab_title' => null, // Falls back to 'title' (above). Do not define here so we can set a fallback.
146
+ // 'autoload' => true, // Defaults to true, the options-page option will be autloaded.
147
+ );
148
+
149
+ /**
150
+ * Metabox field objects
151
+ *
152
+ * @var array
153
+ * @since 2.0.3
154
+ */
155
+ protected $fields = array();
156
+
157
+ /**
158
+ * An array of hidden fields to output at the end of the form
159
+ *
160
+ * @var array
161
+ * @since 2.0.0
162
+ */
163
+ protected $hidden_fields = array();
164
+
165
+ /**
166
+ * Array of key => value data for saving. Likely $_POST data.
167
+ *
168
+ * @var string
169
+ * @since 2.0.0
170
+ */
171
+ protected $generated_nonce = '';
172
+
173
+ /**
174
+ * Whether there are fields to be shown in columns. Set in CMB2::add_field().
175
+ *
176
+ * @var bool
177
+ * @since 2.2.2
178
+ */
179
+ protected $has_columns = false;
180
+
181
+ /**
182
+ * If taxonomy field is requesting to remove_default, we store the taxonomy here.
183
+ *
184
+ * @var array
185
+ * @since 2.2.3
186
+ */
187
+ protected $tax_metaboxes_to_remove = array();
188
+
189
+ /**
190
+ * Get started
191
+ *
192
+ * @since 0.4.0
193
+ * @param array $config Metabox config array.
194
+ * @param integer $object_id Optional object id.
195
+ */
196
+ public function __construct( $config, $object_id = 0 ) {
197
+
198
+ if ( empty( $config['id'] ) ) {
199
+ wp_die( esc_html__( 'Metabox configuration is required to have an ID parameter.', 'cmb2' ) );
200
+ }
201
+
202
+ $this->cmb_id = $config['id'];
203
+ $this->meta_box = wp_parse_args( $config, $this->mb_defaults );
204
+ $this->meta_box['fields'] = array();
205
+
206
+ // Ensures object_types is an array.
207
+ $this->set_prop( 'object_types', $this->box_types() );
208
+ $this->object_id( $object_id );
209
+
210
+ if ( $this->is_options_page_mb() ) {
211
+ $this->init_options_mb();
212
+ }
213
+
214
+ $this->mb_object_type();
215
+
216
+ if ( ! empty( $config['fields'] ) && is_array( $config['fields'] ) ) {
217
+ $this->add_fields( $config['fields'] );
218
+ }
219
+
220
+ CMB2_Boxes::add( $this );
221
+
222
+ /**
223
+ * Hook during initiation of CMB2 object
224
+ *
225
+ * The dynamic portion of the hook name, $this->cmb_id, is this meta_box id.
226
+ *
227
+ * @param array $cmb This CMB2 object
228
+ */
229
+ do_action( "cmb2_init_{$this->cmb_id}", $this );
230
+
231
+ // Hook in the hookup... how meta.
232
+ add_action( "cmb2_init_hookup_{$this->cmb_id}", array( 'CMB2_hookup', 'maybe_init_and_hookup' ) );
233
+
234
+ // Hook in the rest api functionality.
235
+ add_action( "cmb2_init_hookup_{$this->cmb_id}", array( 'CMB2_REST', 'maybe_init_and_hookup' ) );
236
+ }
237
+
238
+ /**
239
+ * Loops through and displays fields
240
+ *
241
+ * @since 1.0.0
242
+ * @param int $object_id Object ID.
243
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment).
244
+ *
245
+ * @return CMB2
246
+ */
247
+ public function show_form( $object_id = 0, $object_type = '' ) {
248
+ $this->render_form_open( $object_id, $object_type );
249
+
250
+ foreach ( $this->prop( 'fields' ) as $field_args ) {
251
+ $this->render_field( $field_args );
252
+ }
253
+
254
+ return $this->render_form_close( $object_id, $object_type );
255
+ }
256
+
257
+ /**
258
+ * Outputs the opening form markup and runs corresponding hooks:
259
+ * 'cmb2_before_form' and "cmb2_before_{$object_type}_form_{$this->cmb_id}"
260
+ *
261
+ * @since 2.2.0
262
+ * @param integer $object_id Object ID.
263
+ * @param string $object_type Object type.
264
+ *
265
+ * @return CMB2
266
+ */
267
+ public function render_form_open( $object_id = 0, $object_type = '' ) {
268
+ $object_type = $this->object_type( $object_type );
269
+ $object_id = $this->object_id( $object_id );
270
+
271
+ echo "\n<!-- Begin CMB2 Fields -->\n";
272
+
273
+ $this->nonce_field();
274
+
275
+ /**
276
+ * Hook before form table begins
277
+ *
278
+ * @param array $cmb_id The current box ID.
279
+ * @param int $object_id The ID of the current object.
280
+ * @param string $object_type The type of object you are working with.
281
+ * Usually `post` (this applies to all post-types).
282
+ * Could also be `comment`, `user` or `options-page`.
283
+ * @param array $cmb This CMB2 object.
284
+ */
285
+ do_action( 'cmb2_before_form', $this->cmb_id, $object_id, $object_type, $this );
286
+
287
+ /**
288
+ * Hook before form table begins
289
+ *
290
+ * The first dynamic portion of the hook name, $object_type, is the type of object
291
+ * you are working with. Usually `post` (this applies to all post-types).
292
+ * Could also be `comment`, `user` or `options-page`.
293
+ *
294
+ * The second dynamic portion of the hook name, $this->cmb_id, is the meta_box id.
295
+ *
296
+ * @param array $cmb_id The current box ID
297
+ * @param int $object_id The ID of the current object
298
+ * @param array $cmb This CMB2 object
299
+ */
300
+ do_action( "cmb2_before_{$object_type}_form_{$this->cmb_id}", $object_id, $this );
301
+
302
+ echo '<div class="', esc_attr( $this->box_classes() ), '"><div id="cmb2-metabox-', sanitize_html_class( $this->cmb_id ), '" class="cmb2-metabox cmb-field-list">';
303
+
304
+ return $this;
305
+ }
306
+
307
+ /**
308
+ * Defines the classes for the CMB2 form/wrap.
309
+ *
310
+ * @since 2.0.0
311
+ * @return string Space concatenated list of classes
312
+ */
313
+ public function box_classes() {
314
+
315
+ $classes = array( 'cmb2-wrap', 'form-table' );
316
+
317
+ // Use the callback to fetch classes.
318
+ if ( $added_classes = $this->get_param_callback_result( 'classes_cb' ) ) {
319
+ $added_classes = is_array( $added_classes ) ? $added_classes : array( $added_classes );
320
+ $classes = array_merge( $classes, $added_classes );
321
+ }
322
+
323
+ if ( $added_classes = $this->prop( 'classes' ) ) {
324
+ $added_classes = is_array( $added_classes ) ? $added_classes : array( $added_classes );
325
+ $classes = array_merge( $classes, $added_classes );
326
+ }
327
+
328
+ /**
329
+ * Add our context classes for non-standard metaboxes.
330
+ *
331
+ * @since 2.2.4
332
+ */
333
+ if ( $this->is_alternate_context_box() ) {
334
+ $context = array();
335
+
336
+ // Include custom class if requesting no title.
337
+ if ( ! $this->prop( 'title' ) && ! $this->prop( 'remove_box_wrap' ) ) {
338
+ $context[] = 'cmb2-context-wrap-no-title';
339
+ }
340
+
341
+ // Include a generic context wrapper.
342
+ $context[] = 'cmb2-context-wrap';
343
+
344
+ // Include a context-type based context wrapper.
345
+ $context[] = 'cmb2-context-wrap-' . $this->prop( 'context' );
346
+
347
+ // Include an ID based context wrapper as well.
348
+ $context[] = 'cmb2-context-wrap-' . $this->prop( 'id' );
349
+
350
+ // And merge all the classes back into the array.
351
+ $classes = array_merge( $classes, $context );
352
+ }
353
+
354
+ /**
355
+ * Globally filter box wrap classes
356
+ *
357
+ * @since 2.2.2
358
+ *
359
+ * @param string $classes Array of classes for the cmb2-wrap.
360
+ * @param CMB2 $cmb This CMB2 object.
361
+ */
362
+ $classes = apply_filters( 'cmb2_wrap_classes', $classes, $this );
363
+
364
+ // Clean up.
365
+ $classes = array_map( 'strip_tags', array_filter( $classes ) );
366
+
367
+ // Remove any duplicates.
368
+ $classes = array_unique( $classes );
369
+
370
+ // Make a string.
371
+ return implode( ' ', $classes );
372
+ }
373
+
374
+ /**
375
+ * Outputs the closing form markup and runs corresponding hooks:
376
+ * 'cmb2_after_form' and "cmb2_after_{$object_type}_form_{$this->cmb_id}"
377
+ *
378
+ * @since 2.2.0
379
+ * @param integer $object_id Object ID.
380
+ * @param string $object_type Object type.
381
+ *
382
+ * @return CMB2
383
+ */
384
+ public function render_form_close( $object_id = 0, $object_type = '' ) {
385
+ $object_type = $this->object_type( $object_type );
386
+ $object_id = $this->object_id( $object_id );
387
+
388
+ echo '</div></div>';
389
+
390
+ $this->render_hidden_fields();
391
+
392
+ /**
393
+ * Hook after form form has been rendered
394
+ *
395
+ * The dynamic portion of the hook name, $this->cmb_id, is the meta_box id.
396
+ *
397
+ * The first dynamic portion of the hook name, $object_type, is the type of object
398
+ * you are working with. Usually `post` (this applies to all post-types).
399
+ * Could also be `comment`, `user` or `options-page`.
400
+ *
401
+ * @param int $object_id The ID of the current object
402
+ * @param array $cmb This CMB2 object
403
+ */
404
+ do_action( "cmb2_after_{$object_type}_form_{$this->cmb_id}", $object_id, $this );
405
+
406
+ /**
407
+ * Hook after form form has been rendered
408
+ *
409
+ * @param array $cmb_id The current box ID.
410
+ * @param int $object_id The ID of the current object.
411
+ * @param string $object_type The type of object you are working with.
412
+ * Usually `post` (this applies to all post-types).
413
+ * Could also be `comment`, `user` or `options-page`.
414
+ * @param array $cmb This CMB2 object.
415
+ */
416
+ do_action( 'cmb2_after_form', $this->cmb_id, $object_id, $object_type, $this );
417
+
418
+ echo "\n<!-- End CMB2 Fields -->\n";
419
+
420
+ return $this;
421
+ }
422
+
423
+ /**
424
+ * Renders a field based on the field type
425
+ *
426
+ * @since 2.2.0
427
+ * @param array $field_args A field configuration array.
428
+ * @return mixed CMB2_Field object if successful.
429
+ */
430
+ public function render_field( $field_args ) {
431
+ $field_args['context'] = $this->prop( 'context' );
432
+
433
+ if ( 'group' === $field_args['type'] ) {
434
+
435
+ if ( ! isset( $field_args['show_names'] ) ) {
436
+ $field_args['show_names'] = $this->prop( 'show_names' );
437
+ }
438
+ $field = $this->render_group( $field_args );
439
+
440
+ } elseif ( 'hidden' === $field_args['type'] && $this->get_field( $field_args )->should_show() ) {
441
+ // Save rendering for after the metabox.
442
+ $field = $this->add_hidden_field( $field_args );
443
+
444
+ } else {
445
+
446
+ $field_args['show_names'] = $this->prop( 'show_names' );
447
+
448
+ // Render default fields.
449
+ $field = $this->get_field( $field_args )->render_field();
450
+ }
451
+
452
+ return $field;
453
+ }
454
+
455
+ /**
456
+ * Render a group of fields.
457
+ *
458
+ * @param array|CMB2_Field $args Array of field arguments for a group field parent or the group parent field.
459
+ * @return CMB2_Field|null Group field object.
460
+ */
461
+ public function render_group( $args ) {
462
+ $field_group = false;
463
+
464
+ if ( $args instanceof CMB2_Field ) {
465
+ $field_group = 'group' === $args->type() ? $args : false;
466
+ } elseif ( isset( $args['id'], $args['fields'] ) && is_array( $args['fields'] ) ) {
467
+ $field_group = $this->get_field( $args );
468
+ }
469
+
470
+ if ( ! $field_group ) {
471
+ return;
472
+ }
473
+
474
+ $field_group->render_context = 'edit';
475
+ $field_group->peform_param_callback( 'render_row_cb' );
476
+
477
+ return $field_group;
478
+ }
479
+
480
+ /**
481
+ * The default callback to render a group of fields.
482
+ *
483
+ * @since 2.2.6
484
+ *
485
+ * @param array $field_args Array of field arguments for the group field parent.
486
+ * @param CMB2_Field $field_group The CMB2_Field group object.
487
+ *
488
+ * @return CMB2_Field|null Group field object.
489
+ */
490
+ public function render_group_callback( $field_args, $field_group ) {
491
+
492
+ // If field is requesting to be conditionally shown.
493
+ if ( ! $field_group || ! $field_group->should_show() ) {
494
+ return;
495
+ }
496
+
497
+ $field_group->index = 0;
498
+
499
+ $field_group->peform_param_callback( 'before_group' );
500
+
501
+ $desc = $field_group->args( 'description' );
502
+ $label = $field_group->args( 'name' );
503
+ $group_val = (array) $field_group->value();
504
+
505
+ echo '<div class="cmb-row cmb-repeat-group-wrap ', esc_attr( $field_group->row_classes() ), '" data-fieldtype="group"><div class="cmb-td"><div data-groupid="', esc_attr( $field_group->id() ), '" id="', esc_attr( $field_group->id() ), '_repeat" ', $this->group_wrap_attributes( $field_group ), '>';
506
+
507
+ if ( $desc || $label ) {
508
+ $class = $desc ? ' cmb-group-description' : '';
509
+ echo '<div class="cmb-row', $class, '"><div class="cmb-th">';
510
+ if ( $label ) {
511
+ echo '<h2 class="cmb-group-name">', $label, '</h2>';
512
+ }
513
+ if ( $desc ) {
514
+ echo '<p class="cmb2-metabox-description">', $desc, '</p>';
515
+ }
516
+ echo '</div></div>';
517
+ }
518
+
519
+ if ( ! empty( $group_val ) ) {
520
+ foreach ( $group_val as $group_key => $field_id ) {
521
+ $this->render_group_row( $field_group );
522
+ $field_group->index++;
523
+ }
524
+ } else {
525
+ $this->render_group_row( $field_group );
526
+ }
527
+
528
+ if ( $field_group->args( 'repeatable' ) ) {
529
+ echo '<div class="cmb-row"><div class="cmb-td"><p class="cmb-add-row"><button type="button" data-selector="', esc_attr( $field_group->id() ), '_repeat" data-grouptitle="', esc_attr( $field_group->options( 'group_title' ) ), '" class="cmb-add-group-row button-secondary">', $field_group->options( 'add_button' ), '</button></p></div></div>';
530
+ }
531
+
532
+ echo '</div></div></div>';
533
+
534
+ $field_group->peform_param_callback( 'after_group' );
535
+
536
+ return $field_group;
537
+ }
538
+
539
+ /**
540
+ * Get the group wrap attributes, which are passed through a filter.
541
+ *
542
+ * @since 2.2.3
543
+ * @param CMB2_Field $field_group The group CMB2_Field object.
544
+ * @return string The attributes string.
545
+ */
546
+ public function group_wrap_attributes( $field_group ) {
547
+ $classes = 'cmb-nested cmb-field-list cmb-repeatable-group';
548
+ $classes .= $field_group->options( 'sortable' ) ? ' sortable' : ' non-sortable';
549
+ $classes .= $field_group->args( 'repeatable' ) ? ' repeatable' : ' non-repeatable';
550
+
551
+ $group_wrap_attributes = array(
552
+ 'class' => $classes,
553
+ 'style' => 'width:100%;',
554
+ );
555
+
556
+ /**
557
+ * Allow for adding additional HTML attributes to a group wrapper.
558
+ *
559
+ * The attributes will be an array of key => value pairs for each attribute.
560
+ *
561
+ * @since 2.2.2
562
+ *
563
+ * @param string $group_wrap_attributes Current attributes array.
564
+ * @param CMB2_Field $field_group The group CMB2_Field object.
565
+ */
566
+ $group_wrap_attributes = apply_filters( 'cmb2_group_wrap_attributes', $group_wrap_attributes, $field_group );
567
+
568
+ $atts = array();
569
+ foreach ( $group_wrap_attributes as $att => $att_value ) {
570
+ if ( ! CMB2_Utils::is_data_attribute( $att ) ) {
571
+ $att_value = htmlspecialchars( $att_value );
572
+ }
573
+
574
+ $atts[ sanitize_html_class( $att ) ] = sanitize_text_field( strip_tags( $att_value ) );
575
+ }
576
+
577
+ return CMB2_Utils::concat_attrs( $atts );
578
+ }
579
+
580
+ /**
581
+ * Render a repeatable group row
582
+ *
583
+ * @since 1.0.2
584
+ * @param CMB2_Field $field_group CMB2_Field group field object.
585
+ *
586
+ * @return CMB2
587
+ */
588
+ public function render_group_row( $field_group ) {
589
+
590
+ $field_group->peform_param_callback( 'before_group_row' );
591
+ $closed_class = $field_group->options( 'closed' ) ? ' closed' : '';
592
+ $confirm_deletion = $field_group->options( 'remove_confirm' );
593
+ $confirm_deletion = ! empty( $confirm_deletion ) ? $confirm_deletion : '';
594
+
595
+ echo '
596
+ <div id="cmb-group-', $field_group->id(), '-', $field_group->index, '" class="postbox cmb-row cmb-repeatable-grouping', $closed_class, '" data-iterator="', $field_group->index, '">';
597
+
598
+ if ( $field_group->args( 'repeatable' ) ) {
599
+ echo '<button type="button" data-selector="', $field_group->id(), '_repeat" data-confirm="', esc_attr( $confirm_deletion ), '" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="', esc_attr( $field_group->options( 'remove_button' ) ), '"></button>';
600
+ }
601
+
602
+ echo '
603
+ <div class="cmbhandle" title="' , esc_attr__( 'Click to toggle', 'cmb2' ), '"><br></div>
604
+ <h3 class="cmb-group-title cmbhandle-title"><span>', $field_group->replace_hash( $field_group->options( 'group_title' ) ), '</span></h3>
605
+
606
+ <div class="inside cmb-td cmb-nested cmb-field-list">';
607
+ // Loop and render repeatable group fields.
608
+ foreach ( array_values( $field_group->args( 'fields' ) ) as $field_args ) {
609
+ if ( 'hidden' === $field_args['type'] ) {
610
+
611
+ // Save rendering for after the metabox.
612
+ $this->add_hidden_field( $field_args, $field_group );
613
+
614
+ } else {
615
+
616
+ $field_args['show_names'] = $field_group->args( 'show_names' );
617
+ $field_args['context'] = $field_group->args( 'context' );
618
+
619
+ $this->get_field( $field_args, $field_group )->render_field();
620
+ }
621
+ }
622
+
623
+ if ( $field_group->args( 'repeatable' ) ) {
624
+ echo '
625
+ <div class="cmb-row cmb-remove-field-row">
626
+ <div class="cmb-remove-row">
627
+ <button type="button" data-selector="', $field_group->id(), '_repeat" data-confirm="', esc_attr( $confirm_deletion ), '" class="cmb-remove-group-row cmb-remove-group-row-button alignright button-secondary">', $field_group->options( 'remove_button' ), '</button>
628
+ </div>
629
+ </div>
630
+ ';
631
+ }
632
+ echo '
633
+ </div>
634
+ </div>
635
+ ';
636
+
637
+ $field_group->peform_param_callback( 'after_group_row' );
638
+
639
+ return $this;
640
+ }
641
+
642
+ /**
643
+ * Add a hidden field to the list of hidden fields to be rendered later.
644
+ *
645
+ * @since 2.0.0
646
+ *
647
+ * @param array $field_args Array of field arguments to be passed to CMB2_Field.
648
+ * @param CMB2_Field|null $field_group CMB2_Field group field object.
649
+ * @return CMB2_Field
650
+ */
651
+ public function add_hidden_field( $field_args, $field_group = null ) {
652
+ if ( isset( $field_args['field_args'] ) ) {
653
+ // For back-compatibility.
654
+ $field = new CMB2_Field( $field_args );
655
+ } else {
656
+ $field = $this->get_new_field( $field_args, $field_group );
657
+ }
658
+
659
+ $types = new CMB2_Types( $field );
660
+
661
+ if ( $field_group ) {
662
+ $types->iterator = $field_group->index;
663
+ }
664
+
665
+ $this->hidden_fields[] = $types;
666
+
667
+ return $field;
668
+ }
669
+
670
+ /**
671
+ * Loop through and output hidden fields
672
+ *
673
+ * @since 2.0.0
674
+ *
675
+ * @return CMB2
676
+ */
677
+ public function render_hidden_fields() {
678
+ if ( ! empty( $this->hidden_fields ) ) {
679
+ foreach ( $this->hidden_fields as $hidden ) {
680
+ $hidden->render();
681
+ }
682
+ }
683
+
684
+ return $this;
685
+ }
686
+
687
+ /**
688
+ * Returns array of sanitized field values (without saving them)
689
+ *
690
+ * @since 2.0.3
691
+ * @param array $data_to_sanitize Array of field_id => value data for sanitizing (likely $_POST data).
692
+ * @return mixed
693
+ */
694
+ public function get_sanitized_values( array $data_to_sanitize ) {
695
+ $this->data_to_save = $data_to_sanitize;
696
+ $stored_id = $this->object_id();
697
+
698
+ // We do this So CMB will sanitize our data for us, but not save it.
699
+ $this->object_id( '_' );
700
+
701
+ // Ensure temp. data store is empty.
702
+ cmb2_options( 0 )->set();
703
+
704
+ // We want to get any taxonomy values back.
705
+ add_filter( "cmb2_return_taxonomy_values_{$this->cmb_id}", '__return_true' );
706
+
707
+ // Process/save fields.
708
+ $this->process_fields();
709
+
710
+ // Put things back the way they were.
711
+ remove_filter( "cmb2_return_taxonomy_values_{$this->cmb_id}", '__return_true' );
712
+
713
+ // Get data from temp. data store.
714
+ $sanitized_values = cmb2_options( 0 )->get_options();
715
+
716
+ // Empty out temp. data store again.
717
+ cmb2_options( 0 )->set();
718
+
719
+ // Reset the object id.
720
+ $this->object_id( $stored_id );
721
+
722
+ return $sanitized_values;
723
+ }
724
+
725
+ /**
726
+ * Loops through and saves field data
727
+ *
728
+ * @since 1.0.0
729
+ * @param int $object_id Object ID.
730
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment).
731
+ * @param array $data_to_save Array of key => value data for saving. Likely $_POST data.
732
+ *
733
+ * @return CMB2
734
+ */
735
+ public function save_fields( $object_id = 0, $object_type = '', $data_to_save = array() ) {
736
+
737
+ // Fall-back to $_POST data.
738
+ $this->data_to_save = ! empty( $data_to_save ) ? $data_to_save : $_POST;
739
+ $object_id = $this->object_id( $object_id );
740
+ $object_type = $this->object_type( $object_type );
741
+
742
+ $this->process_fields();
743
+
744
+ // If options page, save the updated options.
745
+ if ( 'options-page' === $object_type ) {
746
+ cmb2_options( $object_id )->set();
747
+ }
748
+
749
+ return $this->after_save();
750
+ }
751
+
752
+ /**
753
+ * Process and save form fields
754
+ *
755
+ * @since 2.0.0
756
+ *
757
+ * @return CMB2
758
+ */
759
+ public function process_fields() {
760
+
761
+ $this->pre_process();
762
+
763
+ // Remove the show_on properties so saving works.
764
+ $this->prop( 'show_on', array() );
765
+
766
+ // save field ids of those that are updated.
767
+ $this->updated = array();
768
+
769
+ foreach ( $this->prop( 'fields' ) as $field_args ) {
770
+ $this->process_field( $field_args );
771
+ }
772
+
773
+ return $this;
774
+ }
775
+
776
+ /**
777
+ * Process and save a field
778
+ *
779
+ * @since 2.0.0
780
+ * @param array $field_args Array of field arguments.
781
+ *
782
+ * @return CMB2
783
+ */
784
+ public function process_field( $field_args ) {
785
+
786
+ switch ( $field_args['type'] ) {
787
+
788
+ case 'group':
789
+ if ( $this->save_group( $field_args ) ) {
790
+ $this->updated[] = $field_args['id'];
791
+ }
792
+
793
+ break;
794
+
795
+ case 'title':
796
+ // Don't process title fields.
797
+ break;
798
+
799
+ default:
800
+ $field = $this->get_new_field( $field_args );
801
+
802
+ if ( $field->save_field_from_data( $this->data_to_save ) ) {
803
+ $this->updated[] = $field->id();
804
+ }
805
+
806
+ break;
807
+ }
808
+
809
+ return $this;
810
+ }
811
+
812
+ /**
813
+ * Fires the "cmb2_{$object_type}_process_fields_{$cmb_id}" action hook.
814
+ *
815
+ * @since 2.2.2
816
+ *
817
+ * @return CMB2
818
+ */
819
+ public function pre_process() {
820
+ $object_type = $this->object_type();
821
+
822
+ /**
823
+ * Fires before fields have been processed/saved.
824
+ *
825
+ * The dynamic portion of the hook name, $object_type, refers to the
826
+ * metabox/form's object type
827
+ * Usually `post` (this applies to all post-types).
828
+ * Could also be `comment`, `user` or `options-page`.
829
+ *
830
+ * The dynamic portion of the hook name, $this->cmb_id, is the meta_box id.
831
+ *
832
+ * @param array $cmb This CMB2 object
833
+ * @param int $object_id The ID of the current object
834
+ */
835
+ do_action( "cmb2_{$object_type}_process_fields_{$this->cmb_id}", $this, $this->object_id() );
836
+
837
+ return $this;
838
+ }
839
+
840
+ /**
841
+ * Fires the "cmb2_save_{$object_type}_fields" and
842
+ * "cmb2_save_{$object_type}_fields_{$cmb_id}" action hooks.
843
+ *
844
+ * @since 2.x.x
845
+ *
846
+ * @return CMB2
847
+ */
848
+ public function after_save() {
849
+ $object_type = $this->object_type();
850
+ $object_id = $this->object_id();
851
+
852
+ /**
853
+ * Fires after all fields have been saved.
854
+ *
855
+ * The dynamic portion of the hook name, $object_type, refers to the metabox/form's object type
856
+ * Usually `post` (this applies to all post-types).
857
+ * Could also be `comment`, `user` or `options-page`.
858
+ *
859
+ * @param int $object_id The ID of the current object
860
+ * @param array $cmb_id The current box ID
861
+ * @param string $updated Array of field ids that were updated.
862
+ * Will only include field ids that had values change.
863
+ * @param array $cmb This CMB2 object
864
+ */
865
+ do_action( "cmb2_save_{$object_type}_fields", $object_id, $this->cmb_id, $this->updated, $this );
866
+
867
+ /**
868
+ * Fires after all fields have been saved.
869
+ *
870
+ * The dynamic portion of the hook name, $this->cmb_id, is the meta_box id.
871
+ *
872
+ * The dynamic portion of the hook name, $object_type, refers to the metabox/form's object type
873
+ * Usually `post` (this applies to all post-types).
874
+ * Could also be `comment`, `user` or `options-page`.
875
+ *
876
+ * @param int $object_id The ID of the current object
877
+ * @param string $updated Array of field ids that were updated.
878
+ * Will only include field ids that had values change.
879
+ * @param array $cmb This CMB2 object
880
+ */
881
+ do_action( "cmb2_save_{$object_type}_fields_{$this->cmb_id}", $object_id, $this->updated, $this );
882
+
883
+ return $this;
884
+ }
885
+
886
+ /**
887
+ * Save a repeatable group
888
+ *
889
+ * @since 1.x.x
890
+ * @param array $args Field arguments array.
891
+ * @return mixed Return of CMB2_Field::update_data().
892
+ */
893
+ public function save_group( $args ) {
894
+ if ( ! isset( $args['id'], $args['fields'] ) || ! is_array( $args['fields'] ) ) {
895
+ return;
896
+ }
897
+
898
+ return $this->save_group_field( $this->get_new_field( $args ) );
899
+ }
900
+
901
+ /**
902
+ * Save a repeatable group
903
+ *
904
+ * @since 1.x.x
905
+ * @param CMB2_Field $field_group CMB2_Field group field object.
906
+ * @return mixed Return of CMB2_Field::update_data().
907
+ */
908
+ public function save_group_field( $field_group ) {
909
+ $base_id = $field_group->id();
910
+
911
+ if ( ! isset( $this->data_to_save[ $base_id ] ) ) {
912
+ return;
913
+ }
914
+
915
+ $old = $field_group->get_data();
916
+ // Check if group field has sanitization_cb.
917
+ $group_vals = $field_group->sanitization_cb( $this->data_to_save[ $base_id ] );
918
+ $saved = array();
919
+
920
+ $field_group->index = 0;
921
+ $field_group->data_to_save = $this->data_to_save;
922
+
923
+ foreach ( array_values( $field_group->fields() ) as $field_args ) {
924
+ if ( 'title' === $field_args['type'] ) {
925
+ // Don't process title fields.
926
+ continue;
927
+ }
928
+
929
+ $field = $this->get_new_field( $field_args, $field_group );
930
+ $sub_id = $field->id( true );
931
+ if ( empty( $saved[ $field_group->index ] ) ) {
932
+ $saved[ $field_group->index ] = array();
933
+ }
934
+
935
+ foreach ( (array) $group_vals as $field_group->index => $post_vals ) {
936
+
937
+ // Get value.
938
+ $new_val = isset( $group_vals[ $field_group->index ][ $sub_id ] )
939
+ ? $group_vals[ $field_group->index ][ $sub_id ]
940
+ : false;
941
+
942
+ // Sanitize.
943
+ $new_val = $field->sanitization_cb( $new_val );
944
+
945
+ if ( is_array( $new_val ) && $field->args( 'has_supporting_data' ) ) {
946
+ if ( $field->args( 'repeatable' ) ) {
947
+ $_new_val = array();
948
+ foreach ( $new_val as $group_index => $grouped_data ) {
949
+ // Add the supporting data to the $saved array stack.
950
+ $saved[ $field_group->index ][ $grouped_data['supporting_field_id'] ][] = $grouped_data['supporting_field_value'];
951
+ // Reset var to the actual value.
952
+ $_new_val[ $group_index ] = $grouped_data['value'];
953
+ }
954
+ $new_val = $_new_val;
955
+ } else {
956
+ // Add the supporting data to the $saved array stack.
957
+ $saved[ $field_group->index ][ $new_val['supporting_field_id'] ] = $new_val['supporting_field_value'];
958
+ // Reset var to the actual value.
959
+ $new_val = $new_val['value'];
960
+ }
961
+ }
962
+
963
+ // Get old value.
964
+ $old_val = is_array( $old ) && isset( $old[ $field_group->index ][ $sub_id ] )
965
+ ? $old[ $field_group->index ][ $sub_id ]
966
+ : false;
967
+
968
+ $is_updated = ( ! CMB2_Utils::isempty( $new_val ) && $new_val !== $old_val );
969
+ $is_removed = ( CMB2_Utils::isempty( $new_val ) && ! CMB2_Utils::isempty( $old_val ) );
970
+
971
+ // Compare values and add to `$updated` array.
972
+ if ( $is_updated || $is_removed ) {
973
+ $this->updated[] = $base_id . '::' . $field_group->index . '::' . $sub_id;
974
+ }
975
+
976
+ // Add to `$saved` array.
977
+ $saved[ $field_group->index ][ $sub_id ] = $new_val;
978
+
979
+ }// End foreach.
980
+
981
+ $saved[ $field_group->index ] = CMB2_Utils::filter_empty( $saved[ $field_group->index ] );
982
+ }// End foreach.
983
+
984
+ $saved = CMB2_Utils::filter_empty( $saved );
985
+
986
+ return $field_group->update_data( $saved, true );
987
+ }
988
+
989
+ /**
990
+ * Get object id from global space if no id is provided
991
+ *
992
+ * @since 1.0.0
993
+ * @param integer|string $object_id Object ID.
994
+ * @return integer|string $object_id Object ID.
995
+ */
996
+ public function object_id( $object_id = 0 ) {
997
+ global $pagenow;
998
+
999
+ if ( $object_id ) {
1000
+ $this->object_id = $object_id;
1001
+ return $this->object_id;
1002
+ }
1003
+
1004
+ if ( $this->object_id ) {
1005
+ return $this->object_id;
1006
+ }
1007
+
1008
+ // Try to get our object ID from the global space.
1009
+ switch ( $this->object_type() ) {
1010
+ case 'user':
1011
+ $object_id = isset( $_REQUEST['user_id'] ) ? wp_unslash( $_REQUEST['user_id'] ) : $object_id;
1012
+ $object_id = ! $object_id && 'user-new.php' !== $pagenow && isset( $GLOBALS['user_ID'] ) ? $GLOBALS['user_ID'] : $object_id;
1013
+ break;
1014
+
1015
+ case 'comment':
1016
+ $object_id = isset( $_REQUEST['c'] ) ? wp_unslash( $_REQUEST['c'] ) : $object_id;
1017
+ $object_id = ! $object_id && isset( $GLOBALS['comments']->comment_ID ) ? $GLOBALS['comments']->comment_ID : $object_id;
1018
+ break;
1019
+
1020
+ case 'term':
1021
+ $object_id = isset( $_REQUEST['tag_ID'] ) ? wp_unslash( $_REQUEST['tag_ID'] ) : $object_id;
1022
+ break;
1023
+
1024
+ case 'options-page':
1025
+ $key = $this->doing_options_page();
1026
+ if ( ! empty( $key ) ) {
1027
+ $object_id = $key;
1028
+ }
1029
+ break;
1030
+
1031
+ default:
1032
+ $object_id = isset( $GLOBALS['post']->ID ) ? $GLOBALS['post']->ID : $object_id;
1033
+ $object_id = isset( $_REQUEST['post'] ) ? wp_unslash( $_REQUEST['post'] ) : $object_id;
1034
+ break;
1035
+ }
1036
+
1037
+ // reset to id or 0.
1038
+ $this->object_id = $object_id ? $object_id : 0;
1039
+
1040
+ return $this->object_id;
1041
+ }
1042
+
1043
+ /**
1044
+ * Sets the $object_type based on metabox settings
1045
+ *
1046
+ * @since 1.0.0
1047
+ * @return string Object type.
1048
+ */
1049
+ public function mb_object_type() {
1050
+ if ( null !== $this->mb_object_type ) {
1051
+ return $this->mb_object_type;
1052
+ }
1053
+
1054
+ if ( $this->is_options_page_mb() ) {
1055
+ $this->mb_object_type = 'options-page';
1056
+ return $this->mb_object_type;
1057
+ }
1058
+
1059
+ $registered_types = $this->box_types();
1060
+
1061
+ $type = '';
1062
+
1063
+ // if it's an array of one, extract it.
1064
+ if ( 1 === count( $registered_types ) ) {
1065
+ $last = end( $registered_types );
1066
+ if ( is_string( $last ) ) {
1067
+ $type = $last;
1068
+ }
1069
+ } elseif ( ( $curr_type = $this->current_object_type() ) && in_array( $curr_type, $registered_types, true ) ) {
1070
+ $type = $curr_type;
1071
+ }
1072
+
1073
+ // Get our object type.
1074
+ switch ( $type ) {
1075
+
1076
+ case 'user':
1077
+ case 'comment':
1078
+ case 'term':
1079
+ $this->mb_object_type = $type;
1080
+ break;
1081
+
1082
+ default:
1083
+ $this->mb_object_type = 'post';
1084
+ break;
1085
+ }
1086
+
1087
+ return $this->mb_object_type;
1088
+ }
1089
+
1090
+ /**
1091
+ * Gets the box 'object_types' array based on box settings.
1092
+ *
1093
+ * @since 2.2.3
1094
+ * @param array $fallback Fallback value.
1095
+ *
1096
+ * @return array Object types.
1097
+ */
1098
+ public function box_types( $fallback = array() ) {
1099
+ return CMB2_Utils::ensure_array( $this->prop( 'object_types' ), $fallback );
1100
+ }
1101
+
1102
+ /**
1103
+ * Initates the object types and option key for an options page metabox.
1104
+ *
1105
+ * @since 2.2.5
1106
+ *
1107
+ * @return void
1108
+ */
1109
+ public function init_options_mb() {
1110
+ $keys = $this->options_page_keys();
1111
+ $types = $this->box_types();
1112
+
1113
+ if ( empty( $keys ) ) {
1114
+ $keys = '';
1115
+ $types = $this->deinit_options_mb( $types );
1116
+ } else {
1117
+
1118
+ // Make sure 'options-page' is one of the object types.
1119
+ $types[] = 'options-page';
1120
+ }
1121
+
1122
+ // Set/Reset the option_key property.
1123
+ $this->set_prop( 'option_key', $keys );
1124
+
1125
+ // Reset the object types.
1126
+ $this->set_prop( 'object_types', array_unique( $types ) );
1127
+ }
1128
+
1129
+ /**
1130
+ * If object-page initiation failed, remove traces options page setup.
1131
+ *
1132
+ * @since 2.2.5
1133
+ *
1134
+ * @param array $types Array of types.
1135
+ * @return array
1136
+ */
1137
+ protected function deinit_options_mb( $types ) {
1138
+ if ( isset( $this->meta_box['show_on']['key'] ) && 'options-page' === $this->meta_box['show_on']['key'] ) {
1139
+ unset( $this->meta_box['show_on']['key'] );
1140
+ }
1141
+
1142
+ if ( array_key_exists( 'options-page', $this->meta_box['show_on'] ) ) {
1143
+ unset( $this->meta_box['show_on']['options-page'] );
1144
+ }
1145
+
1146
+ $index = array_search( 'options-page', $types );
1147
+
1148
+ if ( false !== $index ) {
1149
+ unset( $types[ $index ] );
1150
+ }
1151
+
1152
+ return $types;
1153
+ }
1154
+
1155
+ /**
1156
+ * Determines if metabox is for an options page
1157
+ *
1158
+ * @since 1.0.1
1159
+ * @return boolean True/False.
1160
+ */
1161
+ public function is_options_page_mb() {
1162
+ return (
1163
+ // 'show_on' values checked for back-compatibility.
1164
+ $this->is_old_school_options_page_mb()
1165
+ || in_array( 'options-page', $this->box_types() )
1166
+ );
1167
+ }
1168
+
1169
+ /**
1170
+ * Determines if metabox uses old-schoold options page config.
1171
+ *
1172
+ * @since 2.2.5
1173
+ * @return boolean True/False.
1174
+ */
1175
+ public function is_old_school_options_page_mb() {
1176
+ return (
1177
+ // 'show_on' values checked for back-compatibility.
1178
+ isset( $this->meta_box['show_on']['key'] ) && 'options-page' === $this->meta_box['show_on']['key']
1179
+ || array_key_exists( 'options-page', $this->meta_box['show_on'] )
1180
+ );
1181
+ }
1182
+
1183
+ /**
1184
+ * Determine if we are on an options page (or saving the options page).
1185
+ *
1186
+ * @since 2.2.5
1187
+ *
1188
+ * @return bool
1189
+ */
1190
+ public function doing_options_page() {
1191
+ $found_key = false;
1192
+ $keys = $this->options_page_keys();
1193
+
1194
+ if ( empty( $keys ) ) {
1195
+ return $found_key;
1196
+ }
1197
+
1198
+ if ( ! empty( $_GET['page'] ) && in_array( $_GET['page'], $keys ) ) {
1199
+ $found_key = $_GET['page'];
1200
+ }
1201
+
1202
+ if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $keys ) ) {
1203
+ $found_key = $_POST['action'];
1204
+ }
1205
+
1206
+ return $found_key ? $found_key : false;
1207
+ }
1208
+
1209
+ /**
1210
+ * Get the options page key.
1211
+ *
1212
+ * @since 2.2.5
1213
+ * @return string|array
1214
+ */
1215
+ public function options_page_keys() {
1216
+ $key = '';
1217
+ if ( ! $this->is_options_page_mb() ) {
1218
+ return $key;
1219
+ }
1220
+
1221
+ $values = null;
1222
+ if ( ! empty( $this->meta_box['show_on']['value'] ) ) {
1223
+ $values = $this->meta_box['show_on']['value'];
1224
+ } elseif ( ! empty( $this->meta_box['show_on']['options-page'] ) ) {
1225
+ $values = $this->meta_box['show_on']['options-page'];
1226
+ } elseif ( $this->prop( 'option_key' ) ) {
1227
+ $values = $this->prop( 'option_key' );
1228
+ }
1229
+
1230
+ if ( $values ) {
1231
+ $key = $values;
1232
+ }
1233
+
1234
+ if ( ! is_array( $key ) ) {
1235
+ $key = array( $key );
1236
+ }
1237
+
1238
+ return $key;
1239
+ }
1240
+
1241
+ /**
1242
+ * Returns the object type
1243
+ *
1244
+ * @since 1.0.0
1245
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment). Optional.
1246
+ * @return string Object type.
1247
+ */
1248
+ public function object_type( $object_type = '' ) {
1249
+ if ( $object_type ) {
1250
+ $this->object_type = $object_type;
1251
+ return $this->object_type;
1252
+ }
1253
+
1254
+ if ( $this->object_type ) {
1255
+ return $this->object_type;
1256
+ }
1257
+
1258
+ $this->object_type = $this->current_object_type();
1259
+
1260
+ return $this->object_type;
1261
+ }
1262
+
1263
+ /**
1264
+ * Get the object type for the current page, based on the $pagenow global.
1265
+ *
1266
+ * @since 2.2.2
1267
+ * @return string Page object type name.
1268
+ */
1269
+ public function current_object_type() {
1270
+ global $pagenow;
1271
+ $type = 'post';
1272
+
1273
+ if ( in_array( $pagenow, array( 'user-edit.php', 'profile.php', 'user-new.php' ), true ) ) {
1274
+ $type = 'user';
1275
+ }
1276
+
1277
+ if ( in_array( $pagenow, array( 'edit-comments.php', 'comment.php' ), true ) ) {
1278
+ $type = 'comment';
1279
+ }
1280
+
1281
+ if ( in_array( $pagenow, array( 'edit-tags.php', 'term.php' ), true ) ) {
1282
+ $type = 'term';
1283
+ }
1284
+
1285
+ if ( defined( 'DOING_AJAX' ) && isset( $_POST['action'] ) && 'add-tag' === $_POST['action'] ) {
1286
+ $type = 'term';
1287
+ }
1288
+
1289
+ if (
1290
+ in_array( $pagenow, array( 'admin.php', 'admin-post.php' ), true )
1291
+ && $this->doing_options_page()
1292
+ ) {
1293
+ $type = 'options-page';
1294
+ }
1295
+
1296
+ return $type;
1297
+ }
1298
+
1299
+ /**
1300
+ * Set metabox property.
1301
+ *
1302
+ * @since 2.2.2
1303
+ * @param string $property Metabox config property to retrieve.
1304
+ * @param mixed $value Value to set if no value found.
1305
+ * @return mixed Metabox config property value or false.
1306
+ */
1307
+ public function set_prop( $property, $value ) {
1308
+ $this->meta_box[ $property ] = $value;
1309
+
1310
+ return $this->prop( $property );
1311
+ }
1312
+
1313
+ /**
1314
+ * Get metabox property and optionally set a fallback
1315
+ *
1316
+ * @since 2.0.0
1317
+ * @param string $property Metabox config property to retrieve.
1318
+ * @param mixed $fallback Fallback value to set if no value found.
1319
+ * @return mixed Metabox config property value or false.
1320
+ */
1321
+ public function prop( $property, $fallback = null ) {
1322
+ if ( array_key_exists( $property, $this->meta_box ) ) {
1323
+ return $this->meta_box[ $property ];
1324
+ } elseif ( $fallback ) {
1325
+ return $this->meta_box[ $property ] = $fallback;
1326
+ }
1327
+ }
1328
+
1329
+ /**
1330
+ * Get a field object
1331
+ *
1332
+ * @since 2.0.3
1333
+ * @param string|array|CMB2_Field $field Metabox field id or field config array or CMB2_Field object.
1334
+ * @param CMB2_Field|null $field_group (optional) CMB2_Field object (group parent).
1335
+ * @param bool $reset_cached (optional) Reset the internal cache for this field object.
1336
+ * Use sparingly.
1337
+ *
1338
+ * @return CMB2_Field|false CMB2_Field object (or false).
1339
+ */
1340
+ public function get_field( $field, $field_group = null, $reset_cached = false ) {
1341
+ if ( $field instanceof CMB2_Field ) {
1342
+ return $field;
1343
+ }
1344
+
1345
+ $field_id = is_string( $field ) ? $field : $field['id'];
1346
+
1347
+ $parent_field_id = ! empty( $field_group ) ? $field_group->id() : '';
1348
+ $ids = $this->get_field_ids( $field_id, $parent_field_id );
1349
+
1350
+ if ( ! $ids ) {
1351
+ return false;
1352
+ }
1353
+
1354
+ list( $field_id, $sub_field_id ) = $ids;
1355
+
1356
+ $index = implode( '', $ids ) . ( $field_group ? $field_group->index : '' );
1357
+
1358
+ if ( array_key_exists( $index, $this->fields ) && ! $reset_cached ) {
1359
+ return $this->fields[ $index ];
1360
+ }
1361
+
1362
+ $this->fields[ $index ] = new CMB2_Field( $this->get_field_args( $field_id, $field, $sub_field_id, $field_group ) );
1363
+
1364
+ return $this->fields[ $index ];
1365
+ }
1366
+
1367
+ /**
1368
+ * Handles determining which type of arguments to pass to CMB2_Field
1369
+ *
1370
+ * @since 2.0.7
1371
+ * @param mixed $field_id Field (or group field) ID.
1372
+ * @param mixed $field_args Array of field arguments.
1373
+ * @param mixed $sub_field_id Sub field ID (if field_group exists).
1374
+ * @param CMB2_Field|null $field_group If a sub-field, will be the parent group CMB2_Field object.
1375
+ * @return array Array of CMB2_Field arguments.
1376
+ */
1377
+ public function get_field_args( $field_id, $field_args, $sub_field_id, $field_group ) {
1378
+
1379
+ // Check if group is passed and if fields were added in the old-school fields array.
1380
+ if ( $field_group && ( $sub_field_id || 0 === $sub_field_id ) ) {
1381
+
1382
+ // Update the fields array w/ any modified properties inherited from the group field.
1383
+ $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] = $field_args;
1384
+
1385
+ return $this->get_default_args( $field_args, $field_group );
1386
+ }
1387
+
1388
+ if ( is_array( $field_args ) ) {
1389
+ $this->meta_box['fields'][ $field_id ] = array_merge( $field_args, $this->meta_box['fields'][ $field_id ] );
1390
+ }
1391
+
1392
+ return $this->get_default_args( $this->meta_box['fields'][ $field_id ] );
1393
+ }
1394
+
1395
+ /**
1396
+ * Get default field arguments specific to this CMB2 object.
1397
+ *
1398
+ * @since 2.2.0
1399
+ * @param array $field_args Metabox field config array.
1400
+ * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent).
1401
+ * @return array Array of field arguments.
1402
+ */
1403
+ protected function get_default_args( $field_args, $field_group = null ) {
1404
+ if ( $field_group ) {
1405
+ $args = array(
1406
+ 'field_args' => $field_args,
1407
+ 'group_field' => $field_group,
1408
+ );
1409
+ } else {
1410
+ $args = array(
1411
+ 'field_args' => $field_args,
1412
+ 'object_type' => $this->object_type(),
1413
+ 'object_id' => $this->object_id(),
1414
+ 'cmb_id' => $this->cmb_id,
1415
+ );
1416
+ }
1417
+
1418
+ return $args;
1419
+ }
1420
+
1421
+ /**
1422
+ * When fields are added in the old-school way, intitate them as they should be
1423
+ *
1424
+ * @since 2.1.0
1425
+ * @param array $fields Array of fields to add.
1426
+ * @param mixed $parent_field_id Parent field id or null.
1427
+ *
1428
+ * @return CMB2
1429
+ */
1430
+ protected function add_fields( $fields, $parent_field_id = null ) {
1431
+ foreach ( $fields as $field ) {
1432
+
1433
+ $sub_fields = false;
1434
+ if ( array_key_exists( 'fields', $field ) ) {
1435
+ $sub_fields = $field['fields'];
1436
+ unset( $field['fields'] );
1437
+ }
1438
+
1439
+ $field_id = $parent_field_id
1440
+ ? $this->add_group_field( $parent_field_id, $field )
1441
+ : $this->add_field( $field );
1442
+
1443
+ if ( $sub_fields ) {
1444
+ $this->add_fields( $sub_fields, $field_id );
1445
+ }
1446
+ }
1447
+
1448
+ return $this;
1449
+ }
1450
+
1451
+ /**
1452
+ * Add a field to the metabox
1453
+ *
1454
+ * @since 2.0.0
1455
+ * @param array $field Metabox field config array.
1456
+ * @param int $position (optional) Position of metabox. 1 for first, etc.
1457
+ * @return string|false Field id or false.
1458
+ */
1459
+ public function add_field( array $field, $position = 0 ) {
1460
+ if ( ! array_key_exists( 'id', $field ) ) {
1461
+ return false;
1462
+ }
1463
+
1464
+ // Perform some field-type-specific initiation actions.
1465
+ switch ( $field['type'] ) {
1466
+ case 'file':
1467
+ case 'file_list':
1468
+ // Initiate attachment JS hooks.
1469
+ add_filter( 'wp_prepare_attachment_for_js', array( 'CMB2_Type_File_Base', 'prepare_image_sizes_for_js' ), 10, 3 );
1470
+ break;
1471
+
1472
+ case 'oembed':
1473
+ // Initiate oembed Ajax hooks.
1474
+ cmb2_ajax();
1475
+ break;
1476
+
1477
+ case 'group':
1478
+ if ( empty( $field['render_row_cb'] ) ) {
1479
+ $field['render_row_cb'] = array( $this, 'render_group_callback' );
1480
+ }
1481
+ break;
1482
+ case 'colorpicker':
1483
+ // https://github.com/JayWood/CMB2_RGBa_Picker
1484
+ // Dequeue the rgba_colorpicker custom field script if it is used,
1485
+ // since we now enqueue our own more current version.
1486
+ add_action( 'admin_enqueue_scripts', array( 'CMB2_Type_Colorpicker', 'dequeue_rgba_colorpicker_script' ), 99 );
1487
+ break;
1488
+ }
1489
+
1490
+ if ( isset( $field['column'] ) && false !== $field['column'] ) {
1491
+ $field = $this->define_field_column( $field );
1492
+ }
1493
+
1494
+ if ( isset( $field['taxonomy'] ) && ! empty( $field['remove_default'] ) ) {
1495
+ $this->tax_metaboxes_to_remove[ $field['taxonomy'] ] = $field['taxonomy'];
1496
+ }
1497
+
1498
+ $this->_add_field_to_array(
1499
+ $field,
1500
+ $this->meta_box['fields'],
1501
+ $position
1502
+ );
1503
+
1504
+ return $field['id'];
1505
+ }
1506
+
1507
+ /**
1508
+ * Defines a field's column if requesting to be show in admin columns.
1509
+ *
1510
+ * @since 2.2.3
1511
+ * @param array $field Metabox field config array.
1512
+ * @return array Modified metabox field config array.
1513
+ */
1514
+ protected function define_field_column( array $field ) {
1515
+ $this->has_columns = true;
1516
+
1517
+ $column = is_array( $field['column'] ) ? $field['column'] : array();
1518
+
1519
+ $field['column'] = wp_parse_args( $column, array(
1520
+ 'name' => isset( $field['name'] ) ? $field['name'] : '',
1521
+ 'position' => false,
1522
+ ) );
1523
+
1524
+ return $field;
1525
+ }
1526
+
1527
+ /**
1528
+ * Add a field to a group
1529
+ *
1530
+ * @since 2.0.0
1531
+ * @param string $parent_field_id The field id of the group field to add the field.
1532
+ * @param array $field Metabox field config array.
1533
+ * @param int $position (optional) Position of metabox. 1 for first, etc.
1534
+ * @return mixed Array of parent/field ids or false.
1535
+ */
1536
+ public function add_group_field( $parent_field_id, array $field, $position = 0 ) {
1537
+ if ( ! array_key_exists( $parent_field_id, $this->meta_box['fields'] ) ) {
1538
+ return false;
1539
+ }
1540
+
1541
+ $parent_field = $this->meta_box['fields'][ $parent_field_id ];
1542
+
1543
+ if ( 'group' !== $parent_field['type'] ) {
1544
+ return false;
1545
+ }
1546
+
1547
+ if ( ! isset( $parent_field['fields'] ) ) {
1548
+ $this->meta_box['fields'][ $parent_field_id ]['fields'] = array();
1549
+ }
1550
+
1551
+ $this->_add_field_to_array(
1552
+ $field,
1553
+ $this->meta_box['fields'][ $parent_field_id ]['fields'],
1554
+ $position
1555
+ );
1556
+
1557
+ return array( $parent_field_id, $field['id'] );
1558
+ }
1559
+
1560
+ /**
1561
+ * Add a field array to a fields array in desired position
1562
+ *
1563
+ * @since 2.0.2
1564
+ * @param array $field Metabox field config array.
1565
+ * @param array $fields Array (passed by reference) to append the field (array) to.
1566
+ * @param integer $position Optionally specify a position in the array to be inserted.
1567
+ */
1568
+ protected function _add_field_to_array( $field, &$fields, $position = 0 ) {
1569
+ if ( $position ) {
1570
+ CMB2_Utils::array_insert( $fields, array( $field['id'] => $field ), $position );
1571
+ } else {
1572
+ $fields[ $field['id'] ] = $field;
1573
+ }
1574
+ }
1575
+
1576
+ /**
1577
+ * Remove a field from the metabox
1578
+ *
1579
+ * @since 2.0.0
1580
+ * @param string $field_id The field id of the field to remove.
1581
+ * @param string $parent_field_id (optional) The field id of the group field to remove field from.
1582
+ * @return bool True if field was removed.
1583
+ */
1584
+ public function remove_field( $field_id, $parent_field_id = '' ) {
1585
+ $ids = $this->get_field_ids( $field_id, $parent_field_id );
1586
+
1587
+ if ( ! $ids ) {
1588
+ return false;
1589
+ }
1590
+
1591
+ list( $field_id, $sub_field_id ) = $ids;
1592
+
1593
+ unset( $this->fields[ implode( '', $ids ) ] );
1594
+
1595
+ if ( ! $sub_field_id ) {
1596
+ unset( $this->meta_box['fields'][ $field_id ] );
1597
+ return true;
1598
+ }
1599
+
1600
+ if ( isset( $this->fields[ $field_id ]->args['fields'][ $sub_field_id ] ) ) {
1601
+ unset( $this->fields[ $field_id ]->args['fields'][ $sub_field_id ] );
1602
+ }
1603
+ if ( isset( $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] ) ) {
1604
+ unset( $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] );
1605
+ }
1606
+
1607
+ return true;
1608
+ }
1609
+
1610
+ /**
1611
+ * Update or add a property to a field
1612
+ *
1613
+ * @since 2.0.0
1614
+ * @param string $field_id Field id.
1615
+ * @param string $property Field property to set/update.
1616
+ * @param mixed $value Value to set the field property.
1617
+ * @param string $parent_field_id (optional) The field id of the group field to remove field from.
1618
+ * @return mixed Field id. Strict compare to false, as success can return a falsey value (like 0).
1619
+ */
1620
+ public function update_field_property( $field_id, $property, $value, $parent_field_id = '' ) {
1621
+ $ids = $this->get_field_ids( $field_id, $parent_field_id );
1622
+
1623
+ if ( ! $ids ) {
1624
+ return false;
1625
+ }
1626
+
1627
+ list( $field_id, $sub_field_id ) = $ids;
1628
+
1629
+ if ( ! $sub_field_id ) {
1630
+ $this->meta_box['fields'][ $field_id ][ $property ] = $value;
1631
+ return $field_id;
1632
+ }
1633
+
1634
+ $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ][ $property ] = $value;
1635
+ return $field_id;
1636
+ }
1637
+
1638
+ /**
1639
+ * Check if field ids match a field and return the index/field id
1640
+ *
1641
+ * @since 2.0.2
1642
+ * @param string $field_id Field id.
1643
+ * @param string $parent_field_id (optional) Parent field id.
1644
+ * @return mixed Array of field/parent ids, or false.
1645
+ */
1646
+ public function get_field_ids( $field_id, $parent_field_id = '' ) {
1647
+ $sub_field_id = $parent_field_id ? $field_id : '';
1648
+ $field_id = $parent_field_id ? $parent_field_id : $field_id;
1649
+ $fields =& $this->meta_box['fields'];
1650
+
1651
+ if ( ! array_key_exists( $field_id, $fields ) ) {
1652
+ $field_id = $this->search_old_school_array( $field_id, $fields );
1653
+ }
1654
+
1655
+ if ( false === $field_id ) {
1656
+ return false;
1657
+ }
1658
+
1659
+ if ( ! $sub_field_id ) {
1660
+ return array( $field_id, $sub_field_id );
1661
+ }
1662
+
1663
+ if ( 'group' !== $fields[ $field_id ]['type'] ) {
1664
+ return false;
1665
+ }
1666
+
1667
+ if ( ! array_key_exists( $sub_field_id, $fields[ $field_id ]['fields'] ) ) {
1668
+ $sub_field_id = $this->search_old_school_array( $sub_field_id, $fields[ $field_id ]['fields'] );
1669
+ }
1670
+
1671
+ return false === $sub_field_id ? false : array( $field_id, $sub_field_id );
1672
+ }
1673
+
1674
+ /**
1675
+ * When using the old array filter, it is unlikely field array indexes will be the field id.
1676
+ *
1677
+ * @since 2.0.2
1678
+ * @param string $field_id The field id.
1679
+ * @param array $fields Array of fields to search.
1680
+ * @return mixed Field index or false.
1681
+ */
1682
+ public function search_old_school_array( $field_id, $fields ) {
1683
+ $ids = wp_list_pluck( $fields, 'id' );
1684
+ $index = array_search( $field_id, $ids );
1685
+ return false !== $index ? $index : false;
1686
+ }
1687
+
1688
+ /**
1689
+ * Handles metabox property callbacks, and passes this $cmb object as property.
1690
+ *
1691
+ * @since 2.2.3
1692
+ * @param callable $cb The callback method/function/closure.
1693
+ * @param mixed $additional_params Any additoinal parameters which should be passed to the callback.
1694
+ * @return mixed Return of the callback function.
1695
+ */
1696
+ public function do_callback( $cb, $additional_params = null ) {
1697
+ return call_user_func( $cb, $this, $additional_params );
1698
+ }
1699
+
1700
+ /**
1701
+ * Generate a unique nonce field for each registered meta_box
1702
+ *
1703
+ * @since 2.0.0
1704
+ * @return void
1705
+ */
1706
+ public function nonce_field() {
1707
+ wp_nonce_field( $this->nonce(), $this->nonce(), false, true );
1708
+ }
1709
+
1710
+ /**
1711
+ * Generate a unique nonce for each registered meta_box
1712
+ *
1713
+ * @since 2.0.0
1714
+ * @return string unique nonce string.
1715
+ */
1716
+ public function nonce() {
1717
+ if ( ! $this->generated_nonce ) {
1718
+ $this->generated_nonce = sanitize_html_class( 'nonce_' . basename( __FILE__ ) . $this->cmb_id );
1719
+ }
1720
+
1721
+ return $this->generated_nonce;
1722
+ }
1723
+
1724
+ /**
1725
+ * Checks if field-saving updated any fields.
1726
+ *
1727
+ * @since 2.2.5
1728
+ *
1729
+ * @return bool
1730
+ */
1731
+ public function was_updated() {
1732
+ return ! empty( $this->updated );
1733
+ }
1734
+
1735
+ /**
1736
+ * Whether this box is an "alternate context" box. This means the box has a 'context' property defined as:
1737
+ * 'form_top', 'before_permalink', 'after_title', or 'after_editor'.
1738
+ *
1739
+ * @since 2.2.4
1740
+ * @return bool
1741
+ */
1742
+ public function is_alternate_context_box() {
1743
+ return $this->prop( 'context' ) && in_array( $this->prop( 'context' ), array( 'form_top', 'before_permalink', 'after_title', 'after_editor' ), true );
1744
+ }
1745
+
1746
+ /**
1747
+ * Magic getter for our object.
1748
+ *
1749
+ * @param string $property Object property.
1750
+ * @throws Exception Throws an exception if the field is invalid.
1751
+ * @return mixed
1752
+ */
1753
+ public function __get( $property ) {
1754
+ switch ( $property ) {
1755
+ case 'updated':
1756
+ case 'has_columns':
1757
+ case 'tax_metaboxes_to_remove':
1758
+ return $this->{$property};
1759
+ default:
1760
+ return parent::__get( $property );
1761
+ }
1762
+ }
1763
+
1764
+ }
includes/plus-options/metabox/includes/CMB2_Ajax.php ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * CMB2 ajax methods
5
+ * (i.e. a lot of work to get oEmbeds to work with non-post objects)
6
+ *
7
+ * @since 0.9.5
8
+ *
9
+ * @category WordPress_Plugin
10
+ * @package CMB2
11
+ * @author CMB2 team
12
+ * @license GPL-2.0+
13
+ */
14
+ class CMB2_Ajax {
15
+
16
+ // Whether to hijack the oembed cache system.
17
+ protected $hijack = false;
18
+ protected $object_id = 0;
19
+ protected $embed_args = array();
20
+ protected $object_type = 'post';
21
+ protected $ajax_update = false;
22
+
23
+ /**
24
+ * Instance of this class.
25
+ *
26
+ * @since 2.2.2
27
+ * @var object
28
+ */
29
+ protected static $instance;
30
+
31
+ /**
32
+ * Get the singleton instance of this class.
33
+ *
34
+ * @since 2.2.2
35
+ * @return CMB2_Ajax
36
+ */
37
+ public static function get_instance() {
38
+ if ( ! ( self::$instance instanceof self ) ) {
39
+ self::$instance = new self();
40
+ }
41
+
42
+ return self::$instance;
43
+ }
44
+
45
+ /**
46
+ * Constructor
47
+ *
48
+ * @since 2.2.0
49
+ */
50
+ protected function __construct() {
51
+ add_action( 'wp_ajax_cmb2_oembed_handler', array( $this, 'oembed_handler' ) );
52
+ add_action( 'wp_ajax_nopriv_cmb2_oembed_handler', array( $this, 'oembed_handler' ) );
53
+ // Need to occasionally clean stale oembed cache data from the option value.
54
+ add_action( 'cmb2_save_options-page_fields', array( __CLASS__, 'clean_stale_options_page_oembeds' ) );
55
+ }
56
+
57
+ /**
58
+ * Handles our oEmbed ajax request
59
+ *
60
+ * @since 0.9.5
61
+ * @return mixed oEmbed embed code | fallback | error message
62
+ */
63
+ public function oembed_handler() {
64
+
65
+ // Verify our nonce.
66
+ if ( ! ( isset( $_REQUEST['cmb2_ajax_nonce'], $_REQUEST['oembed_url'] ) && wp_verify_nonce( $_REQUEST['cmb2_ajax_nonce'], 'ajax_nonce' ) ) ) {
67
+ die();
68
+ }
69
+
70
+ // Sanitize our search string.
71
+ $oembed_string = sanitize_text_field( $_REQUEST['oembed_url'] );
72
+
73
+ // Send back error if empty.
74
+ if ( empty( $oembed_string ) ) {
75
+ wp_send_json_error( '<p class="ui-state-error-text">' . esc_html__( 'Please Try Again', 'cmb2' ) . '</p>' );
76
+ }
77
+
78
+ // Set width of embed.
79
+ $embed_width = isset( $_REQUEST['oembed_width'] ) && intval( $_REQUEST['oembed_width'] ) < 640 ? intval( $_REQUEST['oembed_width'] ) : '640';
80
+
81
+ // Set url.
82
+ $oembed_url = esc_url( $oembed_string );
83
+
84
+ // Set args.
85
+ $embed_args = array(
86
+ 'width' => $embed_width,
87
+ );
88
+
89
+ $this->ajax_update = true;
90
+
91
+ // Get embed code (or fallback link).
92
+ $html = $this->get_oembed( array(
93
+ 'url' => $oembed_url,
94
+ 'object_id' => $_REQUEST['object_id'],
95
+ 'object_type' => isset( $_REQUEST['object_type'] ) ? $_REQUEST['object_type'] : 'post',
96
+ 'oembed_args' => $embed_args,
97
+ 'field_id' => $_REQUEST['field_id'],
98
+ ) );
99
+
100
+ wp_send_json_success( $html );
101
+ }
102
+
103
+ /**
104
+ * Retrieves oEmbed from url/object ID
105
+ *
106
+ * @since 0.9.5
107
+ * @param array $args Arguments for method.
108
+ * @return mixed HTML markup with embed or fallback.
109
+ */
110
+ public function get_oembed_no_edit( $args ) {
111
+ global $wp_embed;
112
+
113
+ $oembed_url = esc_url( $args['url'] );
114
+
115
+ // Sanitize object_id.
116
+ $this->object_id = is_numeric( $args['object_id'] ) ? absint( $args['object_id'] ) : sanitize_text_field( $args['object_id'] );
117
+
118
+ $args = wp_parse_args( $args, array(
119
+ 'object_type' => 'post',
120
+ 'oembed_args' => array(),
121
+ 'field_id' => false,
122
+ 'wp_error' => false,
123
+ ) );
124
+
125
+ $this->embed_args =& $args;
126
+
127
+ /*
128
+ * Set the post_ID so oEmbed won't fail
129
+ * wp-includes/class-wp-embed.php, WP_Embed::shortcode()
130
+ */
131
+ $wp_embed->post_ID = $this->object_id;
132
+
133
+ // Special scenario if NOT a post object.
134
+ if ( isset( $args['object_type'] ) && 'post' != $args['object_type'] ) {
135
+
136
+ if ( 'options-page' == $args['object_type'] ) {
137
+
138
+ // Bogus id to pass some numeric checks. Issue with a VERY large WP install?
139
+ $wp_embed->post_ID = 1987645321;
140
+ }
141
+
142
+ // Ok, we need to hijack the oembed cache system.
143
+ $this->hijack = true;
144
+ $this->object_type = $args['object_type'];
145
+
146
+ // Gets ombed cache from our object's meta (vs postmeta).
147
+ add_filter( 'get_post_metadata', array( $this, 'hijack_oembed_cache_get' ), 10, 3 );
148
+
149
+ // Sets ombed cache in our object's meta (vs postmeta).
150
+ add_filter( 'update_post_metadata', array( $this, 'hijack_oembed_cache_set' ), 10, 4 );
151
+
152
+ }
153
+
154
+ $embed_args = '';
155
+
156
+ foreach ( $args['oembed_args'] as $key => $val ) {
157
+ $embed_args .= " $key=\"$val\"";
158
+ }
159
+
160
+ // Ping WordPress for an embed.
161
+ $embed = $wp_embed->run_shortcode( '[embed' . $embed_args . ']' . $oembed_url . '[/embed]' );
162
+
163
+ // Fallback that WordPress creates when no oEmbed was found.
164
+ $fallback = $wp_embed->maybe_make_link( $oembed_url );
165
+
166
+ return compact( 'embed', 'fallback', 'args' );
167
+ }
168
+
169
+ /**
170
+ * Retrieves oEmbed from url/object ID
171
+ *
172
+ * @since 0.9.5
173
+ * @param array $args Arguments for method.
174
+ * @return string HTML markup with embed or fallback.
175
+ */
176
+ public function get_oembed( $args ) {
177
+ $oembed = $this->get_oembed_no_edit( $args );
178
+
179
+ // Send back our embed.
180
+ if ( $oembed['embed'] && $oembed['embed'] != $oembed['fallback'] ) {
181
+ return '<div class="cmb2-oembed embed-status">' . $oembed['embed'] . '<p class="cmb2-remove-wrapper"><a href="#" class="cmb2-remove-file-button" rel="' . $oembed['args']['field_id'] . '">' . esc_html__( 'Remove Embed', 'cmb2' ) . '</a></p></div>';
182
+ }
183
+
184
+ // Otherwise, send back error info that no oEmbeds were found.
185
+ return sprintf(
186
+ '<p class="ui-state-error-text">%s</p>',
187
+ sprintf(
188
+ /* translators: 1: results for. 2: link to codex.wordpress.org/Embeds */
189
+ esc_html__( 'No oEmbed Results Found for %1$s. View more info at %2$s.', 'cmb2' ),
190
+ $oembed['fallback'],
191
+ '<a href="https://codex.wordpress.org/Embeds" target="_blank">codex.wordpress.org/Embeds</a>'
192
+ )
193
+ );
194
+ }
195
+
196
+ /**
197
+ * Hijacks retrieving of cached oEmbed.
198
+ * Returns cached data from relevant object metadata (vs postmeta)
199
+ *
200
+ * @since 0.9.5
201
+ * @param boolean $check Whether to retrieve postmeta or override.
202
+ * @param int $object_id Object ID.
203
+ * @param string $meta_key Object metakey.
204
+ * @return mixed Object's oEmbed cached data.
205
+ */
206
+ public function hijack_oembed_cache_get( $check, $object_id, $meta_key ) {
207
+ if ( ! $this->hijack || ( $this->object_id != $object_id && 1987645321 !== $object_id ) ) {
208
+ return $check;
209
+ }
210
+
211
+ if ( $this->ajax_update ) {
212
+ return false;
213
+ }
214
+
215
+ return $this->cache_action( $meta_key );
216
+ }
217
+
218
+ /**
219
+ * Hijacks saving of cached oEmbed.
220
+ * Saves cached data to relevant object metadata (vs postmeta)
221
+ *
222
+ * @since 0.9.5
223
+ * @param boolean $check Whether to continue setting postmeta.
224
+ * @param int $object_id Object ID to get postmeta from.
225
+ * @param string $meta_key Postmeta's key.
226
+ * @param mixed $meta_value Value of the postmeta to be saved.
227
+ * @return boolean Whether to continue setting.
228
+ */
229
+ public function hijack_oembed_cache_set( $check, $object_id, $meta_key, $meta_value ) {
230
+
231
+ if (
232
+ ! $this->hijack
233
+ || ( $this->object_id != $object_id && 1987645321 !== $object_id )
234
+ // Only want to hijack oembed meta values.
235
+ || 0 !== strpos( $meta_key, '_oembed_' )
236
+ ) {
237
+ return $check;
238
+ }
239
+
240
+ $this->cache_action( $meta_key, $meta_value );
241
+
242
+ // Anything other than `null` to cancel saving to postmeta.
243
+ return true;
244
+ }
245
+
246
+ /**
247
+ * Gets/updates the cached oEmbed value from/to relevant object metadata (vs postmeta).
248
+ *
249
+ * @since 1.3.0
250
+ *
251
+ * @param string $meta_key Postmeta's key.
252
+ * @return mixed
253
+ */
254
+ protected function cache_action( $meta_key ) {
255
+ $func_args = func_get_args();
256
+ $action = isset( $func_args[1] ) ? 'update' : 'get';
257
+
258
+ if ( 'options-page' === $this->object_type ) {
259
+
260
+ $args = array( $meta_key );
261
+
262
+ if ( 'update' === $action ) {
263
+ $args[] = $func_args[1];
264
+ $args[] = true;
265
+ }
266
+
267
+ // Cache the result to our options.
268
+ $status = call_user_func_array( array( cmb2_options( $this->object_id ), $action ), $args );
269
+ } else {
270
+
271
+ $args = array( $this->object_type, $this->object_id, $meta_key );
272
+ $args[] = 'update' === $action ? $func_args[1] : true;
273
+
274
+ // Cache the result to our metadata.
275
+ $status = call_user_func_array( $action . '_metadata', $args );
276
+ }
277
+
278
+ return $status;
279
+ }
280
+
281
+ /**
282
+ * Hooks in when options-page data is saved to clean stale
283
+ * oembed cache data from the option value.
284
+ *
285
+ * @since 2.2.0
286
+ * @param string $option_key The options-page option key.
287
+ * @return void
288
+ */
289
+ public static function clean_stale_options_page_oembeds( $option_key ) {
290
+ $options = cmb2_options( $option_key )->get_options();
291
+ $modified = false;
292
+ if ( is_array( $options ) ) {
293
+
294
+ $ttl = apply_filters( 'oembed_ttl', DAY_IN_SECONDS, '', array(), 0 );
295
+ $now = time();
296
+
297
+ foreach ( $options as $key => $value ) {
298
+ // Check for cached oembed data.
299
+ if ( 0 === strpos( $key, '_oembed_time_' ) ) {
300
+ $cached_recently = ( $now - $value ) < $ttl;
301
+
302
+ if ( ! $cached_recently ) {
303
+ $modified = true;
304
+ // Remove the the cached ttl expiration, and the cached oembed value.
305
+ unset( $options[ $key ] );
306
+ unset( $options[ str_replace( '_oembed_time_', '_oembed_', $key ) ] );
307
+ }
308
+ } // End if.
309
+ // Remove the cached unknown values.
310
+ elseif ( '{{unknown}}' === $value ) {
311
+ $modified = true;
312
+ unset( $options[ $key ] );
313
+ }
314
+ }
315
+ }
316
+
317
+ // Update the option and remove stale cache data.
318
+ if ( $modified ) {
319
+ $updated = cmb2_options( $option_key )->set( $options );
320
+ }
321
+ }
322
+
323
+ }
includes/plus-options/metabox/includes/CMB2_Base.php ADDED
@@ -0,0 +1,533 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 Base - Base object functionality.
4
+ *
5
+ * @category WordPress_Plugin
6
+ * @package CMB2
7
+ * @author CMB2 team
8
+ * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
+ *
11
+ * @property-read $args The objects array of properties/arguments.
12
+ * @property-read $meta_box The objects array of properties/arguments.
13
+ * @property-read $properties The objects array of properties/arguments.
14
+ * @property-read $cmb_id Current CMB2 instance ID
15
+ * @property-read $object_id Object ID
16
+ * @property-read $object_type Type of object being handled. (e.g., post, user, comment, or term)
17
+ */
18
+ abstract class CMB2_Base {
19
+
20
+ /**
21
+ * Current CMB2 instance ID
22
+ *
23
+ * @var string
24
+ * @since 2.2.3
25
+ */
26
+ protected $cmb_id = '';
27
+
28
+ /**
29
+ * The object properties name.
30
+ *
31
+ * @var string
32
+ * @since 2.2.3
33
+ */
34
+ protected $properties_name = 'meta_box';
35
+
36
+ /**
37
+ * Object ID
38
+ *
39
+ * @var mixed
40
+ * @since 2.2.3
41
+ */
42
+ protected $object_id = 0;
43
+
44
+ /**
45
+ * Type of object being handled. (e.g., post, user, comment, or term)
46
+ *
47
+ * @var string
48
+ * @since 2.2.3
49
+ */
50
+ protected $object_type = '';
51
+
52
+ /**
53
+ * Array of key => value data for saving. Likely $_POST data.
54
+ *
55
+ * @var array
56
+ * @since 2.2.3
57
+ */
58
+ public $data_to_save = array();
59
+
60
+ /**
61
+ * Array of field param callback results
62
+ *
63
+ * @var array
64
+ * @since 2.0.0
65
+ */
66
+ protected $callback_results = array();
67
+
68
+ /**
69
+ * The deprecated_param method deprecated param message signature.
70
+ */
71
+ const DEPRECATED_PARAM = 1;
72
+
73
+ /**
74
+ * The deprecated_param method deprecated callback param message signature.
75
+ */
76
+ const DEPRECATED_CB_PARAM = 2;
77
+
78
+ /**
79
+ * Get started
80
+ *
81
+ * @since 2.2.3
82
+ * @param array $args Object properties array.
83
+ */
84
+ public function __construct( $args = array() ) {
85
+ if ( ! empty( $args ) ) {
86
+ foreach ( array(
87
+ 'cmb_id',
88
+ 'properties_name',
89
+ 'object_id',
90
+ 'object_type',
91
+ 'data_to_save',
92
+ ) as $object_prop ) {
93
+ if ( isset( $args[ $object_prop ] ) ) {
94
+ $this->{$object_prop} = $args[ $object_prop ];
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Returns the object ID
102
+ *
103
+ * @since 2.2.3
104
+ * @param integer $object_id Object ID.
105
+ * @return integer Object ID
106
+ */
107
+ public function object_id( $object_id = 0 ) {
108
+ if ( $object_id ) {
109
+ $this->object_id = $object_id;
110
+ }
111
+
112
+ return $this->object_id;
113
+ }
114
+
115
+ /**
116
+ * Returns the object type
117
+ *
118
+ * @since 2.2.3
119
+ * @param string $object_type Object Type.
120
+ * @return string Object type
121
+ */
122
+ public function object_type( $object_type = '' ) {
123
+ if ( $object_type ) {
124
+ $this->object_type = $object_type;
125
+ }
126
+
127
+ return $this->object_type;
128
+ }
129
+
130
+ /**
131
+ * Get the object type for the current page, based on the $pagenow global.
132
+ *
133
+ * @since 2.2.2
134
+ * @return string Page object type name.
135
+ */
136
+ public function current_object_type() {
137
+ global $pagenow;
138
+ $type = 'post';
139
+
140
+ if ( in_array( $pagenow, array( 'user-edit.php', 'profile.php', 'user-new.php' ), true ) ) {
141
+ $type = 'user';
142
+ }
143
+
144
+ if ( in_array( $pagenow, array( 'edit-comments.php', 'comment.php' ), true ) ) {
145
+ $type = 'comment';
146
+ }
147
+
148
+ if ( in_array( $pagenow, array( 'edit-tags.php', 'term.php' ), true ) ) {
149
+ $type = 'term';
150
+ }
151
+
152
+ return $type;
153
+ }
154
+
155
+ /**
156
+ * Set object property.
157
+ *
158
+ * @since 2.2.2
159
+ * @param string $property Metabox config property to retrieve.
160
+ * @param mixed $value Value to set if no value found.
161
+ * @return mixed Metabox config property value or false.
162
+ */
163
+ public function set_prop( $property, $value ) {
164
+ $this->{$this->properties_name}[ $property ] = $value;
165
+
166
+ return $this->prop( $property );
167
+ }
168
+
169
+ /**
170
+ * Get object property and optionally set a fallback
171
+ *
172
+ * @since 2.0.0
173
+ * @param string $property Metabox config property to retrieve.
174
+ * @param mixed $fallback Fallback value to set if no value found.
175
+ * @return mixed Metabox config property value or false
176
+ */
177
+ public function prop( $property, $fallback = null ) {
178
+ if ( array_key_exists( $property, $this->{$this->properties_name} ) ) {
179
+ return $this->{$this->properties_name}[ $property ];
180
+ } elseif ( $fallback ) {
181
+ return $this->{$this->properties_name}[ $property ] = $fallback;
182
+ }
183
+ }
184
+
185
+ /**
186
+ * Get default field arguments specific to this CMB2 object.
187
+ *
188
+ * @since 2.2.0
189
+ * @param array $field_args Metabox field config array.
190
+ * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent).
191
+ * @return array Array of field arguments.
192
+ */
193
+ protected function get_default_args( $field_args, $field_group = null ) {
194
+ if ( $field_group ) {
195
+ $args = array(
196
+ 'field_args' => $field_args,
197
+ 'group_field' => $field_group,
198
+ );
199
+ } else {
200
+ $args = array(
201
+ 'field_args' => $field_args,
202
+ 'object_type' => $this->object_type(),
203
+ 'object_id' => $this->object_id(),
204
+ 'cmb_id' => $this->cmb_id,
205
+ );
206
+ }
207
+
208
+ return $args;
209
+ }
210
+
211
+ /**
212
+ * Get a new field object specific to this CMB2 object.
213
+ *
214
+ * @since 2.2.0
215
+ * @param array $field_args Metabox field config array.
216
+ * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent).
217
+ * @return CMB2_Field CMB2_Field object
218
+ */
219
+ protected function get_new_field( $field_args, $field_group = null ) {
220
+ return new CMB2_Field( $this->get_default_args( $field_args, $field_group ) );
221
+ }
222
+
223
+ /**
224
+ * Determine whether this cmb object should show, based on the 'show_on_cb' callback.
225
+ *
226
+ * @since 2.0.9
227
+ *
228
+ * @return bool Whether this cmb should be shown.
229
+ */
230
+ public function should_show() {
231
+ // Default to showing this cmb
232
+ $show = true;
233
+
234
+ // Use the callback to determine showing the cmb, if it exists.
235
+ if ( is_callable( $this->prop( 'show_on_cb' ) ) ) {
236
+ $show = (bool) call_user_func( $this->prop( 'show_on_cb' ), $this );
237
+ }
238
+
239
+ return $show;
240
+ }
241
+
242
+ /**
243
+ * Displays the results of the param callbacks.
244
+ *
245
+ * @since 2.0.0
246
+ * @param string $param Field parameter.
247
+ */
248
+ public function peform_param_callback( $param ) {
249
+ echo $this->get_param_callback_result( $param );
250
+ }
251
+
252
+ /**
253
+ * Store results of the param callbacks for continual access
254
+ *
255
+ * @since 2.0.0
256
+ * @param string $param Field parameter.
257
+ * @return mixed Results of param/param callback
258
+ */
259
+ public function get_param_callback_result( $param ) {
260
+
261
+ // If we've already retrieved this param's value.
262
+ if ( array_key_exists( $param, $this->callback_results ) ) {
263
+
264
+ // Send it back.
265
+ return $this->callback_results[ $param ];
266
+ }
267
+
268
+ // Check if parameter has registered a callback.
269
+ if ( $cb = $this->maybe_callback( $param ) ) {
270
+
271
+ // Ok, callback is good, let's run it and store the result.
272
+ ob_start();
273
+ $returned = $this->do_callback( $cb );
274
+
275
+ // Grab the result from the output buffer and store it.
276
+ $echoed = ob_get_clean();
277
+
278
+ // This checks if the user returned or echoed their callback.
279
+ // Defaults to using the echoed value.
280
+ $this->callback_results[ $param ] = $echoed ? $echoed : $returned;
281
+
282
+ } else {
283
+
284
+ // Otherwise just get whatever is there.
285
+ $this->callback_results[ $param ] = isset( $this->{$this->properties_name}[ $param ] ) ? $this->{$this->properties_name}[ $param ] : false;
286
+ }
287
+
288
+ return $this->callback_results[ $param ];
289
+ }
290
+
291
+ /**
292
+ * Unset the cached results of the param callback.
293
+ *
294
+ * @since 2.2.6
295
+ * @param string $param Field parameter.
296
+ * @return CMB2_Base
297
+ */
298
+ public function unset_param_callback_cache( $param ) {
299
+ if ( isset( $this->callback_results[ $param ] ) ) {
300
+ unset( $this->callback_results[ $param ] );
301
+ }
302
+
303
+ return $this;
304
+ }
305
+
306
+ /**
307
+ * Handles the parameter callbacks, and passes this object as parameter.
308
+ *
309
+ * @since 2.2.3
310
+ * @param callable $cb The callback method/function/closure.
311
+ * @param mixed $additional_params Any additoinal parameters which should be passed to the callback.
312
+ * @return mixed Return of the callback function.
313
+ */
314
+ protected function do_callback( $cb, $additional_params = null ) {
315
+ return call_user_func( $cb, $this->{$this->properties_name}, $this, $additional_params );
316
+ }
317
+
318
+ /**
319
+ * Checks if field has a callback value
320
+ *
321
+ * @since 1.0.1
322
+ * @param string $cb Callback string.
323
+ * @return mixed NULL, false for NO validation, or $cb string if it exists.
324
+ */
325
+ public function maybe_callback( $cb ) {
326
+ $args = $this->{$this->properties_name};
327
+ if ( ! isset( $args[ $cb ] ) ) {
328
+ return null;
329
+ }
330
+
331
+ // Check if requesting explicitly false.
332
+ $cb = false !== $args[ $cb ] && 'false' !== $args[ $cb ] ? $args[ $cb ] : false;
333
+
334
+ // If requesting NO validation, return false.
335
+ if ( ! $cb ) {
336
+ return false;
337
+ }
338
+
339
+ if ( is_callable( $cb ) ) {
340
+ return $cb;
341
+ }
342
+
343
+ return null;
344
+ }
345
+
346
+ /**
347
+ * Checks if this object has parameter corresponding to the given filter
348
+ * which is callable. If so, it registers the callback, and if not,
349
+ * converts the maybe-modified $val to a boolean for return.
350
+ *
351
+ * The registered handlers will have a parameter name which matches the filter, except:
352
+ * - The 'cmb2_api' prefix will be removed
353
+ * - A '_cb' suffix will be added (to stay inline with other '*_cb' parameters).
354
+ *
355
+ * @since 2.2.3
356
+ *
357
+ * @param string $hook_name The hook name.
358
+ * @param bool $val The default value.
359
+ * @param string $hook_function The hook function. Default: 'add_filter'.
360
+ *
361
+ * @return null|bool Null if hook is registered, or bool for value.
362
+ */
363
+ public function maybe_hook_parameter( $hook_name, $val = null, $hook_function = 'add_filter' ) {
364
+
365
+ // Remove filter prefix, add param suffix.
366
+ $parameter = substr( $hook_name, strlen( 'cmb2_api_' ) ) . '_cb';
367
+
368
+ return self::maybe_hook(
369
+ $this->prop( $parameter, $val ),
370
+ $hook_name,
371
+ $hook_function
372
+ );
373
+ }
374
+
375
+ /**
376
+ * Checks if given value is callable, and registers the callback.
377
+ * If is non-callable, converts the $val to a boolean for return.
378
+ *
379
+ * @since 2.2.3
380
+ *
381
+ * @param bool $val The default value.
382
+ * @param string $hook_name The hook name.
383
+ * @param string $hook_function The hook function.
384
+ *
385
+ * @return null|bool Null if hook is registered, or bool for value.
386
+ */
387
+ public static function maybe_hook( $val, $hook_name, $hook_function ) {
388
+ if ( is_callable( $val ) ) {
389
+ call_user_func( $hook_function, $hook_name, $val, 10, 2 );
390
+ return null;
391
+ }
392
+
393
+ // Cast to bool.
394
+ return ! ! $val;
395
+ }
396
+
397
+ /**
398
+ * Mark a param as deprecated and inform when it has been used.
399
+ *
400
+ * There is a default WordPress hook deprecated_argument_run that will be called
401
+ * that can be used to get the backtrace up to what file and function used the
402
+ * deprecated argument.
403
+ *
404
+ * The current behavior is to trigger a user error if WP_DEBUG is true.
405
+ *
406
+ * @since 2.2.3
407
+ *
408
+ * @param string $function The function that was called.
409
+ * @param string $version The version of CMB2 that deprecated the argument used.
410
+ * @param string $message Optional. A message regarding the change, or numeric
411
+ * key to generate message from additional arguments.
412
+ * Default null.
413
+ */
414
+ protected function deprecated_param( $function, $version, $message = null ) {
415
+
416
+ if ( is_numeric( $message ) ) {
417
+ $args = func_get_args();
418
+
419
+ switch ( $message ) {
420
+
421
+ case self::DEPRECATED_PARAM:
422
+ $message = sprintf( __( 'The "%1$s" field parameter has been deprecated in favor of the "%2$s" parameter.', 'cmb2' ), $args[3], $args[4] );
423
+ break;
424
+
425
+ case self::DEPRECATED_CB_PARAM:
426
+ $message = sprintf( __( 'Using the "%1$s" field parameter as a callback has been deprecated in favor of the "%2$s" parameter.', 'cmb2' ), $args[3], $args[4] );
427
+ break;
428
+
429
+ default:
430
+ $message = null;
431
+ break;
432
+ }
433
+ }
434
+
435
+ /**
436
+ * Fires when a deprecated argument is called. This is a WP core action.
437
+ *
438
+ * @since 2.2.3
439
+ *
440
+ * @param string $function The function that was called.
441
+ * @param string $message A message regarding the change.
442
+ * @param string $version The version of CMB2 that deprecated the argument used.
443
+ */
444
+ do_action( 'deprecated_argument_run', $function, $message, $version );
445
+
446
+ /**
447
+ * Filters whether to trigger an error for deprecated arguments. This is a WP core filter.
448
+ *
449
+ * @since 2.2.3
450
+ *
451
+ * @param bool $trigger Whether to trigger the error for deprecated arguments. Default true.
452
+ */
453
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG && apply_filters( 'deprecated_argument_trigger_error', true ) ) {
454
+ if ( function_exists( '__' ) ) {
455
+ if ( ! is_null( $message ) ) {
456
+ trigger_error( sprintf( __( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s! %3$s', 'cmb2' ), $function, $version, $message ) );
457
+ } else {
458
+ trigger_error( sprintf( __( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s with no alternative available.', 'cmb2' ), $function, $version ) );
459
+ }
460
+ } else {
461
+ if ( ! is_null( $message ) ) {
462
+ trigger_error( sprintf( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s! %3$s', $function, $version, $message ) );
463
+ } else {
464
+ trigger_error( sprintf( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s with no alternative available.', $function, $version ) );
465
+ }
466
+ }
467
+ }
468
+ }
469
+
470
+ /**
471
+ * Magic getter for our object.
472
+ *
473
+ * @param string $field Requested property.
474
+ * @throws Exception Throws an exception if the field is invalid.
475
+ * @return mixed
476
+ */
477
+ public function __get( $field ) {
478
+ switch ( $field ) {
479
+ case 'args':
480
+ case 'meta_box':
481
+ if ( $field === $this->properties_name ) {
482
+ return $this->{$this->properties_name};
483
+ }
484
+ case 'properties':
485
+ return $this->{$this->properties_name};
486
+ case 'cmb_id':
487
+ case 'object_id':
488
+ case 'object_type':
489
+ return $this->{$field};
490
+ default:
491
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
492
+ }
493
+ }
494
+
495
+ /**
496
+ * Allows overloading the object with methods... Whooaaa oooh it's magic, y'knoooow.
497
+ *
498
+ * @since 1.0.0
499
+ * @throws Exception Invalid method exception.
500
+ *
501
+ * @param string $method Non-existent method.
502
+ * @param array $args All arguments passed to the method.
503
+ * @return mixed
504
+ */
505
+ public function __call( $method, $args ) {
506
+ $object_class = strtolower( get_class( $this ) );
507
+
508
+ if ( ! has_filter( "{$object_class}_inherit_{$method}" ) ) {
509
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s method: %2$s', 'cmb2' ), get_class( $this ), $method ) );
510
+ }
511
+
512
+ array_unshift( $args, $this );
513
+
514
+ /**
515
+ * Allows overloading the object (CMB2 or CMB2_Field) with additional capabilities
516
+ * by registering hook callbacks.
517
+ *
518
+ * The first dynamic portion of the hook name, $object_class, refers to the object class,
519
+ * either cmb2 or cmb2_field.
520
+ *
521
+ * The second dynamic portion of the hook name, $method, is the non-existent method being
522
+ * called on the object. To avoid possible future methods encroaching on your hooks,
523
+ * use a unique method (aka, $cmb->prefix_my_method()).
524
+ *
525
+ * When registering your callback, you will need to ensure that you register the correct
526
+ * number of `$accepted_args`, accounting for this object instance being the first argument.
527
+ *
528
+ * @param array $args The arguments to be passed to the hook.
529
+ * The first argument will always be this object instance.
530
+ */
531
+ return apply_filters_ref_array( "{$object_class}_inherit_{$method}", $args );
532
+ }
533
+ }
includes/plus-options/metabox/includes/CMB2_Boxes.php ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * A CMB2 object instance registry for storing every CMB2 instance.
5
+ *
6
+ * @category WordPress_Plugin
7
+ * @package CMB2
8
+ * @author CMB2 team
9
+ * @license GPL-2.0+
10
+ * @link https://cmb2.io
11
+ */
12
+ class CMB2_Boxes {
13
+
14
+ /**
15
+ * Array of all metabox objects.
16
+ *
17
+ * @since 2.0.0
18
+ * @var array
19
+ */
20
+ protected static $cmb2_instances = array();
21
+
22
+ /**
23
+ * Add a CMB2 instance object to the registry.
24
+ *
25
+ * @since 1.X.X
26
+ *
27
+ * @param CMB2 $cmb_instance CMB2 instance.
28
+ */
29
+ public static function add( CMB2 $cmb_instance ) {
30
+ self::$cmb2_instances[ $cmb_instance->cmb_id ] = $cmb_instance;
31
+ }
32
+
33
+ /**
34
+ * Remove a CMB2 instance object from the registry.
35
+ *
36
+ * @since 1.X.X
37
+ *
38
+ * @param string $cmb_id A CMB2 instance id.
39
+ */
40
+ public static function remove( $cmb_id ) {
41
+ if ( array_key_exists( $cmb_id, self::$cmb2_instances ) ) {
42
+ unset( self::$cmb2_instances[ $cmb_id ] );
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Retrieve a CMB2 instance by cmb id.
48
+ *
49
+ * @since 1.X.X
50
+ *
51
+ * @param string $cmb_id A CMB2 instance id.
52
+ *
53
+ * @return CMB2|bool False or CMB2 object instance.
54
+ */
55
+ public static function get( $cmb_id ) {
56
+ if ( empty( self::$cmb2_instances ) || empty( self::$cmb2_instances[ $cmb_id ] ) ) {
57
+ return false;
58
+ }
59
+
60
+ return self::$cmb2_instances[ $cmb_id ];
61
+ }
62
+
63
+ /**
64
+ * Retrieve all CMB2 instances registered.
65
+ *
66
+ * @since 1.X.X
67
+ * @return CMB2[] Array of all registered cmb2 instances.
68
+ */
69
+ public static function get_all() {
70
+ return self::$cmb2_instances;
71
+ }
72
+
73
+ /**
74
+ * Retrieve all CMB2 instances that have the specified property set.
75
+ *
76
+ * @since 2.4.0
77
+ * @param string $property Property name.
78
+ * @param mixed $compare (Optional) The value to compare.
79
+ * @return CMB2[] Array of matching cmb2 instances.
80
+ */
81
+ public static function get_by( $property, $compare = 'nocompare' ) {
82
+ $boxes = array();
83
+
84
+ foreach ( self::$cmb2_instances as $cmb_id => $cmb ) {
85
+ $prop = $cmb->prop( $property );
86
+
87
+ if ( 'nocompare' === $compare ) {
88
+ if ( ! empty( $prop ) ) {
89
+ $boxes[ $cmb_id ] = $cmb;
90
+ }
91
+ continue;
92
+ }
93
+
94
+ if ( $compare === $prop ) {
95
+ $boxes[ $cmb_id ] = $cmb;
96
+ }
97
+ }
98
+
99
+ return $boxes;
100
+ }
101
+
102
+ /**
103
+ * Retrieve all CMB2 instances as long as they do not include the ignored property.
104
+ *
105
+ * @since 2.4.0
106
+ * @param string $property Property name.
107
+ * @param mixed $to_ignore The value to ignore.
108
+ * @return CMB2[] Array of matching cmb2 instances.
109
+ */
110
+ public static function filter_by( $property, $to_ignore = null ) {
111
+ $boxes = array();
112
+
113
+ foreach ( self::$cmb2_instances as $cmb_id => $cmb ) {
114
+
115
+ if ( $to_ignore === $cmb->prop( $property ) ) {
116
+ continue;
117
+ }
118
+
119
+ $boxes[ $cmb_id ] = $cmb;
120
+ }
121
+
122
+ return $boxes;
123
+ }
124
+
125
+ /**
126
+ * Deprecated and left for back-compatibility. The original `get_by_property`
127
+ * method was misnamed and never actually used by CMB2 core.
128
+ *
129
+ * @since 2.2.3
130
+ *
131
+ * @param string $property Property name.
132
+ * @param mixed $to_ignore The value to ignore.
133
+ * @return CMB2[] Array of matching cmb2 instances.
134
+ */
135
+ public static function get_by_property( $property, $to_ignore = null ) {
136
+ _deprecated_function( __METHOD__, '2.4.0', 'CMB2_Boxes::filter_by()' );
137
+ return self::filter_by( $property );
138
+ }
139
+ }
includes/plus-options/metabox/includes/CMB2_Field.php ADDED
@@ -0,0 +1,1621 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 field objects
4
+ *
5
+ * @since 1.1.0
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ *
13
+ * @method string _id()
14
+ * @method string type()
15
+ * @method mixed fields()
16
+ */
17
+ class CMB2_Field extends CMB2_Base {
18
+
19
+ /**
20
+ * The object properties name.
21
+ *
22
+ * @var string
23
+ * @since 2.2.3
24
+ */
25
+ protected $properties_name = 'args';
26
+
27
+ /**
28
+ * Field arguments
29
+ *
30
+ * @var mixed
31
+ * @since 1.1.0
32
+ */
33
+ public $args = array();
34
+
35
+ /**
36
+ * Field group object or false (if no group)
37
+ *
38
+ * @var mixed
39
+ * @since 1.1.0
40
+ */
41
+ public $group = false;
42
+
43
+ /**
44
+ * Field meta value
45
+ *
46
+ * @var mixed
47
+ * @since 1.1.0
48
+ */
49
+ public $value = null;
50
+
51
+ /**
52
+ * Field meta value
53
+ *
54
+ * @var mixed
55
+ * @since 1.1.0
56
+ */
57
+ public $escaped_value = null;
58
+
59
+ /**
60
+ * Grouped Field's current numeric index during the save process
61
+ *
62
+ * @var mixed
63
+ * @since 2.0.0
64
+ */
65
+ public $index = 0;
66
+
67
+ /**
68
+ * Array of field options
69
+ *
70
+ * @var array
71
+ * @since 2.0.0
72
+ */
73
+ protected $field_options = array();
74
+
75
+ /**
76
+ * Array of provided field text strings
77
+ *
78
+ * @var array
79
+ * @since 2.0.0
80
+ */
81
+ protected $strings;
82
+
83
+ /**
84
+ * The field's render context. In most cases, 'edit', but can be 'display'.
85
+ *
86
+ * @var string
87
+ * @since 2.2.2
88
+ */
89
+ public $render_context = 'edit';
90
+
91
+ /**
92
+ * All CMB2_Field callable field arguments.
93
+ * Can be used to determine if a field argument is callable.
94
+ *
95
+ * @var array
96
+ */
97
+ public static $callable_fields = array(
98
+ 'default_cb',
99
+ 'classes_cb',
100
+ 'options_cb',
101
+ 'text_cb',
102
+ 'label_cb',
103
+ 'render_row_cb',
104
+ 'display_cb',
105
+ 'before_group',
106
+ 'before_group_row',
107
+ 'before_row',
108
+ 'before',
109
+ 'before_field',
110
+ 'after_field',
111
+ 'after',
112
+ 'after_row',
113
+ 'after_group_row',
114
+ 'after_group',
115
+ );
116
+
117
+ /**
118
+ * Represents a unique hash representing this field.
119
+ *
120
+ * @since 2.2.4
121
+ *
122
+ * @var string
123
+ */
124
+ protected $hash_id = '';
125
+
126
+ /**
127
+ * Constructs our field object
128
+ *
129
+ * @since 1.1.0
130
+ * @param array $args Field arguments.
131
+ */
132
+ public function __construct( $args ) {
133
+
134
+ if ( ! empty( $args['group_field'] ) ) {
135
+ $this->group = $args['group_field'];
136
+ $this->object_id = $this->group->object_id;
137
+ $this->object_type = $this->group->object_type;
138
+ $this->cmb_id = $this->group->cmb_id;
139
+ } else {
140
+ $this->object_id = isset( $args['object_id'] ) && '_' !== $args['object_id'] ? $args['object_id'] : 0;
141
+ $this->object_type = isset( $args['object_type'] ) ? $args['object_type'] : 'post';
142
+
143
+ if ( isset( $args['cmb_id'] ) ) {
144
+ $this->cmb_id = $args['cmb_id'];
145
+ }
146
+ }
147
+
148
+ $this->args = $this->_set_field_defaults( $args['field_args'] );
149
+
150
+ if ( $this->object_id ) {
151
+ $this->value = $this->get_data();
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Non-existent methods fallback to checking for field arguments of the same name
157
+ *
158
+ * @since 1.1.0
159
+ * @param string $name Method name.
160
+ * @param array $arguments Array of passed-in arguments.
161
+ * @return mixed Value of field argument
162
+ */
163
+ public function __call( $name, $arguments ) {
164
+ if ( 'string' === $name ) {
165
+ return call_user_func_array( array( $this, 'get_string' ), $arguments );
166
+ }
167
+
168
+ $key = isset( $arguments[0] ) ? $arguments[0] : '';
169
+ return $this->args( $name, $key );
170
+ }
171
+
172
+ /**
173
+ * Retrieves the field id
174
+ *
175
+ * @since 1.1.0
176
+ * @param boolean $raw Whether to retrieve pre-modidifed id.
177
+ * @return string Field id
178
+ */
179
+ public function id( $raw = false ) {
180
+ $id = $raw ? '_id' : 'id';
181
+ return $this->args( $id );
182
+ }
183
+
184
+ /**
185
+ * Get a field argument
186
+ *
187
+ * @since 1.1.0
188
+ * @param string $key Argument to check.
189
+ * @param string $_key Sub argument to check.
190
+ * @return mixed Argument value or false if non-existent
191
+ */
192
+ public function args( $key = '', $_key = '' ) {
193
+ $arg = $this->_data( 'args', $key );
194
+
195
+ if ( in_array( $key, array( 'default', 'default_cb' ), true ) ) {
196
+
197
+ $arg = $this->get_default();
198
+
199
+ } elseif ( $_key ) {
200
+
201
+ $arg = isset( $arg[ $_key ] ) ? $arg[ $_key ] : false;
202
+ }
203
+
204
+ return $arg;
205
+ }
206
+
207
+ /**
208
+ * Retrieve a portion of a field property
209
+ *
210
+ * @since 1.1.0
211
+ * @param string $var Field property to check.
212
+ * @param string $key Field property array key to check.
213
+ * @return mixed Queried property value or false
214
+ */
215
+ public function _data( $var, $key = '' ) {
216
+ $vars = $this->{$var};
217
+ if ( $key ) {
218
+ return array_key_exists( $key, $vars ) ? $vars[ $key ] : false;
219
+ }
220
+ return $vars;
221
+ }
222
+
223
+ /**
224
+ * Get Field's value
225
+ *
226
+ * @since 1.1.0
227
+ * @param string $key If value is an array, is used to get array key->value.
228
+ * @return mixed Field value or false if non-existent
229
+ */
230
+ public function value( $key = '' ) {
231
+ return $this->_data( 'value', $key );
232
+ }
233
+
234
+ /**
235
+ * Retrieves metadata/option data
236
+ *
237
+ * @since 1.0.1
238
+ * @param string $field_id Meta key/Option array key.
239
+ * @param array $args Override arguments.
240
+ * @return mixed Meta/Option value
241
+ */
242
+ public function get_data( $field_id = '', $args = array() ) {
243
+ if ( $field_id ) {
244
+ $args['field_id'] = $field_id;
245
+ } elseif ( $this->group ) {
246
+ $args['field_id'] = $this->group->id();
247
+ }
248
+
249
+ $a = $this->data_args( $args );
250
+
251
+ /**
252
+ * Filter whether to override getting of meta value.
253
+ * Returning a non 'cmb2_field_no_override_val' value
254
+ * will effectively short-circuit the value retrieval.
255
+ *
256
+ * @since 2.0.0
257
+ *
258
+ * @param mixed $value The value get_metadata() should
259
+ * return - a single metadata value,
260
+ * or an array of values.
261
+ *
262
+ * @param int $object_id Object ID.
263
+ *
264
+ * @param array $args {
265
+ * An array of arguments for retrieving data
266
+ *
267
+ * @type string $type The current object type
268
+ * @type int $id The current object ID
269
+ * @type string $field_id The ID of the field being requested
270
+ * @type bool $repeat Whether current field is repeatable
271
+ * @type bool $single Whether current field is a single database row
272
+ * }
273
+ *
274
+ * @param CMB2_Field object $field This field object
275
+ */
276
+ $data = apply_filters( 'cmb2_override_meta_value', 'cmb2_field_no_override_val', $this->object_id, $a, $this );
277
+
278
+ /**
279
+ * Filter and parameters are documented for 'cmb2_override_meta_value' filter (above).
280
+ *
281
+ * The dynamic portion of the hook, $field_id, refers to the current
282
+ * field id paramater. Returning a non 'cmb2_field_no_override_val' value
283
+ * will effectively short-circuit the value retrieval.
284
+ *
285
+ * @since 2.0.0
286
+ */
287
+ $data = apply_filters( "cmb2_override_{$a['field_id']}_meta_value", $data, $this->object_id, $a, $this );
288
+
289
+ // If no override, get value normally.
290
+ if ( 'cmb2_field_no_override_val' === $data ) {
291
+ $data = 'options-page' === $a['type']
292
+ ? cmb2_options( $a['id'] )->get( $a['field_id'] )
293
+ : get_metadata( $a['type'], $a['id'], $a['field_id'], ( $a['single'] || $a['repeat'] ) );
294
+ }
295
+
296
+ if ( $this->group ) {
297
+
298
+ $data = is_array( $data ) && isset( $data[ $this->group->index ][ $this->args( '_id' ) ] )
299
+ ? $data[ $this->group->index ][ $this->args( '_id' ) ]
300
+ : false;
301
+ }
302
+
303
+ return $data;
304
+ }
305
+
306
+ /**
307
+ * Updates metadata/option data.
308
+ *
309
+ * @since 1.0.1
310
+ * @param mixed $new_value Value to update data with.
311
+ * @param bool $single Whether data is an array (add_metadata).
312
+ * @return mixed
313
+ */
314
+ public function update_data( $new_value, $single = true ) {
315
+ $a = $this->data_args( array(
316
+ 'single' => $single,
317
+ ) );
318
+
319
+ $a['value'] = $a['repeat'] ? array_values( $new_value ) : $new_value;
320
+
321
+ /**
322
+ * Filter whether to override saving of meta value.
323
+ * Returning a non-null value will effectively short-circuit the function.
324
+ *
325
+ * @since 2.0.0
326
+ *
327
+ * @param null|bool $check Whether to allow updating metadata for the given type.
328
+ *
329
+ * @param array $args {
330
+ * Array of data about current field including:
331
+ *
332
+ * @type string $value The value to set
333
+ * @type string $type The current object type
334
+ * @type int $id The current object ID
335
+ * @type string $field_id The ID of the field being updated
336
+ * @type bool $repeat Whether current field is repeatable
337
+ * @type bool $single Whether current field is a single database row
338
+ * }
339
+ *
340
+ * @param array $field_args All field arguments
341
+ *
342
+ * @param CMB2_Field object $field This field object
343
+ */
344
+ $override = apply_filters( 'cmb2_override_meta_save', null, $a, $this->args(), $this );
345
+
346
+ /**
347
+ * Filter and parameters are documented for 'cmb2_override_meta_save' filter (above).
348
+ *
349
+ * The dynamic portion of the hook, $a['field_id'], refers to the current
350
+ * field id paramater. Returning a non-null value
351
+ * will effectively short-circuit the function.
352
+ *
353
+ * @since 2.0.0
354
+ */
355
+ $override = apply_filters( "cmb2_override_{$a['field_id']}_meta_save", $override, $a, $this->args(), $this );
356
+
357
+ // If override, return that.
358
+ if ( null !== $override ) {
359
+ return $override;
360
+ }
361
+
362
+ // Options page handling (or temp data store).
363
+ if ( 'options-page' === $a['type'] || empty( $a['id'] ) ) {
364
+ return cmb2_options( $a['id'] )->update( $a['field_id'], $a['value'], false, $a['single'] );
365
+ }
366
+
367
+ // Add metadata if not single.
368
+ if ( ! $a['single'] ) {
369
+ return add_metadata( $a['type'], $a['id'], $a['field_id'], $a['value'], false );
370
+ }
371
+
372
+ // Delete meta if we have an empty array.
373
+ if ( is_array( $a['value'] ) && empty( $a['value'] ) ) {
374
+ return delete_metadata( $a['type'], $a['id'], $a['field_id'], $this->value );
375
+ }
376
+
377
+ // Update metadata.
378
+ return update_metadata( $a['type'], $a['id'], $a['field_id'], $a['value'] );
379
+ }
380
+
381
+ /**
382
+ * Removes/updates metadata/option data.
383
+ *
384
+ * @since 1.0.1
385
+ * @param string $old Old value.
386
+ * @return mixed
387
+ */
388
+ public function remove_data( $old = '' ) {
389
+ $a = $this->data_args( array(
390
+ 'old' => $old,
391
+ ) );
392
+
393
+ /**
394
+ * Filter whether to override removing of meta value.
395
+ * Returning a non-null value will effectively short-circuit the function.
396
+ *
397
+ * @since 2.0.0
398
+ *
399
+ * @param null|bool $delete Whether to allow metadata deletion of the given type.
400
+ * @param array $args Array of data about current field including:
401
+ * 'type' : Current object type
402
+ * 'id' : Current object ID
403
+ * 'field_id' : Current Field ID
404
+ * 'repeat' : Whether current field is repeatable
405
+ * 'single' : Whether to save as a
406
+ * single meta value
407
+ * @param array $field_args All field arguments
408
+ * @param CMB2_Field object $field This field object
409
+ */
410
+ $override = apply_filters( 'cmb2_override_meta_remove', null, $a, $this->args(), $this );
411
+
412
+ /**
413
+ * Filter whether to override removing of meta value.
414
+ *
415
+ * The dynamic portion of the hook, $a['field_id'], refers to the current
416
+ * field id paramater. Returning a non-null value
417
+ * will effectively short-circuit the function.
418
+ *
419
+ * @since 2.0.0
420
+ *
421
+ * @param null|bool $delete Whether to allow metadata deletion of the given type.
422
+ * @param array $args Array of data about current field including:
423
+ * 'type' : Current object type
424
+ * 'id' : Current object ID
425
+ * 'field_id' : Current Field ID
426
+ * 'repeat' : Whether current field is repeatable
427
+ * 'single' : Whether to save as a
428
+ * single meta value
429
+ * @param array $field_args All field arguments
430
+ * @param CMB2_Field object $field This field object
431
+ */
432
+ $override = apply_filters( "cmb2_override_{$a['field_id']}_meta_remove", $override, $a, $this->args(), $this );
433
+
434
+ // If no override, remove as usual.
435
+ if ( null !== $override ) {
436
+ return $override;
437
+ } // End if.
438
+ // Option page handling.
439
+ elseif ( 'options-page' === $a['type'] || empty( $a['id'] ) ) {
440
+ return cmb2_options( $a['id'] )->remove( $a['field_id'] );
441
+ }
442
+
443
+ // Remove metadata.
444
+ return delete_metadata( $a['type'], $a['id'], $a['field_id'], $old );
445
+ }
446
+
447
+ /**
448
+ * Data variables for get/set data methods
449
+ *
450
+ * @since 1.1.0
451
+ * @param array $args Override arguments.
452
+ * @return array Updated arguments
453
+ */
454
+ public function data_args( $args = array() ) {
455
+ $args = wp_parse_args( $args, array(
456
+ 'type' => $this->object_type,
457
+ 'id' => $this->object_id,
458
+ 'field_id' => $this->id( true ),
459
+ 'repeat' => $this->args( 'repeatable' ),
460
+ 'single' => ! $this->args( 'multiple' ),
461
+ ) );
462
+ return $args;
463
+ }
464
+
465
+ /**
466
+ * Checks if field has a registered sanitization callback
467
+ *
468
+ * @since 1.0.1
469
+ * @param mixed $meta_value Meta value.
470
+ * @return mixed Possibly sanitized meta value
471
+ */
472
+ public function sanitization_cb( $meta_value ) {
473
+
474
+ if ( $this->args( 'repeatable' ) && is_array( $meta_value ) ) {
475
+ // Remove empties.
476
+ $meta_value = array_filter( $meta_value );
477
+ }
478
+
479
+ // Check if the field has a registered validation callback.
480
+ $cb = $this->maybe_callback( 'sanitization_cb' );
481
+ if ( false === $cb ) {
482
+ // If requesting NO validation, return meta value.
483
+ return $meta_value;
484
+ } elseif ( $cb ) {
485
+ // Ok, callback is good, let's run it.
486
+ return call_user_func( $cb, $meta_value, $this->args(), $this );
487
+ }
488
+
489
+ $sanitizer = new CMB2_Sanitize( $this, $meta_value );
490
+ $field_type = $this->type();
491
+
492
+ /**
493
+ * Filter the value before it is saved.
494
+ *
495
+ * The dynamic portion of the hook name, $field_type, refers to the field type.
496
+ *
497
+ * Passing a non-null value to the filter will short-circuit saving
498
+ * the field value, saving the passed value instead.
499
+ *
500
+ * @param bool|mixed $override_value Sanitization/Validation override value to return.
501
+ * Default: null. false to skip it.
502
+ * @param mixed $value The value to be saved to this field.
503
+ * @param int $object_id The ID of the object where the value will be saved
504
+ * @param array $field_args The current field's arguments
505
+ * @param object $sanitizer This `CMB2_Sanitize` object
506
+ */
507
+ $override_value = apply_filters( "cmb2_sanitize_{$field_type}", null, $sanitizer->value, $this->object_id, $this->args(), $sanitizer );
508
+
509
+ if ( null !== $override_value ) {
510
+ return $override_value;
511
+ }
512
+
513
+ // Sanitization via 'CMB2_Sanitize'.
514
+ return $sanitizer->{$field_type}();
515
+ }
516
+
517
+ /**
518
+ * Process $_POST data to save this field's value
519
+ *
520
+ * @since 2.0.3
521
+ * @param array $data_to_save $_POST data to check.
522
+ * @return array|int|bool Result of save, false on failure
523
+ */
524
+ public function save_field_from_data( array $data_to_save ) {
525
+ $this->data_to_save = $data_to_save;
526
+
527
+ $meta_value = isset( $this->data_to_save[ $this->id( true ) ] )
528
+ ? $this->data_to_save[ $this->id( true ) ]
529
+ : null;
530
+
531
+ return $this->save_field( $meta_value );
532
+ }
533
+
534
+ /**
535
+ * Sanitize/store a value to this field
536
+ *
537
+ * @since 2.0.0
538
+ * @param array $meta_value Desired value to sanitize/store.
539
+ * @return array|int|bool Result of save. false on failure
540
+ */
541
+ public function save_field( $meta_value ) {
542
+
543
+ $updated = false;
544
+ $action = '';
545
+ $new_value = $this->sanitization_cb( $meta_value );
546
+
547
+ if ( ! $this->args( 'save_field' ) ) {
548
+
549
+ // Nothing to see here.
550
+ $action = 'disabled';
551
+
552
+ } elseif ( $this->args( 'multiple' ) && ! $this->args( 'repeatable' ) && ! $this->group ) {
553
+
554
+ $this->remove_data();
555
+ $count = 0;
556
+
557
+ if ( ! empty( $new_value ) ) {
558
+ foreach ( $new_value as $add_new ) {
559
+ if ( $this->update_data( $add_new, false ) ) {
560
+ $count++;
561
+ }
562
+ }
563
+ }
564
+
565
+ $updated = $count ? $count : false;
566
+ $action = 'repeatable';
567
+
568
+ } elseif ( ! CMB2_Utils::isempty( $new_value ) && $new_value !== $this->get_data() ) {
569
+ $updated = $this->update_data( $new_value );
570
+ $action = 'updated';
571
+ } elseif ( CMB2_Utils::isempty( $new_value ) ) {
572
+ $updated = $this->remove_data();
573
+ $action = 'removed';
574
+ }
575
+
576
+ if ( $updated ) {
577
+ $this->value = $this->get_data();
578
+ $this->escaped_value = null;
579
+ }
580
+
581
+ $field_id = $this->id( true );
582
+
583
+ /**
584
+ * Hooks after save field action.
585
+ *
586
+ * @since 2.2.0
587
+ *
588
+ * @param string $field_id the current field id paramater.
589
+ * @param bool $updated Whether the metadata update action occurred.
590
+ * @param string $action Action performed. Could be "repeatable", "updated", or "removed".
591
+ * @param CMB2_Field object $field This field object
592
+ */
593
+ do_action( 'cmb2_save_field', $field_id, $updated, $action, $this );
594
+
595
+ /**
596
+ * Hooks after save field action.
597
+ *
598
+ * The dynamic portion of the hook, $field_id, refers to the
599
+ * current field id paramater.
600
+ *
601
+ * @since 2.2.0
602
+ *
603
+ * @param bool $updated Whether the metadata update action occurred.
604
+ * @param string $action Action performed. Could be "repeatable", "updated", or "removed".
605
+ * @param CMB2_Field object $field This field object
606
+ */
607
+ do_action( "cmb2_save_field_{$field_id}", $updated, $action, $this );
608
+
609
+ return $updated;
610
+ }
611
+
612
+ /**
613
+ * Determine if current type is exempt from escaping
614
+ *
615
+ * @since 1.1.0
616
+ * @return bool True if exempt
617
+ */
618
+ public function escaping_exception() {
619
+ // These types cannot be escaped.
620
+ return in_array( $this->type(), array(
621
+ 'file_list',
622
+ 'multicheck',
623
+ 'text_datetime_timestamp_timezone',
624
+ ) );
625
+ }
626
+
627
+ /**
628
+ * Determine if current type cannot be repeatable
629
+ *
630
+ * @since 1.1.0
631
+ * @param string $type Field type to check.
632
+ * @return bool True if type cannot be repeatable
633
+ */
634
+ public function repeatable_exception( $type ) {
635
+ // These types cannot be repeatable.
636
+ $internal_fields = array(
637
+ // Use file_list instead.
638
+ 'file' => 1,
639
+ 'radio' => 1,
640
+ 'title' => 1,
641
+ 'wysiwyg' => 1,
642
+ 'checkbox' => 1,
643
+ 'radio_inline' => 1,
644
+ 'taxonomy_radio' => 1,
645
+ 'taxonomy_radio_inline' => 1,
646
+ 'taxonomy_radio_hierarchical' => 1,
647
+ 'taxonomy_select' => 1,
648
+ 'taxonomy_multicheck' => 1,
649
+ 'taxonomy_multicheck_inline' => 1,
650
+ 'taxonomy_multicheck_hierarchical' => 1,
651
+
652
+ );
653
+
654
+ /**
655
+ * Filter field types that are non-repeatable.
656
+ *
657
+ * Note that this does *not* allow overriding the default non-repeatable types.
658
+ *
659
+ * @since 2.1.1
660
+ *
661
+ * @param array $fields Array of fields designated as non-repeatable. Note that the field names are *keys*,
662
+ * and not values. The value can be anything, because it is meaningless. Example:
663
+ * array( 'my_custom_field' => 1 )
664
+ */
665
+ $all_fields = array_merge( apply_filters( 'cmb2_non_repeatable_fields', array() ), $internal_fields );
666
+ return isset( $all_fields[ $type ] );
667
+ }
668
+
669
+ /**
670
+ * Determine if current type has its own defaults field-arguments method.
671
+ *
672
+ * @since 2.2.6
673
+ * @param string $type Field type to check.
674
+ * @return bool True if has own method.
675
+ */
676
+ public function has_args_method( $type ) {
677
+
678
+ // These types have their own arguments parser.
679
+ $type_methods = array(
680
+ 'group' => 'set_field_defaults_group',
681
+ 'wysiwyg' => 'set_field_defaults_wysiwyg',
682
+ );
683
+
684
+ if ( isset( $type_methods[ $type ] ) ) {
685
+ return $type_methods[ $type ];
686
+ }
687
+
688
+ $all_or_nothing_types = array_flip( apply_filters( 'cmb2_all_or_nothing_types', array(
689
+ 'select',
690
+ 'radio',
691
+ 'radio_inline',
692
+ 'taxonomy_select',
693
+ 'taxonomy_radio',
694
+ 'taxonomy_radio_inline',
695
+ 'taxonomy_radio_hierarchical',
696
+ ), $this ) );
697
+
698
+ if ( isset( $all_or_nothing_types[ $type ] ) ) {
699
+ return 'set_field_defaults_all_or_nothing_types';
700
+ }
701
+
702
+ return false;
703
+ }
704
+
705
+ /**
706
+ * Escape the value before output. Defaults to 'esc_attr()'
707
+ *
708
+ * @since 1.0.1
709
+ * @param callable|string $func Escaping function (if not esc_attr()).
710
+ * @param mixed $meta_value Meta value.
711
+ * @return mixed Final value.
712
+ */
713
+ public function escaped_value( $func = 'esc_attr', $meta_value = '' ) {
714
+
715
+ if ( null !== $this->escaped_value ) {
716
+ return $this->escaped_value;
717
+ }
718
+
719
+ $meta_value = $meta_value ? $meta_value : $this->value();
720
+
721
+ // Check if the field has a registered escaping callback.
722
+ if ( $cb = $this->maybe_callback( 'escape_cb' ) ) {
723
+ // Ok, callback is good, let's run it.
724
+ return call_user_func( $cb, $meta_value, $this->args(), $this );
725
+ }
726
+
727
+ $field_type = $this->type();
728
+
729
+ /**
730
+ * Filter the value for escaping before it is ouput.
731
+ *
732
+ * The dynamic portion of the hook name, $field_type, refers to the field type.
733
+ *
734
+ * Passing a non-null value to the filter will short-circuit the built-in
735
+ * escaping for this field.
736
+ *
737
+ * @param bool|mixed $override_value Escaping override value to return.
738
+ * Default: null. false to skip it.
739
+ * @param mixed $meta_value The value to be output.
740
+ * @param array $field_args The current field's arguments.
741
+ * @param object $field This `CMB2_Field` object.
742
+ */
743
+ $esc = apply_filters( "cmb2_types_esc_{$field_type}", null, $meta_value, $this->args(), $this );
744
+ if ( null !== $esc ) {
745
+ return $esc;
746
+ }
747
+
748
+ if ( false === $cb || $this->escaping_exception() ) {
749
+ // If requesting NO escaping, return meta value.
750
+ return $this->val_or_default( $meta_value );
751
+ }
752
+
753
+ // escaping function passed in?
754
+ $func = $func ? $func : 'esc_attr';
755
+ $meta_value = $this->val_or_default( $meta_value );
756
+
757
+ if ( is_array( $meta_value ) ) {
758
+ foreach ( $meta_value as $key => $value ) {
759
+ $meta_value[ $key ] = call_user_func( $func, $value );
760
+ }
761
+ } else {
762
+ $meta_value = call_user_func( $func, $meta_value );
763
+ }
764
+
765
+ $this->escaped_value = $meta_value;
766
+ return $this->escaped_value;
767
+ }
768
+
769
+ /**
770
+ * Return non-empty value or field default if value IS empty
771
+ *
772
+ * @since 2.0.0
773
+ * @param mixed $meta_value Field value.
774
+ * @return mixed Field value, or default value
775
+ */
776
+ public function val_or_default( $meta_value ) {
777
+ return ! CMB2_Utils::isempty( $meta_value ) ? $meta_value : $this->get_default();
778
+ }
779
+
780
+ /**
781
+ * Offset a time value based on timezone
782
+ *
783
+ * @since 1.0.0
784
+ * @return string Offset time string
785
+ */
786
+ public function field_timezone_offset() {
787
+ return CMB2_Utils::timezone_offset( $this->field_timezone() );
788
+ }
789
+
790
+ /**
791
+ * Return timezone string
792
+ *
793
+ * @since 1.0.0
794
+ * @return string Timezone string
795
+ */
796
+ public function field_timezone() {
797
+ $value = '';
798
+
799
+ // Is timezone arg set?
800
+ if ( $this->args( 'timezone' ) ) {
801
+ $value = $this->args( 'timezone' );
802
+ } // End if.
803
+ // Is there another meta key with a timezone stored as its value we should use?
804
+ elseif ( $this->args( 'timezone_meta_key' ) ) {
805
+ $value = $this->get_data( $this->args( 'timezone_meta_key' ) );
806
+ }
807
+
808
+ return $value;
809
+ }
810
+
811
+ /**
812
+ * Format the timestamp field value based on the field date/time format arg
813
+ *
814
+ * @since 2.0.0
815
+ * @param int $meta_value Timestamp.
816
+ * @param string $format Either date_format or time_format.
817
+ * @return string Formatted date
818
+ */
819
+ public function format_timestamp( $meta_value, $format = 'date_format' ) {
820
+ return date( stripslashes( $this->args( $format ) ), $meta_value );
821
+ }
822
+
823
+ /**
824
+ * Return a formatted timestamp for a field
825
+ *
826
+ * @since 2.0.0
827
+ * @param string $format Either date_format or time_format.
828
+ * @param string|int $meta_value Optional meta value to check.
829
+ * @return string Formatted date
830
+ */
831
+ public function get_timestamp_format( $format = 'date_format', $meta_value = 0 ) {
832
+ $meta_value = $meta_value ? $meta_value : $this->escaped_value();
833
+ if ( empty( $meta_value ) ) {
834
+ $meta_value = $this->get_default();
835
+ }
836
+
837
+ $meta_value = CMB2_Utils::make_valid_time_stamp( $meta_value );
838
+ if ( empty( $meta_value ) ) {
839
+ return '';
840
+ }
841
+
842
+ return is_array( $meta_value )
843
+ ? array_map( array( $this, 'format_timestamp' ), $meta_value, $format )
844
+ : $this->format_timestamp( $meta_value, $format );
845
+ }
846
+
847
+ /**
848
+ * Get timestamp from text date
849
+ *
850
+ * @since 2.2.0
851
+ * @param string $value Date value.
852
+ * @return mixed Unix timestamp representing the date.
853
+ */
854
+ public function get_timestamp_from_value( $value ) {
855
+ return CMB2_Utils::get_timestamp_from_value( $value, $this->args( 'date_format' ) );
856
+ }
857
+
858
+ /**
859
+ * Get field render callback and Render the field row
860
+ *
861
+ * @since 1.0.0
862
+ */
863
+ public function render_field() {
864
+ $this->render_context = 'edit';
865
+
866
+ $this->peform_param_callback( 'render_row_cb' );
867
+
868
+ // For chaining.
869
+ return $this;
870
+ }
871
+
872
+ /**
873
+ * Default field render callback
874
+ *
875
+ * @since 2.1.1
876
+ */
877
+ public function render_field_callback() {
878
+
879
+ // If field is requesting to not be shown on the front-end.
880
+ if ( ! is_admin() && ! $this->args( 'on_front' ) ) {
881
+ return;
882
+ }
883
+
884
+ // If field is requesting to be conditionally shown.
885
+ if ( ! $this->should_show() ) {
886
+ return;
887
+ }
888
+
889
+ $field_type = $this->type();
890
+
891
+ /**
892
+ * Hook before field row begins.
893
+ *
894
+ * @param CMB2_Field $field The current field object.
895
+ */
896
+ do_action( 'cmb2_before_field_row', $this );
897
+
898
+ /**
899
+ * Hook before field row begins.
900
+ *
901
+ * The dynamic portion of the hook name, $field_type, refers to the field type.
902
+ *
903
+ * @param CMB2_Field $field The current field object.
904
+ */
905
+ do_action( "cmb2_before_{$field_type}_field_row", $this );
906
+
907
+ $this->peform_param_callback( 'before_row' );
908
+
909
+ printf( "<div class=\"cmb-row %s\" data-fieldtype=\"%s\">\n", $this->row_classes(), $field_type );
910
+
911
+ if ( ! $this->args( 'show_names' ) ) {
912
+ echo "\n\t<div class=\"cmb-td\">\n";
913
+
914
+ $this->peform_param_callback( 'label_cb' );
915
+
916
+ } else {
917
+
918
+ if ( $this->get_param_callback_result( 'label_cb' ) ) {
919
+ echo '<div class="cmb-th">', $this->peform_param_callback( 'label_cb' ), '</div>';
920
+ }
921
+
922
+ echo "\n\t<div class=\"cmb-td\">\n";
923
+ }
924
+
925
+ $this->peform_param_callback( 'before' );
926
+
927
+ $types = new CMB2_Types( $this );
928
+ $types->render();
929
+
930
+ $this->peform_param_callback( 'after' );
931
+
932
+ echo "\n\t</div>\n</div>";
933
+
934
+ $this->peform_param_callback( 'after_row' );
935
+
936
+ /**
937
+ * Hook after field row ends.
938
+ *
939
+ * The dynamic portion of the hook name, $field_type, refers to the field type.
940
+ *
941
+ * @param CMB2_Field $field The current field object.
942
+ */
943
+ do_action( "cmb2_after_{$field_type}_field_row", $this );
944
+
945
+ /**
946
+ * Hook after field row ends.
947
+ *
948
+ * @param CMB2_Field $field The current field object.
949
+ */
950
+ do_action( 'cmb2_after_field_row', $this );
951
+
952
+ // For chaining.
953
+ return $this;
954
+ }
955
+
956
+ /**
957
+ * The default label_cb callback (if not a title field)
958
+ *
959
+ * @since 2.1.1
960
+ * @return string Label html markup.
961
+ */
962
+ public function label() {
963
+ if ( ! $this->args( 'name' ) ) {
964
+ return '';
965
+ }
966
+
967
+ $style = ! $this->args( 'show_names' ) ? ' style="display:none;"' : '';
968
+
969
+ return sprintf( "\n" . '<label%1$s for="%2$s">%3$s</label>' . "\n", $style, $this->id(), $this->args( 'name' ) );
970
+ }
971
+
972
+ /**
973
+ * Defines the classes for the current CMB2 field row
974
+ *
975
+ * @since 2.0.0
976
+ * @return string Space concatenated list of classes
977
+ */
978
+ public function row_classes() {
979
+
980
+ $classes = array();
981
+
982
+ /**
983
+ * By default, 'text_url' and 'text' fields get table-like styling
984
+ *
985
+ * @since 2.0.0
986
+ *
987
+ * @param array $field_types The types of fields which should get the 'table-layout' class
988
+ */
989
+ $repeat_table_rows_types = apply_filters( 'cmb2_repeat_table_row_types', array(
990
+ 'text_url',
991
+ 'text',
992
+ ) );
993
+
994
+ $conditional_classes = array(
995
+ 'cmb-type-' . str_replace( '_', '-', sanitize_html_class( $this->type() ) ) => true,
996
+ 'cmb2-id-' . str_replace( '_', '-', sanitize_html_class( $this->id() ) ) => true,
997
+ 'cmb-repeat' => $this->args( 'repeatable' ),
998
+ 'cmb-repeat-group-field' => $this->group,
999
+ 'cmb-inline' => $this->args( 'inline' ),
1000
+ 'table-layout' => 'edit' === $this->render_context && in_array( $this->type(), $repeat_table_rows_types ),
1001
+ );
1002
+
1003
+ foreach ( $conditional_classes as $class => $condition ) {
1004
+ if ( $condition ) {
1005
+ $classes[] = $class;
1006
+ }
1007
+ }
1008
+
1009
+ if ( $added_classes = $this->args( 'classes' ) ) {
1010
+ $added_classes = is_array( $added_classes ) ? implode( ' ', $added_classes ) : (string) $added_classes;
1011
+ } elseif ( $added_classes = $this->get_param_callback_result( 'classes_cb' ) ) {
1012
+ $added_classes = is_array( $added_classes ) ? implode( ' ', $added_classes ) : (string) $added_classes;
1013
+ }
1014
+
1015
+ if ( $added_classes ) {
1016
+ $classes[] = esc_attr( $added_classes );
1017
+ }
1018
+
1019
+ /**
1020
+ * Globally filter row classes
1021
+ *
1022
+ * @since 2.0.0
1023
+ *
1024
+ * @param string $classes Space-separated list of row classes
1025
+ * @param CMB2_Field object $field This field object
1026
+ */
1027
+ return apply_filters( 'cmb2_row_classes', implode( ' ', $classes ), $this );
1028
+ }
1029
+
1030
+ /**
1031
+ * Get field display callback and render the display value in the column.
1032
+ *
1033
+ * @since 2.2.2
1034
+ */
1035
+ public function render_column() {
1036
+ $this->render_context = 'display';
1037
+
1038
+ $this->peform_param_callback( 'display_cb' );
1039
+
1040
+ // For chaining.
1041
+ return $this;
1042
+ }
1043
+
1044
+ /**
1045
+ * The method to fetch the value for this field for the REST API.
1046
+ *
1047
+ * @since 2.5.0
1048
+ */
1049
+ public function get_rest_value() {
1050
+ $field_type = $this->type();
1051
+ $field_id = $this->id( true );
1052
+
1053
+ if ( $cb = $this->maybe_callback( 'rest_value_cb' ) ) {
1054
+ add_filter( "cmb2_get_rest_value_for_{$field_id}", $cb, 99 );
1055
+ }
1056
+
1057
+ $value = $this->get_data();
1058
+
1059
+ /**
1060
+ * Filter the value before it is sent to the REST request.
1061
+ *
1062
+ * @since 2.5.0
1063
+ *
1064
+ * @param mixed $value The value from CMB2_Field::get_data()
1065
+ * @param CMB2_Field $field This field object.
1066
+ */
1067
+ $value = apply_filters( 'cmb2_get_rest_value', $value, $this );
1068
+
1069
+ /**
1070
+ * Filter the value before it is sent to the REST request.
1071
+ *
1072
+ * The dynamic portion of the hook name, $field_type, refers to the field type.
1073
+ *
1074
+ * @since 2.5.0
1075
+ *
1076
+ * @param mixed $value The value from CMB2_Field::get_data()
1077
+ * @param CMB2_Field $field This field object.
1078
+ */
1079
+ $value = apply_filters( "cmb2_get_rest_value_{$field_type}", $value, $this );
1080
+
1081
+ /**
1082
+ * Filter the value before it is sent to the REST request.
1083
+ *
1084
+ * The dynamic portion of the hook name, $field_id, refers to the field id.
1085
+ *
1086
+ * @since 2.5.0
1087
+ *
1088
+ * @param mixed $value The value from CMB2_Field::get_data()
1089
+ * @param CMB2_Field $field This field object.
1090
+ */
1091
+ return apply_filters( "cmb2_get_rest_value_for_{$field_id}", $value, $this );
1092
+ }
1093
+
1094
+ /**
1095
+ * Default callback to outputs field value in a display format.
1096
+ *
1097
+ * @since 2.2.2
1098
+ */
1099
+ public function display_value_callback() {
1100
+ // If field is requesting to be conditionally shown.
1101
+ if ( ! $this->should_show() ) {
1102
+ return;
1103
+ }
1104
+
1105
+ $display = new CMB2_Field_Display( $this );
1106
+ $field_type = $this->type();
1107
+
1108
+ /**
1109
+ * A filter to bypass the default display.
1110
+ *
1111
+ * The dynamic portion of the hook name, $field_type, refers to the field type.
1112
+ *
1113
+ * Passing a non-null value to the filter will short-circuit the default display.
1114
+ *
1115
+ * @param bool|mixed $pre_output Default null value.
1116
+ * @param CMB2_Field $field This field object.
1117
+ * @param CMB2_Field_Display $display The `CMB2_Field_Display` object.
1118
+ */
1119
+ $pre_output = apply_filters( "cmb2_pre_field_display_{$field_type}", null, $this, $display );
1120
+
1121
+ if ( null !== $pre_output ) {
1122
+ echo $pre_output;
1123
+ return;
1124
+ }
1125
+
1126
+ $this->peform_param_callback( 'before_display_wrap' );
1127
+
1128
+ printf( "<div class=\"cmb-column %s\" data-fieldtype=\"%s\">\n", $this->row_classes(), $field_type );
1129
+
1130
+ $this->peform_param_callback( 'before_display' );
1131
+
1132
+ CMB2_Field_Display::get( $this )->display();
1133
+
1134
+ $this->peform_param_callback( 'after_display' );
1135
+
1136
+ echo "\n</div>";
1137
+
1138
+ $this->peform_param_callback( 'after_display_wrap' );
1139
+
1140
+ // For chaining.
1141
+ return $this;
1142
+ }
1143
+
1144
+ /**
1145
+ * Replaces a hash key - {#} - with the repeatable index
1146
+ *
1147
+ * @since 1.2.0
1148
+ * @param string $value Value to update.
1149
+ * @return string Updated value
1150
+ */
1151
+ public function replace_hash( $value ) {
1152
+ // Replace hash with 1 based count.
1153
+ return str_replace( '{#}', ( $this->index + 1 ), $value );
1154
+ }
1155
+
1156
+ /**
1157
+ * Retrieve text parameter from field's text array (if it has one), or use fallback text
1158
+ * For back-compatibility, falls back to checking the options array.
1159
+ *
1160
+ * @since 2.2.2
1161
+ * @param string $text_key Key in field's text array.
1162
+ * @param string $fallback Fallback text.
1163
+ * @return string Text
1164
+ */
1165
+ public function get_string( $text_key, $fallback ) {
1166
+ // If null, populate with our field strings values.
1167
+ if ( null === $this->strings ) {
1168
+ $this->strings = (array) $this->args['text'];
1169
+
1170
+ if ( is_callable( $this->args['text_cb'] ) ) {
1171
+ $strings = call_user_func( $this->args['text_cb'], $this );
1172
+
1173
+ if ( $strings && is_array( $strings ) ) {
1174
+ $this->strings += $strings;
1175
+ }
1176
+ }
1177
+ }
1178
+
1179
+ // If we have that string value, send it back.
1180
+ if ( isset( $this->strings[ $text_key ] ) ) {
1181
+ return $this->strings[ $text_key ];
1182
+ }
1183
+
1184
+ // Check options for back-compat.
1185
+ $string = $this->options( $text_key );
1186
+
1187
+ return $string ? $string : $fallback;
1188
+ }
1189
+
1190
+ /**
1191
+ * Retrieve options args.
1192
+ *
1193
+ * @since 2.0.0
1194
+ * @param string $key Specific option to retrieve.
1195
+ * @return array|mixed Array of options or specific option.
1196
+ */
1197
+ public function options( $key = '' ) {
1198
+ if ( empty( $this->field_options ) ) {
1199
+ $this->set_options();
1200
+ }
1201
+
1202
+ if ( $key ) {
1203
+ return array_key_exists( $key, $this->field_options ) ? $this->field_options[ $key ] : false;
1204
+ }
1205
+
1206
+ return $this->field_options;
1207
+ }
1208
+
1209
+ /**
1210
+ * Generates/sets options args. Calls options_cb if it exists.
1211
+ *
1212
+ * @since 2.2.5
1213
+ *
1214
+ * @return array Array of options
1215
+ */
1216
+ public function set_options() {
1217
+ $this->field_options = (array) $this->args['options'];
1218
+
1219
+ if ( is_callable( $this->args['options_cb'] ) ) {
1220
+ $options = call_user_func( $this->args['options_cb'], $this );
1221
+
1222
+ if ( $options && is_array( $options ) ) {
1223
+ $this->field_options = $options + $this->field_options;
1224
+ }
1225
+ }
1226
+
1227
+ return $this->field_options;
1228
+ }
1229
+
1230
+ /**
1231
+ * Store JS dependencies as part of the field args.
1232
+ *
1233
+ * @since 2.2.0
1234
+ * @param array $dependencies Dependies to register for this field.
1235
+ */
1236
+ public function add_js_dependencies( $dependencies = array() ) {
1237
+ foreach ( (array) $dependencies as $dependency ) {
1238
+ $this->args['js_dependencies'][ $dependency ] = $dependency;
1239
+ }
1240
+
1241
+ CMB2_JS::add_dependencies( $dependencies );
1242
+ }
1243
+
1244
+ /**
1245
+ * Send field data to JS.
1246
+ *
1247
+ * @since 2.2.0
1248
+ */
1249
+ public function register_js_data() {
1250
+ if ( $this->group ) {
1251
+ CMB2_JS::add_field_data( $this->group );
1252
+ }
1253
+
1254
+ return CMB2_JS::add_field_data( $this );
1255
+ }
1256
+
1257
+ /**
1258
+ * Get an array of some of the field data to be used in the Javascript.
1259
+ *
1260
+ * @since 2.2.4
1261
+ *
1262
+ * @return array
1263
+ */
1264
+ public function js_data() {
1265
+ return array(
1266
+ 'label' => $this->args( 'name' ),
1267
+ 'id' => $this->id( true ),
1268
+ 'type' => $this->type(),
1269
+ 'hash' => $this->hash_id(),
1270
+ 'box' => $this->cmb_id,
1271
+ 'id_attr' => $this->id(),
1272
+ 'name_attr' => $this->args( '_name' ),
1273
+ 'default' => $this->get_default(),
1274
+ 'group' => $this->group_id(),
1275
+ 'index' => $this->group ? $this->group->index : null,
1276
+ );
1277
+ }
1278
+
1279
+ /**
1280
+ * Returns a unique hash representing this field.
1281
+ *
1282
+ * @since 2.2.4
1283
+ *
1284
+ * @return string
1285
+ */
1286
+ public function hash_id() {
1287
+ if ( '' === $this->hash_id ) {
1288
+ $this->hash_id = CMB2_Utils::generate_hash( $this->cmb_id . '||' . $this->id() );
1289
+ }
1290
+
1291
+ return $this->hash_id;
1292
+ }
1293
+
1294
+ /**
1295
+ * Gets the id of the group field if this field is part of a group.
1296
+ *
1297
+ * @since 2.2.4
1298
+ *
1299
+ * @return string
1300
+ */
1301
+ public function group_id() {
1302
+ return $this->group ? $this->group->id( true ) : '';
1303
+ }
1304
+
1305
+ /**
1306
+ * Get CMB2_Field default value, either from default param or default_cb param.
1307
+ *
1308
+ * @since 0.2.2
1309
+ *
1310
+ * @return mixed Default field value
1311
+ */
1312
+ public function get_default() {
1313
+ $default = $this->args['default'];
1314
+
1315
+ if ( null !== $default ) {
1316
+ return apply_filters( 'cmb2_default_filter', $default, $this );
1317
+ }
1318
+
1319
+ $param = is_callable( $this->args['default_cb'] ) ? 'default_cb' : 'default';
1320
+ $default = $this->args['default'] = $this->get_param_callback_result( $param );
1321
+
1322
+ // Allow a filter override of the default value.
1323
+ return apply_filters( 'cmb2_default_filter', $this->args['default'], $this );
1324
+ }
1325
+
1326
+ /**
1327
+ * Fills in empty field parameters with defaults
1328
+ *
1329
+ * @since 1.1.0
1330
+ *
1331
+ * @param array $args Field config array.
1332
+ * @return array Modified field config array.
1333
+ */
1334
+ public function _set_field_defaults( $args ) {
1335
+ $defaults = $this->get_default_field_args( $args );
1336
+
1337
+ /**
1338
+ * Filter the CMB2 Field defaults.
1339
+ *
1340
+ * @since 2.6.0
1341
+ * @param array $defaults Metabox field config array defaults.
1342
+ * @param string $id Field id for the current field to allow for selective filtering.
1343
+ * @param string $type Field type for the current field to allow for selective filtering.
1344
+ * @param CMB2_Field object $field This field object.
1345
+ */
1346
+ $defaults = apply_filters( 'cmb2_field_defaults', $defaults, $args['id'], $args['type'], $this );
1347
+
1348
+ // Set up blank or default values for empty ones.
1349
+ $args = wp_parse_args( $args, $defaults );
1350
+
1351
+ /**
1352
+ * Filtering the CMB2 Field arguments once merged with the defaults, but before further processing.
1353
+ *
1354
+ * @since 2.6.0
1355
+ * @param array $args Metabox field config array defaults.
1356
+ * @param CMB2_Field object $field This field object.
1357
+ */
1358
+ $args = apply_filters( 'cmb2_field_arguments_raw', $args, $this );
1359
+
1360
+ /*
1361
+ * Deprecated usage:
1362
+ *
1363
+ * 'std' -- use 'default' (no longer works)
1364
+ * 'row_classes' -- use 'class', or 'class_cb'
1365
+ * 'default' -- as callback (use default_cb)
1366
+ */
1367
+ $args = $this->convert_deprecated_params( $args );
1368
+
1369
+ $args['repeatable'] = $args['repeatable'] && ! $this->repeatable_exception( $args['type'] );
1370
+ $args['inline'] = $args['inline'] || false !== stripos( $args['type'], '_inline' );
1371
+ $args['_id'] = $args['id'];
1372
+ $args['_name'] = $args['id'];
1373
+
1374
+ if ( $method = $this->has_args_method( $args['type'] ) ) {
1375
+ $args = $this->{$method}( $args );
1376
+ }
1377
+
1378
+ if ( $this->group ) {
1379
+ $args = $this->set_group_sub_field_defaults( $args );
1380
+ }
1381
+
1382
+ $args['has_supporting_data'] = in_array(
1383
+ $args['type'],
1384
+ array(
1385
+ // CMB2_Sanitize::_save_file_id_value()/CMB2_Sanitize::_get_group_file_value_array().
1386
+ 'file',
1387
+ // See CMB2_Sanitize::_save_utc_value().
1388
+ 'text_datetime_timestamp_timezone',
1389
+ ),
1390
+ true
1391
+ );
1392
+
1393
+ // Repeatable fields require jQuery sortable library.
1394
+ if ( ! empty( $args['repeatable'] ) ) {
1395
+ CMB2_JS::add_dependencies( 'jquery-ui-sortable' );
1396
+ }
1397
+
1398
+ /**
1399
+ * Filter the CMB2 Field arguments after processing.
1400
+ *
1401
+ * @since 2.6.0
1402
+ * @param array $args Metabox field config array after processing.
1403
+ * @param CMB2_Field object $field This field object.
1404
+ */
1405
+ return apply_filters( 'cmb2_field_arguments', $args, $this );
1406
+ }
1407
+
1408
+ /**
1409
+ * Sets default arguments for the group field types.
1410
+ *
1411
+ * @since 2.2.6
1412
+ *
1413
+ * @param array $args Field config array.
1414
+ * @return array Modified field config array.
1415
+ */
1416
+ protected function set_field_defaults_group( $args ) {
1417
+ $args['options'] = wp_parse_args( $args['options'], array(
1418
+ 'add_button' => esc_html__( 'Add Group', 'cmb2' ),
1419
+ 'remove_button' => esc_html__( 'Remove Group', 'cmb2' ),
1420
+ 'remove_confirm' => '',
1421
+ ) );
1422
+
1423
+ return $args;
1424
+ }
1425
+
1426
+ /**
1427
+ * Sets default arguments for the wysiwyg field types.
1428
+ *
1429
+ * @since 2.2.6
1430
+ *
1431
+ * @param array $args Field config array.
1432
+ * @return array Modified field config array.
1433
+ */
1434
+ protected function set_field_defaults_wysiwyg( $args ) {
1435
+ $args['id'] = strtolower( str_ireplace( '-', '_', $args['id'] ) );
1436
+ $args['options']['textarea_name'] = $args['_name'];
1437
+
1438
+ return $args;
1439
+ }
1440
+
1441
+ /**
1442
+ * Sets default arguments for the all-or-nothing field types.
1443
+ *
1444
+ * @since 2.2.6
1445
+ *
1446
+ * @param array $args Field config array.
1447
+ * @return array Modified field config array.
1448
+ */
1449
+ protected function set_field_defaults_all_or_nothing_types( $args ) {
1450
+ $args['show_option_none'] = isset( $args['show_option_none'] ) ? $args['show_option_none'] : null;
1451
+ $args['show_option_none'] = true === $args['show_option_none'] ? esc_html__( 'None', 'cmb2' ) : $args['show_option_none'];
1452
+
1453
+ if ( null === $args['show_option_none'] ) {
1454
+ $off_by_default = in_array( $args['type'], array( 'select', 'radio', 'radio_inline' ), true );
1455
+ $args['show_option_none'] = $off_by_default ? false : esc_html__( 'None', 'cmb2' );
1456
+ }
1457
+
1458
+ return $args;
1459
+ }
1460
+
1461
+ /**
1462
+ * Sets default arguments for group sub-fields.
1463
+ *
1464
+ * @since 2.2.6
1465
+ *
1466
+ * @param array $args Field config array.
1467
+ * @return array Modified field config array.
1468
+ */
1469
+ protected function set_group_sub_field_defaults( $args ) {
1470
+ $args['id'] = $this->group->args( 'id' ) . '_' . $this->group->index . '_' . $args['id'];
1471
+ $args['_name'] = $this->group->args( 'id' ) . '[' . $this->group->index . '][' . $args['_name'] . ']';
1472
+
1473
+ return $args;
1474
+ }
1475
+
1476
+ /**
1477
+ * Gets the default arguments for all fields.
1478
+ *
1479
+ * @since 2.2.6
1480
+ *
1481
+ * @param array $args Field config array.
1482
+ * @return array Field defaults.
1483
+ */
1484
+ protected function get_default_field_args( $args ) {
1485
+ $type = isset( $args['type'] ) ? $args['type'] : '';
1486
+
1487
+ return array(
1488
+ 'type' => $type,
1489
+ 'name' => '',
1490
+ 'desc' => '',
1491
+ 'before' => '',
1492
+ 'after' => '',
1493
+ 'options' => array(),
1494
+ 'options_cb' => '',
1495
+ 'text' => array(),
1496
+ 'text_cb' => '',
1497
+ 'attributes' => array(),
1498
+ 'protocols' => null,
1499
+ 'default' => null,
1500
+ 'default_cb' => '',
1501
+ 'classes' => null,
1502
+ 'classes_cb' => '',
1503
+ 'select_all_button' => true,
1504
+ 'multiple' => false,
1505
+ 'repeatable' => 'group' === $type,
1506
+ 'inline' => false,
1507
+ 'on_front' => true,
1508
+ 'show_names' => true,
1509
+ 'save_field' => true, // Will not save if false.
1510
+ 'date_format' => 'm\/d\/Y',
1511
+ 'time_format' => 'h:i A',
1512
+ 'description' => isset( $args['desc'] ) ? $args['desc'] : '',
1513
+ 'preview_size' => 'file' === $type ? array( 350, 350 ) : array( 50, 50 ),
1514
+ 'render_row_cb' => array( $this, 'render_field_callback' ),
1515
+ 'display_cb' => array( $this, 'display_value_callback' ),
1516
+ 'label_cb' => 'title' !== $type ? array( $this, 'label' ) : '',
1517
+ 'column' => false,
1518
+ 'js_dependencies' => array(),
1519
+ 'show_in_rest' => null,
1520
+ );
1521
+ }
1522
+
1523
+ /**
1524
+ * Get default field arguments specific to this CMB2 object.
1525
+ *
1526
+ * @since 2.2.0
1527
+ * @param array $field_args Metabox field config array.
1528
+ * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent).
1529
+ * @return array Array of field arguments.
1530
+ */
1531
+ protected function get_default_args( $field_args, $field_group = null ) {
1532
+ $args = parent::get_default_args( array(), $this->group );
1533
+
1534
+ if ( isset( $field_args['field_args'] ) ) {
1535
+ $args = wp_parse_args( $field_args, $args );
1536
+ } else {
1537
+ $args['field_args'] = wp_parse_args( $field_args, $this->args );
1538
+ }
1539
+
1540
+ return $args;
1541
+ }
1542
+
1543
+ /**
1544
+ * Returns a cloned version of this field object, but with
1545
+ * modified/overridden field arguments.
1546
+ *
1547
+ * @since 2.2.2
1548
+ * @param array $field_args Array of field arguments, or entire array of
1549
+ * arguments for CMB2_Field.
1550
+ *
1551
+ * @return CMB2_Field The new CMB2_Field instance.
1552
+ */
1553
+ public function get_field_clone( $field_args ) {
1554
+ return $this->get_new_field( $field_args );
1555
+ }
1556
+
1557
+ /**
1558
+ * Returns the CMB2 instance this field is registered to.
1559
+ *
1560
+ * @since 2.2.2
1561
+ *
1562
+ * @return CMB2|WP_Error If new CMB2_Field is called without cmb_id arg, returns error.
1563
+ */
1564
+ public function get_cmb() {
1565
+ if ( ! $this->cmb_id ) {
1566
+ return new WP_Error( 'no_cmb_id', esc_html__( 'Sorry, this field does not have a cmb_id specified.', 'cmb2' ) );
1567
+ }
1568
+
1569
+ return cmb2_get_metabox( $this->cmb_id, $this->object_id, $this->object_type );
1570
+ }
1571
+
1572
+ /**
1573
+ * Converts deprecated field parameters to the current/proper parameter, and throws a deprecation notice.
1574
+ *
1575
+ * @since 2.2.3
1576
+ * @param array $args Metabox field config array.
1577
+ * @return array Modified field config array.
1578
+ */
1579
+ protected function convert_deprecated_params( $args ) {
1580
+
1581
+ if ( isset( $args['row_classes'] ) ) {
1582
+
1583
+ // We'll let this one be.
1584
+ // $this->deprecated_param( __CLASS__ . '::__construct()', '2.2.3', self::DEPRECATED_PARAM, 'row_classes', 'classes' );
1585
+ // row_classes param could be a callback. This is definitely deprecated.
1586
+ if ( is_callable( $args['row_classes'] ) ) {
1587
+
1588
+ $this->deprecated_param( __CLASS__ . '::__construct()', '2.2.3', self::DEPRECATED_CB_PARAM, 'row_classes', 'classes_cb' );
1589
+
1590
+ $args['classes_cb'] = $args['row_classes'];
1591
+ $args['classes'] = null;
1592
+ } else {
1593
+
1594
+ $args['classes'] = $args['row_classes'];
1595
+ }
1596
+
1597
+ unset( $args['row_classes'] );
1598
+ }
1599
+
1600
+ // default param can be passed a callback as well.
1601
+ if ( is_callable( $args['default'] ) ) {
1602
+
1603
+ $this->deprecated_param( __CLASS__ . '::__construct()', '2.2.3', self::DEPRECATED_CB_PARAM, 'default', 'default_cb' );
1604
+
1605
+ $args['default_cb'] = $args['default'];
1606
+ $args['default'] = null;
1607
+ }
1608
+
1609
+ // options param can be passed a callback as well.
1610
+ if ( is_callable( $args['options'] ) ) {
1611
+
1612
+ $this->deprecated_param( __CLASS__ . '::__construct()', '2.2.3', self::DEPRECATED_CB_PARAM, 'options', 'options_cb' );
1613
+
1614
+ $args['options_cb'] = $args['options'];
1615
+ $args['options'] = array();
1616
+ }
1617
+
1618
+ return $args;
1619
+ }
1620
+
1621
+ }
includes/plus-options/metabox/includes/CMB2_Field_Display.php ADDED
@@ -0,0 +1,484 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 field display base.
4
+ *
5
+ * @since 2.2.2
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Field_Display {
14
+
15
+ /**
16
+ * A CMB field object
17
+ *
18
+ * @var CMB2_Field object
19
+ * @since 2.2.2
20
+ */
21
+ public $field;
22
+
23
+ /**
24
+ * The CMB field object's value.
25
+ *
26
+ * @var mixed
27
+ * @since 2.2.2
28
+ */
29
+ public $value;
30
+
31
+ /**
32
+ * Get the corresponding display class for the field type.
33
+ *
34
+ * @since 2.2.2
35
+ * @param CMB2_Field $field Requested field type.
36
+ * @return CMB2_Field_Display
37
+ */
38
+ public static function get( CMB2_Field $field ) {
39
+ switch ( $field->type() ) {
40
+ case 'text_url':
41
+ $type = new CMB2_Display_Text_Url( $field );
42
+ break;
43
+ case 'text_money':
44
+ $type = new CMB2_Display_Text_Money( $field );
45
+ break;
46
+ case 'colorpicker':
47
+ $type = new CMB2_Display_Colorpicker( $field );
48
+ break;
49
+ case 'checkbox':
50
+ $type = new CMB2_Display_Checkbox( $field );
51
+ break;
52
+ case 'wysiwyg':
53
+ case 'textarea_small':
54
+ $type = new CMB2_Display_Textarea( $field );
55
+ break;
56
+ case 'textarea_code':
57
+ $type = new CMB2_Display_Textarea_Code( $field );
58
+ break;
59
+ case 'text_time':
60
+ $type = new CMB2_Display_Text_Time( $field );
61
+ break;
62
+ case 'text_date':
63
+ case 'text_date_timestamp':
64
+ case 'text_datetime_timestamp':
65
+ $type = new CMB2_Display_Text_Date( $field );
66
+ break;
67
+ case 'text_datetime_timestamp_timezone':
68
+ $type = new CMB2_Display_Text_Date_Timezone( $field );
69
+ break;
70
+ case 'select':
71
+ case 'radio':
72
+ case 'radio_inline':
73
+ $type = new CMB2_Display_Select( $field );
74
+ break;
75
+ case 'multicheck':
76
+ case 'multicheck_inline':
77
+ $type = new CMB2_Display_Multicheck( $field );
78
+ break;
79
+ case 'taxonomy_radio':
80
+ case 'taxonomy_radio_inline':
81
+ case 'taxonomy_select':
82
+ case 'taxonomy_radio_hierarchical':
83
+ $type = new CMB2_Display_Taxonomy_Radio( $field );
84
+ break;
85
+ case 'taxonomy_multicheck':
86
+ case 'taxonomy_multicheck_inline':
87
+ case 'taxonomy_multicheck_hierarchical':
88
+ $type = new CMB2_Display_Taxonomy_Multicheck( $field );
89
+ break;
90
+ case 'file':
91
+ $type = new CMB2_Display_File( $field );
92
+ break;
93
+ case 'file_list':
94
+ $type = new CMB2_Display_File_List( $field );
95
+ break;
96
+ case 'oembed':
97
+ $type = new CMB2_Display_oEmbed( $field );
98
+ break;
99
+ default:
100
+ $type = new self( $field );
101
+ break;
102
+ }// End switch.
103
+
104
+ return $type;
105
+ }
106
+
107
+ /**
108
+ * Setup our class vars
109
+ *
110
+ * @since 2.2.2
111
+ * @param CMB2_Field $field A CMB2 field object.
112
+ */
113
+ public function __construct( CMB2_Field $field ) {
114
+ $this->field = $field;
115
+ $this->value = $this->field->value;
116
+ }
117
+
118
+ /**
119
+ * Catchall method if field's 'display_cb' is NOT defined, or field type does
120
+ * not have a corresponding display method
121
+ *
122
+ * @since 2.2.2
123
+ */
124
+ public function display() {
125
+ // If repeatable.
126
+ if ( $this->field->args( 'repeatable' ) ) {
127
+
128
+ // And has a repeatable value.
129
+ if ( is_array( $this->field->value ) ) {
130
+
131
+ // Then loop and output.
132
+ echo '<ul class="cmb2-' . str_replace( '_', '-', $this->field->type() ) . '">';
133
+ foreach ( $this->field->value as $val ) {
134
+ $this->value = $val;
135
+ echo '<li>', $this->_display(), '</li>';
136
+ ;
137
+ }
138
+ echo '</ul>';
139
+ }
140
+ } else {
141
+ $this->_display();
142
+ }
143
+ }
144
+
145
+ /**
146
+ * Default fallback display method.
147
+ *
148
+ * @since 2.2.2
149
+ */
150
+ protected function _display() {
151
+ print_r( $this->value );
152
+ }
153
+ }
154
+
155
+ class CMB2_Display_Text_Url extends CMB2_Field_Display {
156
+ /**
157
+ * Display url value.
158
+ *
159
+ * @since 2.2.2
160
+ */
161
+ protected function _display() {
162
+ echo make_clickable( esc_url( $this->value ) );
163
+ }
164
+ }
165
+
166
+ class CMB2_Display_Text_Money extends CMB2_Field_Display {
167
+ /**
168
+ * Display text_money value.
169
+ *
170
+ * @since 2.2.2
171
+ */
172
+ protected function _display() {
173
+ $this->value = $this->value ? $this->value : '0';
174
+ echo ( ! $this->field->get_param_callback_result( 'before_field' ) ? '$' : ' ' ), $this->value;
175
+ }
176
+ }
177
+
178
+ class CMB2_Display_Colorpicker extends CMB2_Field_Display {
179
+ /**
180
+ * Display color picker value.
181
+ *
182
+ * @since 2.2.2
183
+ */
184
+ protected function _display() {
185
+ echo '<span class="cmb2-colorpicker-swatch"><span style="background-color:', esc_attr( $this->value ), '"></span> ', esc_html( $this->value ), '</span>';
186
+ }
187
+ }
188
+
189
+ class CMB2_Display_Checkbox extends CMB2_Field_Display {
190
+ /**
191
+ * Display multicheck value.
192
+ *
193
+ * @since 2.2.2
194
+ */
195
+ protected function _display() {
196
+ echo $this->value === 'on' ? 'on' : 'off';
197
+ }
198
+ }
199
+
200
+ class CMB2_Display_Select extends CMB2_Field_Display {
201
+ /**
202
+ * Display select value.
203
+ *
204
+ * @since 2.2.2
205
+ */
206
+ protected function _display() {
207
+ $options = $this->field->options();
208
+
209
+ $fallback = $this->field->args( 'show_option_none' );
210
+ if ( ! $fallback && isset( $options[''] ) ) {
211
+ $fallback = $options[''];
212
+ }
213
+ if ( ! $this->value && $fallback ) {
214
+ echo $fallback;
215
+ } elseif ( isset( $options[ $this->value ] ) ) {
216
+ echo $options[ $this->value ];
217
+ } else {
218
+ echo esc_attr( $this->value );
219
+ }
220
+ }
221
+ }
222
+
223
+ class CMB2_Display_Multicheck extends CMB2_Field_Display {
224
+ /**
225
+ * Display multicheck value.
226
+ *
227
+ * @since 2.2.2
228
+ */
229
+ protected function _display() {
230
+ if ( empty( $this->value ) || ! is_array( $this->value ) ) {
231
+ return;
232
+ }
233
+
234
+ $options = $this->field->options();
235
+
236
+ $output = array();
237
+ foreach ( $this->value as $val ) {
238
+ if ( isset( $options[ $val ] ) ) {
239
+ $output[] = $options[ $val ];
240
+ } else {
241
+ $output[] = esc_attr( $val );
242
+ }
243
+ }
244
+
245
+ echo implode( ', ', $output );
246
+ }
247
+ }
248
+
249
+ class CMB2_Display_Textarea extends CMB2_Field_Display {
250
+ /**
251
+ * Display textarea value.
252
+ *
253
+ * @since 2.2.2
254
+ */
255
+ protected function _display() {
256
+ echo wpautop( wp_kses_post( $this->value ) );
257
+ }
258
+ }
259
+
260
+ class CMB2_Display_Textarea_Code extends CMB2_Field_Display {
261
+ /**
262
+ * Display textarea_code value.
263
+ *
264
+ * @since 2.2.2
265
+ */
266
+ protected function _display() {
267
+ echo '<xmp class="cmb2-code">' . print_r( $this->value, true ) . '</xmp>';
268
+ }
269
+ }
270
+
271
+ class CMB2_Display_Text_Time extends CMB2_Field_Display {
272
+ /**
273
+ * Display text_time value.
274
+ *
275
+ * @since 2.2.2
276
+ */
277
+ protected function _display() {
278
+ echo $this->field->get_timestamp_format( 'time_format', $this->value );
279
+ }
280
+ }
281
+
282
+ class CMB2_Display_Text_Date extends CMB2_Field_Display {
283
+ /**
284
+ * Display text_date value.
285
+ *
286
+ * @since 2.2.2
287
+ */
288
+ protected function _display() {
289
+ echo $this->field->get_timestamp_format( 'date_format', $this->value );
290
+ }
291
+ }
292
+
293
+ class CMB2_Display_Text_Date_Timezone extends CMB2_Field_Display {
294
+ /**
295
+ * Display text_datetime_timestamp_timezone value.
296
+ *
297
+ * @since 2.2.2
298
+ */
299
+ protected function _display() {
300
+ $field = $this->field;
301
+
302
+ if ( empty( $this->value ) ) {
303
+ return;
304
+ }
305
+
306
+ $datetime = maybe_unserialize( $this->value );
307
+ $this->value = $tzstring = '';
308
+
309
+ if ( $datetime && $datetime instanceof DateTime ) {
310
+ $tz = $datetime->getTimezone();
311
+ $tzstring = $tz->getName();
312
+ $this->value = $datetime->getTimestamp();
313
+ }
314
+
315
+ $date = $this->field->get_timestamp_format( 'date_format', $this->value );
316
+ $time = $this->field->get_timestamp_format( 'time_format', $this->value );
317
+
318
+ echo $date, ( $time ? ' ' . $time : '' ), ( $tzstring ? ', ' . $tzstring : '' );
319
+ }
320
+ }
321
+
322
+ class CMB2_Display_Taxonomy_Radio extends CMB2_Field_Display {
323
+ /**
324
+ * Display single taxonomy value.
325
+ *
326
+ * @since 2.2.2
327
+ */
328
+ protected function _display() {
329
+ $taxonomy = $this->field->args( 'taxonomy' );
330
+ $types = new CMB2_Types( $this->field );
331
+ $type = $types->get_new_render_type( $this->field->type(), 'CMB2_Type_Taxonomy_Radio' );
332
+ $terms = $type->get_object_terms();
333
+ $term = false;
334
+
335
+ if ( is_wp_error( $terms ) || empty( $terms ) && ( $default = $this->field->get_default() ) ) {
336
+ $term = get_term_by( 'slug', $default, $taxonomy );
337
+ } elseif ( ! empty( $terms ) ) {
338
+ $term = $terms[ key( $terms ) ];
339
+ }
340
+
341
+ if ( $term ) {
342
+ $link = get_edit_term_link( $term->term_id, $taxonomy );
343
+ echo '<a href="', esc_url( $link ), '">', esc_html( $term->name ), '</a>';
344
+ }
345
+ }
346
+ }
347
+
348
+ class CMB2_Display_Taxonomy_Multicheck extends CMB2_Field_Display {
349
+ /**
350
+ * Display taxonomy values.
351
+ *
352
+ * @since 2.2.2
353
+ */
354
+ protected function _display() {
355
+ $taxonomy = $this->field->args( 'taxonomy' );
356
+ $types = new CMB2_Types( $this->field );
357
+ $type = $types->get_new_render_type( $this->field->type(), 'CMB2_Type_Taxonomy_Multicheck' );
358
+ $terms = $type->get_object_terms();
359
+
360
+ if ( is_wp_error( $terms ) || empty( $terms ) && ( $default = $this->field->get_default() ) ) {
361
+ $terms = array();
362
+ if ( is_array( $default ) ) {
363
+ foreach ( $default as $slug ) {
364
+ $terms[] = get_term_by( 'slug', $slug, $taxonomy );
365
+ }
366
+ } else {
367
+ $terms[] = get_term_by( 'slug', $default, $taxonomy );
368
+ }
369
+ }
370
+
371
+ if ( is_array( $terms ) ) {
372
+
373
+ $links = array();
374
+ foreach ( $terms as $term ) {
375
+ $link = get_edit_term_link( $term->term_id, $taxonomy );
376
+ $links[] = '<a href="' . esc_url( $link ) . '">' . esc_html( $term->name ) . '</a>';
377
+ }
378
+ // Then loop and output.
379
+ echo '<div class="cmb2-taxonomy-terms-', esc_attr( $taxonomy ), '">';
380
+ echo implode( ', ', $links );
381
+ echo '</div>';
382
+ }
383
+ }
384
+ }
385
+
386
+ class CMB2_Display_File extends CMB2_Field_Display {
387
+ /**
388
+ * Display file value.
389
+ *
390
+ * @since 2.2.2
391
+ */
392
+ protected function _display() {
393
+ if ( empty( $this->value ) ) {
394
+ return;
395
+ }
396
+
397
+ $this->value = esc_url_raw( $this->value );
398
+
399
+ $types = new CMB2_Types( $this->field );
400
+ $type = $types->get_new_render_type( $this->field->type(), 'CMB2_Type_File_Base' );
401
+
402
+ $id = $this->field->get_field_clone( array(
403
+ 'id' => $this->field->_id() . '_id',
404
+ ) )->escaped_value( 'absint' );
405
+
406
+ $this->file_output( $this->value, $id, $type );
407
+ }
408
+
409
+ protected function file_output( $url_value, $id, CMB2_Type_File_Base $field_type ) {
410
+ // If there is no ID saved yet, try to get it from the url.
411
+ if ( $url_value && ! $id ) {
412
+ $id = CMB2_Utils::image_id_from_url( esc_url_raw( $url_value ) );
413
+ }
414
+
415
+ if ( $field_type->is_valid_img_ext( $url_value ) ) {
416
+ $img_size = $this->field->args( 'preview_size' );
417
+
418
+ if ( $id ) {
419
+ $image = wp_get_attachment_image( $id, $img_size, null, array(
420
+ 'class' => 'cmb-image-display',
421
+ ) );
422
+ } else {
423
+ $size = is_array( $img_size ) ? $img_size[0] : 200;
424
+ $image = '<img class="cmb-image-display" style="max-width: ' . absint( $size ) . 'px; width: 100%; height: auto;" src="' . $url_value . '" alt="" />';
425
+ }
426
+
427
+ echo $image;
428
+
429
+ } else {
430
+
431
+ printf( '<div class="file-status"><span>%1$s <strong><a href="%2$s">%3$s</a></strong></span></div>',
432
+ esc_html( $field_type->_text( 'file_text', esc_html__( 'File:', 'cmb2' ) ) ),
433
+ $url_value,
434
+ CMB2_Utils::get_file_name_from_path( $url_value )
435
+ );
436
+
437
+ }
438
+ }
439
+ }
440
+
441
+ class CMB2_Display_File_List extends CMB2_Display_File {
442
+ /**
443
+ * Display file_list value.
444
+ *
445
+ * @since 2.2.2
446
+ */
447
+ protected function _display() {
448
+ if ( empty( $this->value ) || ! is_array( $this->value ) ) {
449
+ return;
450
+ }
451
+
452
+ $types = new CMB2_Types( $this->field );
453
+ $type = $types->get_new_render_type( $this->field->type(), 'CMB2_Type_File_Base' );
454
+
455
+ echo '<ul class="cmb2-display-file-list">';
456
+ foreach ( $this->value as $id => $fullurl ) {
457
+ echo '<li>', $this->file_output( esc_url_raw( $fullurl ), $id, $type ), '</li>';
458
+ }
459
+ echo '</ul>';
460
+ }
461
+ }
462
+
463
+ class CMB2_Display_oEmbed extends CMB2_Field_Display {
464
+ /**
465
+ * Display oembed value.
466
+ *
467
+ * @since 2.2.2
468
+ */
469
+ protected function _display() {
470
+ if ( ! $this->value ) {
471
+ return;
472
+ }
473
+
474
+ cmb2_do_oembed( array(
475
+ 'url' => $this->value,
476
+ 'object_id' => $this->field->object_id,
477
+ 'object_type' => $this->field->object_type,
478
+ 'oembed_args' => array(
479
+ 'width' => '300',
480
+ ),
481
+ 'field_id' => $this->field->id(),
482
+ ) );
483
+ }
484
+ }
includes/plus-options/metabox/includes/CMB2_Hookup_Base.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Base class for hooking CMB2 into WordPress.
4
+ *
5
+ * @since 2.2.0
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ *
13
+ * @property-read string $object_type
14
+ * @property-read CMB2 $cmb
15
+ */
16
+ abstract class CMB2_Hookup_Base {
17
+
18
+ /**
19
+ * CMB2 object.
20
+ *
21
+ * @var CMB2 object
22
+ * @since 2.0.2
23
+ */
24
+ protected $cmb;
25
+
26
+ /**
27
+ * The object type we are performing the hookup for
28
+ *
29
+ * @var string
30
+ * @since 2.0.9
31
+ */
32
+ protected $object_type = 'post';
33
+
34
+ /**
35
+ * A functionalized constructor, used for the hookup action callbacks.
36
+ *
37
+ * @since 2.2.6
38
+ *
39
+ * @throws Exception Failed implementation.
40
+ *
41
+ * @param CMB2 $cmb The CMB2 object to hookup.
42
+ */
43
+ public static function maybe_init_and_hookup( CMB2 $cmb ) {
44
+ throw new Exception( sprintf( esc_html__( '%1$s should be implemented by the extended class.', 'cmb2' ), __FUNCTION__ ) );
45
+ }
46
+
47
+ /**
48
+ * Constructor
49
+ *
50
+ * @since 2.0.0
51
+ * @param CMB2 $cmb The CMB2 object to hookup.
52
+ */
53
+ public function __construct( CMB2 $cmb ) {
54
+ $this->cmb = $cmb;
55
+ $this->object_type = $this->cmb->mb_object_type();
56
+ }
57
+
58
+ abstract public function universal_hooks();
59
+
60
+ /**
61
+ * Ensures WordPress hook only gets fired once per object.
62
+ *
63
+ * @since 2.0.0
64
+ * @param string $action The name of the filter to hook the $hook callback to.
65
+ * @param callback $hook The callback to be run when the filter is applied.
66
+ * @param integer $priority Order the functions are executed.
67
+ * @param int $accepted_args The number of arguments the function accepts.
68
+ */
69
+ public function once( $action, $hook, $priority = 10, $accepted_args = 1 ) {
70
+ static $hooks_completed = array();
71
+
72
+ $args = func_get_args();
73
+
74
+ // Get object hash.. This bypasses issues with serializing closures.
75
+ if ( is_object( $hook ) ) {
76
+ $args[1] = spl_object_hash( $args[1] );
77
+ } elseif ( is_array( $hook ) && is_object( $hook[0] ) ) {
78
+ $args[1][0] = spl_object_hash( $hook[0] );
79
+ }
80
+
81
+ $key = md5( serialize( $args ) );
82
+
83
+ if ( ! isset( $hooks_completed[ $key ] ) ) {
84
+ $hooks_completed[ $key ] = 1;
85
+ add_filter( $action, $hook, $priority, $accepted_args );
86
+ }
87
+ }
88
+
89
+ /**
90
+ * Magic getter for our object.
91
+ *
92
+ * @param string $field Property to return.
93
+ * @throws Exception Throws an exception if the field is invalid.
94
+ * @return mixed
95
+ */
96
+ public function __get( $field ) {
97
+ switch ( $field ) {
98
+ case 'object_type':
99
+ case 'cmb':
100
+ return $this->{$field};
101
+ default:
102
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
103
+ }
104
+ }
105
+ }
includes/plus-options/metabox/includes/CMB2_JS.php ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles the dependencies and enqueueing of the CMB2 JS scripts
4
+ *
5
+ * @category WordPress_Plugin
6
+ * @package CMB2
7
+ * @author CMB2 team
8
+ * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
+ */
11
+ class CMB2_JS {
12
+
13
+ /**
14
+ * The CMB2 JS handle
15
+ *
16
+ * @var string
17
+ * @since 2.0.7
18
+ */
19
+ protected static $handle = 'cmb2-scripts';
20
+
21
+ /**
22
+ * The CMB2 JS variable name
23
+ *
24
+ * @var string
25
+ * @since 2.0.7
26
+ */
27
+ protected static $js_variable = 'cmb2_l10';
28
+
29
+ /**
30
+ * Array of CMB2 JS dependencies
31
+ *
32
+ * @var array
33
+ * @since 2.0.7
34
+ */
35
+ protected static $dependencies = array(
36
+ 'jquery' => 'jquery',
37
+ );
38
+
39
+ /**
40
+ * Array of CMB2 fields model data for JS.
41
+ *
42
+ * @var array
43
+ * @since 2.4.0
44
+ */
45
+ protected static $fields = array();
46
+
47
+ /**
48
+ * Add a dependency to the array of CMB2 JS dependencies
49
+ *
50
+ * @since 2.0.7
51
+ * @param array|string $dependencies Array (or string) of dependencies to add.
52
+ */
53
+ public static function add_dependencies( $dependencies ) {
54
+ foreach ( (array) $dependencies as $dependency ) {
55
+ self::$dependencies[ $dependency ] = $dependency;
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Add field model data to the array for JS.
61
+ *
62
+ * @since 2.4.0
63
+ *
64
+ * @param CMB2_Field $field Field object.
65
+ */
66
+ public static function add_field_data( CMB2_Field $field ) {
67
+ $hash = $field->hash_id();
68
+ if ( ! isset( self::$fields[ $hash ] ) ) {
69
+ self::$fields[ $hash ] = $field->js_data();
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Enqueue the CMB2 JS
75
+ *
76
+ * @since 2.0.7
77
+ */
78
+ public static function enqueue() {
79
+ // Filter required script dependencies.
80
+ $dependencies = self::$dependencies = apply_filters( 'cmb2_script_dependencies', self::$dependencies );
81
+
82
+ // Only use minified files if SCRIPT_DEBUG is off.
83
+ $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
84
+
85
+ $min = $debug ? '' : '.min';
86
+
87
+ // if colorpicker.
88
+ if ( isset( $dependencies['wp-color-picker'] ) ) {
89
+ if ( ! is_admin() ) {
90
+ self::colorpicker_frontend();
91
+ }
92
+
93
+ if ( isset( $dependencies['wp-color-picker-alpha'] ) ) {
94
+ self::register_colorpicker_alpha();
95
+ }
96
+ }
97
+
98
+ // if file/file_list.
99
+ if ( isset( $dependencies['media-editor'] ) ) {
100
+ wp_enqueue_media();
101
+ CMB2_Type_File_Base::output_js_underscore_templates();
102
+ }
103
+
104
+ // if timepicker.
105
+ if ( isset( $dependencies['jquery-ui-datetimepicker'] ) ) {
106
+ self::register_datetimepicker();
107
+ }
108
+
109
+ // if cmb2-wysiwyg.
110
+ $enqueue_wysiwyg = isset( $dependencies['cmb2-wysiwyg'] ) && $debug;
111
+ unset( $dependencies['cmb2-wysiwyg'] );
112
+
113
+ // Enqueue cmb JS.
114
+ wp_enqueue_script( self::$handle, CMB2_Utils::url( "js/cmb2{$min}.js" ), $dependencies, CMB2_VERSION, true );
115
+
116
+ // if SCRIPT_DEBUG, we need to enqueue separately.
117
+ if ( $enqueue_wysiwyg ) {
118
+ wp_enqueue_script( 'cmb2-wysiwyg', CMB2_Utils::url( 'js/cmb2-wysiwyg.js' ), array( 'jquery', 'wp-util' ), CMB2_VERSION );
119
+ }
120
+
121
+ self::localize( $debug );
122
+
123
+ do_action( 'cmb2_footer_enqueue' );
124
+ }
125
+
126
+ /**
127
+ * Register or enqueue the wp-color-picker-alpha script.
128
+ *
129
+ * @since 2.2.7
130
+ *
131
+ * @param boolean $enqueue Whether or not to enqueue.
132
+ *
133
+ * @return void
134
+ */
135
+ public static function register_colorpicker_alpha( $enqueue = false ) {
136
+ // Only use minified files if SCRIPT_DEBUG is off.
137
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
138
+ $func = $enqueue ? 'wp_enqueue_script' : 'wp_register_script';
139
+ $func( 'wp-color-picker-alpha', CMB2_Utils::url( "js/wp-color-picker-alpha{$min}.js" ), array( 'wp-color-picker' ), '2.1.3' );
140
+ }
141
+
142
+ /**
143
+ * Register or enqueue the jquery-ui-datetimepicker script.
144
+ *
145
+ * @since 2.2.7
146
+ *
147
+ * @param boolean $enqueue Whether or not to enqueue.
148
+ *
149
+ * @return void
150
+ */
151
+ public static function register_datetimepicker( $enqueue = false ) {
152
+ $func = $enqueue ? 'wp_enqueue_script' : 'wp_register_script';
153
+ $func( 'jquery-ui-datetimepicker', CMB2_Utils::url( 'js/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-slider' ), '1.5.0' );
154
+ }
155
+
156
+ /**
157
+ * We need to register colorpicker on the front-end
158
+ *
159
+ * @since 2.0.7
160
+ */
161
+ protected static function colorpicker_frontend() {
162
+ wp_register_script( 'iris', admin_url( 'js/iris.min.js' ), array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), CMB2_VERSION );
163
+ wp_register_script( 'wp-color-picker', admin_url( 'js/color-picker.min.js' ), array( 'iris' ), CMB2_VERSION );
164
+ wp_localize_script( 'wp-color-picker', 'wpColorPickerL10n', array(
165
+ 'clear' => esc_html__( 'Clear', 'cmb2' ),
166
+ 'defaultString' => esc_html__( 'Default', 'cmb2' ),
167
+ 'pick' => esc_html__( 'Select Color', 'cmb2' ),
168
+ 'current' => esc_html__( 'Current Color', 'cmb2' ),
169
+ ) );
170
+ }
171
+
172
+ /**
173
+ * Localize the php variables for CMB2 JS
174
+ *
175
+ * @since 2.0.7
176
+ *
177
+ * @param mixed $debug Whether or not we are debugging.
178
+ */
179
+ protected static function localize( $debug ) {
180
+ static $localized = false;
181
+ if ( $localized ) {
182
+ return;
183
+ }
184
+
185
+ $localized = true;
186
+ $l10n = array(
187
+ 'fields' => self::$fields,
188
+ 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ),
189
+ 'ajaxurl' => admin_url( '/admin-ajax.php' ),
190
+ 'script_debug' => $debug,
191
+ 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2',
192
+ 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2',
193
+ 'user_can_richedit' => user_can_richedit(),
194
+ 'defaults' => array(
195
+ 'code_editor' => false,
196
+ 'color_picker' => false,
197
+ 'date_picker' => array(
198
+ 'changeMonth' => true,
199
+ 'changeYear' => true,
200
+ 'dateFormat' => _x( 'mm/dd/yy', 'Valid formatDate string for jquery-ui datepicker', 'cmb2' ),
201
+ 'dayNames' => explode( ',', esc_html__( 'Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday', 'cmb2' ) ),
202
+ 'dayNamesMin' => explode( ',', esc_html__( 'Su, Mo, Tu, We, Th, Fr, Sa', 'cmb2' ) ),
203
+ 'dayNamesShort' => explode( ',', esc_html__( 'Sun, Mon, Tue, Wed, Thu, Fri, Sat', 'cmb2' ) ),
204
+ 'monthNames' => explode( ',', esc_html__( 'January, February, March, April, May, June, July, August, September, October, November, December', 'cmb2' ) ),
205
+ 'monthNamesShort' => explode( ',', esc_html__( 'Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec', 'cmb2' ) ),
206
+ 'nextText' => esc_html__( 'Next', 'cmb2' ),
207
+ 'prevText' => esc_html__( 'Prev', 'cmb2' ),
208
+ 'currentText' => esc_html__( 'Today', 'cmb2' ),
209
+ 'closeText' => esc_html__( 'Done', 'cmb2' ),
210
+ 'clearText' => esc_html__( 'Clear', 'cmb2' ),
211
+ ),
212
+ 'time_picker' => array(
213
+ 'timeOnlyTitle' => esc_html__( 'Choose Time', 'cmb2' ),
214
+ 'timeText' => esc_html__( 'Time', 'cmb2' ),
215
+ 'hourText' => esc_html__( 'Hour', 'cmb2' ),
216
+ 'minuteText' => esc_html__( 'Minute', 'cmb2' ),
217
+ 'secondText' => esc_html__( 'Second', 'cmb2' ),
218
+ 'currentText' => esc_html__( 'Now', 'cmb2' ),
219
+ 'closeText' => esc_html__( 'Done', 'cmb2' ),
220
+ 'timeFormat' => _x( 'hh:mm TT', 'Valid formatting string, as per http://trentrichardson.com/examples/timepicker/', 'cmb2' ),
221
+ 'controlType' => 'select',
222
+ 'stepMinute' => 5,
223
+ ),
224
+ ),
225
+ 'strings' => array(
226
+ 'upload_file' => esc_html__( 'Use this file', 'cmb2' ),
227
+ 'upload_files' => esc_html__( 'Use these files', 'cmb2' ),
228
+ 'remove_image' => esc_html__( 'Remove Image', 'cmb2' ),
229
+ 'remove_file' => esc_html__( 'Remove', 'cmb2' ),
230
+ 'file' => esc_html__( 'File:', 'cmb2' ),
231
+ 'download' => esc_html__( 'Download', 'cmb2' ),
232
+ 'check_toggle' => esc_html__( 'Select / Deselect All', 'cmb2' ),
233
+ ),
234
+ );
235
+
236
+ if ( isset( self::$dependencies['code-editor'] ) && function_exists( 'wp_enqueue_code_editor' ) ) {
237
+ $l10n['defaults']['code_editor'] = wp_enqueue_code_editor( array(
238
+ 'type' => 'text/html',
239
+ ) );
240
+ }
241
+
242
+ wp_localize_script( self::$handle, self::$js_variable, apply_filters( 'cmb2_localized_data', $l10n ) );
243
+ }
244
+
245
+ }
includes/plus-options/metabox/includes/CMB2_Options.php ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 Utility classes for handling multi-dimensional array data for options
4
+ *
5
+ * @category WordPress_Plugin
6
+ * @package CMB2
7
+ * @author CMB2 team
8
+ * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
+ */
11
+
12
+ /**
13
+ * Retrieves an instance of CMB2_Option based on the option key
14
+ *
15
+ * @package CMB2
16
+ * @author CMB2 team
17
+ */
18
+ class CMB2_Options {
19
+ /**
20
+ * Array of all CMB2_Option instances
21
+ *
22
+ * @var array
23
+ * @since 1.0.0
24
+ */
25
+ protected static $option_sets = array();
26
+
27
+ public static function get( $option_key ) {
28
+
29
+ if ( empty( self::$option_sets ) || empty( self::$option_sets[ $option_key ] ) ) {
30
+ self::$option_sets[ $option_key ] = new CMB2_Option( $option_key );
31
+ }
32
+
33
+ return self::$option_sets[ $option_key ];
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Handles getting/setting of values to an option array
39
+ * for a specific option key
40
+ *
41
+ * @package CMB2
42
+ * @author CMB2 team
43
+ */
44
+ class CMB2_Option {
45
+
46
+ /**
47
+ * Options array
48
+ *
49
+ * @var array
50
+ */
51
+ protected $options = array();
52
+
53
+ /**
54
+ * Current option key
55
+ *
56
+ * @var string
57
+ */
58
+ protected $key = '';
59
+
60
+ /**
61
+ * Initiate option object
62
+ *
63
+ * @param string $option_key Option key where data will be saved.
64
+ * Leave empty for temporary data store.
65
+ * @since 2.0.0
66
+ */
67
+ public function __construct( $option_key = '' ) {
68
+ $this->key = ! empty( $option_key ) ? $option_key : '';
69
+ }
70
+
71
+ /**
72
+ * Delete the option from the db
73
+ *
74
+ * @since 2.0.0
75
+ * @return mixed Delete success or failure
76
+ */
77
+ public function delete_option() {
78
+ $deleted = $this->key ? delete_option( $this->key ) : true;
79
+ $this->options = $deleted ? array() : $this->options;
80
+ return $this->options;
81
+ }
82
+
83
+ /**
84
+ * Removes an option from an option array
85
+ *
86
+ * @since 1.0.1
87
+ * @param string $field_id Option array field key.
88
+ * @param bool $resave Whether or not to resave.
89
+ * @return array Modified options
90
+ */
91
+ public function remove( $field_id, $resave = false ) {
92
+
93
+ $this->get_options();
94
+
95
+ if ( isset( $this->options[ $field_id ] ) ) {
96
+ unset( $this->options[ $field_id ] );
97
+ }
98
+
99
+ if ( $resave ) {
100
+ $this->set();
101
+ }
102
+
103
+ return $this->options;
104
+ }
105
+
106
+ /**
107
+ * Retrieves an option from an option array
108
+ *
109
+ * @since 1.0.1
110
+ * @param string $field_id Option array field key.
111
+ * @param mixed $default Fallback value for the option.
112
+ * @return array Requested field or default
113
+ */
114
+ public function get( $field_id, $default = false ) {
115
+ $opts = $this->get_options();
116
+
117
+ if ( 'all' == $field_id ) {
118
+ return $opts;
119
+ } elseif ( array_key_exists( $field_id, $opts ) ) {
120
+ return false !== $opts[ $field_id ] ? $opts[ $field_id ] : $default;
121
+ }
122
+
123
+ return $default;
124
+ }
125
+
126
+ /**
127
+ * Updates Option data
128
+ *
129
+ * @since 1.0.1
130
+ * @param string $field_id Option array field key.
131
+ * @param mixed $value Value to update data with.
132
+ * @param bool $resave Whether to re-save the data.
133
+ * @param bool $single Whether data should not be an array.
134
+ * @return boolean Return status of update.
135
+ */
136
+ public function update( $field_id, $value = '', $resave = false, $single = true ) {
137
+ $this->get_options();
138
+
139
+ if ( true !== $field_id ) {
140
+
141
+ if ( ! $single ) {
142
+ // If multiple, add to array.
143
+ $this->options[ $field_id ][] = $value;
144
+ } else {
145
+ $this->options[ $field_id ] = $value;
146
+ }
147
+ }
148
+
149
+ if ( $resave || true === $field_id ) {
150
+ return $this->set();
151
+ }
152
+
153
+ return true;
154
+ }
155
+
156
+ /**
157
+ * Saves the option array
158
+ * Needs to be run after finished using remove/update_option
159
+ *
160
+ * @uses apply_filters() Calls 'cmb2_override_option_save_{$this->key}' hook
161
+ * to allow overwriting the option value to be stored.
162
+ *
163
+ * @since 1.0.1
164
+ * @param array $options Optional options to override.
165
+ * @return bool Success/Failure
166
+ */
167
+ public function set( $options = array() ) {
168
+ if ( ! empty( $options ) || empty( $options ) && empty( $this->key ) ) {
169
+ $this->options = $options;
170
+ }
171
+
172
+ $this->options = wp_unslash( $this->options ); // get rid of those evil magic quotes.
173
+
174
+ if ( empty( $this->key ) ) {
175
+ return false;
176
+ }
177
+
178
+ $test_save = apply_filters( "cmb2_override_option_save_{$this->key}", 'cmb2_no_override_option_save', $this->options, $this );
179
+
180
+ if ( 'cmb2_no_override_option_save' !== $test_save ) {
181
+ // If override, do not proceed to update the option, just return result.
182
+ return $test_save;
183
+ }
184
+
185
+ /**
186
+ * Whether to auto-load the option when WordPress starts up.
187
+ *
188
+ * The dynamic portion of the hook name, $this->key, refers to the option key.
189
+ *
190
+ * @since 2.4.0
191
+ *
192
+ * @param bool $autoload Whether to load the option when WordPress starts up.
193
+ * @param CMB2_Option $cmb_option This object.
194
+ */
195
+ $autoload = apply_filters( "cmb2_should_autoload_{$this->key}", true, $this );
196
+
197
+ return update_option(
198
+ $this->key,
199
+ $this->options,
200
+ ! $autoload || 'no' === $autoload ? false : true
201
+ );
202
+ }
203
+
204
+ /**
205
+ * Retrieve option value based on name of option.
206
+ *
207
+ * @uses apply_filters() Calls 'cmb2_override_option_get_{$this->key}' hook to allow
208
+ * overwriting the option value to be retrieved.
209
+ *
210
+ * @since 1.0.1
211
+ * @param mixed $default Optional. Default value to return if the option does not exist.
212
+ * @return mixed Value set for the option.
213
+ */
214
+ public function get_options( $default = null ) {
215
+ if ( empty( $this->options ) && ! empty( $this->key ) ) {
216
+
217
+ $test_get = apply_filters( "cmb2_override_option_get_{$this->key}", 'cmb2_no_override_option_get', $default, $this );
218
+
219
+ if ( 'cmb2_no_override_option_get' !== $test_get ) {
220
+ $this->options = $test_get;
221
+ } else {
222
+ // If no override, get the option.
223
+ $this->options = get_option( $this->key, $default );
224
+ }
225
+ }
226
+
227
+ $this->options = (array) $this->options;
228
+
229
+ return $this->options;
230
+ }
231
+
232
+ /**
233
+ * Magic getter for our object.
234
+ *
235
+ * @since 2.6.0
236
+ *
237
+ * @param string $field Requested property.
238
+ * @throws Exception Throws an exception if the field is invalid.
239
+ * @return mixed
240
+ */
241
+ public function __get( $field ) {
242
+ switch ( $field ) {
243
+ case 'options':
244
+ case 'key':
245
+ return $this->{$field};
246
+ default:
247
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
248
+ }
249
+ }
250
+ }
includes/plus-options/metabox/includes/CMB2_Options_Hookup.php ADDED
@@ -0,0 +1,360 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles hooking CMB2 forms/metaboxes into the post/attachement/user screens
4
+ * and handles hooking in and saving those fields.
5
+ *
6
+ * @since 2.0.0
7
+ *
8
+ * @category WordPress_Plugin
9
+ * @package CMB2
10
+ * @author CMB2 team
11
+ * @license GPL-2.0+
12
+ * @link https://cmb2.io
13
+ */
14
+ class CMB2_Options_Hookup extends CMB2_hookup {
15
+
16
+ /**
17
+ * The object type we are performing the hookup for
18
+ *
19
+ * @var string
20
+ * @since 2.0.9
21
+ */
22
+ protected $object_type = 'options-page';
23
+
24
+ /**
25
+ * Options page key.
26
+ *
27
+ * @var string
28
+ * @since 2.2.5
29
+ */
30
+ protected $option_key = '';
31
+
32
+ /**
33
+ * Constructor
34
+ *
35
+ * @since 2.0.0
36
+ * @param CMB2 $cmb The CMB2 object to hookup.
37
+ * @param string $option_key Option key to use.
38
+ */
39
+ public function __construct( CMB2 $cmb, $option_key ) {
40
+ $this->cmb = $cmb;
41
+ $this->option_key = $option_key;
42
+ }
43
+
44
+ public function hooks() {
45
+ if ( empty( $this->option_key ) ) {
46
+ return;
47
+ }
48
+
49
+ if ( ! $this->cmb->prop( 'autoload', true ) ) {
50
+ // Disable option autoload if requested.
51
+ add_filter( "cmb2_should_autoload_{$this->option_key}", '__return_false' );
52
+ }
53
+
54
+ /**
55
+ * For WP < 4.7. Ensure the register_setting function exists.
56
+ */
57
+ if ( ! CMB2_Utils::wp_at_least( '4.7' ) && ! function_exists( 'register_setting' ) ) {
58
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
59
+ }
60
+
61
+ // Register setting to cmb2 group.
62
+ register_setting( 'cmb2', $this->option_key );
63
+
64
+ // Handle saving the data.
65
+ add_action( 'admin_post_' . $this->option_key, array( $this, 'save_options' ) );
66
+
67
+ // Optionally network_admin_menu.
68
+ $hook = $this->cmb->prop( 'admin_menu_hook' );
69
+
70
+ // Hook in to add our menu.
71
+ add_action( $hook, array( $this, 'options_page_menu_hooks' ) );
72
+
73
+ // If in the network admin, need to use get/update_site_option.
74
+ if ( 'network_admin_menu' === $hook ) {
75
+ // Override CMB's getter.
76
+ add_filter( "cmb2_override_option_get_{$this->option_key}", array( $this, 'network_get_override' ), 10, 2 );
77
+ // Override CMB's setter.
78
+ add_filter( "cmb2_override_option_save_{$this->option_key}", array( $this, 'network_update_override' ), 10, 2 );
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Hook up our admin menu item and admin page.
84
+ *
85
+ * @since 2.2.5
86
+ *
87
+ * @return void
88
+ */
89
+ public function options_page_menu_hooks() {
90
+ $parent_slug = $this->cmb->prop( 'parent_slug' );
91
+ $title = $this->cmb->prop( 'title' );
92
+ $menu_title = $this->cmb->prop( 'menu_title', $title );
93
+ $capability = $this->cmb->prop( 'capability' );
94
+ $callback = array( $this, 'options_page_output' );
95
+
96
+ if ( $parent_slug ) {
97
+ $page_hook = add_submenu_page(
98
+ $parent_slug,
99
+ $title,
100
+ $menu_title,
101
+ $capability,
102
+ $this->option_key,
103
+ $callback
104
+ );
105
+ } else {
106
+ $page_hook = add_menu_page(
107
+ $title,
108
+ $menu_title,
109
+ $capability,
110
+ $this->option_key,
111
+ $callback,
112
+ $this->cmb->prop( 'icon_url' ),
113
+ $this->cmb->prop( 'position' )
114
+ );
115
+ }
116
+
117
+ if ( $this->cmb->prop( 'cmb_styles' ) ) {
118
+ // Include CMB CSS in the head to avoid FOUC.
119
+ add_action( "admin_print_styles-{$page_hook}", array( 'CMB2_hookup', 'enqueue_cmb_css' ) );
120
+ }
121
+
122
+ $this->maybe_register_message();
123
+ }
124
+
125
+ /**
126
+ * If there is a message callback, let it determine how to register the message,
127
+ * else add a settings message if on this settings page.
128
+ *
129
+ * @since 2.2.6
130
+ *
131
+ * @return void
132
+ */
133
+ public function maybe_register_message() {
134
+ $is_options_page = self::is_page( $this->option_key );
135
+ $should_notify = ! $this->cmb->prop( 'disable_settings_errors' ) && isset( $_GET['settings-updated'] ) && $is_options_page;
136
+ $is_updated = $should_notify && 'true' === $_GET['settings-updated'];
137
+ $setting = "{$this->option_key}-notices";
138
+ $code = '';
139
+ $message = __( 'Nothing to update.', 'cmb2' );
140
+ $type = 'notice-warning';
141
+
142
+ if ( $is_updated ) {
143
+ $message = __( 'Settings updated.', 'cmb2' );
144
+ $type = 'updated';
145
+ }
146
+
147
+ // Check if parameter has registered a callback.
148
+ if ( $cb = $this->cmb->maybe_callback( 'message_cb' ) ) {
149
+
150
+ /**
151
+ * The 'message_cb' callback will receive the following parameters.
152
+ * Unless there are other reasons for notifications, the callback should only
153
+ * `add_settings_error()` if `$args['should_notify']` is truthy.
154
+ *
155
+ * @param CMB2 $cmb The CMB2 object.
156
+ * @param array $args {
157
+ * An array of message arguments
158
+ *
159
+ * @type bool $is_options_page Whether current page is this options page.
160
+ * @type bool $should_notify Whether options were saved and we should be notified.
161
+ * @type bool $is_updated Whether options were updated with save (or stayed the same).
162
+ * @type string $setting For add_settings_error(), Slug title of the setting to which
163
+ * this error applies.
164
+ * @type string $code For add_settings_error(), Slug-name to identify the error.
165
+ * Used as part of 'id' attribute in HTML output.
166
+ * @type string $message For add_settings_error(), The formatted message text to display
167
+ * to the user (will be shown inside styled `<div>` and `<p>` tags).
168
+ * Will be 'Settings updated.' if $is_updated is true, else 'Nothing to update.'
169
+ * @type string $type For add_settings_error(), Message type, controls HTML class.
170
+ * Accepts 'error', 'updated', '', 'notice-warning', etc.
171
+ * Will be 'updated' if $is_updated is true, else 'notice-warning'.
172
+ * }
173
+ */
174
+ $args = compact( 'is_options_page', 'should_notify', 'is_updated', 'setting', 'code', 'message', 'type' );
175
+
176
+ $this->cmb->do_callback( $cb, $args );
177
+
178
+ } elseif ( $should_notify ) {
179
+
180
+ add_settings_error( $setting, $code, $message, $type );
181
+ }
182
+ }
183
+
184
+ /**
185
+ * Display options-page output. To override, set 'display_cb' box property.
186
+ *
187
+ * @since 2.2.5
188
+ */
189
+ public function options_page_output() {
190
+ $this->maybe_output_settings_notices();
191
+
192
+ $callback = $this->cmb->prop( 'display_cb' );
193
+ if ( is_callable( $callback ) ) {
194
+ return call_user_func( $callback, $this );
195
+ }
196
+
197
+ $tabs = $this->get_tab_group_tabs();
198
+ ?>
199
+ <div class="wrap cmb2-options-page option-<?php echo $this->option_key; ?>">
200
+ <?php if ( $this->cmb->prop( 'title' ) ) : ?>
201
+ <h2><?php echo wp_kses_post( $this->cmb->prop( 'title' ) ); ?></h2>
202
+ <?php endif; ?>
203
+ <?php if ( ! empty( $tabs ) ) : ?>
204
+ <h2 class="nav-tab-wrapper">
205
+ <?php foreach ( $tabs as $option_key => $tab_title ) : ?>
206
+ <a class="nav-tab<?php if ( self::is_page( $option_key ) ) : ?> nav-tab-active<?php endif; ?>" href="<?php menu_page_url( $option_key ); ?>"><?php echo wp_kses_post( $tab_title ); ?></a>
207
+ <?php endforeach; ?>
208
+ </h2>
209
+ <?php endif; ?>
210
+ <form class="cmb-form" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" method="POST" id="<?php echo $this->cmb->cmb_id; ?>" enctype="multipart/form-data" encoding="multipart/form-data">
211
+ <input type="hidden" name="action" value="<?php echo esc_attr( $this->option_key ); ?>">
212
+ <?php $this->options_page_metabox(); ?>
213
+ <?php submit_button( esc_attr( $this->cmb->prop( 'save_button' ) ), 'primary', 'submit-cmb' ); ?>
214
+ </form>
215
+ </div>
216
+ <?php
217
+ }
218
+
219
+ /**
220
+ * Outputs the settings notices if a) not a sub-page of 'options-general.php'
221
+ * (because settings_errors() already called in wp-admin/options-head.php),
222
+ * and b) the 'disable_settings_errors' prop is not set or truthy.
223
+ *
224
+ * @since 2.2.5
225
+ * @return void
226
+ */
227
+ public function maybe_output_settings_notices() {
228
+ global $parent_file;
229
+
230
+ // The settings sub-pages will already have settings_errors() called in wp-admin/options-head.php.
231
+ if ( 'options-general.php' !== $parent_file ) {
232
+ settings_errors( "{$this->option_key}-notices" );
233
+ }
234
+ }
235
+
236
+ /**
237
+ * Gets navigation tabs array for CMB2 options pages which share the
238
+ * same tab_group property.
239
+ *
240
+ * @since 2.4.0
241
+ * @return array Array of tab information ($option_key => $tab_title)
242
+ */
243
+ public function get_tab_group_tabs() {
244
+ $tab_group = $this->cmb->prop( 'tab_group' );
245
+ $tabs = array();
246
+
247
+ if ( $tab_group ) {
248
+ $boxes = CMB2_Boxes::get_by( 'tab_group', $tab_group );
249
+
250
+ foreach ( $boxes as $cmb_id => $cmb ) {
251
+ $option_key = $cmb->options_page_keys();
252
+
253
+ // Must have an option key, must be an options page box.
254
+ if ( ! isset( $option_key[0] ) || 'options-page' !== $cmb->mb_object_type() ) {
255
+ continue;
256
+ }
257
+
258
+ $tabs[ $option_key[0] ] = $cmb->prop( 'tab_title', $cmb->prop( 'title' ) );
259
+ }
260
+ }
261
+
262
+ return $tabs;
263
+ }
264
+
265
+ /**
266
+ * Display metaboxes for an options-page object.
267
+ *
268
+ * @since 2.2.5
269
+ */
270
+ public function options_page_metabox() {
271
+ $this->show_form_for_type( 'options-page' );
272
+ }
273
+
274
+ /**
275
+ * Save data from options page, then redirects back.
276
+ *
277
+ * @since 2.2.5
278
+ * @return void
279
+ */
280
+ public function save_options() {
281
+ $url = wp_get_referer();
282
+ if ( ! $url ) {
283
+ $url = admin_url();
284
+ }
285
+
286
+ if (
287
+ $this->can_save( 'options-page' )
288
+ // check params.
289
+ && isset( $_POST['submit-cmb'], $_POST['action'] )
290
+ && $this->option_key === $_POST['action']
291
+ ) {
292
+
293
+ $updated = $this->cmb
294
+ ->save_fields( $this->option_key, $this->cmb->object_type(), $_POST )
295
+ ->was_updated(); // Will be false if no values were changed/updated.
296
+
297
+ $url = add_query_arg( 'settings-updated', $updated ? 'true' : 'false', $url );
298
+ }
299
+
300
+ wp_safe_redirect( esc_url_raw( $url ), 303 /* WP_Http::SEE_OTHER */ );
301
+ exit;
302
+ }
303
+
304
+ /**
305
+ * Replaces get_option with get_site_option.
306
+ *
307
+ * @since 2.2.5
308
+ *
309
+ * @param mixed $test Not used.
310
+ * @param mixed $default Default value to use.
311
+ * @return mixed Value set for the network option.
312
+ */
313
+ public function network_get_override( $test, $default = false ) {
314
+ return get_site_option( $this->option_key, $default );
315
+ }
316
+
317
+ /**
318
+ * Replaces update_option with update_site_option.
319
+ *
320
+ * @since 2.2.5
321
+ *
322
+ * @param mixed $test Not used.
323
+ * @param mixed $option_value Value to use.
324
+ * @return bool Success/Failure
325
+ */
326
+ public function network_update_override( $test, $option_value ) {
327
+ return update_site_option( $this->option_key, $option_value );
328
+ }
329
+
330
+ /**
331
+ * Determines if given page slug matches the 'page' GET query variable.
332
+ *
333
+ * @since 2.4.0
334
+ *
335
+ * @param string $page Page slug.
336
+ * @return boolean
337
+ */
338
+ public static function is_page( $page ) {
339
+ return isset( $_GET['page'] ) && $page === $_GET['page'];
340
+ }
341
+
342
+ /**
343
+ * Magic getter for our object.
344
+ *
345
+ * @param string $field Property to retrieve.
346
+ *
347
+ * @throws Exception Throws an exception if the field is invalid.
348
+ * @return mixed
349
+ */
350
+ public function __get( $field ) {
351
+ switch ( $field ) {
352
+ case 'object_type':
353
+ case 'option_key':
354
+ case 'cmb':
355
+ return $this->{$field};
356
+ default:
357
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
358
+ }
359
+ }
360
+ }
includes/plus-options/metabox/includes/CMB2_Sanitize.php ADDED
@@ -0,0 +1,587 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 field sanitization
4
+ *
5
+ * @since 0.0.4
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ *
13
+ * @method string _id()
14
+ */
15
+ class CMB2_Sanitize {
16
+
17
+ /**
18
+ * A CMB field object
19
+ *
20
+ * @var CMB2_Field object
21
+ */
22
+ public $field;
23
+
24
+ /**
25
+ * Field's value
26
+ *
27
+ * @var mixed
28
+ */
29
+ public $value;
30
+
31
+ /**
32
+ * Setup our class vars
33
+ *
34
+ * @since 1.1.0
35
+ * @param CMB2_Field $field A CMB2 field object.
36
+ * @param mixed $value Field value.
37
+ */
38
+ public function __construct( CMB2_Field $field, $value ) {
39
+ $this->field = $field;
40
+ $this->value = $value;
41
+ }
42
+
43
+ /**
44
+ * Catchall method if field's 'sanitization_cb' is NOT defined,
45
+ * or field type does not have a corresponding validation method.
46
+ *
47
+ * @since 1.0.0
48
+ *
49
+ * @param string $name Non-existent method name.
50
+ * @param array $arguments All arguments passed to the method.
51
+ * @return mixed
52
+ */
53
+ public function __call( $name, $arguments ) {
54
+ return $this->default_sanitization();
55
+ }
56
+
57
+ /**
58
+ * Default fallback sanitization method. Applies filters.
59
+ *
60
+ * @since 1.0.2
61
+ */
62
+ public function default_sanitization() {
63
+ $field_type = $this->field->type();
64
+
65
+ /**
66
+ * This exists for back-compatibility, but validation
67
+ * is not what happens here.
68
+ *
69
+ * @deprecated See documentation for "cmb2_sanitize_{$field_type}".
70
+ */
71
+ if ( function_exists( 'apply_filters_deprecated' ) ) {
72
+ $override_value = apply_filters_deprecated( "cmb2_validate_{$field_type}", array( null, $this->value, $this->field->object_id, $this->field->args(), $this ), '2.0.0', "cmb2_sanitize_{$field_type}" );
73
+ } else {
74
+ $override_value = apply_filters( "cmb2_validate_{$field_type}", null, $this->value, $this->field->object_id, $this->field->args(), $this );
75
+ }
76
+
77
+ if ( null !== $override_value ) {
78
+ return $override_value;
79
+ }
80
+
81
+ $sanitized_value = '';
82
+ switch ( $field_type ) {
83
+ case 'wysiwyg':
84
+ case 'textarea_small':
85
+ case 'oembed':
86
+ $sanitized_value = $this->textarea();
87
+ break;
88
+ case 'taxonomy_select':
89
+ case 'taxonomy_radio':
90
+ case 'taxonomy_radio_inline':
91
+ case 'taxonomy_radio_hierarchical':
92
+ case 'taxonomy_multicheck':
93
+ case 'taxonomy_multicheck_hierarchical':
94
+ case 'taxonomy_multicheck_inline':
95
+ $sanitized_value = $this->taxonomy();
96
+ break;
97
+ case 'multicheck':
98
+ case 'multicheck_inline':
99
+ case 'file_list':
100
+ case 'group':
101
+ // no filtering
102
+ $sanitized_value = $this->value;
103
+ break;
104
+ default:
105
+ // Handle repeatable fields array
106
+ // We'll fallback to 'sanitize_text_field'
107
+ $sanitized_value = $this->_default_sanitization();
108
+ break;
109
+ }
110
+
111
+ return $this->_is_empty_array( $sanitized_value ) ? '' : $sanitized_value;
112
+ }
113
+
114
+ /**
115
+ * Default sanitization method, sanitize_text_field. Checks if value is array.
116
+ *
117
+ * @since 2.2.4
118
+ * @return mixed Sanitized value.
119
+ */
120
+ protected function _default_sanitization() {
121
+ // Handle repeatable fields array.
122
+ return is_array( $this->value ) ? array_map( 'sanitize_text_field', $this->value ) : sanitize_text_field( $this->value );
123
+ }
124
+
125
+ /**
126
+ * Sets the object terms to the object (if not options-page) and optionally returns the sanitized term values.
127
+ *
128
+ * @since 2.2.4
129
+ * @return mixed Blank value, or sanitized term values if "cmb2_return_taxonomy_values_{$cmb_id}" is true.
130
+ */
131
+ public function taxonomy() {
132
+ $sanitized_value = '';
133
+
134
+ if ( ! $this->field->args( 'taxonomy' ) ) {
135
+ CMB2_Utils::log_if_debug( __METHOD__, __LINE__, "{$this->field->type()} {$this->field->_id()} is missing the 'taxonomy' parameter." );
136
+ } else {
137
+
138
+ if ( in_array( $this->field->object_type, array( 'options-page', 'term' ), true ) ) {
139
+ $return_values = true;
140
+ } else {
141
+ wp_set_object_terms( $this->field->object_id, $this->value, $this->field->args( 'taxonomy' ) );
142
+ $return_values = false;
143
+ }
144
+
145
+ $cmb_id = $this->field->cmb_id;
146
+
147
+ /**
148
+ * Filter whether 'taxonomy_*' fields should return their value when being sanitized.
149
+ *
150
+ * By default, these fields do not return a value as we do not want them stored to meta
151
+ * (as they are stored as terms). This allows overriding that and is used by CMB2::get_sanitized_values().
152
+ *
153
+ * The dynamic portion of the hook, $cmb_id, refers to the this field's CMB2 box id.
154
+ *
155
+ * @since 2.2.4
156
+ *
157
+ * @param bool $return_values By default, this is only true for 'options-page' boxes. To enable:
158
+ * `add_filter( "cmb2_return_taxonomy_values_{$cmb_id}", '__return_true' );`
159
+ * @param CMB2_Sanitize $sanitizer This object.
160
+ */
161
+ if ( apply_filters( "cmb2_return_taxonomy_values_{$cmb_id}", $return_values, $this ) ) {
162
+ $sanitized_value = $this->_default_sanitization();
163
+ }
164
+ }
165
+
166
+ return $sanitized_value;
167
+ }
168
+
169
+ /**
170
+ * Simple checkbox validation
171
+ *
172
+ * @since 1.0.1
173
+ * @return string|false 'on' or false
174
+ */
175
+ public function checkbox() {
176
+ return $this->value === 'on' ? 'on' : false;
177
+ }
178
+
179
+ /**
180
+ * Validate url in a meta value.
181
+ *
182
+ * @since 1.0.1
183
+ * @return string Empty string or escaped url
184
+ */
185
+ public function text_url() {
186
+ $protocols = $this->field->args( 'protocols' );
187
+ // for repeatable.
188
+ if ( is_array( $this->value ) ) {
189
+ foreach ( $this->value as $key => $val ) {
190
+ $this->value[ $key ] = $val ? esc_url_raw( $val, $protocols ) : $this->field->get_default();
191
+ }
192
+ } else {
193
+ $this->value = $this->value ? esc_url_raw( $this->value, $protocols ) : $this->field->get_default();
194
+ }
195
+
196
+ return $this->value;
197
+ }
198
+
199
+ public function colorpicker() {
200
+ // for repeatable.
201
+ if ( is_array( $this->value ) ) {
202
+ $check = $this->value;
203
+ $this->value = array();
204
+ foreach ( $check as $key => $val ) {
205
+ if ( $val && '#' != $val ) {
206
+ $this->value[ $key ] = esc_attr( $val );
207
+ }
208
+ }
209
+ } else {
210
+ $this->value = ! $this->value || '#' == $this->value ? '' : esc_attr( $this->value );
211
+ }
212
+ return $this->value;
213
+ }
214
+
215
+ /**
216
+ * Validate email in a meta value
217
+ *
218
+ * @since 1.0.1
219
+ * @return string Empty string or sanitized email
220
+ */
221
+ public function text_email() {
222
+ // for repeatable.
223
+ if ( is_array( $this->value ) ) {
224
+ foreach ( $this->value as $key => $val ) {
225
+ $val = trim( $val );
226
+ $this->value[ $key ] = is_email( $val ) ? $val : '';
227
+ }
228
+ } else {
229
+ $this->value = trim( $this->value );
230
+ $this->value = is_email( $this->value ) ? $this->value : '';
231
+ }
232
+
233
+ return $this->value;
234
+ }
235
+
236
+ /**
237
+ * Validate money in a meta value
238
+ *
239
+ * @since 1.0.1
240
+ * @return string Empty string or sanitized money value
241
+ */
242
+ public function text_money() {
243
+ if ( ! $this->value ) {
244
+ return '';
245
+ }
246
+
247
+ global $wp_locale;
248
+
249
+ $search = array( $wp_locale->number_format['thousands_sep'], $wp_locale->number_format['decimal_point'] );
250
+ $replace = array( '', '.' );
251
+
252
+ // Strip slashes. Example: 2\'180.00.
253
+ // See https://github.com/CMB2/CMB2/issues/1014.
254
+ $this->value = wp_unslash( $this->value );
255
+
256
+ // for repeatable.
257
+ if ( is_array( $this->value ) ) {
258
+ foreach ( $this->value as $key => $val ) {
259
+ if ( $val ) {
260
+ $this->value[ $key ] = number_format_i18n( (float) str_ireplace( $search, $replace, $val ), 2 );
261
+ }
262
+ }
263
+ } else {
264
+ $this->value = number_format_i18n( (float) str_ireplace( $search, $replace, $this->value ), 2 );
265
+ }
266
+
267
+ return $this->value;
268
+ }
269
+
270
+ /**
271
+ * Converts text date to timestamp
272
+ *
273
+ * @since 1.0.2
274
+ * @return string Timestring
275
+ */
276
+ public function text_date_timestamp() {
277
+ // date_create_from_format if there is a slash in the value.
278
+ $this->value = wp_unslash( $this->value );
279
+
280
+ return is_array( $this->value )
281
+ ? array_map( array( $this->field, 'get_timestamp_from_value' ), $this->value )
282
+ : $this->field->get_timestamp_from_value( $this->value );
283
+ }
284
+
285
+ /**
286
+ * Datetime to timestamp
287
+ *
288
+ * @since 1.0.1
289
+ *
290
+ * @param bool $repeat Whether or not to repeat.
291
+ * @return string|array Timestring
292
+ */
293
+ public function text_datetime_timestamp( $repeat = false ) {
294
+ // date_create_from_format if there is a slash in the value.
295
+ $this->value = wp_unslash( $this->value );
296
+
297
+ $test = is_array( $this->value ) ? array_filter( $this->value ) : '';
298
+ if ( empty( $test ) ) {
299
+ return '';
300
+ }
301
+
302
+ $repeat_value = $this->_check_repeat( __FUNCTION__, $repeat );
303
+ if ( false !== $repeat_value ) {
304
+ return $repeat_value;
305
+ }
306
+
307
+ if ( isset( $this->value['date'], $this->value['time'] ) ) {
308
+ $this->value = $this->field->get_timestamp_from_value( $this->value['date'] . ' ' . $this->value['time'] );
309
+ }
310
+
311
+ if ( $tz_offset = $this->field->field_timezone_offset() ) {
312
+ $this->value += (int) $tz_offset;
313
+ }
314
+
315
+ return $this->value;
316
+ }
317
+
318
+ /**
319
+ * Datetime to timestamp with timezone
320
+ *
321
+ * @since 1.0.1
322
+ *
323
+ * @param bool $repeat Whether or not to repeat.
324
+ * @return string Timestring
325
+ */
326
+ public function text_datetime_timestamp_timezone( $repeat = false ) {
327
+ static $utc_values = array();
328
+
329
+ $test = is_array( $this->value ) ? array_filter( $this->value ) : '';
330
+ if ( empty( $test ) ) {
331
+ return '';
332
+ }
333
+
334
+ // date_create_from_format if there is a slash in the value.
335
+ $this->value = wp_unslash( $this->value );
336
+
337
+ $utc_key = $this->field->_id() . '_utc';
338
+
339
+ $repeat_value = $this->_check_repeat( __FUNCTION__, $repeat );
340
+ if ( false !== $repeat_value ) {
341
+ if ( ! empty( $utc_values[ $utc_key ] ) ) {
342
+ $this->_save_utc_value( $utc_key, $utc_values[ $utc_key ] );
343
+ unset( $utc_values[ $utc_key ] );
344
+ }
345
+
346
+ return $repeat_value;
347
+ }
348
+
349
+ $tzstring = null;
350
+
351
+ if ( is_array( $this->value ) && array_key_exists( 'timezone', $this->value ) ) {
352
+ $tzstring = $this->value['timezone'];
353
+ }
354
+
355
+ if ( empty( $tzstring ) ) {
356
+ $tzstring = CMB2_Utils::timezone_string();
357
+ }
358
+
359
+ $offset = CMB2_Utils::timezone_offset( $tzstring );
360
+
361
+ if ( 'UTC' === substr( $tzstring, 0, 3 ) ) {
362
+ $tzstring = timezone_name_from_abbr( '', $offset, 0 );
363
+ /**
364
+ * The timezone_name_from_abbr() returns false if not found based on offset.
365
+ * Since there are currently some invalid timezones in wp_timezone_dropdown(),
366
+ * fallback to an offset of 0 (UTC+0)
367
+ * https://core.trac.wordpress.org/ticket/29205
368
+ */
369
+ $tzstring = false !== $tzstring ? $tzstring : timezone_name_from_abbr( '', 0, 0 );
370
+ }
371
+
372
+ $full_format = $this->field->args['date_format'] . ' ' . $this->field->args['time_format'];
373
+ $full_date = $this->value['date'] . ' ' . $this->value['time'];
374
+
375
+ try {
376
+
377
+ $datetime = date_create_from_format( $full_format, $full_date );
378
+
379
+ if ( ! is_object( $datetime ) ) {
380
+ $this->value = $utc_stamp = '';
381
+ } else {
382
+ $datetime->setTimezone( new DateTimeZone( $tzstring ) );
383
+ $utc_stamp = date_timestamp_get( $datetime ) - $offset;
384
+ $this->value = serialize( $datetime );
385
+ }
386
+
387
+ if ( $this->field->group ) {
388
+ $this->value = array(
389
+ 'supporting_field_value' => $utc_stamp,
390
+ 'supporting_field_id' => $utc_key,
391
+ 'value' => $this->value,
392
+ );
393
+ } else {
394
+ // Save the utc timestamp supporting field.
395
+ if ( $repeat ) {
396
+ $utc_values[ $utc_key ][] = $utc_stamp;
397
+ } else {
398
+ $this->_save_utc_value( $utc_key, $utc_stamp );
399
+ }
400
+ }
401
+ } catch ( Exception $e ) {
402
+ $this->value = '';
403
+ CMB2_Utils::log_if_debug( __METHOD__, __LINE__, $e->getMessage() );
404
+ }
405
+
406
+ return $this->value;
407
+ }
408
+
409
+ /**
410
+ * Sanitize textareas and wysiwyg fields
411
+ *
412
+ * @since 1.0.1
413
+ * @return string Sanitized data
414
+ */
415
+ public function textarea() {
416
+ return is_array( $this->value ) ? array_map( 'wp_kses_post', $this->value ) : wp_kses_post( $this->value );
417
+ }
418
+
419
+ /**
420
+ * Sanitize code textareas
421
+ *
422
+ * @since 1.0.2
423
+ *
424
+ * @param bool $repeat Whether or not to repeat.
425
+ * @return string Sanitized data
426
+ */
427
+ public function textarea_code( $repeat = false ) {
428
+ $repeat_value = $this->_check_repeat( __FUNCTION__, $repeat );
429
+ if ( false !== $repeat_value ) {
430
+ return $repeat_value;
431
+ }
432
+
433
+ return htmlspecialchars_decode( stripslashes( $this->value ) );
434
+ }
435
+
436
+ /**
437
+ * Handles saving of attachment post ID and sanitizing file url
438
+ *
439
+ * @since 1.1.0
440
+ * @return string Sanitized url
441
+ */
442
+ public function file() {
443
+ $file_id_key = $this->field->_id() . '_id';
444
+
445
+ if ( $this->field->group ) {
446
+ // Return an array with url/id if saving a group field.
447
+ $this->value = $this->_get_group_file_value_array( $file_id_key );
448
+ } else {
449
+ $this->_save_file_id_value( $file_id_key );
450
+ $this->text_url();
451
+ }
452
+
453
+ return $this->value;
454
+ }
455
+
456
+ /**
457
+ * Gets the values for the `file` field type from the data being saved.
458
+ *
459
+ * @since 2.2.0
460
+ *
461
+ * @param mixed $id_key ID key to use.
462
+ * @return array
463
+ */
464
+ public function _get_group_file_value_array( $id_key ) {
465
+ $alldata = $this->field->group->data_to_save;
466
+ $base_id = $this->field->group->_id();
467
+ $i = $this->field->group->index;
468
+
469
+ // Check group $alldata data.
470
+ $id_val = isset( $alldata[ $base_id ][ $i ][ $id_key ] )
471
+ ? absint( $alldata[ $base_id ][ $i ][ $id_key ] )
472
+ : '';
473
+
474
+ // We don't want to save 0 to the DB for file fields.
475
+ if ( 0 === $id_val ) {
476
+ $id_val = '';
477
+ }
478
+
479
+ return array(
480
+ 'value' => $this->text_url(),
481
+ 'supporting_field_value' => $id_val,
482
+ 'supporting_field_id' => $id_key,
483
+ );
484
+ }
485
+
486
+ /**
487
+ * Peforms saving of `file` attachement's ID
488
+ *
489
+ * @since 1.1.0
490
+ *
491
+ * @param mixed $file_id_key ID key to use.
492
+ * @return mixed
493
+ */
494
+ public function _save_file_id_value( $file_id_key ) {
495
+ $id_field = $this->_new_supporting_field( $file_id_key );
496
+
497
+ // Check standard data_to_save data.
498
+ $id_val = isset( $this->field->data_to_save[ $file_id_key ] )
499
+ ? $this->field->data_to_save[ $file_id_key ]
500
+ : null;
501
+
502
+ // If there is no ID saved yet, try to get it from the url.
503
+ if ( $this->value && ! $id_val ) {
504
+ $id_val = CMB2_Utils::image_id_from_url( $this->value );
505
+
506
+ // If there is an ID but user emptied the input value, remove the ID.
507
+ } elseif ( ! $this->value && $id_val ) {
508
+ $id_val = null;
509
+ }
510
+
511
+ return $id_field->save_field( $id_val );
512
+ }
513
+
514
+ /**
515
+ * Peforms saving of `text_datetime_timestamp_timezone` utc timestamp
516
+ *
517
+ * @since 2.2.0
518
+ *
519
+ * @param mixed $utc_key UTC key.
520
+ * @param mixed $utc_stamp UTC timestamp.
521
+ * @return mixed
522
+ */
523
+ public function _save_utc_value( $utc_key, $utc_stamp ) {
524
+ return $this->_new_supporting_field( $utc_key )->save_field( $utc_stamp );
525
+ }
526
+
527
+ /**
528
+ * Returns a new, supporting, CMB2_Field object based on a new field id.
529
+ *
530
+ * @since 2.2.0
531
+ *
532
+ * @param mixed $new_field_id New field ID.
533
+ * @return CMB2_Field
534
+ */
535
+ public function _new_supporting_field( $new_field_id ) {
536
+ return $this->field->get_field_clone( array(
537
+ 'id' => $new_field_id,
538
+ 'sanitization_cb' => false,
539
+ ) );
540
+ }
541
+
542
+ /**
543
+ * If repeating, loop through and re-apply sanitization method
544
+ *
545
+ * @since 1.1.0
546
+ * @param string $method Class method.
547
+ * @param bool $repeat Whether repeating or not.
548
+ * @return mixed Sanitized value
549
+ */
550
+ public function _check_repeat( $method, $repeat ) {
551
+ if ( $repeat || ! $this->field->args( 'repeatable' ) ) {
552
+ return false;
553
+ }
554
+
555
+ $values_array = $this->value;
556
+
557
+ $new_value = array();
558
+ foreach ( $values_array as $iterator => $this->value ) {
559
+ if ( $this->value ) {
560
+ $val = $this->$method( true );
561
+ if ( ! empty( $val ) ) {
562
+ $new_value[] = $val;
563
+ }
564
+ }
565
+ }
566
+
567
+ $this->value = $new_value;
568
+
569
+ return empty( $this->value ) ? null : $this->value;
570
+ }
571
+
572
+ /**
573
+ * Determine if passed value is an empty array
574
+ *
575
+ * @since 2.0.6
576
+ * @param mixed $to_check Value to check.
577
+ * @return boolean Whether value is an array that's empty
578
+ */
579
+ public function _is_empty_array( $to_check ) {
580
+ if ( is_array( $to_check ) ) {
581
+ $cleaned_up = array_filter( $to_check );
582
+ return empty( $cleaned_up );
583
+ }
584
+ return false;
585
+ }
586
+
587
+ }
includes/plus-options/metabox/includes/CMB2_Show_Filters.php ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Show On Filters
4
+ * Use the 'cmb2_show_on' filter to further refine the conditions
5
+ * under which a metabox is displayed.
6
+ * Below you can limit it by ID and page template
7
+ *
8
+ * All methods in this class are automatically filtered
9
+ *
10
+ * @since 1.0.0
11
+ *
12
+ * @category WordPress_Plugin
13
+ * @package CMB2
14
+ * @author CMB2 team
15
+ * @license GPL-2.0+
16
+ * @link https://cmb2.io
17
+ */
18
+ class CMB2_Show_Filters {
19
+
20
+ /**
21
+ * Get Show_on key. backwards compatible w/ 'key' indexes
22
+ *
23
+ * @since 2.0.0
24
+ *
25
+ * @param array $meta_box_args Metabox config array.
26
+ *
27
+ * @return mixed show_on key or false
28
+ */
29
+ private static function get_show_on_key( $meta_box_args ) {
30
+ $show_on = isset( $meta_box_args['show_on'] ) ? (array) $meta_box_args['show_on'] : false;
31
+ if ( $show_on && is_array( $show_on ) ) {
32
+
33
+ if ( array_key_exists( 'key', $show_on ) ) {
34
+ return $show_on['key'];
35
+ }
36
+
37
+ $keys = array_keys( $show_on );
38
+ return $keys[0];
39
+ }
40
+
41
+ return false;
42
+ }
43
+
44
+ /**
45
+ * Get Show_on value. backwards compatible w/ 'value' indexes
46
+ *
47
+ * @since 2.0.0
48
+ *
49
+ * @param array $meta_box_args Metabox config array.
50
+ *
51
+ * @return mixed show_on value or false
52
+ */
53
+ private static function get_show_on_value( $meta_box_args ) {
54
+ $show_on = isset( $meta_box_args['show_on'] ) ? (array) $meta_box_args['show_on'] : false;
55
+
56
+ if ( $show_on && is_array( $show_on ) ) {
57
+
58
+ if ( array_key_exists( 'value', $show_on ) ) {
59
+ return $show_on['value'];
60
+ }
61
+
62
+ $keys = array_keys( $show_on );
63
+
64
+ return $show_on[ $keys[0] ];
65
+ }
66
+
67
+ return array();
68
+ }
69
+
70
+ /**
71
+ * Add metaboxes for an specific ID
72
+ *
73
+ * @since 1.0.0
74
+ * @param bool $display To display or not.
75
+ * @param array $meta_box_args Metabox config array.
76
+ * @param CMB2 $cmb The CMB2 instance.
77
+ * @return bool Whether to display this metabox on the current page.
78
+ */
79
+ public static function check_id( $display, $meta_box_args, $cmb ) {
80
+
81
+ $key = self::get_show_on_key( $meta_box_args );
82
+ if ( ! $key || 'id' !== $key ) {
83
+ return $display;
84
+ }
85
+
86
+ $object_id = is_admin() ? $cmb->object_id() : get_the_ID();
87
+
88
+ if ( ! $object_id ) {
89
+ return false;
90
+ }
91
+
92
+ // If current page id is in the included array, display the metabox.
93
+ return in_array( $object_id, (array) self::get_show_on_value( $meta_box_args ) );
94
+ }
95
+
96
+ /**
97
+ * Add metaboxes for an specific Page Template
98
+ *
99
+ * @since 1.0.0
100
+ * @param bool $display To display or not.
101
+ * @param array $meta_box_args Metabox config array.
102
+ * @param CMB2 $cmb CMB2 object.
103
+ * @return bool Whether to display this metabox on the current page.
104
+ */
105
+ public static function check_page_template( $display, $meta_box_args, $cmb ) {
106
+
107
+ $key = self::get_show_on_key( $meta_box_args );
108
+ if ( ! $key || 'page-template' !== $key ) {
109
+ return $display;
110
+ }
111
+
112
+ $object_id = $cmb->object_id();
113
+
114
+ if ( ! $object_id || 'post' !== $cmb->object_type() ) {
115
+ return false;
116
+ }
117
+
118
+ // Get current template.
119
+ $current_template = get_post_meta( $object_id, '_wp_page_template', true );
120
+
121
+ // See if there's a match.
122
+ if ( $current_template && in_array( $current_template, (array) self::get_show_on_value( $meta_box_args ) ) ) {
123
+ return true;
124
+ }
125
+
126
+ return false;
127
+ }
128
+
129
+ /**
130
+ * Only show options-page metaboxes on their options page (but only enforce on the admin side)
131
+ *
132
+ * @since 1.0.0
133
+ * @param bool $display To display or not.
134
+ * @param array $meta_box_args Metabox config array.
135
+ * @return bool Whether to display this metabox on the current page.
136
+ */
137
+ public static function check_admin_page( $display, $meta_box_args ) {
138
+
139
+ $key = self::get_show_on_key( $meta_box_args );
140
+ // check if this is a 'options-page' metabox.
141
+ if ( ! $key || 'options-page' !== $key ) {
142
+ return $display;
143
+ }
144
+
145
+ // Enforce 'show_on' filter in the admin.
146
+ if ( is_admin() ) {
147
+
148
+ // If there is no 'page' query var, our filter isn't applicable.
149
+ if ( ! isset( $_GET['page'] ) ) {
150
+ return $display;
151
+ }
152
+
153
+ $show_on = self::get_show_on_value( $meta_box_args );
154
+
155
+ if ( empty( $show_on ) ) {
156
+ return false;
157
+ }
158
+
159
+ if ( is_array( $show_on ) ) {
160
+ foreach ( $show_on as $page ) {
161
+ if ( $_GET['page'] == $page ) {
162
+ return true;
163
+ }
164
+ }
165
+ } else {
166
+ if ( $_GET['page'] == $show_on ) {
167
+ return true;
168
+ }
169
+ }
170
+
171
+ return false;
172
+
173
+ }
174
+
175
+ // Allow options-page metaboxes to be displayed anywhere on the front-end.
176
+ return true;
177
+ }
178
+
179
+ }
includes/plus-options/metabox/includes/CMB2_Types.php ADDED
@@ -0,0 +1,662 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB field type objects
4
+ *
5
+ * @since 1.0.0
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Types {
14
+
15
+ /**
16
+ * An iterator value for repeatable fields
17
+ *
18
+ * @var integer
19
+ * @since 1.0.0
20
+ */
21
+ public $iterator = 0;
22
+
23
+ /**
24
+ * Current CMB2_Field field object
25
+ *
26
+ * @var CMB2_Field object
27
+ * @since 1.0.0
28
+ */
29
+ public $field;
30
+
31
+ /**
32
+ * Current CMB2_Type_Base object
33
+ *
34
+ * @var CMB2_Type_Base object
35
+ * @since 2.2.2
36
+ */
37
+ public $type = null;
38
+
39
+ public function __construct( CMB2_Field $field ) {
40
+ $this->field = $field;
41
+ }
42
+
43
+ /**
44
+ * Default fallback. Allows rendering fields via "cmb2_render_$fieldtype" hook
45
+ *
46
+ * @since 1.0.0
47
+ * @param string $fieldtype Non-existent field type name
48
+ * @param array $arguments All arguments passed to the method
49
+ */
50
+ public function __call( $fieldtype, $arguments ) {
51
+
52
+ // Check for methods to be proxied to the CMB2_Type_Base object.
53
+ if ( $exists = $this->maybe_proxy_method( $fieldtype, $arguments ) ) {
54
+ return $exists['value'];
55
+ }
56
+
57
+ // Check for custom field type class.
58
+ if ( $object = $this->maybe_custom_field_object( $fieldtype, $arguments ) ) {
59
+ return $object->render();
60
+ }
61
+
62
+ /**
63
+ * Pass non-existent field types through an action.
64
+ *
65
+ * The dynamic portion of the hook name, $fieldtype, refers to the field type.
66
+ *
67
+ * @param array $field The passed in `CMB2_Field` object
68
+ * @param mixed $escaped_value The value of this field escaped.
69
+ * It defaults to `sanitize_text_field`.
70
+ * If you need the unescaped value, you can access it
71
+ * via `$field->value()`
72
+ * @param int $object_id The ID of the current object
73
+ * @param string $object_type The type of object you are working with.
74
+ * Most commonly, `post` (this applies to all post-types),
75
+ * but could also be `comment`, `user` or `options-page`.
76
+ * @param object $field_type_object This `CMB2_Types` object
77
+ */
78
+ do_action( "cmb2_render_{$fieldtype}", $this->field, $this->field->escaped_value(), $this->field->object_id, $this->field->object_type, $this );
79
+ }
80
+
81
+ /**
82
+ * Render a field (and handle repeatable)
83
+ *
84
+ * @since 1.1.0
85
+ */
86
+ public function render() {
87
+ if ( $this->field->args( 'repeatable' ) ) {
88
+ $this->render_repeatable_field();
89
+ } else {
90
+ $this->_render();
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Render a field type
96
+ *
97
+ * @since 1.1.0
98
+ */
99
+ protected function _render() {
100
+ $this->field->peform_param_callback( 'before_field' );
101
+ echo $this->{$this->field->type()}();
102
+ $this->field->peform_param_callback( 'after_field' );
103
+ }
104
+
105
+ /**
106
+ * Proxies the method call to the CMB2_Type_Base object, if it exists, otherwise returns a default fallback value.
107
+ *
108
+ * @since 2.2.2
109
+ *
110
+ * @param string $method Method to call on the CMB2_Type_Base object.
111
+ * @param mixed $default Default fallback value if method is not found.
112
+ * @param array $args Optional arguments to pass to proxy method.
113
+ *
114
+ * @return mixed Results from called method.
115
+ */
116
+ protected function proxy_method( $method, $default, $args = array() ) {
117
+ if ( ! is_object( $this->type ) ) {
118
+ $this->guess_type_object( $method );
119
+ }
120
+
121
+ if ( is_object( $this->type ) && method_exists( $this->type, $method ) ) {
122
+
123
+ return empty( $args )
124
+ ? $this->type->$method()
125
+ : call_user_func_array( array( $this->type, $method ), $args );
126
+ }
127
+
128
+ return $default;
129
+ }
130
+
131
+ /**
132
+ * If no CMB2_Types::$type object is initiated when a proxy method is called, it means
133
+ * it's a custom field type (which SHOULD be instantiating a Type), but let's try and
134
+ * guess the type object for them and instantiate it.
135
+ *
136
+ * @since 2.2.3
137
+ *
138
+ * @param string $method Method attempting to be called on the CMB2_Type_Base object.
139
+ * @return bool
140
+ */
141
+ protected function guess_type_object( $method ) {
142
+ $fieldtype = $this->field->type();
143
+
144
+ // Try to "guess" the Type object based on the method requested.
145
+ switch ( $method ) {
146
+ case 'select_option':
147
+ case 'list_input':
148
+ case 'list_input_checkbox':
149
+ case 'concat_items':
150
+ $this->get_new_render_type( $fieldtype, 'CMB2_Type_Select' );
151
+ break;
152
+ case 'is_valid_img_ext':
153
+ case 'img_status_output':
154
+ case 'file_status_output':
155
+ $this->get_new_render_type( $fieldtype, 'CMB2_Type_File_Base' );
156
+ break;
157
+ case 'parse_picker_options':
158
+ $this->get_new_render_type( $fieldtype, 'CMB2_Type_Text_Date' );
159
+ break;
160
+ case 'get_object_terms':
161
+ case 'get_terms':
162
+ $this->get_new_render_type( $fieldtype, 'CMB2_Type_Taxonomy_Multicheck' );
163
+ break;
164
+ case 'date_args':
165
+ case 'time_args':
166
+ $this->get_new_render_type( $fieldtype, 'CMB2_Type_Text_Datetime_Timestamp' );
167
+ break;
168
+ case 'parse_args':
169
+ $this->get_new_render_type( $fieldtype, 'CMB2_Type_Text' );
170
+ break;
171
+ }
172
+
173
+ return null !== $this->type;
174
+ }
175
+
176
+ /**
177
+ * Check for methods to be proxied to the CMB2_Type_Base object.
178
+ *
179
+ * @since 2.2.4
180
+ * @param string $method The possible method to proxy.
181
+ * @param array $arguments All arguments passed to the method.
182
+ * @return bool|array False if not proxied, else array with 'value' key being the return of the method.
183
+ */
184
+ public function maybe_proxy_method( $method, $arguments ) {
185
+ $exists = false;
186
+
187
+ $proxied = array(
188
+ 'get_object_terms' => array(),
189
+ 'is_valid_img_ext' => false,
190
+ 'parse_args' => array(),
191
+ 'concat_items' => '',
192
+ 'select_option' => '',
193
+ 'list_input' => '',
194
+ 'list_input_checkbox' => '',
195
+ 'img_status_output' => '',
196
+ 'file_status_output' => '',
197
+ 'parse_picker_options' => array(),
198
+ );
199
+ if ( isset( $proxied[ $method ] ) ) {
200
+ $exists = array(
201
+ // Ok, proxy the method call to the CMB2_Type_Base object.
202
+ 'value' => $this->proxy_method( $method, $proxied[ $method ], $arguments ),
203
+ );
204
+ }
205
+
206
+ return $exists;
207
+ }
208
+
209
+ /**
210
+ * Checks for a custom field CMB2_Type_Base class to use for rendering.
211
+ *
212
+ * @since 2.2.4
213
+ *
214
+ * @param string $fieldtype Non-existent field type name.
215
+ * @param array $args Optional field arguments.
216
+ *
217
+ * @return bool|CMB2_Type_Base Type object if custom field is an object, false if field was added with
218
+ * `cmb2_render_{$field_type}` action.
219
+ * @throws Exception if custom field type class does not extend CMB2_Type_Base.
220
+ */
221
+ public function maybe_custom_field_object( $fieldtype, $args = array() ) {
222
+ if ( $render_class_name = $this->get_render_type_class( $fieldtype ) ) {
223
+ $this->type = new $render_class_name( $this, $args );
224
+
225
+ if ( ! ( $this->type instanceof CMB2_Type_Base ) ) {
226
+ throw new Exception( __( 'Custom CMB2 field type classes must extend CMB2_Type_Base.', 'cmb2' ) );
227
+ }
228
+
229
+ return $this->type;
230
+ }
231
+
232
+ return false;
233
+ }
234
+
235
+ /**
236
+ * Gets the render type CMB2_Type_Base object to use for rendering the field.
237
+ *
238
+ * @since 2.2.4
239
+ * @param string $fieldtype The type of field being rendered.
240
+ * @param string $render_class_name The default field type class to use. Defaults to null.
241
+ * @param array $args Optional arguments to pass to type class.
242
+ * @param mixed $additional Optional additional argument to pass to type class.
243
+ * @return CMB2_Type_Base Type object.
244
+ */
245
+ public function get_new_render_type( $fieldtype, $render_class_name = null, $args = array(), $additional = '' ) {
246
+ $render_class_name = $this->get_render_type_class( $fieldtype, $render_class_name );
247
+ $this->type = new $render_class_name( $this, $args, $additional );
248
+
249
+ return $this->type;
250
+ }
251
+
252
+ /**
253
+ * Checks for the render type class to use for rendering the field.
254
+ *
255
+ * @since 2.2.4
256
+ * @param string $fieldtype The type of field being rendered.
257
+ * @param string $render_class_name The default field type class to use. Defaults to null.
258
+ * @return string The field type class to use.
259
+ */
260
+ public function get_render_type_class( $fieldtype, $render_class_name = null ) {
261
+ $render_class_name = $this->field->args( 'render_class' ) ? $this->field->args( 'render_class' ) : $render_class_name;
262
+
263
+ if ( has_action( "cmb2_render_class_{$fieldtype}" ) ) {
264
+
265
+ /**
266
+ * Filters the custom field type class used for rendering the field. Class is required to extend CMB2_Type_Base.
267
+ *
268
+ * The dynamic portion of the hook name, $fieldtype, refers to the (custom) field type.
269
+ *
270
+ * @since 2.2.4
271
+ *
272
+ * @param string $render_class_name The custom field type class to use. Default null.
273
+ * @param object $field_type_object This `CMB2_Types` object.
274
+ */
275
+ $render_class_name = apply_filters( "cmb2_render_class_{$fieldtype}", $render_class_name, $this );
276
+ }
277
+
278
+ return $render_class_name && class_exists( $render_class_name ) ? $render_class_name : false;
279
+ }
280
+
281
+ /**
282
+ * Retrieve text parameter from field's options array (if it has one), or use fallback text
283
+ *
284
+ * @since 2.0.0
285
+ * @param string $text_key Key in field's options array.
286
+ * @param string $fallback Fallback text.
287
+ * @return string
288
+ */
289
+ public function _text( $text_key, $fallback = '' ) {
290
+ return $this->field->get_string( $text_key, $fallback );
291
+ }
292
+
293
+ /**
294
+ * Determine a file's extension
295
+ *
296
+ * @since 1.0.0
297
+ * @param string $file File url
298
+ * @return string|false File extension or false
299
+ */
300
+ public function get_file_ext( $file ) {
301
+ return CMB2_Utils::get_file_ext( $file );
302
+ }
303
+
304
+ /**
305
+ * Get the file name from a url
306
+ *
307
+ * @since 2.0.0
308
+ * @param string $value File url or path
309
+ * @return string File name
310
+ */
311
+ public function get_file_name_from_path( $value ) {
312
+ return CMB2_Utils::get_file_name_from_path( $value );
313
+ }
314
+
315
+ /**
316
+ * Combines attributes into a string for a form element
317
+ *
318
+ * @since 1.1.0
319
+ * @param array $attrs Attributes to concatenate
320
+ * @param array $attr_exclude Attributes that should NOT be concatenated
321
+ * @return string String of attributes for form element
322
+ */
323
+ public function concat_attrs( $attrs, $attr_exclude = array() ) {
324
+ return CMB2_Utils::concat_attrs( $attrs, $attr_exclude );
325
+ }
326
+
327
+ /**
328
+ * Generates repeatable field table markup
329
+ *
330
+ * @since 1.0.0
331
+ */
332
+ public function render_repeatable_field() {
333
+ $table_id = $this->field->id() . '_repeat';
334
+
335
+ $this->_desc( true, true, true );
336
+ ?>
337
+
338
+ <div id="<?php echo $table_id; ?>" class="cmb-repeat-table cmb-nested">
339
+ <div class="cmb-tbody cmb-field-list">
340
+ <?php $this->repeatable_rows(); ?>
341
+ </div>
342
+ </div>
343
+ <p class="cmb-add-row">
344
+ <button type="button" data-selector="<?php echo $table_id; ?>" class="cmb-add-row-button button-secondary"><?php echo esc_html( $this->_text( 'add_row_text', esc_html__( 'Add Row', 'cmb2' ) ) ); ?></button>
345
+ </p>
346
+
347
+ <?php
348
+ // reset iterator
349
+ $this->iterator = 0;
350
+ }
351
+
352
+ /**
353
+ * Generates repeatable field rows
354
+ *
355
+ * @since 1.1.0
356
+ */
357
+ public function repeatable_rows() {
358
+ $meta_value = array_filter( (array) $this->field->escaped_value() );
359
+ // check for default content
360
+ $default = $this->field->get_default();
361
+
362
+ // check for saved data
363
+ if ( ! empty( $meta_value ) ) {
364
+ $meta_value = is_array( $meta_value ) ? array_filter( $meta_value ) : $meta_value;
365
+ $meta_value = ! empty( $meta_value ) ? $meta_value : $default;
366
+ } else {
367
+ $meta_value = $default;
368
+ }
369
+
370
+ // Loop value array and add a row
371
+ if ( ! empty( $meta_value ) ) {
372
+ foreach ( (array) $meta_value as $val ) {
373
+ $this->field->escaped_value = $val;
374
+ $this->repeat_row();
375
+ $this->iterator++;
376
+ }
377
+ } else {
378
+
379
+ // If value is empty (including empty array), then clear the value.
380
+ $this->field->escaped_value = $this->field->value = null;
381
+
382
+ // Otherwise add one row
383
+ $this->repeat_row();
384
+ }
385
+
386
+ // Then add an empty row
387
+ $this->field->escaped_value = $default;
388
+ $this->iterator = $this->iterator ? $this->iterator : 1;
389
+ $this->repeat_row( 'empty-row hidden' );
390
+ }
391
+
392
+ /**
393
+ * Generates a repeatable row's markup
394
+ *
395
+ * @since 1.1.0
396
+ * @param string $class Repeatable table row's class
397
+ */
398
+ protected function repeat_row( $class = 'cmb-repeat-row' ) {
399
+ ?>
400
+
401
+ <div class="cmb-row <?php echo $class; ?>">
402
+ <div class="cmb-td">
403
+ <?php $this->_render(); ?>
404
+ </div>
405
+ <div class="cmb-td cmb-remove-row">
406
+ <button type="button" class="button-secondary cmb-remove-row-button" title="<?php echo esc_attr( $this->_text( 'remove_row_button_title', esc_html__( 'Remove Row', 'cmb2' ) ) ); ?>"><?php echo esc_html( $this->_text( 'remove_row_text', esc_html__( 'Remove', 'cmb2' ) ) ); ?></button>
407
+ </div>
408
+ </div>
409
+
410
+ <?php
411
+ }
412
+
413
+ /**
414
+ * Generates description markup.
415
+ *
416
+ * @since 1.0.0
417
+ * @param bool $paragraph Paragraph tag or span.
418
+ * @param bool $echo Whether to echo description or only return it.
419
+ * @param bool $repeat_group Whether to repeat the group.
420
+ * @return string Field's description markup.
421
+ */
422
+ public function _desc( $paragraph = false, $echo = false, $repeat_group = false ) {
423
+ // Prevent description from printing multiple times for repeatable fields
424
+ if ( ! $repeat_group && ( $this->field->args( 'repeatable' ) || $this->iterator > 0 ) ) {
425
+ return '';
426
+ }
427
+
428
+ $desc = $this->field->args( 'description' );
429
+
430
+ if ( ! $desc ) {
431
+ return;
432
+ }
433
+
434
+ $tag = $paragraph ? 'p' : 'span';
435
+ $desc = sprintf( "\n" . '<%1$s class="cmb2-metabox-description">%2$s</%1$s>' . "\n", $tag, $desc );
436
+
437
+ if ( $echo ) {
438
+ echo $desc;
439
+ }
440
+
441
+ return $desc;
442
+ }
443
+
444
+ /**
445
+ * Generate field name attribute
446
+ *
447
+ * @since 1.1.0
448
+ * @param string $suffix For multi-part fields
449
+ * @return string Name attribute
450
+ */
451
+ public function _name( $suffix = '' ) {
452
+ return $this->field->args( '_name' ) . ( $this->field->args( 'repeatable' ) ? '[' . $this->iterator . ']' : '' ) . $suffix;
453
+ }
454
+
455
+ /**
456
+ * Generate field id attribute
457
+ *
458
+ * @since 1.1.0
459
+ * @param string $suffix For multi-part fields
460
+ * @return string Id attribute
461
+ */
462
+ public function _id( $suffix = '' ) {
463
+ return $this->field->id() . $suffix . ( $this->field->args( 'repeatable' ) ? '_' . $this->iterator . '" data-iterator="' . $this->iterator : '' );
464
+ }
465
+
466
+ /**
467
+ * Handles outputting an 'input' element
468
+ *
469
+ * @since 1.1.0
470
+ * @param array $args Override arguments
471
+ * @param string $type Field type
472
+ * @return string Form input element
473
+ */
474
+ public function input( $args = array(), $type = __FUNCTION__ ) {
475
+ return $this->get_new_render_type( 'text', 'CMB2_Type_Text', $args, $type )->render();
476
+ }
477
+
478
+ /**
479
+ * Handles outputting an 'textarea' element
480
+ *
481
+ * @since 1.1.0
482
+ * @param array $args Override arguments
483
+ * @return string Form textarea element
484
+ */
485
+ public function textarea( $args = array() ) {
486
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Textarea', $args )->render();
487
+ }
488
+
489
+ /**
490
+ * Begin Field Types
491
+ */
492
+
493
+ public function text() {
494
+ return $this->input();
495
+ }
496
+
497
+ public function hidden() {
498
+ $args = array(
499
+ 'type' => 'hidden',
500
+ 'desc' => '',
501
+ 'class' => 'cmb2-hidden',
502
+ );
503
+ if ( $this->field->group ) {
504
+ $args['data-groupid'] = $this->field->group->id();
505
+ $args['data-iterator'] = $this->iterator;
506
+ }
507
+
508
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text', $args, 'input' )->render();
509
+ }
510
+
511
+ public function text_small() {
512
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text', array(
513
+ 'class' => 'cmb2-text-small',
514
+ 'desc' => $this->_desc(),
515
+ ), 'input' )->render();
516
+ }
517
+
518
+ public function text_medium() {
519
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text', array(
520
+ 'class' => 'cmb2-text-medium',
521
+ 'desc' => $this->_desc(),
522
+ ), 'input' )->render();
523
+ }
524
+
525
+ public function text_email() {
526
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text', array(
527
+ 'class' => 'cmb2-text-email cmb2-text-medium',
528
+ 'type' => 'email',
529
+ ), 'input' )->render();
530
+ }
531
+
532
+ public function text_url() {
533
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text', array(
534
+ 'class' => 'cmb2-text-url cmb2-text-medium regular-text',
535
+ 'value' => $this->field->escaped_value( 'esc_url' ),
536
+ ), 'input' )->render();
537
+ }
538
+
539
+ public function text_money() {
540
+ $input = $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text', array(
541
+ 'class' => 'cmb2-text-money',
542
+ 'desc' => $this->_desc(),
543
+ ), 'input' )->render();
544
+ return ( ! $this->field->get_param_callback_result( 'before_field' ) ? '$ ' : ' ' ) . $input;
545
+ }
546
+
547
+ public function textarea_small() {
548
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Textarea', array(
549
+ 'class' => 'cmb2-textarea-small',
550
+ 'rows' => 4,
551
+ ) )->render();
552
+ }
553
+
554
+ public function textarea_code( $args = array() ) {
555
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Textarea_Code', $args )->render();
556
+ }
557
+
558
+ public function wysiwyg( $args = array() ) {
559
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Wysiwyg', $args )->render();
560
+ }
561
+
562
+ public function text_date( $args = array() ) {
563
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text_Date', $args )->render();
564
+ }
565
+
566
+ // Alias for text_date
567
+ public function text_date_timestamp( $args = array() ) {
568
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text_Date', $args )->render();
569
+ }
570
+
571
+ public function text_time( $args = array() ) {
572
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text_Time', $args )->render();
573
+ }
574
+
575
+ public function text_datetime_timestamp( $args = array() ) {
576
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text_Datetime_Timestamp', $args )->render();
577
+ }
578
+
579
+ public function text_datetime_timestamp_timezone( $args = array() ) {
580
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Text_Datetime_Timestamp_Timezone', $args )->render();
581
+ }
582
+
583
+ public function select_timezone( $args = array() ) {
584
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Select_Timezone', $args )->render();
585
+ }
586
+
587
+ public function colorpicker( $args = array(), $meta_value = '' ) {
588
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Colorpicker', $args, $meta_value )->render();
589
+ }
590
+
591
+ public function title( $args = array() ) {
592
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Title', $args )->render();
593
+ }
594
+
595
+ public function select( $args = array() ) {
596
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Select', $args )->render();
597
+ }
598
+
599
+ public function taxonomy_select( $args = array() ) {
600
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Select', $args )->render();
601
+ }
602
+
603
+ public function radio( $args = array(), $type = __FUNCTION__ ) {
604
+ return $this->get_new_render_type( $type, 'CMB2_Type_Radio', $args, $type )->render();
605
+ }
606
+
607
+ public function radio_inline( $args = array() ) {
608
+ return $this->radio( $args, __FUNCTION__ );
609
+ }
610
+
611
+ public function multicheck( $type = 'checkbox' ) {
612
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Multicheck', array(), $type )->render();
613
+ }
614
+
615
+ public function multicheck_inline() {
616
+ return $this->multicheck( 'multicheck_inline' );
617
+ }
618
+
619
+ public function checkbox( $args = array(), $is_checked = null ) {
620
+ // Avoid get_new_render_type since we need a different default for the 3rd argument than ''.
621
+ $render_class_name = $this->get_render_type_class( __FUNCTION__, 'CMB2_Type_Checkbox' );
622
+ $this->type = new $render_class_name( $this, $args, $is_checked );
623
+ return $this->type->render();
624
+ }
625
+
626
+ public function taxonomy_radio( $args = array() ) {
627
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Radio', $args )->render();
628
+ }
629
+
630
+ public function taxonomy_radio_hierarchical( $args = array() ) {
631
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Radio_Hierarchical', $args )->render();
632
+ }
633
+
634
+ public function taxonomy_radio_inline( $args = array() ) {
635
+ return $this->taxonomy_radio( $args );
636
+ }
637
+
638
+ public function taxonomy_multicheck( $args = array() ) {
639
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Multicheck', $args )->render();
640
+ }
641
+
642
+ public function taxonomy_multicheck_hierarchical( $args = array() ) {
643
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Multicheck_Hierarchical', $args )->render();
644
+ }
645
+
646
+ public function taxonomy_multicheck_inline( $args = array() ) {
647
+ return $this->taxonomy_multicheck( $args );
648
+ }
649
+
650
+ public function oembed( $args = array() ) {
651
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Oembed', $args )->render();
652
+ }
653
+
654
+ public function file_list( $args = array() ) {
655
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_File_List', $args )->render();
656
+ }
657
+
658
+ public function file( $args = array() ) {
659
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_File', $args )->render();
660
+ }
661
+
662
+ }
includes/plus-options/metabox/includes/CMB2_Utils.php ADDED
@@ -0,0 +1,669 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 Utilities
4
+ *
5
+ * @since 1.1.0
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Utils {
14
+
15
+ /**
16
+ * The WordPress ABSPATH constant.
17
+ *
18
+ * @var string
19
+ * @since 2.2.3
20
+ */
21
+ protected static $ABSPATH = ABSPATH;
22
+
23
+ /**
24
+ * The url which is used to load local resources.
25
+ *
26
+ * @var string
27
+ * @since 2.0.0
28
+ */
29
+ protected static $url = '';
30
+
31
+ /**
32
+ * Utility method that attempts to get an attachment's ID by it's url
33
+ *
34
+ * @since 1.0.0
35
+ * @param string $img_url Attachment url.
36
+ * @return int|false Attachment ID or false
37
+ */
38
+ public static function image_id_from_url( $img_url ) {
39
+ $attachment_id = 0;
40
+ $dir = wp_upload_dir();
41
+
42
+ // Is URL in uploads directory?
43
+ if ( false === strpos( $img_url, $dir['baseurl'] . '/' ) ) {
44
+ return false;
45
+ }
46
+
47
+ $file = basename( $img_url );
48
+
49
+ $query_args = array(
50
+ 'post_type' => 'attachment',
51
+ 'post_status' => 'inherit',
52
+ 'fields' => 'ids',
53
+ 'meta_query' => array(
54
+ array(
55
+ 'value' => $file,
56
+ 'compare' => 'LIKE',
57
+ 'key' => '_wp_attachment_metadata',
58
+ ),
59
+ ),
60
+ );
61
+
62
+ $query = new WP_Query( $query_args );
63
+
64
+ if ( $query->have_posts() ) {
65
+
66
+ foreach ( $query->posts as $post_id ) {
67
+ $meta = wp_get_attachment_metadata( $post_id );
68
+ $original_file = basename( $meta['file'] );
69
+ $cropped_image_files = isset( $meta['sizes'] ) ? wp_list_pluck( $meta['sizes'], 'file' ) : array();
70
+ if ( $original_file === $file || in_array( $file, $cropped_image_files ) ) {
71
+ $attachment_id = $post_id;
72
+ break;
73
+ }
74
+ }
75
+ }
76
+
77
+ return 0 === $attachment_id ? false : $attachment_id;
78
+ }
79
+
80
+ /**
81
+ * Utility method to get a combined list of default and custom registered image sizes
82
+ *
83
+ * @since 2.2.4
84
+ * @link http://core.trac.wordpress.org/ticket/18947
85
+ * @global array $_wp_additional_image_sizes
86
+ * @return array The image sizes
87
+ */
88
+ public static function get_available_image_sizes() {
89
+ global $_wp_additional_image_sizes;
90
+
91
+ $default_image_sizes = array( 'thumbnail', 'medium', 'large' );
92
+ foreach ( $default_image_sizes as $size ) {
93
+ $image_sizes[ $size ] = array(
94
+ 'height' => intval( get_option( "{$size}_size_h" ) ),
95
+ 'width' => intval( get_option( "{$size}_size_w" ) ),
96
+ 'crop' => get_option( "{$size}_crop" ) ? get_option( "{$size}_crop" ) : false,
97
+ );
98
+ }
99
+
100
+ if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) ) {
101
+ $image_sizes = array_merge( $image_sizes, $_wp_additional_image_sizes );
102
+ }
103
+
104
+ return $image_sizes;
105
+ }
106
+
107
+ /**
108
+ * Utility method to return the closest named size from an array of values
109
+ *
110
+ * Based off of WordPress's image_get_intermediate_size()
111
+ * If the size matches an existing size then it will be used. If there is no
112
+ * direct match, then the nearest image size larger than the specified size
113
+ * will be used. If nothing is found, then the function will return false.
114
+ * Uses get_available_image_sizes() to get all available sizes.
115
+ *
116
+ * @since 2.2.4
117
+ * @param array|string $size Image size. Accepts an array of width and height (in that order).
118
+ * @return false|string Named image size e.g. 'thumbnail'
119
+ */
120
+ public static function get_named_size( $size ) {
121
+ $data = array();
122
+
123
+ // Find the best match when '$size' is an array.
124
+ if ( is_array( $size ) ) {
125
+ $image_sizes = self::get_available_image_sizes();
126
+ $candidates = array();
127
+
128
+ foreach ( $image_sizes as $_size => $data ) {
129
+
130
+ // If there's an exact match to an existing image size, short circuit.
131
+ if ( $data['width'] == $size[0] && $data['height'] == $size[1] ) {
132
+ $candidates[ $data['width'] * $data['height'] ] = array( $_size, $data );
133
+ break;
134
+ }
135
+
136
+ // If it's not an exact match, consider larger sizes with the same aspect ratio.
137
+ if ( $data['width'] >= $size[0] && $data['height'] >= $size[1] ) {
138
+
139
+ /**
140
+ * To test for varying crops, we constrain the dimensions of the larger image
141
+ * to the dimensions of the smaller image and see if they match.
142
+ */
143
+ if ( $data['width'] > $size[0] ) {
144
+ $constrained_size = wp_constrain_dimensions( $data['width'], $data['height'], $size[0] );
145
+ $expected_size = array( $size[0], $size[1] );
146
+ } else {
147
+ $constrained_size = wp_constrain_dimensions( $size[0], $size[1], $data['width'] );
148
+ $expected_size = array( $data['width'], $data['height'] );
149
+ }
150
+
151
+ // If the image dimensions are within 1px of the expected size, we consider it a match.
152
+ $matched = ( abs( $constrained_size[0] - $expected_size[0] ) <= 1 && abs( $constrained_size[1] - $expected_size[1] ) <= 1 );
153
+
154
+ if ( $matched ) {
155
+ $candidates[ $data['width'] * $data['height'] ] = array( $_size, $data );
156
+ }
157
+ }
158
+ }
159
+
160
+ if ( ! empty( $candidates ) ) {
161
+ // Sort the array by size if we have more than one candidate.
162
+ if ( 1 < count( $candidates ) ) {
163
+ ksort( $candidates );
164
+ }
165
+
166
+ $data = array_shift( $candidates );
167
+ $data = $data[0];
168
+ } elseif ( ! empty( $image_sizes['thumbnail'] ) && $image_sizes['thumbnail']['width'] >= $size[0] && $image_sizes['thumbnail']['width'] >= $size[1] ) {
169
+ /*
170
+ * When the size requested is smaller than the thumbnail dimensions, we
171
+ * fall back to the thumbnail size.
172
+ */
173
+ $data = 'thumbnail';
174
+ } else {
175
+ return false;
176
+ }
177
+ } elseif ( ! empty( $image_sizes[ $size ] ) ) {
178
+ $data = $size;
179
+ }// End if.
180
+
181
+ // If we still don't have a match at this point, return false.
182
+ if ( empty( $data ) ) {
183
+ return false;
184
+ }
185
+
186
+ return $data;
187
+ }
188
+
189
+ /**
190
+ * Utility method that returns time string offset by timezone
191
+ *
192
+ * @since 1.0.0
193
+ * @param string $tzstring Time string.
194
+ * @return string Offset time string
195
+ */
196
+ public static function timezone_offset( $tzstring ) {
197
+ $tz_offset = 0;
198
+
199
+ if ( ! empty( $tzstring ) && is_string( $tzstring ) ) {
200
+ if ( 'UTC' === substr( $tzstring, 0, 3 ) ) {
201
+ $tzstring = str_replace( array( ':15', ':30', ':45' ), array( '.25', '.5', '.75' ), $tzstring );
202
+ return intval( floatval( substr( $tzstring, 3 ) ) * HOUR_IN_SECONDS );
203
+ }
204
+
205
+ try {
206
+ $date_time_zone_selected = new DateTimeZone( $tzstring );
207
+ $tz_offset = timezone_offset_get( $date_time_zone_selected, date_create() );
208
+ } catch ( Exception $e ) {
209
+ self::log_if_debug( __METHOD__, __LINE__, $e->getMessage() );
210
+ }
211
+ }
212
+
213
+ return $tz_offset;
214
+ }
215
+
216
+ /**
217
+ * Utility method that returns a timezone string representing the default timezone for the site.
218
+ *
219
+ * Roughly copied from WordPress, as get_option('timezone_string') will return
220
+ * an empty string if no value has been set on the options page.
221
+ * A timezone string is required by the wp_timezone_choice() used by the
222
+ * select_timezone field.
223
+ *
224
+ * @since 1.0.0
225
+ * @return string Timezone string
226
+ */
227
+ public static function timezone_string() {
228
+ $current_offset = get_option( 'gmt_offset' );
229
+ $tzstring = get_option( 'timezone_string' );
230
+
231
+ // Remove old Etc mappings. Fallback to gmt_offset.
232
+ if ( false !== strpos( $tzstring, 'Etc/GMT' ) ) {
233
+ $tzstring = '';
234
+ }
235
+
236
+ if ( empty( $tzstring ) ) { // Create a UTC+- zone if no timezone string exists.
237
+ if ( 0 == $current_offset ) {
238
+ $tzstring = 'UTC+0';
239
+ } elseif ( $current_offset < 0 ) {
240
+ $tzstring = 'UTC' . $current_offset;
241
+ } else {
242
+ $tzstring = 'UTC+' . $current_offset;
243
+ }
244
+ }
245
+
246
+ return $tzstring;
247
+ }
248
+
249
+ /**
250
+ * Returns a timestamp, first checking if value already is a timestamp.
251
+ *
252
+ * @since 2.0.0
253
+ * @param string|int $string Possible timestamp string.
254
+ * @return int Time stamp.
255
+ */
256
+ public static function make_valid_time_stamp( $string ) {
257
+ if ( ! $string ) {
258
+ return 0;
259
+ }
260
+
261
+ return self::is_valid_time_stamp( $string )
262
+ ? (int) $string :
263
+ strtotime( (string) $string );
264
+ }
265
+
266
+ /**
267
+ * Determine if a value is a valid timestamp
268
+ *
269
+ * @since 2.0.0
270
+ * @param mixed $timestamp Value to check.
271
+ * @return boolean Whether value is a valid timestamp
272
+ */
273
+ public static function is_valid_time_stamp( $timestamp ) {
274
+ return (string) (int) $timestamp === (string) $timestamp
275
+ && $timestamp <= PHP_INT_MAX
276
+ && $timestamp >= ~PHP_INT_MAX;
277
+ }
278
+
279
+ /**
280
+ * Checks if a value is 'empty'. Still accepts 0.
281
+ *
282
+ * @since 2.0.0
283
+ * @param mixed $value Value to check.
284
+ * @return bool True or false
285
+ */
286
+ public static function isempty( $value ) {
287
+ return null === $value || '' === $value || false === $value || array() === $value;
288
+ }
289
+
290
+ /**
291
+ * Checks if a value is not 'empty'. 0 doesn't count as empty.
292
+ *
293
+ * @since 2.2.2
294
+ * @param mixed $value Value to check.
295
+ * @return bool True or false
296
+ */
297
+ public static function notempty( $value ) {
298
+ return null !== $value && '' !== $value && false !== $value && array() !== $value;
299
+ }
300
+
301
+ /**
302
+ * Filters out empty values (not including 0).
303
+ *
304
+ * @since 2.2.2
305
+ * @param mixed $value Value to check.
306
+ * @return array True or false.
307
+ */
308
+ public static function filter_empty( $value ) {
309
+ return array_filter( $value, array( __CLASS__, 'notempty' ) );
310
+ }
311
+
312
+ /**
313
+ * Insert a single array item inside another array at a set position
314
+ *
315
+ * @since 2.0.2
316
+ * @param array $array Array to modify. Is passed by reference, and no return is needed. Passed by reference.
317
+ * @param array $new New array to insert.
318
+ * @param int $position Position in the main array to insert the new array.
319
+ */
320
+ public static function array_insert( &$array, $new, $position ) {
321
+ $before = array_slice( $array, 0, $position - 1 );
322
+ $after = array_diff_key( $array, $before );
323
+ $array = array_merge( $before, $new, $after );
324
+ }
325
+
326
+ /**
327
+ * Defines the url which is used to load local resources.
328
+ * This may need to be filtered for local Window installations.
329
+ * If resources do not load, please check the wiki for details.
330
+ *
331
+ * @since 1.0.1
332
+ *
333
+ * @param string $path URL path.
334
+ * @return string URL to CMB2 resources
335
+ */
336
+ public static function url( $path = '' ) {
337
+ if ( self::$url ) {
338
+ return self::$url . $path;
339
+ }
340
+
341
+ $cmb2_url = self::get_url_from_dir( cmb2_dir() );
342
+
343
+ /**
344
+ * Filter the CMB location url.
345
+ *
346
+ * @param string $cmb2_url Currently registered url.
347
+ */
348
+ self::$url = trailingslashit( apply_filters( 'cmb2_meta_box_url', $cmb2_url, CMB2_VERSION ) );
349
+
350
+ return self::$url . $path;
351
+ }
352
+
353
+ /**
354
+ * Converts a system path to a URL
355
+ *
356
+ * @since 2.2.2
357
+ * @param string $dir Directory path to convert.
358
+ * @return string Converted URL.
359
+ */
360
+ public static function get_url_from_dir( $dir ) {
361
+ $dir = self::normalize_path( $dir );
362
+
363
+ // Let's test if We are in the plugins or mu-plugins dir.
364
+ $test_dir = trailingslashit( $dir ) . 'unneeded.php';
365
+ if (
366
+ 0 === strpos( $test_dir, self::normalize_path( WPMU_PLUGIN_DIR ) )
367
+ || 0 === strpos( $test_dir, self::normalize_path( WP_PLUGIN_DIR ) )
368
+ ) {
369
+ // Ok, then use plugins_url, as it is more reliable.
370
+ return trailingslashit( plugins_url( '', $test_dir ) );
371
+ }
372
+
373
+ // Ok, now let's test if we are in the theme dir.
374
+ $theme_root = self::normalize_path( get_theme_root() );
375
+ if ( 0 === strpos( $dir, $theme_root ) ) {
376
+ // Ok, then use get_theme_root_uri.
377
+ return set_url_scheme(
378
+ trailingslashit(
379
+ str_replace(
380
+ untrailingslashit( $theme_root ),
381
+ untrailingslashit( get_theme_root_uri() ),
382
+ $dir
383
+ )
384
+ )
385
+ );
386
+ }
387
+
388
+ // Check to see if it's anywhere in the root directory.
389
+ $site_dir = self::get_normalized_abspath();
390
+ $site_url = trailingslashit( is_multisite() ? network_site_url() : site_url() );
391
+
392
+ $url = str_replace(
393
+ array( $site_dir, WP_PLUGIN_DIR ),
394
+ array( $site_url, WP_PLUGIN_URL ),
395
+ $dir
396
+ );
397
+
398
+ return set_url_scheme( $url );
399
+ }
400
+
401
+ /**
402
+ * Get the normalized absolute path defined by WordPress.
403
+ *
404
+ * @since 2.2.6
405
+ *
406
+ * @return string Normalized absolute path.
407
+ */
408
+ protected static function get_normalized_abspath() {
409
+ return self::normalize_path( self::$ABSPATH );
410
+ }
411
+
412
+ /**
413
+ * `wp_normalize_path` wrapper for back-compat. Normalize a filesystem path.
414
+ *
415
+ * On windows systems, replaces backslashes with forward slashes
416
+ * and forces upper-case drive letters.
417
+ * Allows for two leading slashes for Windows network shares, but
418
+ * ensures that all other duplicate slashes are reduced to a single.
419
+ *
420
+ * @since 2.2.0
421
+ *
422
+ * @param string $path Path to normalize.
423
+ * @return string Normalized path.
424
+ */
425
+ protected static function normalize_path( $path ) {
426
+ if ( function_exists( 'wp_normalize_path' ) ) {
427
+ return wp_normalize_path( $path );
428
+ }
429
+
430
+ // Replace newer WP's version of wp_normalize_path.
431
+ $path = str_replace( '\\', '/', $path );
432
+ $path = preg_replace( '|(?<=.)/+|', '/', $path );
433
+ if ( ':' === substr( $path, 1, 1 ) ) {
434
+ $path = ucfirst( $path );
435
+ }
436
+
437
+ return $path;
438
+ }
439
+
440
+ /**
441
+ * Get timestamp from text date
442
+ *
443
+ * @since 2.2.0
444
+ * @param string $value Date value.
445
+ * @param string $date_format Expected date format.
446
+ * @return mixed Unix timestamp representing the date.
447
+ */
448
+ public static function get_timestamp_from_value( $value, $date_format ) {
449
+ $date_object = date_create_from_format( $date_format, $value );
450
+ return $date_object ? $date_object->setTime( 0, 0, 0 )->getTimeStamp() : strtotime( $value );
451
+ }
452
+
453
+ /**
454
+ * Takes a php date() format string and returns a string formatted to suit for the date/time pickers
455
+ * It will work only with the following subset of date() options:
456
+ *
457
+ * Formats: d, l, j, z, m, F, n, y, and Y.
458
+ *
459
+ * A slight effort is made to deal with escaped characters.
460
+ *
461
+ * Other options are ignored, because they would either bring compatibility problems between PHP and JS, or
462
+ * bring even more translation troubles.
463
+ *
464
+ * @since 2.2.0
465
+ * @param string $format PHP date format.
466
+ * @return string reformatted string
467
+ */
468
+ public static function php_to_js_dateformat( $format ) {
469
+
470
+ // order is relevant here, since the replacement will be done sequentially.
471
+ $supported_options = array(
472
+ 'd' => 'dd', // Day, leading 0.
473
+ 'j' => 'd', // Day, no 0.
474
+ 'z' => 'o', // Day of the year, no leading zeroes.
475
+ // 'D' => 'D', // Day name short, not sure how it'll work with translations.
476
+ 'l ' => 'DD ', // Day name full, idem before.
477
+ 'l, ' => 'DD, ', // Day name full, idem before.
478
+ 'm' => 'mm', // Month of the year, leading 0.
479
+ 'n' => 'm', // Month of the year, no leading 0.
480
+ // 'M' => 'M', // Month, Short name.
481
+ 'F ' => 'MM ', // Month, full name.
482
+ 'F, ' => 'MM, ', // Month, full name.
483
+ 'y' => 'y', // Year, two digit.
484
+ 'Y' => 'yy', // Year, full.
485
+ 'H' => 'HH', // Hour with leading 0 (24 hour).
486
+ 'G' => 'H', // Hour with no leading 0 (24 hour).
487
+ 'h' => 'hh', // Hour with leading 0 (12 hour).
488
+ 'g' => 'h', // Hour with no leading 0 (12 hour).
489
+ 'i' => 'mm', // Minute with leading 0.
490
+ 's' => 'ss', // Second with leading 0.
491
+ 'a' => 'tt', // am/pm.
492
+ 'A' => 'TT', // AM/PM.
493
+ );
494
+
495
+ foreach ( $supported_options as $php => $js ) {
496
+ // replaces every instance of a supported option, but skips escaped characters.
497
+ $format = preg_replace( "~(?<!\\\\)$php~", $js, $format );
498
+ }
499
+
500
+ $supported_options = array(
501
+ 'l' => 'DD', // Day name full, idem before.
502
+ 'F' => 'MM', // Month, full name.
503
+ );
504
+
505
+ if ( isset( $supported_options[ $format ] ) ) {
506
+ $format = $supported_options[ $format ];
507
+ }
508
+
509
+ $format = preg_replace_callback( '~(?:\\\.)+~', array( __CLASS__, 'wrap_escaped_chars' ), $format );
510
+
511
+ return $format;
512
+ }
513
+
514
+ /**
515
+ * Helper function for CMB_Utils::php_to_js_dateformat().
516
+ *
517
+ * @since 2.2.0
518
+ * @param string $value Value to wrap/escape.
519
+ * @return string Modified value
520
+ */
521
+ public static function wrap_escaped_chars( $value ) {
522
+ return '&#39;' . str_replace( '\\', '', $value[0] ) . '&#39;';
523
+ }
524
+
525
+ /**
526
+ * Send to debug.log if WP_DEBUG is defined and true
527
+ *
528
+ * @since 2.2.0
529
+ *
530
+ * @param string $function Function name.
531
+ * @param int $line Line number.
532
+ * @param mixed $msg Message to output.
533
+ * @param mixed $debug Variable to print_r.
534
+ */
535
+ public static function log_if_debug( $function, $line, $msg, $debug = null ) {
536
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
537
+ error_log( "In $function, $line:" . print_r( $msg, true ) . ( $debug ? print_r( $debug, true ) : '' ) );
538
+ }
539
+ }
540
+
541
+ /**
542
+ * Determine a file's extension
543
+ *
544
+ * @since 1.0.0
545
+ * @param string $file File url.
546
+ * @return string|false File extension or false
547
+ */
548
+ public static function get_file_ext( $file ) {
549
+ $parsed = parse_url( $file, PHP_URL_PATH );
550
+ return $parsed ? strtolower( pathinfo( $parsed, PATHINFO_EXTENSION ) ) : false;
551
+ }
552
+
553
+ /**
554
+ * Get the file name from a url
555
+ *
556
+ * @since 2.0.0
557
+ * @param string $value File url or path.
558
+ * @return string File name
559
+ */
560
+ public static function get_file_name_from_path( $value ) {
561
+ $parts = explode( '/', $value );
562
+ return is_array( $parts ) ? end( $parts ) : $value;
563
+ }
564
+
565
+ /**
566
+ * Check if WP version is at least $version.
567
+ *
568
+ * @since 2.2.2
569
+ * @param string $version WP version string to compare.
570
+ * @return bool Result of comparison check.
571
+ */
572
+ public static function wp_at_least( $version ) {
573
+ return version_compare( get_bloginfo( 'version' ), $version, '>=' );
574
+ }
575
+
576
+ /**
577
+ * Combines attributes into a string for a form element.
578
+ *
579
+ * @since 1.1.0
580
+ * @param array $attrs Attributes to concatenate.
581
+ * @param array $attr_exclude Attributes that should NOT be concatenated.
582
+ * @return string String of attributes for form element.
583
+ */
584
+ public static function concat_attrs( $attrs, $attr_exclude = array() ) {
585
+ $attr_exclude[] = 'rendered';
586
+ $attr_exclude[] = 'js_dependencies';
587
+
588
+ $attributes = '';
589
+ foreach ( $attrs as $attr => $val ) {
590
+ $excluded = in_array( $attr, (array) $attr_exclude, true );
591
+ $empty = false === $val && 'value' !== $attr;
592
+ if ( ! $excluded && ! $empty ) {
593
+ // if data attribute, use single quote wraps, else double.
594
+ $quotes = self::is_data_attribute( $attr ) ? "'" : '"';
595
+ $attributes .= sprintf( ' %1$s=%3$s%2$s%3$s', $attr, $val, $quotes );
596
+ }
597
+ }
598
+ return $attributes;
599
+ }
600
+
601
+ /**
602
+ * Check if given attribute is a data attribute.
603
+ *
604
+ * @since 2.2.5
605
+ *
606
+ * @param string $att HTML attribute.
607
+ * @return boolean
608
+ */
609
+ public static function is_data_attribute( $att ) {
610
+ return 0 === stripos( $att, 'data-' );
611
+ }
612
+
613
+ /**
614
+ * Ensures value is an array.
615
+ *
616
+ * @since 2.2.3
617
+ *
618
+ * @param mixed $value Value to ensure is array.
619
+ * @param array $default Default array. Defaults to empty array.
620
+ *
621
+ * @return array The array.
622
+ */
623
+ public static function ensure_array( $value, $default = array() ) {
624
+ if ( empty( $value ) ) {
625
+ return $default;
626
+ }
627
+
628
+ if ( is_array( $value ) || is_object( $value ) ) {
629
+ return (array) $value;
630
+ }
631
+
632
+ // Not sure anything would be non-scalar that is not an array or object?
633
+ if ( ! is_scalar( $value ) ) {
634
+ return $default;
635
+ }
636
+
637
+ return (array) $value;
638
+ }
639
+
640
+ /**
641
+ * If number is numeric, normalize it with floatval or intval, depending on if decimal is found.
642
+ *
643
+ * @since 2.2.6
644
+ *
645
+ * @param mixed $value Value to normalize (if numeric).
646
+ * @return mixed Possibly normalized value.
647
+ */
648
+ public static function normalize_if_numeric( $value ) {
649
+ if ( is_numeric( $value ) ) {
650
+ $value = false !== strpos( $value, '.' ) ? floatval( $value ) : intval( $value );
651
+ }
652
+
653
+ return $value;
654
+ }
655
+
656
+ /**
657
+ * Generates a 12 character unique hash from a string.
658
+ *
659
+ * @since 2.4.0
660
+ *
661
+ * @param string $string String to create a hash from.
662
+ *
663
+ * @return string
664
+ */
665
+ public static function generate_hash( $string ) {
666
+ return substr( base_convert( md5( $string ), 16, 32 ), 0, 12 );
667
+ }
668
+
669
+ }
includes/plus-options/metabox/includes/CMB2_hookup.php ADDED
@@ -0,0 +1,933 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles hooking CMB2 forms/metaboxes into the post/attachement/user screens
4
+ * and handles hooking in and saving those fields.
5
+ *
6
+ * @since 2.0.0
7
+ *
8
+ * @category WordPress_Plugin
9
+ * @package CMB2
10
+ * @author CMB2 team
11
+ * @license GPL-2.0+
12
+ * @link https://cmb2.io
13
+ */
14
+ class CMB2_hookup extends CMB2_Hookup_Base {
15
+
16
+ /**
17
+ * Only allow JS registration once
18
+ *
19
+ * @var bool
20
+ * @since 2.0.7
21
+ */
22
+ protected static $js_registration_done = false;
23
+
24
+ /**
25
+ * Only allow CSS registration once
26
+ *
27
+ * @var bool
28
+ * @since 2.0.7
29
+ */
30
+ protected static $css_registration_done = false;
31
+
32
+ /**
33
+ * CMB taxonomies array for term meta
34
+ *
35
+ * @var array
36
+ * @since 2.2.0
37
+ */
38
+ protected $taxonomies = array();
39
+
40
+ /**
41
+ * Custom field columns.
42
+ *
43
+ * @var array
44
+ * @since 2.2.2
45
+ */
46
+ protected $columns = array();
47
+
48
+ /**
49
+ * Array of CMB2_Options_Hookup instances if options page metabox.
50
+ *
51
+ * @var CMB2_Options_Hookup[]|null
52
+ * @since 2.2.5
53
+ */
54
+ protected $options_hookup = null;
55
+
56
+ /**
57
+ * A functionalized constructor, used for the hookup action callbacks.
58
+ *
59
+ * @since 2.2.6
60
+ *
61
+ * @param CMB2 $cmb The CMB2 object to hookup.
62
+ *
63
+ * @return CMB2_Hookup_Base $hookup The hookup object.
64
+ */
65
+ public static function maybe_init_and_hookup( CMB2 $cmb ) {
66
+ if ( $cmb->prop( 'hookup' ) ) {
67
+
68
+ $hookup = new self( $cmb );
69
+
70
+ // Hook in the hookup... how meta.
71
+ return $hookup->universal_hooks();
72
+ }
73
+
74
+ return false;
75
+ }
76
+
77
+ public function universal_hooks() {
78
+ foreach ( get_class_methods( 'CMB2_Show_Filters' ) as $filter ) {
79
+ add_filter( 'cmb2_show_on', array( 'CMB2_Show_Filters', $filter ), 10, 3 );
80
+ }
81
+
82
+ if ( is_admin() ) {
83
+ // Register our scripts and styles for cmb.
84
+ $this->once( 'admin_enqueue_scripts', array( __CLASS__, 'register_scripts' ), 8 );
85
+ $this->once( 'admin_enqueue_scripts', array( $this, 'do_scripts' ) );
86
+
87
+ $this->maybe_enqueue_column_display_styles();
88
+
89
+ switch ( $this->object_type ) {
90
+ case 'post':
91
+ return $this->post_hooks();
92
+ case 'comment':
93
+ return $this->comment_hooks();
94
+ case 'user':
95
+ return $this->user_hooks();
96
+ case 'term':
97
+ return $this->term_hooks();
98
+ case 'options-page':
99
+ return $this->options_page_hooks();
100
+ }
101
+ }
102
+
103
+ return $this;
104
+ }
105
+
106
+ public function post_hooks() {
107
+
108
+ // Fetch the context we set in our call.
109
+ $context = $this->cmb->prop( 'context' ) ? $this->cmb->prop( 'context' ) : 'normal';
110
+
111
+ // Call the proper hook based on the context provided.
112
+ switch ( $context ) {
113
+
114
+ case 'form_top':
115
+ add_action( 'edit_form_top', array( $this, 'add_context_metaboxes' ) );
116
+ break;
117
+
118
+ case 'before_permalink':
119
+ add_action( 'edit_form_before_permalink', array( $this, 'add_context_metaboxes' ) );
120
+ break;
121
+
122
+ case 'after_title':
123
+ add_action( 'edit_form_after_title', array( $this, 'add_context_metaboxes' ) );
124
+ break;
125
+
126
+ case 'after_editor':
127
+ add_action( 'edit_form_after_editor', array( $this, 'add_context_metaboxes' ) );
128
+ break;
129
+
130
+ default:
131
+ add_action( 'add_meta_boxes', array( $this, 'add_metaboxes' ) );
132
+ }
133
+
134
+ add_action( 'add_meta_boxes', array( $this, 'remove_default_tax_metaboxes' ) );
135
+ add_action( 'add_attachment', array( $this, 'save_post' ) );
136
+ add_action( 'edit_attachment', array( $this, 'save_post' ) );
137
+ add_action( 'save_post', array( $this, 'save_post' ), 10, 2 );
138
+
139
+ if ( $this->cmb->has_columns ) {
140
+ foreach ( $this->cmb->box_types() as $post_type ) {
141
+ add_filter( "manage_{$post_type}_posts_columns", array( $this, 'register_column_headers' ) );
142
+ add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'column_display' ), 10, 2 );
143
+ }
144
+ }
145
+
146
+ return $this;
147
+ }
148
+
149
+ public function comment_hooks() {
150
+ add_action( 'add_meta_boxes_comment', array( $this, 'add_metaboxes' ) );
151
+ add_action( 'edit_comment', array( $this, 'save_comment' ) );
152
+
153
+ if ( $this->cmb->has_columns ) {
154
+ add_filter( 'manage_edit-comments_columns', array( $this, 'register_column_headers' ) );
155
+ add_action( 'manage_comments_custom_column', array( $this, 'column_display' ), 10, 3 );
156
+ }
157
+
158
+ return $this;
159
+ }
160
+
161
+ public function user_hooks() {
162
+ $priority = $this->get_priority();
163
+
164
+ add_action( 'show_user_profile', array( $this, 'user_metabox' ), $priority );
165
+ add_action( 'edit_user_profile', array( $this, 'user_metabox' ), $priority );
166
+ add_action( 'user_new_form', array( $this, 'user_new_metabox' ), $priority );
167
+
168
+ add_action( 'personal_options_update', array( $this, 'save_user' ) );
169
+ add_action( 'edit_user_profile_update', array( $this, 'save_user' ) );
170
+ add_action( 'user_register', array( $this, 'save_user' ) );
171
+
172
+ if ( $this->cmb->has_columns ) {
173
+ add_filter( 'manage_users_columns', array( $this, 'register_column_headers' ) );
174
+ add_filter( 'manage_users_custom_column', array( $this, 'return_column_display' ), 10, 3 );
175
+ }
176
+
177
+ return $this;
178
+ }
179
+
180
+ public function term_hooks() {
181
+ if ( ! function_exists( 'get_term_meta' ) ) {
182
+ wp_die( esc_html__( 'Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress install.', 'cmb2' ) );
183
+ }
184
+
185
+ if ( ! $this->cmb->prop( 'taxonomies' ) ) {
186
+ wp_die( esc_html__( 'Term metaboxes configuration requires a "taxonomies" parameter.', 'cmb2' ) );
187
+ }
188
+
189
+ $this->taxonomies = (array) $this->cmb->prop( 'taxonomies' );
190
+ $show_on_term_add = $this->cmb->prop( 'new_term_section' );
191
+ $priority = $this->get_priority( 8 );
192
+
193
+ foreach ( $this->taxonomies as $taxonomy ) {
194
+ // Display our form data.
195
+ add_action( "{$taxonomy}_edit_form", array( $this, 'term_metabox' ), $priority, 2 );
196
+
197
+ $show_on_add = is_array( $show_on_term_add )
198
+ ? in_array( $taxonomy, $show_on_term_add )
199
+ : (bool) $show_on_term_add;
200
+
201
+ /**
202
+ * Filter to determine if the term's fields should show in the "Add term" section.
203
+ *
204
+ * The dynamic portion of the hook name, $cmb_id, is the metabox id.
205
+ *
206
+ * @param bool $show_on_add Default is the value of the new_term_section cmb parameter.
207
+ * @param object $cmb The CMB2 instance
208
+ */
209
+ $show_on_add = apply_filters( "cmb2_show_on_term_add_form_{$this->cmb->cmb_id}", $show_on_add, $this->cmb );
210
+
211
+ // Display form in add-new section (unless specified not to).
212
+ if ( $show_on_add ) {
213
+ add_action( "{$taxonomy}_add_form_fields", array( $this, 'term_metabox' ), $priority, 2 );
214
+ }
215
+
216
+ if ( $this->cmb->has_columns ) {
217
+ add_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'register_column_headers' ) );
218
+ add_filter( "manage_{$taxonomy}_custom_column", array( $this, 'return_column_display' ), 10, 3 );
219
+ }
220
+ }
221
+
222
+ add_action( 'created_term', array( $this, 'save_term' ), 10, 3 );
223
+ add_action( 'edited_terms', array( $this, 'save_term' ), 10, 2 );
224
+ add_action( 'delete_term', array( $this, 'delete_term' ), 10, 3 );
225
+
226
+ return $this;
227
+ }
228
+
229
+ public function options_page_hooks() {
230
+ $option_keys = $this->cmb->options_page_keys();
231
+
232
+ if ( ! empty( $option_keys ) ) {
233
+ foreach ( $option_keys as $option_key ) {
234
+ $this->options_hookup[ $option_key ] = new CMB2_Options_Hookup( $this->cmb, $option_key );
235
+ $this->options_hookup[ $option_key ]->hooks();
236
+ }
237
+ }
238
+
239
+ return $this;
240
+ }
241
+
242
+ /**
243
+ * Registers styles for CMB2
244
+ *
245
+ * @since 2.0.7
246
+ */
247
+ protected static function register_styles() {
248
+ if ( self::$css_registration_done ) {
249
+ return;
250
+ }
251
+
252
+ // Only use minified files if SCRIPT_DEBUG is off.
253
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
254
+ $front = is_admin() ? '' : '-front';
255
+ $rtl = is_rtl() ? '-rtl' : '';
256
+
257
+ /**
258
+ * Filters the registered style dependencies for the cmb2 stylesheet.
259
+ *
260
+ * @param array $dependencies The registered style dependencies for the cmb2 stylesheet.
261
+ */
262
+ $dependencies = apply_filters( 'cmb2_style_dependencies', array() );
263
+ wp_register_style( 'cmb2-styles', CMB2_Utils::url( "css/cmb2{$front}{$rtl}{$min}.css" ), $dependencies );
264
+ wp_register_style( 'cmb2-display-styles', CMB2_Utils::url( "css/cmb2-display{$rtl}{$min}.css" ), $dependencies );
265
+
266
+ self::$css_registration_done = true;
267
+ }
268
+
269
+ /**
270
+ * Registers scripts for CMB2
271
+ *
272
+ * @since 2.0.7
273
+ */
274
+ protected static function register_js() {
275
+ if ( self::$js_registration_done ) {
276
+ return;
277
+ }
278
+
279
+ $hook = is_admin() ? 'admin_footer' : 'wp_footer';
280
+ add_action( $hook, array( 'CMB2_JS', 'enqueue' ), 8 );
281
+
282
+ self::$js_registration_done = true;
283
+ }
284
+
285
+ /**
286
+ * Registers scripts and styles for CMB2
287
+ *
288
+ * @since 1.0.0
289
+ */
290
+ public static function register_scripts() {
291
+ self::register_styles();
292
+ self::register_js();
293
+ }
294
+
295
+ /**
296
+ * Enqueues scripts and styles for CMB2 in admin_head.
297
+ *
298
+ * @since 1.0.0
299
+ *
300
+ * @param string $hook Current hook for the admin page.
301
+ */
302
+ public function do_scripts( $hook ) {
303
+ $hooks = array(
304
+ 'post.php',
305
+ 'post-new.php',
306
+ 'page-new.php',
307
+ 'page.php',
308
+ 'comment.php',
309
+ 'edit-tags.php',
310
+ 'term.php',
311
+ 'user-new.php',
312
+ 'profile.php',
313
+ 'user-edit.php',
314
+ );
315
+ // only pre-enqueue our scripts/styles on the proper pages
316
+ // show_form_for_type will have us covered if we miss something here.
317
+ if ( in_array( $hook, $hooks, true ) ) {
318
+ if ( $this->cmb->prop( 'cmb_styles' ) ) {
319
+ self::enqueue_cmb_css();
320
+ }
321
+ if ( $this->cmb->prop( 'enqueue_js' ) ) {
322
+ self::enqueue_cmb_js();
323
+ }
324
+ }
325
+ }
326
+
327
+ /**
328
+ * Register the CMB2 field column headers.
329
+ *
330
+ * @since 2.2.2
331
+ *
332
+ * @param array $columns Array of columns available for the admin page.
333
+ */
334
+ public function register_column_headers( $columns ) {
335
+ $fields = $this->cmb->prop( 'fields' );
336
+
337
+ foreach ( $fields as $key => $field ) {
338
+ if ( ! isset( $field['column'] ) ) {
339
+ continue;
340
+ }
341
+
342
+ $column = $field['column'];
343
+
344
+ if ( false === $column['position'] ) {
345
+
346
+ $columns[ $field['id'] ] = $column['name'];
347
+
348
+ } else {
349
+
350
+ $before = array_slice( $columns, 0, absint( $column['position'] ) );
351
+ $before[ $field['id'] ] = $column['name'];
352
+ $columns = $before + $columns;
353
+ }
354
+
355
+ $column['field'] = $field;
356
+ $this->columns[ $field['id'] ] = $column;
357
+ }
358
+
359
+ return $columns;
360
+ }
361
+
362
+ /**
363
+ * The CMB2 field column display output.
364
+ *
365
+ * @since 2.2.2
366
+ *
367
+ * @param string $column_name Current column name.
368
+ * @param mixed $object_id Current object ID.
369
+ */
370
+ public function column_display( $column_name, $object_id ) {
371
+ if ( isset( $this->columns[ $column_name ] ) ) {
372
+ $field = new CMB2_Field( array(
373
+ 'field_args' => $this->columns[ $column_name ]['field'],
374
+ 'object_type' => $this->object_type,
375
+ 'object_id' => $this->cmb->object_id( $object_id ),
376
+ 'cmb_id' => $this->cmb->cmb_id,
377
+ ) );
378
+
379
+ $this->cmb->get_field( $field )->render_column();
380
+ }
381
+ }
382
+
383
+ /**
384
+ * Returns the column display.
385
+ *
386
+ * @since 2.2.2
387
+ */
388
+ public function return_column_display( $empty, $custom_column, $object_id ) {
389
+ ob_start();
390
+ $this->column_display( $custom_column, $object_id );
391
+ $column = ob_get_clean();
392
+
393
+ return $column ? $column : $empty;
394
+ }
395
+
396
+ /**
397
+ * Output the CMB2 box/fields in an alternate context (not in a standard metabox area).
398
+ *
399
+ * @since 2.2.4
400
+ */
401
+ public function add_context_metaboxes() {
402
+
403
+ if ( ! $this->show_on() ) {
404
+ return;
405
+ }
406
+
407
+ $page = get_current_screen()->id;
408
+
409
+ foreach ( $this->cmb->box_types() as $object_type ) {
410
+ $screen = convert_to_screen( $object_type );
411
+
412
+ // If we're on the right post-type/object...
413
+ if ( isset( $screen->id ) && $screen->id === $page ) {
414
+
415
+ // Show the box.
416
+ $this->output_context_metabox();
417
+ }
418
+ }
419
+ }
420
+
421
+ /**
422
+ * Output the CMB2 box/fields in an alternate context (not in a standard metabox area).
423
+ *
424
+ * @since 2.2.4
425
+ */
426
+ public function output_context_metabox() {
427
+ $title = $this->cmb->prop( 'title' );
428
+
429
+ /*
430
+ * To keep from outputting the open/close markup, do not include
431
+ * a 'title' property in your metabox registration array.
432
+ *
433
+ * To output the fields 'naked' (without a postbox wrapper/style), then
434
+ * add a `'remove_box_wrap' => true` to your metabox registration array.
435
+ */
436
+ $add_wrap = ! empty( $title ) || ! $this->cmb->prop( 'remove_box_wrap' );
437
+ $add_handle = $add_wrap && ! empty( $title );
438
+
439
+ // Open the context-box wrap.
440
+ $this->context_box_title_markup_open( $add_handle );
441
+
442
+ // Show the form fields.
443
+ $this->cmb->show_form();
444
+
445
+ // Close the context-box wrap.
446
+ $this->context_box_title_markup_close( $add_handle );
447
+ }
448
+
449
+ /**
450
+ * Output the opening markup for a context box.
451
+ *
452
+ * @since 2.2.4
453
+ * @param bool $add_handle Whether to add the metabox handle and opening div for .inside.
454
+ */
455
+ public function context_box_title_markup_open( $add_handle = true ) {
456
+ $title = $this->cmb->prop( 'title' );
457
+
458
+ $page = get_current_screen()->id;
459
+ add_filter( "postbox_classes_{$page}_{$this->cmb->cmb_id}", array( $this, 'postbox_classes' ) );
460
+
461
+ echo '<div id="' . $this->cmb->cmb_id . '" class="' . postbox_classes( $this->cmb->cmb_id, $page ) . '">' . "\n";
462
+
463
+ if ( $add_handle ) {
464
+
465
+ echo '<button type="button" class="handlediv button-link" aria-expanded="true">';
466
+ echo '<span class="screen-reader-text">' . sprintf( __( 'Toggle panel: %s' ), $title ) . '</span>';
467
+ echo '<span class="toggle-indicator" aria-hidden="true"></span>';
468
+ echo '</button>';
469
+
470
+ echo '<h2 class="hndle"><span>' . esc_attr( $title ) . '</span></h2>' . "\n";
471
+ echo '<div class="inside">' . "\n";
472
+ }
473
+ }
474
+
475
+ /**
476
+ * Output the closing markup for a context box.
477
+ *
478
+ * @since 2.2.4
479
+ * @param bool $add_inside_close Whether to add closing div for .inside.
480
+ */
481
+ public function context_box_title_markup_close( $add_inside_close = true ) {
482
+
483
+ // Load the closing divs for a title box.
484
+ if ( $add_inside_close ) {
485
+ echo '</div>' . "\n"; // .inside
486
+ }
487
+
488
+ echo '</div>' . "\n"; // .context-box
489
+ }
490
+
491
+ /**
492
+ * Add metaboxes (to 'post' or 'comment' object types)
493
+ *
494
+ * @since 1.0.0
495
+ */
496
+ public function add_metaboxes() {
497
+
498
+ if ( ! $this->show_on() ) {
499
+ return;
500
+ }
501
+
502
+ /*
503
+ * To keep from registering an actual post-screen metabox,
504
+ * omit the 'title' property from the metabox registration array.
505
+ *
506
+ * (WordPress will not display metaboxes without titles anyway)
507
+ *
508
+ * This is a good solution if you want to handle outputting your
509
+ * metaboxes/fields elsewhere in the post-screen.
510
+ */
511
+ if ( ! $this->cmb->prop( 'title' ) ) {
512
+ return;
513
+ }
514
+
515
+ $page = get_current_screen()->id;
516
+ add_filter( "postbox_classes_{$page}_{$this->cmb->cmb_id}", array( $this, 'postbox_classes' ) );
517
+
518
+ foreach ( $this->cmb->box_types() as $object_type ) {
519
+ add_meta_box(
520
+ $this->cmb->cmb_id,
521
+ $this->cmb->prop( 'title' ),
522
+ array( $this, 'metabox_callback' ),
523
+ $object_type,
524
+ $this->cmb->prop( 'context' ),
525
+ $this->cmb->prop( 'priority' ),
526
+ $this->cmb->prop( 'mb_callback_args' )
527
+ );
528
+ }
529
+ }
530
+
531
+ /**
532
+ * Remove the specified default taxonomy metaboxes for a post-type.
533
+ *
534
+ * @since 2.2.3
535
+ *
536
+ */
537
+ public function remove_default_tax_metaboxes() {
538
+ $to_remove = array_filter( (array) $this->cmb->tax_metaboxes_to_remove, 'taxonomy_exists' );
539
+ if ( empty( $to_remove ) ) {
540
+ return;
541
+ }
542
+
543
+ foreach ( $this->cmb->box_types() as $post_type ) {
544
+ foreach ( $to_remove as $taxonomy ) {
545
+ $mb_id = is_taxonomy_hierarchical( $taxonomy ) ? "{$taxonomy}div" : "tagsdiv-{$taxonomy}";
546
+ remove_meta_box( $mb_id, $post_type, 'side' );
547
+ }
548
+ }
549
+ }
550
+
551
+ /**
552
+ * Modify metabox postbox classes.
553
+ *
554
+ * @since 2.2.4
555
+ * @param array $classes Array of classes.
556
+ * @return array Modified array of classes
557
+ */
558
+ public function postbox_classes( $classes ) {
559
+ if ( $this->cmb->prop( 'closed' ) && ! in_array( 'closed', $classes ) ) {
560
+ $classes[] = 'closed';
561
+ }
562
+
563
+ if ( $this->cmb->is_alternate_context_box() ) {
564
+ $classes = $this->alternate_context_postbox_classes( $classes );
565
+ } else {
566
+ $classes[] = 'cmb2-postbox';
567
+ }
568
+
569
+ return $classes;
570
+ }
571
+
572
+ /**
573
+ * Modify metabox altnernate context postbox classes.
574
+ *
575
+ * @since 2.2.4
576
+ * @param array $classes Array of classes.
577
+ * @return array Modified array of classes
578
+ */
579
+ protected function alternate_context_postbox_classes( $classes ) {
580
+ $classes[] = 'context-box';
581
+ $classes[] = 'context-' . $this->cmb->prop( 'context' ) . '-box';
582
+
583
+ if ( in_array( $this->cmb->cmb_id, get_hidden_meta_boxes( get_current_screen() ) ) ) {
584
+ $classes[] = 'hide-if-js';
585
+ }
586
+
587
+ $add_wrap = $this->cmb->prop( 'title' ) || ! $this->cmb->prop( 'remove_box_wrap' );
588
+
589
+ if ( $add_wrap ) {
590
+ $classes[] = 'cmb2-postbox postbox';
591
+ } else {
592
+ $classes[] = 'cmb2-no-box-wrap';
593
+ }
594
+
595
+ return $classes;
596
+ }
597
+
598
+ /**
599
+ * Display metaboxes for a post or comment object.
600
+ *
601
+ * @since 1.0.0
602
+ */
603
+ public function metabox_callback() {
604
+ $object_id = 'comment' == $this->object_type ? get_comment_ID() : get_the_ID();
605
+ $this->cmb->show_form( $object_id, $this->object_type );
606
+ }
607
+
608
+ /**
609
+ * Display metaboxes for new user page.
610
+ *
611
+ * @since 1.0.0
612
+ *
613
+ * @param mixed $section User section metabox.
614
+ */
615
+ public function user_new_metabox( $section ) {
616
+ if ( $section == $this->cmb->prop( 'new_user_section' ) ) {
617
+ $object_id = $this->cmb->object_id();
618
+ $this->cmb->object_id( isset( $_REQUEST['user_id'] ) ? $_REQUEST['user_id'] : $object_id );
619
+ $this->user_metabox();
620
+ }
621
+ }
622
+
623
+ /**
624
+ * Display metaboxes for a user object.
625
+ *
626
+ * @since 1.0.0
627
+ */
628
+ public function user_metabox() {
629
+ $this->show_form_for_type( 'user' );
630
+ }
631
+
632
+ /**
633
+ * Display metaboxes for a taxonomy term object.
634
+ *
635
+ * @since 2.2.0
636
+ */
637
+ public function term_metabox() {
638
+ $this->show_form_for_type( 'term' );
639
+ }
640
+
641
+ /**
642
+ * Display metaboxes for an object type.
643
+ *
644
+ * @since 2.2.0
645
+ * @param string $type Object type.
646
+ * @return void
647
+ */
648
+ public function show_form_for_type( $type ) {
649
+ if ( $type != $this->object_type ) {
650
+ return;
651
+ }
652
+
653
+ if ( ! $this->show_on() ) {
654
+ return;
655
+ }
656
+
657
+ if ( $this->cmb->prop( 'cmb_styles' ) ) {
658
+ self::enqueue_cmb_css();
659
+ }
660
+ if ( $this->cmb->prop( 'enqueue_js' ) ) {
661
+ self::enqueue_cmb_js();
662
+ }
663
+
664
+ $this->cmb->show_form( 0, $type );
665
+ }
666
+
667
+ /**
668
+ * Determines if metabox should be shown in current context.
669
+ *
670
+ * @since 2.0.0
671
+ * @return bool Whether metabox should be added/shown.
672
+ */
673
+ public function show_on() {
674
+ // If metabox is requesting to be conditionally shown.
675
+ $show = $this->cmb->should_show();
676
+
677
+ /**
678
+ * Filter to determine if metabox should show. Default is true.
679
+ *
680
+ * @param array $show Default is true, show the metabox.
681
+ * @param mixed $meta_box_args Array of the metabox arguments.
682
+ * @param mixed $cmb The CMB2 instance.
683
+ */
684
+ $show = (bool) apply_filters( 'cmb2_show_on', $show, $this->cmb->meta_box, $this->cmb );
685
+
686
+ return $show;
687
+ }
688
+
689
+ /**
690
+ * Get the CMB priority property set to numeric hook priority.
691
+ *
692
+ * @since 2.2.0
693
+ *
694
+ * @param integer $default Default display hook priority.
695
+ * @return integer Hook priority.
696
+ */
697
+ public function get_priority( $default = 10 ) {
698
+ $priority = $this->cmb->prop( 'priority' );
699
+
700
+ if ( ! is_numeric( $priority ) ) {
701
+ switch ( $priority ) {
702
+
703
+ case 'high':
704
+ $priority = 5;
705
+ break;
706
+
707
+ case 'low':
708
+ $priority = 20;
709
+ break;
710
+
711
+ default:
712
+ $priority = $default;
713
+ break;
714
+ }
715
+ }
716
+
717
+ return $priority;
718
+ }
719
+
720
+ /**
721
+ * Save data from post metabox
722
+ *
723
+ * @since 1.0.0
724
+ * @param int $post_id Post ID.
725
+ * @param mixed $post Post object.
726
+ * @return void
727
+ */
728
+ public function save_post( $post_id, $post = false ) {
729
+
730
+ $post_type = $post ? $post->post_type : get_post_type( $post_id );
731
+
732
+ $do_not_pass_go = (
733
+ ! $this->can_save( $post_type )
734
+ // Check user editing permissions.
735
+ || ( 'page' == $post_type && ! current_user_can( 'edit_page', $post_id ) )
736
+ || ! current_user_can( 'edit_post', $post_id )
737
+ );
738
+
739
+ if ( $do_not_pass_go ) {
740
+ return;
741
+ }
742
+
743
+ $this->cmb->save_fields( $post_id, 'post', $_POST );
744
+ }
745
+
746
+ /**
747
+ * Save data from comment metabox.
748
+ *
749
+ * @since 2.0.9
750
+ * @param int $comment_id Comment ID.
751
+ * @return void
752
+ */
753
+ public function save_comment( $comment_id ) {
754
+
755
+ $can_edit = current_user_can( 'moderate_comments', $comment_id );
756
+
757
+ if ( $this->can_save( get_comment_type( $comment_id ) ) && $can_edit ) {
758
+ $this->cmb->save_fields( $comment_id, 'comment', $_POST );
759
+ }
760
+ }
761
+
762
+ /**
763
+ * Save data from user fields.
764
+ *
765
+ * @since 1.0.x
766
+ * @param int $user_id User ID.
767
+ * @return void
768
+ */
769
+ public function save_user( $user_id ) {
770
+ // check permissions.
771
+ if ( $this->can_save( 'user' ) ) {
772
+ $this->cmb->save_fields( $user_id, 'user', $_POST );
773
+ }
774
+ }
775
+
776
+ /**
777
+ * Save data from term fields
778
+ *
779
+ * @since 2.2.0
780
+ * @param int $term_id Term ID.
781
+ * @param int $tt_id Term Taxonomy ID.
782
+ * @param string $taxonomy Taxonomy.
783
+ * @return void
784
+ */
785
+ public function save_term( $term_id, $tt_id, $taxonomy = '' ) {
786
+ $taxonomy = $taxonomy ? $taxonomy : $tt_id;
787
+
788
+ // check permissions.
789
+ if ( $this->taxonomy_can_save( $taxonomy ) && $this->can_save( 'term' ) ) {
790
+ $this->cmb->save_fields( $term_id, 'term', $_POST );
791
+ }
792
+ }
793
+
794
+ /**
795
+ * Delete term meta when a term is deleted.
796
+ *
797
+ * @since 2.2.0
798
+ * @param int $term_id Term ID.
799
+ * @param int $tt_id Term Taxonomy ID.
800
+ * @param string $taxonomy Taxonomy.
801
+ * @return void
802
+ */
803
+ public function delete_term( $term_id, $tt_id, $taxonomy = '' ) {
804
+ if ( $this->taxonomy_can_save( $taxonomy ) ) {
805
+
806
+ $data_to_delete = array();
807
+ foreach ( $this->cmb->prop( 'fields' ) as $field ) {
808
+ $data_to_delete[ $field['id'] ] = '';
809
+ }
810
+
811
+ $this->cmb->save_fields( $term_id, 'term', $data_to_delete );
812
+ }
813
+ }
814
+
815
+ /**
816
+ * Determines if the current object is able to be saved.
817
+ *
818
+ * @since 2.0.9
819
+ * @param string $type Current object type.
820
+ * @return bool Whether object can be saved.
821
+ */
822
+ public function can_save( $type = '' ) {
823
+
824
+ $can_save = (
825
+ $this->cmb->prop( 'save_fields' )
826
+ // check nonce.
827
+ && isset( $_POST[ $this->cmb->nonce() ] )
828
+ && wp_verify_nonce( $_POST[ $this->cmb->nonce() ], $this->cmb->nonce() )
829
+ // check if autosave.
830
+ && ! ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
831
+ // get the metabox types & compare it to this type.
832
+ && ( $type && in_array( $type, $this->cmb->box_types() ) )
833
+ // Don't do updates during a switch-to-blog instance.
834
+ && ! ( is_multisite() && ms_is_switched() )
835
+ );
836
+
837
+ /**
838
+ * Filter to determine if metabox is allowed to save.
839
+ *
840
+ * @param bool $can_save Whether the current metabox can save.
841
+ * @param object $cmb The CMB2 instance.
842
+ */
843
+ return apply_filters( 'cmb2_can_save', $can_save, $this->cmb );
844
+ }
845
+
846
+ /**
847
+ * Determine if taxonomy of term being modified is cmb2-editable.
848
+ *
849
+ * @since 2.2.0
850
+ *
851
+ * @param string $taxonomy Taxonomy of term being modified.
852
+ * @return bool Whether taxonomy is editable.
853
+ */
854
+ public function taxonomy_can_save( $taxonomy ) {
855
+ if ( empty( $this->taxonomies ) || ! in_array( $taxonomy, $this->taxonomies ) ) {
856
+ return false;
857
+ }
858
+
859
+ $taxonomy_object = get_taxonomy( $taxonomy );
860
+ // Can the user edit this term?
861
+ if ( ! isset( $taxonomy_object->cap ) || ! current_user_can( $taxonomy_object->cap->edit_terms ) ) {
862
+ return false;
863
+ }
864
+
865
+ return true;
866
+ }
867
+
868
+ /**
869
+ * Enqueues the 'cmb2-display-styles' if the conditions match (has columns, on the right page, etc).
870
+ *
871
+ * @since 2.2.2.1
872
+ */
873
+ protected function maybe_enqueue_column_display_styles() {
874
+ global $pagenow;
875
+ if (
876
+ $pagenow
877
+ && $this->cmb->has_columns
878
+ && $this->cmb->prop( 'cmb_styles' )
879
+ && in_array( $pagenow, array( 'edit.php', 'users.php', 'edit-comments.php', 'edit-tags.php' ), 1 )
880
+ ) {
881
+ self::enqueue_cmb_css( 'cmb2-display-styles' );
882
+ }
883
+ }
884
+
885
+ /**
886
+ * Includes CMB2 styles.
887
+ *
888
+ * @since 2.0.0
889
+ *
890
+ * @param string $handle CSS handle.
891
+ * @return mixed
892
+ */
893
+ public static function enqueue_cmb_css( $handle = 'cmb2-styles' ) {
894
+
895
+ /**
896
+ * Filter to determine if CMB2'S css should be enqueued.
897
+ *
898
+ * @param bool $enqueue_css Default is true.
899
+ */
900
+ if ( ! apply_filters( 'cmb2_enqueue_css', true ) ) {
901
+ return false;
902
+ }
903
+
904
+ self::register_styles();
905
+
906
+ /*
907
+ * White list the options as this method can be used as a hook callback
908
+ * and have a different argument passed.
909
+ */
910
+ return wp_enqueue_style( 'cmb2-display-styles' === $handle ? $handle : 'cmb2-styles' );
911
+ }
912
+
913
+ /**
914
+ * Includes CMB2 JS.
915
+ *
916
+ * @since 2.0.0
917
+ */
918
+ public static function enqueue_cmb_js() {
919
+
920
+ /**
921
+ * Filter to determine if CMB2'S JS should be enqueued.
922
+ *
923
+ * @param bool $enqueue_js Default is true.
924
+ */
925
+ if ( ! apply_filters( 'cmb2_enqueue_js', true ) ) {
926
+ return false;
927
+ }
928
+
929
+ self::register_js();
930
+ return true;
931
+ }
932
+
933
+ }
includes/plus-options/metabox/includes/helper-functions.php ADDED
@@ -0,0 +1,426 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 Helper Functions
4
+ *
5
+ * @category WordPress_Plugin
6
+ * @package CMB2
7
+ * @author CMB2 team
8
+ * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
+ */
11
+
12
+ /**
13
+ * Helper function to provide directory path to CMB2
14
+ *
15
+ * @since 2.0.0
16
+ * @param string $path Path to append.
17
+ * @return string Directory with optional path appended
18
+ */
19
+ function cmb2_dir( $path = '' ) {
20
+ return CMB2_DIR . $path;
21
+ }
22
+
23
+ /**
24
+ * Autoloads files with CMB2 classes when needed
25
+ *
26
+ * @since 1.0.0
27
+ * @param string $class_name Name of the class being requested.
28
+ */
29
+ function cmb2_autoload_classes( $class_name ) {
30
+ if ( 0 !== strpos( $class_name, 'CMB2' ) ) {
31
+ return;
32
+ }
33
+
34
+ $path = 'includes';
35
+
36
+ if ( 'CMB2_Type' === $class_name || 0 === strpos( $class_name, 'CMB2_Type_' ) ) {
37
+ $path .= '/types';
38
+ }
39
+
40
+ if ( 'CMB2_REST' === $class_name || 0 === strpos( $class_name, 'CMB2_REST_' ) ) {
41
+ $path .= '/rest-api';
42
+ }
43
+
44
+ include_once( cmb2_dir( "$path/{$class_name}.php" ) );
45
+ }
46
+
47
+ /**
48
+ * Get instance of the CMB2_Utils class
49
+ *
50
+ * @since 2.0.0
51
+ * @return CMB2_Utils object CMB2 utilities class
52
+ */
53
+ function cmb2_utils() {
54
+ static $cmb2_utils;
55
+ $cmb2_utils = $cmb2_utils ? $cmb2_utils : new CMB2_Utils();
56
+ return $cmb2_utils;
57
+ }
58
+
59
+ /**
60
+ * Get instance of the CMB2_Ajax class
61
+ *
62
+ * @since 2.0.0
63
+ * @return CMB2_Ajax object CMB2 ajax class
64
+ */
65
+ function cmb2_ajax() {
66
+ return CMB2_Ajax::get_instance();
67
+ }
68
+
69
+ /**
70
+ * Get instance of the CMB2_Option class for the passed metabox ID
71
+ *
72
+ * @since 2.0.0
73
+ *
74
+ * @param string $key Option key to fetch.
75
+ * @return CMB2_Option object Options class for setting/getting options for metabox
76
+ */
77
+ function cmb2_options( $key ) {
78
+ return CMB2_Options::get( $key );
79
+ }
80
+
81
+ /**
82
+ * Get a cmb oEmbed. Handles oEmbed getting for non-post objects
83
+ *
84
+ * @since 2.0.0
85
+ * @param array $args Arguments. Accepts:
86
+ *
87
+ * 'url' - URL to retrieve the oEmbed from,
88
+ * 'object_id' - $post_id,
89
+ * 'object_type' - 'post',
90
+ * 'oembed_args' - $embed_args, // array containing 'width', etc
91
+ * 'field_id' - false,
92
+ * 'cache_key' - false,
93
+ * 'wp_error' - true/false, // To return a wp_error object if no embed found.
94
+ *
95
+ * @return string oEmbed string
96
+ */
97
+ function cmb2_get_oembed( $args = array() ) {
98
+ $oembed = cmb2_ajax()->get_oembed_no_edit( $args );
99
+
100
+ // Send back our embed.
101
+ if ( $oembed['embed'] && $oembed['embed'] != $oembed['fallback'] ) {
102
+ return '<div class="cmb2-oembed">' . $oembed['embed'] . '</div>';
103
+ }
104
+
105
+ $error = sprintf(
106
+ /* translators: 1: results for. 2: link to codex.wordpress.org/Embeds */
107
+ esc_html__( 'No oEmbed Results Found for %1$s. View more info at %2$s.', 'cmb2' ),
108
+ $oembed['fallback'],
109
+ '<a href="https://codex.wordpress.org/Embeds" target="_blank">codex.wordpress.org/Embeds</a>'
110
+ );
111
+
112
+ if ( isset( $args['wp_error'] ) && $args['wp_error'] ) {
113
+ return new WP_Error( 'cmb2_get_oembed_result', $error, compact( 'oembed', 'args' ) );
114
+ }
115
+
116
+ // Otherwise, send back error info that no oEmbeds were found.
117
+ return '<p class="ui-state-error-text">' . $error . '</p>';
118
+ }
119
+
120
+ /**
121
+ * Outputs the return of cmb2_get_oembed.
122
+ *
123
+ * @since 2.2.2
124
+ * @see cmb2_get_oembed
125
+ *
126
+ * @param array $args oEmbed args.
127
+ */
128
+ function cmb2_do_oembed( $args = array() ) {
129
+ echo cmb2_get_oembed( $args );
130
+ }
131
+ add_action( 'cmb2_do_oembed', 'cmb2_do_oembed' );
132
+
133
+ /**
134
+ * A helper function to get an option from a CMB2 options array
135
+ *
136
+ * @since 1.0.1
137
+ * @param string $option_key Option key.
138
+ * @param string $field_id Option array field key.
139
+ * @param mixed $default Optional default fallback value.
140
+ * @return array Options array or specific field
141
+ */
142
+ function cmb2_get_option( $option_key, $field_id = '', $default = false ) {
143
+ return cmb2_options( $option_key )->get( $field_id, $default );
144
+ }
145
+
146
+ /**
147
+ * A helper function to update an option in a CMB2 options array
148
+ *
149
+ * @since 2.0.0
150
+ * @param string $option_key Option key.
151
+ * @param string $field_id Option array field key.
152
+ * @param mixed $value Value to update data with.
153
+ * @param boolean $single Whether data should not be an array.
154
+ * @return boolean Success/Failure
155
+ */
156
+ function cmb2_update_option( $option_key, $field_id, $value, $single = true ) {
157
+ if ( cmb2_options( $option_key )->update( $field_id, $value, false, $single ) ) {
158
+ return cmb2_options( $option_key )->set();
159
+ }
160
+
161
+ return false;
162
+ }
163
+
164
+ /**
165
+ * Get a CMB2 field object.
166
+ *
167
+ * @since 1.1.0
168
+ * @param array $meta_box Metabox ID or Metabox config array.
169
+ * @param array $field_id Field ID or all field arguments.
170
+ * @param int $object_id Object ID.
171
+ * @param string $object_type Type of object being saved. (e.g., post, user, comment, or options-page).
172
+ * Defaults to metabox object type.
173
+ * @return CMB2_Field|null CMB2_Field object unless metabox config cannot be found
174
+ */
175
+ function cmb2_get_field( $meta_box, $field_id, $object_id = 0, $object_type = '' ) {
176
+
177
+ $object_id = $object_id ? $object_id : get_the_ID();
178
+ $cmb = $meta_box instanceof CMB2 ? $meta_box : cmb2_get_metabox( $meta_box, $object_id );
179
+
180
+ if ( ! $cmb ) {
181
+ return;
182
+ }
183
+
184
+ $cmb->object_type( $object_type ? $object_type : $cmb->mb_object_type() );
185
+
186
+ return $cmb->get_field( $field_id );
187
+ }
188
+
189
+ /**
190
+ * Get a field's value.
191
+ *
192
+ * @since 1.1.0
193
+ * @param array $meta_box Metabox ID or Metabox config array.
194
+ * @param array $field_id Field ID or all field arguments.
195
+ * @param int $object_id Object ID.
196
+ * @param string $object_type Type of object being saved. (e.g., post, user, comment, or options-page).
197
+ * Defaults to metabox object type.
198
+ * @return mixed Maybe escaped value
199
+ */
200
+ function cmb2_get_field_value( $meta_box, $field_id, $object_id = 0, $object_type = '' ) {
201
+ $field = cmb2_get_field( $meta_box, $field_id, $object_id, $object_type );
202
+ return $field->escaped_value();
203
+ }
204
+
205
+ /**
206
+ * Because OOP can be scary
207
+ *
208
+ * @since 2.0.2
209
+ * @param array $meta_box_config Metabox Config array.
210
+ * @return CMB2 object Instantiated CMB2 object
211
+ */
212
+ function new_cmb2_box( array $meta_box_config ) {
213
+ return cmb2_get_metabox( $meta_box_config );
214
+ }
215
+
216
+ /**
217
+ * Retrieve a CMB2 instance by the metabox ID
218
+ *
219
+ * @since 2.0.0
220
+ * @param mixed $meta_box Metabox ID or Metabox config array.
221
+ * @param int $object_id Object ID.
222
+ * @param string $object_type Type of object being saved. (e.g., post, user, comment, or options-page).
223
+ * Defaults to metabox object type.
224
+ * @return CMB2 object
225
+ */
226
+ function cmb2_get_metabox( $meta_box, $object_id = 0, $object_type = '' ) {
227
+
228
+ if ( $meta_box instanceof CMB2 ) {
229
+ return $meta_box;
230
+ }
231
+
232
+ if ( is_string( $meta_box ) ) {
233
+ $cmb = CMB2_Boxes::get( $meta_box );
234
+ } else {
235
+ // See if we already have an instance of this metabox.
236
+ $cmb = CMB2_Boxes::get( $meta_box['id'] );
237
+ // If not, we'll initate a new metabox.
238
+ $cmb = $cmb ? $cmb : new CMB2( $meta_box, $object_id );
239
+ }
240
+
241
+ if ( $cmb && $object_id ) {
242
+ $cmb->object_id( $object_id );
243
+ }
244
+
245
+ if ( $cmb && $object_type ) {
246
+ $cmb->object_type( $object_type );
247
+ }
248
+
249
+ return $cmb;
250
+ }
251
+
252
+ /**
253
+ * Returns array of sanitized field values from a metabox (without saving them)
254
+ *
255
+ * @since 2.0.3
256
+ * @param mixed $meta_box Metabox ID or Metabox config array.
257
+ * @param array $data_to_sanitize Array of field_id => value data for sanitizing (likely $_POST data).
258
+ * @return mixed Array of sanitized values or false if no CMB2 object found
259
+ */
260
+ function cmb2_get_metabox_sanitized_values( $meta_box, array $data_to_sanitize ) {
261
+ $cmb = cmb2_get_metabox( $meta_box );
262
+ return $cmb ? $cmb->get_sanitized_values( $data_to_sanitize ) : false;
263
+ }
264
+
265
+ /**
266
+ * Retrieve a metabox form
267
+ *
268
+ * @since 2.0.0
269
+ * @param mixed $meta_box Metabox config array or Metabox ID.
270
+ * @param int $object_id Object ID.
271
+ * @param array $args Optional arguments array.
272
+ * @return string CMB2 html form markup
273
+ */
274
+ function cmb2_get_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
275
+
276
+ $object_id = $object_id ? $object_id : get_the_ID();
277
+ $cmb = cmb2_get_metabox( $meta_box, $object_id );
278
+
279
+ ob_start();
280
+ // Get cmb form.
281
+ cmb2_print_metabox_form( $cmb, $object_id, $args );
282
+ $form = ob_get_clean();
283
+
284
+ return apply_filters( 'cmb2_get_metabox_form', $form, $object_id, $cmb );
285
+ }
286
+
287
+ /**
288
+ * Display a metabox form & save it on submission
289
+ *
290
+ * @since 1.0.0
291
+ * @param mixed $meta_box Metabox config array or Metabox ID.
292
+ * @param int $object_id Object ID.
293
+ * @param array $args Optional arguments array.
294
+ */
295
+ function cmb2_print_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
296
+
297
+ $object_id = $object_id ? $object_id : get_the_ID();
298
+ $cmb = cmb2_get_metabox( $meta_box, $object_id );
299
+
300
+ // if passing a metabox ID, and that ID was not found.
301
+ if ( ! $cmb ) {
302
+ return;
303
+ }
304
+
305
+ $args = wp_parse_args( $args, array(
306
+ 'form_format' => '<form class="cmb-form" method="post" id="%1$s" enctype="multipart/form-data" encoding="multipart/form-data"><input type="hidden" name="object_id" value="%2$s">%3$s<input type="submit" name="submit-cmb" value="%4$s" class="button-primary"></form>',
307
+ 'save_button' => esc_html__( 'Save', 'cmb2' ),
308
+ 'object_type' => $cmb->mb_object_type(),
309
+ 'cmb_styles' => $cmb->prop( 'cmb_styles' ),
310
+ 'enqueue_js' => $cmb->prop( 'enqueue_js' ),
311
+ ) );
312
+
313
+ // Set object type explicitly (rather than trying to guess from context).
314
+ $cmb->object_type( $args['object_type'] );
315
+
316
+ // Save the metabox if it's been submitted
317
+ // check permissions
318
+ // @todo more hardening?
319
+ if (
320
+ $cmb->prop( 'save_fields' )
321
+ // check nonce.
322
+ && isset( $_POST['submit-cmb'], $_POST['object_id'], $_POST[ $cmb->nonce() ] )
323
+ && wp_verify_nonce( $_POST[ $cmb->nonce() ], $cmb->nonce() )
324
+ && $object_id && $_POST['object_id'] == $object_id
325
+ ) {
326
+ $cmb->save_fields( $object_id, $cmb->object_type(), $_POST );
327
+ }
328
+
329
+ // Enqueue JS/CSS.
330
+ if ( $args['cmb_styles'] ) {
331
+ CMB2_hookup::enqueue_cmb_css();
332
+ }
333
+
334
+ if ( $args['enqueue_js'] ) {
335
+ CMB2_hookup::enqueue_cmb_js();
336
+ }
337
+
338
+ $form_format = apply_filters( 'cmb2_get_metabox_form_format', $args['form_format'], $object_id, $cmb );
339
+
340
+ $format_parts = explode( '%3$s', $form_format );
341
+
342
+ // Show cmb form.
343
+ printf( $format_parts[0], $cmb->cmb_id, $object_id );
344
+ $cmb->show_form();
345
+
346
+ if ( isset( $format_parts[1] ) && $format_parts[1] ) {
347
+ printf( str_ireplace( '%4$s', '%1$s', $format_parts[1] ), $args['save_button'] );
348
+ }
349
+
350
+ }
351
+
352
+ /**
353
+ * Display a metabox form (or optionally return it) & save it on submission.
354
+ *
355
+ * @since 1.0.0
356
+ * @param mixed $meta_box Metabox config array or Metabox ID.
357
+ * @param int $object_id Object ID.
358
+ * @param array $args Optional arguments array.
359
+ * @return string
360
+ */
361
+ function cmb2_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
362
+ if ( ! isset( $args['echo'] ) || $args['echo'] ) {
363
+ cmb2_print_metabox_form( $meta_box, $object_id, $args );
364
+ } else {
365
+ return cmb2_get_metabox_form( $meta_box, $object_id, $args );
366
+ }
367
+ }
368
+
369
+ if ( ! function_exists( 'date_create_from_format' ) ) {
370
+
371
+ /**
372
+ * Reimplementation of DateTime::createFromFormat for PHP < 5.3. :(
373
+ * Borrowed from http://stackoverflow.com/questions/5399075/php-datetimecreatefromformat-in-5-2
374
+ *
375
+ * @param string $date_format Date format.
376
+ * @param string $date_value Date value.
377
+ *
378
+ * @return DateTime
379
+ */
380
+ function date_create_from_format( $date_format, $date_value ) {
381
+
382
+ $schedule_format = str_replace(
383
+ array( 'M', 'Y', 'm', 'd', 'H', 'i', 'a' ),
384
+ array( '%b', '%Y', '%m', '%d', '%H', '%M', '%p' ),
385
+ $date_format
386
+ );
387
+
388
+ /*
389
+ * %Y, %m and %d correspond to date()'s Y m and d.
390
+ * %I corresponds to H, %M to i and %p to a
391
+ */
392
+ $parsed_time = strptime( $date_value, $schedule_format );
393
+
394
+ $ymd = sprintf(
395
+ /**
396
+ * This is a format string that takes six total decimal
397
+ * arguments, then left-pads them with zeros to either
398
+ * 4 or 2 characters, as needed
399
+ */
400
+ '%04d-%02d-%02d %02d:%02d:%02d',
401
+ $parsed_time['tm_year'] + 1900, // This will be "111", so we need to add 1900.
402
+ $parsed_time['tm_mon'] + 1, // This will be the month minus one, so we add one.
403
+ $parsed_time['tm_mday'],
404
+ $parsed_time['tm_hour'],
405
+ $parsed_time['tm_min'],
406
+ $parsed_time['tm_sec']
407
+ );
408
+
409
+ return new DateTime( $ymd );
410
+ }
411
+ }// End if.
412
+
413
+ if ( ! function_exists( 'date_timestamp_get' ) ) {
414
+
415
+ /**
416
+ * Returns the Unix timestamp representing the date.
417
+ * Reimplementation of DateTime::getTimestamp for PHP < 5.3. :(
418
+ *
419
+ * @param DateTime $date DateTime instance.
420
+ *
421
+ * @return int
422
+ */
423
+ function date_timestamp_get( DateTime $date ) {
424
+ return $date->format( 'U' );
425
+ }
426
+ }// End if.
includes/plus-options/metabox/includes/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden
includes/plus-options/metabox/includes/rest-api/CMB2_REST.php ADDED
@@ -0,0 +1,794 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles hooking CMB2 objects/fields into the WordPres REST API
4
+ * which can allow fields to be read and/or updated.
5
+ *
6
+ * @since 2.2.3
7
+ *
8
+ * @category WordPress_Plugin
9
+ * @package CMB2
10
+ * @author CMB2 team
11
+ * @license GPL-2.0+
12
+ * @link https://cmb2.io
13
+ *
14
+ * @property-read read_fields Array of readable field objects.
15
+ * @property-read edit_fields Array of editable field objects.
16
+ * @property-read rest_read Whether CMB2 object is readable via the rest api.
17
+ * @property-read rest_edit Whether CMB2 object is editable via the rest api.
18
+ */
19
+ class CMB2_REST extends CMB2_Hookup_Base {
20
+
21
+ /**
22
+ * The current CMB2 REST endpoint version
23
+ *
24
+ * @var string
25
+ * @since 2.2.3
26
+ */
27
+ const VERSION = '1';
28
+
29
+ /**
30
+ * The CMB2 REST base namespace (v should always be followed by $version)
31
+ *
32
+ * @var string
33
+ * @since 2.2.3
34
+ */
35
+ const NAME_SPACE = 'cmb2/v1';
36
+
37
+ /**
38
+ * @var CMB2 object
39
+ * @since 2.2.3
40
+ */
41
+ public $cmb;
42
+
43
+ /**
44
+ * @var CMB2_REST[] objects
45
+ * @since 2.2.3
46
+ */
47
+ protected static $boxes = array();
48
+
49
+ /**
50
+ * @var array Array of cmb ids for each type.
51
+ * @since 2.2.3
52
+ */
53
+ protected static $type_boxes = array(
54
+ 'post' => array(),
55
+ 'user' => array(),
56
+ 'comment' => array(),
57
+ 'term' => array(),
58
+ );
59
+
60
+ /**
61
+ * Array of readable field objects.
62
+ *
63
+ * @var CMB2_Field[]
64
+ * @since 2.2.3
65
+ */
66
+ protected $read_fields = array();
67
+
68
+ /**
69
+ * Array of editable field objects.
70
+ *
71
+ * @var CMB2_Field[]
72
+ * @since 2.2.3
73
+ */
74
+ protected $edit_fields = array();
75
+
76
+ /**
77
+ * Whether CMB2 object is readable via the rest api.
78
+ *
79
+ * @var boolean
80
+ */
81
+ protected $rest_read = false;
82
+
83
+ /**
84
+ * Whether CMB2 object is editable via the rest api.
85
+ *
86
+ * @var boolean
87
+ */
88
+ protected $rest_edit = false;
89
+
90
+ /**
91
+ * A functionalized constructor, used for the hookup action callbacks.
92
+ *
93
+ * @since 2.2.6
94
+ *
95
+ * @param CMB2 $cmb The CMB2 object to hookup
96
+ *
97
+ * @return CMB2_Hookup_Base $hookup The hookup object.
98
+ */
99
+ public static function maybe_init_and_hookup( CMB2 $cmb ) {
100
+ if ( $cmb->prop( 'show_in_rest' ) && function_exists( 'rest_get_server' ) ) {
101
+
102
+ $hookup = new self( $cmb );
103
+
104
+ return $hookup->universal_hooks();
105
+ }
106
+
107
+ return false;
108
+ }
109
+
110
+ /**
111
+ * Constructor
112
+ *
113
+ * @since 2.2.3
114
+ *
115
+ * @param CMB2 $cmb The CMB2 object to be registered for the API.
116
+ */
117
+ public function __construct( CMB2 $cmb ) {
118
+ $this->cmb = $cmb;
119
+ self::$boxes[ $cmb->cmb_id ] = $this;
120
+
121
+ $show_value = $this->cmb->prop( 'show_in_rest' );
122
+
123
+ $this->rest_read = self::is_readable( $show_value );
124
+ $this->rest_edit = self::is_editable( $show_value );
125
+ }
126
+
127
+ /**
128
+ * Hooks to register on frontend and backend.
129
+ *
130
+ * @since 2.2.3
131
+ *
132
+ * @return void
133
+ */
134
+ public function universal_hooks() {
135
+ // hook up the CMB rest endpoint classes
136
+ $this->once( 'rest_api_init', array( __CLASS__, 'init_routes' ), 0 );
137
+
138
+ if ( function_exists( 'register_rest_field' ) ) {
139
+ $this->once( 'rest_api_init', array( __CLASS__, 'register_cmb2_fields' ), 50 );
140
+ }
141
+
142
+ $this->declare_read_edit_fields();
143
+
144
+ add_filter( 'is_protected_meta', array( $this, 'is_protected_meta' ), 10, 3 );
145
+
146
+ return $this;
147
+ }
148
+
149
+ /**
150
+ * Initiate the CMB2 Boxes and Fields routes
151
+ *
152
+ * @since 2.2.3
153
+ *
154
+ * @return void
155
+ */
156
+ public static function init_routes() {
157
+ $wp_rest_server = rest_get_server();
158
+
159
+ $boxes_controller = new CMB2_REST_Controller_Boxes( $wp_rest_server );
160
+ $boxes_controller->register_routes();
161
+
162
+ $fields_controller = new CMB2_REST_Controller_Fields( $wp_rest_server );
163
+ $fields_controller->register_routes();
164
+ }
165
+
166
+ /**
167
+ * Loop through REST boxes and call register_rest_field for each object type.
168
+ *
169
+ * @since 2.2.3
170
+ *
171
+ * @return void
172
+ */
173
+ public static function register_cmb2_fields() {
174
+ $alltypes = $taxonomies = array();
175
+
176
+ foreach ( self::$boxes as $cmb_id => $rest_box ) {
177
+ $types = array_flip( $rest_box->cmb->box_types( array( 'post' ) ) );
178
+
179
+ if ( isset( $types['user'] ) ) {
180
+ unset( $types['user'] );
181
+ self::$type_boxes['user'][ $cmb_id ] = $cmb_id;
182
+ }
183
+
184
+ if ( isset( $types['comment'] ) ) {
185
+ unset( $types['comment'] );
186
+ self::$type_boxes['comment'][ $cmb_id ] = $cmb_id;
187
+ }
188
+
189
+ if ( isset( $types['term'] ) ) {
190
+ unset( $types['term'] );
191
+
192
+ $taxonomies = array_merge(
193
+ $taxonomies,
194
+ CMB2_Utils::ensure_array( $rest_box->cmb->prop( 'taxonomies' ) )
195
+ );
196
+
197
+ self::$type_boxes['term'][ $cmb_id ] = $cmb_id;
198
+ }
199
+
200
+ if ( ! empty( $types ) ) {
201
+ $alltypes = array_merge( $alltypes, array_flip( $types ) );
202
+ self::$type_boxes['post'][ $cmb_id ] = $cmb_id;
203
+ }
204
+ }
205
+
206
+ $alltypes = array_unique( $alltypes );
207
+
208
+ if ( ! empty( $alltypes ) ) {
209
+ self::register_rest_field( $alltypes, 'post' );
210
+ }
211
+
212
+ if ( ! empty( self::$type_boxes['user'] ) ) {
213
+ self::register_rest_field( 'user', 'user' );
214
+ }
215
+
216
+ if ( ! empty( self::$type_boxes['comment'] ) ) {
217
+ self::register_rest_field( 'comment', 'comment' );
218
+ }
219
+
220
+ if ( ! empty( self::$type_boxes['term'] ) ) {
221
+ self::register_rest_field( $taxonomies, 'term' );
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Wrapper for register_rest_field.
227
+ *
228
+ * @since 2.2.3
229
+ *
230
+ * @param string|array $object_types Object(s) the field is being registered
231
+ * to, "post"|"term"|"comment" etc.
232
+ * @param string $object_types Canonical object type for callbacks.
233
+ *
234
+ * @return void
235
+ */
236
+ protected static function register_rest_field( $object_types, $object_type ) {
237
+ register_rest_field( $object_types, 'cmb2', array(
238
+ 'get_callback' => array( __CLASS__, "get_{$object_type}_rest_values" ),
239
+ 'update_callback' => array( __CLASS__, "update_{$object_type}_rest_values" ),
240
+ 'schema' => null, // @todo add schema
241
+ ) );
242
+ }
243
+
244
+ /**
245
+ * Setup readable and editable fields.
246
+ *
247
+ * @since 2.2.3
248
+ *
249
+ * @return void
250
+ */
251
+ protected function declare_read_edit_fields() {
252
+ foreach ( $this->cmb->prop( 'fields' ) as $field ) {
253
+ $show_in_rest = isset( $field['show_in_rest'] ) ? $field['show_in_rest'] : null;
254
+
255
+ if ( false === $show_in_rest ) {
256
+ continue;
257
+ }
258
+
259
+ if ( $this->can_read( $show_in_rest ) ) {
260
+ $this->read_fields[] = $field['id'];
261
+ }
262
+
263
+ if ( $this->can_edit( $show_in_rest ) ) {
264
+ $this->edit_fields[] = $field['id'];
265
+ }
266
+ }
267
+ }
268
+
269
+ /**
270
+ * Determines if a field is readable based on it's show_in_rest value
271
+ * and the box's show_in_rest value.
272
+ *
273
+ * @since 2.2.3
274
+ *
275
+ * @param bool $show_in_rest Field's show_in_rest value. Default null.
276
+ *
277
+ * @return bool Whether field is readable.
278
+ */
279
+ protected function can_read( $show_in_rest ) {
280
+ // if 'null', then use default box value.
281
+ if ( null === $show_in_rest ) {
282
+ return $this->rest_read;
283
+ }
284
+
285
+ // Else check if the value represents readable.
286
+ return self::is_readable( $show_in_rest );
287
+ }
288
+
289
+ /**
290
+ * Determines if a field is editable based on it's show_in_rest value
291
+ * and the box's show_in_rest value.
292
+ *
293
+ * @since 2.2.3
294
+ *
295
+ * @param bool $show_in_rest Field's show_in_rest value. Default null.
296
+ *
297
+ * @return bool Whether field is editable.
298
+ */
299
+ protected function can_edit( $show_in_rest ) {
300
+ // if 'null', then use default box value.
301
+ if ( null === $show_in_rest ) {
302
+ return $this->rest_edit;
303
+ }
304
+
305
+ // Else check if the value represents editable.
306
+ return self::is_editable( $show_in_rest );
307
+ }
308
+
309
+ /**
310
+ * Handler for getting post custom field data.
311
+ *
312
+ * @since 2.2.3
313
+ *
314
+ * @param array $object The object data from the response
315
+ * @param string $field_name Name of field
316
+ * @param WP_REST_Request $request Current request
317
+ * @param string $object_type The request object type
318
+ *
319
+ * @return mixed
320
+ */
321
+ public static function get_post_rest_values( $object, $field_name, $request, $object_type ) {
322
+ if ( 'cmb2' === $field_name ) {
323
+ return self::get_rest_values( $object, $request, $object_type, 'post' );
324
+ }
325
+ }
326
+
327
+ /**
328
+ * Handler for getting user custom field data.
329
+ *
330
+ * @since 2.2.3
331
+ *
332
+ * @param array $object The object data from the response
333
+ * @param string $field_name Name of field
334
+ * @param WP_REST_Request $request Current request
335
+ * @param string $object_type The request object type
336
+ *
337
+ * @return mixed
338
+ */
339
+ public static function get_user_rest_values( $object, $field_name, $request, $object_type ) {
340
+ if ( 'cmb2' === $field_name ) {
341
+ return self::get_rest_values( $object, $request, $object_type, 'user' );
342
+ }
343
+ }
344
+
345
+ /**
346
+ * Handler for getting comment custom field data.
347
+ *
348
+ * @since 2.2.3
349
+ *
350
+ * @param array $object The object data from the response
351
+ * @param string $field_name Name of field
352
+ * @param WP_REST_Request $request Current request
353
+ * @param string $object_type The request object type
354
+ *
355
+ * @return mixed
356
+ */
357
+ public static function get_comment_rest_values( $object, $field_name, $request, $object_type ) {
358
+ if ( 'cmb2' === $field_name ) {
359
+ return self::get_rest_values( $object, $request, $object_type, 'comment' );
360
+ }
361
+ }
362
+
363
+ /**
364
+ * Handler for getting term custom field data.
365
+ *
366
+ * @since 2.2.3
367
+ *
368
+ * @param array $object The object data from the response
369
+ * @param string $field_name Name of field
370
+ * @param WP_REST_Request $request Current request
371
+ * @param string $object_type The request object type
372
+ *
373
+ * @return mixed
374
+ */
375
+ public static function get_term_rest_values( $object, $field_name, $request, $object_type ) {
376
+ if ( 'cmb2' === $field_name ) {
377
+ return self::get_rest_values( $object, $request, $object_type, 'term' );
378
+ }
379
+ }
380
+
381
+ /**
382
+ * Handler for getting custom field data.
383
+ *
384
+ * @since 2.2.3
385
+ *
386
+ * @param array $object The object data from the response
387
+ * @param WP_REST_Request $request Current request
388
+ * @param string $object_type The request object type
389
+ * @param string $main_object_type The cmb main object type
390
+ *
391
+ * @return mixed
392
+ */
393
+ protected static function get_rest_values( $object, $request, $object_type, $main_object_type = 'post' ) {
394
+ if ( ! isset( $object['id'] ) ) {
395
+ return;
396
+ }
397
+
398
+ $values = array();
399
+
400
+ if ( ! empty( self::$type_boxes[ $main_object_type ] ) ) {
401
+ foreach ( self::$type_boxes[ $main_object_type ] as $cmb_id ) {
402
+ $rest_box = self::$boxes[ $cmb_id ];
403
+
404
+ foreach ( $rest_box->read_fields as $field_id ) {
405
+ $rest_box->cmb->object_id( $object['id'] );
406
+ $rest_box->cmb->object_type( $main_object_type );
407
+
408
+ $field = $rest_box->cmb->get_field( $field_id );
409
+
410
+ $field->object_id( $object['id'] );
411
+ $field->object_type( $main_object_type );
412
+
413
+ $values[ $cmb_id ][ $field->id( true ) ] = $field->get_data();
414
+ }
415
+ }
416
+ }
417
+
418
+ return $values;
419
+ }
420
+
421
+ /**
422
+ * Handler for updating post custom field data.
423
+ *
424
+ * @since 2.2.3
425
+ *
426
+ * @param mixed $values The value of the field
427
+ * @param object $object The object from the response
428
+ * @param string $field_name Name of field
429
+ * @param WP_REST_Request $request Current request
430
+ * @param string $object_type The request object type
431
+ *
432
+ * @return bool|int
433
+ */
434
+ public static function update_post_rest_values( $values, $object, $field_name, $request, $object_type ) {
435
+ if ( 'cmb2' === $field_name ) {
436
+ return self::update_rest_values( $values, $object, $request, $object_type, 'post' );
437
+ }
438
+ }
439
+
440
+ /**
441
+ * Handler for updating user custom field data.
442
+ *
443
+ * @since 2.2.3
444
+ *
445
+ * @param mixed $values The value of the field
446
+ * @param object $object The object from the response
447
+ * @param string $field_name Name of field
448
+ * @param WP_REST_Request $request Current request
449
+ * @param string $object_type The request object type
450
+ *
451
+ * @return bool|int
452
+ */
453
+ public static function update_user_rest_values( $values, $object, $field_name, $request, $object_type ) {
454
+ if ( 'cmb2' === $field_name ) {
455
+ return self::update_rest_values( $values, $object, $request, $object_type, 'user' );
456
+ }
457
+ }
458
+
459
+ /**
460
+ * Handler for updating comment custom field data.
461
+ *
462
+ * @since 2.2.3
463
+ *
464
+ * @param mixed $values The value of the field
465
+ * @param object $object The object from the response
466
+ * @param string $field_name Name of field
467
+ * @param WP_REST_Request $request Current request
468
+ * @param string $object_type The request object type
469
+ *
470
+ * @return bool|int
471
+ */
472
+ public static function update_comment_rest_values( $values, $object, $field_name, $request, $object_type ) {
473
+ if ( 'cmb2' === $field_name ) {
474
+ return self::update_rest_values( $values, $object, $request, $object_type, 'comment' );
475
+ }
476
+ }
477
+
478
+ /**
479
+ * Handler for updating term custom field data.
480
+ *
481
+ * @since 2.2.3
482
+ *
483
+ * @param mixed $values The value of the field
484
+ * @param object $object The object from the response
485
+ * @param string $field_name Name of field
486
+ * @param WP_REST_Request $request Current request
487
+ * @param string $object_type The request object type
488
+ *
489
+ * @return bool|int
490
+ */
491
+ public static function update_term_rest_values( $values, $object, $field_name, $request, $object_type ) {
492
+ if ( 'cmb2' === $field_name ) {
493
+ return self::update_rest_values( $values, $object, $request, $object_type, 'term' );
494
+ }
495
+ }
496
+
497
+ /**
498
+ * Handler for updating custom field data.
499
+ *
500
+ * @since 2.2.3
501
+ *
502
+ * @param mixed $values The value of the field
503
+ * @param object $object The object from the response
504
+ * @param WP_REST_Request $request Current request
505
+ * @param string $object_type The request object type
506
+ * @param string $main_object_type The cmb main object type
507
+ *
508
+ * @return bool|int
509
+ */
510
+ protected static function update_rest_values( $values, $object, $request, $object_type, $main_object_type = 'post' ) {
511
+ if ( empty( $values ) || ! is_array( $values ) ) {
512
+ return;
513
+ }
514
+
515
+ $object_id = self::get_object_id( $object, $main_object_type );
516
+
517
+ if ( ! $object_id ) {
518
+ return;
519
+ }
520
+
521
+ $updated = array();
522
+
523
+ if ( ! empty( self::$type_boxes[ $main_object_type ] ) ) {
524
+ foreach ( self::$type_boxes[ $main_object_type ] as $cmb_id ) {
525
+ $rest_box = self::$boxes[ $cmb_id ];
526
+
527
+ if ( ! array_key_exists( $cmb_id, $values ) ) {
528
+ continue;
529
+ }
530
+
531
+ $rest_box->cmb->object_id( $object_id );
532
+ $rest_box->cmb->object_type( $main_object_type );
533
+
534
+ $updated[ $cmb_id ] = $rest_box->sanitize_box_values( $values );
535
+ }
536
+ }
537
+
538
+ return $updated;
539
+ }
540
+
541
+ /**
542
+ * Loop through box fields and sanitize the values.
543
+ *
544
+ * @since 2.2.o
545
+ *
546
+ * @param array $values Array of values being provided.
547
+ * @return array Array of updated/sanitized values.
548
+ */
549
+ public function sanitize_box_values( array $values ) {
550
+ $updated = array();
551
+
552
+ $this->cmb->pre_process();
553
+
554
+ foreach ( $this->edit_fields as $field_id ) {
555
+ $updated[ $field_id ] = $this->sanitize_field_value( $values, $field_id );
556
+ }
557
+
558
+ $this->cmb->after_save();
559
+
560
+ return $updated;
561
+ }
562
+
563
+ /**
564
+ * Handles returning a sanitized field value.
565
+ *
566
+ * @since 2.2.3
567
+ *
568
+ * @param array $values Array of values being provided.
569
+ * @param string $field_id The id of the field to update.
570
+ *
571
+ * @return mixed The results of saving/sanitizing a field value.
572
+ */
573
+ protected function sanitize_field_value( array $values, $field_id ) {
574
+ if ( ! array_key_exists( $field_id, $values[ $this->cmb->cmb_id ] ) ) {
575
+ return;
576
+ }
577
+
578
+ $field = $this->cmb->get_field( $field_id );
579
+
580
+ if ( 'title' == $field->type() ) {
581
+ return;
582
+ }
583
+
584
+ $field->object_id( $this->cmb->object_id() );
585
+ $field->object_type( $this->cmb->object_type() );
586
+
587
+ if ( 'group' == $field->type() ) {
588
+ return $this->sanitize_group_value( $values, $field );
589
+ }
590
+
591
+ return $field->save_field( $values[ $this->cmb->cmb_id ][ $field_id ] );
592
+ }
593
+
594
+ /**
595
+ * Handles returning a sanitized group field value.
596
+ *
597
+ * @since 2.2.3
598
+ *
599
+ * @param array $values Array of values being provided.
600
+ * @param CMB2_Field $field CMB2_Field object.
601
+ *
602
+ * @return mixed The results of saving/sanitizing the group field value.
603
+ */
604
+ protected function sanitize_group_value( array $values, CMB2_Field $field ) {
605
+ $fields = $field->fields();
606
+ if ( empty( $fields ) ) {
607
+ return;
608
+ }
609
+
610
+ $this->cmb->data_to_save[ $field->_id() ] = $values[ $this->cmb->cmb_id ][ $field->_id() ];
611
+
612
+ return $this->cmb->save_group_field( $field );
613
+ }
614
+
615
+ /**
616
+ * Filter whether a meta key is protected.
617
+ *
618
+ * @since 2.2.3
619
+ *
620
+ * @param bool $protected Whether the key is protected. Default false.
621
+ * @param string $meta_key Meta key.
622
+ * @param string $meta_type Meta type.
623
+ */
624
+ public function is_protected_meta( $protected, $meta_key, $meta_type ) {
625
+ if ( $this->field_can_edit( $meta_key ) ) {
626
+ return false;
627
+ }
628
+
629
+ return $protected;
630
+ }
631
+
632
+ protected static function get_object_id( $object, $object_type = 'post' ) {
633
+ switch ( $object_type ) {
634
+ case 'user':
635
+ case 'post':
636
+ if ( isset( $object->ID ) ) {
637
+ return intval( $object->ID );
638
+ }
639
+ case 'comment':
640
+ if ( isset( $object->comment_ID ) ) {
641
+ return intval( $object->comment_ID );
642
+ }
643
+ case 'term':
644
+ if ( is_array( $object ) && isset( $object['term_id'] ) ) {
645
+ return intval( $object['term_id'] );
646
+ } elseif ( isset( $object->term_id ) ) {
647
+ return intval( $object->term_id );
648
+ }
649
+ }
650
+
651
+ return 0;
652
+ }
653
+
654
+ /**
655
+ * Checks if a given field can be read.
656
+ *
657
+ * @since 2.2.3
658
+ *
659
+ * @param string|CMB2_Field $field_id Field ID or CMB2_Field object.
660
+ * @param boolean $return_object Whether to return the Field object.
661
+ *
662
+ * @return mixed False if field can't be read or true|CMB2_Field object.
663
+ */
664
+ public function field_can_read( $field_id, $return_object = false ) {
665
+ return $this->field_can( 'read_fields', $field_id, $return_object );
666
+ }
667
+
668
+ /**
669
+ * Checks if a given field can be edited.
670
+ *
671
+ * @since 2.2.3
672
+ *
673
+ * @param string|CMB2_Field $field_id Field ID or CMB2_Field object.
674
+ * @param boolean $return_object Whether to return the Field object.
675
+ *
676
+ * @return mixed False if field can't be edited or true|CMB2_Field object.
677
+ */
678
+ public function field_can_edit( $field_id, $return_object = false ) {
679
+ return $this->field_can( 'edit_fields', $field_id, $return_object );
680
+ }
681
+
682
+ /**
683
+ * Checks if a given field can be read or edited.
684
+ *
685
+ * @since 2.2.3
686
+ *
687
+ * @param string $type Whether we are checking for read or edit fields.
688
+ * @param string|CMB2_Field $field_id Field ID or CMB2_Field object.
689
+ * @param boolean $return_object Whether to return the Field object.
690
+ *
691
+ * @return mixed False if field can't be read or edited or true|CMB2_Field object.
692
+ */
693
+ protected function field_can( $type = 'read_fields', $field_id, $return_object = false ) {
694
+ if ( ! in_array( $field_id instanceof CMB2_Field ? $field_id->id() : $field_id, $this->{$type}, true ) ) {
695
+ return false;
696
+ }
697
+
698
+ return $return_object ? $this->cmb->get_field( $field_id ) : true;
699
+ }
700
+
701
+ /**
702
+ * Get a CMB2_REST instance object from the registry by a CMB2 id.
703
+ *
704
+ * @since 2.2.3
705
+ *
706
+ * @param string $cmb_id CMB2 config id
707
+ *
708
+ * @return CMB2_REST|false The CMB2_REST object or false.
709
+ */
710
+ public static function get_rest_box( $cmb_id ) {
711
+ return isset( self::$boxes[ $cmb_id ] ) ? self::$boxes[ $cmb_id ] : false;
712
+ }
713
+
714
+ /**
715
+ * Remove a CMB2_REST instance object from the registry.
716
+ *
717
+ * @since 2.2.3
718
+ *
719
+ * @param string $cmb_id A CMB2 instance id.
720
+ */
721
+ public static function remove( $cmb_id ) {
722
+ if ( array_key_exists( $cmb_id, self::$boxes ) ) {
723
+ unset( self::$boxes[ $cmb_id ] );
724
+ }
725
+ }
726
+
727
+ /**
728
+ * Retrieve all CMB2_REST instances from the registry.
729
+ *
730
+ * @since 2.2.3
731
+ * @return CMB2[] Array of all registered CMB2_REST instances.
732
+ */
733
+ public static function get_all() {
734
+ return self::$boxes;
735
+ }
736
+
737
+ /**
738
+ * Checks if given value is readable.
739
+ *
740
+ * Value is considered readable if it is not empty and if it does not match the editable blacklist.
741
+ *
742
+ * @since 2.2.3
743
+ *
744
+ * @param mixed $value Value to check.
745
+ *
746
+ * @return boolean Whether value is considered readable.
747
+ */
748
+ public static function is_readable( $value ) {
749
+ return ! empty( $value ) && ! in_array( $value, array(
750
+ WP_REST_Server::CREATABLE,
751
+ WP_REST_Server::EDITABLE,
752
+ WP_REST_Server::DELETABLE,
753
+ ), true );
754
+ }
755
+
756
+ /**
757
+ * Checks if given value is editable.
758
+ *
759
+ * Value is considered editable if matches the editable whitelist.
760
+ *
761
+ * @since 2.2.3
762
+ *
763
+ * @param mixed $value Value to check.
764
+ *
765
+ * @return boolean Whether value is considered editable.
766
+ */
767
+ public static function is_editable( $value ) {
768
+ return in_array( $value, array(
769
+ WP_REST_Server::EDITABLE,
770
+ WP_REST_Server::ALLMETHODS,
771
+ ), true );
772
+ }
773
+
774
+ /**
775
+ * Magic getter for our object.
776
+ *
777
+ * @param string $field
778
+ * @throws Exception Throws an exception if the field is invalid.
779
+ *
780
+ * @return mixed
781
+ */
782
+ public function __get( $field ) {
783
+ switch ( $field ) {
784
+ case 'read_fields':
785
+ case 'edit_fields':
786
+ case 'rest_read':
787
+ case 'rest_edit':
788
+ return $this->{$field};
789
+ default:
790
+ throw new Exception( 'Invalid ' . __CLASS__ . ' property: ' . $field );
791
+ }
792
+ }
793
+
794
+ }
includes/plus-options/metabox/includes/rest-api/CMB2_REST_Controller.php ADDED
@@ -0,0 +1,448 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists( 'WP_REST_Controller' ) ) {
3
+ // Shim the WP_REST_Controller class if wp-api plugin not installed, & not in core.
4
+ require_once cmb2_dir( 'includes/shim/WP_REST_Controller.php' );
5
+ }
6
+
7
+ /**
8
+ * Creates CMB2 objects/fields endpoint for WordPres REST API.
9
+ * Allows access to fields registered to a specific post type and more.
10
+ *
11
+ * @todo Add better documentation.
12
+ * @todo Research proper schema.
13
+ *
14
+ * @since 2.2.3
15
+ *
16
+ * @category WordPress_Plugin
17
+ * @package CMB2
18
+ * @author CMB2 team
19
+ * @license GPL-2.0+
20
+ * @link https://cmb2.io
21
+ */
22
+ abstract class CMB2_REST_Controller extends WP_REST_Controller {
23
+
24
+ /**
25
+ * The namespace of this controller's route.
26
+ *
27
+ * @var string
28
+ */
29
+ protected $namespace = CMB2_REST::NAME_SPACE;
30
+
31
+ /**
32
+ * The base of this controller's route.
33
+ *
34
+ * @var string
35
+ */
36
+ protected $rest_base;
37
+
38
+ /**
39
+ * The current request object
40
+ *
41
+ * @var WP_REST_Request $request
42
+ * @since 2.2.3
43
+ */
44
+ public $request;
45
+
46
+ /**
47
+ * The current server object
48
+ *
49
+ * @var WP_REST_Server $server
50
+ * @since 2.2.3
51
+ */
52
+ public $server;
53
+
54
+ /**
55
+ * Box object id
56
+ *
57
+ * @var mixed
58
+ * @since 2.2.3
59
+ */
60
+ public $object_id = null;
61
+
62
+ /**
63
+ * Box object type
64
+ *
65
+ * @var string
66
+ * @since 2.2.3
67
+ */
68
+ public $object_type = '';
69
+
70
+ /**
71
+ * CMB2 Instance
72
+ *
73
+ * @var CMB2_REST
74
+ */
75
+ protected $rest_box;
76
+
77
+ /**
78
+ * CMB2_Field Instance
79
+ *
80
+ * @var CMB2_Field
81
+ */
82
+ protected $field;
83
+
84
+ /**
85
+ * The initial route
86
+ *
87
+ * @var string
88
+ * @since 2.2.3
89
+ */
90
+ protected static $route = '';
91
+
92
+ /**
93
+ * Defines which endpoint the initial request is.
94
+ *
95
+ * @var string $request_type
96
+ * @since 2.2.3
97
+ */
98
+ protected static $request_type = '';
99
+
100
+ /**
101
+ * Constructor
102
+ *
103
+ * @since 2.2.3
104
+ */
105
+ public function __construct( WP_REST_Server $wp_rest_server ) {
106
+ $this->server = $wp_rest_server;
107
+ }
108
+
109
+ /**
110
+ * A wrapper for `apply_filters` which checks for box/field properties to hook to the filter.
111
+ *
112
+ * Checks if a CMB object callback property exists, and if it does,
113
+ * hook it to the permissions filter.
114
+ *
115
+ * @since 2.2.3
116
+ *
117
+ * @param string $filter The name of the filter to apply.
118
+ * @param bool $default_access The default access for this request.
119
+ *
120
+ * @return void
121
+ */
122
+ public function maybe_hook_callback_and_apply_filters( $filter, $default_access ) {
123
+ if ( ! $this->rest_box && $this->request->get_param( 'cmb_id' ) ) {
124
+ $this->rest_box = CMB2_REST::get_rest_box( $this->request->get_param( 'cmb_id' ) );
125
+ }
126
+
127
+ $default_access = $this->maybe_hook_registered_callback( $filter, $default_access );
128
+
129
+ /**
130
+ * Apply the permissions check filter.
131
+ *
132
+ * @since 2.2.3
133
+ *
134
+ * @param bool $default_access Whether this CMB2 endpoint can be accessed.
135
+ * @param object $controller This CMB2_REST_Controller object.
136
+ */
137
+ $default_access = apply_filters( $filter, $default_access, $this );
138
+
139
+ $this->maybe_unhook_registered_callback( $filter );
140
+
141
+ return $default_access;
142
+ }
143
+
144
+ /**
145
+ * Checks if the CMB2 box has any registered callback parameters for the given filter.
146
+ *
147
+ * The registered handlers will have a property name which matches the filter, except:
148
+ * - The 'cmb2_api' prefix will be removed
149
+ * - A '_cb' suffix will be added (to stay inline with other '*_cb' parameters).
150
+ *
151
+ * @since 2.2.3
152
+ *
153
+ * @param string $filter The filter name.
154
+ * @param bool $default_val The default filter value.
155
+ *
156
+ * @return bool The possibly-modified filter value (if the '*_cb' param is non-callable).
157
+ */
158
+ public function maybe_hook_registered_callback( $filter, $default_val ) {
159
+ if ( ! $this->rest_box || is_wp_error( $this->rest_box ) ) {
160
+ return $default_val;
161
+ }
162
+
163
+ // Hook box specific filter callbacks.
164
+ $val = $this->rest_box->cmb->maybe_hook_parameter( $filter, $default_val );
165
+ if ( null !== $val ) {
166
+ $default_val = $val;
167
+ }
168
+
169
+ return $default_val;
170
+ }
171
+
172
+ /**
173
+ * Unhooks any CMB2 box registered callback parameters for the given filter.
174
+ *
175
+ * @since 2.2.3
176
+ *
177
+ * @param string $filter The filter name.
178
+ *
179
+ * @return void
180
+ */
181
+ public function maybe_unhook_registered_callback( $filter ) {
182
+ if ( ! $this->rest_box || is_wp_error( $this->rest_box ) ) {
183
+ return;
184
+ }
185
+
186
+ // Unhook box specific filter callbacks.
187
+ $this->rest_box->cmb->maybe_hook_parameter( $filter, null, 'remove_filter' );
188
+ }
189
+
190
+ /**
191
+ * Prepare a CMB2 object for serialization
192
+ *
193
+ * @since 2.2.3
194
+ *
195
+ * @param mixed $data
196
+ * @return array $data
197
+ */
198
+ public function prepare_item( $data ) {
199
+ return $this->prepare_item_for_response( $data, $this->request );
200
+ }
201
+
202
+ /**
203
+ * Output buffers a callback and returns the results.
204
+ *
205
+ * @since 2.2.3
206
+ *
207
+ * @param mixed $cb Callable function/method.
208
+ * @return mixed Results of output buffer after calling function/method.
209
+ */
210
+ public function get_cb_results( $cb ) {
211
+ $args = func_get_args();
212
+ array_shift( $args ); // ignore $cb
213
+ ob_start();
214
+ call_user_func_array( $cb, $args );
215
+
216
+ return ob_get_clean();
217
+ }
218
+
219
+ /**
220
+ * Prepare the CMB2 item for the REST response.
221
+ *
222
+ * @since 2.2.3
223
+ *
224
+ * @param mixed $item WordPress representation of the item.
225
+ * @param WP_REST_Request $request Request object.
226
+ * @return WP_REST_Response $response
227
+ */
228
+ public function prepare_item_for_response( $data, $request = null ) {
229
+ $data = $this->filter_response_by_context( $data, $this->request['context'] );
230
+
231
+ /**
232
+ * Filter the prepared CMB2 item response.
233
+ *
234
+ * @since 2.2.3
235
+ *
236
+ * @param mixed $data Prepared data
237
+ * @param object $request The WP_REST_Request object
238
+ * @param object $cmb2_endpoints This endpoints object
239
+ */
240
+ return apply_filters( 'cmb2_rest_prepare', rest_ensure_response( $data ), $this->request, $this );
241
+ }
242
+
243
+ /**
244
+ * Initiates the request property and the rest_box property if box is readable.
245
+ *
246
+ * @since 2.2.3
247
+ *
248
+ * @param WP_REST_Request $request Request object.
249
+ * @param string $request_type A description of the type of request being made.
250
+ *
251
+ * @return void
252
+ */
253
+ protected function initiate_rest_read_box( $request, $request_type ) {
254
+ $this->initiate_rest_box( $request, $request_type );
255
+
256
+ if ( ! is_wp_error( $this->rest_box ) && ! $this->rest_box->rest_read ) {
257
+ $this->rest_box = new WP_Error( 'cmb2_rest_no_read_error', __( 'This box does not have read permissions.', 'cmb2' ), array(
258
+ 'status' => 403,
259
+ ) );
260
+ }
261
+ }
262
+
263
+ /**
264
+ * Initiates the request property and the rest_box property if box is writeable.
265
+ *
266
+ * @since 2.2.3
267
+ *
268
+ * @param WP_REST_Request $request Request object.
269
+ * @param string $request_type A description of the type of request being made.
270
+ *
271
+ * @return void
272
+ */
273
+ protected function initiate_rest_edit_box( $request, $request_type ) {
274
+ $this->initiate_rest_box( $request, $request_type );
275
+
276
+ if ( ! is_wp_error( $this->rest_box ) && ! $this->rest_box->rest_edit ) {
277
+ $this->rest_box = new WP_Error( 'cmb2_rest_no_write_error', __( 'This box does not have write permissions.', 'cmb2' ), array(
278
+ 'status' => 403,
279
+ ) );
280
+ }
281
+ }
282
+
283
+ /**
284
+ * Initiates the request property and the rest_box property.
285
+ *
286
+ * @since 2.2.3
287
+ *
288
+ * @param WP_REST_Request $request Request object.
289
+ * @param string $request_type A description of the type of request being made.
290
+ *
291
+ * @return void
292
+ */
293
+ protected function initiate_rest_box( $request, $request_type ) {
294
+ $this->initiate_request( $request, $request_type );
295
+
296
+ $this->rest_box = CMB2_REST::get_rest_box( $this->request->get_param( 'cmb_id' ) );
297
+
298
+ if ( ! $this->rest_box ) {
299
+
300
+ $this->rest_box = new WP_Error( 'cmb2_rest_box_not_found_error', __( 'No box found by that id. A box needs to be registered with the "show_in_rest" parameter configured.', 'cmb2' ), array(
301
+ 'status' => 403,
302
+ ) );
303
+
304
+ } else {
305
+
306
+ if ( isset( $this->request['object_id'] ) ) {
307
+ $this->rest_box->cmb->object_id( sanitize_text_field( $this->request['object_id'] ) );
308
+ }
309
+
310
+ if ( isset( $this->request['object_type'] ) ) {
311
+ $this->rest_box->cmb->object_type( sanitize_text_field( $this->request['object_type'] ) );
312
+ }
313
+ }
314
+ }
315
+
316
+ /**
317
+ * Initiates the request property and sets up the initial static properties.
318
+ *
319
+ * @since 2.2.3
320
+ *
321
+ * @param WP_REST_Request $request Request object.
322
+ * @param string $request_type A description of the type of request being made.
323
+ *
324
+ * @return void
325
+ */
326
+ public function initiate_request( $request, $request_type ) {
327
+ $this->request = $request;
328
+
329
+ if ( ! isset( $this->request['context'] ) || empty( $this->request['context'] ) ) {
330
+ $this->request['context'] = 'view';
331
+ }
332
+
333
+ if ( ! self::$request_type ) {
334
+ self::$request_type = $request_type;
335
+ }
336
+
337
+ if ( ! self::$route ) {
338
+ self::$route = $this->request->get_route();
339
+ }
340
+ }
341
+
342
+ /**
343
+ * Useful when getting `_embed`-ed items
344
+ *
345
+ * @since 2.2.3
346
+ *
347
+ * @return string Initial requested type.
348
+ */
349
+ public static function get_intial_request_type() {
350
+ return self::$request_type;
351
+ }
352
+
353
+ /**
354
+ * Useful when getting `_embed`-ed items
355
+ *
356
+ * @since 2.2.3
357
+ *
358
+ * @return string Initial requested route.
359
+ */
360
+ public static function get_intial_route() {
361
+ return self::$route;
362
+ }
363
+
364
+ /**
365
+ * Get CMB2 fields schema, conforming to JSON Schema
366
+ *
367
+ * @since 2.2.3
368
+ *
369
+ * @return array
370
+ */
371
+ public function get_item_schema() {
372
+ $schema = array(
373
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
374
+ 'title' => 'CMB2',
375
+ 'type' => 'object',
376
+ 'properties' => array(
377
+ 'description' => array(
378
+ 'description' => __( 'A human-readable description of the object.', 'cmb2' ),
379
+ 'type' => 'string',
380
+ 'context' => array(
381
+ 'view',
382
+ ),
383
+ ),
384
+ 'name' => array(
385
+ 'description' => __( 'The id for the object.', 'cmb2' ),
386
+ 'type' => 'integer',
387
+ 'context' => array(
388
+ 'view',
389
+ ),
390
+ ),
391
+ 'name' => array(
392
+ 'description' => __( 'The title for the object.', 'cmb2' ),
393
+ 'type' => 'string',
394
+ 'context' => array(
395
+ 'view',
396
+ ),
397
+ ),
398
+ ),
399
+ );
400
+
401
+ return $this->add_additional_fields_schema( $schema );
402
+ }
403
+
404
+ /**
405
+ * Return an array of contextual links for endpoint/object
406
+ *
407
+ * @link http://v2.wp-api.org/extending/linking/
408
+ * @link http://www.iana.org/assignments/link-relations/link-relations.xhtml
409
+ *
410
+ * @since 2.2.3
411
+ *
412
+ * @param mixed $object Object to build links from.
413
+ *
414
+ * @return array Array of links
415
+ */
416
+ abstract protected function prepare_links( $object );
417
+
418
+ /**
419
+ * Get whitelisted query strings from URL for appending to link URLS.
420
+ *
421
+ * @since 2.2.3
422
+ *
423
+ * @return string URL query stringl
424
+ */
425
+ public function get_query_string() {
426
+ $defaults = array(
427
+ 'object_id' => 0,
428
+ 'object_type' => '',
429
+ '_rendered' => '',
430
+ // '_embed' => '',
431
+ );
432
+
433
+ $query_string = '';
434
+
435
+ foreach ( $defaults as $key => $value ) {
436
+ if ( isset( $this->request[ $key ] ) ) {
437
+ $query_string .= $query_string ? '&' : '?';
438
+ $query_string .= $key;
439
+ if ( $value = sanitize_text_field( $this->request[ $key ] ) ) {
440
+ $query_string .= '=' . $value;
441
+ }
442
+ }
443
+ }
444
+
445
+ return $query_string;
446
+ }
447
+
448
+ }
includes/plus-options/metabox/includes/rest-api/CMB2_REST_Controller_Boxes.php ADDED
@@ -0,0 +1,270 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 objects/boxes endpoint for WordPres REST API.
4
+ * Allows access to boxes configuration data.
5
+ *
6
+ * @todo Add better documentation.
7
+ * @todo Research proper schema.
8
+ *
9
+ * @since 2.2.3
10
+ *
11
+ * @category WordPress_Plugin
12
+ * @package CMB2
13
+ * @author CMB2 team
14
+ * @license GPL-2.0+
15
+ * @link https://cmb2.io
16
+ */
17
+ class CMB2_REST_Controller_Boxes extends CMB2_REST_Controller {
18
+
19
+ /**
20
+ * The base of this controller's route.
21
+ *
22
+ * @var string
23
+ */
24
+ protected $rest_base = 'boxes';
25
+
26
+ /**
27
+ * The combined $namespace and $rest_base for these routes.
28
+ *
29
+ * @var string
30
+ */
31
+ protected $namespace_base = '';
32
+
33
+ /**
34
+ * Constructor
35
+ *
36
+ * @since 2.2.3
37
+ */
38
+ public function __construct( WP_REST_Server $wp_rest_server ) {
39
+ $this->namespace_base = $this->namespace . '/' . $this->rest_base;
40
+ parent::__construct( $wp_rest_server );
41
+ }
42
+
43
+ /**
44
+ * Register the routes for the objects of the controller.
45
+ *
46
+ * @since 2.2.3
47
+ */
48
+ public function register_routes() {
49
+ $args = array(
50
+ '_embed' => array(
51
+ 'description' => __( 'Includes the registered fields for the box in the response.', 'cmb2' ),
52
+ ),
53
+ );
54
+
55
+ // @todo determine what belongs in the context param.
56
+ // $args['context'] = $this->get_context_param();
57
+ // $args['context']['required'] = false;
58
+ // $args['context']['default'] = 'view';
59
+ // $args['context']['enum'] = array( 'view', 'embed' );
60
+ // Returns all boxes data.
61
+ register_rest_route( $this->namespace, '/' . $this->rest_base, array(
62
+ array(
63
+ 'methods' => WP_REST_Server::READABLE,
64
+ 'permission_callback' => array( $this, 'get_items_permissions_check' ),
65
+ 'callback' => array( $this, 'get_items' ),
66
+ 'args' => $args,
67
+ ),
68
+ 'schema' => array( $this, 'get_item_schema' ),
69
+ ) );
70
+
71
+ $args['_rendered'] = array(
72
+ 'description' => __( 'Includes the fully rendered attributes, \'form_open\', \'form_close\', as well as the enqueued \'js_dependencies\' script handles, and \'css_dependencies\' stylesheet handles.', 'cmb2' ),
73
+ );
74
+
75
+ // Returns specific box's data.
76
+ register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<cmb_id>[\w-]+)', array(
77
+ array(
78
+ 'methods' => WP_REST_Server::READABLE,
79
+ 'permission_callback' => array( $this, 'get_item_permissions_check' ),
80
+ 'callback' => array( $this, 'get_item' ),
81
+ 'args' => $args,
82
+ ),
83
+ 'schema' => array( $this, 'get_item_schema' ),
84
+ ) );
85
+ }
86
+
87
+ /**
88
+ * Check if a given request has access to get boxes.
89
+ *
90
+ * @since 2.2.3
91
+ *
92
+ * @param WP_REST_Request $request Full data about the request.
93
+ * @return WP_Error|boolean
94
+ */
95
+ public function get_items_permissions_check( $request ) {
96
+ $this->initiate_request( $request, __FUNCTION__ );
97
+
98
+ /**
99
+ * By default, no special permissions needed.
100
+ *
101
+ * @since 2.2.3
102
+ *
103
+ * @param bool $can_access Whether this CMB2 endpoint can be accessed.
104
+ * @param object $controller This CMB2_REST_Controller object.
105
+ */
106
+ return apply_filters( 'cmb2_api_get_boxes_permissions_check', true, $this );
107
+ }
108
+
109
+ /**
110
+ * Get all public CMB2 boxes.
111
+ *
112
+ * @since 2.2.3
113
+ *
114
+ * @param WP_REST_Request $request Full data about the request.
115
+ * @return WP_Error|WP_REST_Response
116
+ */
117
+ public function get_items( $request ) {
118
+ $this->initiate_request( $request, 'boxes_read' );
119
+
120
+ $boxes = CMB2_REST::get_all();
121
+ if ( empty( $boxes ) ) {
122
+ return new WP_Error( 'cmb2_rest_no_boxes', __( 'No boxes found.', 'cmb2' ), array(
123
+ 'status' => 403,
124
+ ) );
125
+ }
126
+
127
+ $boxes_data = array();
128
+
129
+ // Loop and prepare boxes data.
130
+ foreach ( $boxes as $this->rest_box ) {
131
+ if (
132
+ // Make sure this box can be read
133
+ $this->rest_box->rest_read
134
+ // And make sure current user can view this box.
135
+ && $this->get_item_permissions_check_filter( $this->request )
136
+ ) {
137
+ $boxes_data[] = $this->server->response_to_data(
138
+ $this->get_rest_box(),
139
+ isset( $this->request['_embed'] )
140
+ );
141
+ }
142
+ }
143
+
144
+ return $this->prepare_item( $boxes_data );
145
+ }
146
+
147
+ /**
148
+ * Check if a given request has access to a box.
149
+ * By default, no special permissions needed, but filtering return value.
150
+ *
151
+ * @since 2.2.3
152
+ *
153
+ * @param WP_REST_Request $request Full details about the request.
154
+ * @return WP_Error|boolean
155
+ */
156
+ public function get_item_permissions_check( $request ) {
157
+ $this->initiate_rest_read_box( $request, 'box_read' );
158
+
159
+ return $this->get_item_permissions_check_filter();
160
+ }
161
+
162
+ /**
163
+ * Check by filter if a given request has access to a box.
164
+ * By default, no special permissions needed, but filtering return value.
165
+ *
166
+ * @since 2.2.3
167
+ *
168
+ * @param bool $can_access Whether the current request has access to view the box by default.
169
+ * @return WP_Error|boolean
170
+ */
171
+ public function get_item_permissions_check_filter( $can_access = true ) {
172
+ /**
173
+ * By default, no special permissions needed.
174
+ *
175
+ * @since 2.2.3
176
+ *
177
+ * @param bool $can_access Whether this CMB2 endpoint can be accessed.
178
+ * @param object $controller This CMB2_REST_Controller object.
179
+ */
180
+ return $this->maybe_hook_callback_and_apply_filters( 'cmb2_api_get_box_permissions_check', $can_access );
181
+ }
182
+
183
+ /**
184
+ * Get one CMB2 box from the collection.
185
+ *
186
+ * @since 2.2.3
187
+ *
188
+ * @param WP_REST_Request $request Full data about the request.
189
+ * @return WP_Error|WP_REST_Response
190
+ */
191
+ public function get_item( $request ) {
192
+ $this->initiate_rest_read_box( $request, 'box_read' );
193
+
194
+ if ( is_wp_error( $this->rest_box ) ) {
195
+ return $this->rest_box;
196
+ }
197
+
198
+ return $this->prepare_item( $this->get_rest_box() );
199
+ }
200
+
201
+ /**
202
+ * Get a CMB2 box prepared for REST
203
+ *
204
+ * @since 2.2.3
205
+ *
206
+ * @return array
207
+ */
208
+ public function get_rest_box() {
209
+ $cmb = $this->rest_box->cmb;
210
+
211
+ $boxes_data = $cmb->meta_box;
212
+
213
+ if ( isset( $this->request['_rendered'] ) && $this->namespace_base !== ltrim( CMB2_REST_Controller::get_intial_route(), '/' ) ) {
214
+ $boxes_data['form_open'] = $this->get_cb_results( array( $cmb, 'render_form_open' ) );
215
+ $boxes_data['form_close'] = $this->get_cb_results( array( $cmb, 'render_form_close' ) );
216
+
217
+ global $wp_scripts, $wp_styles;
218
+ $before_css = $wp_styles->queue;
219
+ $before_js = $wp_scripts->queue;
220
+
221
+ CMB2_JS::enqueue();
222
+
223
+ $boxes_data['js_dependencies'] = array_values( array_diff( $wp_scripts->queue, $before_js ) );
224
+ $boxes_data['css_dependencies'] = array_values( array_diff( $wp_styles->queue, $before_css ) );
225
+ }
226
+
227
+ // TODO: look into 'embed' parameter.
228
+ // http://demo.wp-api.org/wp-json/wp/v2/posts?_embed
229
+ unset( $boxes_data['fields'] );
230
+ // Handle callable properties.
231
+ unset( $boxes_data['show_on_cb'] );
232
+
233
+ $response = rest_ensure_response( $boxes_data );
234
+
235
+ $response->add_links( $this->prepare_links( $cmb ) );
236
+
237
+ return $response;
238
+ }
239
+
240
+ /**
241
+ * Return an array of contextual links for box/boxes.
242
+ *
243
+ * @since 2.2.3
244
+ *
245
+ * @param CMB2_REST $cmb CMB2_REST object to build links from.
246
+ *
247
+ * @return array Array of links
248
+ */
249
+ protected function prepare_links( $cmb ) {
250
+ $boxbase = $this->namespace_base . '/' . $cmb->cmb_id;
251
+ $query_string = $this->get_query_string();
252
+
253
+ return array(
254
+ // Standard Link Relations -- http://v2.wp-api.org/extending/linking/
255
+ 'self' => array(
256
+ 'href' => rest_url( $boxbase . $query_string ),
257
+ ),
258
+ 'collection' => array(
259
+ 'href' => rest_url( $this->namespace_base . $query_string ),
260
+ ),
261
+ // Custom Link Relations -- http://v2.wp-api.org/extending/linking/
262
+ // TODO URL should document relationship.
263
+ 'https://cmb2.io/fields' => array(
264
+ 'href' => rest_url( trailingslashit( $boxbase ) . 'fields' . $query_string ),
265
+ 'embeddable' => true,
266
+ ),
267
+ );
268
+ }
269
+
270
+ }
includes/plus-options/metabox/includes/rest-api/CMB2_REST_Controller_Fields.php ADDED
@@ -0,0 +1,502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB2 objects/fields endpoint for WordPres REST API.
4
+ * Allows access to fields registered to a specific box.
5
+ *
6
+ * @todo Add better documentation.
7
+ * @todo Research proper schema.
8
+ *
9
+ * @since 2.2.3
10
+ *
11
+ * @category WordPress_Plugin
12
+ * @package CMB2
13
+ * @author CMB2 team
14
+ * @license GPL-2.0+
15
+ * @link https://cmb2.io
16
+ */
17
+ class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
18
+
19
+ /**
20
+ * Register the routes for the objects of the controller.
21
+ *
22
+ * @since 2.2.3
23
+ */
24
+ public function register_routes() {
25
+ $args = array(
26
+ '_embed' => array(
27
+ 'description' => __( 'Includes the box object which the fields are registered to in the response.', 'cmb2' ),
28
+ ),
29
+ '_rendered' => array(
30
+ 'description' => __( 'When the \'_rendered\' argument is passed, the renderable field attributes will be returned fully rendered. By default, the names of the callback handers for the renderable attributes will be returned.', 'cmb2' ),
31
+ ),
32
+ 'object_id' => array(
33
+ 'description' => __( 'To view or modify the field\'s value, the \'object_id\' and \'object_type\' arguments are required.', 'cmb2' ),
34
+ ),
35
+ 'object_type' => array(
36
+ 'description' => __( 'To view or modify the field\'s value, the \'object_id\' and \'object_type\' arguments are required.', 'cmb2' ),
37
+ ),
38
+ );
39
+
40
+ // Returns specific box's fields.
41
+ register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<cmb_id>[\w-]+)/fields/', array(
42
+ array(
43
+ 'methods' => WP_REST_Server::READABLE,
44
+ 'permission_callback' => array( $this, 'get_items_permissions_check' ),
45
+ 'callback' => array( $this, 'get_items' ),
46
+ 'args' => $args,
47
+ ),
48
+ 'schema' => array( $this, 'get_item_schema' ),
49
+ ) );
50
+
51
+ $delete_args = $args;
52
+ $delete_args['object_id']['required'] = true;
53
+ $delete_args['object_type']['required'] = true;
54
+
55
+ // Returns specific field data.
56
+ register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<cmb_id>[\w-]+)/fields/(?P<field_id>[\w-]+)', array(
57
+ array(
58
+ 'methods' => WP_REST_Server::READABLE,
59
+ 'permission_callback' => array( $this, 'get_item_permissions_check' ),
60
+ 'callback' => array( $this, 'get_item' ),
61
+ 'args' => $args,
62
+ ),
63
+ array(
64
+ 'methods' => WP_REST_Server::EDITABLE,
65
+ 'permission_callback' => array( $this, 'update_item_permissions_check' ),
66
+ 'callback' => array( $this, 'update_item' ),
67
+ 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
68
+ 'args' => $args,
69
+ ),
70
+ array(
71
+ 'methods' => WP_REST_Server::DELETABLE,
72
+ 'permission_callback' => array( $this, 'delete_item_permissions_check' ),
73
+ 'callback' => array( $this, 'delete_item' ),
74
+ 'args' => $delete_args,
75
+ ),
76
+ 'schema' => array( $this, 'get_item_schema' ),
77
+ ) );
78
+ }
79
+
80
+ /**
81
+ * Check if a given request has access to get fields.
82
+ * By default, no special permissions needed, but filtering return value.
83
+ *
84
+ * @since 2.2.3
85
+ *
86
+ * @param WP_REST_Request $request Full data about the request.
87
+ * @return WP_Error|boolean
88
+ */
89
+ public function get_items_permissions_check( $request ) {
90
+ $this->initiate_rest_read_box( $request, 'fields_read' );
91
+ $can_access = true;
92
+
93
+ /**
94
+ * By default, no special permissions needed.
95
+ *
96
+ * @since 2.2.3
97
+ *
98
+ * @param bool $can_access Whether this CMB2 endpoint can be accessed.
99
+ * @param object $controller This CMB2_REST_Controller object.
100
+ */
101
+ return $this->maybe_hook_callback_and_apply_filters( 'cmb2_api_get_fields_permissions_check', $can_access );
102
+ }
103
+
104
+ /**
105
+ * Get all public CMB2 box fields.
106
+ *
107
+ * @since 2.2.3
108
+ *
109
+ * @param WP_REST_Request $request Full data about the request.
110
+ * @return WP_Error|WP_REST_Response
111
+ */
112
+ public function get_items( $request ) {
113
+ if ( ! $this->rest_box ) {
114
+ $this->initiate_rest_read_box( $request, 'fields_read' );
115
+ }
116
+
117
+ if ( is_wp_error( $this->rest_box ) ) {
118
+ return $this->rest_box;
119
+ }
120
+
121
+ $fields = array();
122
+ foreach ( $this->rest_box->cmb->prop( 'fields', array() ) as $field ) {
123
+
124
+ // Make sure this field can be read.
125
+ $this->field = $this->rest_box->field_can_read( $field['id'], true );
126
+
127
+ // And make sure current user can view this box.
128
+ if ( $this->field && $this->get_item_permissions_check_filter() ) {
129
+ $fields[ $field['id'] ] = $this->server->response_to_data(
130
+ $this->prepare_field_response(),
131
+ isset( $this->request['_embed'] )
132
+ );
133
+ }
134
+ }
135
+
136
+ return $this->prepare_item( $fields );
137
+ }
138
+
139
+ /**
140
+ * Check if a given request has access to a field.
141
+ * By default, no special permissions needed, but filtering return value.
142
+ *
143
+ * @since 2.2.3
144
+ *
145
+ * @param WP_REST_Request $request Full details about the request.
146
+ * @return WP_Error|boolean
147
+ */
148
+ public function get_item_permissions_check( $request ) {
149
+ $this->initiate_rest_read_box( $request, 'field_read' );
150
+ if ( ! is_wp_error( $this->rest_box ) ) {
151
+ $this->field = $this->rest_box->field_can_read( $this->request->get_param( 'field_id' ), true );
152
+ }
153
+
154
+ return $this->get_item_permissions_check_filter();
155
+ }
156
+
157
+ /**
158
+ * Check by filter if a given request has access to a field.
159
+ * By default, no special permissions needed, but filtering return value.
160
+ *
161
+ * @since 2.2.3
162
+ *
163
+ * @param bool $can_access Whether the current request has access to view the field by default.
164
+ * @return WP_Error|boolean
165
+ */
166
+ public function get_item_permissions_check_filter( $can_access = true ) {
167
+ /**
168
+ * By default, no special permissions needed.
169
+ *
170
+ * @since 2.2.3
171
+ *
172
+ * @param bool $can_access Whether this CMB2 endpoint can be accessed.
173
+ * @param object $controller This CMB2_REST_Controller object.
174
+ */
175
+ return $this->maybe_hook_callback_and_apply_filters( 'cmb2_api_get_field_permissions_check', $can_access );
176
+ }
177
+
178
+ /**
179
+ * Get one CMB2 field from the collection.
180
+ *
181
+ * @since 2.2.3
182
+ *
183
+ * @param WP_REST_Request $request Full data about the request.
184
+ * @return WP_Error|WP_REST_Response
185
+ */
186
+ public function get_item( $request ) {
187
+ $this->initiate_rest_read_box( $request, 'field_read' );
188
+
189
+ if ( is_wp_error( $this->rest_box ) ) {
190
+ return $this->rest_box;
191
+ }
192
+
193
+ return $this->prepare_read_field( $this->request->get_param( 'field_id' ) );
194
+ }
195
+
196
+ /**
197
+ * Check if a given request has access to update a field value.
198
+ * By default, requires 'edit_others_posts' capability, but filtering return value.
199
+ *
200
+ * @since 2.2.3
201
+ *
202
+ * @param WP_REST_Request $request Full details about the request.
203
+ * @return WP_Error|boolean
204
+ */
205
+ public function update_item_permissions_check( $request ) {
206
+ $this->initiate_rest_read_box( $request, 'field_value_update' );
207
+ if ( ! is_wp_error( $this->rest_box ) ) {
208
+ $this->field = $this->rest_box->field_can_edit( $this->request->get_param( 'field_id' ), true );
209
+ }
210
+
211
+ $can_update = current_user_can( 'edit_others_posts' );
212
+
213
+ /**
214
+ * By default, 'edit_others_posts' is required capability.
215
+ *
216
+ * @since 2.2.3
217
+ *
218
+ * @param bool $can_update Whether this CMB2 endpoint can be accessed.
219
+ * @param object $controller This CMB2_REST_Controller object.
220
+ */
221
+ return $this->maybe_hook_callback_and_apply_filters( 'cmb2_api_update_field_value_permissions_check', $can_update );
222
+ }
223
+
224
+ /**
225
+ * Update CMB2 field value.
226
+ *
227
+ * @since 2.2.3
228
+ *
229
+ * @param WP_REST_Request $request Full data about the request.
230
+ * @return WP_Error|WP_REST_Response
231
+ */
232
+ public function update_item( $request ) {
233
+ $this->initiate_rest_read_box( $request, 'field_value_update' );
234
+
235
+ if ( ! $this->request['value'] ) {
236
+ return new WP_Error( 'cmb2_rest_update_field_error', __( 'CMB2 Field value cannot be updated without the value parameter specified.', 'cmb2' ), array(
237
+ 'status' => 400,
238
+ ) );
239
+ }
240
+
241
+ return $this->modify_field_value( 'updated' );
242
+ }
243
+
244
+ /**
245
+ * Check if a given request has access to delete a field value.
246
+ * By default, requires 'delete_others_posts' capability, but filtering return value.
247
+ *
248
+ * @since 2.2.3
249
+ *
250
+ * @param WP_REST_Request $request Full details about the request.
251
+ * @return WP_Error|boolean
252
+ */
253
+ public function delete_item_permissions_check( $request ) {
254
+ $this->initiate_rest_read_box( $request, 'field_value_delete' );
255
+ if ( ! is_wp_error( $this->rest_box ) ) {
256
+ $this->field = $this->rest_box->field_can_edit( $this->request->get_param( 'field_id' ), true );
257
+ }
258
+
259
+ $can_delete = current_user_can( 'delete_others_posts' );
260
+
261
+ /**
262
+ * By default, 'delete_others_posts' is required capability.
263
+ *
264
+ * @since 2.2.3
265
+ *
266
+ * @param bool $can_delete Whether this CMB2 endpoint can be accessed.
267
+ * @param object $controller This CMB2_REST_Controller object.
268
+ */
269
+ return $this->maybe_hook_callback_and_apply_filters( 'cmb2_api_delete_field_value_permissions_check', $can_delete );
270
+ }
271
+
272
+ /**
273
+ * Delete CMB2 field value.
274
+ *
275
+ * @since 2.2.3
276
+ *
277
+ * @param WP_REST_Request $request Full data about the request.
278
+ * @return WP_Error|WP_REST_Response
279
+ */
280
+ public function delete_item( $request ) {
281
+ $this->initiate_rest_read_box( $request, 'field_value_delete' );
282
+
283
+ return $this->modify_field_value( 'deleted' );
284
+ }
285
+
286
+ /**
287
+ * Modify CMB2 field value.
288
+ *
289
+ * @since 2.2.3
290
+ *
291
+ * @param string $activity The modification activity (updated or deleted).
292
+ * @return WP_Error|WP_REST_Response
293
+ */
294
+ public function modify_field_value( $activity ) {
295
+
296
+ if ( ! $this->request['object_id'] || ! $this->request['object_type'] ) {
297
+ return new WP_Error( 'cmb2_rest_modify_field_value_error', __( 'CMB2 Field value cannot be modified without the object_id and object_type parameters specified.', 'cmb2' ), array(
298
+ 'status' => 400,
299
+ ) );
300
+ }
301
+
302
+ if ( is_wp_error( $this->rest_box ) ) {
303
+ return $this->rest_box;
304
+ }
305
+
306
+ $this->field = $this->rest_box->field_can_edit(
307
+ $this->field ? $this->field : $this->request->get_param( 'field_id' ),
308
+ true
309
+ );
310
+
311
+ if ( ! $this->field ) {
312
+ return new WP_Error( 'cmb2_rest_no_field_by_id_error', __( 'No field found by that id.', 'cmb2' ), array(
313
+ 'status' => 403,
314
+ ) );
315
+ }
316
+
317
+ $this->field->args[ "value_{$activity}" ] = (bool) 'deleted' === $activity
318
+ ? $this->field->remove_data()
319
+ : $this->field->save_field( $this->request['value'] );
320
+
321
+ // If options page, save the $activity options
322
+ if ( 'options-page' == $this->request['object_type'] ) {
323
+ $this->field->args[ "value_{$activity}" ] = cmb2_options( $this->request['object_id'] )->set();
324
+ }
325
+
326
+ return $this->prepare_read_field( $this->field );
327
+ }
328
+
329
+ /**
330
+ * Get a response object for a specific field ID.
331
+ *
332
+ * @since 2.2.3
333
+ *
334
+ * @param string\CMB2_Field Field id or Field object.
335
+ * @return WP_Error|WP_REST_Response
336
+ */
337
+ public function prepare_read_field( $field ) {
338
+ $this->field = $this->rest_box->field_can_read( $field, true );
339
+
340
+ if ( ! $this->field ) {
341
+ return new WP_Error( 'cmb2_rest_no_field_by_id_error', __( 'No field found by that id.', 'cmb2' ), array(
342
+ 'status' => 403,
343
+ ) );
344
+ }
345
+
346
+ return $this->prepare_item( $this->prepare_field_response() );
347
+ }
348
+
349
+ /**
350
+ * Get a specific field response.
351
+ *
352
+ * @since 2.2.3
353
+ *
354
+ * @param CMB2_Field Field object.
355
+ * @return array Response array.
356
+ */
357
+ public function prepare_field_response() {
358
+ $field_data = $this->prepare_field_data( $this->field );
359
+ $response = rest_ensure_response( $field_data );
360
+
361
+ $response->add_links( $this->prepare_links( $this->field ) );
362
+
363
+ return $response;
364
+ }
365
+
366
+ /**
367
+ * Prepare the field data array for JSON.
368
+ *
369
+ * @since 2.2.3
370
+ *
371
+ * @param CMB2_Field $field field object.
372
+ *
373
+ * @return array Array of field data.
374
+ */
375
+ protected function prepare_field_data( CMB2_Field $field ) {
376
+ $field_data = array();
377
+ $params_to_ignore = array( 'show_in_rest', 'options' );
378
+ $params_to_rename = array(
379
+ 'label_cb' => 'label',
380
+ 'options_cb' => 'options',
381
+ );
382
+
383
+ // Run this first so the js_dependencies arg is populated.
384
+ $rendered = ( $cb = $field->maybe_callback( 'render_row_cb' ) )
385
+ // Ok, callback is good, let's run it.
386
+ ? $this->get_cb_results( $cb, $field->args(), $field )
387
+ : false;
388
+
389
+ $field_args = $field->args();
390
+
391
+ foreach ( $field_args as $key => $value ) {
392
+ if ( in_array( $key, $params_to_ignore, true ) ) {
393
+ continue;
394
+ }
395
+
396
+ if ( 'options_cb' === $key ) {
397
+ $value = $field->options();
398
+ } elseif ( in_array( $key, CMB2_Field::$callable_fields, true ) ) {
399
+
400
+ if ( isset( $this->request['_rendered'] ) ) {
401
+ $value = $key === 'render_row_cb' ? $rendered : $field->get_param_callback_result( $key );
402
+ } elseif ( is_array( $value ) ) {
403
+ // We need to rewrite callbacks as string as they will cause
404
+ // JSON recursion errors.
405
+ $class = is_string( $value[0] ) ? $value[0] : get_class( $value[0] );
406
+ $value = $class . '::' . $value[1];
407
+ }
408
+ }
409
+
410
+ $key = isset( $params_to_rename[ $key ] ) ? $params_to_rename[ $key ] : $key;
411
+
412
+ if ( empty( $value ) || is_scalar( $value ) || is_array( $value ) ) {
413
+ $field_data[ $key ] = $value;
414
+ } else {
415
+ $field_data[ $key ] = sprintf( __( 'Value Error for %s', 'cmb2' ), $key );
416
+ }
417
+ }
418
+
419
+ if ( $this->request['object_id'] && $this->request['object_type'] ) {
420
+ $field_data['value'] = $field->get_rest_value();
421
+ }
422
+
423
+ return $field_data;
424
+ }
425
+
426
+ /**
427
+ * Return an array of contextual links for field/fields.
428
+ *
429
+ * @since 2.2.3
430
+ *
431
+ * @param CMB2_Field $field Field object to build links from.
432
+ *
433
+ * @return array Array of links
434
+ */
435
+ protected function prepare_links( $field ) {
436
+ $boxbase = $this->namespace_base . '/' . $this->rest_box->cmb->cmb_id;
437
+ $query_string = $this->get_query_string();
438
+
439
+ $links = array(
440
+ 'self' => array(
441
+ 'href' => rest_url( trailingslashit( $boxbase ) . 'fields/' . $field->_id() . $query_string ),
442
+ ),
443
+ 'collection' => array(
444
+ 'href' => rest_url( trailingslashit( $boxbase ) . 'fields' . $query_string ),
445
+ ),
446
+ 'up' => array(
447
+ 'embeddable' => true,
448
+ 'href' => rest_url( $boxbase . $query_string ),
449
+ ),
450
+ );
451
+
452
+ return $links;
453
+ }
454
+
455
+ /**
456
+ * Checks if the CMB2 box or field has any registered callback parameters for the given filter.
457
+ *
458
+ * The registered handlers will have a property name which matches the filter, except:
459
+ * - The 'cmb2_api' prefix will be removed
460
+ * - A '_cb' suffix will be added (to stay inline with other '*_cb' parameters).
461
+ *
462
+ * @since 2.2.3
463
+ *
464
+ * @param string $filter The filter name.
465
+ * @param bool $default_val The default filter value.
466
+ *
467
+ * @return bool The possibly-modified filter value (if the _cb param is a non-callable).
468
+ */
469
+ public function maybe_hook_registered_callback( $filter, $default_val ) {
470
+ $default_val = parent::maybe_hook_registered_callback( $filter, $default_val );
471
+
472
+ if ( $this->field ) {
473
+
474
+ // Hook field specific filter callbacks.
475
+ $val = $this->field->maybe_hook_parameter( $filter, $default_val );
476
+ if ( null !== $val ) {
477
+ $default_val = $val;
478
+ }
479
+ }
480
+
481
+ return $default_val;
482
+ }
483
+
484
+ /**
485
+ * Unhooks any CMB2 box or field registered callback parameters for the given filter.
486
+ *
487
+ * @since 2.2.3
488
+ *
489
+ * @param string $filter The filter name.
490
+ *
491
+ * @return void
492
+ */
493
+ public function maybe_unhook_registered_callback( $filter ) {
494
+ parent::maybe_unhook_registered_callback( $filter );
495
+
496
+ if ( $this->field ) {
497
+ // Unhook field specific filter callbacks.
498
+ $this->field->maybe_hook_parameter( $filter, null, 'remove_filter' );
499
+ }
500
+ }
501
+
502
+ }
includes/plus-options/metabox/includes/shim/WP_REST_Controller.php ADDED
@@ -0,0 +1,541 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ abstract class WP_REST_Controller {
5
+
6
+ /**
7
+ * The namespace of this controller's route.
8
+ *
9
+ * @var string
10
+ */
11
+ protected $namespace;
12
+
13
+ /**
14
+ * The base of this controller's route.
15
+ *
16
+ * @var string
17
+ */
18
+ protected $rest_base;
19
+
20
+ /**
21
+ * Register the routes for the objects of the controller.
22
+ */
23
+ public function register_routes() {
24
+ /* translators: %s: register_routes() */
25
+ _doing_it_wrong( 'WP_REST_Controller::register_routes', sprintf( __( "Method '%s' must be overridden." ), __METHOD__ ), '4.7' );
26
+ }
27
+
28
+ /**
29
+ * Check if a given request has access to get items.
30
+ *
31
+ * @param WP_REST_Request $request Full data about the request.
32
+ * @return WP_Error|boolean
33
+ */
34
+ public function get_items_permissions_check( $request ) {
35
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
36
+ 'status' => 405,
37
+ ) );
38
+ }
39
+
40
+ /**
41
+ * Get a collection of items.
42
+ *
43
+ * @param WP_REST_Request $request Full data about the request.
44
+ * @return WP_Error|WP_REST_Response
45
+ */
46
+ public function get_items( $request ) {
47
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
48
+ 'status' => 405,
49
+ ) );
50
+ }
51
+
52
+ /**
53
+ * Check if a given request has access to get a specific item.
54
+ *
55
+ * @param WP_REST_Request $request Full data about the request.
56
+ * @return WP_Error|boolean
57
+ */
58
+ public function get_item_permissions_check( $request ) {
59
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
60
+ 'status' => 405,
61
+ ) );
62
+ }
63
+
64
+ /**
65
+ * Get one item from the collection.
66
+ *
67
+ * @param WP_REST_Request $request Full data about the request.
68
+ * @return WP_Error|WP_REST_Response
69
+ */
70
+ public function get_item( $request ) {
71
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
72
+ 'status' => 405,
73
+ ) );
74
+ }
75
+
76
+ /**
77
+ * Check if a given request has access to create items.
78
+ *
79
+ * @param WP_REST_Request $request Full data about the request.
80
+ * @return WP_Error|boolean
81
+ */
82
+ public function create_item_permissions_check( $request ) {
83
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
84
+ 'status' => 405,
85
+ ) );
86
+ }
87
+
88
+ /**
89
+ * Create one item from the collection.
90
+ *
91
+ * @param WP_REST_Request $request Full data about the request.
92
+ * @return WP_Error|WP_REST_Response
93
+ */
94
+ public function create_item( $request ) {
95
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
96
+ 'status' => 405,
97
+ ) );
98
+ }
99
+
100
+ /**
101
+ * Check if a given request has access to update a specific item.
102
+ *
103
+ * @param WP_REST_Request $request Full data about the request.
104
+ * @return WP_Error|boolean
105
+ */
106
+ public function update_item_permissions_check( $request ) {
107
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
108
+ 'status' => 405,
109
+ ) );
110
+ }
111
+
112
+ /**
113
+ * Update one item from the collection.
114
+ *
115
+ * @param WP_REST_Request $request Full data about the request.
116
+ * @return WP_Error|WP_REST_Response
117
+ */
118
+ public function update_item( $request ) {
119
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
120
+ 'status' => 405,
121
+ ) );
122
+ }
123
+
124
+ /**
125
+ * Check if a given request has access to delete a specific item.
126
+ *
127
+ * @param WP_REST_Request $request Full data about the request.
128
+ * @return WP_Error|boolean
129
+ */
130
+ public function delete_item_permissions_check( $request ) {
131
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
132
+ 'status' => 405,
133
+ ) );
134
+ }
135
+
136
+ /**
137
+ * Delete one item from the collection.
138
+ *
139
+ * @param WP_REST_Request $request Full data about the request.
140
+ * @return WP_Error|WP_REST_Response
141
+ */
142
+ public function delete_item( $request ) {
143
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
144
+ 'status' => 405,
145
+ ) );
146
+ }
147
+
148
+ /**
149
+ * Prepare the item for create or update operation.
150
+ *
151
+ * @param WP_REST_Request $request Request object.
152
+ * @return WP_Error|object $prepared_item
153
+ */
154
+ protected function prepare_item_for_database( $request ) {
155
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
156
+ 'status' => 405,
157
+ ) );
158
+ }
159
+
160
+ /**
161
+ * Prepare the item for the REST response.
162
+ *
163
+ * @param mixed $item WordPress representation of the item.
164
+ * @param WP_REST_Request $request Request object.
165
+ * @return WP_REST_Response $response
166
+ */
167
+ public function prepare_item_for_response( $item, $request ) {
168
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
169
+ 'status' => 405,
170
+ ) );
171
+ }
172
+
173
+ /**
174
+ * Prepare a response for inserting into a collection.
175
+ *
176
+ * @param WP_REST_Response $response Response object.
177
+ * @return array Response data, ready for insertion into collection data.
178
+ */
179
+ public function prepare_response_for_collection( $response ) {
180
+ if ( ! ( $response instanceof WP_REST_Response ) ) {
181
+ return $response;
182
+ }
183
+
184
+ $data = (array) $response->get_data();
185
+ $server = rest_get_server();
186
+
187
+ if ( method_exists( $server, 'get_compact_response_links' ) ) {
188
+ $links = call_user_func( array( $server, 'get_compact_response_links' ), $response );
189
+ } else {
190
+ $links = call_user_func( array( $server, 'get_response_links' ), $response );
191
+ }
192
+
193
+ if ( ! empty( $links ) ) {
194
+ $data['_links'] = $links;
195
+ }
196
+
197
+ return $data;
198
+ }
199
+
200
+ /**
201
+ * Filter a response based on the context defined in the schema.
202
+ *
203
+ * @param array $data
204
+ * @param string $context
205
+ * @return array
206
+ */
207
+ public function filter_response_by_context( $data, $context ) {
208
+
209
+ $schema = $this->get_item_schema();
210
+ foreach ( $data as $key => $value ) {
211
+ if ( empty( $schema['properties'][ $key ] ) || empty( $schema['properties'][ $key ]['context'] ) ) {
212
+ continue;
213
+ }
214
+
215
+ if ( ! in_array( $context, $schema['properties'][ $key ]['context'] ) ) {
216
+ unset( $data[ $key ] );
217
+ continue;
218
+ }
219
+
220
+ if ( 'object' === $schema['properties'][ $key ]['type'] && ! empty( $schema['properties'][ $key ]['properties'] ) ) {
221
+ foreach ( $schema['properties'][ $key ]['properties'] as $attribute => $details ) {
222
+ if ( empty( $details['context'] ) ) {
223
+ continue;
224
+ }
225
+ if ( ! in_array( $context, $details['context'] ) ) {
226
+ if ( isset( $data[ $key ][ $attribute ] ) ) {
227
+ unset( $data[ $key ][ $attribute ] );
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+
234
+ return $data;
235
+ }
236
+
237
+ /**
238
+ * Get the item's schema, conforming to JSON Schema.
239
+ *
240
+ * @return array
241
+ */
242
+ public function get_item_schema() {
243
+ return $this->add_additional_fields_schema( array() );
244
+ }
245
+
246
+ /**
247
+ * Get the item's schema for display / public consumption purposes.
248
+ *
249
+ * @return array
250
+ */
251
+ public function get_public_item_schema() {
252
+
253
+ $schema = $this->get_item_schema();
254
+
255
+ foreach ( $schema['properties'] as &$property ) {
256
+ if ( isset( $property['arg_options'] ) ) {
257
+ unset( $property['arg_options'] );
258
+ }
259
+ }
260
+
261
+ return $schema;
262
+ }
263
+
264
+ /**
265
+ * Get the query params for collections.
266
+ *
267
+ * @return array
268
+ */
269
+ public function get_collection_params() {
270
+ return array(
271
+ 'context' => $this->get_context_param(),
272
+ 'page' => array(
273
+ 'description' => __( 'Current page of the collection.' ),
274
+ 'type' => 'integer',
275
+ 'default' => 1,
276
+ 'sanitize_callback' => 'absint',
277
+ 'validate_callback' => 'rest_validate_request_arg',
278
+ 'minimum' => 1,
279
+ ),
280
+ 'per_page' => array(
281
+ 'description' => __( 'Maximum number of items to be returned in result set.' ),
282
+ 'type' => 'integer',
283
+ 'default' => 10,
284
+ 'minimum' => 1,
285
+ 'maximum' => 100,
286
+ 'sanitize_callback' => 'absint',
287
+ 'validate_callback' => 'rest_validate_request_arg',
288
+ ),
289
+ 'search' => array(
290
+ 'description' => __( 'Limit results to those matching a string.' ),
291
+ 'type' => 'string',
292
+ 'sanitize_callback' => 'sanitize_text_field',
293
+ 'validate_callback' => 'rest_validate_request_arg',
294
+ ),
295
+ );
296
+ }
297
+
298
+ /**
299
+ * Get the magical context param.
300
+ *
301
+ * Ensures consistent description between endpoints, and populates enum from schema.
302
+ *
303
+ * @param array $args
304
+ * @return array
305
+ */
306
+ public function get_context_param( $args = array() ) {
307
+ $param_details = array(
308
+ 'description' => __( 'Scope under which the request is made; determines fields present in response.' ),
309
+ 'type' => 'string',
310
+ 'sanitize_callback' => 'sanitize_key',
311
+ 'validate_callback' => 'rest_validate_request_arg',
312
+ );
313
+ $schema = $this->get_item_schema();
314
+ if ( empty( $schema['properties'] ) ) {
315
+ return array_merge( $param_details, $args );
316
+ }
317
+ $contexts = array();
318
+ foreach ( $schema['properties'] as $attributes ) {
319
+ if ( ! empty( $attributes['context'] ) ) {
320
+ $contexts = array_merge( $contexts, $attributes['context'] );
321
+ }
322
+ }
323
+ if ( ! empty( $contexts ) ) {
324
+ $param_details['enum'] = array_unique( $contexts );
325
+ rsort( $param_details['enum'] );
326
+ }
327
+ return array_merge( $param_details, $args );
328
+ }
329
+
330
+ /**
331
+ * Add the values from additional fields to a data object.
332
+ *
333
+ * @param array $object
334
+ * @param WP_REST_Request $request
335
+ * @return array modified object with additional fields.
336
+ */
337
+ protected function add_additional_fields_to_object( $object, $request ) {
338
+
339
+ $additional_fields = $this->get_additional_fields();
340
+
341
+ foreach ( $additional_fields as $field_name => $field_options ) {
342
+
343
+ if ( ! $field_options['get_callback'] ) {
344
+ continue;
345
+ }
346
+
347
+ $object[ $field_name ] = call_user_func( $field_options['get_callback'], $object, $field_name, $request, $this->get_object_type() );
348
+ }
349
+
350
+ return $object;
351
+ }
352
+
353
+ /**
354
+ * Update the values of additional fields added to a data object.
355
+ *
356
+ * @param array $object
357
+ * @param WP_REST_Request $request
358
+ */
359
+ protected function update_additional_fields_for_object( $object, $request ) {
360
+
361
+ $additional_fields = $this->get_additional_fields();
362
+
363
+ foreach ( $additional_fields as $field_name => $field_options ) {
364
+
365
+ if ( ! $field_options['update_callback'] ) {
366
+ continue;
367
+ }
368
+
369
+ // Don't run the update callbacks if the data wasn't passed in the request.
370
+ if ( ! isset( $request[ $field_name ] ) ) {
371
+ continue;
372
+ }
373
+
374
+ call_user_func( $field_options['update_callback'], $request[ $field_name ], $object, $field_name, $request, $this->get_object_type() );
375
+ }
376
+ }
377
+
378
+ /**
379
+ * Add the schema from additional fields to an schema array.
380
+ *
381
+ * The type of object is inferred from the passed schema.
382
+ *
383
+ * @param array $schema Schema array.
384
+ */
385
+ protected function add_additional_fields_schema( $schema ) {
386
+ if ( empty( $schema['title'] ) ) {
387
+ return $schema;
388
+ }
389
+
390
+ /**
391
+ * Can't use $this->get_object_type otherwise we cause an inf loop.
392
+ */
393
+ $object_type = $schema['title'];
394
+
395
+ $additional_fields = $this->get_additional_fields( $object_type );
396
+
397
+ foreach ( $additional_fields as $field_name => $field_options ) {
398
+ if ( ! $field_options['schema'] ) {
399
+ continue;
400
+ }
401
+
402
+ $schema['properties'][ $field_name ] = $field_options['schema'];
403
+ }
404
+
405
+ return $schema;
406
+ }
407
+
408
+ /**
409
+ * Get all the registered additional fields for a given object-type.
410
+ *
411
+ * @param string $object_type
412
+ * @return array
413
+ */
414
+ protected function get_additional_fields( $object_type = null ) {
415
+
416
+ if ( ! $object_type ) {
417
+ $object_type = $this->get_object_type();
418
+ }
419
+
420
+ if ( ! $object_type ) {
421
+ return array();
422
+ }
423
+
424
+ global $wp_rest_additional_fields;
425
+
426
+ if ( ! $wp_rest_additional_fields || ! isset( $wp_rest_additional_fields[ $object_type ] ) ) {
427
+ return array();
428
+ }
429
+
430
+ return $wp_rest_additional_fields[ $object_type ];
431
+ }
432
+
433
+ /**
434
+ * Get the object type this controller is responsible for managing.
435
+ *
436
+ * @return string
437
+ */
438
+ protected function get_object_type() {
439
+ $schema = $this->get_item_schema();
440
+
441
+ if ( ! $schema || ! isset( $schema['title'] ) ) {
442
+ return null;
443
+ }
444
+
445
+ return $schema['title'];
446
+ }
447
+
448
+ /**
449
+ * Get an array of endpoint arguments from the item schema for the controller.
450
+ *
451
+ * @param string $method HTTP method of the request. The arguments
452
+ * for `CREATABLE` requests are checked for required
453
+ * values and may fall-back to a given default, this
454
+ * is not done on `EDITABLE` requests. Default is
455
+ * WP_REST_Server::CREATABLE.
456
+ * @return array $endpoint_args
457
+ */
458
+ public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
459
+
460
+ $schema = $this->get_item_schema();
461
+ $schema_properties = ! empty( $schema['properties'] ) ? $schema['properties'] : array();
462
+ $endpoint_args = array();
463
+
464
+ foreach ( $schema_properties as $field_id => $params ) {
465
+
466
+ // Arguments specified as `readonly` are not allowed to be set.
467
+ if ( ! empty( $params['readonly'] ) ) {
468
+ continue;
469
+ }
470
+
471
+ $endpoint_args[ $field_id ] = array(
472
+ 'validate_callback' => 'rest_validate_request_arg',
473
+ 'sanitize_callback' => 'rest_sanitize_request_arg',
474
+ );
475
+
476
+ if ( isset( $params['description'] ) ) {
477
+ $endpoint_args[ $field_id ]['description'] = $params['description'];
478
+ }
479
+
480
+ if ( WP_REST_Server::CREATABLE === $method && isset( $params['default'] ) ) {
481
+ $endpoint_args[ $field_id ]['default'] = $params['default'];
482
+ }
483
+
484
+ if ( WP_REST_Server::CREATABLE === $method && ! empty( $params['required'] ) ) {
485
+ $endpoint_args[ $field_id ]['required'] = true;
486
+ }
487
+
488
+ foreach ( array( 'type', 'format', 'enum' ) as $schema_prop ) {
489
+ if ( isset( $params[ $schema_prop ] ) ) {
490
+ $endpoint_args[ $field_id ][ $schema_prop ] = $params[ $schema_prop ];
491
+ }
492
+ }
493
+
494
+ // Merge in any options provided by the schema property.
495
+ if ( isset( $params['arg_options'] ) ) {
496
+
497
+ // Only use required / default from arg_options on CREATABLE endpoints.
498
+ if ( WP_REST_Server::CREATABLE !== $method ) {
499
+ $params['arg_options'] = array_diff_key( $params['arg_options'], array(
500
+ 'required' => '',
501
+ 'default' => '',
502
+ ) );
503
+ }
504
+
505
+ $endpoint_args[ $field_id ] = array_merge( $endpoint_args[ $field_id ], $params['arg_options'] );
506
+ }
507
+ }// End foreach().
508
+
509
+ return $endpoint_args;
510
+ }
511
+
512
+ /**
513
+ * Retrieves post data given a post ID or post object.
514
+ *
515
+ * This is a subset of the functionality of the `get_post()` function, with
516
+ * the additional functionality of having `the_post` action done on the
517
+ * resultant post object. This is done so that plugins may manipulate the
518
+ * post that is used in the REST API.
519
+ *
520
+ * @see get_post()
521
+ * @global WP_Query $wp_query
522
+ *
523
+ * @param int|WP_Post $post Post ID or post object. Defaults to global $post.
524
+ * @return WP_Post|null A `WP_Post` object when successful.
525
+ */
526
+ public function get_post( $post ) {
527
+ $post_obj = get_post( $post );
528
+
529
+ /**
530
+ * Filter the post.
531
+ *
532
+ * Allows plugins to filter the post object as returned by `\WP_REST_Controller::get_post()`.
533
+ *
534
+ * @param WP_Post|null $post_obj The post object as returned by `get_post()`.
535
+ * @param int|WP_Post $post The original value used to obtain the post object.
536
+ */
537
+ $post = apply_filters( 'rest_the_post', $post_obj, $post );
538
+
539
+ return $post;
540
+ }
541
+ }
includes/plus-options/metabox/includes/types/CMB2_Type_Base.php ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB base field type
4
+ *
5
+ * @since 2.2.2
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ abstract class CMB2_Type_Base {
14
+
15
+ /**
16
+ * The CMB2_Types object
17
+ *
18
+ * @var CMB2_Types
19
+ */
20
+ public $types;
21
+
22
+ /**
23
+ * Arguments for use in the render method
24
+ *
25
+ * @var array
26
+ */
27
+ public $args;
28
+
29
+ /**
30
+ * Rendered output (if 'rendered' argument is set to false)
31
+ *
32
+ * @var string
33
+ */
34
+ protected $rendered = '';
35
+
36
+ /**
37
+ * Constructor
38
+ *
39
+ * @since 2.2.2
40
+ * @param CMB2_Types $types Object for the field type.
41
+ * @param array $args Array of arguments for the type.
42
+ */
43
+ public function __construct( CMB2_Types $types, $args = array() ) {
44
+ $this->types = $types;
45
+ $args['rendered'] = isset( $args['rendered'] ) ? (bool) $args['rendered'] : true;
46
+ $this->args = $args;
47
+ }
48
+
49
+ /**
50
+ * Handles rendering this field type.
51
+ *
52
+ * @since 2.2.2
53
+ * @return string Rendered field type.
54
+ */
55
+ abstract public function render();
56
+
57
+ /**
58
+ * Stores the rendered field output.
59
+ *
60
+ * @since 2.2.2
61
+ * @param string|CMB2_Type_Base $rendered Rendered output.
62
+ * @return string|CMB2_Type_Base Rendered output or this object.
63
+ */
64
+ public function rendered( $rendered ) {
65
+ $this->field->register_js_data();
66
+
67
+ if ( $this->args['rendered'] ) {
68
+ return is_a( $rendered, __CLASS__ ) ? $rendered->rendered : $rendered;
69
+ }
70
+
71
+ $this->rendered = is_a( $rendered, __CLASS__ ) ? $rendered->rendered : $rendered;
72
+
73
+ return $this;
74
+ }
75
+
76
+ /**
77
+ * Returns the stored rendered field output.
78
+ *
79
+ * @since 2.2.2
80
+ * @return string Stored rendered output (if 'rendered' argument is set to false).
81
+ */
82
+ public function get_rendered() {
83
+ return $this->rendered;
84
+ }
85
+
86
+ /**
87
+ * Handles parsing and filtering attributes while preserving any passed in via field config.
88
+ *
89
+ * @since 1.1.0
90
+ * @param string $element Element for filter.
91
+ * @param array $type_defaults Type default arguments.
92
+ * @param array $type_overrides Type override arguments.
93
+ * @return array Parsed and filtered arguments.
94
+ */
95
+ public function parse_args( $element, $type_defaults, $type_overrides = array() ) {
96
+ $args = $this->parse_args_from_overrides( $type_overrides );
97
+
98
+ /**
99
+ * Filter attributes for a field type.
100
+ * The dynamic portion of the hook name, $element, refers to the field type.
101
+ *
102
+ * @since 1.1.0
103
+ * @param array $args The array of attribute arguments.
104
+ * @param array $type_defaults The array of default values.
105
+ * @param array $field The `CMB2_Field` object.
106
+ * @param object $field_type_object This `CMB2_Types` object.
107
+ */
108
+ $args = apply_filters( "cmb2_{$element}_attributes", $args, $type_defaults, $this->field, $this->types );
109
+
110
+ $args = wp_parse_args( $args, $type_defaults );
111
+
112
+ if ( ! empty( $args['js_dependencies'] ) ) {
113
+ $this->field->add_js_dependencies( $args['js_dependencies'] );
114
+ }
115
+
116
+ return $args;
117
+ }
118
+
119
+ /**
120
+ * Handles parsing and filtering attributes while preserving any passed in via field config.
121
+ *
122
+ * @since 2.2.4
123
+ * @param array $type_overrides Type override arguments.
124
+ * @return array Parsed arguments
125
+ */
126
+ protected function parse_args_from_overrides( $type_overrides = array() ) {
127
+ $type_overrides = empty( $type_overrides ) ? $this->args : $type_overrides;
128
+
129
+ if ( true !== $this->field->args( 'disable_hash_data_attribute' ) ) {
130
+ $type_overrides['data-hash'] = $this->field->hash_id();
131
+ }
132
+
133
+ $field_overrides = $this->field->args( 'attributes' );
134
+
135
+ return ! empty( $field_overrides )
136
+ ? wp_parse_args( $field_overrides, $type_overrides )
137
+ : $type_overrides;
138
+ }
139
+
140
+ /**
141
+ * Fall back to CMB2_Types methods
142
+ *
143
+ * @param string $method Method name being invoked.
144
+ * @param array $arguments Arguments passed for the method.
145
+ * @throws Exception Throws an exception if the field is invalid.
146
+ * @return mixed
147
+ */
148
+ public function __call( $method, $arguments ) {
149
+ switch ( $method ) {
150
+ case '_id':
151
+ case '_name':
152
+ case '_desc':
153
+ case '_text':
154
+ case 'concat_attrs':
155
+ return call_user_func_array( array( $this->types, $method ), $arguments );
156
+ default:
157
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s method: %2$s', 'cmb2' ), __CLASS__, $method ) );
158
+ }
159
+ }
160
+
161
+ /**
162
+ * Magic getter for our object.
163
+ *
164
+ * @param string $field Property being requested.
165
+ * @throws Exception Throws an exception if the field is invalid.
166
+ * @return mixed
167
+ */
168
+ public function __get( $field ) {
169
+ switch ( $field ) {
170
+ case 'field':
171
+ return $this->types->field;
172
+ default:
173
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
174
+ }
175
+ }
176
+
177
+ }
includes/plus-options/metabox/includes/types/CMB2_Type_Checkbox.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB checkbox field type
4
+ *
5
+ * @since 2.2.2
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Type_Checkbox extends CMB2_Type_Text {
14
+
15
+ /**
16
+ * If checkbox is checked
17
+ *
18
+ * @var mixed
19
+ */
20
+ public $is_checked = null;
21
+
22
+ /**
23
+ * Constructor
24
+ *
25
+ * @since 2.2.2
26
+ *
27
+ * @param CMB2_Types $types Object for the field type.
28
+ * @param array $args Array of arguments for the type.
29
+ * @param mixed $is_checked Whether or not the field is checked, or default value.
30
+ */
31
+ public function __construct( CMB2_Types $types, $args = array(), $is_checked = null ) {
32
+ parent::__construct( $types, $args );
33
+ $this->is_checked = $is_checked;
34
+ }
35
+
36
+ /**
37
+ * Render the field for the field type.
38
+ *
39
+ * @since 2.2.2
40
+ *
41
+ * @param array $args Array of arguments for the rendering.
42
+ * @return CMB2_Type_Base|string
43
+ */
44
+ public function render( $args = array() ) {
45
+ $defaults = array(
46
+ 'type' => 'checkbox',
47
+ 'class' => 'cmb2-option cmb2-list',
48
+ 'value' => 'on',
49
+ 'desc' => '',
50
+ );
51
+
52
+ $meta_value = $this->field->escaped_value();
53
+
54
+ $is_checked = null === $this->is_checked
55
+ ? ! empty( $meta_value )
56
+ : $this->is_checked;
57
+
58
+ if ( $is_checked ) {
59
+ $defaults['checked'] = 'checked';
60
+ }
61
+
62
+ $args = $this->parse_args( 'checkbox', $defaults );
63
+
64
+ return $this->rendered(
65
+ sprintf(
66
+ '%s <label for="%s">%s</label>',
67
+ parent::render( $args ),
68
+ $this->_id(),
69
+ $this->_desc()
70
+ )
71
+ );
72
+ }
73
+
74
+ }
includes/plus-options/metabox/includes/types/CMB2_Type_Colorpicker.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB colorpicker field type
4
+ *
5
+ * @since 2.2.2
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Type_Colorpicker extends CMB2_Type_Text {
14
+
15
+ /**
16
+ * The optional value for the colorpicker field
17
+ *
18
+ * @var string
19
+ */
20
+ public $value = '';
21
+
22
+ /**
23
+ * Constructor
24
+ *
25
+ * @since 2.2.2
26
+ *
27
+ * @param CMB2_Types $types Object for the field type.
28
+ * @param array $args Array of arguments for the type.
29
+ * @param string $value Value that the field type is currently set to, or default value.
30
+ */
31
+ public function __construct( CMB2_Types $types, $args = array(), $value = '' ) {
32
+ parent::__construct( $types, $args );
33
+ $this->value = $value ? $value : $this->value;
34
+ }
35
+
36
+ /**
37
+ * Render the field for the field type.
38
+ *
39
+ * @since 2.2.2
40
+ *
41
+ * @param array $args Array of arguments for the rendering.
42
+ *
43
+ * @return CMB2_Type_Base|string
44
+ */
45
+ public function render( $args = array() ) {
46
+ $meta_value = $this->value ? $this->value : $this->field->escaped_value();
47
+
48
+ $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
49
+ if ( preg_match( '/^' . $hex_color . '/i', $meta_value ) ) {
50
+ // Value is just 123abc, so prepend #.
51
+ $meta_value = '#' . $meta_value;
52
+ } elseif (
53
+ // If value doesn't match #123abc...
54
+ ! preg_match( '/^#' . $hex_color . '/i', $meta_value )
55
+ // And value doesn't match rgba()...
56
+ && 0 !== strpos( trim( $meta_value ), 'rgba' )
57
+ ) {
58
+ // Then sanitize to just #.
59
+ $meta_value = '#';
60
+ }
61
+
62
+ wp_enqueue_style( 'wp-color-picker' );
63
+
64
+ $args = wp_parse_args( $args, array(
65
+ 'class' => 'cmb2-text-small',
66
+ ) );
67
+
68
+ $args['class'] .= ' cmb2-colorpicker';
69
+ $args['value'] = $meta_value;
70
+ $args['js_dependencies'] = array( 'wp-color-picker' );
71
+
72
+ if ( $this->field->options( 'alpha' ) ) {
73
+ $args['js_dependencies'][] = 'wp-color-picker-alpha';
74
+ $args['data-alpha'] = 'true';
75
+ }
76
+
77
+ $args = wp_parse_args( $this->args, $args );
78
+
79
+ return parent::render( $args );
80
+ }
81
+
82
+ /**
83
+ * Provide the option to use a rgba colorpicker.
84
+ *
85
+ * @since 2.2.6.2
86
+ */
87
+ public static function dequeue_rgba_colorpicker_script() {
88
+ if ( wp_script_is( 'jw-cmb2-rgba-picker-js', 'enqueued' ) ) {
89
+ wp_dequeue_script( 'jw-cmb2-rgba-picker-js' );